JP2004507814A - Power management system and method in JAVA accelerator environment - Google Patents

Power management system and method in JAVA accelerator environment Download PDF

Info

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
Application number
JP2002521689A
Other languages
Japanese (ja)
Inventor
デイビッド、エンボイ
ロニー、ゴフ
ボニー、セクストン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2004507814A publication Critical patent/JP2004507814A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • 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プロセッサから発生し、それにより、システムに対して、制御をホストプロセッサに戻すように、信号が送られる。A power management method is disclosed that provides power management to a hardware-based JAVA accelerator. First, a JAVA mode signal is supplied from the host processor in response to the start of a JAVA application. Thereafter, in response to the JAVA mode signal, the power to the host processor is reduced and the power to the JAVA processor is increased. Next, when execution of the JAVA application is halted, a JAVA completion signal is generated from the JAVA processor, thereby signaling the system to return control to the host processor.

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は、本発明の実施形態に基づき、プロセッサに供給される変更を、鈍化させるためのランプ回路プロセスを示すフローチャートである。
[0001]
(Related patents)
This application is related to US patent application Ser. No. 09 / 565,679 (Attorney Docket No. VTI1P333), filed May 4, 2000, and entitled “JAVA Stack, Arithmetic Logic Unit, And the architecture of an integrated subsystem with multiple stack pointers and its use ", the entirety of which is incorporated herein by reference.
[0002]
This application is also related to US patent application Ser. No. 09 / 670,496 (Attorney Docket No. PHILP337), which is entitled “Low Overhead Boundary System and Method for Checking JAVA Arrays”. Here, the whole picture is taken as a reference.
[0003]
(Background of the Invention)
1. Field of the invention
The present invention relates generally to hardware accelerated JAVA implementation, and more particularly to power management in a master / slave JAVA accelerator environment.
[0004]
2. Description of related technology
The computer programming world today offers many high-level programming languages. JAVA, for example, achieves widespread adoption in a relatively short period of time, which is largely attributable to the ubiquitous success of the Internet. JAVA's popularity is due, at least in part, to its platform independence, object orientation, and its dynamic nature. In addition, JAVA eliminates many tedious and error-prone tasks. This task must be performed by the application programmer, including memory management and cross-platform porting. In this way, JAVA programmers can focus more on design and functionality issues.
[0005]
To execute a JAVA application, a JAVA processor is used, which is generally activated only by software in the form of a JAVA virtual machine (JVM). However, JVMs suffer from poor performance due to problems associated with performing processing in software.
[0006]
Traditionally, two techniques have been used to improve the performance of JAVA interpretation. These two techniques are native JAVA execution and JAVA instruction interpretation of some hardware. In the native JAVA execution method, a real JAVA processor is constructed using hardware. However, this technique presents serious drawbacks. In other words, this technology eliminates the "external machine", which is the concept of JAVA, and also eliminates a lot of software, so that it is impossible to execute on such a JAVA processor. It is possible.
[0007]
Some hardware JAVA instruction interpretation schemes use hardware assist to improve the interpretation process. This configuration is often called a JAVA accelerator. Basically, the JAVA accelerator approximates the performance of an assembly language interpreter, which runs from zero to waiting memory.
[0008]
One implementation of the JAVA accelerator uses a master / slave configuration, in which the master (host) processor executes all instructions except the JAVA instruction, and the slave processors execute only the JAVA instruction. However, conventional systems using this scheme have many problems with power management between host and slave processors. This problem occurs when both processors are implemented in small and battery powered mobile devices, where power savings are very important.
[0009]
Historically, problems with power management of computing devices have arisen as a result of trying to detect when the system or various components within the system are performing significant processing. Often, conventional power management systems detect when power to a device can be turned off by monitoring input / output (I / O) signals with an idle timer.
[0010]
In other conventional power management systems, the frequency of the processor interface is changed, thereby reducing the power consumption of the computer system. Also, other conventional power management systems use a method called clock throttling to reduce the power consumption of the microprocessor, thereby reducing the power consumption of the computer system. In this manner, the inputs to the microprocessor are changed when it is determined that the microprocessor is not performing significant processing. In this way, the microprocessor can be effectively instructed to stop using the clock internally. By changing the input to the microprocessor, the microprocessor slowly decelerates so that the microprocessor does not burn as much energy, thereby reducing the power consumption of the computer system. Although the recent prior art in the power management decision processing has been improved by making the power management decision processing oriented to the operating system (OS), the conventional power management decision is often only a guess.
[0011]
Although the above methods may lead to reduced power consumption, neither method is combined with a reduced operating voltage for each processor in the system. Combined with this reduction in operating voltage, it would be possible to further reduce the power consumption of the system. Controlling the operating voltage and frequency of both the host and the JAVA processor together would allow for optimal power and performance trade-offs of the computer system.
[0012]
In view of the foregoing, there is a need for a system and method for providing improved power management within a JAVA accelerator. The power management system controls both the operating power and the operating frequency of the host and the JAVA processor. In addition, the power management system ensures that neither the power supply nor the digital circuits are stressed during changes in operating conditions, and that there is sufficient time between changes in operating conditions to allow memory updates between processors. It guarantees time.
[0013]
(Summary of the Invention)
In a broad sense, the present invention meets these needs by providing an improved power management system for a JAVA accelerator. The power management system of the present invention controls both the operating voltage and the operating frequency of the host and the JAVA processor. This allows for optimal power and performance of the computer system. In one embodiment, a power management method is disclosed, which provides power management to a hardware-based JAVA accelerator. First, a JAVA mode signal is supplied from the host processor in response to the start of a JAVA application. Thereafter, in response to the JAVA mode signal, the power to the host processor is reduced and the power to the JAVA processor is increased. Next, when execution of the JAVA application is halted, a JAVA complete signal is generated from the JAVA processor, thereby signaling the system to return control to the host processor.
[0014]
In another embodiment, a power management system is disclosed that provides power management to a hardware-based JAVA accelerator. The power management system includes a host processor, and the host processor is connected to a power generation circuit. The host processor includes a JAVA mode signal port, and the JAVA mode signal port can supply a JAVA mode signal. Further included in the power management system is a JAVA processor, which is also connected to the power generation circuit. The JAVA processor includes a JAVA completion signal port, which can provide a JAVA completion signal. In use, the power generation circuit decreases power to the host processor and increases power to the JAVA processor in response to receiving the JAVA mode signal. Further, in response to receiving the JAVA completion signal, the power generation circuit increases the power to the host processor and decreases the power to the JAVA processor.
[0015]
A ramp circuit method for slowing down the changes provided to the processor is disclosed in a further embodiment of the present invention. The ramp circuit method begins by obtaining a target value, which represents the desired frequency or voltage at which the processor is set. This target value is then compared with the current value to get a difference value. Like the target value, the current value is the current frequency or voltage at which the processor is currently operating. The current value is then adjusted when the difference value is outside a predetermined threshold. This threshold can be a value having a range or a single value such as zero. The above operation is thereafter repeated until the difference value falls within a predetermined threshold value.
[0016]
Advantageously, the present invention enables optimal power and performance of a computer system by controlling both the operating frequency and the operating voltage of the host and the JAVA processor. Further, if both the frequency and the voltage are controlled, the voltage is increased before increasing the frequency and the frequency is decreased before decreasing the voltage. This assures that the system will not run at frequencies that are too fast for the current voltage, resulting in further power savings.
[0017]
Finally, as will be apparent to those skilled in the art, the power management system of the present invention guarantees sufficient time between operating condition changes to allow for memory updates between processors. Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, which illustrate, by way of example, the principles of the invention. is there.
[0018]
(Detailed description of preferred embodiments)
The invention has been disclosed for a JAVA accelerator power management system. In a broad sense, the power management system of the present invention reduces the power consumption of the JAVA accelerator by reducing the power to the host processor and increasing the power to the JAVA processor at the start of the JAVA application; When the execution of the JAVA application is stopped, this process is managed by reversing the process.
[0019]
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one skilled in the art that the present invention may be practiced without some or all of the specific details. In other instances, well-known processing steps have not been described in detail so as not to unnecessarily obscure the present invention.
[0020]
FIG. 1 is a block diagram illustrating a JAVA hardware accelerator system 10 according to an embodiment of the present invention. The JAVA hardware accelerator system 10 includes a system bus 12, which includes a master (host) processor 14, a slave (JAVA) processor 16, and a system memory 18. Further, the JAVA hardware accelerator system 10 includes a bus arbitrator 20, which is connected between the host processor 14 and the JAVA processor 16.
[0021]
JAVA hardware accelerator system 10 is a dual processor system, in which JAVA processor 16 executes most of the JAVA instructions, and host processor 14 executes all remaining, including complex JAVA instructions. JAVA processor 16 is a slave processor, as is unique to the JAVA paradigm of "machine within machine". JAVA processor 16 acts as an “internal machine” and is started and controlled by host processor 14, an “external machine”.
[0022]
The host processor 14 may be embedded in any processor, including current industry standard devices such as x86, ARM, and MIPS devices. JAVA processor 16 is preferably a stack-based processor, which includes instruction and data caching, and internal SRAM. Further, JAVA processor 16 preferably includes a register-based stack, which is related to U.S. patent application Ser. No. 09 / 565,679, titled "JAVA Stack, Arithmetic Logic Unit, and Integrated with Multiple Stack Pointers." Subsystem Architecture and How to Use It ", the entirety of which is incorporated herein by reference.
[0023]
Generally, processor 14 supports operating systems, non-JAVA applications, and complex JAVA instructions. In one embodiment, an additional dedicated ARM or equivalent processor (not shown) is used to process complex JAVA instructions.
[0024]
JAVA processor 16 is generally capable of executing at least the following JAVA instructions: load, store, compute, branch, push, and field. Preferably, support for all computational instructions, including both integer and floating point, is built into JAVA processor 16. As described above, the host processor 14 processes more complicated instructions such as method calls. JAVA processor 16 raises an exception and writes all dirty lines in the data cache to system memory 18 when a complex instruction is decoded. Thereafter, the JAVA processor 16 stops executing.
[0025]
Preferably, JAVA processor 16 includes an instruction cache for fast access to the currently executing method. The local data used to support this method resides in an internal SRAM, which is typically a single port and accessible by both the host processor 14 and the JAVA processor 16. . When the JAVA processor 16 is running, the host processor 14 is locked out of both the local data area and the stack. In addition, a data cache is included for fast access to non-local variables such as arrays.
[0026]
FIG. 2 is a block diagram illustrating a power management system 50 according to an embodiment of the present invention. The power management system 50 includes a host processor unit 52 and a JAVA processor unit 54. The host processor unit 52 includes a host switch register 56, which is connected to a set of host normal operating voltage / frequency registers 58 and a set of host low voltage / frequency registers 60. Further, the power management system 50 includes a set of program voltage and frequency generators 62 connected to a host ramp circuit 64, and the host processor 14. The host processor 14 includes a JAVA mode signal port, which provides a JAVA mode signal 68 simultaneously with the start of the JAVA application.
[0027]
The JAVA processor unit 54 includes a JAVA switch register 70. The JAVA switch register 70 includes a set of JAVA normal operating voltage / frequency registers 72, a set of JAVA low voltage / frequency registers 74, and an idle delay timer 76. ,It is connected. Further, the power management system 50 includes a set of program voltage and frequency generators 78 connected to the JAVA ramp circuit 80, and the JAVA processor 16. The JAVA processor 16 includes a JAVA completion signal port, which provides a JAVA completion signal 84 when execution of the JAVA application is halted.
[0028]
Each program voltage and frequency generator 62 and 78 provides the actual implantation of the frequency change, which is provided by the host ramp circuit 64 and the JAVA ramp circuit 80. In operation, each program voltage and frequency generator 62 and 78 is clocked by the slow clock signal so that the appropriate ramp circuit can provide new power on a clock-by-clock basis.
[0029]
Each of the processors 14 and 16 basically has two operation modes: a normal operation mode and a low power operation mode. In the normal operation mode, the host processor 14 and the JAVA processor 16 operate at a voltage and a frequency that are normally considered as a type of the processor in which the host processor 14 or the JAVA processor 16 is built. In the low power operation mode, the host processor 14 and the JAVA processor 16 operate at a low voltage and frequency. The low voltage and frequency are lower than the normal operating voltage and frequency for a processor having the host processor 14 or the JAVA processor 16 built therein.
[0030]
The present invention further saves power by using the normal operation mode when the processor 14/16 performs important processing and switching to the low power operation mode when the processor 14/16 does not perform important processing. I will provide a. This power saving is greatly enhanced by the ability to reduce both the operating voltage and frequency of each processor 14/16 when the processor is not in use.
[0031]
First, the values of the normal operating voltage and the normal operating frequency of the host processor are stored in a set of the host normal operating voltage / frequency registers 58. Further, the low-power operation voltage value of the host processor and the low-power operation frequency value of the host processor are stored in a set of host low voltage / frequency registers 60. Similarly, the normal operating voltage value of the JAVA processor and the normal operating frequency value of the JAVA processor are stored in a set of the JAVA normal operating voltage / frequency registers 72. The low power operating voltage value of the JAVA processor and the low power operating frequency value of the JAVA processor are then stored in a set of JAVA low voltage / frequency registers 74.
[0032]
Thus, the set of host and JAVA normal operating voltage and frequency registers 58 and 72 define the normal operating voltage and frequency of host processor 14 and JAVA processor 16, respectively. Similarly, a set of host and JAVA low voltage and frequency registers 60 and 74 define low power operating voltages and frequencies for host processor 14 and JAVA processor 16, respectively.
[0033]
During the normal operation, the host processor 14 operates according to the normal operation mode defined by the host normal operation voltage / frequency register 58. On the other hand, the JAVA processor 16 operates according to the low power operation mode defined by the JAVA low voltage / frequency register 74. As described above, the host processor 14 generally executes all instructions other than JAVA except for complicated JAVA instructions that are not processed by the JAVA processor, such as method calls. Upon the start of the JAVA application, the host processor generates a JAVA mode signal 68. This informs the power management system 50 that the JAVA application will be executed by the JAVA processor 16. The host register switch 56 and the JAVA register switch 70 then receive a JAVA mode signal 68 which operates the host and JAVA processors 14 and 16 for the host register switch 56 and the JAVA register switch 70. Command to switch to mode.
[0034]
Upon receiving the JAVA mode signal 68, the host register switch 56 sets the host target voltage / frequency value of the host processor 14 to the value stored in the host low voltage / frequency register 60. Similarly, the JAVA register switch 70 sets the JAVA target voltage / frequency value of the JAVA processor 16 to the value stored in the JAVA normal operation voltage / frequency register 72.
[0035]
At this point, the host ramp circuit 64 uses the host target voltage / frequency value to gradually reduce the current voltage and frequency of the host processor 14 to the host target voltage / frequency value. In a similar manner, the JAVA ramp circuit 80 uses the JAVA target voltage and frequency values to gradually increase the current voltage and frequency of the JAVA processor 16 to the JAVA target voltage and frequency values.
[0036]
The host and JAVA ramp circuits 64 and 80 respectively increase or decrease the small increment voltage / frequency until the current voltage and frequency of the host processor and JAVA processor reach their respective target voltage / frequency values. Supply. After each voltage and frequency decrement, the host ramp circuit 64 provides a new decremented voltage and frequency value to a set of program voltage and frequency generators 62 connected to the host processor 14. The set of program voltage and frequency generators 62 then sets the voltage and frequency of the host processor 14 to the new decremented voltage and frequency values.
[0037]
Similarly, after each increment, JAVA ramp circuit 80 provides a new increment voltage / frequency value to a set of program voltage / frequency generators 78 connected to JAVA processor 16. The set of program voltage and frequency generators 78 then sets the voltage and frequency of the JAVA processor 16 to the new incremental voltage and frequency values. Thus, power is reduced at the host processor 14 and increased at the JAVA processor 16 when a JAVA application is started. As a result, the power consumption of the system 50 is substantially reduced.
[0038]
Next, the JAVA processor 16 starts executing the JAVA application. The JAVA processor 16 generally continues to execute the JAVA application until the JAVA application completes or until a complex JAVA instruction appears that the JAVA processor 16 cannot process. At this point, the JAVA processor 16 generates a JAVA completion signal 84, or an abort signal, which is received by the host register switch 56 and the JAVA register switch 70 and instructs the power management system 50 to execute the JAVA application. Signal stop.
[0039]
Upon receiving the JAVA completion signal 84, the host register switch 56 sets the host target voltage / frequency value to the value stored in the host normal operating voltage / frequency register 58. Similarly, the JAVA register switch 70 sets the JAVA target voltage / frequency value to the value stored in the JAVA low voltage / frequency register 74.
[0040]
At this point, the host ramp circuit 64 uses the host target voltage and frequency values to gradually increase the current voltage and frequency of the host processor 14 to the host target voltage and frequency values. In a similar manner, the JAVA ramp circuit 80 uses the JAVA target voltage and frequency values to gradually reduce the current voltage and frequency of the JAVA processor 16 to the JAVA target voltage and frequency values.
[0041]
As described above, the host and JAVA ramp circuits 64 and 80 each provide a small incremental voltage / frequency increase or decrease, with the current voltage and frequency of the host processor and JAVA processor being the respective target voltage / frequency. Supply until the frequency value is reached. After each increment, host ramp circuit 64 provides a new increment voltage / frequency value to a set of program voltage / frequency generators 62 connected to host processor 14. The set of program voltage and frequency generators 62 then sets the voltage and frequency of the host processor 14 to the new incremental voltage and frequency values.
[0042]
Similarly, after each decrement, JAVA ramp circuit 80 supplies the new decremented voltage and frequency value to a set of program voltage and frequency generators 78 connected to JAVA processor 16. The set of program voltage and frequency generators 78 then sets the JAVA processor 16 voltage and frequency to the new decremented voltage and frequency values. Thus, the power increases in the host processor 14 and decreases in the JAVA processor 16 when the execution of the JAVA application is stopped. At this point, host processor 14 resumes control of the system and continues to execute computer instructions.
[0043]
During JAVA execution, JAVA processor 16 stores information in a local cache and uses it to execute various JAVA instructions. When the JAVA execution is stopped, this information is made available to the host processor 14 via the system bus. In order to provide this information before the JAVA processor 16 is shut down and switched to a low power mode of operation, the present invention uses an idle delay timer 76, which uses a JAVA register switch 70. And JAVA lamp circuit 80.
[0044]
The idle delay timer 76 delays the JAVA voltage ramp circuit 80 from setting the JAVA target voltage / frequency value to a lower value stored in a set of JAVA low voltage / frequency registers 74. The length of the delay is a function of the cache memory size of the JAVA processor 16, and the length of the delay is such that the information in the cache is transferred to the system memory before the power to the JAVA processor 16 is reduced. Is set to Preferably, the idle delay timer 76 functions only when the JAVA processor 16 generates the JAVA completion signal 84.
[0045]
FIG. 3 is a block diagram illustrating an exemplary lamp circuit 100 according to an embodiment of the present invention. Although the exemplary ramp circuit 100 is shown for use as a frequency ramp circuit, the ramp circuit 100 may also be used as a voltage ramp circuit by providing a resistor with a voltage value instead of a frequency value. can do.
[0046]
The ramp circuit 100 includes a comparator 102, which is connected to a target frequency register 104, a current frequency register 106, and an offset table 108. Further, the ramp circuit 100 includes an offset frequency register 110, and the offset frequency register 110 is connected to the offset table 108 and the current frequency register 106. Finally, the lamp circuit 100 includes a frequency state machine 112, which provides control for the lamp circuit 100. The current frequency register 106 is also connected to the program frequency generator 114.
[0047]
When the power mode is switched between a normal operation mode and a low power operation mode, voltage and frequency changes made to both the host and the JAVA processor are slowed down to prevent stressing the power supply and digital logic. Preferably.
[0048]
As will be described in more detail below, the ramp circuit 100 provides small incremental changes to the voltage and frequency of the processor to ensure proper priority of such changes. In particular, when the power to the processor switches from low power to normal power, the voltage is increased before the frequency is increased. Conversely, when the power to the processor switches from normal power to low power, the frequency is reduced before the voltage is reduced.
[0049]
In operation, ramp circuit 100 is clocked by a relatively slow clock signal provided by frequency state machine 112. As previously mentioned, the ramp circuit 100 obtains the target frequency from a set of either normal or low power frequency registers according to the current power operating mode, and then sets the target frequency. , In the target frequency register 104. The current operating frequency of the associated processor is stored in the current frequency register 106.
[0050]
For each clock signal, the comparator 102 compares the value stored in the target frequency register 104 with the value stored in the current frequency register 106, and outputs a difference value. The difference value is a difference between a value stored in the target frequency register 104 and a value stored in the current frequency register 106.
[0051]
If the difference value is outside the predetermined threshold, a table search is performed using the difference value and offset table 108. Then, the result of the table search is stored in the offset frequency register 110. The predetermined threshold may be a value in an acceptable frequency range, a single value, or zero. Setting the threshold to zero means that whenever the difference value is not zero, the difference value is outside the threshold. Setting the threshold to a single value implies a range between zero and the single value. The difference value is outside the threshold of the base range whenever the difference value is outside the threshold range.
[0052]
The value stored in the offset frequency register 110 is then added to or subtracted from the current frequency register 106, and the result is stored in the current frequency register. Preferably, the offset table is configured to provide a frequency offset, which allows the frequency change to be a linear ramp of frequency. Optionally, the offset frequency register 110 can be omitted, and the offset value is directly added or subtracted from the offset table 108 to the current frequency register 106. The new frequency value stored in the current frequency register 106 is then used to program the programmed frequency generator 114, thereby setting the associated processor frequency to the new current frequency value.
[0053]
The ramp circuit 100 continues the above operation until the difference value falls within a predetermined threshold value. At this point, the associated processor can operate at the target frequency and begin processing the appropriate instructions. In another embodiment, the above operation is still continued when the predetermined threshold is reached. In the present embodiment, the zero value is stored in the offset register 110 so that no further changes are made to the current frequency value. Next, when the new target frequency is stored in the target frequency register, the ramp circuit 100 continues to operate automatically, ramping the current frequency to the new target value.
[0054]
As described above, the ramp circuit 100 can operate as a voltage ramp circuit by changing the frequency value of the ramp circuit 100 to a voltage value and connecting the circuit 100 to a program voltage generator.
[0055]
FIG. 4 is a flowchart illustrating a process 200 for providing power management to a hardware-based JAVA accelerator, according to an embodiment of the present invention. In the initial operation 202, a pre-processing operation is performed. The pre-processing operations include initialization of the JAVA program counter and stack pointer, and other pre-processing operations obvious to those skilled in the art.
[0056]
In the JAVA mode operation 204, a JAVA mode signal is supplied from the host processor in response to the start of the JAVA application. During normal operation, the host processor operates according to its normal operation mode. This normal operation mode is defined by the host normal operation voltage / frequency register. On the other hand, the JAVA processor operates according to its low-power operation mode. This low power operation mode is defined by a JAVA low voltage / frequency register. The host processor generally executes all non-Java instructions except complex Java instructions, such as method calls. Upon start of the JAVA application, the host processor generates a JAVA mode signal. This informs the power management system that the JAVA application will be executed by the JAVA processor. The host register switch and the JAVA register switch then receive the JAVA mode signal. This instructs the host register switch and the JAVA register switch to switch the host and the JAVA processor to the operation mode.
[0057]
Next, in a host power reduction operation 206, power to the host processor is reduced in response to the JAVA mode signal. Upon receiving the JAVA mode signal, the host register switch sets the host target voltage / frequency value of the host processor to the value stored in the host low power voltage / frequency register. The host ramp circuit then uses the host target voltage / frequency value to gradually reduce the current voltage and frequency of the host processor to the host target voltage / frequency value.
[0058]
As described above, the host ramp circuit provides a small incremental voltage / frequency increase or decrease until the current voltage and frequency of the host processor reaches the target voltage / frequency value. After each voltage and frequency decrement, the host ramp circuit provides a new decremented voltage and frequency value to a set of program voltage and frequency generators connected to the host processor. The set of program voltage and frequency generators then sets the voltage and frequency of the host processor to the new decremented voltage and frequency values.
[0059]
In the JAVA power increase operation 208, the power to the JAVA processor is increased according to the JAVA mode signal. Upon receiving the JAVA mode signal, the JAVA register switch sets the JAVA target voltage / frequency value for the JAVA processor to the value stored in the JAVA normal operation voltage / frequency register. The JAVA ramp circuit then uses the JAVA target voltage and frequency value to gradually increase the current voltage and frequency of the JAVA processor to the JAVA target voltage and frequency value.
[0060]
After each voltage and frequency increment, the JAVA ramp circuit provides a new incremented voltage and frequency value to a set of program voltage and frequency generators connected to the JAVA processor. The set of program voltage and frequency generators then sets the JAVA processor voltage and frequency to the new incremental voltage and frequency values. After reaching the normal operating voltage and frequency, the JAVA processor starts executing the JAVA application. The JAVA processor generally continues to execute the JAVA application until the JAVA application completes or until a complex JAVA instruction appears that the JAVA processor 16 cannot process.
[0061]
In the JAVA completion signal operation 210, a JAVA completion signal is generated when execution of a JAVA application is stopped from the JAVA processor. At this point, the JAVA processor generates a JAVA completion signal, or an interrupt signal, which is received by the host register switch and the JAVA register switch. The JAVA completion signal notifies the power management system that the execution of the JAVA application has been stopped.
[0062]
In the JAVA completion operation 212, the power to the host processor is then increased in response to the JAVA completion signal, and the power to the JAVA processor is reduced. Upon receiving the JAVA completion signal 84, the host register switch sets the host target voltage / frequency value to the value supplied from the host normal operating voltage / frequency register. Similarly, the JAVA register switch sets the JAVA target voltage / frequency value to the value supplied from the JAVA low voltage / frequency register.
[0063]
At this point, the host ramp circuit uses the host target voltage / frequency value to gradually increase the current voltage and frequency of the host processor to the host target voltage / frequency value. In a similar manner, the JAVA ramp circuit uses the JAVA target voltage and frequency value to gradually reduce the current voltage and frequency of the JAVA processor to the JAVA target voltage and frequency value.
[0064]
As described above, the host and JAVA ramp circuits respectively increase or decrease the small incremental voltage and frequency by causing the current voltage and frequency of the host processor and JAVA processor to reach their respective target voltage and frequency values. Until then, supply. After each increment, the host ramp circuit provides a new increment voltage / frequency value to a set of program voltage / frequency generators connected to the host processor. The set of program voltage and frequency generators then sets the host processor voltage and frequency to the new incremental voltage and frequency values.
[0065]
Similarly, after each decrement, the JAVA ramp circuit provides a new decremented voltage and frequency value to a set of programmed voltage and frequency generators connected to the JAVA processor. The set of program voltage and frequency generators then sets the JAVA processor voltage and frequency to the new decremented voltage and frequency values. Thus, the power increases in the host processor and decreases in the JAVA processor when the execution of the JAVA application is stopped. At this point, the host processor resumes control of the system and continues to execute computer instructions.
[0066]
When the execution of JAVA is stopped, the information stored in the local memory cache is made available to the host processor via the system bus. In order to provide this information before the JAVA processor is shut down and switches to a low power mode of operation, the present invention uses an idle delay timer, which uses a JAVA register switch and a JAVA ramp circuit. It is connected between.
[0067]
The idle delay timer delays the JAVA voltage ramp circuit setting the JAVA target voltage / frequency value to a lower value provided by a set of JAVA low voltage / frequency registers. The length of the delay is a function of the JAVA processor's cache memory size, and the length of the delay is such that the information in the cache is transferred to system memory before the power to the JAVA processor is reduced. Is set. Note that the idle delay timer preferably functions only when the JAVA processor generates a JAVA completion signal.
[0068]
Post-processing operations are then performed at operation 214. Post-processing operations include the execution of JAVA method calls and other post-processing operations obvious to those skilled in the art. Advantageously, controlling the operating voltage and frequency of both the host and the JAVA processor together allows for optimal power and performance of the computer system.
[0069]
FIG. 5 is a flowchart illustrating a ramp circuit process 300 for slowing down changes provided to a processor, according to an embodiment of the present invention. Although the ramp circuit process 300 is described as a voltage ramp circuit process, the ramp circuit process 300 can be used to ramp either the frequency or the voltage of the processor. By replacing the following voltage values with frequency values, the lamp circuit process 300 can be used as a frequency ramp circuit process. In the initial operation 302, a pre-processing operation is performed. The preprocessing operation includes a normal operation, initialization of a low power voltage / frequency register, and other preprocessing operations that are obvious to those skilled in the art.
[0070]
In the target value operation 304, the target value is obtained from a voltage / frequency register. The target voltage value is obtained from a set of voltage registers, either normal operation or low, according to the current power operating mode, and the target voltage value is stored in the target voltage register. The current operating voltage of the associated processor is stored in a current voltage register.
[0071]
Next, in a comparison operation 306, the target value is compared with the current value to obtain a difference value. For each clock signal, the comparator compares the value stored in the target voltage register with the value stored in the current voltage register and produces a difference value. The difference value is a difference between a value stored in the target voltage register and a value stored in the current voltage register.
[0072]
Next, it is determined in operation 308 whether the difference value is outside a predetermined threshold. The predetermined threshold may be a value in an acceptable frequency range, a single value, or zero. Setting the threshold to zero means that whenever the difference value is not zero, the difference value is outside the threshold. Setting the threshold to a single value implies a range between zero and the single value. The difference value is outside the threshold of the base range whenever the difference value is outside the threshold range. If the difference value is outside the predetermined threshold, the ramp circuit process 300 continues to perform the table search operation 310. Otherwise, the lamp circuit process 300 is completed at operation 312.
[0073]
The difference value is used in table lookup operation 310 to perform a table lookup in the offset table. An offset table including a plurality of voltage inputs is provided. By examining the difference value in the offset table, an offset voltage value can be obtained. The resulting offset value from the offset table is then stored in an offset voltage register. Preferably, the offset table is configured to provide a voltage offset, wherein the voltage offset can cause the voltage change of the processor to be a linear ramp of the voltage.
[0074]
In an adjustment operation 314, the current voltage is adjusted based on the offset voltage obtained in operation 310. The value stored in the offset voltage register is added to or subtracted from the value stored in the current voltage register, and the result is stored in the current voltage register. Optionally, the offset voltage register can be omitted, and the offset value is directly added to or subtracted from the current voltage register from the offset table.
[0075]
In voltage program operation 316, a new current voltage is provided to the program voltage generator. The new voltage value is stored in the current voltage register, and this voltage value is used to program the program voltage generator so that the associated processor voltage can be set to the new current voltage value. . The ramp circuit process 300 then continues with another comparison operation 304. The current voltage register contains the newly adjusted current voltage value.
[0076]
When the current voltage value is within the predetermined threshold, the ramp circuit process 300 completes in operation 312. At this point, the associated processor can operate at the target voltage and begin processing the appropriate instruction.
[0077]
In another embodiment, the ramp circuit process 300 continues to perform another comparison operation 304 even when the predetermined threshold is reached. In the present embodiment, the zero value is stored in an offset register, so that no further changes are made to the current frequency value. When the new target voltage is stored in the target voltage register, the ramp circuit continues to operate automatically, ramping the current voltage to the new target value.
[0078]
The ramp circuit process 300 ensures proper prioritization of voltage and frequency changes. In particular, when the power to the processor switches from low power to normal power, the voltage is increased before the frequency is increased. Conversely, when the power to the processor switches from normal power to low power, the frequency is reduced before the voltage is reduced.
[0079]
Advantageously, the ramp circuit process 300 ensures that neither the power supply nor the digital circuits are stressed during changes in operating conditions, and that the operating conditions are such that memory updates between processors are possible. We guarantee enough time between changes.
[0080]
Although the above-described invention has been described in some detail for purposes of clarity of understanding, some changes and modifications are possible within the scope of the appended claims. Accordingly, the embodiments are illustrative and not limiting, and the invention is not limited to the details described herein, but may be modified within the scope and equivalents of the appended claims. Things.
[Brief description of the drawings]
The invention, together with further advantages thereof, will be best understood by referring to the following description in conjunction with the accompanying drawings.
FIG.
FIG. 1 is a block diagram illustrating a JAVA hardware accelerator system according to an embodiment of the present invention.
FIG. 2
FIG. 2 is a block diagram illustrating a power management system according to an embodiment of the present invention.
FIG. 3
FIG. 3 is a block diagram illustrating an exemplary lamp circuit according to an embodiment of the present invention.
FIG. 4
FIG. 4 is a flowchart illustrating a process for providing power management to a hardware-based JAVA accelerator according to an embodiment of the present invention.
FIG. 5
FIG. 5 is a flowchart illustrating a ramp circuit process for slowing down a change provided to a processor, according to an embodiment of the present invention.

