JP2005523510A - マイクロプロセッサおよびその電力を管理する方法 - Google Patents

マイクロプロセッサおよびその電力を管理する方法 Download PDF

Info

Publication number
JP2005523510A
JP2005523510A JP2003586732A JP2003586732A JP2005523510A JP 2005523510 A JP2005523510 A JP 2005523510A JP 2003586732 A JP2003586732 A JP 2003586732A JP 2003586732 A JP2003586732 A JP 2003586732A JP 2005523510 A JP2005523510 A JP 2005523510A
Authority
JP
Japan
Prior art keywords
instruction
logic circuit
logic
microprocessor
power
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
JP2003586732A
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005523510A publication Critical patent/JP2005523510A/ja
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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

【課題】 マイクロプロセッサの消費電力を効率的に管理する装置と方法を提供する。
【解決手段】 マイクロプロセッサ100は論理回路112、121、123を備えている。前記論理回路には選択装置150が接続されている。前記選択装置は被格納論理値に基づいて前記論理回路のオン/オフ状態のスイッチングを実現する。前記マイクロプロセッサの命令シーケンスに従い前記論理回路の被予測使用率に基づいて前記論理回路のオン/オフ状態を制御するように前記被格納論理値をセットするプログラム命令を備えている。

Description

本発明はマイクロプロセッサ型ディジタル集積回路の電力管理に関し、特に電力管理情報をコンパイラが生成する命令群中に組み込むことによりプロセッサ部の電力を動的に管理する装置と方法に関する。
プロセッサの動的電力管理は2つの一般的なカテゴリに分けることができる。すなわち、クロック・ゲーティングを用いたサイクルごとの管理と、ソフトウェアを電力節減モードに設定することによる長期管理とである。クロック・ゲーティングはある機能を現在のクロック・サイクルの間に使用すべきか否かを解析する論理回路に基づいており、否の場合に当該機能が使用する論理回路部へのクロックを遮断するものである。このプロセスでは、クロック駆動する論理回路における電力を節減するために解析論理回路において電力を消費している。また、クロック駆動されている論理回路は能動状態にあるから、クロックが遮断されているサイクルの間に除去されるのは電力消費の動的要素だけである。しかし、漏れ要素すなわち静的要素も除去するのが望ましい。長期の電力節減には電力節減モードが使用されるが、当該モードを呼び出すため、および通常動作へ復帰するためにオーバヘッドが必要である。
米国特許第4980836号(「コンピュータ・システムの電力消費を低減させる装置(APPARATUS FOR REDUCING COMPUTER SYSTEM POWER CONSUMPTION)」)には、個別のプロセッサとI/Oコントローラが各々、低電力モードを備え、オペレーティング・システムが各装置の電力使用量を動的にモニタし、ある装置が不使用であることを検出したら当該装置を停止させる、ソフトウェア制御の電力節減モードの一般的な方法が教示されている。低電力モードの実現は従来、電源電圧を生成する調整器を制御して電力消費の動的要素と静的要素を除去することにより行なっている。現在技術のこのグローバル・モードによる方法にはいくつかの弱点がある。すなわち、この方法ではオペレーティング・システムがアクティビティをモニタすることが必要であるが、それにはいくらかの電力消費を伴う。また、この方法では将来のアクティビティを予測することができない。さらに、装置は多数回オン、オフするから、実際に節減される電力は少ない。
米国特許第5781062号(「半導体集積回路(SEMICONDUCTOR INTEGRATED CIRCUIT)」)には、仮想Vddと仮想接地を生成するMTCMOS(multi-threshold complementary metal oxide semiconductor)構造体を備えた論理回路が、グローバル電力節減信号(たとえば「待機制御信号(Standby Control Signal)」)によって制御するヘッダ/フッタ・スイッチ構造体を備えることが教示されている。米国特許第5781062号には電力を節減し管理するための2つのモードが教示されている。第1のモードでは、待機期間中、ヘッダ/フッタ・スイッチ装置は論理回路における情報の損失を避けるため周期的に導通/非導通を繰り返して仮想Vddと仮想接地に漏れ電力を供給する。第2のモードでは、待機期間中に周期的な導通期間を設けない。この結果、漏れ電力をなくすことにより節減する電力を増大させることができるが、仮想Vdd線を放電させる必要がある(仮想Vdd線は開始から能動期間までVddに充電しなおす必要がある)。この方法で仮想Vddと仮想接地をオフにして節減しうる電力は、多数回呼び出す場合にはサイクルごとクロック・ゲーティングよりも多くなるだけである。この技術にはオフになっている論理回路部が将来における数サイクルの間に使用されることがないということを確認する手段が教示されていない。したがって、従来技術において明示的にプログラムされているグローバル・モードはヘッダ/フッタ・スイッチを制御するのに利用しうる手段のみである。
CMOS論理回路における電力消費には2つの要素、すなわち能動電力と静的電力すなわち漏れ電力とがある。能動電力は回路がスイッチングするときに消費され、静的電力すなわち漏れ電力は論理回路にVddと接地が印加されているときに消費される。能動電力の既存の電力管理は論理回路が不使用のときにサイクルごとにクロックをオフにするクロック・ゲーティングに基づいている。
図1を参照する。図1は静的CMOS論理回路12の漏れ電力を制御するのに使用するMTCMOS構造体を示す図である。SLEEP信号がアクティブのとき、Vddと接地はトランジスタ11、13によって論理回路の残部から切断されるから、漏れ電力は消費されない。従来、SLEEPモードの電界効果トランジスタ(FET)11、13のしきい値は漏れ電力が最小になるのを保証するために残りの論理FETよりも高く形成している。この手法には2つの難点がある。第1は性能を低下させないためにスリープ・モードのFETのサイジングがきわめて重要であるという点である。第2はVddまたは接地を切断すると、論理回路が蓄積済みの電荷、したがって以前に格納した状態のすべての記憶を徐々に失うという点である。電力が復旧したら、論理回路の放電済みのすべてのノードを再充電する必要があるから、電力を消費する。したがって、実際に電力の節減を実行するためには、SLEEPモード制御を数サイクルにわたって呼び出す必要がある。
プロセッサの論理回路が将来においていつ使用されるのかを予測することは困難であるから、従来技術ではオペレーティング・システムのグローバル制御に頼ってMTCMOS構造体のSLEEPモードを制御している。次に、図2を参照する。図2はそのような制御構造を備えたプロセッサ22を示す図である。プロセッサ22は仮想Vddと仮想接地によって電力を供給されている。仮想Vddと仮想接地は(常時、電力が供給されている)スリープ・モード・ラッチ24の状態に基づいて生成される制御信号SLEEPを使用しFET21、23によって制御している。このスリープ・モード・ラッチ24はプロセッサ22がセット信号25によってセットする。セット信号25はなすべき仕事が残っていないときにプログラム済みのオペレーションによってプロセッサがアサートする。オペレーティング・システムのカーネルはセット信号25をアサートする前にオペレーションを復旧させるのに必要な、プロセッサ22の状態を何らかの不揮発性記憶装置(図示せず)に保存する必要がある。スリープ・モード・ラッチ24のリセット端子にはオペレーションを復旧させるための何らかの外部イベント26が接続されている。これは一部のコンピュータで使用されている電力調整器遮断機能を備えた「サスペンド」モードと概念的に同一である。
米国特許第4980836号 米国特許第5781062号
したがって、ディジタル集積回路においてより効率的に電力を管理する装置と方法が求められている。また、特定のハードウェア構造体の将来における使用予測に基づくプロセッサの電力管理が求められている。
マイクロプロセッサは論理回路(circuit)を備えている。前記論理回路には選択装置が接続されている。前記選択装置は被格納論理値に基づいて前記論理回路のオン/オフ状態のスイッチングを実現する。前記マイクロプロセッサの命令シーケンスに従い前記論理回路の被予測使用率に基づいて前記論理回路のオン/オフ状態を制御するように前記被格納論理値をセットするプログラム命令を備えている。
他の実例では、前記選択装置は電圧源からオン状態にある前記少なくとも1つの論理回路の電力線への接続を実現するスイッチを備えることができる。前記選択装置は接地からオン状態にある前記少なくとも1つの論理回路の電力線への接続を実現するスイッチを備えることができる。マイクロプロセッサは前記被格納論理値を格納する、前記選択装置に接続されたレジスタを備えることができる。前記レジスタは数命令サイクルの後に更新される。命令シーケンスと前記論理ユニット(unit)が必要とする付随リソースとを含む入力テーブルを備えることができる。前記被予測使用率は前記入力テーブルに従って決められる。
さらに他の実例では、前記論理ユニットの前記被予測使用率は数命令サイクル後における前記論理装置(device)の使用率を含むことができる。前記マイクロプロセッサは前記論理装置の電力節減用オン/オフ状態に対応する論理状態を含む出力テーブルを備えることができる。前記プログラム命令は前記電力節減用オン/オフ状態に従って前記論理回路を制御しうるように前記被格納論理値をセットすることができる。
本発明の別のマイクロプロセッサは機能グループ群に分割された複数の論理回路を備えている。前記機能グループ群の各々には選択装置が接続されている。各選択装置はレジスタに格納された論理値に基づいて対応する機能グループのオン/オフ状態のスイッチングを実現する。プログラム命令が、前記機能グループ群のオン/オフ状態を制御する前記論理値を前記レジスタにセットする。コンパイラ・プログラムが、前記機能グループ群の各々の使用率を予測する命令シーケンスに基づいて前記レジスタにセットすべき前記論理値を生成する。
前記選択装置は各々、電圧源からオン状態にある機能グループの電力線への接続を実現するスイッチ、または接地からオン状態にある機能グループの電力線への接続を実現するスイッチを備えることができる。前記レジスタは各機能グループごとに1つの記憶場所を備えることができる。前記レジスタは数命令サイクルの後に更新されるのが望ましい。前記マイクロプロセッサは前記コンパイラ・プログラムが生成するとともに、命令シーケンスと前記機能グループ群の各々が必要とする付随リソースとを含む入力テーブルを備えることができる。前記機能グループ群の前記使用率は前記入力テーブルに従って決められる。前記機能グループ群の前記使用率は数命令サイクル後における前記機能グループ群の使用率を含むことができる。前記マイクロプロセッサは前記機能グループ群の電力節減用オン/オフ状態に対応する論理状態を含む出力テーブルを備えることができる。
本発明に従いマイクロプロセッサ中の論理回路への電力を管理する組み込み命令シーケンスを生成する方法は前記マイクロプロセッサ用の機能プログラムを制御する命令シーケンスを生成する。前記命令シーケンスを解析して各命令サイクルにおいて前記論理回路のうちどれが活動状態にあるかを判断する。前記機能プログラムの各命令サイクルごとに、各論理回路が現在の命令サイクルの後に静止状態になる命令サイクルの数とある値とを比較する。前記比較に基づいて前記論理回路の各々をオンまたはオフにする命令シーケンスを挿入する。
他の方法において、命令シーケンスを挿入する前記ステップは論理値群を用いてレジスタをプログラムするステップを含むことができる。そして、前記論理値群に基づいて前記論理回路の各々をオンまたはオフにする。前記比較の前記値は前記論理回路におけるすべての電力節減を実現しうるように決められた数を含むことができる。ここに記載した方法を実行するマシン実行可能な命令群から成るプログラムを有形的に記録したマシン読み取り可能なプログラム記録媒体を提供することができる。
本発明はマイクロプロセッサのヘッダ/フッタ装置を制御するものである。上記マイクロプロセッサはMTCMOS(multi-threshold complementary metal oxide semiconductor)構造を用いたディジタル集積回路であるのが望ましいけれども、他の電界効果トランジスタ装置または他の種類の構造を用いてもよい。制御対象の論理回路は将来における数サイクルの間、使用されないという予測に基づいて、所定のヘッダ/フッタ装置をオフにする。特定の装置が必要になるという予測は記憶装置、監視(lookout)テーブル、またはコンパイラが出す命令シーケンスから抽出する。次いで、特定の装置が必要になるというこの予測を用いてヘッダ/フッタ・スイッチをオンまたはオフにする。これらのスイッチにはCMOS FET、または他の任意のスイッチング装置を用いることができる。
一実施形態では、ある装置を使用するという予測はプロセッサ用の命令群を生成し、それらをその実行中に使用する命令群のテキストに関連付けるときにコンパイラによって抽出することができる。特に有用な一実施形態では、マイクロプロセッサの論理装置/論理回路をたとえば自身のヘッダ/フッタ・スイッチによって個別に管理することのできる複数の電力管理領域に細分化する方法を用いている。上記複数の電力管理領域に対する電力を個別に管理する命令群を生成することができる。
本発明の一側面は複数の独立した論理回路グループに分割されたマイクロプロセッサ型のディジタル集積回路を提供するものである。上記ディジタル集積回路は各々、たとえばヘッダ/フッタ・スイッチを独立して制御しうるMTCMOS構造を有するとともに、マイクロプロセッサの命令セット・アーキテクチャ中にヘッダ/フッタ・スイッチの状態をプログラム制御するのを可能にする命令群を備えている。マイクロプロセッサ用のプログラムを構成する命令シーケンスはコンパイラ・プログラムによって生成する。ただし、上記コンパイラ・プログラムには機能によって分割した論理回路の各部と電力節減を実行するためにヘッダ/フッタを開放しておく必要のある最小時間とが指示されている。上記コンパイラはこれらの機能の任意のものに付随するリソースが当該機能に付随する最小期間に使用されないか否かを判断するプログラム論理を備えているのが望ましい。このプログラム論理には各グループが使用されないときに当該グループをオフにするのに必要な命令を挿入するコード生成フェーズが設けられている。上記コンパイラとランタイム(実行時)環境には仮想Vddと仮想接地をオフにすることにより失われる状態をすべて保存し復旧させるプログラム論理が付加されている。本発明を使用すれば、電力節減量が個別のクロック・ゲーティングよりも大きくなるとともに、グローバル・スリープ・モードを呼び出すことに付随する負のシステム効果を伴うことなく電力の節減を実現することが可能になる。
図面に示した構成要素は様々な形態のハードウェア、ソフトウェア、またはそれらの組み合わせで実現できるということを理解する必要がある。これらの構成要素はハードウェアとソフトウェアの組み合わせで実現し、配線または格納し、プロセッサとメモリと入出力インタフェースを備え適切にプログラムされた少なくとも1つの汎用ディジタル・コンピュータで実行する。次に、図面を参照する。図中、同一の符号は同一または類似の構成要素を表わす。まず、図3を参照する。図3は本発明を説明的に記述する説明用回路100の模式図である。しかし、本発明はより広く、他の回路、集積回路、または半導体チップにも適用することができる。
本発明の一実施形態では、プロセッサ100は論理回路112、121、123を備えている。また、論理回路の機能グループは特定の命令群に関連付けられたグループ101〜107に細分化されている。各論理グループ101〜107ごとに、個別の制御(配線110)を備えたヘッダFET108とフッタFET108(MTCMOSであるのが望ましい)が設けられている(説明を簡明にするためにグループ102〜106用の配線110は省略されている)。プロセッサ100は本発明に従い、個別に制御されるヘッダ/フッタ・スイッチを備えていない論理回路グループ112に分割されたプロセッサ論理回路を用いて構築されている。この論理回路グループ112(または論理回路グループ群)はグループ全体用の個別のMTCMOS型ヘッダ/フッタ制御装置を備えていない。ただし、他の実施形態では、論理回路グループ112の一部分または論理回路グループ112の回路全体が個別のヘッダ/フッタ制御装置を備えている。特定の命令種別の実行リソースに対応する7つの個別に制御されるグループ101〜107は個別に制御可能なヘッダ/フッタ・スイッチ108を備えている。
このような制御を有さない論理回路(112)の一部分は実際には細分化することができる。そして、細分化した部分の一部のものは電力管理を備えている。しかし、本発明の原理を示すには図3に示す部分で十分である。理解すべき点を挙げると、本発明は様々な多数の論理構成に適用することができるから、このような論理回路の部分はたとえば当該論理回路の動作可能かつ効率的な部分を決める常識的な原理を用いてチップの設計者が規定する基準に従って形成することができる。
一実施形態では、論理回路112内のレジスタ131、133および他のレジスタ(図示せず)に格納されている、プロセッサ100の現在の状態に付随するすべての論理回路は仮想Vdd/仮想接地によって電力を供給されていないが、その代わりに「ON」に維持されている。あるいは、この論理回路には上述したグローバル信号によって制御される仮想Vdd/仮想接地によって電力を供給してもよい。しかし、現在のプロセッサの状態を失うことはできないから、この仮想Vdd/仮想接地を実Vdd/実接地から切り離すことはできない。ただし、プロセッサの状態が何らかの不揮発性記憶装置に保存済みである場合はこの限りでない。図2を参照して上述したグローバル電力節減モードの場合には、状態の保存と復旧のために不揮発性記憶装置とオペレーティング・システムによるサポートとが必要である。この全体的な電力管理の別の実施形態は知られているので、図3には示されていない。
プロセッサ100は複数の異なる装置を備えている。図3に模式的に示すように、整数ユニット121は整数論理回路(たとえば加算論理回路101、整数シフト論理回路102、整数論理ユニット103、整数乗算ユニット104)と整数レジスタ131とを備えている。浮動小数点ユニット123は浮動小数点論理回路(たとえば浮動小数点加算論理回路105、浮動小数点除算論理回路106、浮動小数点乗算論理回路107)と浮動小数点レジスタ133とを備えている。
グループ112はメモリ・キュー/バス・インタフェース・ユニット130を備えている。このユニット130は入力としてアドレス情報とデータを受領し、キャッシュ・アレイ132中のアドレス指定された場所にデータを格納する。キャッシュ・アレイ132中に存在する情報を特定するために、キャッシュ・アレイ132に格納されているデータにはキャッシュ・タグ134を付加する。命令キュー/ディスパッチ・ユニット136は命令(たとえば専用ユニット命令、浮動小数点命令、および/または整数命令)を受領し、それらを処理用の適切な実行リソース(たとえば専用レジスタ・ユニット150、浮動小数点ユニット121)に向ける。(「Aおよび/またはB」は「AおよびB、A、またはB」を表わす。)命令フェッチ・ユニット138は次の順次命令アドレスまたは分岐目標アドレスから実行すべき次の命令をフェッチする。分岐ユニット140には命令フェッチ・ユニット138がフェッチする分岐命令がすべて供給する。分岐ユニット140は分岐後に実行する次の命令が、次の順次命令であるか、あるいは分岐命令が特定している情報から算出したアドレスからフェッチする被採用分岐目標に存在する命令であるかを判断する。ロード/ストア・ユニット142はロード命令とストア命令をすべて実行するとともに、キャッシュ・アレイ132と整数レジスタ131、浮動小数点レジスタ133、および専用レジスタ・ユニット150中の専用レジスタ(たとえばレジスタ152)との間におけるデータ転送インタフェースを提供している。
本発明によると、論理回路グループ101〜107の各々は電力マップ・レジスタ152を含む専用ユニット150中のビットによって制御する。レジスタ152の値は命令テキスト中の値をレジスタ512にロードする特別の即値命令によってセットする。これらの命令は後述するコンパイラのコード生成器が挿入する。
図4を参照する。コンパイルのコード割り当てフェーズの終期の間に、コンパイラは図4に模式的に示す情報を備えたテーブル200を構築する。テーブル200の各列は個別に制御されるヘッダFET/フッタFET108(図3)を備えた論理回路グループ(図3において101〜107が付されたグループ)に対応している。各行201は実行順に1〜10が付された命令に対応している。テーブル200のセルにはチェック印を付して対応する行の命令が当該リソース(たとえば論理回路グループ)を使用する時を表わしている。各列においてチェック印間の距離が長いほど、論理回路グループ(101〜107)が電力をオフにされている時間が長くなる。好適な実施形態では、コンパイラはコンパイラの最適化指示に適合する範囲内でコードの順序を変更し、各列中のチェック印間の距離を最大化している。テーブル200が完成したら、図5に示す方法を実行し適切なデータ即値を備えた「電力マップ・レジスタをロード(Load Power Map Register)」命令を生成する。図5の方法は実際に電力節減が行なわれる前に1つのユニットを遮断するのに要する最小サイクル数であると考えられる個数のサイクルを入力として必要とするソフトウェアで使用するのが望ましい。
図5を参照する。たとえば、実際に電力の節減が行なわれる前に1つのユニットを遮断するのに要する最小サイクル数は5サイクル(5命令)であると仮定する。図4のテーブル200と同一個数の行と列を備えた入力テーブル300を構築する。図4中のチェック印は入力テーブル300では論理値「1」で表されている。出力テーブル301は入力テーブル300と同数の行と列を備えている。出力テーブル301中の値「1」は当該列に対応する論理回路(グループ101〜107のうちの少なくとも1つまたは該当なし(none or more of groups 101-107))用のスイッチ108(図3)に対する制御信号をNOT SLEEPにセットすべきこと(すなわち論理回路に電力を供給すべきこと)を表わしている。ブロック304において、方法を初期化し、入力テーブル300の第1行から開始する。
方法は電力を節減するのに必要な最小サイクル数(この例では当該最小サイクル数(すなわち当該最小命令数)は5である)を予見してユニットへの電力の供給を遮断できるか否かを判断し、YESならば出力テーブル301中の対応するセルを「1」にセットする。これは入力テーブル300の第1行中の各セルをチェックすることにより行なう(ブロック306)。現在のセル値は「C」で表すが、「1」または「0」の値を取りうる。出力テーブル中の先行する行の値は「P」で表わす。留意点を挙げると、出力テーブル301中のすべて「1」から成る先行する行を、方法が認定する第1行として使用することができる。次いで、最小サイクル数(たとえば5)に対応する最小数の行を論理ORすることにより命令のアクティビティの確認を行なう。この論理OR操作の結果はNで表わす。
ブロック308において、C=1ならばプログラム経路はブロック310から続行する。そうでなければ、プログラム経路はブロック312から続行する。ブロック310では、C=1のセルに対応する論理装置または論理グループはオンにしておく必要がある。したがって、出力テーブル301中の対応する場所には「1」をセットする。ブロック312において、論理ユニットまたは論理グループ(たとえばグループ101〜107のうちの1つ)を5サイクル以内に使用しない場合(C=1、N=0)、または、論理ユニットまたは論理グループを5サイクル以内に使用するがすでに電力の供給を遮断している場合(C=0、P=0)、当該セルに対応する論理ユニットまたは論理グループは必要になるまでオフのままにしておく。これらの条件が存在する場合、出力テーブル301中の対応する場所は「0」にセットする。
ブロック314において、すべての行が完了しているか否かをチェックする。すべて行が完了しているわけではない場合、プログラム経路はブロック316において次の行に進み、ブロック306へ戻る。そうでない場合、プログラム経路はブロック318から続行する。
ブロック318において、電力管理命令LOAD POWER MAPを挿入する。挿入するLOAD POWER MAP(LPM)命令の個数はユニット(たとえば101〜107)の一部のオフにすることによる電力節減量と新たな命令によって浪費される電力および命令スペースとの間のバランスを表わしている。極端な場合、サイクルごとに新たな電力管理値をロードする可能性があるから、命令の個数は2倍になる。他の場合、電力管理命令はxサイクルごとに実行する。したがって、単位コード当たりの電力管理命令の最大個数を厳守するのが望ましい。xの実際の値はLPM命令を備えたまたは備えないプログラムの合計サイズと挿入したLPM命令を実行する際に消費される合計電力とを考慮して設定することができる。挿入したLPM命令の各々によってプログラムの性能が劣化する。なぜなら、当該命令は他の命令用に使用しうる1実行サイクルを取り上げてしまうとともに、そのフェッチと実行の間に電力を消費するからである。LPM命令の実行によって消費される合計電力はユニット101〜107(図3)の仮想Vdd/仮想接地をオフにすることにより節減される電力未満に留めておく必要がある。
図6を参照する。図6は図5の出力テーブル301に従って付加した電力管理命令を有する、図4のテーブル200を構築する例を示す図である。留意点を挙げると、この例では、あるユニットの出力テーブル値が1から0になるサイクルで当該ユニットをオフにする。図6に示すように、命令シーケンスはLoadPowerMap(LPM)命令を含んでいる。このLoadPowerMap(LPM)命令は命令中に即値ディジタル・データ・フィールド(たとえば「1111000」)を備えており、出力テーブル301から電力マップ・レジスタ152(図3)にこのディジタル・ワードをロードして論理ユニット/論理グループ101〜107の一部または全部を有効または無効にし、あるいは何もしない。この例では、ディジタル・ワード「1111000」によってユニット101〜104を有効にし、ユニット105〜107を無効にしまたはオフ状態に保っている。次いで、命令1の次に、別のLPM命令(「0111000」)、命令2、命令3、LPM命令(「0011000」)、命令4、そして命令5が続く。次いで、命令5と命令6との間に挿入されたLPM命令によって1サイクル早く追加のユニットをオンにして次のサイクルで別の電力マスク命令が挿入されるのを防止している。次いで、命令6、命令7、命令8、LPM命令(「1000110」)、命令9、そして命令10を実行する。
LPM命令を用いて電力マップ・レジスタ152を能動的に制御するプログラムを正確に動作させると、プログラムの中断の間に上記レジスタの正確な状態を保持することが可能になる。電力マップ・レジスタ152の状態の処理は中断処理プログラムに統合するのが望ましい。(普通には外部イベントの結果として)プログラムの中断が発生したら、自身に付随する電力マップ・レジスタの状態を備えた現在実行中のプログラムを停止させたのち、中断処理プログラムを呼び出す。中断処理プログラムはまず当該プログラムが必要とするすべての実行リソースに電力が供給されることを保証する。それは当該プログラムが必要とする適切な値を電力マップ・レジスタ152にセットすることにより行なう。プログラムはLPM命令が実行されるまで遅延する。そして、実行ユニットの電力の状態は電力マップ・レジスタ152にロードされた状態に対応している。この遅延は命令(この場合、LPM命令)のフェッチとその実行(すなわちオフしている必要なユニットをすべてオンさせること)との間に存在する通常のパイプライン遅延に起因する。
一実施形態では、中断したプログラムの電力マップ・レジスタ152の状態は中断処理プログラムが必要とする実行リソースに対応する新たな値をロードする前に保存することができる。これにより、中断ハンドラは中断したプログラムの復旧前に電力マップ・レジスタに値をストアしなおすことが可能になる。しかし、このことはプログラムの正確な動作にとって必要ではない。
あるいは、電力節減量がわずかに失われるが、電力マスク(mask)レジスタの値をすべて「1」にして中断したプログラムを復旧させてもよい。この場合、復旧したプログラムで実行される次のLPM命令が電力マスク(mask)レジスタを正確な値にセットする。
本発明の上述した開示は単発行かつインオーダ型のプロセッサを参照して装置とコンパイル方法を提供するものである。ここで説明したコンパイラは概念上のマシン順序で実行される命令を想定しており、それに基づいて自身の解析を実行する。しかし、本発明は多発行かつアウトオブオーダ型のマシンにも適用することができる。これを実現するには、そのようなマシンの発行論理回路用にLPM命令のマスク(mask)を解析するためのハードウェアを追加する。この論理回路はスコアボード(得点掲示板)レジスタの使用方法と類似している。そして、この論理回路を使用すると、当該論理回路を付加したことに起因して電力節減量がそれに応じて低減する。
以上、累積された命令解析表を備えたコンパイラが制御するハードウェア構造を用いてプロセッサの電力管理用に好適な実施形態(これらは説明を目的としたものでり、限定を意図していない)を説明したが、留意点を挙げると、上述した教示に鑑み当業者は変更と変形を成しうる。したがって、理解すべき点を挙げると、開示した本発明の特定の実施形態は変更することができるが、それらは特許請求の範囲によって外郭を画定した本発明の範囲と本旨の範囲内のものである。それゆえ、特許法で必要とされる程度に詳細かつ入念に本発明を記述したが、本願によって特許請求するとともに保護を求めるものは特許請求の範囲の記載されている。
従来技術に従い論理機能の電力を低減させるための多しきい値型CMOS(MTCMOS)構造の模式図である。 グローバル・スリープ・モード制御を備えたMTCMOS構造を備えた従来技術によるプロセッサ構造の模式図である。 本発明の一実施形態に従って構築したプロセッサの模式図であって、当該プロセッサは独立して制御されるいくつかの論理回路部に分割されており、その各部は個別のMTCMOS型制御装置を備えている、模式図である。 本発明に従い図3のプロセッサ用にコンパイラのコード生成の解析部の間に構築されるテーブルの模式図である。 本発明に従い図3のプロセッサ用にコンパイラのコード生成部がスイッチ制御を生成するシステム/方法のブロック図/フロー図である。 本発明に従い図4の例用に電力マップ制御命令を挿入した結果得られた命令シーケンスを示す図である。
符号の説明
11 電界効果トランジスタ(FET)
12 静的CMOS論理回路
13 電界効果トランジスタ(FET)
21 電界効果トランジスタ(FET)
22 プロセッサ
23 電界効果トランジスタ(FET)
24 スリープ・モード・ラッチ
25 セット信号
26 外部イベント
100 プロセッサ
101 整数加算器
102 整数シフタ
103 整数論理ユニット
104 整数乗算器
105 浮動小数点加算器
106 浮動小数点除算器
107 浮動小数点乗算器
121 整数ユニット
123 浮動小数点ユニット
130 メモリ・キュー/バス・インタフェース・ユニット
131 整数レジスタ
132 キャッシュ・アレイ
133 浮動小数点レジスタ
134 キャッシュ・タグ
136 命令キュー/ディスパッチ論理回路
138 命令フェッチ
140 分岐ユニット
142 ロード/ストア・ユニット
150 専用レジスタ・ユニット
152 電力マップ・レジスタ
300 入力テーブル
301 出力テーブル

