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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004590 computer program Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004134 energy conservation Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000035899 viability Effects 0.000 description 1
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/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3246—Power saving characterised by the action undertaken by software initiated power-off
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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/3891—Concurrent 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
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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に与えられるインスト
ラクションが包含されており、これによって、この機能
ユニットがパワーダウン状態に設定され、他方、プログ
ラムセグメント実行中に、使用されないようにする。
電力消費を低減させるコンピュータプログラムの最適化
方法を提供する。 【解決手段】 種々のインストラクションによって、独
立して制御可能な機能ユニット11d,11eを有する
プロセッサにより消費する電力を減少させるためのコン
ピュータプログラムを最適化する方法を提供する。この
プロセッサのインストラクションの組(図4)には、特
定の機能ユニット11d,11eに与えられるインスト
ラクションが包含されており、これによって、この機能
ユニットがパワーダウン状態に設定され、他方、プログ
ラムセグメント実行中に、使用されないようにする。
Description
【0001】
【発明の属する技術分野】本発明は、概して、マイクロ
プロセッサに関し、特に、マイクロプロセッサの消費電
力を低減させるように、インストラクションをプログラ
ミングする方法に関する。
プロセッサに関し、特に、マイクロプロセッサの消費電
力を低減させるように、インストラクションをプログラ
ミングする方法に関する。
【0002】
【従来の技術】人々がエネルギー保存に、ますます関心
を示すように、プロセッサ搭載型装置の電力効率につい
て、ますます、重要な要因となってきている。熱的効果
およびオペレーションコストの低減が、特に、考慮され
ている。このエネルギー保存問題とは別に、電力効果
は、バッテリ動作型のプロセッサ搭載型装置の関心事で
あり、バッテリのサイズを最小化して、この装置を可能
な限り小型且つ、軽量化したい。“コンピュータ搭載型
装置”は、特に、汎用コンピュータ用に設計された装
置、または、コンピュータ内蔵型装置である。
を示すように、プロセッサ搭載型装置の電力効率につい
て、ますます、重要な要因となってきている。熱的効果
およびオペレーションコストの低減が、特に、考慮され
ている。このエネルギー保存問題とは別に、電力効果
は、バッテリ動作型のプロセッサ搭載型装置の関心事で
あり、バッテリのサイズを最小化して、この装置を可能
な限り小型且つ、軽量化したい。“コンピュータ搭載型
装置”は、特に、汎用コンピュータ用に設計された装
置、または、コンピュータ内蔵型装置である。
【0003】プロセッサ設計の方針としては、多数の技
術が駆使されて電力消費を低減している。これら技術を
2つの手法に区別できる。まず第1の手法としては、プ
ロセッサの回路での電力消費を少なくするように設計す
る。第2の手法では、このプロセッサの電力利用を管理
できるように設計する。
術が駆使されて電力消費を低減している。これら技術を
2つの手法に区別できる。まず第1の手法としては、プ
ロセッサの回路での電力消費を少なくするように設計す
る。第2の手法では、このプロセッサの電力利用を管理
できるように設計する。
【0004】従来技術では、電力管理は、主としてシス
テムレベルで行われる。種々の“パワーダウン”モード
が実行されており、これによって、システムの一部分、
例えば、ディスクドライブ、ディスプレイ、またはプロ
セッサ自身を、断続的にパワーダウンしていた。
テムレベルで行われる。種々の“パワーダウン”モード
が実行されており、これによって、システムの一部分、
例えば、ディスクドライブ、ディスプレイ、またはプロ
セッサ自身を、断続的にパワーダウンしていた。
【0005】デバイスをパワーダウンモードへ導入する
には、種々の方法によって行われており、例えば、タイ
マに応答するか、または、プロセッサからのインストラ
クションに応答して行われている。前者の場合には、タ
イマは、ディバイスが予じめ決められた期間中に不作動
となった後に、このデバイスを、自動的にパワーダウン
モードに移行する。後者の場合、即ち、インストラクシ
ョン実行式電力管理方式の場合には、種々の基準が開発
されており、プロセッサのコントロールの下で電力管理
が行われる。このような基準方式の1つとして、インテ
ル社とマイクロソフト社との共同開発されているアドバ
ンスドパワーマネージメントインターフェイススペシフ
ィケーションがある。
には、種々の方法によって行われており、例えば、タイ
マに応答するか、または、プロセッサからのインストラ
クションに応答して行われている。前者の場合には、タ
イマは、ディバイスが予じめ決められた期間中に不作動
となった後に、このデバイスを、自動的にパワーダウン
モードに移行する。後者の場合、即ち、インストラクシ
ョン実行式電力管理方式の場合には、種々の基準が開発
されており、プロセッサのコントロールの下で電力管理
が行われる。このような基準方式の1つとして、インテ
ル社とマイクロソフト社との共同開発されているアドバ
ンスドパワーマネージメントインターフェイススペシフ
ィケーションがある。
【0006】また、プロセッサのパワーマネージメント
の1つのアプローチとして、米国特許第5,584,0
31号(“ローパワーディレイインストラクション実行
方法/システム”)が存在している。特別なインストラ
クション(“sleep”オペコード)によって、多数
のタイミングサイクルが表わされており、このサイクル
中に、CPUの動作が遅延する。
の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”)。インストラクションデコーダによって、“実
行”インストラクションから“コントロール”インスト
ラクションを区別する。インストラクションが“コント
ロール”インストラクションの場合には、これには、実
行ユニットが含まれず、スタンバイ信号を、この実行ユ
ニットに送給できる。
トアプローチとして、米国特許第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個、またはそれ以上の
機能ユニットに供給する。次に、各機能ユニットに対し
て、このコンピュータプログラムをスキャンして、この
プログラムのセグメントを配置する。このセグメントで
は機能ユニットが使用されていない。このスキャニング
ステップの結果に基いて、パワーダウンインストラクシ
ョンを、このプログラムに挿入して、この機能ユニット
の未使用中には、ほとんど電力を使用しない。この方法
は、アッセンブリ言語プログラマまたはコード最適化プ
ログラムによって、マニアル的に実行できるものであ
る。
ためのコンピュータプログラムを最適化する方法であ
る。この方法は、別個の“機能ユニット”を有するプロ
セッサ用に書かれたプログラムと一緒に用いられる。こ
れら“機能ユニット”には、インストラクションが独立
して与えられる。プロセッサのインストラクションの組
を変形することによって、特別な“パワーダウン”イン
ストラクションが得られ、このインストラクションを、
他の機能ユニットから独立した1個、またはそれ以上の
機能ユニットに供給する。次に、各機能ユニットに対し
て、このコンピュータプログラムをスキャンして、この
プログラムのセグメントを配置する。このセグメントで
は機能ユニットが使用されていない。このスキャニング
ステップの結果に基いて、パワーダウンインストラクシ
ョンを、このプログラムに挿入して、この機能ユニット
の未使用中には、ほとんど電力を使用しない。この方法
は、アッセンブリ言語プログラマまたはコード最適化プ
ログラムによって、マニアル的に実行できるものであ
る。
【0009】本発明によれば、パワーマネージメント
(電力管理)が、コンピュータシステムレベルと対比し
た、“オンチップ”レベルで実現できる利点がある。こ
のパワーマネージメントのレベルを、更に精密化して、
プロセッサ中のコンポーネントに向けさせることができ
る。また、このパワーマネージメントを、プロセッサの
CPU内の機能ユニットに対しても、適用できる。
(電力管理)が、コンピュータシステムレベルと対比し
た、“オンチップ”レベルで実現できる利点がある。こ
のパワーマネージメントのレベルを、更に精密化して、
プロセッサ中のコンポーネントに向けさせることができ
る。また、このパワーマネージメントを、プロセッサの
CPU内の機能ユニットに対しても、適用できる。
【0010】また、別の利点によれば、本発明によって
パワーダウンインストラクションが利用されると、この
プロセッサの残りの部分は、完全に動作状態となる。こ
のプログラムは、これらインストラクションがそこに存
在していないかの如く、実行される。この理由は、使用
しない機能ユニットのみが影響を受けるからである。従
って、特定のアプリケーションプログラムに挿入した場
合には、これらパワーダウンインストラクションが、機
能および実行時間の両方の観点から、プログラミングに
対して、意識されずに動作するようになる。
パワーダウンインストラクションが利用されると、この
プロセッサの残りの部分は、完全に動作状態となる。こ
のプログラムは、これらインストラクションがそこに存
在していないかの如く、実行される。この理由は、使用
しない機能ユニットのみが影響を受けるからである。従
って、特定のアプリケーションプログラムに挿入した場
合には、これらパワーダウンインストラクションが、機
能および実行時間の両方の観点から、プログラミングに
対して、意識されずに動作するようになる。
【0011】プロセッサ内の機能ユニットの選択的なパ
ワーマネージメントによって、特別設計されたオンチッ
プ回路の利用が実現する。一例の回路としては、特別な
機能、例えば、浮動少数点演算、フーリエ変換、および
ディジタル信号フィルタ処理機能を実行する回路が存在
する。このような回路を、チップ上に包含することがで
きると共に、使用時にのみ電力を消費する。従って、今
日の製造環境の下では、このような回路数をチップ上に
包含するのがますます安価となり、これらを包含しても
電力消費が欠点とはならない。
ワーマネージメントによって、特別設計されたオンチッ
プ回路の利用が実現する。一例の回路としては、特別な
機能、例えば、浮動少数点演算、フーリエ変換、および
ディジタル信号フィルタ処理機能を実行する回路が存在
する。このような回路を、チップ上に包含することがで
きると共に、使用時にのみ電力を消費する。従って、今
日の製造環境の下では、このような回路数をチップ上に
包含するのがますます安価となり、これらを包含しても
電力消費が欠点とはならない。
【0012】
【実施例】本明細書で記載されている本発明は、マイク
ロプロセッサ用のパワーマネージメント(電力管理)に
関するものである。このプロセッサのインストラクショ
ンの組は、以下のように設計されている。即ち、このイ
ンストラクションの組によって、プログラマ(または、
コンパイラー)は電力利用に対して効率的であるコード
を発生することができるように設計されている。特別な
パワーダウンインストラクションによってこのプロセッ
サの内部回路における電力消費を制御する。
ロプロセッサ用のパワーマネージメント(電力管理)に
関するものである。このプロセッサのインストラクショ
ンの組は、以下のように設計されている。即ち、このイ
ンストラクションの組によって、プログラマ(または、
コンパイラー)は電力利用に対して効率的であるコード
を発生することができるように設計されている。特別な
パワーダウンインストラクションによってこのプロセッ
サの内部回路における電力消費を制御する。
【0013】また本発明の方法によれば、この方法のイ
ンストラクションの組が、以下に記載のインストラクシ
ョンのタイプを有しているか、または、従うことができ
る場合において、本発明の方法を、あらゆるタイプのプ
ロセッサに適用できる。本発明を利用可能なあらゆるプ
ロセッサの共通の特性は、1個以上の機能ユニットを有
することであり、このユニットの作用を、インストラク
ションによって独立して制御可能とするものである。換
言すれば、インストラクションを、機能ユニットに選択
的に与えることが可能となる。
ンストラクションの組が、以下に記載のインストラクシ
ョンのタイプを有しているか、または、従うことができ
る場合において、本発明の方法を、あらゆるタイプのプ
ロセッサに適用できる。本発明を利用可能なあらゆるプ
ロセッサの共通の特性は、1個以上の機能ユニットを有
することであり、このユニットの作用を、インストラク
ションによって独立して制御可能とするものである。換
言すれば、インストラクションを、機能ユニットに選択
的に与えることが可能となる。
【0014】また、本例には、“機能ユニット”が記載
されており、これら機能ユニットは、プロセッサの中央
制御装置(CPU)内の種々のコンポーネント、例え
ば、独立したデータパスまたは、独立したデータパス内
の回路を設けるためのものである。また、更に、以下に
記載のように、これら機能ユニットは、プロセッサ内の
コンポーネントではあるが、例えばメモリデバイスや特
殊な処理ユニットのような、これのCPUの周辺デバイ
スも設けることができる。
されており、これら機能ユニットは、プロセッサの中央
制御装置(CPU)内の種々のコンポーネント、例え
ば、独立したデータパスまたは、独立したデータパス内
の回路を設けるためのものである。また、更に、以下に
記載のように、これら機能ユニットは、プロセッサ内の
コンポーネントではあるが、例えばメモリデバイスや特
殊な処理ユニットのような、これのCPUの周辺デバイ
スも設けることができる。
【0015】従って、発明の方法は、VLIW(長大イ
ンストラクションワード)プロセッサを利用すると有効
なものであり、これらVLIWプロセッサは、種々の異
なった機能ユニットを利用してインストラクションを並
列的(パラレル)に実行することが特徴である。また、
本発明は、“デュアルデータパス”プロセッサを利用す
ると有効であり、これらプロセッサによって、2つのデ
ータパスを用いてインストラクションを並列的に実行す
る。これら両方のタイプのプロセッサは、並列的(また
は、実質的に並列)に動作する、1個以上の機能ユニッ
トを有ることが特徴である。しかし乍ら、本発明は、以
下のような機能ユニットを有するプロセッサを利用する
ことでも有効である。即ち、前述したように、これら機
能ユニットは、並列的に動作しないで、その代りに、
“独立的にインストラクション動作可能”なものであ
る。実際上、本発明は、後者の場合において、最も有効
なものであり、ここでは、これら機能ユニットのシリア
ル(直列)動作によって、プログラムの実行中に、特定
の機能ユニットを用いないようにすることが可能とな
る。
ンストラクションワード)プロセッサを利用すると有効
なものであり、これらVLIWプロセッサは、種々の異
なった機能ユニットを利用してインストラクションを並
列的(パラレル)に実行することが特徴である。また、
本発明は、“デュアルデータパス”プロセッサを利用す
ると有効であり、これらプロセッサによって、2つのデ
ータパスを用いてインストラクションを並列的に実行す
る。これら両方のタイプのプロセッサは、並列的(また
は、実質的に並列)に動作する、1個以上の機能ユニッ
トを有ることが特徴である。しかし乍ら、本発明は、以
下のような機能ユニットを有するプロセッサを利用する
ことでも有効である。即ち、前述したように、これら機
能ユニットは、並列的に動作しないで、その代りに、
“独立的にインストラクション動作可能”なものであ
る。実際上、本発明は、後者の場合において、最も有効
なものであり、ここでは、これら機能ユニットのシリア
ル(直列)動作によって、プログラムの実行中に、特定
の機能ユニットを用いないようにすることが可能とな
る。
【0016】以上の記載から照らして、本例における用
語“プロセッサ”には、種々のタイプのマイクロコント
ローラおよびディジタル信号プロセッサ(DSP)のみ
ならず、汎用のコンピュータプロセッサが包含される。
従って、以下の記載において、DSPの用語において
は、ディジタル信号プロセッサTMS320ファミリー
ならびに、特に、TMS320C6x DSPの変形品
が含まれる。しかし乍ら、このような特定のプロセッサ
の選択は、一例であり、また単に説明上の都合によるも
のである。
語“プロセッサ”には、種々のタイプのマイクロコント
ローラおよびディジタル信号プロセッサ(DSP)のみ
ならず、汎用のコンピュータプロセッサが包含される。
従って、以下の記載において、DSPの用語において
は、ディジタル信号プロセッサTMS320ファミリー
ならびに、特に、TMS320C6x DSPの変形品
が含まれる。しかし乍ら、このような特定のプロセッサ
の選択は、一例であり、また単に説明上の都合によるも
のである。
【0017】プロセッサ全般 図1は、DSPプロセッサ10のブロック図である。前
述したように、このプロセッサ10は、VLIWアーキ
テクチュアを有しており、更に、マルチインストラクシ
ョンワードを“フェッチパケット”としてフェッチす
る。このマルチインストラクションワードは、一回のC
PUクロックサイクル中に、パラレル(並列)に(“実
行パケット”として)実行すべきものである。本例にお
いては、このプロセッサ10は、5ナノ秒のCPUサイ
クル時間で作動すると共に、各サイクル毎に、8個のイ
ンストラクションまで実行する。
述したように、このプロセッサ10は、VLIWアーキ
テクチュアを有しており、更に、マルチインストラクシ
ョンワードを“フェッチパケット”としてフェッチす
る。このマルチインストラクションワードは、一回のC
PUクロックサイクル中に、パラレル(並列)に(“実
行パケット”として)実行すべきものである。本例にお
いては、このプロセッサ10は、5ナノ秒のCPUサイ
クル時間で作動すると共に、各サイクル毎に、8個のイ
ンストラクションまで実行する。
【0018】このプロセッサ10は、CPUコア11を
有しており、このコアには、プログラムフェッチユニッ
ト11aおよび、インストラクションディスパッチ/デ
コードユニット11bと11cとが包含されている。こ
のデコードされたインストラクションを実行するために
は、プロセッサ10は2つのデータパス11dおよび1
1eを有している。
有しており、このコアには、プログラムフェッチユニッ
ト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つを実行できる。また、各機能
ユニットは、実行可能な、一組のインストラクションタ
イプを有している。
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の“モジュール構築可能な、フルチッ
プパワープロファイラー”(エルハルド)、テキサスイ
ンストルメント社に譲渡されており、本明細書中に参考
として記載されている。
々のプロセッサ動作を構築したり、制御するために手段
が得られる。コントロールロジックユニット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形態のインスト
ラクションによってこのプロセッサを制御しているかど
うかに拘らず、また、これらインストラクションが内部
的に、ローレベルに解読されているかどうかに拘らず、
適用することが可能である。
態のコードを実行し、また、アッセンブリ言語インスト
ラクションの組を有している。即ち、VLIWの各々に
は、RISCタイプのインストラクションが設定されて
いる。これらインストラクションで書かれたプログラム
を、アッセンブラによって機械語に変換するか、また
は、高レベルプログラムをコンパイラーによって機械語
に変換する。また、このプロセッサ10は、マイクロコ
ードや、インターナルマイクロコードインタープリータ
を、他のプロセッサの様に、利用することはない。しか
し乍ら、本例記載の本発明を、RISC形態のインスト
ラクションによってこのプロセッサを制御しているかど
うかに拘らず、また、これらインストラクションが内部
的に、ローレベルに解読されているかどうかに拘らず、
適用することが可能である。
【0022】本例において、8個の32ビットインスト
ラクションを組合わせてVLIWフェッチパケットを形
成する。従って、動作において、これら32ビットイン
ストラクションを、一度に、8個、プログラムメモリ1
2からフェッチして、256ビットのインストラクショ
ン語を形成する。
ラクションを組合わせてVLIWフェッチパケットを形
成する。従って、動作において、これら32ビットイン
ストラクションを、一度に、8個、プログラムメモリ1
2からフェッチして、256ビットのインストラクショ
ン語を形成する。
【0023】図2は、プロセッサ10によって使用され
るフェッチパケット20の基本フォーマットを表わす。
このフェッチパケット20における8個のインストラク
ションの各々は、“スロット”21として参照される位
置に配置されている。従って、このフェッチパケット2
0は、スロット1,2,・・・,8を有している。
るフェッチパケット20の基本フォーマットを表わす。
このフェッチパケット20における8個のインストラク
ションの各々は、“スロット”21として参照される位
置に配置されている。従って、このフェッチパケット2
0は、スロット1,2,・・・,8を有している。
【0024】このプロセッサ10は、フェッチパケット
全体を、1回のCPUサイクル内で、実行する必要性が
ない点において、他のVLIWプロセッサとは異なって
いる。あるフェッチパケットの一部分または、全体を
“実行パケット”として実行する。換言すれば、あるフ
ェッチパケットを、完全にパラレル、完全にシリアル、
または部分的にシリアルにすることができる。完全に、
または一部分だけシリアルなフェッチパケットの場合
(ここでは、フェッチパケットのインストラクション
は、実行するのに1サイクル以上要求しており)、次の
フェッチを延期できる。フェッチパケットと、実行パケ
ットとの間の区別によって、各々のフェッチパケットが
8個のインストラクションを包含できるようになり、こ
れは、実行すべきこれらインストラクションの全部をパ
ラレルに実行するかどうかに拘らず包含できるようにな
る。
全体を、1回のCPUサイクル内で、実行する必要性が
ない点において、他のVLIWプロセッサとは異なって
いる。あるフェッチパケットの一部分または、全体を
“実行パケット”として実行する。換言すれば、あるフ
ェッチパケットを、完全にパラレル、完全にシリアル、
または部分的にシリアルにすることができる。完全に、
または一部分だけシリアルなフェッチパケットの場合
(ここでは、フェッチパケットのインストラクション
は、実行するのに1サイクル以上要求しており)、次の
フェッチを延期できる。フェッチパケットと、実行パケ
ットとの間の区別によって、各々のフェッチパケットが
8個のインストラクションを包含できるようになり、こ
れは、実行すべきこれらインストラクションの全部をパ
ラレルに実行するかどうかに拘らず包含できるようにな
る。
【0025】プロセッサ10に対して、フェッチパケッ
ト20の実行のグルーピングが、各インストラクション
中の“Pビット”22によって特定化される。動作にお
いて、インストラクションディスパッチユニット11b
によって、この“Pビット”をスキャンすると共に、各
インストラクションの“Pビット”の状態によって、次
のインストラクションを、このインストラクションと共
に、パラレルで実行するかどうかを決定する。若し実行
する場には、同じサイクル中において、実行すべき同一
実行パケット中の2つのインストラクションを配置す
る。
ト20の実行のグルーピングが、各インストラクション
中の“Pビット”22によって特定化される。動作にお
いて、インストラクションディスパッチユニット11b
によって、この“Pビット”をスキャンすると共に、各
インストラクションの“Pビット”の状態によって、次
のインストラクションを、このインストラクションと共
に、パラレルで実行するかどうかを決定する。若し実行
する場には、同じサイクル中において、実行すべき同一
実行パケット中の2つのインストラクションを配置す
る。
【0026】図3は、フェッチパケット20の一例を表
わす。図2がフェッチパケット20用のフォーマットを
表わすのに対して、図3は、フェッチパケット20が包
含されている可能性のあるインストラクションの一例を
表わす。これら8個のインストラクションの各インスト
ラクションは、多数のフィールドを有しており、これら
は、最終的に、ビットレベルのマシーンコードで表わさ
れる。NOP(非動作)インストラクションは、プレー
スホルダーであると共に、これと組合わされた不実行を
有している。
わす。図2がフェッチパケット20用のフォーマットを
表わすのに対して、図3は、フェッチパケット20が包
含されている可能性のあるインストラクションの一例を
表わす。これら8個のインストラクションの各インスト
ラクションは、多数のフィールドを有しており、これら
は、最終的に、ビットレベルのマシーンコードで表わさ
れる。NOP(非動作)インストラクションは、プレー
スホルダーであると共に、これと組合わされた不実行を
有している。
【0027】文字“11”は、インストラクションを、
これ以前のインストラクションとパラレルに実行するも
のであると共に、Pビット22としてコード化されるこ
とを意味する。図示されているように、フェッチパケッ
ト20は完全にパラレルであると共に、単一実行パケッ
トとして実行することができる。
これ以前のインストラクションとパラレルに実行するも
のであると共に、Pビット22としてコード化されるこ
とを意味する。図示されているように、フェッチパケッ
ト20は完全にパラレルであると共に、単一実行パケッ
トとして実行することができる。
【0028】四角カッコ〔 〕は、条件レジスタの識別
子を包囲している条件インストラクションを表わす。従
って、図3における第1インストラクションは、非ゼロ
として、レジスタA2上に条件処理される。また、文字
A!は、“not(否定)”を表わすので、この結果、
ゼロであるレジスタA2上の条件を、〔!A2〕と表わ
す。条件レジスタフィールドには、これら識別子が含ま
れている。
子を包囲している条件インストラクションを表わす。従
って、図3における第1インストラクションは、非ゼロ
として、レジスタA2上に条件処理される。また、文字
A!は、“not(否定)”を表わすので、この結果、
ゼロであるレジスタA2上の条件を、〔!A2〕と表わ
す。条件レジスタフィールドには、これら識別子が含ま
れている。
【0029】オペフィールド(オペランドフィールド)
には、プロセッサ10のインストラクションの組からの
インストラクションタイプが含まれている。以下のイン
ストラクションタイプは、このインストラクションを実
行する機能ユニットの名称である。図1に関連して前述
したように、2つのデータパス11dおよび11eの各
々は、4つの機能ユニットを有している。これら機能ユ
ニットは、L(ロジック)、S(シフト)、M(掛
算)、およびD(データ)である。従って、このオペフ
ィールドは、シンタックス(構文)〔インストラクショ
ンタイプ〕・〔機能ユニット識別子〕を有している。
には、プロセッサ10のインストラクションの組からの
インストラクションタイプが含まれている。以下のイン
ストラクションタイプは、このインストラクションを実
行する機能ユニットの名称である。図1に関連して前述
したように、2つのデータパス11dおよび11eの各
々は、4つの機能ユニットを有している。これら機能ユ
ニットは、L(ロジック)、S(シフト)、M(掛
算)、およびD(データ)である。従って、このオペフ
ィールドは、シンタックス(構文)〔インストラクショ
ンタイプ〕・〔機能ユニット識別子〕を有している。
【0030】これら何個かのインストラクションタイプ
を、僅か1つの機能ユニットによって実行することがで
きると共に、或るインストラクションタイプは、多数の
機能ユニットの内の1つによって、実行することもでき
る。例えば、Mユニットによってのみ、掛算(MPY)
が実行できる。他方、加算(ADD)は、L、S、また
はDユニットによって実行できる。これらインストラク
ションへのこれら機能ユニットの通信を、本明細書で
は、“マッピング”と称するものとする。
を、僅か1つの機能ユニットによって実行することがで
きると共に、或るインストラクションタイプは、多数の
機能ユニットの内の1つによって、実行することもでき
る。例えば、Mユニットによってのみ、掛算(MPY)
が実行できる。他方、加算(ADD)は、L、S、また
はDユニットによって実行できる。これらインストラク
ションへのこれら機能ユニットの通信を、本明細書で
は、“マッピング”と称するものとする。
【0031】図4Aは、プロセッサ10用の機能ユニッ
トに対するインストラクションタイプのマッピングを表
わすテーブルである。また図4Bは、図4Aのニーモニ
ックを記載したテーブルである。
トに対するインストラクションタイプのマッピングを表
わすテーブルである。また図4Bは、図4Aのニーモニ
ックを記載したテーブルである。
【0032】インストラクションに対する機能ユニット
のマッピングによって、どのインストラクションをパラ
レルに実行できるかを決定するので、この結果として、
フェッチパケットが、1個以上の実行パケットになれる
かどうかを決定する。例えば、Mユニットのみが掛算
(MPY)を実行できる場合には、実行パケットは、2
個のMPYインストラクションを保有することが可能と
なり、これら1つが、2つのデータパス11dと11e
の各々によって実行される。これに対して、L、S、お
よびDユニット全部は、加算(ADD)を実行できるの
で、従って、実行パケットは、6個ものADDインスト
ラクションを包含している。
のマッピングによって、どのインストラクションをパラ
レルに実行できるかを決定するので、この結果として、
フェッチパケットが、1個以上の実行パケットになれる
かどうかを決定する。例えば、Mユニットのみが掛算
(MPY)を実行できる場合には、実行パケットは、2
個のMPYインストラクションを保有することが可能と
なり、これら1つが、2つのデータパス11dと11e
の各々によって実行される。これに対して、L、S、お
よびDユニット全部は、加算(ADD)を実行できるの
で、従って、実行パケットは、6個ものADDインスト
ラクションを包含している。
【0033】再び図3に戻り、インストラクションのオ
ペランドフィールドは、オペフィールドに従続してい
る。このインストラクションタイプに依存して、このオ
ペランドフィールドによって、1個またはそれ以上のソ
ースレジスタ、1個またはそれ以上の定数、および1つ
のデスティネーションレジスタを識別することができ
る。
ペランドフィールドは、オペフィールドに従続してい
る。このインストラクションタイプに依存して、このオ
ペランドフィールドによって、1個またはそれ以上のソ
ースレジスタ、1個またはそれ以上の定数、および1つ
のデスティネーションレジスタを識別することができ
る。
【0034】上述したプロセッサアーキテクチュアを一
般化するために、実行可能なインストラクションワー
ド、即ち、実行パケットには、CPUサイクル中に、パ
ラレルに実行すべき8個までのインストラクションが含
まれている。実行パケット中の各インストラクションに
よって、データパス11dおよび11eの機能ユニット
(L,D,S,またはM)の異なった1つのユニットを
利用する。インストラクションマッピングによって、イ
ンストラクションを与えられる機能ユニットを決定す
る。このような手法によって、機能ユニットを、独立し
て指示する能力によって、それ自身が、電力の最適化の
ための独得な技術に適合している。後述するように、パ
ワーダウンインストラクション(電力低下インストラク
ション)を利用できるので、これら機能ユニットの電力
消費を、独立的にコントロールできる。
般化するために、実行可能なインストラクションワー
ド、即ち、実行パケットには、CPUサイクル中に、パ
ラレルに実行すべき8個までのインストラクションが含
まれている。実行パケット中の各インストラクションに
よって、データパス11dおよび11eの機能ユニット
(L,D,S,またはM)の異なった1つのユニットを
利用する。インストラクションマッピングによって、イ
ンストラクションを与えられる機能ユニットを決定す
る。このような手法によって、機能ユニットを、独立し
て指示する能力によって、それ自身が、電力の最適化の
ための独得な技術に適合している。後述するように、パ
ワーダウンインストラクション(電力低下インストラク
ション)を利用できるので、これら機能ユニットの電力
消費を、独立的にコントロールできる。
【0035】機能ユニットの選択的パワーコントロール 再度、図4に戻って、プロセッサ10のインストラクシ
ョンの組は、多数のインストラクションタイプのものか
ら構成されており、これらインストラクションタイプの
各々を、1つまたはそれ以上の機能ユニットによって実
行できる。これら機能ユニットが、データパス11dお
よび11eのL,D,MおよびSユニットとして、図1
に図示されている。
ョンの組は、多数のインストラクションタイプのものか
ら構成されており、これらインストラクションタイプの
各々を、1つまたはそれ以上の機能ユニットによって実
行できる。これら機能ユニットが、データパス11dお
よび11eのL,D,MおよびSユニットとして、図1
に図示されている。
【0036】SLEEPインストラクションタイプは、
“パワーダウン”インストラクション用のものである。
このインストラクションは、いずれの機能ユニットM,
S,DおよびLと一緒に利用できる。このSLEEP以
外のインストラクションタイプは、本例においては、
“アクティブ”インストラクションと称する。
“パワーダウン”インストラクション用のものである。
このインストラクションは、いずれの機能ユニットM,
S,DおよびLと一緒に利用できる。このSLEEP以
外のインストラクションタイプは、本例においては、
“アクティブ”インストラクションと称する。
【0037】プログラムの実行中、機能ユニットがアク
ティブインストラクションを実行中でない間では、SL
EEPインストラクションが与えられる。図2に関連し
て、前述したインストラクションフォーマットを用い
て、このインストラクションは、以下のオペフィールド
を有している:
ティブインストラクションを実行中でない間では、SL
EEPインストラクションが与えられる。図2に関連し
て、前述したインストラクションフォーマットを用い
て、このインストラクションは、以下のオペフィールド
を有している:
【0038】SLEEP.〔機能ユニットの識別子〕特
定の機能ユニットのみが、このインストラクションに影
響され、他の残りの機能ユニットの各々は、それ自身の
パワー変更インストラクションによって指示されない限
り、準備状態のままである。上述の例においては、各オ
ペフィールドによって、単一の機能ユニットをコントロ
ールする。しかし乍ら、例えば、SLEEP x,x,
x,・・・のような1個以上の機能ユニットをコントロ
ールするインストラクションタイプを提供することもで
きる。ここで、記号x′sは、どの機能ユニットが影響
されるようになるかを表わす。本例においては、x′s
を、M,L,S,またはDとすることができる。従っ
て、機能ユニットLおよびM用のパワーダウンインスト
ラクションをSLEEPMLとする。
定の機能ユニットのみが、このインストラクションに影
響され、他の残りの機能ユニットの各々は、それ自身の
パワー変更インストラクションによって指示されない限
り、準備状態のままである。上述の例においては、各オ
ペフィールドによって、単一の機能ユニットをコントロ
ールする。しかし乍ら、例えば、SLEEP x,x,
x,・・・のような1個以上の機能ユニットをコントロ
ールするインストラクションタイプを提供することもで
きる。ここで、記号x′sは、どの機能ユニットが影響
されるようになるかを表わす。本例においては、x′s
を、M,L,S,またはDとすることができる。従っ
て、機能ユニットLおよびM用のパワーダウンインスト
ラクションをSLEEPMLとする。
【0039】前述したように、機能ユニットの実行可能
性の低下が、条件付きで行われている。パワーダウンイ
ンストラクションが、プログラムコード内の、所定ポイ
ントに設定され、ここでは、機能ユニットが不使用期間
に突入する。
性の低下が、条件付きで行われている。パワーダウンイ
ンストラクションが、プログラムコード内の、所定ポイ
ントに設定され、ここでは、機能ユニットが不使用期間
に突入する。
【0040】機能ユニットの実行可能性状態への復旧
を、条件付き、または無条件で行うことができる。条件
付き復旧の場合、“パワーアップ”インストラクション
を、例えば“WAKE”のような新しいインストラクシ
ョンタイプ、またはパワーダウンインストラクションの
トグルとすることができる。このトグルでは、第1回目
に現れた同一インストラクションによって、実行可能性
が低下すると共に、第2回目に現われた同一インストラ
クションによって、実行可能性が復旧する。無条件復旧
の場合には、すでにパワーダウンインストラクションの
受取った機能ユニットへの“実行可能な”インストラク
ション(即ち、SLEEP以外のインストラクション)
によって、この実行可能性の復旧が、自動的に行われ
る。
を、条件付き、または無条件で行うことができる。条件
付き復旧の場合、“パワーアップ”インストラクション
を、例えば“WAKE”のような新しいインストラクシ
ョンタイプ、またはパワーダウンインストラクションの
トグルとすることができる。このトグルでは、第1回目
に現れた同一インストラクションによって、実行可能性
が低下すると共に、第2回目に現われた同一インストラ
クションによって、実行可能性が復旧する。無条件復旧
の場合には、すでにパワーダウンインストラクションの
受取った機能ユニットへの“実行可能な”インストラク
ション(即ち、SLEEP以外のインストラクション)
によって、この実行可能性の復旧が、自動的に行われ
る。
【0041】1つのインストラクションによってそれ自
身の実行可能性が低下した1組の機能ユニットを、異な
った時間で別個に復旧することができる。例えば、2つ
の機能ユニットMおよびDに、プログラム中の異なった
ポイントにおいて、SLEEPインストラクションが与
えられる。しかし、これらユニットの実行可能性を、異
なった時間に別個のインストラクションによって復旧で
きる。
身の実行可能性が低下した1組の機能ユニットを、異な
った時間で別個に復旧することができる。例えば、2つ
の機能ユニットMおよびDに、プログラム中の異なった
ポイントにおいて、SLEEPインストラクションが与
えられる。しかし、これらユニットの実行可能性を、異
なった時間に別個のインストラクションによって復旧で
きる。
【0042】図5は、プログラムコードのセグメントを
表わし、ここでは、機能ユニットLは、多数の実行サイ
クル中において、アクティブインストラクション用に利
用されない。これら実行サイクルは、実行パケットEP
1,・・・,EPNによって表わされている。この機能
ユニットSLEEP.Lに与えられるパワーダウンイン
ストラクションを、実行パケットEP1に挿入する。機
能ユニットLの実行可能状態への復旧は、このユニット
に与えられる次のアクティブインストラクションADD
によって無条件となる。
表わし、ここでは、機能ユニットLは、多数の実行サイ
クル中において、アクティブインストラクション用に利
用されない。これら実行サイクルは、実行パケットEP
1,・・・,EPNによって表わされている。この機能
ユニットSLEEP.Lに与えられるパワーダウンイン
ストラクションを、実行パケットEP1に挿入する。機
能ユニットLの実行可能状態への復旧は、このユニット
に与えられる次のアクティブインストラクションADD
によって無条件となる。
【0043】他の機能ユニットの選択的パワーコントロ
ール 前述したように、プロセッサ10のアーキテクチュアに
よって、データパス11dと11e内において、機能ユ
ニットに与えられるパワーダウンインストラクションに
対して、それ自身を適合させる。他の実施例では、これ
らパワーダウンインストラクションを、機能ユニットの
内部機能ユニットより、むしろ全体の機能ユニットとし
てデータパス11dおよび11eに与えることができ
る。
ール 前述したように、プロセッサ10のアーキテクチュアに
よって、データパス11dと11e内において、機能ユ
ニットに与えられるパワーダウンインストラクションに
対して、それ自身を適合させる。他の実施例では、これ
らパワーダウンインストラクションを、機能ユニットの
内部機能ユニットより、むしろ全体の機能ユニットとし
てデータパス11dおよび11eに与えることができ
る。
【0044】また、これと同じ概念を、プロセッサ10
内の他の機能ユニットのパワーコントロールに適用でき
る。例えば、CPU11内において、コントロールレジ
スタ11fの組を、不使用時に、パワー変更用に選択す
ることができる。パワー変更用に好適な他のコンポーネ
ントとしては、例えば、浮動点ユニットおよびFFTユ
ニット(図示せず)のような特別な実行ユニットが存在
する。また、メモリ12の一部分、またはメモリ13を
同様に、パワーダウンすることが可能である。一般に、
本発明は、プロセッサ10内のあらゆる“機能ユニッ
ト”の選択的パワー変更に適用されるもので、ここで
は、この機能ユニットによって、直接インストラクショ
ンを実行できるか、または、他の周辺機能を提供でき、
更に、このユニットが、CPU11の内部または外部で
あるかに拘らず実行できる。
内の他の機能ユニットのパワーコントロールに適用でき
る。例えば、CPU11内において、コントロールレジ
スタ11fの組を、不使用時に、パワー変更用に選択す
ることができる。パワー変更用に好適な他のコンポーネ
ントとしては、例えば、浮動点ユニットおよびFFTユ
ニット(図示せず)のような特別な実行ユニットが存在
する。また、メモリ12の一部分、またはメモリ13を
同様に、パワーダウンすることが可能である。一般に、
本発明は、プロセッサ10内のあらゆる“機能ユニッ
ト”の選択的パワー変更に適用されるもので、ここで
は、この機能ユニットによって、直接インストラクショ
ンを実行できるか、または、他の周辺機能を提供でき、
更に、このユニットが、CPU11の内部または外部で
あるかに拘らず実行できる。
【0045】図6は、CPU11以内のデータパス11
dおよび11eに対するパワーダウンインストラクショ
ン用のインストラクションマッピングおよび、このプロ
セッサ10内で、CPU11の外側における周辺コンポ
ーネントへのインストラクションのマッピングの一例で
ある。例えばこの周辺ユニットとしては、外部メモリイ
ンターフェイス16が与えられる。SLEEPインスト
ラクションタイプを、これら機能ユニットのいずれか1
つのユニットに与えることができる。
dおよび11eに対するパワーダウンインストラクショ
ン用のインストラクションマッピングおよび、このプロ
セッサ10内で、CPU11の外側における周辺コンポ
ーネントへのインストラクションのマッピングの一例で
ある。例えばこの周辺ユニットとしては、外部メモリイ
ンターフェイス16が与えられる。SLEEPインスト
ラクションタイプを、これら機能ユニットのいずれか1
つのユニットに与えることができる。
【0046】また、図6に示したように、1個、または
それ以上の追加のインストラクションタイプを追加する
ことによって、機能ユニットを、パワーダウンレベルの
中間レベルに設定することもできる。このような“少な
い実行可能”状態において、機能ユニットは、少ない電
力または、全く電力を消費するものでなくなる。“多い
実行可能”状態において、機能ユニットは、多くの電力
を消費するが、更に迅速に利用準備可能となる。例え
ば、SLEEPインストラクションタイプに加えて、プ
ロセッサ10のインストラクションの組は、RESET
インストラクションタイプを有している。中間のパワー
ダウンインストラクションの実行例としては、或る機能
ユニット専用のメモリ以外のすべての回路をオフするイ
ンストラクションである。
それ以上の追加のインストラクションタイプを追加する
ことによって、機能ユニットを、パワーダウンレベルの
中間レベルに設定することもできる。このような“少な
い実行可能”状態において、機能ユニットは、少ない電
力または、全く電力を消費するものでなくなる。“多い
実行可能”状態において、機能ユニットは、多くの電力
を消費するが、更に迅速に利用準備可能となる。例え
ば、SLEEPインストラクションタイプに加えて、プ
ロセッサ10のインストラクションの組は、RESET
インストラクションタイプを有している。中間のパワー
ダウンインストラクションの実行例としては、或る機能
ユニット専用のメモリ以外のすべての回路をオフするイ
ンストラクションである。
【0047】特に、中間パワーダウンレベルは、復旧用
電力における遅れを回避するために有効なものである。
換言すれば、フルパワーダウンインストラクションの後
では、パワーアップインストラクションまたは、パワー
ダウン以外のインストラクションによって、遅れがもた
らされる。この遅れは、中間パワーダウンインストラク
ションが使用されてしまった場合に、発生しないもので
ある。
電力における遅れを回避するために有効なものである。
換言すれば、フルパワーダウンインストラクションの後
では、パワーアップインストラクションまたは、パワー
ダウン以外のインストラクションによって、遅れがもた
らされる。この遅れは、中間パワーダウンインストラク
ションが使用されてしまった場合に、発生しないもので
ある。
【0048】電力最適化コンパイラ 図7は、本発明による最適化プロセスの基本ステップを
表わす。図示したように、各機能ユニットに対して、プ
ログラムコードをスキャンして、この機能ユニットを使
用していないセグメントを識別する。“不作動セグメン
ト”の識別は、効率の見地から行われる。種々のパワー
モデル技術を利用して、時間の長さを決定できる。この
時間の間、コンポーネントをオフし(または、部分的に
オフする)、次に、再度オンにすることが有効である。
この結果として得られる“パワーダウンスレッシュホー
ルド”は、異なった機能ユニットに対して異なるもので
あると共に、異なったパワーダウンレベルに対しても異
なるものである。
表わす。図示したように、各機能ユニットに対して、プ
ログラムコードをスキャンして、この機能ユニットを使
用していないセグメントを識別する。“不作動セグメン
ト”の識別は、効率の見地から行われる。種々のパワー
モデル技術を利用して、時間の長さを決定できる。この
時間の間、コンポーネントをオフし(または、部分的に
オフする)、次に、再度オンにすることが有効である。
この結果として得られる“パワーダウンスレッシュホー
ルド”は、異なった機能ユニットに対して異なるもので
あると共に、異なったパワーダウンレベルに対しても異
なるものである。
【0049】不作動のセグメントを識別した後で、適切
なパワーダウンインストラクションを、例えば、セグメ
ントの長さのようなファクタに基いて選択する。例え
ば、長いセグメントに対しては、フルパワーダウンイン
ストラクションが要求され、短かいセグメントに対して
は中間のパワーダウンインストラクションが要求され
る。このパワーダウンインストラクションを、このセグ
メントの開始時に挿入する。プロセッサのアーキテクチ
ュアに依頼して、パワーアップインストラクションを利
用できるか、または利用できない。このプロセスを各機
能ユニットに対して繰返えす。
なパワーダウンインストラクションを、例えば、セグメ
ントの長さのようなファクタに基いて選択する。例え
ば、長いセグメントに対しては、フルパワーダウンイン
ストラクションが要求され、短かいセグメントに対して
は中間のパワーダウンインストラクションが要求され
る。このパワーダウンインストラクションを、このセグ
メントの開始時に挿入する。プロセッサのアーキテクチ
ュアに依頼して、パワーアップインストラクションを利
用できるか、または利用できない。このプロセスを各機
能ユニットに対して繰返えす。
【0050】図7の方法を実行するための1つのアプロ
ーチとしては、プログラマーが、プログラミング中に、
コードをマニュアル的にスキャンすると共に、パワーダ
ウンインストラクションをマニュアル的に挿入する方法
がある。この代りに、この方法を、コンパイラまたはア
ッセンブラによって、自動的に、実行することもでき
る。コンパイラは、高度なレベルの言語で動作する全体
の機能を有しており、これによって、プロセッサ10用
の電力効率用のマシーンコードを生成する。アッセンブ
ラは、アッセンブリコード上で作動する。
ーチとしては、プログラマーが、プログラミング中に、
コードをマニュアル的にスキャンすると共に、パワーダ
ウンインストラクションをマニュアル的に挿入する方法
がある。この代りに、この方法を、コンパイラまたはア
ッセンブラによって、自動的に、実行することもでき
る。コンパイラは、高度なレベルの言語で動作する全体
の機能を有しており、これによって、プロセッサ10用
の電力効率用のマシーンコードを生成する。アッセンブ
ラは、アッセンブリコード上で作動する。
【0051】コンパイラまたはアッセンブラの場合にお
いて、各機能ユニットに対して、最適化プロセスによっ
て、機能ユニットが使用されていないプログラムセグメ
ントを見つけ出せる。これらセグメントは、予じめ決め
られたスレッシュホールドより、長い期間である。これ
らセグメントが見つかると、コンパイラによって、機能
ユニットが、最初に、不使用になった時のコードにおけ
るポイントでパワー変更インストラクションが挿入され
る。
いて、各機能ユニットに対して、最適化プロセスによっ
て、機能ユニットが使用されていないプログラムセグメ
ントを見つけ出せる。これらセグメントは、予じめ決め
られたスレッシュホールドより、長い期間である。これ
らセグメントが見つかると、コンパイラによって、機能
ユニットが、最初に、不使用になった時のコードにおけ
るポイントでパワー変更インストラクションが挿入され
る。
【0052】機能ユニットが使用されていないプログラ
ムセグメントの配置は、静的、または動的なプログラム
分析によって行われる。静的分析では、コンパイラによ
って、開始ポイントと停止ポイントとの間の実行サイク
ルの数を予測し、これには、ループサイクルの予測およ
び他の統計的な予測が含まれている。動的分析は、コー
ドが実行可能な形態となった後に、実行され、コンパイ
ラによってこのコードを走らせると共に、実際に時間を
測定する。
ムセグメントの配置は、静的、または動的なプログラム
分析によって行われる。静的分析では、コンパイラによ
って、開始ポイントと停止ポイントとの間の実行サイク
ルの数を予測し、これには、ループサイクルの予測およ
び他の統計的な予測が含まれている。動的分析は、コー
ドが実行可能な形態となった後に、実行され、コンパイ
ラによってこのコードを走らせると共に、実際に時間を
測定する。
【0053】何れの場合においても、このコンパイラに
よって、機能ユニットのプログラムセグメントを、不使
用に設定する。次に、このコンパイラによってパワー変
更インストラクションをこのコード中に挿入する。異な
ったレベルの電力変更が存在する場合には、コンパイラ
によって、不使用の期間と、種々のパワー変更インスト
ラクションのスレッシュホールドとを比較すると共に、
適当なインストラクションを挿入する。
よって、機能ユニットのプログラムセグメントを、不使
用に設定する。次に、このコンパイラによってパワー変
更インストラクションをこのコード中に挿入する。異な
ったレベルの電力変更が存在する場合には、コンパイラ
によって、不使用の期間と、種々のパワー変更インスト
ラクションのスレッシュホールドとを比較すると共に、
適当なインストラクションを挿入する。
【0054】他の実施例 本発明を詳述したように、本発明の技術的思想を逸脱す
ることなく(添付の請求項によって規定されている範囲
内において)、種々の変形、変更を加え得るものであ
る。
ることなく(添付の請求項によって規定されている範囲
内において)、種々の変形、変更を加え得るものであ
る。
【0055】以上の説明に関して、更に以下の項を開示
する。
する。
【0056】(1) 電力消費を低減するに当り、個別
の機能ユニットを有するプロセッサに対して書かれたコ
ンピュータプログラムを最適化する方法において、少な
くとも1個の機能ユニットが使用されていない、前記コ
ンピュータプログラムの少なくとも1つのセグメントを
識別するステップと;上記識別ステップの識別結果に基
いて、前記セグメントの開始時において、パワーダウン
インストラクションを挿入するステップとを具備し;前
記パワーダウンインストラクションは、前記機能ユニッ
トの他のユニットから独立した1個またはそれ以上の機
能ユニットに与えられるインストラクションタイプと組
合わされると共に、このパワーダウンインストラクショ
ンを作用させて、前記少なくても1個の機能ユニット
が、前記セグメントの実行中に、少ないパワーを使用で
きるようにしたコンピュータプログラム最適化方法。
の機能ユニットを有するプロセッサに対して書かれたコ
ンピュータプログラムを最適化する方法において、少な
くとも1個の機能ユニットが使用されていない、前記コ
ンピュータプログラムの少なくとも1つのセグメントを
識別するステップと;上記識別ステップの識別結果に基
いて、前記セグメントの開始時において、パワーダウン
インストラクションを挿入するステップとを具備し;前
記パワーダウンインストラクションは、前記機能ユニッ
トの他のユニットから独立した1個またはそれ以上の機
能ユニットに与えられるインストラクションタイプと組
合わされると共に、このパワーダウンインストラクショ
ンを作用させて、前記少なくても1個の機能ユニット
が、前記セグメントの実行中に、少ないパワーを使用で
きるようにしたコンピュータプログラム最適化方法。
【0057】(2) 前記機能ユニットは、前記プロセ
ッサの中央演算装置内の独立したデータパスである第1
項記載の方法。
ッサの中央演算装置内の独立したデータパスである第1
項記載の方法。
【0058】(3) 前記機能ユニットは、前記独立し
たデータパス内の回路である第2項記載の方法。
たデータパス内の回路である第2項記載の方法。
【0059】(4) 前記機能ユニットは、前記プロセ
ッサの中央演算装置の外側に存在する第1項の方法。
ッサの中央演算装置の外側に存在する第1項の方法。
【0060】(5) 前記識別ステップは、静的に、プ
ロセッササイクルを予測することによって実行する第1
項記載の方法。
ロセッササイクルを予測することによって実行する第1
項記載の方法。
【0061】(6) 前記識別ステップは、動的に、プ
ロセッササイクルを計測することによって実行する第1
項記載の方法。
ロセッササイクルを計測することによって実行する第1
項記載の方法。
【0062】(7) 更に、前記プログラムにパワーア
ップインストラクションを挿入するステップを設け、前
記少なくとも1個の機能ステップを復旧させて実行可能
状態にする第1項記載の方法。
ップインストラクションを挿入するステップを設け、前
記少なくとも1個の機能ステップを復旧させて実行可能
状態にする第1項記載の方法。
【0063】(8) 前記パワーダウンインストラクシ
ョンによって、前記少なくとも1個の機能ユニットの全
体に対する電力を減少させる第1項記載の方法。
ョンによって、前記少なくとも1個の機能ユニットの全
体に対する電力を減少させる第1項記載の方法。
【0064】(9) 前記パワーダウンインストラクシ
ョンによって、前記少なくとも1個の機能ユニットの一
部分のみに対する電力を減少させて、この機能ユニット
が、実行可能な状態の中間状態に設定される第1項記載
の方法。
ョンによって、前記少なくとも1個の機能ユニットの一
部分のみに対する電力を減少させて、この機能ユニット
が、実行可能な状態の中間状態に設定される第1項記載
の方法。
【0065】(10)前記識別ステップは、前記セグメ
ントの持続期間と、予じめ決められたスレッシュホール
ドとを比較することによって実行する第1項記載の方
法。
ントの持続期間と、予じめ決められたスレッシュホール
ドとを比較することによって実行する第1項記載の方
法。
【0066】(11)前記パワーダウンインストラクシ
ョンを、単一の機能ユニットに与える第1項記載の方
法。
ョンを、単一の機能ユニットに与える第1項記載の方
法。
【0067】(12)前記パワーダウンインストラクシ
ョンを、多数の機能ユニットに与える第1項記載の方
法。
ョンを、多数の機能ユニットに与える第1項記載の方
法。
【0068】(13)電力消費を低減するに当り、個別
の機能ユニットを有するプロセッサに対して書かれたコ
ンピュータプログラムを最適化する方法において、ここ
で、これら機能ユニットは、このプロセッサのCPU内
に設けられており、少なくとも1個の機能ユニットが使
用されていない、前記コンピュータプログラムの少なく
とも1つのセグメントを識別するステップと;上記識別
ステップの識別結果に基いて、前記セグメントの開始時
において、パワーダウンインストラクションを挿入する
ステップとを具備し;前記パワーダウンインストラクシ
ョンは、前記機能ユニットの他のユニットから独立した
1個またはそれ以上の機能ユニットに与えられるインス
トラクションタイプと組合わされると共に、このパワー
ダウンインストラクションを作用させて、前記少なくて
も1個の機能ユニットが、前記セグメントの実行中に、
少ないパワーを使用できるようにしたコンピュータプロ
グラム最適化方法。
の機能ユニットを有するプロセッサに対して書かれたコ
ンピュータプログラムを最適化する方法において、ここ
で、これら機能ユニットは、このプロセッサのCPU内
に設けられており、少なくとも1個の機能ユニットが使
用されていない、前記コンピュータプログラムの少なく
とも1つのセグメントを識別するステップと;上記識別
ステップの識別結果に基いて、前記セグメントの開始時
において、パワーダウンインストラクションを挿入する
ステップとを具備し;前記パワーダウンインストラクシ
ョンは、前記機能ユニットの他のユニットから独立した
1個またはそれ以上の機能ユニットに与えられるインス
トラクションタイプと組合わされると共に、このパワー
ダウンインストラクションを作用させて、前記少なくて
も1個の機能ユニットが、前記セグメントの実行中に、
少ないパワーを使用できるようにしたコンピュータプロ
グラム最適化方法。
【0069】(14)前記機能ユニットは、前記プロセ
ッサの中央演算装置内の独立したデータパスである第1
3項記載の方法。
ッサの中央演算装置内の独立したデータパスである第1
3項記載の方法。
【0070】(15)前記機能ユニットは、前記独立し
たデータパス内の回路である第14項記載の方法。
たデータパス内の回路である第14項記載の方法。
【0071】(16)前記識別ステップは、前記機能ユ
ニットを直接識別する構文を有するインストラクション
用の前記コードをスキャニングすることによって実行す
る第13項記載の方法。
ニットを直接識別する構文を有するインストラクション
用の前記コードをスキャニングすることによって実行す
る第13項記載の方法。
【0072】(17)プロセッサのインストラクション
を実行中に電力消費を最小化するデータプロセッサにお
いて、これらインストラクションを、フェッチ、デコー
ドおよびディスパッチ処理可能なインストラクション処
理ユニットと;これらインストラクションを実行可能な
中央演算ユニットとを具備し、前記プロセッサは、複数
の機能ユニットおよびこれら機能ユニットとは別個に、
前記インストラクションを与えられる少なくとも1個の
機能ユニットとを有し;ならびに前記少なくとも1個の
機能ユニットは、パワーダウンインストラクションに応
答して、実行可能状態のままで、パワーダウン状態に突
入するデータプロセッサ。
を実行中に電力消費を最小化するデータプロセッサにお
いて、これらインストラクションを、フェッチ、デコー
ドおよびディスパッチ処理可能なインストラクション処
理ユニットと;これらインストラクションを実行可能な
中央演算ユニットとを具備し、前記プロセッサは、複数
の機能ユニットおよびこれら機能ユニットとは別個に、
前記インストラクションを与えられる少なくとも1個の
機能ユニットとを有し;ならびに前記少なくとも1個の
機能ユニットは、パワーダウンインストラクションに応
答して、実行可能状態のままで、パワーダウン状態に突
入するデータプロセッサ。
【0073】(18)前記機能ユニットは、更に、前記
パワーダウンインストラクション以外のインストラクシ
ョンに応答して、この機能ユニットを、前記実行可能状
態に復旧する第17項記載のプロセッサ。
パワーダウンインストラクション以外のインストラクシ
ョンに応答して、この機能ユニットを、前記実行可能状
態に復旧する第17項記載のプロセッサ。
【0074】(19)前記機能ユニットは、更に、パワ
ーアップインストラクションに応答して、この機能ユニ
ットを、前記実行可能状態に復旧する第17項記載のプ
ロセッサ。
ーアップインストラクションに応答して、この機能ユニ
ットを、前記実行可能状態に復旧する第17項記載のプ
ロセッサ。
【0075】(20)前記機能ユニットは、更に、第2
のパワーダウンインストラクションを応答して、この機
能ユニットが、電力消費の低減された中間状態に設定さ
れ、この中間状態では、前記パワーダウン状態より多く
の電力を消費するが、前記実行可能な状態より少ない電
力を消費する第17項記載のプロセッサ。
のパワーダウンインストラクションを応答して、この機
能ユニットが、電力消費の低減された中間状態に設定さ
れ、この中間状態では、前記パワーダウン状態より多く
の電力を消費するが、前記実行可能な状態より少ない電
力を消費する第17項記載のプロセッサ。
【0076】(21)種々のインストラクションによっ
て、独立して制御可能な機能ユニット11d,11eを
有するプロセッサにより消費する電力を減少させるため
のコンピュータプログラムを最適化する方法を提供す
る。このプロセッサのインストラクションの組(図4)
には、特定の機能ユニット11d,11eに与えられる
インストラクションが包含されており、これによって、
この機能ユニットがパワーダウン状態に設定され、他
方、プログラムセグメント実行中に、使用されないよう
にする。
て、独立して制御可能な機能ユニット11d,11eを
有するプロセッサにより消費する電力を減少させるため
のコンピュータプログラムを最適化する方法を提供す
る。このプロセッサのインストラクションの組(図4)
には、特定の機能ユニット11d,11eに与えられる
インストラクションが包含されており、これによって、
この機能ユニットがパワーダウン状態に設定され、他
方、プログラムセグメント実行中に、使用されないよう
にする。
【図1】本発明によるプロセッサを示し、独立してイン
ストラクションが与えられる機能ユニットを有してい
る。
ストラクションが与えられる機能ユニットを有してい
る。
【図2】図1のプロセッサによって利用されるフェッチ
パケットのフォーマットを示す図。
パケットのフォーマットを示す図。
【図3】フェッチパケットの一例を示す図。
【図4】図4Aは、図1のプロセッサのインストラクシ
ョンの組の一実施例を示す図。図4Bは、図4Aのニー
モニックを記載したテーブルを示す図。
ョンの組の一実施例を示す図。図4Bは、図4Aのニー
モニックを記載したテーブルを示す図。
【図5】本発明によるパワーダウンインストラクション
を有するプログラムコードセグメントの一例を示す図。
を有するプログラムコードセグメントの一例を示す図。
【図6】図1のプロセッサのインストラクションの組の
他の実施例を示す図。
他の実施例を示す図。
【図7】本発明による電力消費低減用のコンピュータプ
ログラムを最適化する方法を表わす図。
ログラムを最適化する方法を表わす図。
【符号の説明】 10 プロセッサ 11 CPUコア 12 プログラムメモリ 13 データメモリ 15 DMAコントローラ 16 外部メモリインターフェイス 17 ホストポート 18 パワーダウンロジック 20 フェッチパケット
Claims (2)
- 【請求項1】 電力消費を低減するに当り、個別の機能
ユニットを有するプロセッサに対して書かれたコンピュ
ータプログラムを最適化する方法において、 少なくとも1個の機能ユニットが使用されていない、前
記コンピュータプログラムの少なくとも1つのセグメン
トを識別するステップと;上記識別ステップの識別結果
に基いて、前記セグメントの開始時において、パワーダ
ウンインストラクションを挿入するステップとを具備
し;前記パワーダウンインストラクションは、前記機能
ユニットの他のユニットから独立した1個またはそれ以
上の機能ユニットに与えられるインストラクションタイ
プと組合わされると共に、このパワーダウンインストラ
クションを作用させて、前記少なくても1個の機能ユニ
ットが、前記セグメントの実行中に、少ないパワーを使
用できるようにしたコンピュータプログラム最適化方
法。 - 【請求項2】 プロセッサのインストラクションを実行
中に電力消費を最小化するデータプロセッサにおいて、 これらインストラクションを、フェッチ、デコードおよ
びディスパッチ処理可能なインストラクション処理ユニ
ットと;これらインストラクションを実行可能な中央演
算ユニットとを具備し、 前記プロセッサは、複数の機能ユニットおよびこれら機
能ユニットとは別個に、前記インストラクションを与え
られる少なくとも1個の機能ユニットとを有し;ならび
に前記少なくとも1個の機能ユニットは、パワーダウン
インストラクションに応答して、実行可能状態のまま
で、パワーダウン状態に突入するデータプロセッサ。
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)
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)
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)
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 |
-
1998
- 1998-12-15 US US09/212,190 patent/US6219796B1/en not_active Expired - Lifetime
- 1998-12-22 JP JP10365661A patent/JPH11316690A/ja not_active Abandoned
-
1999
- 1999-08-24 US US09/379,667 patent/US6307281B1/en not_active Expired - Lifetime
Cited By (7)
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 |