JP3520611B2 - プロセッサの制御方法 - Google Patents
プロセッサの制御方法Info
- Publication number
- JP3520611B2 JP3520611B2 JP17067595A JP17067595A JP3520611B2 JP 3520611 B2 JP3520611 B2 JP 3520611B2 JP 17067595 A JP17067595 A JP 17067595A JP 17067595 A JP17067595 A JP 17067595A JP 3520611 B2 JP3520611 B2 JP 3520611B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- instruction
- hardware
- frequency
- resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- 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/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
- Power Sources (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロプロセッサに
おける消費電力の削減、高速実行、を行うためのプログ
ラミング言語のコンパイラにおける消費電力の制御方法
に関する。 【0002】 【従来の技術】一般に、マイクロプロセッサはCMOS回路
で構成されるため、プロセッサの消費電力はプロセッサ
のクロック周波数に比例して増加することとなる。この
ため、以下に示すように、これまでに幾つかの消費電力
削減方式が考案されている。 【0003】(1)特開平3-51902の「データ処理装置」
では、ハードウェアによりプロセッサの負荷を検出し、
負荷が低い場合にプロセッサ全体のクロック周波数を低
く変更する手段を具備することによって消費電力を削減
する方式が述べられている。 【0004】(2)特開平3-10306の「マイクロプロセッ
サ」では、パイプライン処理を行なうプロセッサにおい
て、命令をデコードした時点で、その実行に必要となる
機能ブロックを特定し、当該機能ブロックに対してのみ
クロックを供給する方式が述べられている。 【0005】(3)特開昭61-98426の「クロック周波数切
替機能付マイクロコンピュータ」では、命令によりマイ
クロプロセッサ全体の動作周波数を切替可能とする手段
が述べられている。 【0006】こうしたマイクロプロセッサへの入力クロ
ックの最大値は、同一のクロックを分配して使用する構
成を採ることが多いことから、一般に、各ハードウェア
資源を構成する回路間の遅延を考慮して、実行に矛盾が
生じないよう、動作周波数の最も低いハードウェア資源
の動作周波数に合わせて決定される。 【0007】 【発明が解決しようとする課題】処理の負荷によってプ
ロセッサ全体のクロック周波数を変更する上記(1)およ
び(2)の従来技術では、プロセッサ全体のクロック周波
数を変更するため、プロセッサの負荷が低い処理に対し
てしか消費電力を削減することができないという問題点
があった。 【0008】また、上記(1)および(2)の従来技術で
は、クロック発生装置の制御をハードウェアによって行
なわなくてはならないため、クロック制御のためのハー
ドウェアが複雑化するという問題点があった。 【0009】また,上記(2)の従来技術では、命令で利
用しない機能ブロックへはクロックの供給を停止してし
まうので、クロック供給によって状態を保つような回路
に対して消費電力を削減することができないという問題
点がある。 【0010】さらに、上記のように、従来のプロセッサ
の入力クロックは動作規格周波数の最も低いハードウェ
ア資源に合わせて設定され、当該回路を使用しない処理
を行なう場合でも、クロック周波数が低い周波数に限定
されてしまうという問題があった。 【0011】本発明の目的は、ハードウェアを複雑化す
ることなく、処理の負荷が高いか低いかに関わらず、消
費電力を削減することを可能とし、かつ、高速に命令を
実行するためのプロセッサの制御を行うための命令を自
動的に生成する方法を提供することにある。 【0012】 【課題を解決するための手段】本発明の目的を達成する
ため、本発明では、(1)CPUを構成するレジスタファイ
ルや演算器といったハードウェアを構成する各ハードウ
ェア資源に対するクロック入力を個別に命令によって制
御する機構をプロセッサに設け、(2)コンパイラによっ
て、プログラムの各命令の実行に必要とするハードウェ
ア資源をコンパイル時に検出し、この結果に基づいてプ
ログラムの実行に不要なハードウェア資源へのクロック
入力を停止あるいは低周波数に設定する命令を生成する
ことにより、実行性能を低下することなく、プロセッサ
の消費電力を低下させると共に、規格動作周波数の低い
ハードウェア資源を使用しない場合には、より高い周波
数で高速にプロセッサを動作させることを可能とする。 【0013】 【作用】本発明のプロセッサ及びその制御方法によれ
ば、プロセッサの動作の実行に不要あるいは高速性が要
求されないハードウェア資源の周波数を、コンパイラが
個別に低く設定することにより、プロセッサ全体の消費
電力を低く押えることができる。この際、他のハードウ
ェア資源に対する入力クロックの周波数は影響を受けな
いので、プロセッサの処理速度を低下させることなく消
費電力を削減することができる。 【0014】また、特定の周波数以上の入力クロックで
は動作しないハードウェア資源を利用する必要がない場
合には、他のハードウェア資源をより高速な周波数で動
作させることによりプロセッサの処理速度を向上するこ
とができる。 【0015】上述のように、本発明ではプログラムの各
命令の実行に必要とするハードウェア資源をコンパイル
時に検出し、各ハードウェア資源の入力クロックの周波
数を命令によって制御する。このため、上記機能を実現
するためには、各機能ユニットのクロックを制御するク
ロック制御回路を追加し、各機能ユニットのクロックを
変更する命令を認識してクロック制御回路を動作させる
機能を命令デコーダに追加するだけであるので,多量の
ハードウェアは必要としない。 【0016】 【実施例】以下、図面を参照しながら本発明の一実施例
について説明する。本実施例では、適用対象として多長
形式の命令によって複数のハードウェア資源を同時ある
いは個別に制御可能なVLIW(超多長命令)形式のプロセッ
サを説明する。ただし、本発明はVLIW形式のプロセッサ
のみに適用対象を限定するものではなく、通常のRISCお
よびCISC型プロセッサへも適用できる。 【0017】図1は本発明を適用したマイクロプロセッ
サの例である。プロセッサ100は、各ハードウェア資源
への入力クロックを制御するクロック制御回路101を有
する。複数のレジスタファイル103、演算器104、キャッ
シュメモリ105は、各々破線で表されるクロック入力に
よってクロック制御回路101に接続されている。また、
命令デコーダ102は、演算器104等を用いて通常のマイク
ロプロセッサと同様な命令の処理を行なうと共に、クロ
ック制御命令を認識した場合には、クロック制御回路10
1に、クロック変更対象のハードウェア資源の番号と変
更するクロックの周波数値あるいは周波数値を表す番号
を示す制御信号とを信号線106を通して送り、指定され
たハードウェア資源の入力クロックの周波数を変更す
る。 【0018】このように、本発明ではこれらハードウェ
ア資源への入力クロック周波数を、クロック制御回路10
1を制御する命令を実行することにより個別に変更する
ことができることを特徴とする。 【0019】図1に示すハードウェアにより、例えば、
メモリ参照を抑止する処理を実行する場合、クロック制
御回路101からキャッシュメモリ104への入力クロックを
停止あるいは低下する。上記のように、CMOSプロセッサ
の場合、消費電力はクロック周波数に比例して増加する
ため、これによりキャッシュメモリ104によって消費さ
れる電力を削減することができる。 【0020】また、本実施例でキャッシュメモリ104の
最大動作周波数が100MHz、その他のハードウェア資源の
最大動作周波数が200MHzであるとすると、キャッシュメ
モリへのアクセスを行なう処理では各ハードウェア資源
の入力クロック周波数を100MHzとし、キャッシュメモリ
へのアクセスを行なう処理では、キャッシュメモリ以外
のハードウェア資源の入力クロック周波数を200MHzとす
ることにより、キャッシュメモリへのアクセスを行なう
必要がない処理では通常の2倍の速度で処理を行なうこ
とができる。 【0021】図2はクロック制御回路101の1つの実施
例である。本実施例では、周波数の異なる複数のクロッ
ク発生器201が各ハードウェア資源202の入力クロック信
号線へ結合され、信号線106を介した命令によって選
択切替え可能なスイッチ203により相互に接続されて
いる。命令によりこれらの接続関係を切替えることによ
り、各ハードウェア資源の入力クロックを変更すること
が可能になる。また、ハードウェア資源202をクロック
発生器201と接続しなければ、当該ハードウェア資源の
入力クロックは停止状態となる。クロック制御回路101
を実現する際に、ここで述べた方法以外にも、複数種類
に分周可能なクロックをハードウェア資源毎に用意する
などの方法を用いることもできる。 【0022】図3は指定ハードウェア資源の周波数を変
更する命令の一実施例である。この命令では、レジスタ
ファイル103、演算器104、キャッシュメモリ10
5など、プロセッサを構成するハードウェア資源に対し
て、資源指定オペランド301で指定された資源の入力ク
ロック周波数を、クロック周波数指定オペランド302で
指定された周波数に変更する。 【0023】本命令を特殊化した形態として、上記クロ
ック周波数を変更する命令で設定可能な周波数を例えば
0Hzとプロセッサ全体の最大動作周波数の2種に限定し
た場合、図4に示すような2つの命令を考えることもで
きる。図4の例では、資源指定オペランド403に指定し
たハードウェア資源に対するクロック入力を開始する命
令401と、資源指定オペランド404に指定したハードウェ
ア資源に対するクロック入力を停止する命令402によっ
て、あるハードウェア資源の使用を開始する前にクロッ
ク入力を開始し、ハードウェア資源の使用が終了した時
点でクロック入力を停止することにより、消費電力を削
減することができる。 【0024】図5は、図3又は図4に示したクロック周
波数を変更する命令を生成するためのコンパイラの命令
生成部の構成図である。図5において、クロック周波数
変更命令の挿入部500は、クロック周波数変更命令を含
まない中間語503を入力し、クロックサイクル変更命令
を含んだ中間語505を出力する。ここで、資源利用表5
04は、プログラム実行の何サイクル目でどの様なハー
ドウェア資源が利用されるかという情報を記録した表で
ある。クロック周波数変更命令の挿入部500では、資源
利用表作成部501によって入力中間語に対する資源利用
表504が作成され、表504を参照してクロック制御命令挿
入部502によってクロック周波数変更命令を挿入した中
間語505が生成される。 【0025】図6は資源利用表504の例である。図6
で、横軸はクロックを制御可能なハードウェアの各資源
を表し、縦軸は実行の各サイクルを表している。図6
で、丸がついている欄は当該サイクルで当該ハードウェ
ア資源が使用されることを表している。 【0026】図7は、図5の資源利用表作成部501のフ
ローチャートである。資源利用表作成部501において
は、まず、ステップ702で、中間語に含まれるの命令
を1つ選択し、ステップ703で、選択した命令がプロ
グラム実行の各サイクルで使用するハードウェア資源を
資源利用表504に記憶する。次に、ステップ704で
は、中間語に未処理命令が残っていればステップ702
を再度実行し、なければ処理を終了する(ステップ70
5)。 【0027】図8は、図5のクロック制御命令挿入部50
2のフローチャートである。クロック制御命令挿入部5
02では、まず、ステップ801で処理を開始し、ステッ
プ802で未処理のハードウェア資源を1つを選択する。
ステップ803では、選択した資源に関して資源利用表を
参照して、当該資源が未使用であるサイクルの区間を求
める。ステップ804では、資源の未使用サイクルがクロ
ックの変更に要するサイクルよりも多いかどうか確か
め、資源の未使用サイクル数が多ければステップ805
へ、少なければステップ806へ制御を移す。ステップ805
では、求めた未使用区間の最初に当該ハードウェア資源
のクロック周波数を低下する命令を挿入し、未使用区間
の最後にクロック周波数を元に戻す命令を挿入する。ス
テップ806では、当該ハードウェア資源の未使用区間が
まだ残っているかどうか確かめ、残っていればステップ
803へ、残っていなければステップ807へ制御を移す。ス
テップ807では未処理のハードウェア資源が残っている
かどうか確かめ、残っていればステップ802へ制御を移
し、残っていなければステップ808へ制御を移して処理
を終了する(ステップ808)。 【0028】例えば、図9(a)に示すようにハードウェ
ア資源A、Bがクロック制御可能で、ループ902ではハ
ードウェア資源Aのみを使用し、ループ入口901とルー
プ出口903ではハードウェア資源A、Bを使用している
とすると、上記方法により資源利用表からループボディ
902では資源Bが利用されないことが分かるので、図9
(b)に示すように、ループ入口の直前に資源Bのクロッ
ク周波数を低下する命令904が挿入され、ループ出口の
直後に資源Bのクロック周波数を元に戻す命令905が挿
入される。これにより、ループ902の実行中において、
ハードウェア資源Bによって消費される電力を削減する
ことができる。 【0029】なお、クロック制御命令挿入部502の処
理では、未使用ハードウェア資源による電力消費を可能
な限り削減するよう、クロック制御命令を挿入している
が、同時実行可能な命令の制限からクロック制御命令の
挿入により実行サイクル数が増加してしまう場合もあ
る。このような場合には、図8のステップ805でクロッ
ク制御命令を挿入する際に、サイクル数が増加するか否
かを確かめれば良い。 【0030】 【発明の効果】マイクロプロセッサを構成する各ハード
ウェア資源が処理に必要ない場合、各ハードウェア資源
の入力クロックをクロック変更命令によって変更して低
いクロックを設定することにより、消費電力を削減する
ことができる。また、一定サイクル以上では動作しない
ハードウェア資源を使用する必要がない場合には、当該
ハードウェア資源以外のハードウェア資源のクロック周
波数を高く設定することにより処理を高速化することが
できる。
おける消費電力の削減、高速実行、を行うためのプログ
ラミング言語のコンパイラにおける消費電力の制御方法
に関する。 【0002】 【従来の技術】一般に、マイクロプロセッサはCMOS回路
で構成されるため、プロセッサの消費電力はプロセッサ
のクロック周波数に比例して増加することとなる。この
ため、以下に示すように、これまでに幾つかの消費電力
削減方式が考案されている。 【0003】(1)特開平3-51902の「データ処理装置」
では、ハードウェアによりプロセッサの負荷を検出し、
負荷が低い場合にプロセッサ全体のクロック周波数を低
く変更する手段を具備することによって消費電力を削減
する方式が述べられている。 【0004】(2)特開平3-10306の「マイクロプロセッ
サ」では、パイプライン処理を行なうプロセッサにおい
て、命令をデコードした時点で、その実行に必要となる
機能ブロックを特定し、当該機能ブロックに対してのみ
クロックを供給する方式が述べられている。 【0005】(3)特開昭61-98426の「クロック周波数切
替機能付マイクロコンピュータ」では、命令によりマイ
クロプロセッサ全体の動作周波数を切替可能とする手段
が述べられている。 【0006】こうしたマイクロプロセッサへの入力クロ
ックの最大値は、同一のクロックを分配して使用する構
成を採ることが多いことから、一般に、各ハードウェア
資源を構成する回路間の遅延を考慮して、実行に矛盾が
生じないよう、動作周波数の最も低いハードウェア資源
の動作周波数に合わせて決定される。 【0007】 【発明が解決しようとする課題】処理の負荷によってプ
ロセッサ全体のクロック周波数を変更する上記(1)およ
び(2)の従来技術では、プロセッサ全体のクロック周波
数を変更するため、プロセッサの負荷が低い処理に対し
てしか消費電力を削減することができないという問題点
があった。 【0008】また、上記(1)および(2)の従来技術で
は、クロック発生装置の制御をハードウェアによって行
なわなくてはならないため、クロック制御のためのハー
ドウェアが複雑化するという問題点があった。 【0009】また,上記(2)の従来技術では、命令で利
用しない機能ブロックへはクロックの供給を停止してし
まうので、クロック供給によって状態を保つような回路
に対して消費電力を削減することができないという問題
点がある。 【0010】さらに、上記のように、従来のプロセッサ
の入力クロックは動作規格周波数の最も低いハードウェ
ア資源に合わせて設定され、当該回路を使用しない処理
を行なう場合でも、クロック周波数が低い周波数に限定
されてしまうという問題があった。 【0011】本発明の目的は、ハードウェアを複雑化す
ることなく、処理の負荷が高いか低いかに関わらず、消
費電力を削減することを可能とし、かつ、高速に命令を
実行するためのプロセッサの制御を行うための命令を自
動的に生成する方法を提供することにある。 【0012】 【課題を解決するための手段】本発明の目的を達成する
ため、本発明では、(1)CPUを構成するレジスタファイ
ルや演算器といったハードウェアを構成する各ハードウ
ェア資源に対するクロック入力を個別に命令によって制
御する機構をプロセッサに設け、(2)コンパイラによっ
て、プログラムの各命令の実行に必要とするハードウェ
ア資源をコンパイル時に検出し、この結果に基づいてプ
ログラムの実行に不要なハードウェア資源へのクロック
入力を停止あるいは低周波数に設定する命令を生成する
ことにより、実行性能を低下することなく、プロセッサ
の消費電力を低下させると共に、規格動作周波数の低い
ハードウェア資源を使用しない場合には、より高い周波
数で高速にプロセッサを動作させることを可能とする。 【0013】 【作用】本発明のプロセッサ及びその制御方法によれ
ば、プロセッサの動作の実行に不要あるいは高速性が要
求されないハードウェア資源の周波数を、コンパイラが
個別に低く設定することにより、プロセッサ全体の消費
電力を低く押えることができる。この際、他のハードウ
ェア資源に対する入力クロックの周波数は影響を受けな
いので、プロセッサの処理速度を低下させることなく消
費電力を削減することができる。 【0014】また、特定の周波数以上の入力クロックで
は動作しないハードウェア資源を利用する必要がない場
合には、他のハードウェア資源をより高速な周波数で動
作させることによりプロセッサの処理速度を向上するこ
とができる。 【0015】上述のように、本発明ではプログラムの各
命令の実行に必要とするハードウェア資源をコンパイル
時に検出し、各ハードウェア資源の入力クロックの周波
数を命令によって制御する。このため、上記機能を実現
するためには、各機能ユニットのクロックを制御するク
ロック制御回路を追加し、各機能ユニットのクロックを
変更する命令を認識してクロック制御回路を動作させる
機能を命令デコーダに追加するだけであるので,多量の
ハードウェアは必要としない。 【0016】 【実施例】以下、図面を参照しながら本発明の一実施例
について説明する。本実施例では、適用対象として多長
形式の命令によって複数のハードウェア資源を同時ある
いは個別に制御可能なVLIW(超多長命令)形式のプロセッ
サを説明する。ただし、本発明はVLIW形式のプロセッサ
のみに適用対象を限定するものではなく、通常のRISCお
よびCISC型プロセッサへも適用できる。 【0017】図1は本発明を適用したマイクロプロセッ
サの例である。プロセッサ100は、各ハードウェア資源
への入力クロックを制御するクロック制御回路101を有
する。複数のレジスタファイル103、演算器104、キャッ
シュメモリ105は、各々破線で表されるクロック入力に
よってクロック制御回路101に接続されている。また、
命令デコーダ102は、演算器104等を用いて通常のマイク
ロプロセッサと同様な命令の処理を行なうと共に、クロ
ック制御命令を認識した場合には、クロック制御回路10
1に、クロック変更対象のハードウェア資源の番号と変
更するクロックの周波数値あるいは周波数値を表す番号
を示す制御信号とを信号線106を通して送り、指定され
たハードウェア資源の入力クロックの周波数を変更す
る。 【0018】このように、本発明ではこれらハードウェ
ア資源への入力クロック周波数を、クロック制御回路10
1を制御する命令を実行することにより個別に変更する
ことができることを特徴とする。 【0019】図1に示すハードウェアにより、例えば、
メモリ参照を抑止する処理を実行する場合、クロック制
御回路101からキャッシュメモリ104への入力クロックを
停止あるいは低下する。上記のように、CMOSプロセッサ
の場合、消費電力はクロック周波数に比例して増加する
ため、これによりキャッシュメモリ104によって消費さ
れる電力を削減することができる。 【0020】また、本実施例でキャッシュメモリ104の
最大動作周波数が100MHz、その他のハードウェア資源の
最大動作周波数が200MHzであるとすると、キャッシュメ
モリへのアクセスを行なう処理では各ハードウェア資源
の入力クロック周波数を100MHzとし、キャッシュメモリ
へのアクセスを行なう処理では、キャッシュメモリ以外
のハードウェア資源の入力クロック周波数を200MHzとす
ることにより、キャッシュメモリへのアクセスを行なう
必要がない処理では通常の2倍の速度で処理を行なうこ
とができる。 【0021】図2はクロック制御回路101の1つの実施
例である。本実施例では、周波数の異なる複数のクロッ
ク発生器201が各ハードウェア資源202の入力クロック信
号線へ結合され、信号線106を介した命令によって選
択切替え可能なスイッチ203により相互に接続されて
いる。命令によりこれらの接続関係を切替えることによ
り、各ハードウェア資源の入力クロックを変更すること
が可能になる。また、ハードウェア資源202をクロック
発生器201と接続しなければ、当該ハードウェア資源の
入力クロックは停止状態となる。クロック制御回路101
を実現する際に、ここで述べた方法以外にも、複数種類
に分周可能なクロックをハードウェア資源毎に用意する
などの方法を用いることもできる。 【0022】図3は指定ハードウェア資源の周波数を変
更する命令の一実施例である。この命令では、レジスタ
ファイル103、演算器104、キャッシュメモリ10
5など、プロセッサを構成するハードウェア資源に対し
て、資源指定オペランド301で指定された資源の入力ク
ロック周波数を、クロック周波数指定オペランド302で
指定された周波数に変更する。 【0023】本命令を特殊化した形態として、上記クロ
ック周波数を変更する命令で設定可能な周波数を例えば
0Hzとプロセッサ全体の最大動作周波数の2種に限定し
た場合、図4に示すような2つの命令を考えることもで
きる。図4の例では、資源指定オペランド403に指定し
たハードウェア資源に対するクロック入力を開始する命
令401と、資源指定オペランド404に指定したハードウェ
ア資源に対するクロック入力を停止する命令402によっ
て、あるハードウェア資源の使用を開始する前にクロッ
ク入力を開始し、ハードウェア資源の使用が終了した時
点でクロック入力を停止することにより、消費電力を削
減することができる。 【0024】図5は、図3又は図4に示したクロック周
波数を変更する命令を生成するためのコンパイラの命令
生成部の構成図である。図5において、クロック周波数
変更命令の挿入部500は、クロック周波数変更命令を含
まない中間語503を入力し、クロックサイクル変更命令
を含んだ中間語505を出力する。ここで、資源利用表5
04は、プログラム実行の何サイクル目でどの様なハー
ドウェア資源が利用されるかという情報を記録した表で
ある。クロック周波数変更命令の挿入部500では、資源
利用表作成部501によって入力中間語に対する資源利用
表504が作成され、表504を参照してクロック制御命令挿
入部502によってクロック周波数変更命令を挿入した中
間語505が生成される。 【0025】図6は資源利用表504の例である。図6
で、横軸はクロックを制御可能なハードウェアの各資源
を表し、縦軸は実行の各サイクルを表している。図6
で、丸がついている欄は当該サイクルで当該ハードウェ
ア資源が使用されることを表している。 【0026】図7は、図5の資源利用表作成部501のフ
ローチャートである。資源利用表作成部501において
は、まず、ステップ702で、中間語に含まれるの命令
を1つ選択し、ステップ703で、選択した命令がプロ
グラム実行の各サイクルで使用するハードウェア資源を
資源利用表504に記憶する。次に、ステップ704で
は、中間語に未処理命令が残っていればステップ702
を再度実行し、なければ処理を終了する(ステップ70
5)。 【0027】図8は、図5のクロック制御命令挿入部50
2のフローチャートである。クロック制御命令挿入部5
02では、まず、ステップ801で処理を開始し、ステッ
プ802で未処理のハードウェア資源を1つを選択する。
ステップ803では、選択した資源に関して資源利用表を
参照して、当該資源が未使用であるサイクルの区間を求
める。ステップ804では、資源の未使用サイクルがクロ
ックの変更に要するサイクルよりも多いかどうか確か
め、資源の未使用サイクル数が多ければステップ805
へ、少なければステップ806へ制御を移す。ステップ805
では、求めた未使用区間の最初に当該ハードウェア資源
のクロック周波数を低下する命令を挿入し、未使用区間
の最後にクロック周波数を元に戻す命令を挿入する。ス
テップ806では、当該ハードウェア資源の未使用区間が
まだ残っているかどうか確かめ、残っていればステップ
803へ、残っていなければステップ807へ制御を移す。ス
テップ807では未処理のハードウェア資源が残っている
かどうか確かめ、残っていればステップ802へ制御を移
し、残っていなければステップ808へ制御を移して処理
を終了する(ステップ808)。 【0028】例えば、図9(a)に示すようにハードウェ
ア資源A、Bがクロック制御可能で、ループ902ではハ
ードウェア資源Aのみを使用し、ループ入口901とルー
プ出口903ではハードウェア資源A、Bを使用している
とすると、上記方法により資源利用表からループボディ
902では資源Bが利用されないことが分かるので、図9
(b)に示すように、ループ入口の直前に資源Bのクロッ
ク周波数を低下する命令904が挿入され、ループ出口の
直後に資源Bのクロック周波数を元に戻す命令905が挿
入される。これにより、ループ902の実行中において、
ハードウェア資源Bによって消費される電力を削減する
ことができる。 【0029】なお、クロック制御命令挿入部502の処
理では、未使用ハードウェア資源による電力消費を可能
な限り削減するよう、クロック制御命令を挿入している
が、同時実行可能な命令の制限からクロック制御命令の
挿入により実行サイクル数が増加してしまう場合もあ
る。このような場合には、図8のステップ805でクロッ
ク制御命令を挿入する際に、サイクル数が増加するか否
かを確かめれば良い。 【0030】 【発明の効果】マイクロプロセッサを構成する各ハード
ウェア資源が処理に必要ない場合、各ハードウェア資源
の入力クロックをクロック変更命令によって変更して低
いクロックを設定することにより、消費電力を削減する
ことができる。また、一定サイクル以上では動作しない
ハードウェア資源を使用する必要がない場合には、当該
ハードウェア資源以外のハードウェア資源のクロック周
波数を高く設定することにより処理を高速化することが
できる。
【図面の簡単な説明】
【図1】本発明を適用したプロセッサの例である。
【図2】クロック制御回路の例である。
【図3】クロック制御命令の例である。
【図4】特殊化したクロック制御命令の例である。
【図5】コンパイラのクロックサイクル変更命令生成部
の構成図である。 【図6】資源利用表の例である。 【図7】資源利用表作成部のフローチャートである。 【図8】クロック制御命令挿入部のフローチャートであ
る。 【図9】クロック制御命令の使用例である。 【符号の説明】 101…クロック制御回路、102…命令デコーダ、103…レ
ジスタファイル、104…演算器、105…キャッシュメモリ
の構成図である。 【図6】資源利用表の例である。 【図7】資源利用表作成部のフローチャートである。 【図8】クロック制御命令挿入部のフローチャートであ
る。 【図9】クロック制御命令の使用例である。 【符号の説明】 101…クロック制御回路、102…命令デコーダ、103…レ
ジスタファイル、104…演算器、105…キャッシュメモリ
フロントページの続き
(72)発明者 森 教安
神奈川県川崎市麻生区王禅寺1099番地
株式会社日立製作所 システム開発研究
所内
(72)発明者 西本 哲
神奈川県川崎市麻生区王禅寺1099番地
株式会社日立製作所 システム開発研究
所内
(72)発明者 竹内 洋一
神奈川県川崎市麻生区王禅寺1099番地
株式会社日立製作所 システム開発研究
所内
(56)参考文献 特開 平2−14308(JP,A)
特開 平4−127210(JP,A)
特開 平5−303445(JP,A)
特開 昭58−62720(JP,A)
特開 昭63−100522(JP,A)
特開 平3−286213(JP,A)
(58)調査した分野(Int.Cl.7,DB名)
G06F 1/04 301
G06F 1/06
Claims (1)
- (57)【特許請求の範囲】 【請求項1】プログラムのコンパイル時に、多長形式の
各命令の実行のために必要なプロセッサの各ハードウェ
ア資源の利用状態をクロックサイクル毎に示すハードウ
ェア資源利用表を作成し、前記ハードウェア資源利用表
に基づいて、ある1のハードウェア資源の未使用サイク
ル数がクロック周波数変更に要するサイクル数よりも大
きい場合に、前記ある1のハードウェア資源に対する入
力クロックのクロック周波数変更命令をオブジェクトコ
ードに挿入し、前記クロック周波数変更命令を実行する
ことを特徴とするプロセッサの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17067595A JP3520611B2 (ja) | 1995-07-06 | 1995-07-06 | プロセッサの制御方法 |
US08/675,033 US5790877A (en) | 1995-07-06 | 1996-07-03 | Method for controlling a processor for power-saving in a computer for executing a program, compiler medium and processor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17067595A JP3520611B2 (ja) | 1995-07-06 | 1995-07-06 | プロセッサの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0922318A JPH0922318A (ja) | 1997-01-21 |
JP3520611B2 true JP3520611B2 (ja) | 2004-04-19 |
Family
ID=15909307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17067595A Expired - Fee Related JP3520611B2 (ja) | 1995-07-06 | 1995-07-06 | プロセッサの制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5790877A (ja) |
JP (1) | JP3520611B2 (ja) |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5881297A (en) * | 1996-12-31 | 1999-03-09 | Intel Corporation | Apparatus and method for controlling clocking frequency in an integrated circuit |
JP2000020187A (ja) * | 1998-07-07 | 2000-01-21 | Fujitsu Ltd | 情報処理装置及び電力制御方法並びに記録媒体 |
US6442701B1 (en) * | 1998-11-25 | 2002-08-27 | Texas Instruments Incorporated | Power saving by disabling memory block access for aligned NOP slots during fetch of multiple instruction words |
US6438700B1 (en) * | 1999-05-18 | 2002-08-20 | Koninklijke Philips Electronics N.V. | System and method to reduce power consumption in advanced RISC machine (ARM) based systems |
JP2000347761A (ja) * | 1999-06-02 | 2000-12-15 | Alps Electric Co Ltd | 制御回路 |
EP1117031B1 (en) * | 2000-01-14 | 2007-07-11 | Texas Instruments France | Microprocessor with reduced power-consumption. |
US7100061B2 (en) | 2000-01-18 | 2006-08-29 | Transmeta Corporation | Adaptive power control |
US7174194B2 (en) * | 2000-10-24 | 2007-02-06 | Texas Instruments Incorporated | Temperature field controlled scheduling for processing systems |
JP3880310B2 (ja) | 2000-12-01 | 2007-02-14 | シャープ株式会社 | 半導体集積回路 |
US20020108064A1 (en) * | 2001-02-07 | 2002-08-08 | Patrick Nunally | System and method for optimizing power/performance in network-centric microprocessor-controlled devices |
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
US6993669B2 (en) * | 2001-04-18 | 2006-01-31 | Gallitzin Allegheny Llc | Low power clocking systems and methods |
US6990598B2 (en) * | 2001-03-21 | 2006-01-24 | Gallitzin Allegheny Llc | Low power reconfigurable systems and methods |
CA2441950A1 (en) * | 2001-04-27 | 2002-11-07 | International Business Machines Corporation | Method and apparatus for controlling processor operation speed |
US6898721B2 (en) * | 2001-06-22 | 2005-05-24 | Gallitzin Allegheny Llc | Clock generation systems and methods |
US7057518B2 (en) | 2001-06-22 | 2006-06-06 | Schmidt Dominik J | Systems and methods for testing wireless devices |
JP2003186567A (ja) * | 2001-12-19 | 2003-07-04 | Matsushita Electric Ind Co Ltd | マイクロプロセッサ |
US7278137B1 (en) * | 2001-12-26 | 2007-10-02 | Arc International | Methods and apparatus for compiling instructions for a data processor |
US7191350B2 (en) * | 2002-01-30 | 2007-03-13 | Matsushita Electric Industrial Co., Ltd. | Instruction conversion apparatus and instruction conversion method providing power control information, program and circuit for implementing the instruction conversion, and microprocessor for executing the converted instruction |
EP1351117A1 (en) * | 2002-04-03 | 2003-10-08 | Hewlett-Packard Company | Data processing system and method |
SE522231C2 (sv) * | 2002-04-10 | 2004-01-27 | Axis Ab | Bildalstringsanordning och timinggenerator |
US7140019B2 (en) * | 2002-06-28 | 2006-11-21 | Motorola, Inc. | Scheduler of program instructions for streaming vector processor having interconnected functional units |
US7159099B2 (en) * | 2002-06-28 | 2007-01-02 | Motorola, Inc. | Streaming vector processor with reconfigurable interconnection switch |
US7415601B2 (en) * | 2002-06-28 | 2008-08-19 | Motorola, Inc. | Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters |
US6970985B2 (en) | 2002-07-09 | 2005-11-29 | Bluerisc Inc. | Statically speculative memory accessing |
WO2004034251A1 (en) * | 2002-10-11 | 2004-04-22 | Koninklijke Philips Electronics N.V. | Vliw processor with power saving |
US7366932B2 (en) * | 2002-10-30 | 2008-04-29 | Stmicroelectronics, Inc. | Method and apparatus to adapt the clock rate of a programmable coprocessor for optimal performance and power dissipation |
US7185215B2 (en) * | 2003-02-24 | 2007-02-27 | International Business Machines Corporation | Machine code builder derived power consumption reduction |
JP2004318502A (ja) * | 2003-04-16 | 2004-11-11 | Matsushita Electric Ind Co Ltd | 電力制御機能を備えたマイクロプロセッサ及び命令変換装置 |
US7028197B2 (en) * | 2003-04-22 | 2006-04-11 | Lsi Logic Corporation | System and method for electrical power management in a data processing system using registers to reflect current operating conditions |
US7149913B2 (en) * | 2003-08-22 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Bus clock frequency management based on characteristics of an application program |
US7206960B2 (en) * | 2003-08-22 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Bus clock frequency management based on device load |
US7146519B2 (en) * | 2003-08-22 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Bus clock frequency management based on device bandwidth characteristics |
US7290122B2 (en) * | 2003-08-29 | 2007-10-30 | Motorola, Inc. | Dataflow graph compression for power reduction in a vector processor |
JP4549652B2 (ja) * | 2003-10-27 | 2010-09-22 | パナソニック株式会社 | プロセッサシステム |
US20050114850A1 (en) * | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
EP1600845A1 (en) * | 2004-05-28 | 2005-11-30 | STMicroelectronics Limited | Processor with power saving circuitry |
US7206950B2 (en) * | 2004-06-16 | 2007-04-17 | Matsushita Electric Industrial Co., Ltd. | Processor system, instruction sequence optimization device, and instruction sequence optimization program |
JP4846226B2 (ja) * | 2004-10-26 | 2011-12-28 | 株式会社日立ソリューションズ | 情報処理装置、情報処理方法、およびプログラム |
KR100636596B1 (ko) * | 2004-11-25 | 2006-10-23 | 한국전자통신연구원 | 고에너지 효율 병렬 처리 데이터 패스 구조 |
JP5065618B2 (ja) * | 2006-05-16 | 2012-11-07 | 株式会社日立製作所 | メモリモジュール |
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
US8327173B2 (en) * | 2007-12-17 | 2012-12-04 | Nvidia Corporation | Integrated circuit device core power down independent of peripheral device operation |
US9088176B2 (en) * | 2007-12-17 | 2015-07-21 | Nvidia Corporation | Power management efficiency using DC-DC and linear regulators in conjunction |
US20090204837A1 (en) * | 2008-02-11 | 2009-08-13 | Udaykumar Raval | Power control system and method |
US9423846B2 (en) | 2008-04-10 | 2016-08-23 | Nvidia Corporation | Powered ring to maintain IO state independent of the core of an integrated circuit device |
US8762759B2 (en) * | 2008-04-10 | 2014-06-24 | Nvidia Corporation | Responding to interrupts while in a reduced power state |
US7945768B2 (en) * | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
JP2011134288A (ja) * | 2009-01-19 | 2011-07-07 | Fujitsu Ltd | コード生成装置及びコード生成方法 |
JP2010231306A (ja) * | 2009-03-26 | 2010-10-14 | Nec Corp | コンピュータシステム、ハードウェアリソース制御方法及びそのプログラム |
US9104435B2 (en) * | 2009-04-14 | 2015-08-11 | Empire Technology Development Llc | Program and data annotation for hardware customization and energy optimization |
JP2011164758A (ja) * | 2010-02-05 | 2011-08-25 | Fujitsu Ltd | Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法 |
US9773344B2 (en) | 2012-01-11 | 2017-09-26 | Nvidia Corporation | Graphics processor clock scaling based on idle time |
WO2013147289A1 (en) * | 2012-03-29 | 2013-10-03 | Semiconductor Energy Laboratory Co., Ltd. | Processor and electronic device |
US9378181B2 (en) * | 2012-11-09 | 2016-06-28 | Intel Corporation | Scalable computing array |
US9110734B2 (en) | 2012-11-12 | 2015-08-18 | International Business Machines Corporation | Power-constrained compiler code generation and scheduling of work in a heterogeneous processing system |
US9811874B2 (en) | 2012-12-31 | 2017-11-07 | Nvidia Corporation | Frame times by dynamically adjusting frame buffer resolution |
KR102063716B1 (ko) * | 2013-05-14 | 2020-02-11 | 삼성전자주식회사 | 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법 |
JP6933052B2 (ja) * | 2017-08-23 | 2021-09-08 | 富士通株式会社 | 情報処理装置、コンパイル方法及びコンパイルプログラム |
US10761584B2 (en) | 2018-03-16 | 2020-09-01 | Vigyanlabs Innovations Private Limited | System and method to enable prediction-based power management |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6198426A (ja) * | 1984-10-19 | 1986-05-16 | Nec Corp | クロツク周波数切替機能付マイクロコンピユ−タ |
US5339446A (en) * | 1986-12-26 | 1994-08-16 | Kabushiki Kaisha Toshiba | Power supply and method for use in a computer system to confirm a save operation of the computer system and to stop a supply of power to the computer system after confirmation |
JPH0276056A (ja) * | 1988-09-13 | 1990-03-15 | Toshiba Corp | 情報処理装置 |
JPH0310306A (ja) * | 1989-06-07 | 1991-01-17 | Mitsubishi Electric Corp | マイクロプロセッサ |
KR960003412B1 (ko) * | 1989-06-30 | 1996-03-13 | 포퀘트 컴퓨터 코오포레이션 | 컴퓨터 전력 관리 시스템 |
JPH0351902A (ja) * | 1989-07-20 | 1991-03-06 | Tokyo Electric Co Ltd | データ処理装置 |
JPH04143819A (ja) * | 1989-12-15 | 1992-05-18 | Hitachi Ltd | 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ |
JP2762670B2 (ja) * | 1990-03-30 | 1998-06-04 | 松下電器産業株式会社 | データ処理装置 |
JPH03116210A (ja) * | 1990-08-31 | 1991-05-17 | Hitachi Ltd | データ処理システム |
US5560017A (en) * | 1990-11-09 | 1996-09-24 | Wang Laboratories, Inc. | System with clock frequency controller responsive to interrupt independent of software routine and software loop repeatedly executing instruction to slow down system clock |
US5461266A (en) * | 1990-11-27 | 1995-10-24 | Hitachi, Ltd. | Power consumption control system |
US5390350A (en) * | 1991-04-22 | 1995-02-14 | Western Digital Corporation | Integrated circuit chip core logic system controller with power saving features for a microcomputer system |
JP2988781B2 (ja) * | 1992-05-22 | 1999-12-13 | シャープ株式会社 | コンピュータシステム用電力制御装置 |
JP2636691B2 (ja) * | 1993-07-12 | 1997-07-30 | 日本電気株式会社 | マイクロコンピュータ |
JPH07160585A (ja) * | 1993-12-13 | 1995-06-23 | Hitachi Ltd | 低電力データ処理装置 |
TW282525B (ja) * | 1994-06-17 | 1996-08-01 | Intel Corp | |
US5652894A (en) * | 1995-09-29 | 1997-07-29 | Intel Corporation | Method and apparatus for providing power saving modes to a pipelined processor |
-
1995
- 1995-07-06 JP JP17067595A patent/JP3520611B2/ja not_active Expired - Fee Related
-
1996
- 1996-07-03 US US08/675,033 patent/US5790877A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5790877A (en) | 1998-08-04 |
JPH0922318A (ja) | 1997-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3520611B2 (ja) | プロセッサの制御方法 | |
JP2762670B2 (ja) | データ処理装置 | |
JP2008040734A (ja) | 実行コードの生成方法及びプログラム | |
CN106980597B (zh) | 片上系统验证方法及验证系统 | |
JPS6184740A (ja) | 汎用オブジエクトコ−ド生成方式 | |
US7114089B2 (en) | System for controlling operation of a processor based on information contained within instruction word | |
EP0140299A2 (en) | Vector mask control system | |
JPH09251389A (ja) | データ処理装置 | |
EP1372065B1 (en) | System large scale integrated circuit (LSI), method of designing the same, and program therefor | |
AU613231B2 (en) | Data processing apparatus | |
JPH01199233A (ja) | パイプライン処理における条件分岐制御方式 | |
JPS58200349A (ja) | マイクロプログラム制御装置 | |
JP2003196085A (ja) | 情報処理装置 | |
JP2979108B2 (ja) | データ処理装置における非同期処理の同期化方式 | |
JPH0876876A (ja) | マイクロプロセッサのクロック供給制御回路 | |
JPH04342067A (ja) | ベクトル演算装置 | |
JPS5829051A (ja) | 演算処理装置 | |
JPS61241843A (ja) | 情報処理装置 | |
JPH04195316A (ja) | 省電力回路 | |
JPH04112341A (ja) | マイクロコンピュータlsi | |
JPH113225A (ja) | 情報処理装置 | |
JPH064306A (ja) | 割り込み処理の分割方法 | |
JPH03233703A (ja) | シーケンス制御装置 | |
JPH04107633A (ja) | マイクロプログラム制御装置 | |
JPH02253473A (ja) | ベクトル処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040113 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040126 |
|
LAPS | Cancellation because of no payment of annual fees |