Claims (20)

  1. マイクロプロセッサであって、
    少なくとも1つの論理回路と、
    前記少なくとも1つの論理回路に接続された選択装置であって、前記選択装置は被格納論理値に基づいて前記少なくとも1つの論理回路のオン/オフ状態のスイッチングを実現する、選択装置と、
    前記マイクロプロセッサの命令シーケンスに従い前記少なくとも1つの論理回路の被予測使用率に基づいて前記少なくとも1つの論理回路のオン/オフ状態を制御するように前記被格納論理値をセットするプログラム命令と
    を備えた
    マイクロプロセッサ。
  2. 前記選択装置は電圧源からオン状態にある前記少なくとも1つの論理回路の電力線への接続を実現するスイッチを備えている、
    請求項1に記載のマイクロプロセッサ。
  3. 前記選択装置は接地からオン状態にある前記少なくとも1つの論理回路の電力線への接続を実現するスイッチを備えている、
    請求項1に記載のマイクロプロセッサ。
  4. さらに、
    前記被格納論理値を格納する、前記選択装置に接続されたレジスタ
    を備えた、
    請求項1に記載のマイクロプロセッサ。
  5. 前記レジスタは数命令サイクルの後に更新される、
    請求項4に記載のマイクロプロセッサ。
  6. さらに、
    命令シーケンスと前記少なくとも1つの論理回路が必要とする付随リソースとを含む入力テーブル
    を備え、
    前記被予測使用率は前記入力テーブルに従って決められる、
    請求項1に記載のマイクロプロセッサ。
  7. 前記少なくとも1つの論理回路の前記被予測使用率は数命令サイクル後における前記少なくとも1つの論理装置の使用率を含んでいる、
    請求項1に記載のマイクロプロセッサ。
  8. さらに、
    前記少なくとも1つの論理装置の電力節減用オン/オフ状態に対応する論理状態を含む出力テーブル
    を備え、
    前記プログラム命令は前記電力節減用オン/オフ状態に従って前記少なくとも1つの論理回路を制御しうるように前記被格納論理値をセットする、
    請求項1に記載のマイクロプロセッサ。
  9. 機能グループ群に分割された複数の論理回路と、
    前記機能グループ群の各々に接続された選択装置であって、各選択装置はレジスタに格納された論理値に基づいて対応する機能グループのオン/オフ状態のスイッチングを実現する、選択装置と、
    前記機能グループ群のオン/オフ状態を制御する前記論理値を前記レジスタにセットするプログラム命令と、
    前記機能グループ群の各々の使用率を予測する命令シーケンスに基づいて前記レジスタにセットすべき前記論理値を生成するコンパイラ・プログラムと
    を備えた
    マイクロプロセッサ。
  10. 前記選択装置は各々、電圧源からオン状態にある機能グループの電力線への接続を実現するスイッチを備えている、
    請求項9に記載のマイクロプロセッサ。
  11. 前記選択装置は各々、接地からオン状態にある機能グループの電力線への接続を実現するスイッチを備えている、
    請求項9に記載のマイクロプロセッサ。
  12. 前記レジスタは各機能グループごとに1つの記憶場所を備えている、
    請求項9に記載のマイクロプロセッサ。
  13. 前記レジスタは数命令サイクルの後に更新される、
    請求項9に記載のマイクロプロセッサ。
  14. さらに、
    前記コンパイラ・プログラムが生成するとともに、命令シーケンスと前記機能グループ群の各々が必要とする付随リソースとを含む入力テーブル
    を備え、
    前記機能グループ群の前記使用率は前記入力テーブルに従って決められる、
    請求項9に記載のマイクロプロセッサ。
  15. 前記機能グループ群の前記使用率は数命令サイクル後における前記機能グループ群の使用率を含んでいる、
    請求項9に記載のマイクロプロセッサ。
  16. さらに、
    前記機能グループ群の電力節減用オン/オフ状態に対応する論理状態を含む出力テーブル
    を備えた、
    請求項9に記載のマイクロプロセッサ。
  17. マイクロプロセッサ中の論理回路への電力を管理する組み込み命令シーケンスを生成する方法であって、
    前記マイクロプロセッサ用の機能プログラムを制御する命令シーケンスを生成するステップと、
    前記命令シーケンスを解析して各命令サイクルにおいて前記論理回路のうちどれが活動状態にあるかを判断するステップと、
    前記機能プログラムの各命令サイクルごとに、各論理回路が現在の命令サイクルの後に静止状態になる命令サイクルの数とある値とを比較するステップと、
    比較する前記ステップに基づいて前記論理回路の各々をオンまたはオフにする命令シーケンスを挿入するステップと
    を備えた
    方法。
  18. 命令シーケンスを挿入する前記ステップが、
    論理値群を用いてレジスタをプログラムするステップ
    を含み、
    前記論理値群に基づいて前記論理回路の各々をオンまたはオフにする、
    請求項17に記載の方法。
  19. 比較する前記ステップの前記値は前記論理回路におけるすべての電力節減を実現しうるように決められた数を含んでいる、
    請求項17に記載の方法。
  20. 請求項17に記載の方法ステップ群を実行するマシン実行可能な命令群から成るプログラムを有形的に記録したマシン読み取り可能プログラム記録媒体。
