JPH11316690A - データプロセッサおよびコンピュータプログラム最適化方法 - Google Patents

データプロセッサおよびコンピュータプログラム最適化方法

Info

Publication number
JPH11316690A
JPH11316690A JP10365661A JP36566198A JPH11316690A JP H11316690 A JPH11316690 A JP H11316690A JP 10365661 A JP10365661 A JP 10365661A JP 36566198 A JP36566198 A JP 36566198A JP H11316690 A JPH11316690 A JP H11316690A
Authority
JP
Japan
Prior art keywords
instruction
power
processor
instructions
functional unit
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.)
Abandoned
Application number
JP10365661A
Other languages
English (en)
Inventor
H Bartley David
エイチ.バートリイ デビッド
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH11316690A publication Critical patent/JPH11316690A/ja
Abandoned legal-status Critical Current

Links

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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/3246Power saving characterised by the action undertaken by software initiated power-off
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 マイクロプロセッサにおける機能ユニットの
電力消費を低減させるコンピュータプログラムの最適化
方法を提供する。 【解決手段】 種々のインストラクションによって、独
立して制御可能な機能ユニット11d,11eを有する
プロセッサにより消費する電力を減少させるためのコン
ピュータプログラムを最適化する方法を提供する。この
プロセッサのインストラクションの組(図4)には、特
定の機能ユニット11d,11eに与えられるインスト
ラクションが包含されており、これによって、この機能
ユニットがパワーダウン状態に設定され、他方、プログ
ラムセグメント実行中に、使用されないようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概して、マイクロ
プロセッサに関し、特に、マイクロプロセッサの消費電
力を低減させるように、インストラクションをプログラ
ミングする方法に関する。
【0002】
【従来の技術】人々がエネルギー保存に、ますます関心
を示すように、プロセッサ搭載型装置の電力効率につい
て、ますます、重要な要因となってきている。熱的効果
およびオペレーションコストの低減が、特に、考慮され
ている。このエネルギー保存問題とは別に、電力効果
は、バッテリ動作型のプロセッサ搭載型装置の関心事で
あり、バッテリのサイズを最小化して、この装置を可能
な限り小型且つ、軽量化したい。“コンピュータ搭載型
装置”は、特に、汎用コンピュータ用に設計された装
置、または、コンピュータ内蔵型装置である。
【0003】プロセッサ設計の方針としては、多数の技
術が駆使されて電力消費を低減している。これら技術を
2つの手法に区別できる。まず第1の手法としては、プ
ロセッサの回路での電力消費を少なくするように設計す
る。第2の手法では、このプロセッサの電力利用を管理
できるように設計する。
【0004】従来技術では、電力管理は、主としてシス
テムレベルで行われる。種々の“パワーダウン”モード
が実行されており、これによって、システムの一部分、
例えば、ディスクドライブ、ディスプレイ、またはプロ
セッサ自身を、断続的にパワーダウンしていた。
【0005】デバイスをパワーダウンモードへ導入する
には、種々の方法によって行われており、例えば、タイ
マに応答するか、または、プロセッサからのインストラ
クションに応答して行われている。前者の場合には、タ
イマは、ディバイスが予じめ決められた期間中に不作動
となった後に、このデバイスを、自動的にパワーダウン
モードに移行する。後者の場合、即ち、インストラクシ
ョン実行式電力管理方式の場合には、種々の基準が開発
されており、プロセッサのコントロールの下で電力管理
が行われる。このような基準方式の1つとして、インテ
ル社とマイクロソフト社との共同開発されているアドバ
ンスドパワーマネージメントインターフェイススペシフ
ィケーションがある。
【0006】また、プロセッサのパワーマネージメント
の1つのアプローチとして、米国特許第5,584,0
31号(“ローパワーディレイインストラクション実行
方法/システム”)が存在している。特別なインストラ
クション(“sleep”オペコード)によって、多数
のタイミングサイクルが表わされており、このサイクル
中に、CPUの動作が遅延する。
【0007】また、別のプロセッサパワーマネージメン
トアプローチとして、米国特許第5,495,617号
に開示されている(“On Demand Power
ing of Necessary Portions
of ExecutionUnit by Deco
ding Instruction Word Fie
ld Indications Which Unit
is Required for Executio
n”)。インストラクションデコーダによって、“実
行”インストラクションから“コントロール”インスト
ラクションを区別する。インストラクションが“コント
ロール”インストラクションの場合には、これには、実
行ユニットが含まれず、スタンバイ信号を、この実行ユ
ニットに送給できる。
【0008】
【要旨】本発明の一態様によれば、電力消費を低減する
ためのコンピュータプログラムを最適化する方法であ
る。この方法は、別個の“機能ユニット”を有するプロ
セッサ用に書かれたプログラムと一緒に用いられる。こ
れら“機能ユニット”には、インストラクションが独立
して与えられる。プロセッサのインストラクションの組
を変形することによって、特別な“パワーダウン”イン
ストラクションが得られ、このインストラクションを、
他の機能ユニットから独立した1個、またはそれ以上の
機能ユニットに供給する。次に、各機能ユニットに対し
て、このコンピュータプログラムをスキャンして、この
プログラムのセグメントを配置する。このセグメントで
は機能ユニットが使用されていない。このスキャニング
ステップの結果に基いて、パワーダウンインストラクシ
ョンを、このプログラムに挿入して、この機能ユニット
の未使用中には、ほとんど電力を使用しない。この方法
は、アッセンブリ言語プログラマまたはコード最適化プ
ログラムによって、マニアル的に実行できるものであ
る。
【0009】本発明によれば、パワーマネージメント
(電力管理)が、コンピュータシステムレベルと対比し
た、“オンチップ”レベルで実現できる利点がある。こ
のパワーマネージメントのレベルを、更に精密化して、
プロセッサ中のコンポーネントに向けさせることができ
る。また、このパワーマネージメントを、プロセッサの
CPU内の機能ユニットに対しても、適用できる。
【0010】また、別の利点によれば、本発明によって
パワーダウンインストラクションが利用されると、この
プロセッサの残りの部分は、完全に動作状態となる。こ
のプログラムは、これらインストラクションがそこに存
在していないかの如く、実行される。この理由は、使用
しない機能ユニットのみが影響を受けるからである。従
って、特定のアプリケーションプログラムに挿入した場
合には、これらパワーダウンインストラクションが、機
能および実行時間の両方の観点から、プログラミングに
対して、意識されずに動作するようになる。
【0011】プロセッサ内の機能ユニットの選択的なパ
ワーマネージメントによって、特別設計されたオンチッ
プ回路の利用が実現する。一例の回路としては、特別な
機能、例えば、浮動少数点演算、フーリエ変換、および
ディジタル信号フィルタ処理機能を実行する回路が存在
する。このような回路を、チップ上に包含することがで
きると共に、使用時にのみ電力を消費する。従って、今
日の製造環境の下では、このような回路数をチップ上に
包含するのがますます安価となり、これらを包含しても
電力消費が欠点とはならない。
【0012】
【実施例】本明細書で記載されている本発明は、マイク
ロプロセッサ用のパワーマネージメント(電力管理)に
関するものである。このプロセッサのインストラクショ
ンの組は、以下のように設計されている。即ち、このイ
ンストラクションの組によって、プログラマ(または、
コンパイラー)は電力利用に対して効率的であるコード
を発生することができるように設計されている。特別な
パワーダウンインストラクションによってこのプロセッ
サの内部回路における電力消費を制御する。
【0013】また本発明の方法によれば、この方法のイ
ンストラクションの組が、以下に記載のインストラクシ
ョンのタイプを有しているか、または、従うことができ
る場合において、本発明の方法を、あらゆるタイプのプ
ロセッサに適用できる。本発明を利用可能なあらゆるプ
ロセッサの共通の特性は、1個以上の機能ユニットを有
することであり、このユニットの作用を、インストラク
ションによって独立して制御可能とするものである。換
言すれば、インストラクションを、機能ユニットに選択
的に与えることが可能となる。
【0014】また、本例には、“機能ユニット”が記載
されており、これら機能ユニットは、プロセッサの中央
制御装置(CPU)内の種々のコンポーネント、例え
ば、独立したデータパスまたは、独立したデータパス内
の回路を設けるためのものである。また、更に、以下に
記載のように、これら機能ユニットは、プロセッサ内の
コンポーネントではあるが、例えばメモリデバイスや特
殊な処理ユニットのような、これのCPUの周辺デバイ
スも設けることができる。
【0015】従って、発明の方法は、VLIW(長大イ
ンストラクションワード)プロセッサを利用すると有効
なものであり、これらVLIWプロセッサは、種々の異
なった機能ユニットを利用してインストラクションを並
列的(パラレル)に実行することが特徴である。また、
本発明は、“デュアルデータパス”プロセッサを利用す
ると有効であり、これらプロセッサによって、2つのデ
ータパスを用いてインストラクションを並列的に実行す
る。これら両方のタイプのプロセッサは、並列的(また
は、実質的に並列)に動作する、1個以上の機能ユニッ
トを有ることが特徴である。しかし乍ら、本発明は、以
下のような機能ユニットを有するプロセッサを利用する
ことでも有効である。即ち、前述したように、これら機
能ユニットは、並列的に動作しないで、その代りに、
“独立的にインストラクション動作可能”なものであ
る。実際上、本発明は、後者の場合において、最も有効
なものであり、ここでは、これら機能ユニットのシリア
ル(直列)動作によって、プログラムの実行中に、特定
の機能ユニットを用いないようにすることが可能とな
る。
【0016】以上の記載から照らして、本例における用
語“プロセッサ”には、種々のタイプのマイクロコント
ローラおよびディジタル信号プロセッサ(DSP)のみ
ならず、汎用のコンピュータプロセッサが包含される。
従って、以下の記載において、DSPの用語において
は、ディジタル信号プロセッサTMS320ファミリー
ならびに、特に、TMS320C6x DSPの変形品
が含まれる。しかし乍ら、このような特定のプロセッサ
の選択は、一例であり、また単に説明上の都合によるも
のである。
【0017】プロセッサ全般 図1は、DSPプロセッサ10のブロック図である。前
述したように、このプロセッサ10は、VLIWアーキ
テクチュアを有しており、更に、マルチインストラクシ
ョンワードを“フェッチパケット”としてフェッチす
る。このマルチインストラクションワードは、一回のC
PUクロックサイクル中に、パラレル(並列)に(“実
行パケット”として)実行すべきものである。本例にお
いては、このプロセッサ10は、5ナノ秒のCPUサイ
クル時間で作動すると共に、各サイクル毎に、8個のイ
ンストラクションまで実行する。
【0018】このプロセッサ10は、CPUコア11を
有しており、このコアには、プログラムフェッチユニッ
ト11aおよび、インストラクションディスパッチ/デ
コードユニット11bと11cとが包含されている。こ
のデコードされたインストラクションを実行するために
は、プロセッサ10は2つのデータパス11dおよび1
1eを有している。
【0019】このインストラクションデコードユニット
11cによって、8個までのインストラクションを有す
る実行パケットを、各クロックサイクル毎に、データパ
スユニット11dと11eに送給する。これらデータパ
ス11dおよび11eの各々には、16個の汎用レジス
タが設けられている。また、これらデータパス11dと
11eの各々には、4個の機能ユニット(L,S,Mお
よびD)が設けられており、これら機能ユニットを、1
6個の汎用レジスタのそれぞれに接続する。従って、こ
のプロセッサ10は、8個の機能ユニットを有してお
り、これらユニットの各々によって、実行パケット中の
インストラクションの1つを実行できる。また、各機能
ユニットは、実行可能な、一組のインストラクションタ
イプを有している。
【0020】コントロールレジスタ11fによって、種
々のプロセッサ動作を構築したり、制御するために手段
が得られる。コントロールロジックユニット11gは、
コントロール(制御)、テスト、エミュレーションおよ
びインタラプト(割込)機能を有している。また、この
プロセッサ10には、プログラムメモリ12と、データ
メモリ13と、タイマー14とが設けられている。ま
た、このプロセッサ周辺回路には、ダイレクトメモリア
クセス(DMA)コントローラ15、外部メモリインタ
ーフェイス16、ホストポート17、およびパワーダウ
ンロジック(論理部)18が設けられている。このパワ
ーダウンロジック18によって、CPUの活動を停止さ
せて電力消費を減少することが可能となる。ここでは、
1種以上のパワーダウンモードが存在しており、このモ
ードによってどのようなクロックが、CPUにおいて、
いまだアクティブであるかによって変更する。これらパ
ワーダウンモードならびに、本発明の特徴以外の、プロ
セッサ10の特徴については、米国特許出願番号第60
/046,811の“モジュール構築可能な、フルチッ
プパワープロファイラー”(エルハルド)、テキサスイ
ンストルメント社に譲渡されており、本明細書中に参考
として記載されている。
【0021】また、このプロセッサ10は、RISC形
態のコードを実行し、また、アッセンブリ言語インスト
ラクションの組を有している。即ち、VLIWの各々に
は、RISCタイプのインストラクションが設定されて
いる。これらインストラクションで書かれたプログラム
を、アッセンブラによって機械語に変換するか、また
は、高レベルプログラムをコンパイラーによって機械語
に変換する。また、このプロセッサ10は、マイクロコ
ードや、インターナルマイクロコードインタープリータ
を、他のプロセッサの様に、利用することはない。しか
し乍ら、本例記載の本発明を、RISC形態のインスト
ラクションによってこのプロセッサを制御しているかど
うかに拘らず、また、これらインストラクションが内部
的に、ローレベルに解読されているかどうかに拘らず、
適用することが可能である。
【0022】本例において、8個の32ビットインスト
ラクションを組合わせてVLIWフェッチパケットを形
成する。従って、動作において、これら32ビットイン
ストラクションを、一度に、8個、プログラムメモリ1
2からフェッチして、256ビットのインストラクショ
ン語を形成する。
【0023】図2は、プロセッサ10によって使用され
るフェッチパケット20の基本フォーマットを表わす。
このフェッチパケット20における8個のインストラク
ションの各々は、“スロット”21として参照される位
置に配置されている。従って、このフェッチパケット2
0は、スロット1,2,・・・,8を有している。
【0024】このプロセッサ10は、フェッチパケット
全体を、1回のCPUサイクル内で、実行する必要性が
ない点において、他のVLIWプロセッサとは異なって
いる。あるフェッチパケットの一部分または、全体を
“実行パケット”として実行する。換言すれば、あるフ
ェッチパケットを、完全にパラレル、完全にシリアル、
または部分的にシリアルにすることができる。完全に、
または一部分だけシリアルなフェッチパケットの場合
(ここでは、フェッチパケットのインストラクション
は、実行するのに1サイクル以上要求しており)、次の
フェッチを延期できる。フェッチパケットと、実行パケ
ットとの間の区別によって、各々のフェッチパケットが
8個のインストラクションを包含できるようになり、こ
れは、実行すべきこれらインストラクションの全部をパ
ラレルに実行するかどうかに拘らず包含できるようにな
る。
【0025】プロセッサ10に対して、フェッチパケッ
ト20の実行のグルーピングが、各インストラクション
中の“Pビット”22によって特定化される。動作にお
いて、インストラクションディスパッチユニット11b
によって、この“Pビット”をスキャンすると共に、各
インストラクションの“Pビット”の状態によって、次
のインストラクションを、このインストラクションと共
に、パラレルで実行するかどうかを決定する。若し実行
する場には、同じサイクル中において、実行すべき同一
実行パケット中の2つのインストラクションを配置す
る。
【0026】図3は、フェッチパケット20の一例を表
わす。図2がフェッチパケット20用のフォーマットを
表わすのに対して、図3は、フェッチパケット20が包
含されている可能性のあるインストラクションの一例を
表わす。これら8個のインストラクションの各インスト
ラクションは、多数のフィールドを有しており、これら
は、最終的に、ビットレベルのマシーンコードで表わさ
れる。NOP(非動作)インストラクションは、プレー
スホルダーであると共に、これと組合わされた不実行を
有している。
【0027】文字“11”は、インストラクションを、
これ以前のインストラクションとパラレルに実行するも
のであると共に、Pビット22としてコード化されるこ
とを意味する。図示されているように、フェッチパケッ
ト20は完全にパラレルであると共に、単一実行パケッ
トとして実行することができる。
【0028】四角カッコ〔 〕は、条件レジスタの識別
子を包囲している条件インストラクションを表わす。従
って、図3における第1インストラクションは、非ゼロ
として、レジスタA2上に条件処理される。また、文字
A!は、“not(否定)”を表わすので、この結果、
ゼロであるレジスタA2上の条件を、〔!A2〕と表わ
す。条件レジスタフィールドには、これら識別子が含ま
れている。
【0029】オペフィールド(オペランドフィールド)
には、プロセッサ10のインストラクションの組からの
インストラクションタイプが含まれている。以下のイン
ストラクションタイプは、このインストラクションを実
行する機能ユニットの名称である。図1に関連して前述
したように、2つのデータパス11dおよび11eの各
々は、4つの機能ユニットを有している。これら機能ユ
ニットは、L(ロジック)、S(シフト)、M(掛
算)、およびD(データ)である。従って、このオペフ
ィールドは、シンタックス(構文)〔インストラクショ
ンタイプ〕・〔機能ユニット識別子〕を有している。
【0030】これら何個かのインストラクションタイプ
を、僅か1つの機能ユニットによって実行することがで
きると共に、或るインストラクションタイプは、多数の
機能ユニットの内の1つによって、実行することもでき
る。例えば、Mユニットによってのみ、掛算(MPY)
が実行できる。他方、加算(ADD)は、L、S、また
はDユニットによって実行できる。これらインストラク
ションへのこれら機能ユニットの通信を、本明細書で
は、“マッピング”と称するものとする。
【0031】図4Aは、プロセッサ10用の機能ユニッ
トに対するインストラクションタイプのマッピングを表
わすテーブルである。また図4Bは、図4Aのニーモニ
ックを記載したテーブルである。
【0032】インストラクションに対する機能ユニット
のマッピングによって、どのインストラクションをパラ
レルに実行できるかを決定するので、この結果として、
フェッチパケットが、1個以上の実行パケットになれる
かどうかを決定する。例えば、Mユニットのみが掛算
(MPY)を実行できる場合には、実行パケットは、2
個のMPYインストラクションを保有することが可能と
なり、これら1つが、2つのデータパス11dと11e
の各々によって実行される。これに対して、L、S、お
よびDユニット全部は、加算(ADD)を実行できるの
で、従って、実行パケットは、6個ものADDインスト
ラクションを包含している。
【0033】再び図3に戻り、インストラクションのオ
ペランドフィールドは、オペフィールドに従続してい
る。このインストラクションタイプに依存して、このオ
ペランドフィールドによって、1個またはそれ以上のソ
ースレジスタ、1個またはそれ以上の定数、および1つ
のデスティネーションレジスタを識別することができ
る。
【0034】上述したプロセッサアーキテクチュアを一
般化するために、実行可能なインストラクションワー
ド、即ち、実行パケットには、CPUサイクル中に、パ
ラレルに実行すべき8個までのインストラクションが含
まれている。実行パケット中の各インストラクションに
よって、データパス11dおよび11eの機能ユニット
(L,D,S,またはM)の異なった1つのユニットを
利用する。インストラクションマッピングによって、イ
ンストラクションを与えられる機能ユニットを決定す
る。このような手法によって、機能ユニットを、独立し
て指示する能力によって、それ自身が、電力の最適化の
ための独得な技術に適合している。後述するように、パ
ワーダウンインストラクション(電力低下インストラク
ション)を利用できるので、これら機能ユニットの電力
消費を、独立的にコントロールできる。
【0035】機能ユニットの選択的パワーコントロール 再度、図4に戻って、プロセッサ10のインストラクシ
ョンの組は、多数のインストラクションタイプのものか
ら構成されており、これらインストラクションタイプの
各々を、1つまたはそれ以上の機能ユニットによって実
行できる。これら機能ユニットが、データパス11dお
よび11eのL,D,MおよびSユニットとして、図1
に図示されている。
【0036】SLEEPインストラクションタイプは、
“パワーダウン”インストラクション用のものである。
このインストラクションは、いずれの機能ユニットM,
S,DおよびLと一緒に利用できる。このSLEEP以
外のインストラクションタイプは、本例においては、
“アクティブ”インストラクションと称する。
【0037】プログラムの実行中、機能ユニットがアク
ティブインストラクションを実行中でない間では、SL
EEPインストラクションが与えられる。図2に関連し
て、前述したインストラクションフォーマットを用い
て、このインストラクションは、以下のオペフィールド
を有している:
【0038】SLEEP.〔機能ユニットの識別子〕特
定の機能ユニットのみが、このインストラクションに影
響され、他の残りの機能ユニットの各々は、それ自身の
パワー変更インストラクションによって指示されない限
り、準備状態のままである。上述の例においては、各オ
ペフィールドによって、単一の機能ユニットをコントロ
ールする。しかし乍ら、例えば、SLEEP x,x,
x,・・・のような1個以上の機能ユニットをコントロ
ールするインストラクションタイプを提供することもで
きる。ここで、記号x′sは、どの機能ユニットが影響
されるようになるかを表わす。本例においては、x′s
を、M,L,S,またはDとすることができる。従っ
て、機能ユニットLおよびM用のパワーダウンインスト
ラクションをSLEEPMLとする。
【0039】前述したように、機能ユニットの実行可能
性の低下が、条件付きで行われている。パワーダウンイ
ンストラクションが、プログラムコード内の、所定ポイ
ントに設定され、ここでは、機能ユニットが不使用期間
に突入する。
【0040】機能ユニットの実行可能性状態への復旧
を、条件付き、または無条件で行うことができる。条件
付き復旧の場合、“パワーアップ”インストラクション
を、例えば“WAKE”のような新しいインストラクシ
ョンタイプ、またはパワーダウンインストラクションの
トグルとすることができる。このトグルでは、第1回目
に現れた同一インストラクションによって、実行可能性
が低下すると共に、第2回目に現われた同一インストラ
クションによって、実行可能性が復旧する。無条件復旧
の場合には、すでにパワーダウンインストラクションの
受取った機能ユニットへの“実行可能な”インストラク
ション(即ち、SLEEP以外のインストラクション)
によって、この実行可能性の復旧が、自動的に行われ
る。
【0041】1つのインストラクションによってそれ自
身の実行可能性が低下した1組の機能ユニットを、異な
った時間で別個に復旧することができる。例えば、2つ
の機能ユニットMおよびDに、プログラム中の異なった
ポイントにおいて、SLEEPインストラクションが与
えられる。しかし、これらユニットの実行可能性を、異
なった時間に別個のインストラクションによって復旧で
きる。
【0042】図5は、プログラムコードのセグメントを
表わし、ここでは、機能ユニットLは、多数の実行サイ
クル中において、アクティブインストラクション用に利
用されない。これら実行サイクルは、実行パケットEP
1,・・・,EPNによって表わされている。この機能
ユニットSLEEP.Lに与えられるパワーダウンイン
ストラクションを、実行パケットEP1に挿入する。機
能ユニットLの実行可能状態への復旧は、このユニット
に与えられる次のアクティブインストラクションADD
によって無条件となる。
【0043】他の機能ユニットの選択的パワーコントロ
ール 前述したように、プロセッサ10のアーキテクチュアに
よって、データパス11dと11e内において、機能ユ
ニットに与えられるパワーダウンインストラクションに
対して、それ自身を適合させる。他の実施例では、これ
らパワーダウンインストラクションを、機能ユニットの
内部機能ユニットより、むしろ全体の機能ユニットとし
てデータパス11dおよび11eに与えることができ
る。
【0044】また、これと同じ概念を、プロセッサ10
内の他の機能ユニットのパワーコントロールに適用でき
る。例えば、CPU11内において、コントロールレジ
スタ11fの組を、不使用時に、パワー変更用に選択す
ることができる。パワー変更用に好適な他のコンポーネ
ントとしては、例えば、浮動点ユニットおよびFFTユ
ニット(図示せず)のような特別な実行ユニットが存在
する。また、メモリ12の一部分、またはメモリ13を
同様に、パワーダウンすることが可能である。一般に、
本発明は、プロセッサ10内のあらゆる“機能ユニッ
ト”の選択的パワー変更に適用されるもので、ここで
は、この機能ユニットによって、直接インストラクショ
ンを実行できるか、または、他の周辺機能を提供でき、
更に、このユニットが、CPU11の内部または外部で
あるかに拘らず実行できる。
【0045】図6は、CPU11以内のデータパス11
dおよび11eに対するパワーダウンインストラクショ
ン用のインストラクションマッピングおよび、このプロ
セッサ10内で、CPU11の外側における周辺コンポ
ーネントへのインストラクションのマッピングの一例で
ある。例えばこの周辺ユニットとしては、外部メモリイ
ンターフェイス16が与えられる。SLEEPインスト
ラクションタイプを、これら機能ユニットのいずれか1
つのユニットに与えることができる。
【0046】また、図6に示したように、1個、または
それ以上の追加のインストラクションタイプを追加する
ことによって、機能ユニットを、パワーダウンレベルの
中間レベルに設定することもできる。このような“少な
い実行可能”状態において、機能ユニットは、少ない電
力または、全く電力を消費するものでなくなる。“多い
実行可能”状態において、機能ユニットは、多くの電力
を消費するが、更に迅速に利用準備可能となる。例え
ば、SLEEPインストラクションタイプに加えて、プ
ロセッサ10のインストラクションの組は、RESET
インストラクションタイプを有している。中間のパワー
ダウンインストラクションの実行例としては、或る機能
ユニット専用のメモリ以外のすべての回路をオフするイ
ンストラクションである。
【0047】特に、中間パワーダウンレベルは、復旧用
電力における遅れを回避するために有効なものである。
換言すれば、フルパワーダウンインストラクションの後
では、パワーアップインストラクションまたは、パワー
ダウン以外のインストラクションによって、遅れがもた
らされる。この遅れは、中間パワーダウンインストラク
ションが使用されてしまった場合に、発生しないもので
ある。
【0048】電力最適化コンパイラ 図7は、本発明による最適化プロセスの基本ステップを
表わす。図示したように、各機能ユニットに対して、プ
ログラムコードをスキャンして、この機能ユニットを使
用していないセグメントを識別する。“不作動セグメン
ト”の識別は、効率の見地から行われる。種々のパワー
モデル技術を利用して、時間の長さを決定できる。この
時間の間、コンポーネントをオフし(または、部分的に
オフする)、次に、再度オンにすることが有効である。
この結果として得られる“パワーダウンスレッシュホー
ルド”は、異なった機能ユニットに対して異なるもので
あると共に、異なったパワーダウンレベルに対しても異
なるものである。
【0049】不作動のセグメントを識別した後で、適切
なパワーダウンインストラクションを、例えば、セグメ
ントの長さのようなファクタに基いて選択する。例え
ば、長いセグメントに対しては、フルパワーダウンイン
ストラクションが要求され、短かいセグメントに対して
は中間のパワーダウンインストラクションが要求され
る。このパワーダウンインストラクションを、このセグ
メントの開始時に挿入する。プロセッサのアーキテクチ
ュアに依頼して、パワーアップインストラクションを利
用できるか、または利用できない。このプロセスを各機
能ユニットに対して繰返えす。
【0050】図7の方法を実行するための1つのアプロ
ーチとしては、プログラマーが、プログラミング中に、
コードをマニュアル的にスキャンすると共に、パワーダ
ウンインストラクションをマニュアル的に挿入する方法
がある。この代りに、この方法を、コンパイラまたはア
ッセンブラによって、自動的に、実行することもでき
る。コンパイラは、高度なレベルの言語で動作する全体
の機能を有しており、これによって、プロセッサ10用
の電力効率用のマシーンコードを生成する。アッセンブ
ラは、アッセンブリコード上で作動する。
【0051】コンパイラまたはアッセンブラの場合にお
いて、各機能ユニットに対して、最適化プロセスによっ
て、機能ユニットが使用されていないプログラムセグメ
ントを見つけ出せる。これらセグメントは、予じめ決め
られたスレッシュホールドより、長い期間である。これ
らセグメントが見つかると、コンパイラによって、機能
ユニットが、最初に、不使用になった時のコードにおけ
るポイントでパワー変更インストラクションが挿入され
る。
【0052】機能ユニットが使用されていないプログラ
ムセグメントの配置は、静的、または動的なプログラム
分析によって行われる。静的分析では、コンパイラによ
って、開始ポイントと停止ポイントとの間の実行サイク
ルの数を予測し、これには、ループサイクルの予測およ
び他の統計的な予測が含まれている。動的分析は、コー
ドが実行可能な形態となった後に、実行され、コンパイ
ラによってこのコードを走らせると共に、実際に時間を
測定する。
【0053】何れの場合においても、このコンパイラに
よって、機能ユニットのプログラムセグメントを、不使
用に設定する。次に、このコンパイラによってパワー変
更インストラクションをこのコード中に挿入する。異な
ったレベルの電力変更が存在する場合には、コンパイラ
によって、不使用の期間と、種々のパワー変更インスト
ラクションのスレッシュホールドとを比較すると共に、
適当なインストラクションを挿入する。
【0054】他の実施例 本発明を詳述したように、本発明の技術的思想を逸脱す
ることなく(添付の請求項によって規定されている範囲
内において)、種々の変形、変更を加え得るものであ
る。
【0055】以上の説明に関して、更に以下の項を開示
する。
【0056】(1) 電力消費を低減するに当り、個別
の機能ユニットを有するプロセッサに対して書かれたコ
ンピュータプログラムを最適化する方法において、少な
くとも1個の機能ユニットが使用されていない、前記コ
ンピュータプログラムの少なくとも1つのセグメントを
識別するステップと;上記識別ステップの識別結果に基
いて、前記セグメントの開始時において、パワーダウン
インストラクションを挿入するステップとを具備し;前
記パワーダウンインストラクションは、前記機能ユニッ
トの他のユニットから独立した1個またはそれ以上の機
能ユニットに与えられるインストラクションタイプと組
合わされると共に、このパワーダウンインストラクショ
ンを作用させて、前記少なくても1個の機能ユニット
が、前記セグメントの実行中に、少ないパワーを使用で
きるようにしたコンピュータプログラム最適化方法。
【0057】(2) 前記機能ユニットは、前記プロセ
ッサの中央演算装置内の独立したデータパスである第1
項記載の方法。
【0058】(3) 前記機能ユニットは、前記独立し
たデータパス内の回路である第2項記載の方法。
【0059】(4) 前記機能ユニットは、前記プロセ
ッサの中央演算装置の外側に存在する第1項の方法。
【0060】(5) 前記識別ステップは、静的に、プ
ロセッササイクルを予測することによって実行する第1
項記載の方法。
【0061】(6) 前記識別ステップは、動的に、プ
ロセッササイクルを計測することによって実行する第1
項記載の方法。
【0062】(7) 更に、前記プログラムにパワーア
ップインストラクションを挿入するステップを設け、前
記少なくとも1個の機能ステップを復旧させて実行可能
状態にする第1項記載の方法。
【0063】(8) 前記パワーダウンインストラクシ
ョンによって、前記少なくとも1個の機能ユニットの全
体に対する電力を減少させる第1項記載の方法。
【0064】(9) 前記パワーダウンインストラクシ
ョンによって、前記少なくとも1個の機能ユニットの一
部分のみに対する電力を減少させて、この機能ユニット
が、実行可能な状態の中間状態に設定される第1項記載
の方法。
【0065】(10)前記識別ステップは、前記セグメ
ントの持続期間と、予じめ決められたスレッシュホール
ドとを比較することによって実行する第1項記載の方
法。
【0066】(11)前記パワーダウンインストラクシ
ョンを、単一の機能ユニットに与える第1項記載の方
法。
【0067】(12)前記パワーダウンインストラクシ
ョンを、多数の機能ユニットに与える第1項記載の方
法。
【0068】(13)電力消費を低減するに当り、個別
の機能ユニットを有するプロセッサに対して書かれたコ
ンピュータプログラムを最適化する方法において、ここ
で、これら機能ユニットは、このプロセッサのCPU内
に設けられており、少なくとも1個の機能ユニットが使
用されていない、前記コンピュータプログラムの少なく
とも1つのセグメントを識別するステップと;上記識別
ステップの識別結果に基いて、前記セグメントの開始時
において、パワーダウンインストラクションを挿入する
ステップとを具備し;前記パワーダウンインストラクシ
ョンは、前記機能ユニットの他のユニットから独立した
1個またはそれ以上の機能ユニットに与えられるインス
トラクションタイプと組合わされると共に、このパワー
ダウンインストラクションを作用させて、前記少なくて
も1個の機能ユニットが、前記セグメントの実行中に、
少ないパワーを使用できるようにしたコンピュータプロ
グラム最適化方法。
【0069】(14)前記機能ユニットは、前記プロセ
ッサの中央演算装置内の独立したデータパスである第1
3項記載の方法。
【0070】(15)前記機能ユニットは、前記独立し
たデータパス内の回路である第14項記載の方法。
【0071】(16)前記識別ステップは、前記機能ユ
ニットを直接識別する構文を有するインストラクション
用の前記コードをスキャニングすることによって実行す
る第13項記載の方法。
【0072】(17)プロセッサのインストラクション
を実行中に電力消費を最小化するデータプロセッサにお
いて、これらインストラクションを、フェッチ、デコー
ドおよびディスパッチ処理可能なインストラクション処
理ユニットと;これらインストラクションを実行可能な
中央演算ユニットとを具備し、前記プロセッサは、複数
の機能ユニットおよびこれら機能ユニットとは別個に、
前記インストラクションを与えられる少なくとも1個の
機能ユニットとを有し;ならびに前記少なくとも1個の
機能ユニットは、パワーダウンインストラクションに応
答して、実行可能状態のままで、パワーダウン状態に突
入するデータプロセッサ。
【0073】(18)前記機能ユニットは、更に、前記
パワーダウンインストラクション以外のインストラクシ
ョンに応答して、この機能ユニットを、前記実行可能状
態に復旧する第17項記載のプロセッサ。
【0074】(19)前記機能ユニットは、更に、パワ
ーアップインストラクションに応答して、この機能ユニ
ットを、前記実行可能状態に復旧する第17項記載のプ
ロセッサ。
【0075】(20)前記機能ユニットは、更に、第2
のパワーダウンインストラクションを応答して、この機
能ユニットが、電力消費の低減された中間状態に設定さ
れ、この中間状態では、前記パワーダウン状態より多く
の電力を消費するが、前記実行可能な状態より少ない電
力を消費する第17項記載のプロセッサ。
【0076】(21)種々のインストラクションによっ
て、独立して制御可能な機能ユニット11d,11eを
有するプロセッサにより消費する電力を減少させるため
のコンピュータプログラムを最適化する方法を提供す
る。このプロセッサのインストラクションの組(図4)
には、特定の機能ユニット11d,11eに与えられる
インストラクションが包含されており、これによって、
この機能ユニットがパワーダウン状態に設定され、他
方、プログラムセグメント実行中に、使用されないよう
にする。
【図面の簡単な説明】
【図1】本発明によるプロセッサを示し、独立してイン
ストラクションが与えられる機能ユニットを有してい
る。
【図2】図1のプロセッサによって利用されるフェッチ
パケットのフォーマットを示す図。
【図3】フェッチパケットの一例を示す図。
【図4】図4Aは、図1のプロセッサのインストラクシ
ョンの組の一実施例を示す図。図4Bは、図4Aのニー
モニックを記載したテーブルを示す図。
【図5】本発明によるパワーダウンインストラクション
を有するプログラムコードセグメントの一例を示す図。
【図6】図1のプロセッサのインストラクションの組の
他の実施例を示す図。
【図7】本発明による電力消費低減用のコンピュータプ
ログラムを最適化する方法を表わす図。
【符号の説明】 10 プロセッサ 11 CPUコア 12 プログラムメモリ 13 データメモリ 15 DMAコントローラ 16 外部メモリインターフェイス 17 ホストポート 18 パワーダウンロジック 20 フェッチパケット

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 電力消費を低減するに当り、個別の機能
    ユニットを有するプロセッサに対して書かれたコンピュ
    ータプログラムを最適化する方法において、 少なくとも1個の機能ユニットが使用されていない、前
    記コンピュータプログラムの少なくとも1つのセグメン
    トを識別するステップと;上記識別ステップの識別結果
    に基いて、前記セグメントの開始時において、パワーダ
    ウンインストラクションを挿入するステップとを具備
    し;前記パワーダウンインストラクションは、前記機能
    ユニットの他のユニットから独立した1個またはそれ以
    上の機能ユニットに与えられるインストラクションタイ
    プと組合わされると共に、このパワーダウンインストラ
    クションを作用させて、前記少なくても1個の機能ユニ
    ットが、前記セグメントの実行中に、少ないパワーを使
    用できるようにしたコンピュータプログラム最適化方
    法。
  2. 【請求項2】 プロセッサのインストラクションを実行
    中に電力消費を最小化するデータプロセッサにおいて、 これらインストラクションを、フェッチ、デコードおよ
    びディスパッチ処理可能なインストラクション処理ユニ
    ットと;これらインストラクションを実行可能な中央演
    算ユニットとを具備し、 前記プロセッサは、複数の機能ユニットおよびこれら機
    能ユニットとは別個に、前記インストラクションを与え
    られる少なくとも1個の機能ユニットとを有し;ならび
    に前記少なくとも1個の機能ユニットは、パワーダウン
    インストラクションに応答して、実行可能状態のまま
    で、パワーダウン状態に突入するデータプロセッサ。