Claims (20)

パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給するパワーマネジメント方法であって、
JAVAモード信号を、ホストプロセッサから、JAVAアプリケーションの開始に応じて供給する工程と、
前記ホストプロセッサへの電力を、前記JAVAモード信号に応じて減少させる工程と、
JAVAプロセッサへの電力を、前記JAVAモード信号に応じて増加させる工程と、
JAVA完了信号を、前記JAVAプロセッサから、前記JAVAアプリケーションの実行停止時に発生させる工程と、
を備えることを特徴とするパワーマネジメント方法。
A power management method for providing power management to a hardware-based JAVA accelerator, comprising:
Supplying a JAVA mode signal from the host processor in response to the start of the JAVA application;
Reducing power to the host processor in response to the JAVA mode signal;
Increasing power to a JAVA processor in response to said JAVA mode signal;
Generating a JAVA completion signal from the JAVA processor when execution of the JAVA application is stopped;
A power management method comprising:
請求項1記載のパワーマネジメント方法において、さらに
前記ホストプロセッサへの電力を、前記JAVA完了信号に応じて増加させる工程と、
前記JAVAプロセッサへの電力を、前記JAVA完了信号に応じて減少させる工程と、
を備えることを特徴とするパワーマネジメント方法。
2. The power management method according to claim 1, further comprising: increasing power to the host processor according to the JAVA completion signal.
Reducing power to the JAVA processor in response to the JAVA completion signal;
A power management method comprising:
請求項2記載のパワーマネジメント方法において、電力は、電圧および周波数を含むことを特徴とするパワーマネジメント方法。3. The power management method according to claim 2, wherein the power includes a voltage and a frequency. 請求項2記載のパワーマネジメント方法において、前記プロセッサへの前記電力は、ランプ回路プロセスを使用することにより増加され、このランプ回路プロセスは、
(a)目標電力値を得る工程と、
(b)前記目標電力値を現行電力値と比較する工程と、
(c)前記現行電力値を、現行電力値が前記目標電力値より小さい時に、増加させる工程と、
(d)動作(a)から(c)を、前記現行電力値が、基本的に、前記目標電力値に等しくなるまで繰り返す工程と、
を備えることを特徴とするパワーマネジメント方法。
3. The method of claim 2, wherein the power to the processor is increased by using a lamp circuit process, wherein the lamp circuit process comprises:
(A) obtaining a target power value;
(B) comparing the target power value with a current power value;
(C) increasing the current power value when the current power value is less than the target power value;
(D) repeating operations (a) to (c) until the current power value is essentially equal to the target power value;
A power management method comprising:
請求項4記載のパワーマネジメント方法において、前記現行電力値は、オフセットテーブルから得られる量により増加することを特徴とするパワーマネジメント方法。5. The power management method according to claim 4, wherein the current power value is increased by an amount obtained from an offset table. 請求項2記載のパワーマネジメント方法において、前記プロセッサへの前記電力は、ランプ回路プロセスを使用することにより減少され、このランプ回路プロセスは、
(a)目標電力値を得る工程と、
(b)前記目標電力値を現行電力値と比較する工程と、
(c)前記現行電力値を、現行電力値が前記目標電力値より大きい時に、減少させる工程と、
(d)動作(a)から(c)を、前記現行電力値が、基本的に、前記目標電力値に等しくなるまで繰り返す工程と、
を備えることを特徴とするパワーマネジメント方法。
3. The method of claim 2, wherein the power to the processor is reduced by using a lamp circuit process, wherein the lamp circuit process comprises:
(A) obtaining a target power value;
(B) comparing the target power value with a current power value;
(C) reducing the current power value when the current power value is greater than the target power value;
(D) repeating operations (a) to (c) until the current power value is essentially equal to the target power value;
A power management method comprising:
請求項6記載のパワーマネジメント方法において、前記現行電力値は、オフセットテーブルから得られる量により減少することを特徴とするパワーマネジメント方法。7. The power management method according to claim 6, wherein the current power value is reduced by an amount obtained from an offset table. パワーマネジメントを、ハードウエアベースJAVAアクセラレータに供給するパワーマネジメントシステムであって、
電力生成回路に接続されるホストプロセッサであって、JAVAモード信号を供給できるJAVAモード信号ポートを有する、ホストプロセッサと、
電力生成回路に接続されるJAVAプロセッサであって、JAVA完了信号を供給できるJAVA完了信号ポートを有する、JAVAプロセッサと、
を備え、前記電力生成回路は、JAVAモード信号の受信に応じて、前記ホストプロセッサへの電力を減少させるとともに、前記JAVAプロセッサへの電力を増加させ、かつ、前記電力生成回路は、前記JAVA完了信号の受信に応じて、前記ホストプロセッサへの電力を増加させるとともに、前記JAVAプロセッサへの電力を減少させることを特徴とするパワーマネジメントシステム。
A power management system for providing power management to a hardware-based JAVA accelerator,
A host processor connected to the power generation circuit, the host processor having a JAVA mode signal port capable of supplying a JAVA mode signal;
A JAVA processor connected to the power generation circuit, the JAVA processor having a JAVA completion signal port capable of supplying a JAVA completion signal;
The power generation circuit decreases power to the host processor and increases power to the JAVA processor in response to receiving the JAVA mode signal, and the power generation circuit completes the JAVA completion. A power management system comprising: increasing power to the host processor and decreasing power to the JAVA processor in response to receiving a signal.
請求項8記載のパワーマネジメントシステムにおいて、前記ホストプロセッサは、前記JAVAモード信号を、JAVAアプリケーションの開始に応じて、供給することを特徴とするパワーマネジメントシステム。9. The power management system according to claim 8, wherein the host processor supplies the JAVA mode signal in response to a start of a JAVA application. 請求項9記載のパワーマネジメントシステムにおいて、前記JAVAプロセッサは、前記JAVA完了信号を、JAVAアプリケーションの実行停止時に供給することを特徴とするパワーマネジメントシステム。10. The power management system according to claim 9, wherein the JAVA processor supplies the JAVA completion signal when the execution of the JAVA application is stopped. 請求項8記載のパワーマネジメントシステムにおいて、前記電力生成回路は、
前記ホストプロセッサに接続される、第一組のプログラム電圧・周波数生成器と、
前記JAVAプロセッサに接続される、第二組のプログラム電圧・周波数生成器と、
を備え、前記第一組のプログラム電圧・周波数生成器は、前記ホストプロセッサに対して、電圧および周波数を調整でき、かつ、前記第二組のプログラム電圧・周波数生成器は、前記JAVAプロセッサに対して、電圧および周波数を調整できることを特徴とするパワーマネジメントシステム。
The power management system according to claim 8, wherein the power generation circuit includes:
A first set of program voltage and frequency generators connected to the host processor;
A second set of program voltage and frequency generators connected to the JAVA processor;
Wherein the first set of program voltage and frequency generators is capable of adjusting voltage and frequency with respect to the host processor, and the second set of program voltage and frequency generators is capable of adjusting voltage and frequency with respect to the JAVA processor. A power management system characterized in that the voltage and frequency can be adjusted.
請求項11記載のパワーマネジメントシステムにおいて、さらに
前記第一組のプログラム電圧・周波数生成器に接続される、ホストランプ回路であって、増分電圧および周波数の変更を、前記第一組のプログラム電圧・周波数生成器に対して、供給できるホストランプ回路と、
前記第二組のプログラム電圧・周波数生成器に接続される、JAVAランプ回路であって、増分電圧および周波数の変更を、前記第二組のプログラム電圧・周波数生成器に対して、供給できるJAVAランプ回路と、
を備え、それにより、前記ホストランプ回路、および、前記JAVAランプ回路は、前記ホストプロセッサ、および、前記JAVAプロセッサに供給される、電圧および周波数の変更を、鈍化させることを特徴とするパワーマネジメントシステム。
12. The power management system according to claim 11, further comprising a host ramp circuit connected to said first set of program voltage and frequency generators, said host ramp circuit changing said incremental voltage and frequency by said first set of program voltage and frequency generators. A host ramp circuit that can be supplied to the frequency generator;
A JAVA lamp circuit connected to said second set of program voltage and frequency generators, said JAVA lamp circuit being capable of supplying incremental voltage and frequency changes to said second set of program voltage and frequency generators. Circuit and
Wherein the host lamp circuit and the JAVA lamp circuit slow down voltage and frequency changes supplied to the host processor and the JAVA processor. .
請求項12記載のパワーマネジメントシステムにおいて、前記ホストランプ回路、および、前記JAVAランプ回路は、現行の電圧および周波数に対する変化量を、オフセットテーブルを使用して、決定することを特徴とするパワーマネジメントシステム。13. The power management system according to claim 12, wherein the host lamp circuit and the JAVA lamp circuit determine an amount of change with respect to a current voltage and frequency using an offset table. . 請求項13記載のパワーマネジメントシステムにおいて、ノーマル動作電圧・周波数値、および、ローパワー電圧・周波数値は、前記ホストプロセッサのために格納され、かつ、ノーマル動作電圧・周波数値、および、ローパワー電圧・周波数値は、前記JAVAプロセッサのために格納されることを特徴とするパワーマネジメントシステム。14. The power management system according to claim 13, wherein a normal operation voltage / frequency value and a low power voltage / frequency value are stored for the host processor, and the normal operation voltage / frequency value and the low power voltage are used. A power management system, wherein frequency values are stored for the JAVA processor; 請求項14記載のパワーマネジメントシステムにおいて、前記ホストランプ回路は、増分電圧および周波数の変更を、前記ホストプロセッサの、前記ノーマル動作電圧・周波数値、および、ローパワー電圧・周波数値により規定された数値の範囲内で供給し、かつ、
前記JAVAランプ回路は、増分電圧および周波数の変更を、前記JAVAプロセッサの、前記ノーマル動作電圧・周波数値、および、ローパワー電圧・周波数値により規定された数値の範囲内で供給することを特徴とするパワーマネジメントシステム。
15. The power management system according to claim 14, wherein the host ramp circuit changes the increment voltage and the frequency by a value defined by the normal operation voltage / frequency value and the low power voltage / frequency value of the host processor. Supply within the range of and
The JAVA lamp circuit supplies the change of the incremental voltage and the frequency within a range defined by the normal operating voltage / frequency value and the low power voltage / frequency value of the JAVA processor. Power management system.
プロセッサに供給される変更を鈍化させるランプ回路方法であって、
(a)目標値を得る工程と、
(b)前記目標値を、現行値と比較して、差分値を得る工程と、
(c)前記現行値を、前記差分値が所定のしきい値外の時に、調整する工程と、
(d)動作(a)から(c)を、前記差分値が所定のしきい値内になるまで、繰り返す工程と、
を備えることを特徴とするランプ回路方法。
A ramp circuit method for slowing down changes provided to a processor, the method comprising:
(A) obtaining a target value;
(B) comparing the target value with a current value to obtain a difference value;
(C) adjusting the current value when the difference value is outside a predetermined threshold value;
(D) repeating the operations (a) to (c) until the difference value falls within a predetermined threshold value;
A lamp circuit method comprising:
請求項16記載のランプ回路方法において、さらに
オフセット値を、オフセットテーブルから、前記差分値を使用して、決定する工程と、
前記現行値を、前記オフセット値により規定される量によって、調整する工程と、
を備えることを特徴とするランプ回路方法。
17. The lamp circuit method according to claim 16, further comprising: determining an offset value from an offset table using the difference value;
Adjusting the current value by an amount defined by the offset value;
A lamp circuit method comprising:
請求項17記載のランプ回路方法において、さらに前記現行値を、プログラム電力生成回路に供給する動作を備え、このプログラム電力生成回路は、プロセッサの、現行の動作条件を決定することを特徴とするランプ回路方法。18. The lamp circuit method according to claim 17, further comprising the act of supplying said current value to a program power generation circuit, said program power generation circuit determining a current operating condition of the processor. Circuit method. 請求項16記載のランプ回路方法において、前記目標値、および、前記現行値は、電圧値であることを特徴とするランプ回路方法。17. The lamp circuit method according to claim 16, wherein the target value and the current value are voltage values. 請求項16記載のランプ回路方法において、前記目標値、および、前記現行値は、周波数値であることを特徴とするランプ回路方法。17. The lamp circuit method according to claim 16, wherein the target value and the current value are frequency values.
JP2002521689A 2000-08-23 2001-08-17 Power management system and method in JAVA accelerator environment Withdrawn JP2004507814A (en)

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 (en) 2004-03-11