JP2003586732A 2002-04-19 2002-04-19 マイクロプロセッサおよびその電力を管理する方法 Withdrawn JP2005523510A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2002/012086 WO2003090055A1 (en) 2002-04-19 2002-04-19 Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile

Publications (1)

Publication Number Publication Date
JP2005523510A true JP2005523510A (ja) 2005-08-04

Family

ID=29247986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003586732A Withdrawn JP2005523510A (ja) 2002-04-19 2002-04-19 マイクロプロセッサおよびその電力を管理する方法

Country Status (7)

Country Link
JP (1) JP2005523510A (ja)
KR (1) KR20040101344A (ja)
CN (1) CN1625727A (ja)
AU (1) AU2002257172A1 (ja)
CA (1) CA2481567A1 (ja)
IL (1) IL164725A0 (ja)
WO (1) WO2003090055A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012530973A (ja) * 2009-06-22 2012-12-06 アマゾン テクノロジーズ インコーポレイテッド プロセッサのための静止状態保存モード
JP2014518375A (ja) * 2011-05-30 2014-07-28 ストリング セラピューティックス インコーポレイテッド ポイント・オブ・ケア薬物動態プロフィールによる治療薬モニタリングおよび用量投与のための方法および組成物

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
FR2930355B1 (fr) 2008-04-18 2013-01-18 Commissariat Energie Atomique Procede de gestion de la consommation d'energie pour les systemes multiprocesseurs.
US8760217B2 (en) 2011-02-25 2014-06-24 Qualcomm Incorporated Semiconductor device having on-chip voltage regulator

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
JP2931776B2 (ja) * 1995-08-21 1999-08-09 三菱電機株式会社 半導体集積回路
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
US6317840B1 (en) * 1999-03-24 2001-11-13 International Business Machines Corporation Control of multiple equivalent functional units for power reduction
EP1117031B1 (en) * 2000-01-14 2007-07-11 Texas Instruments France Microprocessor with reduced power-consumption.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012530973A (ja) * 2009-06-22 2012-12-06 アマゾン テクノロジーズ インコーポレイテッド プロセッサのための静止状態保存モード
JP2014518375A (ja) * 2011-05-30 2014-07-28 ストリング セラピューティックス インコーポレイテッド ポイント・オブ・ケア薬物動態プロフィールによる治療薬モニタリングおよび用量投与のための方法および組成物

