JP2004507814A - Javaアクセラレータ環境におけるパワーマネジメントシステムおよびその方法 - Google Patents
Javaアクセラレータ環境におけるパワーマネジメントシステムおよびその方法 Download PDFInfo
- Publication number
- JP2004507814A JP2004507814A JP2002521689A JP2002521689A JP2004507814A JP 2004507814 A JP2004507814 A JP 2004507814A JP 2002521689 A JP2002521689 A JP 2002521689A JP 2002521689 A JP2002521689 A JP 2002521689A JP 2004507814 A JP2004507814 A JP 2004507814A
- Authority
- JP
- Japan
- Prior art keywords
- java
- frequency
- value
- power
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 56
- 238000007726 management method Methods 0.000 claims abstract description 60
- 230000004044 response Effects 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 27
- 230000007423 decrease Effects 0.000 claims description 9
- 238000010248 power generation Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 230000011664 signaling Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
パワーマネジメント方法が、開示されており、このパワーマネジメント方法は、パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給する。初めに、JAVAモード信号が、ホストプロセッサから、JAVAアプリケーションの開始に応じて供給される。その後、JAVAモード信号に応じて、ホストプロセッサへの電力は、減少されるとともに、JAVAプロセッサへの電力は、増加される。次に、JAVAアプリケーションの実行が、停止すると、JAVA完了信号が、JAVAプロセッサから発生し、それにより、システムに対して、制御をホストプロセッサに戻すように、信号が送られる。
Description
【0001】
(関連特許)
本出願は、米国特許出願第09/565,679(代理人整理番号VTI1P333)に関連しており、この米国特許出願は、2000年5月4日に出願され、「JAVAスタック、演算論理ユニット、および、マルチプルスタックポインタを有する統合サブシステムのアーキテクチャ、および、その使用方法」と題され、ここに、その全貌を引例として取り入れている。
【0002】
本出願は、また、米国特許出願第09/670,496(代理人整理番号PHILP337)に関連しており、この米国特許出願は、「JAVAアレイをチェックするローオーバーヘッド境界システムおよび方法」と題され、ここに、その全貌を引例として取り入れている。
【0003】
(発明の背景)
1.発明の分野
本発明は、一般にハードウエアにより加速されたJAVA実行に関し、特に、マスタ/スレーブJAVAアクセラレータ環境内におけるパワーマネジメントに関する。
【0004】
2.関連技術の説明
今日のコンピュータプログラム界は、多くの高水準プログラミング言語を提示している。JAVAは、例えば、広範囲に渡る普及を、比較的短期間のうちに達成し、これは、偏在するインターネットの成功に帰するところが大きいものである。JAVAの人気は、少なくともある程度は、そのプラットフォームの独立性、オブジェクト指向性、および、そのダイナミックな性質によるものである。さらに、JAVAは、多くの退屈かつエラーを引き起こしやすいタスクを取り除いている。このタスクは、アプリケーションプログラマにより、行われなければならないものであり、これには、メモリマネジメント、および、クロスプラットフォームポーティングが含まれる。こうして、JAVAプログラマは、デザインおよび機能性の問題により集中することができるのである。
【0005】
JAVAアプリケーションを実行するために、JAVAプロセッサが、使用され、JAVAプロセッサは、概して、JAVA仮想マシン(JVM)形式のソフトウエアによってのみ、起動する。しかし、ソフトウエアにおける処理の実施に伴う問題が原因で、JVMは、低パフォーマンス問題を抱えている。
【0006】
従来から2つの技術が、JAVA解釈のパフォーマンスを改善するために、使用されている。この2つの技術とは、すなわち、ネイティブJAVA実行、および、一部ハードウエアのJAVA命令解釈である。ネイティブJAVA実行方式は、ハードウエアを使用して、実JAVAプロセッサを構築する。しかし、この技術は、深刻な欠点を提示している。つまり、この技術は、JAVAの概念である「外部マシン」を除去するものであり、また、それにより、多くのソフトウエアを排除することになり、このようなJAVAプロセッサで実行することは、不可能である。
【0007】
一部ハードウエアのJAVA命令解釈方式は、ハードウエアアシストを使用して、解釈処理を改善する。この構成は、しばしばJAVAアクセラレータと呼ばれる。基本的に、JAVAアクセラレータは、アセンブリ言語インタプリタのパフォーマンスに近く、このアセンブリ言語インタプリタは、ゼロから待ち状態のメモリを実行する。
【0008】
JAVAアクセラレータの一実施は、マスタ/スレーブ構成を使用しており、マスタ(ホスト)プロセッサは、JAVA命令以外のすべての命令を実行し、スレーブプロセッサは、専らJAVA命令のみを実行する。しかし、この方式を用いる従来のシステムは、ホストおよびスレーブプロセッサ間のパワーマネジメントに伴う問題を、多く抱えている。この問題は、両方のプロセッサが、小型、かつ、バッテリ式モバイル機器において実施される時に起こり、このようなモバイル機器では、電力の節約が、非常に重要である。
【0009】
歴史的に見ると、演算装置のパワーマネジメントに伴う問題は、いつ、システムあるいはシステム内の様々な構成部分が、重要な処理を行っているのか、を検出しようとする結果、生じている。しばしば、従来のパワーマネジメントシステムは、入出力(I/O)信号を、アイドルタイマと共に監視することにより、いつ、装置への電力を止めることができるか、を検出する。
【0010】
他の従来のパワーマネジメントシステムでは、プロセッサインタフェースの周波数が、変更され、それにより、コンピュータシステムの消費電力を低減する。また、その他の従来のパワーマネジメントシステムは、クロックスロットリングと呼ばれる方法を使用して、マイクロプロセッサの消費電力を低減し、それにより、コンピュータシステムの消費電力を低減する。この方法では、マイクロプロセッサが、重要な処理を行っていないと判断された時には、マイクロプロセッサへの入力は、変更される。こうすることにより、マイクロプロセッサに、そのクロックの内部使用を中止するよう、効率的に伝えることができる。マイクロプロセッサへの入力を変更することにより、マイクロプロセッサは、徐々に減速するため、このマイクロプロセッサは、それ程エネルギーを燃焼させず、それにより、コンピュータシステムの消費電力を減少させる。パワーマネジメント決定処理における近年の従来技術は、パワーマネジメント決定処理をオペレーティングシステム(OS)指向にしたことにより、改善されてはきたが、従来のパワーマネジメント決定は、推測に過ぎないものが多い。
【0011】
上記の方法は、消費電力の減少に繋がるかもしれないが、いずれの方法も、システムにおける各プロセッサの動作電圧の減少と、組み合わされてはいない。この動作電圧の減少と組み合わされていれば、さらに、システムの消費電力を減少させることが、できるであろう。ホストおよびJAVAプロセッサ両方の動作電圧および動作周波数を、共に制御すれば、コンピュータシステムの最適電力およびパフォーマンストレードオフが、可能になるであろう。
【0012】
以上の点に鑑み、JAVAアクセラレータ内での、改善されたパワーマネジメントを供給するシステムおよび方法が、必要になっている。パワーマネジメントシステムは、ホストおよびJAVAプロセッサの、動作電力および動作周波数の両方を、制御するものである。さらに、パワーマネジメントシステムは、電源あるいはデジタル回路のいずれもが、動作条件の変更中にストレスを受けないことを保証し、また、プロセッサ間のメモリ更新ができるよう、動作条件変更間には十分な時間を保証するものである。
【0013】
(発明の要約)
広い意味で言えば、本発明は、改善されたパワーマネジメントシステムを、JAVAアクセラレータに供給することにより、これらの要求を満たしている。本発明のパワーマネジメントシステムは、ホストおよびJAVAプロセッサの、動作電圧および動作周波数の両方を制御する。それにより、コンピュータシステムの最適電力およびパフォーマンスが、可能となる。一方の実施形態では、パワーマネジメント方法が、開示されており、この方法は、パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給するものである。初めに、JAVAモード信号が、ホストプロセッサから、JAVAアプリケーションの開始に応じて供給される。その後、JAVAモード信号に応じて、ホストプロセッサへの電力は、減少されるとともに、JAVAプロセッサへの電力は、増加される。次に、JAVAアプリケーションの実行が停止すると、JAVA完了信号が、JAVAプロセッサから発生し、それにより、システムに対して、制御をホストプロセッサに戻すように、信号が送られる。
【0014】
他方の実施形態では、パワーマネジメントシステムが、開示されており、このシステムは、パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給するものである。パワーマネジメントシステムは、ホストプロセッサを含み、ホストプロセッサは、電力発生回路に接続される。このホストプロセッサは、JAVAモード信号ポートを含み、JAVAモード信号ポートは、JAVAモード信号を供給できる。さらに、パワーマネジメントシステムに含まれているのは、JAVAプロセッサであり、このJAVAプロセッサもまた、電力発生回路に接続されている。JAVAプロセッサは、JAVA完了信号ポートを含み、このJAVA完了信号ポートは、JAVA完了信号を供給することができる。使用時には、電力発生回路は、JAVAモード信号の受信に応じて、ホストプロセッサへの電力を減少させるとともに、JAVAプロセッサへの電力を増加させる。さらに、JAVA完了信号の受信に応じて、電力生成回路は、ホストプロセッサへの電力を増加させるとともに、JAVAプロセッサへの電力を減少させる。
【0015】
プロセッサに供給される変更を鈍化させるための、ランプ回路方法が、本発明の更なる実施形態において、開示されている。ランプ回路方法は、目標値を得ることにより始まり、この目標値は、プロセッサが設定される、所望の周波数あるいは電圧を表す。次に、この目標値は、現行値と比較され、差分値を得る。目標値と同様に、現行値は、プロセッサが現在動作している、現行の周波数あるいは電圧である。現行値は、次に、差分値が所定のしきい値外の時に、調整される。このしきい値は、ある範囲を有する値でも、あるいは、ゼロ等の単一の値でもよい。上記の動作は、その後、差分値が所定のしきい値内になるまで、繰り返される。
【0016】
有利なことには、本発明は、コンピュータシステムの最適電力およびパフォーマンスを、ホストおよびJAVAプロセッサの、動作周波数および動作電圧の両方を制御することにより、可能にしている。さらに、周波数および電圧の両方が、制御される場合、電圧は、周波数を増加する前に、増加されるとともに、周波数は、電圧を減少させる前に、減少される。これは、システムが、現行の電圧に対して、速過ぎる周波数では稼働しないことを、保証しており、更なる省電力化という結果をもたらしている。
【0017】
最後に、当業者には自明のものであるが、本発明のパワーマネジメントシステムは、プロセッサ間のメモリ更新ができるよう、動作条件変更間には十分な時間を保証するものである。本発明の他の様態および利点は、以下の詳細な説明から、添付の図面と併せて、明らかとなるものであり、以下の詳細な説明は、例を用いて発明の原理を説明するものである。
【0018】
(好適な実施形態の詳細な説明)
発明は、JAVAアクセラレータのパワーマネジメントシステムのために、開示されている。広い意味で言えば、本発明のパワーマネジメントシステムは、JAVAアクセラレータの電力消費を、JAVAアプリケーションの開始時には、ホストプロセッサへの電力を減少させるとともに、JAVAプロセッサへの電力は増加させることにより、また、JAVAアプリケーションの実行停止時には、このプロセスを逆転させることにより、管理する。
【0019】
以下の説明では、非常に多くの具体的な詳細が、記載されており、本発明の完全な理解を提供している。しかし、当業者にとって、本発明は、いくつかの、あるいは、すべての具体的な詳細がなくても実行されうることは、自明のものである。他の例において、公知の処理ステップが、詳細に説明されてはいないが、それは、不必要に本発明を不明瞭にしないためである。
【0020】
図1は、本発明の実施形態に基づき、JAVAハードウエアアクセラレータシステム10を示すブロック図である。JAVAハードウエアアクセラレータシステム10は、システムバス12を含み、このシステムバス12は、マスタ(ホスト)プロセッサ14、スレーブ(JAVA)プロセッサ16、および、システムメモリ18を含む。さらに、JAVAハードウエアアクセラレータシステム10は、バスアービトレータ20を含み、このバスアービトレータ20は、ホストプロセッサ14およびJAVAプロセッサ16間に、接続されている。
【0021】
JAVAハードウエアアクセラレータシステム10は、デュアルプロセッサシステムであり、JAVAプロセッサ16が、大部分のJAVA命令を実行し、ホストプロセッサ14は、残りすべての、複雑なJAVA命令を含む命令を実行する。「マシン内のマシン」というJAVAパラダイムに固有であるように、JAVAプロセッサ16は、スレーブプロセッサである。JAVAプロセッサ16は、「内部マシン」の役を務め、ホストプロセッサ14である「外部マシン」により、開始および制御される。
【0022】
ホストプロセッサ14は、任意のプロセッサに内蔵されてもよく、その任意のプロセッサには、現行の工業規格デバイスである、x86、ARM、および、MIPSデバイス等が、含まれる。JAVAプロセッサ16は、スタックベースプロセッサであることが好ましく、このスタックベースプロセッサは、命令とデータキャッシング、および、内部SRAMを含む。さらに、JAVAプロセッサ16は、レジスタベーススタックを含むことが好ましく、これは、関連する、米国特許出願第09/565,679の、タイトル「JAVAスタック、演算論理ユニット、および、マルチプルスタックポインタを有する統合サブシステムのアーキテクチャ、および、その使用方法」に記載されており、ここに、その全貌を引例として取り入れている。
【0023】
一般に、プロセッサ14は、オペレーティングシステム、JAVA以外のアプリケーション、および、複雑なJAVA命令をサポートする。一実施形態では、増設の専用ARM、あるいは、同等のプロセッサ(図示せず)が、使用され、複雑なJAVA命令を処理している。
【0024】
JAVAプロセッサ16は、一般に、少なくとも、次のJAVA命令、すなわち、ロード、格納、計算、分岐、プッシュ、および、フィールド、を実行することができる。好ましくは、整数および浮動小数点の両方を含む、すべての計算命令に対するサポートが、JAVAプロセッサ16に組込まれていることである。先にも述べたように、ホストプロセッサ14は、メソッド呼び出し等の、より複雑な命令を処理する。JAVAプロセッサ16は、複雑な命令が解読される時、例外を発生させるとともに、データキャッシュ内のすべてのダーティラインを、システムメモリ18に書き込む。その後、JAVAプロセッサ16は、実行を停止する。
【0025】
好ましくは、JAVAプロセッサ16が、現在実行されている方法への高速アクセスのための、命令キャッシュを含むことである。この方法をサポートするために使用されているローカルデータは、内部SRAMにあり、この内部SRAMは、概して、単一ポートであるとともに、ホストプロセッサ14およびJAVAプロセッサ16の両方により、アクセスすることができる。JAVAプロセッサ16が実行中の時は、ホストプロセッサ14は、ローカルデータ領域およびスタックの両方から、ロックアウトされる。さらに、アレイ等のローカルではない変数への高速アクセスのための、データキャッシュが、含まれている。
【0026】
図2は、本発明の実施形態に基づき、パワーマネジメントシステム50を示すブロック図である。パワーマネジメントシステム50は、ホストプロセッサ部52、および、JAVAプロセッサ部54を含む。ホストプロセッサ部52は、ホストスイッチレジスタ56を含み、このホストスイッチレジスタ56は、一組のホストノーマル動作電圧・周波数レジスタ58、および、一組のホストロー電圧・周波数レジスタ60に、接続されている。さらに、パワーマネジメントシステム50は、ホストランプ回路64に接続された一組のプログラム電圧・周波数生成器62、および、ホストプロセッサ14を含む。ホストプロセッサ14は、JAVAモード信号ポートを含み、このJAVAモード信号ポートは、JAVAモード信号68を、JAVAアプリケーションの開始と同時に供給する。
【0027】
JAVAプロセッサ部54は、JAVAスイッチレジスタ70を含み、このJAVAスイッチレジスタ70は、一組のJAVAノーマル動作電圧・周波数レジスタ72、一組のJAVAロー電圧・周波数レジスタ74、および、アイドルディレイタイマ76に、接続されている。さらに、パワーマネジメントシステム50は、JAVAランプ回路80に接続された一組のプログラム電圧・周波数生成器78、および、JAVAプロセッサ16を含む。JAVAプロセッサ16は、JAVA完了信号ポートを含み、このJAVA完了信号ポートは、JAVAアプリケーションの実行が停止されると、JAVA完了信号84を供給する。
【0028】
各プログラム電圧・周波数生成器62および78は、周波数変更の、実際のインプランテーションを供給し、この周波数変更は、ホストランプ回路64およびJAVAランプ回路80により、供給されるものである。動作中は、各プログラム電圧・周波数生成器62および78は、スロークロック信号によりクロックされるため、適切なランプ回路が、新しい電力をクロック毎に供給できる。
【0029】
各プロセッサ14および16は、基本的に、ノーマル動作モード、および、ローパワー動作モードの2つの動作モードを有している。ノーマル動作モードでは、ホストプロセッサ14およびJAVAプロセッサ16は、ホストプロセッサ14あるいはJAVAプロセッサ16が内蔵されているプロセッサのタイプとしては、通常ノーマルと考えられる電圧および周波数で、動作する。ローパワー動作モードでは、ホストプロセッサ14およびJAVAプロセッサ16は、低電圧および周波数で動作する。この低電圧および周波数とは、ホストプロセッサ14あるいはJAVAプロセッサ16が内蔵されているタイプのプロセッサとしては、ノーマルな動作電圧および周波数を、下回るものである。
【0030】
プロセッサ14/16が重要な処理を行う時に、ノーマル動作モードを使用し、プロセッサ14/16が、重要な処理を行わない時に、ローパワー動作モードに切り換えることにより、本発明は、さらなる省電力化を提供する。この省電力化は、プロセッサが使用されていない時に、各プロセッサ14/16の動作電圧および動作周波数の両方を低減させることができる能力によって、著しく強化される。
【0031】
初めに、ホストプロセッサのノーマル動作電圧、および、ノーマル動作周波数の値が、一組のホストノーマル動作電圧・周波数レジスタ58に格納される。さらに、ホストプロセッサのローパワー動作電圧値、および、ホストプロセッサのローパワー動作周波数値が、一組のホストロー電圧・周波数レジスタ60に格納される。同様にして、JAVAプロセッサのノーマル動作電圧値、および、JAVAプロセッサのノーマル動作周波数値が、一組のJAVAノーマル動作電圧・周波数レジスタ72に格納される。JAVAプロセッサのローパワー動作電圧値、および、JAVAプロセッサのローパワー動作周波数値が、次に、一組のJAVAロー電圧・周波数レジスタ74に格納される。
【0032】
こうして、ホストおよびJAVAノーマル動作電圧・周波数レジスタ58および72の組は、それぞれ、ホストプロセッサ14およびJAVAプロセッサ16の、ノーマル動作電圧および周波数を規定している。同様にして、ホストおよびJAVAロー電圧・周波数レジスタ60および74の組は、それぞれ、ホストプロセッサ14およびJAVAプロセッサ16の、ローパワー動作電圧および周波数を規定している。
【0033】
ノーマル動作中は、ホストプロセッサ14は、ホストノーマル動作電圧・周波数レジスタ58により規定されるノーマル動作モードに従い、動作する。一方、JAVAプロセッサ16は、JAVAロー電圧・周波数レジスタ74により規定されるローパワー動作モードに従い、動作する。先にも説明したように、ホストプロセッサ14は、一般に、メソッド呼び出し等の、JAVAプロセッサが処理しない、複雑なJAVA命令を除くJAVA以外のすべての命令を、実行する。JAVAアプリケーションの開始と同時に、ホストプロセッサは、JAVAモード信号68を発生させる。それにより、パワーマネジメントシステム50に対して、JAVAアプリケーションがJAVAプロセッサ16により実行されることが、伝えられる。ホストレジスタスイッチ56およびJAVAレジスタスイッチ70は、次に、JAVAモード信号68を受信し、JAVAモード信号68は、ホストレジスタスイッチ56およびJAVAレジスタスイッチ70に対し、ホストおよびJAVAプロセッサ14および16を、動作モードに切り換えるよう命令する。
【0034】
JAVAモード信号68を受信すると同時に、ホストレジスタスイッチ56は、ホストプロセッサ14のホスト目標電圧・周波数値を、ホストロー電圧・周波数レジスタ60に格納された値に、設定する。同様にして、JAVAレジスタスイッチ70は、JAVAプロセッサ16のJAVA目標電圧・周波数値を、JAVAノーマル動作電圧・周波数レジスタ72に格納された値に、設定する。
【0035】
この時点で、ホストランプ回路64は、ホスト目標電圧・周波数値を使用して、徐々に、ホストプロセッサ14の、現行の電圧および周波数を、ホスト目標電圧・周波数値まで減少させる。同様の方法で、JAVAランプ回路80は、JAVA目標電圧・周波数値を使用して、徐々に、JAVAプロセッサ16の、現行の電圧および周波数を、JAVA目標電圧・周波数値まで増加させる。
【0036】
ホストおよびJAVAランプ回路64および80は、それぞれ、小さな増分電圧・周波数の増加または減少を、ホストプロセッサおよびJAVAプロセッサの現行の電圧および周波数が、各々の目標電圧・周波数値に到達するまでの間、供給する。各電圧および周波数の減分後、ホストランプ回路64は、新しい減分電圧・周波数値を、ホストプロセッサ14に接続されている一組のプログラム電圧・周波数生成器62に、供給する。一組のプログラム電圧・周波数生成器62は、次に、ホストプロセッサ14の電圧および周波数を、新しい減分電圧・周波数値に設定する。
【0037】
同様にして、各増分後、JAVAランプ回路80は、新しい増分電圧・周波数値を、JAVAプロセッサ16に接続されている一組のプログラム電圧・周波数生成器78に、供給する。一組のプログラム電圧・周波数生成器78は、次に、JAVAプロセッサ16の電圧および周波数を、新しい増分電圧・周波数値に設定する。こうして、電力は、JAVAアプリケーションが開始される時、ホストプロセッサ14において、減少するとともに、JAVAプロセッサ16においては、増加する。その結果、システム50の実質的な省電力化につながる。
【0038】
JAVAプロセッサ16は、次に、JAVAアプリケーションの実行を開始する。JAVAプロセッサ16は、一般に、JAVAアプリケーションを、JAVAアプリケーションが完了するまで、あるいは、JAVAプロセッサ16が処理できない、複雑なJAVA命令が現れるまで、引き続き実行する。この時点で、JAVAプロセッサ16は、JAVA完了信号84、あるいは、中断信号を発生させ、これは、ホストレジスタスイッチ56およびJAVAレジスタスイッチ70により受信され、パワーマネジメントシステム50に対して、JAVAアプリケーションの実行停止を知らせる。
【0039】
JAVA完了信号84を受信すると同時に、ホストレジスタスイッチ56は、ホスト目標電圧・周波数値を、ホストノーマル動作電圧・周波数レジスタ58に格納されている値に、設定する。同様にして、JAVAレジスタスイッチ70は、JAVA目標電圧・周波数値を、JAVAロー電圧・周波数レジスタ74に格納されている値に、設定する。
【0040】
この時点で、ホストランプ回路64は、ホスト目標電圧・周波数値を使用して、徐々に、ホストプロセッサ14の現行の電圧および周波数を、ホスト目標電圧・周波数値まで増加させる。同様の方法で、JAVAランプ回路80は、JAVA目標電圧・周波数値を使用して、徐々に、JAVAプロセッサ16の現行の電圧および周波数を、JAVA目標電圧・周波数値まで減少させる。
【0041】
上記に記載される様に、ホストおよびJAVAランプ回路64および80は、それぞれ、小さな増分電圧・周波数の増加または減少を、ホストプロセッサおよびJAVAプロセッサの、現行の電圧および周波数が、各々の目標電圧・周波数値に到達するまでの間、供給する。各増分後、ホストランプ回路64は、新しい増分電圧・周波数値を、ホストプロセッサ14に接続されている一組のプログラム電圧・周波数生成器62に、供給する。一組のプログラム電圧・周波数生成器62は、次に、ホストプロセッサ14の電圧および周波数を、新しい増分電圧・周波数値に設定する。
【0042】
同様にして、各減分後、JAVAランプ回路80は、新しい減分電圧・周波数値を、JAVAプロセッサ16に接続されている一組のプログラム電圧・周波数生成器78に、供給する。一組のプログラム電圧・周波数生成器78は、次に、JAVAプロセッサ16の電圧および周波数を、新しい減分電圧・周波数値に設定する。こうして、電力は、JAVAアプリケーションの実行停止時に、ホストプロセッサ14において、増加するとともに、JAVAプロセッサ16においては、減少する。この時点で、ホストプロセッサ14は、システムの制御を再開し、引き続きコンピュータ命令を実行する。
【0043】
JAVA実行中、JAVAプロセッサ16は、情報をローカルキャッシュに格納し、様々なJAVA命令の実行に使用する。JAVA実行が停止すると、この情報を、ホストプロセッサ14が、システムバスを介して利用できるようになる。この情報を、JAVAプロセッサ16が遮断されて、ローパワー動作モードに切り替わる前に供給するために、本発明は、アイドルディレイタイマ76を使用しており、このアイドルディレイタイマ76は、JAVAレジスタスイッチ70およびJAVAランプ回路80の間に、接続されている。
【0044】
アイドルディレイタイマ76は、JAVA電圧ランプ回路80が、JAVA目標電圧・周波数値を、一組のJAVAロー電圧・周波数レジスタ74に格納されている、より低い値に設定することを、遅延させる。遅延の長さは、JAVAプロセッサ16のキャッシュメモリサイズの一関数で、この遅延の長さは、キャッシュ内情報が、JAVAプロセッサ16へのパワーが減少される前に、システムメモリに転送されるように、設定される。なお、アイドルディレイタイマ76は、JAVAプロセッサ16が、JAVA完了信号84を発生させる時にのみ、機能することが好ましい。
【0045】
図3は、本発明の実施形態に基づき、模範的なランプ回路100を示すブロック図である。模範的なランプ回路100は、周波数ランプ回路として使用するために示されているが、ランプ回路100は、電圧ランプ回路としても、レジスタに、周波数値の代わりに電圧値を供給することにより、使用することができる。
【0046】
ランプ回路100は、コンパレータ102を含み、コンパレータ102は、目標周波数レジスタ104、現行周波数レジスタ106、および、オフセットテーブル108に、接続されている。さらに、ランプ回路100は、オフセット周波数レジスタ110を含み、オフセット周波数レジスタ110は、オフセットテーブル108、および、現行周波数レジスタ106に、接続されている。最後に、ランプ回路100は、周波数状態マシン112を含み、周波数状態マシン112は、ランプ回路100に対する制御を供給する。なお、現行周波数レジスタ106は、プログラム周波数生成器114にも接続されている。
【0047】
パワーモードが、ノーマル動作とローパワー動作モード間で切り換えられる時、ホストおよびJAVAプロセッサの両方になされる、電圧および周波数の変更は、電力供給およびデジタル論理に対するストレス付加を阻止するために、鈍化されることが好ましい。
【0048】
後により詳述されるように、ランプ回路100は、小さな増分変更をプロセッサの電圧および周波数に供給し、こうした変更の適切な優先順位を保証する。特に、プロセッサへの電力が、ローパワーからノーマルパワーへ切り替わる時、電圧は、周波数が増加される前に、増加される。逆に、プロセッサへの電力が、ノーマルパワーからローパワーへ切り替わる時、周波数は、電圧が減少される前に、減少される。
【0049】
動作中は、ランプ回路100は、周波数状態マシン112により供給される、比較的スローなクロック信号により、クロックされる。先にも述べたように、ランプ回路100は、目標周波数を、一組の、ノーマル動作あるいはローパワーのいずれかの周波数レジスタから、現行のパワー動作モードに従い、獲得し、そして、この目標周波数を、目標周波数レジスタ104に格納する。関連するプロセッサの現行の動作周波数は、現行周波数レジスタ106に格納されている。
【0050】
クロック信号毎に、コンパレータ102は、目標周波数レジスタ104に格納されている値を、現行周波数レジスタ106に格納されている値と比較し、差分値を出す。この差分値とは、目標周波数レジスタ104に格納されている値と、現行周波数レジスタ106に格納されている値間の、値の差である。
【0051】
差分値が所定のしきい値外であれば、表検索が、差分値およびオフセットテーブル108を使用して、行われる。そして、表検索の結果が、オフセット周波数レジスタ110に格納される。所定のしきい値は、容認できる周波数の範囲の値、単一値、あるいは、ゼロでもよい。しきい値をゼロに設定することは、差分値がゼロではない時は常に、差分値は、しきい値外ということになる。しきい値を単一値に設定することは、ゼロと単一値間の値域を意味する。差分値は、差分値がしきい値の値域外である時は常に、ベースとされる値域のしきい値外である。
【0052】
オフセット周波数レジスタ110に格納された値は、次に、現行周波数レジスタ106に加算、あるいは、減算され、その結果は、現行周波数レジスタに格納される。好ましくは、オフセットテーブルが、周波数オフセットを供給するように、構成されることであり、周波数オフセットは、周波数変更を、周波数の滑らかなリニアランプにすることができる。任意的に、オフセット周波数レジスタ110は、省略でき、オフセット値は、現行周波数レジスタ106に、オフセットテーブル108から、直接加算、あるいは、直接減算される。現行周波数レジスタ106に格納された、新しい周波数値は、次に、プログラム周波数生成器114をプログラムするために使用され、これにより、関連するプロセッサの周波数を、新しい現行の周波数値に設定する。
【0053】
ランプ回路100は、上記の動作を、差分値が所定のしきい値内になるまで、続ける。この時点で、関連するプロセッサは、目標周波数で動作し、適切な命令の処理を開始することができる。他の実施形態では、上記の動作は、所定のしきい値が達成される時でも、依然として続けられる。本実施形態では、ゼロ値は、オフセットレジスタ110に格納されており、それにより、これ以上の変更は、現行の周波数値に加えられない。次に、新しい目標周波数が、目標周波数レジスタに格納されると、ランプ回路100は、自動的に動作を続け、現行の周波数を、新しい目標値にランプする。
【0054】
先にも述べたように、ランプ回路100は、ランプ回路100の周波数値を電圧値に変更し、回路100をプログラム電圧生成器に接続させることにより、電圧ランプ回路として動作可能である。
【0055】
図4は、本発明の実施形態に基づき、パワーマネジメントをハードウエアベースのJAVAアクセラレータに供給するプロセス200を示すフローチャートである。初期動作202では、前処理動作が、行われる。前処理動作には、JAVAプログラムカウンタおよびスタックポインタの初期化、および、その他の、当業者には自明の前処理動作が、含まれる。
【0056】
JAVAモード動作204では、JAVAモード信号が、ホストプロセッサから、JAVAアプリケーションの開始に応じて供給される。ノーマル動作中は、ホストプロセッサは、そのノーマル動作モードに従い、動作する。このノーマル動作モードは、ホストノーマル動作電圧・周波数レジスタにより規定されるものである。その一方、JAVAプロセッサは、そのローパワー動作モードに従い、動作する。このローパワー動作モードは、JAVAロー電圧・周波数レジスタにより規定されるものである。ホストプロセッサは、一般に、メソッド呼び出し等の、複雑なJAVA命令を除くJAVA以外のすべての命令を実行する。JAVAアプリケーションの開始と同時に、ホストプロセッサは、JAVAモード信号を発生させる。それにより、パワーマネジメントシステムに対し、JAVAアプリケーションが、JAVAプロセッサにより実行されることが、伝えられる。ホストレジスタスイッチおよびJAVAレジスタスイッチは、次に、JAVAモード信号を受信する。それにより、ホストレジスタスイッチおよびJAVAレジスタスイッチに対し、ホストおよびJAVAプロセッサを、動作モードに切り換えるよう命令する。
【0057】
次に、ホスト電力低減動作206では、ホストプロセッサへの電力は、JAVAモード信号に応じて減少される。JAVAモード信号の受信と同時に、ホストレジスタスイッチは、ホストプロセッサのホスト目標電圧・周波数値を、ホストローパワー電圧・周波数レジスタに格納されている値に、設定する。ホストランプ回路は、次に、ホスト目標電圧・周波数値を使用して、徐々に、ホストプロセッサの現行の電圧および周波数を、ホスト目標電圧・周波数値まで減少させる。
【0058】
先にも説明したように、ホストランプ回路は、小さな増分電圧・周波数の増加または減少を、ホストプロセッサの現行の電圧および周波数が、目標電圧・周波数値に到達するまでの間、供給する。各電圧および周波数の減分後、ホストランプ回路は、新しい減分電圧・周波数値を、ホストプロセッサに接続されている一組のプログラム電圧・周波数生成器に、供給する。一組のプログラム電圧・周波数生成器は、次に、ホストプロセッサの電圧および周波数を、新しい減分電圧・周波数値に設定する。
【0059】
JAVA電力増加動作208では、JAVAプロセッサへの電力が、JAVAモード信号に応じて増加する。JAVAモード信号受信と同時に、JAVAレジスタスイッチは、JAVAプロセッサに対するJAVA目標電圧・周波数値を、JAVAノーマル動作電圧・周波数レジスタに格納された値に、設定する。JAVAランプ回路は、次に、JAVA目標電圧・周波数値を使用して、徐々に、JAVAプロセッサの現行の電圧および周波数を、JAVA目標電圧・周波数値まで増加させる。
【0060】
各電圧および周波数の増分後、JAVAランプ回路は、新しい増分電圧・周波数値を、JAVAプロセッサに接続されている一組のプログラム電圧・周波数生成器に、供給する。一組のプログラム電圧・周波数生成器は、次に、JAVAプロセッサの電圧および周波数を、新しい増分電圧・周波数値に設定する。ノーマル動作電圧および周波数に到達後、JAVAプロセッサは、JAVAアプリケーションの実行を開始する。JAVAプロセッサは、一般に、JAVAアプリケーションを、JAVAアプリケーションが完了するまで、あるいは、JAVAプロセッサ16が処理できない、複雑なJAVA命令が現れるまで、引き続き実行する。
【0061】
JAVA完了信号動作210では、JAVA完了信号が、JAVAプロセッサから、JAVAアプリケーションの実行停止時に、発生する。この時点で、JAVAプロセッサは、JAVA完了信号、あるいは、中断信号を発生させ、これは、ホストレジスタスイッチおよびJAVAレジスタスイッチにより受信される。JAVA完了信号は、パワーマネジメントシステムに対して、JAVAアプリケーションの実行停止を知らせる。
【0062】
JAVA完了動作212では、ホストプロセッサへの電力は、次に、JAVA完了信号に応じて増加され、JAVAプロセッサへの電力は、減少される。JAVA完了信号84を受信すると同時に、ホストレジスタスイッチは、ホスト目標電圧・周波数値を、ホストノーマル動作電圧・周波数レジスタから供給される値に設定する。同様にして、JAVAレジスタスイッチは、JAVA目標電圧・周波数値を、JAVAロー電圧・周波数レジスタから供給される値に設定する。
【0063】
この時点で、ホストランプ回路は、ホスト目標電圧・周波数値を使用して、徐々に、ホストプロセッサの現行の電圧および周波数を、ホスト目標電圧・周波数値まで、増加させる。同様の方法で、JAVAランプ回路は、JAVA目標電圧・周波数値を使用して、徐々に、JAVAプロセッサの現行の電圧および周波数を、JAVA目標電圧・周波数値まで、減少させる。
【0064】
上記に記載される様に、ホストおよびJAVAランプ回路は、それぞれ、小さな増分電圧・周波数の増加または減少を、ホストプロセッサおよびJAVAプロセッサの現行の電圧および周波数が、各々の目標電圧・周波数値に到達するまでの間、供給する。各増分後、ホストランプ回路は、新しい増分電圧・周波数値を、ホストプロセッサに接続されている一組のプログラム電圧・周波数生成器に、供給する。一組のプログラム電圧・周波数生成器は、次に、ホストプロセッサの電圧および周波数を、新しい増分電圧・周波数値に設定する。
【0065】
同様にして、各減分後、JAVAランプ回路は、新しい減分電圧・周波数値を、JAVAプロセッサに接続されている一組のプログラム電圧・周波数生成器に、供給する。一組のプログラム電圧・周波数生成器は、次に、JAVAプロセッサの電圧および周波数を、新しい減分電圧・周波数値に設定する。こうして、電力は、JAVAアプリケーションの実行停止時に、ホストプロセッサにおいて、増加するとともに、JAVAプロセッサにおいては、減少する。この時点で、ホストプロセッサは、システムの制御を再開し、引き続きコンピュータ命令を実行する。
【0066】
JAVAの実行が停止すると、ローカルメモリキャッシュに格納されている情報を、ホストプロセッサが、システムバスを介して利用できるようになる。この情報を、JAVAプロセッサが遮断されて、ローパワー動作モードに切り替わる前に供給するために、本発明は、アイドルディレイタイマを使用しており、このアイドルディレイタイマは、JAVAレジスタスイッチおよびJAVAランプ回路の間に、接続されている。
【0067】
アイドルディレイタイマは、JAVA電圧ランプ回路が、JAVA目標電圧・周波数値を、一組のJAVAロー電圧・周波数レジスタから供給される、より低い値に設定することを、遅延させる。遅延の長さは、JAVAプロセッサのキャッシュメモリサイズの一関数であり、この遅延の長さは、キャッシュ内情報が、JAVAプロセッサへのパワーが減少される前に、システムメモリに転送されるように、設定される。なお、アイドルディレイタイマは、JAVAプロセッサが、JAVA完了信号を発生させる時にのみ、機能することが好ましい。
【0068】
後処理動作は、次に、動作214において行われる。後処理動作には、JAVAメソッド呼び出しの実行、および、その他の、当業者には自明の後処理動作が、含まれる。有利なことには、ホストおよびJAVAプロセッサ両方の動作電圧、および、動作周波数を、共に制御することにより、コンピュータシステムの最適電力およびパフォーマンスが、可能になる。
【0069】
図5は、本発明の実施形態に基づき、プロセッサに供給される変更を鈍化させるためのランプ回路プロセス300を示すフローチャートである。ランプ回路プロセス300は、電圧ランプ回路プロセスとして記載されているが、ランプ回路プロセス300は、プロセッサの周波数あるいは電圧のいずれかを、ランプするために使用することができる。以下の電圧値を、周波数値に差し替えることにより、ランプ回路プロセス300は、周波数ランプ回路プロセスとして使用できる。初期動作302では、前処理動作が、行われる。前処理動作には、ノーマル動作、および、ローパワー電圧・周波数レジスタの初期化、および、その他の、当業者には自明の前処理動作が、含まれる。
【0070】
目標値動作304では、目標値は、電圧・周波数レジスタから得られる。目標電圧値は、一組の、ノーマル動作あるいはローのいずれかの電圧レジスタから、現行のパワー動作モードに従い、得られ、そして、この目標電圧値は、目標電圧レジスタに格納される。関連するプロセッサの、現行の動作電圧は、現行電圧レジスタに格納されている。
【0071】
次に、比較動作306では、目標値は、現行値と比較され、差分値を得る。クロック信号毎に、コンパレータは、目標電圧レジスタに格納されている値を、現行電圧レジスタに格納されている値と比較し、差分値を出す。この差分値とは、目標電圧レジスタに格納されている値と、現行電圧レジスタに格納されている値間の、値の差である。
【0072】
次に、差分値が、所定のしきい値外であるかどうかを、動作308において、決定する。所定のしきい値は、容認できる周波数の範囲の値、単一値、あるいは、ゼロでもよい。しきい値をゼロに設定することは、差分値がゼロではない時は常に、差分値は、しきい値外ということになる。しきい値を単一値に設定することは、ゼロと単一値間の値域を意味する。差分値は、差分値がしきい値の値域外である時は常に、ベースとされる値域のしきい値外である。差分値が、所定のしきい値外であれば、ランプ回路プロセス300は、引き続き、表検索動作310を行う。そうでなければ、ランプ回路プロセス300は、動作312において完了する。
【0073】
差分値は、オフセットテーブルで表検索を行うために、表検索動作310において使用される。複数の電圧入力を含むオフセットテーブルが、提供されている。オフセットテーブル内の差分値を調べることにより、オフセット電圧値が、得られる。結果として生じる、オフセットテーブルからのオフセット値は、次に、オフセット電圧レジスタに格納される。好ましくは、オフセットテーブルが、電圧オフセットを供給するように構成されていることであり、電圧オフセットは、プロセッサの電圧変更を、電圧の滑らかなリニアランプにすることができる。
【0074】
調整動作314では、現行の電圧は、動作310において得られたオフセット電圧に基づいて、調整される。オフセット電圧レジスタに格納されている値は、現行電圧レジスタに格納されている値に加算、あるいは、減算され、その結果は、現行電圧レジスタに格納される。任意的に、オフセット電圧レジスタは、省略でき、オフセット値は、現行電圧レジスタに、オフセットテーブルから、直接加算、あるいは、直接減算される。
【0075】
電圧プログラム動作316では、新しい現行の電圧が、プログラム電圧生成器に供給される。新しい電圧値は、現行電圧レジスタに格納され、この電圧値は、プログラム電圧生成器をプログラムするために使用され、それにより、関連するプロセッサの電圧を、新しい現行の電圧値に設定することができる。ランプ回路プロセス300は、次に、別の比較動作304を引き続き行う。なお、現行電圧レジスタは、新たに調整された現行の電圧値を含む。
【0076】
現行の電圧値が、所定のしきい値内の時、ランプ回路プロセス300は、動作312において完了する。この時点で、関連するプロセッサは、目標電圧で動作し、適切な命令の処理を開始することができる。
【0077】
他の実施形態では、ランプ回路プロセス300は、所定のしきい値が達成されている時でも、他の比較動作304を依然として続けるものである。本実施形態では、ゼロ値は、オフセットレジスタに格納されており、それにより、これ以上の変更は、現行の周波数値に加えられない。新しい目標電圧が、目標電圧レジスタに格納されると、ランプ回路は、自動的に動作を続け、現行の電圧を新しい目標値にランプする。
【0078】
ランプ回路プロセス300は、電圧および周波数の変更の、適切な優先順位を保証する。特に、プロセッサへの電力が、ローパワーからノーマルパワーへ切り替わる時、電圧は、周波数が増加される前に、増加される。逆に、プロセッサへの電力が、ノーマルパワーからローパワーへ切り替わる時、周波数は、電圧が減少される前に、減少される。
【0079】
有利なことには、ランプ回路プロセス300は、電源あるいはデジタル回路のいずれもが、動作条件の変更中に、ストレスを受けないことを保証し、また、プロセッサ間のメモリ更新ができるよう、動作条件変更間には十分な時間を保証するものである。
【0080】
先に述べた発明は、理解を明瞭にする目的で多少詳細に記載されているが、一部の変更および修正は、添付のクレームの範囲内において、可能である。従って、本実施形態は、例示的なものであって限定的なものではなく、本発明は、ここに記載の詳細に限定されるものではなく、添付のクレームの範囲および均等内において、修正できるものである。
【図面の簡単な説明】
本発明は、その更なる利点と共に、以下の説明を、添付の図面と併せて参照することにより、最大に理解されるであろう。
【図1】
図1は、本発明の実施形態に基づき、JAVAハードウエアアクセラレータシステムを示すブロック図である。
【図2】
図2は、本発明の実施形態に基づき、パワーマネジメントシステムを示すブロック図である。
【図3】
図3は、本発明の実施形態に基づき、模範的なランプ回路を示すブロック図である。
【図4】
図4は、本発明の実施形態に基づき、パワーマネジメントを、ハードウエアベースのJAVAアクセラレータに供給するプロセスを示すフローチャートである。
【図5】
図5は、本発明の実施形態に基づき、プロセッサに供給される変更を、鈍化させるためのランプ回路プロセスを示すフローチャートである。
(関連特許)
本出願は、米国特許出願第09/565,679(代理人整理番号VTI1P333)に関連しており、この米国特許出願は、2000年5月4日に出願され、「JAVAスタック、演算論理ユニット、および、マルチプルスタックポインタを有する統合サブシステムのアーキテクチャ、および、その使用方法」と題され、ここに、その全貌を引例として取り入れている。
【0002】
本出願は、また、米国特許出願第09/670,496(代理人整理番号PHILP337)に関連しており、この米国特許出願は、「JAVAアレイをチェックするローオーバーヘッド境界システムおよび方法」と題され、ここに、その全貌を引例として取り入れている。
【0003】
(発明の背景)
1.発明の分野
本発明は、一般にハードウエアにより加速されたJAVA実行に関し、特に、マスタ/スレーブJAVAアクセラレータ環境内におけるパワーマネジメントに関する。
【0004】
2.関連技術の説明
今日のコンピュータプログラム界は、多くの高水準プログラミング言語を提示している。JAVAは、例えば、広範囲に渡る普及を、比較的短期間のうちに達成し、これは、偏在するインターネットの成功に帰するところが大きいものである。JAVAの人気は、少なくともある程度は、そのプラットフォームの独立性、オブジェクト指向性、および、そのダイナミックな性質によるものである。さらに、JAVAは、多くの退屈かつエラーを引き起こしやすいタスクを取り除いている。このタスクは、アプリケーションプログラマにより、行われなければならないものであり、これには、メモリマネジメント、および、クロスプラットフォームポーティングが含まれる。こうして、JAVAプログラマは、デザインおよび機能性の問題により集中することができるのである。
【0005】
JAVAアプリケーションを実行するために、JAVAプロセッサが、使用され、JAVAプロセッサは、概して、JAVA仮想マシン(JVM)形式のソフトウエアによってのみ、起動する。しかし、ソフトウエアにおける処理の実施に伴う問題が原因で、JVMは、低パフォーマンス問題を抱えている。
【0006】
従来から2つの技術が、JAVA解釈のパフォーマンスを改善するために、使用されている。この2つの技術とは、すなわち、ネイティブJAVA実行、および、一部ハードウエアのJAVA命令解釈である。ネイティブJAVA実行方式は、ハードウエアを使用して、実JAVAプロセッサを構築する。しかし、この技術は、深刻な欠点を提示している。つまり、この技術は、JAVAの概念である「外部マシン」を除去するものであり、また、それにより、多くのソフトウエアを排除することになり、このようなJAVAプロセッサで実行することは、不可能である。
【0007】
一部ハードウエアのJAVA命令解釈方式は、ハードウエアアシストを使用して、解釈処理を改善する。この構成は、しばしばJAVAアクセラレータと呼ばれる。基本的に、JAVAアクセラレータは、アセンブリ言語インタプリタのパフォーマンスに近く、このアセンブリ言語インタプリタは、ゼロから待ち状態のメモリを実行する。
【0008】
JAVAアクセラレータの一実施は、マスタ/スレーブ構成を使用しており、マスタ(ホスト)プロセッサは、JAVA命令以外のすべての命令を実行し、スレーブプロセッサは、専らJAVA命令のみを実行する。しかし、この方式を用いる従来のシステムは、ホストおよびスレーブプロセッサ間のパワーマネジメントに伴う問題を、多く抱えている。この問題は、両方のプロセッサが、小型、かつ、バッテリ式モバイル機器において実施される時に起こり、このようなモバイル機器では、電力の節約が、非常に重要である。
【0009】
歴史的に見ると、演算装置のパワーマネジメントに伴う問題は、いつ、システムあるいはシステム内の様々な構成部分が、重要な処理を行っているのか、を検出しようとする結果、生じている。しばしば、従来のパワーマネジメントシステムは、入出力(I/O)信号を、アイドルタイマと共に監視することにより、いつ、装置への電力を止めることができるか、を検出する。
【0010】
他の従来のパワーマネジメントシステムでは、プロセッサインタフェースの周波数が、変更され、それにより、コンピュータシステムの消費電力を低減する。また、その他の従来のパワーマネジメントシステムは、クロックスロットリングと呼ばれる方法を使用して、マイクロプロセッサの消費電力を低減し、それにより、コンピュータシステムの消費電力を低減する。この方法では、マイクロプロセッサが、重要な処理を行っていないと判断された時には、マイクロプロセッサへの入力は、変更される。こうすることにより、マイクロプロセッサに、そのクロックの内部使用を中止するよう、効率的に伝えることができる。マイクロプロセッサへの入力を変更することにより、マイクロプロセッサは、徐々に減速するため、このマイクロプロセッサは、それ程エネルギーを燃焼させず、それにより、コンピュータシステムの消費電力を減少させる。パワーマネジメント決定処理における近年の従来技術は、パワーマネジメント決定処理をオペレーティングシステム(OS)指向にしたことにより、改善されてはきたが、従来のパワーマネジメント決定は、推測に過ぎないものが多い。
【0011】
上記の方法は、消費電力の減少に繋がるかもしれないが、いずれの方法も、システムにおける各プロセッサの動作電圧の減少と、組み合わされてはいない。この動作電圧の減少と組み合わされていれば、さらに、システムの消費電力を減少させることが、できるであろう。ホストおよびJAVAプロセッサ両方の動作電圧および動作周波数を、共に制御すれば、コンピュータシステムの最適電力およびパフォーマンストレードオフが、可能になるであろう。
【0012】
以上の点に鑑み、JAVAアクセラレータ内での、改善されたパワーマネジメントを供給するシステムおよび方法が、必要になっている。パワーマネジメントシステムは、ホストおよびJAVAプロセッサの、動作電力および動作周波数の両方を、制御するものである。さらに、パワーマネジメントシステムは、電源あるいはデジタル回路のいずれもが、動作条件の変更中にストレスを受けないことを保証し、また、プロセッサ間のメモリ更新ができるよう、動作条件変更間には十分な時間を保証するものである。
【0013】
(発明の要約)
広い意味で言えば、本発明は、改善されたパワーマネジメントシステムを、JAVAアクセラレータに供給することにより、これらの要求を満たしている。本発明のパワーマネジメントシステムは、ホストおよびJAVAプロセッサの、動作電圧および動作周波数の両方を制御する。それにより、コンピュータシステムの最適電力およびパフォーマンスが、可能となる。一方の実施形態では、パワーマネジメント方法が、開示されており、この方法は、パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給するものである。初めに、JAVAモード信号が、ホストプロセッサから、JAVAアプリケーションの開始に応じて供給される。その後、JAVAモード信号に応じて、ホストプロセッサへの電力は、減少されるとともに、JAVAプロセッサへの電力は、増加される。次に、JAVAアプリケーションの実行が停止すると、JAVA完了信号が、JAVAプロセッサから発生し、それにより、システムに対して、制御をホストプロセッサに戻すように、信号が送られる。
【0014】
他方の実施形態では、パワーマネジメントシステムが、開示されており、このシステムは、パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給するものである。パワーマネジメントシステムは、ホストプロセッサを含み、ホストプロセッサは、電力発生回路に接続される。このホストプロセッサは、JAVAモード信号ポートを含み、JAVAモード信号ポートは、JAVAモード信号を供給できる。さらに、パワーマネジメントシステムに含まれているのは、JAVAプロセッサであり、このJAVAプロセッサもまた、電力発生回路に接続されている。JAVAプロセッサは、JAVA完了信号ポートを含み、このJAVA完了信号ポートは、JAVA完了信号を供給することができる。使用時には、電力発生回路は、JAVAモード信号の受信に応じて、ホストプロセッサへの電力を減少させるとともに、JAVAプロセッサへの電力を増加させる。さらに、JAVA完了信号の受信に応じて、電力生成回路は、ホストプロセッサへの電力を増加させるとともに、JAVAプロセッサへの電力を減少させる。
【0015】
プロセッサに供給される変更を鈍化させるための、ランプ回路方法が、本発明の更なる実施形態において、開示されている。ランプ回路方法は、目標値を得ることにより始まり、この目標値は、プロセッサが設定される、所望の周波数あるいは電圧を表す。次に、この目標値は、現行値と比較され、差分値を得る。目標値と同様に、現行値は、プロセッサが現在動作している、現行の周波数あるいは電圧である。現行値は、次に、差分値が所定のしきい値外の時に、調整される。このしきい値は、ある範囲を有する値でも、あるいは、ゼロ等の単一の値でもよい。上記の動作は、その後、差分値が所定のしきい値内になるまで、繰り返される。
【0016】
有利なことには、本発明は、コンピュータシステムの最適電力およびパフォーマンスを、ホストおよびJAVAプロセッサの、動作周波数および動作電圧の両方を制御することにより、可能にしている。さらに、周波数および電圧の両方が、制御される場合、電圧は、周波数を増加する前に、増加されるとともに、周波数は、電圧を減少させる前に、減少される。これは、システムが、現行の電圧に対して、速過ぎる周波数では稼働しないことを、保証しており、更なる省電力化という結果をもたらしている。
【0017】
最後に、当業者には自明のものであるが、本発明のパワーマネジメントシステムは、プロセッサ間のメモリ更新ができるよう、動作条件変更間には十分な時間を保証するものである。本発明の他の様態および利点は、以下の詳細な説明から、添付の図面と併せて、明らかとなるものであり、以下の詳細な説明は、例を用いて発明の原理を説明するものである。
【0018】
(好適な実施形態の詳細な説明)
発明は、JAVAアクセラレータのパワーマネジメントシステムのために、開示されている。広い意味で言えば、本発明のパワーマネジメントシステムは、JAVAアクセラレータの電力消費を、JAVAアプリケーションの開始時には、ホストプロセッサへの電力を減少させるとともに、JAVAプロセッサへの電力は増加させることにより、また、JAVAアプリケーションの実行停止時には、このプロセスを逆転させることにより、管理する。
【0019】
以下の説明では、非常に多くの具体的な詳細が、記載されており、本発明の完全な理解を提供している。しかし、当業者にとって、本発明は、いくつかの、あるいは、すべての具体的な詳細がなくても実行されうることは、自明のものである。他の例において、公知の処理ステップが、詳細に説明されてはいないが、それは、不必要に本発明を不明瞭にしないためである。
【0020】
図1は、本発明の実施形態に基づき、JAVAハードウエアアクセラレータシステム10を示すブロック図である。JAVAハードウエアアクセラレータシステム10は、システムバス12を含み、このシステムバス12は、マスタ(ホスト)プロセッサ14、スレーブ(JAVA)プロセッサ16、および、システムメモリ18を含む。さらに、JAVAハードウエアアクセラレータシステム10は、バスアービトレータ20を含み、このバスアービトレータ20は、ホストプロセッサ14およびJAVAプロセッサ16間に、接続されている。
【0021】
JAVAハードウエアアクセラレータシステム10は、デュアルプロセッサシステムであり、JAVAプロセッサ16が、大部分のJAVA命令を実行し、ホストプロセッサ14は、残りすべての、複雑なJAVA命令を含む命令を実行する。「マシン内のマシン」というJAVAパラダイムに固有であるように、JAVAプロセッサ16は、スレーブプロセッサである。JAVAプロセッサ16は、「内部マシン」の役を務め、ホストプロセッサ14である「外部マシン」により、開始および制御される。
【0022】
ホストプロセッサ14は、任意のプロセッサに内蔵されてもよく、その任意のプロセッサには、現行の工業規格デバイスである、x86、ARM、および、MIPSデバイス等が、含まれる。JAVAプロセッサ16は、スタックベースプロセッサであることが好ましく、このスタックベースプロセッサは、命令とデータキャッシング、および、内部SRAMを含む。さらに、JAVAプロセッサ16は、レジスタベーススタックを含むことが好ましく、これは、関連する、米国特許出願第09/565,679の、タイトル「JAVAスタック、演算論理ユニット、および、マルチプルスタックポインタを有する統合サブシステムのアーキテクチャ、および、その使用方法」に記載されており、ここに、その全貌を引例として取り入れている。
【0023】
一般に、プロセッサ14は、オペレーティングシステム、JAVA以外のアプリケーション、および、複雑なJAVA命令をサポートする。一実施形態では、増設の専用ARM、あるいは、同等のプロセッサ(図示せず)が、使用され、複雑なJAVA命令を処理している。
【0024】
JAVAプロセッサ16は、一般に、少なくとも、次のJAVA命令、すなわち、ロード、格納、計算、分岐、プッシュ、および、フィールド、を実行することができる。好ましくは、整数および浮動小数点の両方を含む、すべての計算命令に対するサポートが、JAVAプロセッサ16に組込まれていることである。先にも述べたように、ホストプロセッサ14は、メソッド呼び出し等の、より複雑な命令を処理する。JAVAプロセッサ16は、複雑な命令が解読される時、例外を発生させるとともに、データキャッシュ内のすべてのダーティラインを、システムメモリ18に書き込む。その後、JAVAプロセッサ16は、実行を停止する。
【0025】
好ましくは、JAVAプロセッサ16が、現在実行されている方法への高速アクセスのための、命令キャッシュを含むことである。この方法をサポートするために使用されているローカルデータは、内部SRAMにあり、この内部SRAMは、概して、単一ポートであるとともに、ホストプロセッサ14およびJAVAプロセッサ16の両方により、アクセスすることができる。JAVAプロセッサ16が実行中の時は、ホストプロセッサ14は、ローカルデータ領域およびスタックの両方から、ロックアウトされる。さらに、アレイ等のローカルではない変数への高速アクセスのための、データキャッシュが、含まれている。
【0026】
図2は、本発明の実施形態に基づき、パワーマネジメントシステム50を示すブロック図である。パワーマネジメントシステム50は、ホストプロセッサ部52、および、JAVAプロセッサ部54を含む。ホストプロセッサ部52は、ホストスイッチレジスタ56を含み、このホストスイッチレジスタ56は、一組のホストノーマル動作電圧・周波数レジスタ58、および、一組のホストロー電圧・周波数レジスタ60に、接続されている。さらに、パワーマネジメントシステム50は、ホストランプ回路64に接続された一組のプログラム電圧・周波数生成器62、および、ホストプロセッサ14を含む。ホストプロセッサ14は、JAVAモード信号ポートを含み、このJAVAモード信号ポートは、JAVAモード信号68を、JAVAアプリケーションの開始と同時に供給する。
【0027】
JAVAプロセッサ部54は、JAVAスイッチレジスタ70を含み、このJAVAスイッチレジスタ70は、一組のJAVAノーマル動作電圧・周波数レジスタ72、一組のJAVAロー電圧・周波数レジスタ74、および、アイドルディレイタイマ76に、接続されている。さらに、パワーマネジメントシステム50は、JAVAランプ回路80に接続された一組のプログラム電圧・周波数生成器78、および、JAVAプロセッサ16を含む。JAVAプロセッサ16は、JAVA完了信号ポートを含み、このJAVA完了信号ポートは、JAVAアプリケーションの実行が停止されると、JAVA完了信号84を供給する。
【0028】
各プログラム電圧・周波数生成器62および78は、周波数変更の、実際のインプランテーションを供給し、この周波数変更は、ホストランプ回路64およびJAVAランプ回路80により、供給されるものである。動作中は、各プログラム電圧・周波数生成器62および78は、スロークロック信号によりクロックされるため、適切なランプ回路が、新しい電力をクロック毎に供給できる。
【0029】
各プロセッサ14および16は、基本的に、ノーマル動作モード、および、ローパワー動作モードの2つの動作モードを有している。ノーマル動作モードでは、ホストプロセッサ14およびJAVAプロセッサ16は、ホストプロセッサ14あるいはJAVAプロセッサ16が内蔵されているプロセッサのタイプとしては、通常ノーマルと考えられる電圧および周波数で、動作する。ローパワー動作モードでは、ホストプロセッサ14およびJAVAプロセッサ16は、低電圧および周波数で動作する。この低電圧および周波数とは、ホストプロセッサ14あるいはJAVAプロセッサ16が内蔵されているタイプのプロセッサとしては、ノーマルな動作電圧および周波数を、下回るものである。
【0030】
プロセッサ14/16が重要な処理を行う時に、ノーマル動作モードを使用し、プロセッサ14/16が、重要な処理を行わない時に、ローパワー動作モードに切り換えることにより、本発明は、さらなる省電力化を提供する。この省電力化は、プロセッサが使用されていない時に、各プロセッサ14/16の動作電圧および動作周波数の両方を低減させることができる能力によって、著しく強化される。
【0031】
初めに、ホストプロセッサのノーマル動作電圧、および、ノーマル動作周波数の値が、一組のホストノーマル動作電圧・周波数レジスタ58に格納される。さらに、ホストプロセッサのローパワー動作電圧値、および、ホストプロセッサのローパワー動作周波数値が、一組のホストロー電圧・周波数レジスタ60に格納される。同様にして、JAVAプロセッサのノーマル動作電圧値、および、JAVAプロセッサのノーマル動作周波数値が、一組のJAVAノーマル動作電圧・周波数レジスタ72に格納される。JAVAプロセッサのローパワー動作電圧値、および、JAVAプロセッサのローパワー動作周波数値が、次に、一組のJAVAロー電圧・周波数レジスタ74に格納される。
【0032】
こうして、ホストおよびJAVAノーマル動作電圧・周波数レジスタ58および72の組は、それぞれ、ホストプロセッサ14およびJAVAプロセッサ16の、ノーマル動作電圧および周波数を規定している。同様にして、ホストおよびJAVAロー電圧・周波数レジスタ60および74の組は、それぞれ、ホストプロセッサ14およびJAVAプロセッサ16の、ローパワー動作電圧および周波数を規定している。
【0033】
ノーマル動作中は、ホストプロセッサ14は、ホストノーマル動作電圧・周波数レジスタ58により規定されるノーマル動作モードに従い、動作する。一方、JAVAプロセッサ16は、JAVAロー電圧・周波数レジスタ74により規定されるローパワー動作モードに従い、動作する。先にも説明したように、ホストプロセッサ14は、一般に、メソッド呼び出し等の、JAVAプロセッサが処理しない、複雑なJAVA命令を除くJAVA以外のすべての命令を、実行する。JAVAアプリケーションの開始と同時に、ホストプロセッサは、JAVAモード信号68を発生させる。それにより、パワーマネジメントシステム50に対して、JAVAアプリケーションがJAVAプロセッサ16により実行されることが、伝えられる。ホストレジスタスイッチ56およびJAVAレジスタスイッチ70は、次に、JAVAモード信号68を受信し、JAVAモード信号68は、ホストレジスタスイッチ56およびJAVAレジスタスイッチ70に対し、ホストおよびJAVAプロセッサ14および16を、動作モードに切り換えるよう命令する。
【0034】
JAVAモード信号68を受信すると同時に、ホストレジスタスイッチ56は、ホストプロセッサ14のホスト目標電圧・周波数値を、ホストロー電圧・周波数レジスタ60に格納された値に、設定する。同様にして、JAVAレジスタスイッチ70は、JAVAプロセッサ16のJAVA目標電圧・周波数値を、JAVAノーマル動作電圧・周波数レジスタ72に格納された値に、設定する。
【0035】
この時点で、ホストランプ回路64は、ホスト目標電圧・周波数値を使用して、徐々に、ホストプロセッサ14の、現行の電圧および周波数を、ホスト目標電圧・周波数値まで減少させる。同様の方法で、JAVAランプ回路80は、JAVA目標電圧・周波数値を使用して、徐々に、JAVAプロセッサ16の、現行の電圧および周波数を、JAVA目標電圧・周波数値まで増加させる。
【0036】
ホストおよびJAVAランプ回路64および80は、それぞれ、小さな増分電圧・周波数の増加または減少を、ホストプロセッサおよびJAVAプロセッサの現行の電圧および周波数が、各々の目標電圧・周波数値に到達するまでの間、供給する。各電圧および周波数の減分後、ホストランプ回路64は、新しい減分電圧・周波数値を、ホストプロセッサ14に接続されている一組のプログラム電圧・周波数生成器62に、供給する。一組のプログラム電圧・周波数生成器62は、次に、ホストプロセッサ14の電圧および周波数を、新しい減分電圧・周波数値に設定する。
【0037】
同様にして、各増分後、JAVAランプ回路80は、新しい増分電圧・周波数値を、JAVAプロセッサ16に接続されている一組のプログラム電圧・周波数生成器78に、供給する。一組のプログラム電圧・周波数生成器78は、次に、JAVAプロセッサ16の電圧および周波数を、新しい増分電圧・周波数値に設定する。こうして、電力は、JAVAアプリケーションが開始される時、ホストプロセッサ14において、減少するとともに、JAVAプロセッサ16においては、増加する。その結果、システム50の実質的な省電力化につながる。
【0038】
JAVAプロセッサ16は、次に、JAVAアプリケーションの実行を開始する。JAVAプロセッサ16は、一般に、JAVAアプリケーションを、JAVAアプリケーションが完了するまで、あるいは、JAVAプロセッサ16が処理できない、複雑なJAVA命令が現れるまで、引き続き実行する。この時点で、JAVAプロセッサ16は、JAVA完了信号84、あるいは、中断信号を発生させ、これは、ホストレジスタスイッチ56およびJAVAレジスタスイッチ70により受信され、パワーマネジメントシステム50に対して、JAVAアプリケーションの実行停止を知らせる。
【0039】
JAVA完了信号84を受信すると同時に、ホストレジスタスイッチ56は、ホスト目標電圧・周波数値を、ホストノーマル動作電圧・周波数レジスタ58に格納されている値に、設定する。同様にして、JAVAレジスタスイッチ70は、JAVA目標電圧・周波数値を、JAVAロー電圧・周波数レジスタ74に格納されている値に、設定する。
【0040】
この時点で、ホストランプ回路64は、ホスト目標電圧・周波数値を使用して、徐々に、ホストプロセッサ14の現行の電圧および周波数を、ホスト目標電圧・周波数値まで増加させる。同様の方法で、JAVAランプ回路80は、JAVA目標電圧・周波数値を使用して、徐々に、JAVAプロセッサ16の現行の電圧および周波数を、JAVA目標電圧・周波数値まで減少させる。
【0041】
上記に記載される様に、ホストおよびJAVAランプ回路64および80は、それぞれ、小さな増分電圧・周波数の増加または減少を、ホストプロセッサおよびJAVAプロセッサの、現行の電圧および周波数が、各々の目標電圧・周波数値に到達するまでの間、供給する。各増分後、ホストランプ回路64は、新しい増分電圧・周波数値を、ホストプロセッサ14に接続されている一組のプログラム電圧・周波数生成器62に、供給する。一組のプログラム電圧・周波数生成器62は、次に、ホストプロセッサ14の電圧および周波数を、新しい増分電圧・周波数値に設定する。
【0042】
同様にして、各減分後、JAVAランプ回路80は、新しい減分電圧・周波数値を、JAVAプロセッサ16に接続されている一組のプログラム電圧・周波数生成器78に、供給する。一組のプログラム電圧・周波数生成器78は、次に、JAVAプロセッサ16の電圧および周波数を、新しい減分電圧・周波数値に設定する。こうして、電力は、JAVAアプリケーションの実行停止時に、ホストプロセッサ14において、増加するとともに、JAVAプロセッサ16においては、減少する。この時点で、ホストプロセッサ14は、システムの制御を再開し、引き続きコンピュータ命令を実行する。
【0043】
JAVA実行中、JAVAプロセッサ16は、情報をローカルキャッシュに格納し、様々なJAVA命令の実行に使用する。JAVA実行が停止すると、この情報を、ホストプロセッサ14が、システムバスを介して利用できるようになる。この情報を、JAVAプロセッサ16が遮断されて、ローパワー動作モードに切り替わる前に供給するために、本発明は、アイドルディレイタイマ76を使用しており、このアイドルディレイタイマ76は、JAVAレジスタスイッチ70およびJAVAランプ回路80の間に、接続されている。
【0044】
アイドルディレイタイマ76は、JAVA電圧ランプ回路80が、JAVA目標電圧・周波数値を、一組のJAVAロー電圧・周波数レジスタ74に格納されている、より低い値に設定することを、遅延させる。遅延の長さは、JAVAプロセッサ16のキャッシュメモリサイズの一関数で、この遅延の長さは、キャッシュ内情報が、JAVAプロセッサ16へのパワーが減少される前に、システムメモリに転送されるように、設定される。なお、アイドルディレイタイマ76は、JAVAプロセッサ16が、JAVA完了信号84を発生させる時にのみ、機能することが好ましい。
【0045】
図3は、本発明の実施形態に基づき、模範的なランプ回路100を示すブロック図である。模範的なランプ回路100は、周波数ランプ回路として使用するために示されているが、ランプ回路100は、電圧ランプ回路としても、レジスタに、周波数値の代わりに電圧値を供給することにより、使用することができる。
【0046】
ランプ回路100は、コンパレータ102を含み、コンパレータ102は、目標周波数レジスタ104、現行周波数レジスタ106、および、オフセットテーブル108に、接続されている。さらに、ランプ回路100は、オフセット周波数レジスタ110を含み、オフセット周波数レジスタ110は、オフセットテーブル108、および、現行周波数レジスタ106に、接続されている。最後に、ランプ回路100は、周波数状態マシン112を含み、周波数状態マシン112は、ランプ回路100に対する制御を供給する。なお、現行周波数レジスタ106は、プログラム周波数生成器114にも接続されている。
【0047】
パワーモードが、ノーマル動作とローパワー動作モード間で切り換えられる時、ホストおよびJAVAプロセッサの両方になされる、電圧および周波数の変更は、電力供給およびデジタル論理に対するストレス付加を阻止するために、鈍化されることが好ましい。
【0048】
後により詳述されるように、ランプ回路100は、小さな増分変更をプロセッサの電圧および周波数に供給し、こうした変更の適切な優先順位を保証する。特に、プロセッサへの電力が、ローパワーからノーマルパワーへ切り替わる時、電圧は、周波数が増加される前に、増加される。逆に、プロセッサへの電力が、ノーマルパワーからローパワーへ切り替わる時、周波数は、電圧が減少される前に、減少される。
【0049】
動作中は、ランプ回路100は、周波数状態マシン112により供給される、比較的スローなクロック信号により、クロックされる。先にも述べたように、ランプ回路100は、目標周波数を、一組の、ノーマル動作あるいはローパワーのいずれかの周波数レジスタから、現行のパワー動作モードに従い、獲得し、そして、この目標周波数を、目標周波数レジスタ104に格納する。関連するプロセッサの現行の動作周波数は、現行周波数レジスタ106に格納されている。
【0050】
クロック信号毎に、コンパレータ102は、目標周波数レジスタ104に格納されている値を、現行周波数レジスタ106に格納されている値と比較し、差分値を出す。この差分値とは、目標周波数レジスタ104に格納されている値と、現行周波数レジスタ106に格納されている値間の、値の差である。
【0051】
差分値が所定のしきい値外であれば、表検索が、差分値およびオフセットテーブル108を使用して、行われる。そして、表検索の結果が、オフセット周波数レジスタ110に格納される。所定のしきい値は、容認できる周波数の範囲の値、単一値、あるいは、ゼロでもよい。しきい値をゼロに設定することは、差分値がゼロではない時は常に、差分値は、しきい値外ということになる。しきい値を単一値に設定することは、ゼロと単一値間の値域を意味する。差分値は、差分値がしきい値の値域外である時は常に、ベースとされる値域のしきい値外である。
【0052】
オフセット周波数レジスタ110に格納された値は、次に、現行周波数レジスタ106に加算、あるいは、減算され、その結果は、現行周波数レジスタに格納される。好ましくは、オフセットテーブルが、周波数オフセットを供給するように、構成されることであり、周波数オフセットは、周波数変更を、周波数の滑らかなリニアランプにすることができる。任意的に、オフセット周波数レジスタ110は、省略でき、オフセット値は、現行周波数レジスタ106に、オフセットテーブル108から、直接加算、あるいは、直接減算される。現行周波数レジスタ106に格納された、新しい周波数値は、次に、プログラム周波数生成器114をプログラムするために使用され、これにより、関連するプロセッサの周波数を、新しい現行の周波数値に設定する。
【0053】
ランプ回路100は、上記の動作を、差分値が所定のしきい値内になるまで、続ける。この時点で、関連するプロセッサは、目標周波数で動作し、適切な命令の処理を開始することができる。他の実施形態では、上記の動作は、所定のしきい値が達成される時でも、依然として続けられる。本実施形態では、ゼロ値は、オフセットレジスタ110に格納されており、それにより、これ以上の変更は、現行の周波数値に加えられない。次に、新しい目標周波数が、目標周波数レジスタに格納されると、ランプ回路100は、自動的に動作を続け、現行の周波数を、新しい目標値にランプする。
【0054】
先にも述べたように、ランプ回路100は、ランプ回路100の周波数値を電圧値に変更し、回路100をプログラム電圧生成器に接続させることにより、電圧ランプ回路として動作可能である。
【0055】
図4は、本発明の実施形態に基づき、パワーマネジメントをハードウエアベースのJAVAアクセラレータに供給するプロセス200を示すフローチャートである。初期動作202では、前処理動作が、行われる。前処理動作には、JAVAプログラムカウンタおよびスタックポインタの初期化、および、その他の、当業者には自明の前処理動作が、含まれる。
【0056】
JAVAモード動作204では、JAVAモード信号が、ホストプロセッサから、JAVAアプリケーションの開始に応じて供給される。ノーマル動作中は、ホストプロセッサは、そのノーマル動作モードに従い、動作する。このノーマル動作モードは、ホストノーマル動作電圧・周波数レジスタにより規定されるものである。その一方、JAVAプロセッサは、そのローパワー動作モードに従い、動作する。このローパワー動作モードは、JAVAロー電圧・周波数レジスタにより規定されるものである。ホストプロセッサは、一般に、メソッド呼び出し等の、複雑なJAVA命令を除くJAVA以外のすべての命令を実行する。JAVAアプリケーションの開始と同時に、ホストプロセッサは、JAVAモード信号を発生させる。それにより、パワーマネジメントシステムに対し、JAVAアプリケーションが、JAVAプロセッサにより実行されることが、伝えられる。ホストレジスタスイッチおよびJAVAレジスタスイッチは、次に、JAVAモード信号を受信する。それにより、ホストレジスタスイッチおよびJAVAレジスタスイッチに対し、ホストおよびJAVAプロセッサを、動作モードに切り換えるよう命令する。
【0057】
次に、ホスト電力低減動作206では、ホストプロセッサへの電力は、JAVAモード信号に応じて減少される。JAVAモード信号の受信と同時に、ホストレジスタスイッチは、ホストプロセッサのホスト目標電圧・周波数値を、ホストローパワー電圧・周波数レジスタに格納されている値に、設定する。ホストランプ回路は、次に、ホスト目標電圧・周波数値を使用して、徐々に、ホストプロセッサの現行の電圧および周波数を、ホスト目標電圧・周波数値まで減少させる。
【0058】
先にも説明したように、ホストランプ回路は、小さな増分電圧・周波数の増加または減少を、ホストプロセッサの現行の電圧および周波数が、目標電圧・周波数値に到達するまでの間、供給する。各電圧および周波数の減分後、ホストランプ回路は、新しい減分電圧・周波数値を、ホストプロセッサに接続されている一組のプログラム電圧・周波数生成器に、供給する。一組のプログラム電圧・周波数生成器は、次に、ホストプロセッサの電圧および周波数を、新しい減分電圧・周波数値に設定する。
【0059】
JAVA電力増加動作208では、JAVAプロセッサへの電力が、JAVAモード信号に応じて増加する。JAVAモード信号受信と同時に、JAVAレジスタスイッチは、JAVAプロセッサに対するJAVA目標電圧・周波数値を、JAVAノーマル動作電圧・周波数レジスタに格納された値に、設定する。JAVAランプ回路は、次に、JAVA目標電圧・周波数値を使用して、徐々に、JAVAプロセッサの現行の電圧および周波数を、JAVA目標電圧・周波数値まで増加させる。
【0060】
各電圧および周波数の増分後、JAVAランプ回路は、新しい増分電圧・周波数値を、JAVAプロセッサに接続されている一組のプログラム電圧・周波数生成器に、供給する。一組のプログラム電圧・周波数生成器は、次に、JAVAプロセッサの電圧および周波数を、新しい増分電圧・周波数値に設定する。ノーマル動作電圧および周波数に到達後、JAVAプロセッサは、JAVAアプリケーションの実行を開始する。JAVAプロセッサは、一般に、JAVAアプリケーションを、JAVAアプリケーションが完了するまで、あるいは、JAVAプロセッサ16が処理できない、複雑なJAVA命令が現れるまで、引き続き実行する。
【0061】
JAVA完了信号動作210では、JAVA完了信号が、JAVAプロセッサから、JAVAアプリケーションの実行停止時に、発生する。この時点で、JAVAプロセッサは、JAVA完了信号、あるいは、中断信号を発生させ、これは、ホストレジスタスイッチおよびJAVAレジスタスイッチにより受信される。JAVA完了信号は、パワーマネジメントシステムに対して、JAVAアプリケーションの実行停止を知らせる。
【0062】
JAVA完了動作212では、ホストプロセッサへの電力は、次に、JAVA完了信号に応じて増加され、JAVAプロセッサへの電力は、減少される。JAVA完了信号84を受信すると同時に、ホストレジスタスイッチは、ホスト目標電圧・周波数値を、ホストノーマル動作電圧・周波数レジスタから供給される値に設定する。同様にして、JAVAレジスタスイッチは、JAVA目標電圧・周波数値を、JAVAロー電圧・周波数レジスタから供給される値に設定する。
【0063】
この時点で、ホストランプ回路は、ホスト目標電圧・周波数値を使用して、徐々に、ホストプロセッサの現行の電圧および周波数を、ホスト目標電圧・周波数値まで、増加させる。同様の方法で、JAVAランプ回路は、JAVA目標電圧・周波数値を使用して、徐々に、JAVAプロセッサの現行の電圧および周波数を、JAVA目標電圧・周波数値まで、減少させる。
【0064】
上記に記載される様に、ホストおよびJAVAランプ回路は、それぞれ、小さな増分電圧・周波数の増加または減少を、ホストプロセッサおよびJAVAプロセッサの現行の電圧および周波数が、各々の目標電圧・周波数値に到達するまでの間、供給する。各増分後、ホストランプ回路は、新しい増分電圧・周波数値を、ホストプロセッサに接続されている一組のプログラム電圧・周波数生成器に、供給する。一組のプログラム電圧・周波数生成器は、次に、ホストプロセッサの電圧および周波数を、新しい増分電圧・周波数値に設定する。
【0065】
同様にして、各減分後、JAVAランプ回路は、新しい減分電圧・周波数値を、JAVAプロセッサに接続されている一組のプログラム電圧・周波数生成器に、供給する。一組のプログラム電圧・周波数生成器は、次に、JAVAプロセッサの電圧および周波数を、新しい減分電圧・周波数値に設定する。こうして、電力は、JAVAアプリケーションの実行停止時に、ホストプロセッサにおいて、増加するとともに、JAVAプロセッサにおいては、減少する。この時点で、ホストプロセッサは、システムの制御を再開し、引き続きコンピュータ命令を実行する。
【0066】
JAVAの実行が停止すると、ローカルメモリキャッシュに格納されている情報を、ホストプロセッサが、システムバスを介して利用できるようになる。この情報を、JAVAプロセッサが遮断されて、ローパワー動作モードに切り替わる前に供給するために、本発明は、アイドルディレイタイマを使用しており、このアイドルディレイタイマは、JAVAレジスタスイッチおよびJAVAランプ回路の間に、接続されている。
【0067】
アイドルディレイタイマは、JAVA電圧ランプ回路が、JAVA目標電圧・周波数値を、一組のJAVAロー電圧・周波数レジスタから供給される、より低い値に設定することを、遅延させる。遅延の長さは、JAVAプロセッサのキャッシュメモリサイズの一関数であり、この遅延の長さは、キャッシュ内情報が、JAVAプロセッサへのパワーが減少される前に、システムメモリに転送されるように、設定される。なお、アイドルディレイタイマは、JAVAプロセッサが、JAVA完了信号を発生させる時にのみ、機能することが好ましい。
【0068】
後処理動作は、次に、動作214において行われる。後処理動作には、JAVAメソッド呼び出しの実行、および、その他の、当業者には自明の後処理動作が、含まれる。有利なことには、ホストおよびJAVAプロセッサ両方の動作電圧、および、動作周波数を、共に制御することにより、コンピュータシステムの最適電力およびパフォーマンスが、可能になる。
【0069】
図5は、本発明の実施形態に基づき、プロセッサに供給される変更を鈍化させるためのランプ回路プロセス300を示すフローチャートである。ランプ回路プロセス300は、電圧ランプ回路プロセスとして記載されているが、ランプ回路プロセス300は、プロセッサの周波数あるいは電圧のいずれかを、ランプするために使用することができる。以下の電圧値を、周波数値に差し替えることにより、ランプ回路プロセス300は、周波数ランプ回路プロセスとして使用できる。初期動作302では、前処理動作が、行われる。前処理動作には、ノーマル動作、および、ローパワー電圧・周波数レジスタの初期化、および、その他の、当業者には自明の前処理動作が、含まれる。
【0070】
目標値動作304では、目標値は、電圧・周波数レジスタから得られる。目標電圧値は、一組の、ノーマル動作あるいはローのいずれかの電圧レジスタから、現行のパワー動作モードに従い、得られ、そして、この目標電圧値は、目標電圧レジスタに格納される。関連するプロセッサの、現行の動作電圧は、現行電圧レジスタに格納されている。
【0071】
次に、比較動作306では、目標値は、現行値と比較され、差分値を得る。クロック信号毎に、コンパレータは、目標電圧レジスタに格納されている値を、現行電圧レジスタに格納されている値と比較し、差分値を出す。この差分値とは、目標電圧レジスタに格納されている値と、現行電圧レジスタに格納されている値間の、値の差である。
【0072】
次に、差分値が、所定のしきい値外であるかどうかを、動作308において、決定する。所定のしきい値は、容認できる周波数の範囲の値、単一値、あるいは、ゼロでもよい。しきい値をゼロに設定することは、差分値がゼロではない時は常に、差分値は、しきい値外ということになる。しきい値を単一値に設定することは、ゼロと単一値間の値域を意味する。差分値は、差分値がしきい値の値域外である時は常に、ベースとされる値域のしきい値外である。差分値が、所定のしきい値外であれば、ランプ回路プロセス300は、引き続き、表検索動作310を行う。そうでなければ、ランプ回路プロセス300は、動作312において完了する。
【0073】
差分値は、オフセットテーブルで表検索を行うために、表検索動作310において使用される。複数の電圧入力を含むオフセットテーブルが、提供されている。オフセットテーブル内の差分値を調べることにより、オフセット電圧値が、得られる。結果として生じる、オフセットテーブルからのオフセット値は、次に、オフセット電圧レジスタに格納される。好ましくは、オフセットテーブルが、電圧オフセットを供給するように構成されていることであり、電圧オフセットは、プロセッサの電圧変更を、電圧の滑らかなリニアランプにすることができる。
【0074】
調整動作314では、現行の電圧は、動作310において得られたオフセット電圧に基づいて、調整される。オフセット電圧レジスタに格納されている値は、現行電圧レジスタに格納されている値に加算、あるいは、減算され、その結果は、現行電圧レジスタに格納される。任意的に、オフセット電圧レジスタは、省略でき、オフセット値は、現行電圧レジスタに、オフセットテーブルから、直接加算、あるいは、直接減算される。
【0075】
電圧プログラム動作316では、新しい現行の電圧が、プログラム電圧生成器に供給される。新しい電圧値は、現行電圧レジスタに格納され、この電圧値は、プログラム電圧生成器をプログラムするために使用され、それにより、関連するプロセッサの電圧を、新しい現行の電圧値に設定することができる。ランプ回路プロセス300は、次に、別の比較動作304を引き続き行う。なお、現行電圧レジスタは、新たに調整された現行の電圧値を含む。
【0076】
現行の電圧値が、所定のしきい値内の時、ランプ回路プロセス300は、動作312において完了する。この時点で、関連するプロセッサは、目標電圧で動作し、適切な命令の処理を開始することができる。
【0077】
他の実施形態では、ランプ回路プロセス300は、所定のしきい値が達成されている時でも、他の比較動作304を依然として続けるものである。本実施形態では、ゼロ値は、オフセットレジスタに格納されており、それにより、これ以上の変更は、現行の周波数値に加えられない。新しい目標電圧が、目標電圧レジスタに格納されると、ランプ回路は、自動的に動作を続け、現行の電圧を新しい目標値にランプする。
【0078】
ランプ回路プロセス300は、電圧および周波数の変更の、適切な優先順位を保証する。特に、プロセッサへの電力が、ローパワーからノーマルパワーへ切り替わる時、電圧は、周波数が増加される前に、増加される。逆に、プロセッサへの電力が、ノーマルパワーからローパワーへ切り替わる時、周波数は、電圧が減少される前に、減少される。
【0079】
有利なことには、ランプ回路プロセス300は、電源あるいはデジタル回路のいずれもが、動作条件の変更中に、ストレスを受けないことを保証し、また、プロセッサ間のメモリ更新ができるよう、動作条件変更間には十分な時間を保証するものである。
【0080】
先に述べた発明は、理解を明瞭にする目的で多少詳細に記載されているが、一部の変更および修正は、添付のクレームの範囲内において、可能である。従って、本実施形態は、例示的なものであって限定的なものではなく、本発明は、ここに記載の詳細に限定されるものではなく、添付のクレームの範囲および均等内において、修正できるものである。
【図面の簡単な説明】
本発明は、その更なる利点と共に、以下の説明を、添付の図面と併せて参照することにより、最大に理解されるであろう。
【図1】
図1は、本発明の実施形態に基づき、JAVAハードウエアアクセラレータシステムを示すブロック図である。
【図2】
図2は、本発明の実施形態に基づき、パワーマネジメントシステムを示すブロック図である。
【図3】
図3は、本発明の実施形態に基づき、模範的なランプ回路を示すブロック図である。
【図4】
図4は、本発明の実施形態に基づき、パワーマネジメントを、ハードウエアベースのJAVAアクセラレータに供給するプロセスを示すフローチャートである。
【図5】
図5は、本発明の実施形態に基づき、プロセッサに供給される変更を、鈍化させるためのランプ回路プロセスを示すフローチャートである。
Claims (20)
- パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給するパワーマネジメント方法であって、
JAVAモード信号を、ホストプロセッサから、JAVAアプリケーションの開始に応じて供給する工程と、
前記ホストプロセッサへの電力を、前記JAVAモード信号に応じて減少させる工程と、
JAVAプロセッサへの電力を、前記JAVAモード信号に応じて増加させる工程と、
JAVA完了信号を、前記JAVAプロセッサから、前記JAVAアプリケーションの実行停止時に発生させる工程と、
を備えることを特徴とするパワーマネジメント方法。 - 請求項1記載のパワーマネジメント方法において、さらに
前記ホストプロセッサへの電力を、前記JAVA完了信号に応じて増加させる工程と、
前記JAVAプロセッサへの電力を、前記JAVA完了信号に応じて減少させる工程と、
を備えることを特徴とするパワーマネジメント方法。 - 請求項2記載のパワーマネジメント方法において、電力は、電圧および周波数を含むことを特徴とするパワーマネジメント方法。
- 請求項2記載のパワーマネジメント方法において、前記プロセッサへの前記電力は、ランプ回路プロセスを使用することにより増加され、このランプ回路プロセスは、
(a)目標電力値を得る工程と、
(b)前記目標電力値を現行電力値と比較する工程と、
(c)前記現行電力値を、現行電力値が前記目標電力値より小さい時に、増加させる工程と、
(d)動作(a)から(c)を、前記現行電力値が、基本的に、前記目標電力値に等しくなるまで繰り返す工程と、
を備えることを特徴とするパワーマネジメント方法。 - 請求項4記載のパワーマネジメント方法において、前記現行電力値は、オフセットテーブルから得られる量により増加することを特徴とするパワーマネジメント方法。
- 請求項2記載のパワーマネジメント方法において、前記プロセッサへの前記電力は、ランプ回路プロセスを使用することにより減少され、このランプ回路プロセスは、
(a)目標電力値を得る工程と、
(b)前記目標電力値を現行電力値と比較する工程と、
(c)前記現行電力値を、現行電力値が前記目標電力値より大きい時に、減少させる工程と、
(d)動作(a)から(c)を、前記現行電力値が、基本的に、前記目標電力値に等しくなるまで繰り返す工程と、
を備えることを特徴とするパワーマネジメント方法。 - 請求項6記載のパワーマネジメント方法において、前記現行電力値は、オフセットテーブルから得られる量により減少することを特徴とするパワーマネジメント方法。
- パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給するパワーマネジメントシステムであって、
電力生成回路に接続されるホストプロセッサであって、JAVAモード信号を供給できるJAVAモード信号ポートを有する、ホストプロセッサと、
電力生成回路に接続されるJAVAプロセッサであって、JAVA完了信号を供給できるJAVA完了信号ポートを有する、JAVAプロセッサと、
を備え、前記電力生成回路は、JAVAモード信号の受信に応じて、前記ホストプロセッサへの電力を減少させるとともに、前記JAVAプロセッサへの電力を増加させ、かつ、前記電力生成回路は、前記JAVA完了信号の受信に応じて、前記ホストプロセッサへの電力を増加させるとともに、前記JAVAプロセッサへの電力を減少させることを特徴とするパワーマネジメントシステム。 - 請求項8記載のパワーマネジメントシステムにおいて、前記ホストプロセッサは、前記JAVAモード信号を、JAVAアプリケーションの開始に応じて、供給することを特徴とするパワーマネジメントシステム。
- 請求項9記載のパワーマネジメントシステムにおいて、前記JAVAプロセッサは、前記JAVA完了信号を、JAVAアプリケーションの実行停止時に供給することを特徴とするパワーマネジメントシステム。
- 請求項8記載のパワーマネジメントシステムにおいて、前記電力生成回路は、
前記ホストプロセッサに接続される、第一組のプログラム電圧・周波数生成器と、
前記JAVAプロセッサに接続される、第二組のプログラム電圧・周波数生成器と、
を備え、前記第一組のプログラム電圧・周波数生成器は、前記ホストプロセッサに対して、電圧および周波数を調整でき、かつ、前記第二組のプログラム電圧・周波数生成器は、前記JAVAプロセッサに対して、電圧および周波数を調整できることを特徴とするパワーマネジメントシステム。 - 請求項11記載のパワーマネジメントシステムにおいて、さらに
前記第一組のプログラム電圧・周波数生成器に接続される、ホストランプ回路であって、増分電圧および周波数の変更を、前記第一組のプログラム電圧・周波数生成器に対して、供給できるホストランプ回路と、
前記第二組のプログラム電圧・周波数生成器に接続される、JAVAランプ回路であって、増分電圧および周波数の変更を、前記第二組のプログラム電圧・周波数生成器に対して、供給できるJAVAランプ回路と、
を備え、それにより、前記ホストランプ回路、および、前記JAVAランプ回路は、前記ホストプロセッサ、および、前記JAVAプロセッサに供給される、電圧および周波数の変更を、鈍化させることを特徴とするパワーマネジメントシステム。 - 請求項12記載のパワーマネジメントシステムにおいて、前記ホストランプ回路、および、前記JAVAランプ回路は、現行の電圧および周波数に対する変化量を、オフセットテーブルを使用して、決定することを特徴とするパワーマネジメントシステム。
- 請求項13記載のパワーマネジメントシステムにおいて、ノーマル動作電圧・周波数値、および、ローパワー電圧・周波数値は、前記ホストプロセッサのために格納され、かつ、ノーマル動作電圧・周波数値、および、ローパワー電圧・周波数値は、前記JAVAプロセッサのために格納されることを特徴とするパワーマネジメントシステム。
- 請求項14記載のパワーマネジメントシステムにおいて、前記ホストランプ回路は、増分電圧および周波数の変更を、前記ホストプロセッサの、前記ノーマル動作電圧・周波数値、および、ローパワー電圧・周波数値により規定された数値の範囲内で供給し、かつ、
前記JAVAランプ回路は、増分電圧および周波数の変更を、前記JAVAプロセッサの、前記ノーマル動作電圧・周波数値、および、ローパワー電圧・周波数値により規定された数値の範囲内で供給することを特徴とするパワーマネジメントシステム。 - プロセッサに供給される変更を鈍化させるランプ回路方法であって、
(a)目標値を得る工程と、
(b)前記目標値を、現行値と比較して、差分値を得る工程と、
(c)前記現行値を、前記差分値が所定のしきい値外の時に、調整する工程と、
(d)動作(a)から(c)を、前記差分値が所定のしきい値内になるまで、繰り返す工程と、
を備えることを特徴とするランプ回路方法。 - 請求項16記載のランプ回路方法において、さらに
オフセット値を、オフセットテーブルから、前記差分値を使用して、決定する工程と、
前記現行値を、前記オフセット値により規定される量によって、調整する工程と、
を備えることを特徴とするランプ回路方法。 - 請求項17記載のランプ回路方法において、さらに前記現行値を、プログラム電力生成回路に供給する動作を備え、このプログラム電力生成回路は、プロセッサの、現行の動作条件を決定することを特徴とするランプ回路方法。
- 請求項16記載のランプ回路方法において、前記目標値、および、前記現行値は、電圧値であることを特徴とするランプ回路方法。
- 請求項16記載のランプ回路方法において、前記目標値、および、前記現行値は、周波数値であることを特徴とするランプ回路方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/645,468 US6766460B1 (en) | 2000-08-23 | 2000-08-23 | System and method for power management in a Java accelerator environment |
PCT/EP2001/009509 WO2002017064A2 (en) | 2000-08-23 | 2001-08-17 | System and method for power management in a java accelerator environment |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004507814A true JP2004507814A (ja) | 2004-03-11 |
Family
ID=24589147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002521689A Withdrawn JP2004507814A (ja) | 2000-08-23 | 2001-08-17 | Javaアクセラレータ環境におけるパワーマネジメントシステムおよびその方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6766460B1 (ja) |
EP (1) | EP1368729B1 (ja) |
JP (1) | JP2004507814A (ja) |
KR (1) | KR20020085883A (ja) |
CN (1) | CN100437433C (ja) |
AT (1) | ATE528708T1 (ja) |
WO (1) | WO2002017064A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101832821B1 (ko) * | 2012-09-10 | 2018-02-27 | 삼성전자주식회사 | 동적 전압 주파수 스케일링 방법, 어플리케이션 프로세서 및 이를 구비하는 모바일 기기 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1387258A3 (en) * | 2002-07-31 | 2008-01-02 | Texas Instruments Incorporated | Processor-processor synchronization |
TW583530B (en) * | 2002-08-20 | 2004-04-11 | Via Tech Inc | Method of using N division operation to switch CPU work voltage |
US8086884B2 (en) * | 2002-12-16 | 2011-12-27 | Hewlett-Packard Development Company, L.P. | System and method for implementing an integrated circuit having dynamically variable power limit |
US7444524B2 (en) * | 2002-12-30 | 2008-10-28 | Intel Corporation | Dynamic voltage transitions |
US7203857B2 (en) * | 2003-03-28 | 2007-04-10 | Elliptic Semiconductor Inc. | On-demand clock switching |
US7281149B2 (en) * | 2004-02-24 | 2007-10-09 | Hewlett-Packard Development Company, L.P. | Systems and methods for transitioning a CPU from idle to active |
US7409670B1 (en) * | 2004-04-01 | 2008-08-05 | Altera Corporation | Scheduling logic on a programmable device implemented using a high-level language |
US7370311B1 (en) | 2004-04-01 | 2008-05-06 | Altera Corporation | Generating components on a programmable device using a high-level language |
US7536567B2 (en) * | 2004-12-10 | 2009-05-19 | Hewlett-Packard Development Company, L.P. | BIOS-based systems and methods of processor power management |
US7502948B2 (en) * | 2004-12-30 | 2009-03-10 | Intel Corporation | Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores |
US7346863B1 (en) | 2005-09-28 | 2008-03-18 | Altera Corporation | Hardware acceleration of high-level language code sequences on programmable devices |
US7752480B2 (en) * | 2006-08-18 | 2010-07-06 | International Business Machines Corporation | System and method for switching digital circuit clock net driver without losing clock pulses |
US8086977B2 (en) * | 2006-08-18 | 2011-12-27 | International Business Machines Corporation | Design Structure for switching digital circuit clock net driver without losing clock pulses |
US7962775B1 (en) * | 2007-01-10 | 2011-06-14 | Marvell International Ltd. | Methods and apparatus for power mode control for PDA with separate communications and applications processors |
JP5084372B2 (ja) | 2007-07-03 | 2012-11-28 | キヤノン株式会社 | データ処理装置およびデータ処理装置の制御方法 |
GB2452778A (en) * | 2007-09-17 | 2009-03-18 | Toshiba Res Europ Ltd | Linking dynamic voltage scaling in master and slave modules |
US8949635B2 (en) * | 2007-09-28 | 2015-02-03 | Intel Corporation | Integrated circuit performance improvement across a range of operating conditions and physical constraints |
US7992015B2 (en) * | 2008-02-05 | 2011-08-02 | Dell Products L.P. | Processor performance state optimization |
US11073894B2 (en) * | 2019-05-24 | 2021-07-27 | Qualcomm Incorporated | System power management for peripheral component interconnect express (PCIE)-based devices |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US565679A (en) | 1896-08-11 | William glanzer | ||
US670496A (en) | 1900-10-20 | 1901-03-26 | Eureka Shoe Company | Hand tacking tool. |
US4171539A (en) * | 1977-12-19 | 1979-10-16 | The Bendix Corporation | Power strobed digital computer system |
US4203153A (en) * | 1978-04-12 | 1980-05-13 | Diebold, Incorporated | Circuit for reducing power consumption in battery operated microprocessor based systems |
US5497497A (en) * | 1989-11-03 | 1996-03-05 | Compaq Computer Corp. | Method and apparatus for resetting multiple processors using a common ROM |
US5251320A (en) * | 1990-05-25 | 1993-10-05 | International Business Machines Corporation | Power controller for permitting multiple processors to power up shared input/output devices and inhibit power down until all processors have ceased service with the I/O devices |
US5452401A (en) * | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US5392437A (en) * | 1992-11-06 | 1995-02-21 | Intel Corporation | Method and apparatus for independently stopping and restarting functional units |
US6026484A (en) | 1993-11-30 | 2000-02-15 | Texas Instruments Incorporated | Data processing apparatus, system and method for if, then, else operation using write priority |
US6116768A (en) | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
US5517649A (en) * | 1994-04-19 | 1996-05-14 | Maxtor Corporation | Adaptive power management for hard disk drives |
US5530932A (en) * | 1994-12-23 | 1996-06-25 | Intel Corporation | Cache coherent multiprocessing computer system with reduced power operating features |
US5996083A (en) * | 1995-08-11 | 1999-11-30 | Hewlett-Packard Company | Microprocessor having software controllable power consumption |
US5983340A (en) | 1995-12-07 | 1999-11-09 | Conexant Systems, Inc. | Microprocessor system with flexible instruction controlled by prior instruction |
US6026485A (en) | 1996-01-24 | 2000-02-15 | Sun Microsystems, Inc. | Instruction folding for a stack-based machine |
US5991863A (en) | 1996-08-30 | 1999-11-23 | Texas Instruments Incorporated | Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor |
US5953741A (en) | 1996-11-27 | 1999-09-14 | Vlsi Technology, Inc. | Stack cache for stack-based processor and method thereof |
US6009505A (en) | 1996-12-02 | 1999-12-28 | Compaq Computer Corp. | System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot |
US6330659B1 (en) * | 1997-11-06 | 2001-12-11 | Iready Corporation | Hardware accelerator for an object-oriented programming language |
DE19749068B4 (de) * | 1997-11-06 | 2005-03-10 | Bosch Gmbh Robert | Verfahren und Vorrichtung zur Überwachung eines Rechnersystems bestehend aus wenigstens zwei Prozessoren |
US6035408A (en) * | 1998-01-06 | 2000-03-07 | Magnex Corp. | Portable computer with dual switchable processors for selectable power consumption |
JP3857052B2 (ja) | 1998-07-02 | 2006-12-13 | 株式会社ルネサステクノロジ | マイクロプロセッサ |
US6240521B1 (en) * | 1998-09-10 | 2001-05-29 | International Business Machines Corp. | Sleep mode transition between processors sharing an instruction set and an address space |
JP2000194668A (ja) * | 1998-12-25 | 2000-07-14 | Toshiba Corp | 計算機システム及び同システムに適用される中間コ―ド実行装置並びに中間コ―ド実行方法 |
US6341354B1 (en) * | 1999-04-16 | 2002-01-22 | Smartpower Corporation | Energy-conserving computer accessible remotely and instantaneously by providing keep-alive power to memory |
US6425086B1 (en) * | 1999-04-30 | 2002-07-23 | Intel Corporation | Method and apparatus for dynamic power control of a low power processor |
US6507946B2 (en) * | 1999-06-11 | 2003-01-14 | International Business Machines Corporation | Process and system for Java virtual method invocation |
-
2000
- 2000-08-23 US US09/645,468 patent/US6766460B1/en not_active Expired - Lifetime
-
2001
- 2001-08-17 AT AT01980250T patent/ATE528708T1/de not_active IP Right Cessation
- 2001-08-17 KR KR1020027005141A patent/KR20020085883A/ko not_active Application Discontinuation
- 2001-08-17 JP JP2002521689A patent/JP2004507814A/ja not_active Withdrawn
- 2001-08-17 WO PCT/EP2001/009509 patent/WO2002017064A2/en active Application Filing
- 2001-08-17 CN CNB018032877A patent/CN100437433C/zh not_active Expired - Fee Related
- 2001-08-17 EP EP01980250A patent/EP1368729B1/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101832821B1 (ko) * | 2012-09-10 | 2018-02-27 | 삼성전자주식회사 | 동적 전압 주파수 스케일링 방법, 어플리케이션 프로세서 및 이를 구비하는 모바일 기기 |
Also Published As
Publication number | Publication date |
---|---|
EP1368729B1 (en) | 2011-10-12 |
US6766460B1 (en) | 2004-07-20 |
WO2002017064A3 (en) | 2003-10-09 |
CN100437433C (zh) | 2008-11-26 |
CN1478224A (zh) | 2004-02-25 |
WO2002017064A2 (en) | 2002-02-28 |
EP1368729A2 (en) | 2003-12-10 |
ATE528708T1 (de) | 2011-10-15 |
KR20020085883A (ko) | 2002-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004507814A (ja) | Javaアクセラレータ環境におけるパワーマネジメントシステムおよびその方法 | |
US6501999B1 (en) | Multi-processor mobile computer system having one processor integrated with a chipset | |
JP4640728B2 (ja) | アプリケーション環境をクローニングするプロセスにおけるインクリメンタルプロファイリングデータを、ダイナミックかつ持続的にトラッキングするシステムおよび方法 | |
US7730330B1 (en) | System and method for saving and restoring a processor state without executing any instructions from a first instruction set | |
US5951685A (en) | Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM | |
US6763478B1 (en) | Variable clock cycle for processor, bus and components for power management in an information handling system | |
US7237128B2 (en) | Method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device | |
US5497497A (en) | Method and apparatus for resetting multiple processors using a common ROM | |
JP5154682B2 (ja) | マルチコアプロセッサにおける電力管理調整 | |
JP4515093B2 (ja) | Cpuのパワーダウン方法及びそのための装置 | |
US20020095609A1 (en) | Multiprocessor apparatus | |
JP2000507015A (ja) | リアルタイムプログラム言語アクセラレータ | |
US8243085B2 (en) | Boosting graphics performance based on executing workload | |
JP2001043098A (ja) | オペレーティングシステムおよび仮想計算機システム | |
WO2006034322A2 (en) | A method and apparatus for controlling power consumption in an integrated circuit | |
US7856550B2 (en) | System and method for hardware manipulation in a computing device | |
US8127161B2 (en) | Data processing apparatus | |
JP2667411B2 (ja) | パーソナルコンピュータ | |
CN110121688B (zh) | 判断加载程序的方法以及电子系统 | |
JP3082103B2 (ja) | プロセッサ | |
JP2004086556A (ja) | マイクロコントローラ | |
JPH0883133A (ja) | コンピュータシステム及びそのクロック制御方法 | |
KR100415742B1 (ko) | 프로세서에서 소프트웨어의 제어를 받는 예외 처리 흐름용장치 및 그 동작 방법 | |
CN115599454A (zh) | 处理器控制方法与相关的系统芯片 | |
Nacul et al. | Adaptive Online Cache Reconfiguration for Low Power Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080626 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080815 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090918 |