Family

ID=24589147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002521689A Withdrawn JP2004507814A (en) 2000-08-23 2001-08-17 Power management system and method in JAVA accelerator environment

Country Status (7)

Country Link
US (1) US6766460B1 (en)
EP (1) EP1368729B1 (en)
JP (1) JP2004507814A (en)
KR (1) KR20020085883A (en)
CN (1) CN100437433C (en)
AT (1) ATE528708T1 (en)
WO (1) WO2002017064A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101832821B1 (en) * 2012-09-10 2018-02-27 삼성전자주식회사 Method of scaling voltage-frequency, application processor, and mobile device having the same

Families Citing this family (19)

* Cited by examiner, † Cited by third party
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
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
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
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 (en) * 2007-07-03 2012-11-28 キヤノン株式会社 Data processing apparatus and data processing apparatus control method
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)

* Cited by examiner, † Cited by third party
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
US6116768A (en) 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
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
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
DE69738810D1 (en) 1996-01-24 2008-08-14 Sun Microsystems Inc COMMAND FOLDING IN A STACK MEMORY PROCESSOR
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 (en) * 1997-11-06 2005-03-10 Bosch Gmbh Robert Method and device for monitoring a computer system consisting of at least two processors
US6035408A (en) * 1998-01-06 2000-03-07 Magnex Corp. Portable computer with dual switchable processors for selectable power consumption
US6789207B1 (en) * 1998-07-02 2004-09-07 Renesas Technology Corp. Microprocessor
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 (en) * 1998-12-25 2000-07-14 Toshiba Corp Computer system and intermediate code execution device and method applied to the computer system
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101832821B1 (en) * 2012-09-10 2018-02-27 삼성전자주식회사 Method of scaling voltage-frequency, application processor, and mobile device having the same