JP10365661A 1997-12-23 1998-12-22 データプロセッサおよびコンピュータプログラム最適化方法 Abandoned JPH11316690A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6864697P 1997-12-23 1997-12-23
US068646 1997-12-23

Publications (1)

Publication Number Publication Date
JPH11316690A true JPH11316690A (ja) 1999-11-16

Family

ID=22083853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10365661A Abandoned JPH11316690A (ja) 1997-12-23 1998-12-22 データプロセッサおよびコンピュータプログラム最適化方法

Country Status (2)

Country Link
US (2) US6219796B1 (ja)
JP (1) JPH11316690A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172059A (ja) * 2004-12-15 2006-06-29 Seiko Epson Corp 情報処理装置および情報処理方法
JP2010231306A (ja) * 2009-03-26 2010-10-14 Nec Corp コンピュータシステム、ハードウェアリソース制御方法及びそのプログラム
JP2010257445A (ja) * 2009-04-14 2010-11-11 Technology Currents Llc ハードウェアカスタマイゼーション及びエネルギー最適化のためのプログラム及びデータアノテーション
JP2011164758A (ja) * 2010-02-05 2011-08-25 Fujitsu Ltd Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法
US9870042B2 (en) 2013-05-14 2018-01-16 Samsung Electronics Co., Ltd. Apparatus and method managing power based on data

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69424370T2 (de) * 1993-11-05 2001-02-15 Intergraph Corp., Huntsville Befehlscachespeicher mit Kreuzschienenschalter
DE19713069A1 (de) * 1997-03-27 1998-10-01 Thomson Brandt Gmbh Vorrichtung zur Abarbeitung einer Steuerungsbefehlssequenz sowie ein Verfahren zur Erzeugung einer Steuerungsbefehlssequenz und ein Speichermedium zur Abspeicherung einer Steuerungsbefehlssequenz
US6219796B1 (en) 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
JP2000020187A (ja) * 1998-07-07 2000-01-21 Fujitsu Ltd 情報処理装置及び電力制御方法並びに記録媒体
US6535984B1 (en) * 1998-11-25 2003-03-18 Texas Instruments Incorporated Power reduction for multiple-instruction-word processors with proxy NOP instructions
US6345362B1 (en) * 1999-04-06 2002-02-05 International Business Machines Corporation Managing Vt for reduced power using a status table
US6477654B1 (en) * 1999-04-06 2002-11-05 International Business Machines Corporation Managing VT for reduced power using power setting commands in the instruction stream
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
US6848058B1 (en) * 1999-06-04 2005-01-25 Ati International Srl Power reduction circuit and method with multi clock branch control
US6657979B1 (en) * 1999-08-23 2003-12-02 Motorola, Inc. Reduced power consumption multiplexer using self-decoding power down logic
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6625740B1 (en) * 2000-01-13 2003-09-23 Cirrus Logic, Inc. Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
ATE366958T1 (de) * 2000-01-14 2007-08-15 Texas Instruments France Mikroprozessor mit ermässigtem stromverbrauch
US6721892B1 (en) 2000-05-09 2004-04-13 Palmone, Inc. Dynamic performance adjustment of computation means
US6968469B1 (en) * 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
EP1176496A1 (en) * 2000-07-24 2002-01-30 Hewlett-Packard Company, A Delaware Corporation Voltage regulation in an integrated circuit
US6971035B2 (en) * 2000-08-29 2005-11-29 Sony Corporation Method and system for reducing power consumption of a multi-function electronic apparatus that is adapted to receive power from a host system
US6625737B1 (en) * 2000-09-20 2003-09-23 Mips Technologies Inc. System for prediction and control of power consumption in digital system
US7620832B2 (en) * 2000-09-20 2009-11-17 Mips Technologies, Inc. Method and apparatus for masking a microprocessor execution signature
US6845432B2 (en) * 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
US20020108009A1 (en) * 2000-12-29 2002-08-08 Michele Borgatti Electronic system having modular expansion function facilities
US20020112193A1 (en) * 2001-02-09 2002-08-15 International Business Machines Corporation Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile
GB2389689B (en) * 2001-02-14 2005-06-08 Clearspeed Technology Ltd Clock distribution system
US7107471B2 (en) * 2001-03-21 2006-09-12 Apple Computer, Inc. Method and apparatus for saving power in pipelined processors
US20030093702A1 (en) * 2001-03-30 2003-05-15 Zheng Luo System on a chip with multiple power planes and associate power management methods
US6901276B1 (en) 2001-05-01 2005-05-31 Palmone, Inc. Direct digital signal processor control of multi-channel scan for re-establishing connections in a wirelessly networked device
US7424576B2 (en) * 2001-05-02 2008-09-09 Intel Corporation Parallel cachelets
FR2824650A1 (fr) * 2001-05-10 2002-11-15 Koninkl Philips Electronics Nv Systeme de traitement de donnees et procede de distribution d'acces a des memoires
US20030014742A1 (en) * 2001-07-09 2003-01-16 Sasken Communication Technologies Limited Technique for compiling computer code to reduce energy consumption while executing the code
US7203817B2 (en) * 2001-09-24 2007-04-10 Broadcom Corporation Power consumption reduction in a pipeline by stalling instruction issue on a load miss
US6976152B2 (en) * 2001-09-24 2005-12-13 Broadcom Corporation Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard
US7269714B2 (en) 2001-09-24 2007-09-11 Broadcom Corporation Inhibiting of a co-issuing instruction in a processor having different pipeline lengths
US6898718B2 (en) * 2001-09-28 2005-05-24 Intel Corporation Method and apparatus to monitor performance of a process
FI20011947A (fi) * 2001-10-05 2003-04-06 Nokia Corp Menetelmä suorittimen toiminnan ohjaamiseksi ja suoritin
US6608528B2 (en) 2001-10-22 2003-08-19 Intel Corporation Adaptive variable frequency clock system for high performance low power microprocessors
CN100541421C (zh) * 2001-11-26 2009-09-16 Nxp股份有限公司 由专用指令配置的处理器和用于这种处理器的分配方法
JP2003186567A (ja) * 2001-12-19 2003-07-04 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US7281140B2 (en) * 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
US6931559B2 (en) * 2001-12-28 2005-08-16 Intel Corporation Multiple mode power throttle mechanism
US6983389B1 (en) * 2002-02-01 2006-01-03 Advanced Micro Devices, Inc. Clock control of functional units in an integrated circuit based on monitoring unit signals to predict inactivity
US6976182B1 (en) * 2002-02-01 2005-12-13 Advanced Micro Devices, Inc. Apparatus and method for decreasing power consumption in an integrated circuit
KR20040101344A (ko) * 2002-04-19 2004-12-02 인터내셔널 비지네스 머신즈 코포레이션 마이크로프로세서, 인스트럭션 시퀀스 발생 방법 및 이를구현한 프로그램 디바이스
JP2005527037A (ja) * 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 構成可能なプロセッサ
US6954865B2 (en) * 2002-06-18 2005-10-11 Sun Microsystems, Inc. Reduced verification complexity and power saving features in a pipelined integrated circuit
US6795781B2 (en) * 2002-06-27 2004-09-21 Intel Corporation Method and apparatus for compiler assisted power management
US7278136B2 (en) * 2002-07-09 2007-10-02 University Of Massachusetts Reducing processor energy consumption using compile-time information
US7493607B2 (en) * 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US6934865B2 (en) 2002-07-09 2005-08-23 University Of Massachusetts Controlling a processor resource based on a compile-time prediction of number of instructions-per-cycle that will be executed across plural cycles by the processor
US6762629B2 (en) 2002-07-26 2004-07-13 Intel Corporation VCC adaptive dynamically variable frequency clock system for high performance low power microprocessors
US7100056B2 (en) * 2002-08-12 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for managing processor voltage in a multi-processor computer system for optimized performance
US6983386B2 (en) * 2002-08-12 2006-01-03 Hewlett-Packard Development Company, L.P. Voltage management of blades in a bladed architecture system based on thermal and power budget allocation
US6908227B2 (en) * 2002-08-23 2005-06-21 Intel Corporation Apparatus for thermal management of multiple core microprocessors
US7457970B2 (en) * 2002-10-11 2008-11-25 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
EP1573490A2 (en) * 2002-12-04 2005-09-14 Koninklijke Philips Electronics N.V. Software-based control of microprocessor power dissipation
JP4412905B2 (ja) * 2003-01-28 2010-02-10 パナソニック株式会社 低電力動作制御装置、およびプログラム最適化装置
EP3321769A1 (en) * 2003-05-07 2018-05-16 Conversant Intellectual Property Management Inc. Managing power on integrated circuits using power islands
DE10323861A1 (de) * 2003-05-26 2004-12-30 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betreiben der integrierten Schaltung, insbesondere zum Versetzen derselben in einen Stromsparmodus
CN1795428B (zh) * 2003-05-27 2010-09-01 Nxp股份有限公司 监测和控制功耗
US7197655B2 (en) * 2003-06-26 2007-03-27 International Business Machines Corporation Lowered PU power usage method and apparatus
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
EP1545052B1 (en) * 2003-12-15 2008-01-30 Alcatel Lucent Method for waking up a plurality of sleeping devices, a related network element and a related waking device
US7167992B2 (en) * 2003-12-18 2007-01-23 Lenovo Singapore Pte, Ltd. Method for controlling the switching of operating modes of an information processor according to the time of switching of the operating modes
US7287173B2 (en) * 2003-12-19 2007-10-23 Intel Corporation Method for computing power consumption levels of instruction and recompiling the program to reduce the excess power consumption
US7246219B2 (en) * 2003-12-23 2007-07-17 Intel Corporation Methods and apparatus to control functional blocks within a processor
US7428645B2 (en) * 2003-12-29 2008-09-23 Marvell International, Ltd. Methods and apparatus to selectively power functional units
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US7343508B2 (en) 2004-03-05 2008-03-11 Ati Technologies Inc. Dynamic clock control circuit for graphics engine clock and memory clock and method
US7401240B2 (en) * 2004-06-03 2008-07-15 International Business Machines Corporation Method for dynamically managing power in microprocessor chips according to present processing demands
US7702369B1 (en) * 2004-06-25 2010-04-20 Cypress Semiconductor Corporation Method of increasing battery life in a wireless device
US7500123B2 (en) * 2004-06-28 2009-03-03 Ati Technologies Ulc Apparatus and method for reducing power consumption in a graphics processing device
US7827424B2 (en) * 2004-07-29 2010-11-02 Ati Technologies Ulc Dynamic clock control circuit and method
KR100636596B1 (ko) * 2004-11-25 2006-10-23 한국전자통신연구원 고에너지 효율 병렬 처리 데이터 패스 구조
US7800621B2 (en) * 2005-05-16 2010-09-21 Ati Technologies Inc. Apparatus and methods for control of a memory controller
US7398410B2 (en) * 2005-07-08 2008-07-08 National Tsing Hua University Processor employing a power managing mechanism and method of saving power for the same
US20070106914A1 (en) * 2005-11-07 2007-05-10 Kalyan Muthukumar Power management by adding special instructions during program translation
KR100806284B1 (ko) * 2005-12-08 2008-02-22 한국전자통신연구원 동적 전압 스케일링을 적용한 고효율 프로세서
TWI304547B (en) * 2005-12-29 2008-12-21 Ind Tech Res Inst Power-gating control placement for leakage power reduction
US20070294181A1 (en) * 2006-05-22 2007-12-20 Saurabh Chheda Flexible digital rights management with secure snippets
US7996689B2 (en) * 2006-06-12 2011-08-09 Semiconductor Manufacturing International (Shanghai) Corporation System and method for power control for ASIC device
JP4531020B2 (ja) * 2006-08-01 2010-08-25 ルネサスエレクトロニクス株式会社 半導体集積回路
KR101330121B1 (ko) * 2006-10-30 2013-11-26 삼성전자주식회사 컴퓨터시스템 및 그 제어방법
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US8667198B2 (en) * 2007-01-07 2014-03-04 Apple Inc. Methods and systems for time keeping in a data processing system
US8448003B1 (en) * 2007-05-03 2013-05-21 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for activating sleep mode
FR2930355B1 (fr) * 2008-04-18 2013-01-18 Commissariat Energie Atomique Procede de gestion de la consommation d'energie pour les systemes multiprocesseurs.
KR101197591B1 (ko) * 2008-12-22 2012-11-08 한국전자통신연구원 저전력 프로세서
US9348355B2 (en) 2009-08-24 2016-05-24 Ati Technologies Ulc Display link clocking method and apparatus
US9760333B2 (en) * 2009-08-24 2017-09-12 Ati Technologies Ulc Pixel clocking method and apparatus
US8269525B2 (en) * 2009-11-17 2012-09-18 Ati Technologies Ulc Logic cell having reduced spurious toggling
WO2011117243A1 (en) * 2010-03-23 2011-09-29 Sony Corporation Reducing power consumption by masking a process from a processor performance management system
US20110320835A1 (en) * 2010-06-29 2011-12-29 Browning David W System and method for dynamically managing power in an electronic device
US8799685B2 (en) 2010-08-25 2014-08-05 Advanced Micro Devices, Inc. Circuits and methods for providing adjustable power consumption
TWI432953B (zh) 2010-12-09 2014-04-01 Ind Tech Res Inst 具電源管理之超長指令處理器以及其電源管理裝置與方法
KR101754203B1 (ko) * 2011-01-19 2017-07-07 삼성전자주식회사 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법
KR20130080323A (ko) * 2012-01-04 2013-07-12 삼성전자주식회사 배열 구조를 갖는 프로세서를 위한 전력 제어 방법 및 장치
US9098271B2 (en) * 2012-02-05 2015-08-04 Jeffrey R. Eastlack Autonomous microprocessor re-configurability via power gating pipelined execution units using static profiling
KR20140140609A (ko) * 2012-03-29 2014-12-09 가부시키가이샤 한도오따이 에네루기 켄큐쇼 프로세서 및 전자 기기
EP2844518B1 (en) 2012-04-30 2018-11-28 Thermo King Corporation Transport refrigeration system controller to engine control unit interface
US9229524B2 (en) * 2012-06-27 2016-01-05 Intel Corporation Performing local power gating in a processor
US9846463B2 (en) * 2012-09-28 2017-12-19 Intel Corporation Computing system and processor with fast power surge detection and instruction throttle down to provide for low cost power supply unit
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
US10761584B2 (en) 2018-03-16 2020-09-01 Vigyanlabs Innovations Private Limited System and method to enable prediction-based power management

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602891A (en) * 1969-03-10 1971-08-31 Univ Washington Continuous transmission computer and multiple receiver system
JPS6145354A (ja) 1984-08-10 1986-03-05 Nec Corp マイクロプロセツサ
AU6031390A (en) * 1989-06-30 1991-01-17 Poqet Computer Corporation Computer power management system
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US6052792A (en) * 1993-08-24 2000-04-18 Mensch, Jr.; William D. Power management and program execution location management system for CMOS microcomputer
US5584031A (en) 1993-11-09 1996-12-10 Motorola Inc. System and method for executing a low power delay instruction
US5666537A (en) * 1994-08-12 1997-09-09 Intel Corporation Power down scheme for idle processor components
US5983357A (en) * 1995-07-28 1999-11-09 Compaq Computer Corporation Computer power management
JPH09146914A (ja) * 1995-09-06 1997-06-06 Seiko Epson Corp シングルチップマイクロコンピュータ及びそれを内蔵した電子機器
US5732255A (en) * 1996-04-29 1998-03-24 Atmel Corporation Signal processing system with ROM storing instructions encoded for reducing power consumpton during reads and method for encoding such instructions
US5887179A (en) * 1996-06-11 1999-03-23 Motorola, Inc. System power saving means and method
US5765013A (en) * 1996-07-03 1998-06-09 Samsung Electronics Co., Ltd. Digital signal processor
US5991884A (en) * 1996-09-30 1999-11-23 Intel Corporation Method for reducing peak power in dispatching instructions to multiple execution units
US5881016A (en) * 1997-06-13 1999-03-09 Cirrus Logic, Inc. Method and apparatus for optimizing power consumption and memory bandwidth in a video controller using SGRAM and SDRAM power reduction modes
US6219796B1 (en) 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172059A (ja) * 2004-12-15 2006-06-29 Seiko Epson Corp 情報処理装置および情報処理方法
JP2010231306A (ja) * 2009-03-26 2010-10-14 Nec Corp コンピュータシステム、ハードウェアリソース制御方法及びそのプログラム
JP2010257445A (ja) * 2009-04-14 2010-11-11 Technology Currents Llc ハードウェアカスタマイゼーション及びエネルギー最適化のためのプログラム及びデータアノテーション
US9104435B2 (en) 2009-04-14 2015-08-11 Empire Technology Development Llc Program and data annotation for hardware customization and energy optimization
US10331191B2 (en) 2009-04-14 2019-06-25 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型プロセッサ用プログラム開発システムおよび方法
US9870042B2 (en) 2013-05-14 2018-01-16 Samsung Electronics Co., Ltd. Apparatus and method managing power based on data