Also Published As

Publication number Publication date
IL164725A0 (en) 2005-12-18
KR20040101344A (ko) 2004-12-02
CN1625727A (zh) 2005-06-08
WO2003090055A1 (en) 2003-10-30
AU2002257172A1 (en) 2003-11-03
CA2481567A1 (en) 2003-10-30

Similar Documents

Publication Publication Date Title
US7539879B2 (en) Register file gating to reduce microprocessor power dissipation
US7500126B2 (en) Arrangement and method for controlling power modes of hardware resources
CN100561461C (zh) 用于经由资源分配和限制的异构芯片多处理器的装置和方法
US10216693B2 (en) Computer with hybrid Von-Neumann/dataflow execution architecture
US6983389B1 (en) Clock control of functional units in an integrated circuit based on monitoring unit signals to predict inactivity
US7624295B2 (en) Processor system, instruction sequence optimization device, and instruction sequence optimization program
US7007180B2 (en) System and method for switching a computer system to a first or second power saving mode based on whether or not there exists a timer-expiration-waiting event in an event queue
JP6092649B2 (ja) 演算装置、アレイ型演算装置およびその制御方法、情報処理システム
US20020112193A1 (en) Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile
JP2009521051A (ja) 給電中のメモリバンク数の低減方法
US20090070609A1 (en) Power throttling apparatus
US20130132753A1 (en) Information processing device and method
CN116420140A (zh) 可动态配置的过度供应的微处理器
Zyuban et al. Split register file architectures for inherently lower power microprocessors
JP2005523510A (ja) マイクロプロセッサおよびその電力を管理する方法
JP2005527037A (ja) 構成可能なプロセッサ
US7191313B2 (en) Microprocessor
US11281473B2 (en) Dual wakeup interrupt controllers
Du et al. Optimization of data allocation on CMP embedded system with data migration
Bhatti Ph. D. Forum Abstract: Back to the Future-Sustainable Transiently Powered Embedded Systems
Bhatti Back to the future: sustainable transiently powered embedded systems: Ph. D. forum abstract
Saghir et al. Reducing Power of Memory Hierarchy in General Purpose Graphics Processing Units
Fechner A Fault-Tolerant Dynamic Fetch Policy for SMT Processors in Multi-Bus Environments

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20061228