Also Published As

Publication number Publication date
CN1478224A (en) 2004-02-25
ATE528708T1 (en) 2011-10-15
WO2002017064A2 (en) 2002-02-28
CN100437433C (en) 2008-11-26
EP1368729A2 (en) 2003-12-10
EP1368729B1 (en) 2011-10-12
KR20020085883A (en) 2002-11-16
WO2002017064A3 (en) 2003-10-09
US6766460B1 (en) 2004-07-20

Similar Documents

Publication Publication Date Title
JP2004507814A (en) Power management system and method in JAVA accelerator environment
US6718475B2 (en) Multi-processor mobile computer system having one processor integrated with a chipset
US7730330B1 (en) System and method for saving and restoring a processor state without executing any instructions from a first instruction set
JP4640728B2 (en) System and method for dynamically and persistently tracking incremental profiling data in the process of cloning application environments
US6112303A (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 (en) Power management coordination in multi-core processors
JP4515093B2 (en) CPU power-down method and apparatus therefor
US20020095609A1 (en) Multiprocessor apparatus
JP2002533801A (en) Apparatus and method for automatic CPU speed control
US8243085B2 (en) Boosting graphics performance based on executing workload
JP2001043098A (en) Operating system and virtual computer system
TW201314433A (en) Server system and power managing method data thereof
WO2006034322A2 (en) A method and apparatus for controlling power consumption in an integrated circuit
JPH07311740A (en) Computer
US7856550B2 (en) System and method for hardware manipulation in a computing device
US8127161B2 (en) Data processing apparatus
CN110121688B (en) Method for judging loader and electronic system
JPS60218152A (en) Microprocessor
JP3082103B2 (en) Processor
JPH01118915A (en) Personal computer
JP2004086556A (en) Microcontroller
JPH0883133A (en) Computer system and clock control method for the same

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