Also Published As

Publication number Publication date
US6219796B1 (en) 2001-04-17
US6307281B1 (en) 2001-10-23

Similar Documents

Publication Publication Date Title
JPH11316690A (ja) データプロセッサおよびコンピュータプログラム最適化方法
JP3959194B2 (ja) マルチ命令語プロセッサのための電力低減方法
US6845445B2 (en) Methods and apparatus for power control in a scalable array of processor elements
US6965991B1 (en) Methods and apparatus for power control in a scalable array of processor elements
US10248395B2 (en) Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US5815724A (en) Method and apparatus for controlling power consumption in a microprocessor
US7836317B2 (en) Methods and apparatus for power control in a scalable array of processor elements
US6795781B2 (en) Method and apparatus for compiler assisted power management
US8200987B2 (en) Dynamic object-level code translation for improved performance of a computer processor
US6442701B1 (en) Power saving by disabling memory block access for aligned NOP slots during fetch of multiple instruction words
US5991884A (en) Method for reducing peak power in dispatching instructions to multiple execution units
US6535982B1 (en) Semiconductor integrated circuit employing power management device and power management method for the semiconductor integrated circuit
US20020138777A1 (en) Method and apparatus for saving power in pipelined processors
US20040205326A1 (en) Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution
US6535984B1 (en) Power reduction for multiple-instruction-word processors with proxy NOP instructions
US7290157B2 (en) Configurable processor with main controller to increase activity of at least one of a plurality of processing units having local program counters
JP2001092661A (ja) データ処理装置
EP1499960B1 (en) Multi-issue processor
JP2003208306A (ja) プロセシングアーキテクチャ、該アーキテクチャ実現システム及び該システムのオペレーション方法
US6895494B1 (en) Sub-pipelined and pipelined execution in a VLIW
JP2003196085A (ja) 情報処理装置
Jones et al. Compiler directed issue queue energy reduction
JP2000207209A (ja) 演算装置、情報処理装置および情報処理方法、並びに提供媒体
Anjam et al. On the Implementation of Traps for a Softcore VLIW Processor
JP2003263311A (ja) 並列演算処理装置及び並列演算処理用の命令コードのデータ構造、並びに並列演算処理用の命令コードの生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081209

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20081209

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20090327