JPH11249896A - マルチ命令語プロセッサのための電力低減方法 - Google Patents
マルチ命令語プロセッサのための電力低減方法Info
- Publication number
- JPH11249896A JPH11249896A JP10365664A JP36566498A JPH11249896A JP H11249896 A JPH11249896 A JP H11249896A JP 10365664 A JP10365664 A JP 10365664A JP 36566498 A JP36566498 A JP 36566498A JP H11249896 A JPH11249896 A JP H11249896A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- code
- instructions
- processor
- cycle
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Power Sources (AREA)
Abstract
ログラムのマシン・レベル表現での最小限の変化がある
ときに、消費電力が減少するという認識に基づき、電力
使用に対してのコンピュータープログラムを最適化す
る。 【解決手段】 VLIWプロセッサ(10)またはマル
チ命令語(20)を用いる他のプロセッサのアセンブリ
ーコードを最適化する方法であって、それぞれはプロセ
ッサ(10)の異なる機能ユニット(11d及び11
e)に実行される命令を含む。命令語(20)は、1つ
以上の符号最適化テクニックにより変更される(図
6)。典型的には、変更はマシンコード内のサイクル・
ツー・サイクル・ビット変更をより少なくする結果をも
たらし、それは電力消費を減少することになる。
Description
ッサに係り、特にプロセッサの消費電力を減らす方法に
おけるプログラミング命令を使用する方法に関する。
てきているように、プロセッサ−ベースの装置のための
電力効率はますます重要になっている。明確な考慮すべ
き問題は、熱効果及び運転費の減少である。また、エネ
ルギー保全から離れて、電力効率が電池式プロセッサ−
ベースの装置に対する関心である。ここで、装置が小さ
い及び軽量にすることができるように、それは電池サイ
ズを最小にするのを要求される。「プロセッサ−ベース
の装置」は、特に一般的な計算のために設計した装置、
または、埋め込まれたプロセッサを有する装置のどちら
の装置でもあり得る。
電力使用を減らすために用いられてきた。これらの技術
は、2つの基本方策としてグループ化されることができ
る。第一に、プロセッサの回路は、より少ない電力を使
用するように設計され得る。第二に、電力使用が管理さ
れるように、プロセッサを設計できる。
そのプログラミングは、減少された消費電力のために最
適化され得る。このように、プログラマの見地から、プ
ロセッサが同じ機能を実行するようにプログラムする方
法には多くの場合複数ある。例えば、高水準プログラミ
ング言語に書かれるアルゴリズムは、効率のために時間
及び電力に関して最適化されることができる。最近ま
で、アセンブリー言語水準で、大部分の最適化手法は主
に電力使用に特別な考慮を払うことなく、実行速度に焦
点を合わせた。
の作業は、手動で実行するか自動コード解析ツールを用
いて実行できる。この種のツールは、プログラマにその
電力使用情報に関する情報を提供するように所与のプロ
グラムを分析できる。他方でこの種のツールが最適化コ
ードを発生して、実際にプログラマを援助することがあ
りえる。
ロファイラ」(テキサス・インスツルメンツ社出願)と
称した米国特許第5,557,557号は、プログラム
の実行の間、電力使用をモデル化する方法を記述する。
電力プロファイラ・プログラムは、プログラムを分析し
て、プログラマにエネルギー消費に関する情報を提供す
る。電力プロファイラは、L.ハードの「モジュール−
可変な、フル・チップ電力プロファイラ」(テキサス・
インスツルメンツ社出願)と称した米国特許出願番号0
6/046811に記載されている。
されると、コードを、最適化できる。プログラミングの
この面を自動化することは、最小限の電力使用のための
コンピューターコード(機能をサポートすることと、同
じ内部アルゴリズム)を再構成できるコード生成ツール
を必要とする。
力使用に対してのコンピュータープログラムを最適化す
る方法である。各CPUサイクルから次のサイクルま
で、プログラムのマシン・レベル表現での最小限の変化
があるときに、消費電力が減少するという認識に基づい
ている。
の異なる機能ユニットによって、「マルチ命令語」(こ
こで定義されるように)を実行する様々な形のプロセッ
サに役立つ。この種のプロセッサの例は、VLIW(非
常に長い命令語)プロセッサ及びデュアル・データパス
・プロセッサである。
実行されることができるもののどれでも)から成る。各
ステップは、コードをスキャンすること、所与のフィー
ルドまたは他のコードシーケンスを命令内で比較するこ
とを含む。一般に、それは、その機能性に対して、重要
であるコード構文である。そのコードシーケンスのマシ
ンコード表現のサイクル・ツー・サイクル・ビット変化
が最小にされることができるコードシーケンスがあるか
どうか決定される。それから、これがコード機能性に逆
に影響を及ぼすことなくされることができる場合、コー
ドは変更される。
ーケンスが機能ユニット割当て(設定)である方法であ
る。典型的に、命令語の各命令は、ワードの「スロッ
ト」を占める。各スロットに対して、機能ユニットを識
別するフィールドが、スキャンされる。このフィールド
のサイクル・ツー・サイクル・ビット変化は、命令語内
に命令を再配置することによって、減少する。命令が単
に再配置されるだけであるので、コード機能性は影響を
受けない。
クチャレベルで高水準プログラミングに最適化の方向を
目指すということである。これは、プロセッサがそのプ
ロセッサに対して最も効率的である仕方でプログラムさ
れるのを許す。その方法は、簡単にプロセッサ及びその
命令セットの特性に適していることができる。
マイクロプロセッサのための電力管理を目的とする。根
本的な動作原理は、プロセッサに提供されるプログラミ
ングが電力使用を減らすために最適化されることができ
るということである。特別な命令がセットしたと仮定す
ると、これらの命令を用いているプログラムは最適でな
い命令シーケンスの存在を検出するために分析されるこ
とができる。逆に影響を及ぼすコード機能性を伴わず
に、電力使用がより効率的であるように、これらのシー
ケンスを、変更できる。
令語)プロセッサについて最も役に立つ。それは、プロ
セッサ内で異なる機能ユニットを用い、平行に多数の命
令を実行する能力によって、特徴づけられる。本発明
は、平行な2つのデータパス上の2つの命令を実行する
「デュアル・データパス」プロセッサについても役に立
つ。プロセッサの両方のタイプは、並列に複数の機能ユ
ニット内の「マルチ命令語」を実行する。しかし、平行
に行うことは本発明の制限でない、そして、一度にフェ
ッチすると共に複数の命令をデコードするいかなるプロ
セッサも最適化プロセスで利益を得る。以下に説明され
るように、この種のプロセッサとして、コードが適切に
配置される場合、フェッチし、デコードし、ディスパッ
チするサイクル・ツー・サイクル命令は電力に対して最
適化されることができる。
セッサ」は、ここで用いられるように、様々な形のマイ
クロ・コントローラ及びデジタル信号処理装置(DS
P)を含むことができる。このために、以下の説明が、
DSP(DSPのTMS320一系統及び特にTMS3
20C6xDSP)に関してなされる。しかし、特別な
プロセッサを選択することは、説明及び実例のためだけ
である。
である。以下に説明されるように、プロセッサ10はV
LIWアーキテクチャを有し、単一CPUクロックサイ
クルの間、(「実行パケット」として)並列に実行され
るべく、マルチ−命令語を(「フェッチ・パケット」と
して)フェッチする。この説明の例において、プロセッ
サ10は5ナノ秒CPUサイクルタイムで動いて、サイ
クルごとに8つの命令まで実行する。
る。そして、それはプログラム・フェッチユニット11
a、及び命令ディスパッチ及びデコード・ユニットそれ
ぞれ11b及び11cを有する。デコードされた命令を
実行するために、プロセッサ10は2つのデータパス1
1d及び11eを有する。
サイクルごとにデータパス・ユニット11d及び11e
に最高8つの命令を有する実行パケットを分配する。デ
ータパス11d及び11eは、それぞれ16の汎用レジ
スタを含む。データパス11d及び11eも、それぞれ
4つの機能ユニット(L、S、M及びD)を含む。そし
て、それは汎用レジスタに接続している。このように、
プロセッサ10は8つの機能ユニットを有する。そし
て、それぞれは実行パケット内の命令の1つを実行でき
る。各機能ユニットは、それが実行できる一組の命令タ
イプを有する。
操作を構成し、制御する手段を提供する。制御ロジック
・ユニット11gは、制御、テスト、エミュレーション
及び割込み機能のためのロジックを有する。
2、データ・メモリー13及びタイマー14から成る。
その周辺回路は、直接メモリーアクセス(DMA)コン
トローラ15、外部記憶インターフェース16、ホスト
ポート17及び電力低下ロジック18を含む。電力低下
ロジック18は、CPUアクティビティ、周辺アクティ
ビティ及びタイマー・アクティビティを消費電力を減ら
すために停止させることができる。本発明の特徴以外の
プロセッサ10の特徴と同じ、これらの電圧低下モード
は、米国特許出願60/046,811に記載されて、
バックグラウンドで参照されて、本願明細書に引用した
ものとする。
ドを実行し、アセンブラー言語命令セットを有する。換
言すれば、そのVLIWの各々は、RISC−タイプ命
令から成る。これらの命令によって、書き込まれるプロ
グラムは、マシンコードにアセンブラによって、コンバ
ートされる。いくつかの他プロセッサのように、プロセ
ッサ10はマイクロコードまたは内部マイクロコード・
インタープリタを用いない。しかし、RISCに類似の
命令がプロセッサを制御するに関係なく、または、命令
が内部で下位レベルに解読されるかどうかに関係なく、
ここで記載されている本発明は適用できる。
ト命令は、VLIWを作るために結合される。このよう
に、作動中に、256のビット命令語を作るために、3
2ビット命令は、一度にプログラムメモリ12から8個
フェッチされる。「フェッチ・パケット」は、メモリー
12からフェッチされるこれらの8つの命令から成る。
れるフェッチ・パケット20の基本フォーマットを例示
する。フェッチ・パケット20内の8つの命令の各々
は、「スロット」21と称されるロケーションに置かれ
る。このように、フェッチ・パケット20は、スロット
1、2、...8を有する。
クルにおいて、必ずしも実行されるというわけではない
という点で、プロセッサ10は他のVLIWプロセッサ
と異なる。フェッチ・パケットの全部または一部は、
「実行パケット」として実行される。換言すれば、フェ
ッチ・パケットは、完全にパラレルでありえるか、完全
に直列でありえるか部分的に直列でありえる。完全にま
たは部分的に直列のフェッチ・パケットの場合、そこで
はフェッチ・パケットの命令が実行すべき複数のサイク
ルを必要とするが、次のフェッチを、延期できる。フェ
ッチ・パケット及び実行パケットのこの差異は、あらゆ
るフェッチ・パケットが、それらが並列に実行される全
てであるかどうかに関係なく、8つの命令を含むのを許
す。
ット20の実行グループ化は、各命令内の「p−ビッ
ト」22により特定される。作動中に、命令ディスパッ
チ・ユニット11bはpビットをスキャンする。そし
て、各命令のpビットの状態は次の命令がその命令と並
列に実行されるか否かを、決定する。もしそうならば、
その位置と2つの命令が同じサイクルにおいて、実行さ
れる同じ実行パケットにある。
例示する。図2がフェッチ・パケット20のためのフォ
ーマットを例示するのに対して、図3はフェッチ・パケ
ット20が含むことがありえる命令の実例を例示する。
フェッチ・パケット20は8つの命令に対して典型的に
は5つ有し、図3のフェッチ・パケット20は7つの命
令を有する。各命令は数多くのフィールドを有する。そ
して、それはビットレベル・マシンコードにおいて、最
終的に表される。
並列に実行することであって、pビット22としてコー
ド化されることを示す。上記のように、フェッチ・パケ
ット20は、完全にパラレルで、単一の実行パケットと
して実行されることができる。
別子を囲むこと)を示す。このように、図3内の最初の
命令は、ゼロでないレジスタA2で条件づけられる。キ
ャラクタ!は、「not」を表す。従って、A2がゼロ
である条件は[!A2]として表される。条件レジスタ
部は、これらの識別子から成る。
サ10の命令セットから命令タイプを含む。命令タイプ
に続くものは、命令を実行する機能ユニットの指示であ
る。図1と関連して上に述べたように、2つのデータパ
ス11d及び11eは、それぞれ4つの機能ユニットを
有する。これらの機能ユニットは、L(論理)、S(シ
フト)、M(積算)及びD(データ)である。オペレー
ション・フィールドは、このように、構文[命令タイ
プ][機能ユニット識別子]を有する。
トだけにより実行されることができる。そして、いくつ
かはそれらの数の1つにより実行されることができる。
例えば、Mユニットだけは、積算(MPY)を実行でき
る。他方、加算(ADD)はL、SまたはDユニットに
よって、実行できる。命令への機能ユニットの対応付け
は、それらの「マッピング」と呼ばれる。
ユニットへの命令タイプのマッピングの実例を示すテー
ブルである。それは、以下にコード最適化と関連して設
定される実例の理解に役立つ。図4Bは、各ニーモニッ
クの説明を例示する。
が、どの命令が並列に実行されることができるかどう
か、したがって、フェッチ・パケットが、複数の実行パ
ケットになるどうかについて決定する。例えば、Mユニ
ットが積算(MPY)を実行することができさえすれ
ば、実行パケットは2つのMPY命令(2つのデータパ
ス11d及び11eの各々により実行されるもの)を具
備できる。対照的に、L、S及びDユニットは、加算
(加算)を実行できる。このように、実行パケットは6
つぐらいの加算命令を包含できる。
フィールドは、オペレーション・フィールドに続く。命
令タイプに従い、オペランド・フィールドは1つ以上の
ソース・レジスタ、1つ以上の定数及び宛先レジスタを
確認できる。
実行パケットを具備しているコードの例である。この例
では、2つのフェッチ・パケット20が、ある。最初の
フェッチ・パケット20は、3つの実行パケット、EP
1、EP2及びEP3において、実行される。第2のフ
ェッチ・パケット20は、4つの実行パケット、EP
1、EP2、EP3及びEP4において、実行される。
化するために、実行命令ワード(すなわち実行パケッ
ト)は、CPUサイクル中に並列に実行される最高8つ
の命令を含む。実行パケット内の各命令は、データーパ
ス11d及び11eの異なる機能ユニット(L、D、S
またはM)の1つを用いる。命令マッピングは、どの命
令タイプが実行パケット内で二重にすることができるか
について決定する。
ための特有な技術として役に立つ。以下に説明されるよ
うに、命令語内に、各スロットのために、サイクルから
サイクルへの変化が最小にされるように、命令を配置で
きる。
ステップは、異なるコード最適化技術を含む。各ステッ
プは、単独で独立の符号最適化テクニックとしてまたは
他のステップの1つ以上と協力して実行してもよい。
実例と共に、これらのステップの各々は、以下に説明さ
れる。コード例は、上記のように図1−5と関連してプ
ロセッサのアーキテクチャと一致している。特に、実例
は実行パケットに分割されることができるフェッチ・パ
ケットを用いるプロセッサ10と一致している。そし
て、フェッチ・パケット及び実行パケットのこの差異に
対する特記事項は注目される。
が、従来の意味における「パケット」を用いないプロセ
ッサのためのと同じ、実行パケットと同じものであるプ
ロセッサに等しく役立つ。最適化されるコードの共通の
特性は、それが、「マルチ命令語」を有することであ
る。ターム「マルチ命令語」は、一組の命令を示すため
に用いられる。そこではセット内の命令が、いくつかの
点で処理のためのプロセッサ内に集められる(その処理
には、フェッチし、デコードし、実行し、ディスパッチ
すること、または、いくつかのこれらの機能の組合せを
含むことができる)、そして、実行はプロセッサの異な
る機能ユニットにより行われる。「マルチ命令語」はフ
ェッチ・パケットとしてまたは実行パケットとして組み
立てられることが可能である、または、それは従来のパ
ケット構造と異なる構造を具備できる。
ードの2進数表示のサイクル・ツー・サイクル・ビット
変化を見つけて、最小にする方向を最終的に目指す。こ
れは、命令の数及びタイプに関して全面機能性に実質的
に影響せずに、遂行される。機能性が実質的に同じもの
であるので、命令がプログラムメモリからフェッチされ
るときに、そして、それらがデコ―ドされて、ディスパ
ッチするときに、結果はより少ないノード切替となる。
その結果、電力消費を減軽する。全面最適化プロセスの
各ステップは、ビット変化の異なるカテゴリを見つけ
て、最小にする方向を目指す。一般的な意味において、
コードは機能の特徴に対する多様な構文特徴に対してス
キャンされる。
スロット割当てをフェッチ・パケット内に再配列してい
る。各フェッチ・パケットのために、命令はスロット割
当てによって、調べられる。機能ユニットのサイクルか
らサイクルへの変化が最小にされるように、フェッチ・
パケット内の命令が再配列されることができるかどうか
決定される。ステップ61の効果は、機能ユニット割当
ての「垂直整列」である。
例示する。図7Aは、ステップ61の最適化の先行する
命令ストリーム70を示す。図7Bは、ステップ61に
よって、最適化され、ほとんど同じ命令ストリーム70
を示す。
パケットを有する。説明されるように、第2のフェッチ
・パケットにおいて、ステップ61の最適化は前のフェ
ッチ・パケット内のADD.L1オペレーション・フィ
ールドがあったスロットに、ADD.L1Xオペレーシ
ョン・フィールドを具備している命令を移動する。オペ
レーション・フィールドは、交差パスを示している
「X」を加えたものと同じである。第3のフェッチ・パ
ケットにおいて、ステップ61は前の2つのフェッチ・
パケット内の対応するオペレーション・フィールドを有
する命令と同じスロットへ、2つの命令(オペレーショ
ン・フィールドADD.L1Xを有するもの及びオペレ
ーション・フィールドADD.L2Xを有する他のも
の)を移動する。同様に、LDW.D2命令が前のパケ
ットのLDW.D2命令として、同じスロットを占める
ことができるように、ステップ61はB(分岐)命令を
移動する。同じスロットが同じ命令タイプを有するよう
に、NOP(ノーオペレーション)命令は位置保持記号
として用いられる。
するフェッチ・パケットに加えられることが可能であ
る。この場合、実行パケットの順序は保存されなければ
ならない、しかし、スロット割当ては実行パケット内で
変わることができる。一般に、フェッチ・パケット(例
えば図7A及び7Bのコード)につき単一の実行パケッ
トを有するコードは、フェッチ・パケットごとにマルチ
実行パケットを有するコードより大きい範囲に最適化さ
れる。
ユニット割当てを含んでいるオペレーション・フィール
ドを有するプロセッサ10に、特有のものである。他の
プロセッサのために、機能ユニット割当てが、異なるフ
ィールドにあってもよい。いずれにしても、ステップ6
1の最適化は、フェッチ・パケット内で機能ユニット割
当てを整列させるために命令を再整理する方向を目指
す。機能ユニット割当てのこの整列は、各スロットにお
いて、1サイクルから次のサイクルまで変化するビット
の数を減らす。
れらの間の不必要な切替を避けるために機能ユニット割
当てを整列させる。しかし、ステップ63は既存の命令
を再整理することよりむしろ新しい機能ユニット割当て
を提供することに関係する。
イプによって、実行可能であるいくつかの命令があると
いう事実に基づいている。再び図4を参照して、例えば
プロセッサ10は、L及びS機能ユニット上で実行され
ることができるある命令を有する。そして、これらのい
くつかはD装置上で同様に実行される。
いないコード及び最適化コードの例である。ここで、最
適化はステップ63により実行された。上記のように、
命令ストリームは3つのフェッチ・パケットを有する。
そして、各フェッチ・パケットは同じスロット内の加算
命令を有する。加算命令が機能ユニット(D、Sまたは
L)のどれにでも実行されることができるので、図8A
の最適化されていないコードは実行可能である。しか
し、それら間の切替は、不必要である。したがって、図
8Bにおいて、同じ機能ユニット(L)は、全ての3つ
の加算命令のために用いられる。
のもう1つの例である。この例は、マルチ実行パケット
を具備しているフェッチ・パケットの最適化を説明す
る。この場合、機能ユニット割当てのサイクル・ツー・
サイクル解析は、パケットを実行するように指示され
る。しかし、実行パケットがフェッチ・パケットとして
フェッチされる場合、同じ概念が適用されるだろう。
能ユニットのサイクル・バイ・サイクル使用を示すこと
によって、最も理解される。最適化の前のコードである
図9Aのコードを、図にすると次のようになる:
ようになる: サイクル M1 S1 L1 D1 M2 S2 L2 D2 1 MVK LDW MVK LDW 2 SUBX SHL STW 3 LDW LDW 4 MVK MV STW 5 MVKLH LDW LDW 6 SMPY SMPY STW
ユニットはサイクルからサイクルまで機能ユニット間の
不必要な切替を回避するために再割当てされる。最適化
は、機能ユニットのよりよい整列に結果としてなる。
当てを具備する方向を目指す。プロセッサ10の特性
は、3ビットの条件レジスタ・フィールドが無条件の命
令に対して全て0であるということである。レジスタB
0、B1及びA1の条件は、条件フィールド内にただ1
つの「1」を具備する。他方、レジスタB2及びA2の
条件は、2つの「1」を具備する。したがって、無条件
の命令から条件命令まで変わるビット数を最小にするた
めに、レジスタB0、B1及びA1は、むしろ望まし
い。
を説明する。図1OBの最適化コードと図1OAの最適
化されていないコードとを比較すると、最初のサイクル
において、ステップ64はS2及びD2上のADDを交
換する。この変更の結果として、条件レジスタ・フィー
ルド及びオペランド・フィールドにおいて、変化してい
るビット数は、減少する。スロット5及び6だけを考慮
して、最適化されていないコードにおいて、条件フィー
ルド及びオペランド・フィールドは、次のようになる:
る:L2命令(2+2+2+2)に対して8、そして、
D2命令(2+1+2+2)に対して7。
て、これらのフィールドは、次のようになる: サイクル L2 D2 1 [!A1]...1,B5,B5 [!BO]...3,B5,B5 2 [!A1]...5,B3,B3 NOP
る:L2命令(0+1+2+2)に対して5、そして、
D2命令(2+2+2+2)に対して8。この最適化
は、命令ディスパッチ装置11b及び命令デコードユニ
ット11cによって、電力使用を減らす。
オペランド・フィールドを分析する。オペランド・フィ
ールドにおいて、変化しているビット数が結果としてよ
り小さくなる場合、オペランドが、再整理されるか、レ
ジスタが再割当てされる。上記のように図3と関連し
て、命令タイプに従い、オペランド・フィールドは多様
なソース・レジスタ、宛先レジスタまたは定数を識別す
る。それは、命令の全ビット・サイズに比例した大きい
フィールドである。例えば、プロセッサ10のために、
オペランド・フィールドは32ビット命令の15ビット
である。したがって、ステップ65は電力最適化に重要
な影響を及ぼすことができる。
適化の例である。この例では、オペランドの再配列は、
命令内にある。図11Aの最適化されていないコード
は、図11Bにおいて、最適化される。単一の実行サイ
クルにおいて、実行されている各フェッチ・パケットに
ついては、2つのフェッチ・パケットが示される。
2だけを考慮すると、図11Aの最適化されていないコ
ードは次のようになる: サイクル スロット#2における命令 1 [A2] ADD .L2 B12, B11, B12 2 ADD .L2X A11, B12, B11
ある: サイクル スロット#2における命令 1 [A2] ADD .L2 B11, B12, B12 2 ADD .L2X A11, B12, B11
る。そして、12のための二進コードは1100であ
る。したがって、スロット#2内のオペランドの再配列
は、オペランド・フィールドが6までに変化しているビ
ット数を減らす。
う1つの例で、それぞれ、最適化されていないコード及
び対応する最適化コードを示している。ここでは、オペ
ランドの再配列は、2つの異なる命令間の切換えを含
む。3つのフェッチ・パケットのスロット2及び8が示
される。図12Bの最適化コードに図l2Aの最適化さ
れていないコードの第2のサイクル(FP2)のフェッ
チ・パケットを比較すると、S2及びL2上のSUB命
令が切り換えられている。これは、スロット2及び8の
オペランド・フィールドにおいて、変化しているビット
数を減らす。
アセスメントについては完成していることができる。所
与の命令において、用いるレジスタの選択があるとき
に、先行する命令か次の命令から最少のビット変化を引
き起こすレジスタが選ばれることができる。
ロファイルを提供するためにNOP(ノーオペレーショ
ン)命令を再配置している。より詳しくは、ステップ6
7は、1つのフェッチ・パケットからコードの機能性に
影響を及ぼすことのない他のフェッチ・パケットまで移
動され得るNOPがあるかどうかを決定する。
れていないコード及び対応する最適化コードの例を説明
する。ここで、最適化はステップ67に従っている。コ
ードは、8つのフェッチ・パケットFP1...FP8
を有する。陰影をつけられたスロットは、NOP命令で
ない命令を含む。図13Bの例にて図示したように、多
くのNOP命令が、1つのフェッチ・パケットから他の
フェッチ・パケットまで移動された。NOP命令が全て
0であるので、それらの配置はサイクルからサイクルま
で変化しているビットの数に、重大な影響を及ぼす。
ットがNOPからnon−NOP命令まで切り換える回
数を減らすためにダミー命令を加算している。これらの
ダミー命令は、データの完全性に逆に影響を及ぼすこと
なく、大部分の先行する命令や次の命令を二重にする。
コード及び、それぞれ、対応する最適化コードの例であ
る。ここで、最適化はステップ68に従っている。3つ
のフェッチ・パケットの単一のスロットだけが示され
る。図14Aは最適化されていないコードの例で、第2
のサイクル内のスロット2内のNOP命令を有してい
る。図14Bは最適化コードである。ここで、NOPは
ダミーMPY命令と置き換えられている。結果が宛先レ
ジスタ(Bxx)に置かれたので、ダミー命令はデータ
の保全性に影響を及ぼさない。そして、それはコードセ
グメント内の未使用のレジスタである。ダミー命令が先
行する命令及び次の命令を、多く二重にするので、プロ
セッサ10の内部トグル・アクティビティは減少する。
ステップ68は、ループ・コード・セグメントにとって
最も効果的である。
されていないコード及び対応する最適化コードのもう1
つの例を説明する。ここで、最適化がステップ68に従
っている。この例は、コード・セグメントのループ内に
ある。図14Aにおけるように、スロット2内の図15
Aの最適化されていないコードにおいて、命令はnon
−NOPからNOPまでnon−NOPに対して切り替
えをする。図15Bの最適化コードにおいて、ダミー命
令は間違った条件命令である。間違った条件命令のため
に、機能ユニットから宛先レジスタへの結果の転送は、
常に使用禁止にされる。条件レジスタ(B0)は、ダミ
ー命令の用途に、確保されている。ループに入る前に、
条件レジスタは、いくつかの値にセットされる。図15
A及び15Bの例において、B0はダミー命令レジスタ
のために用いられ、また、ループ・カウンタでもある。
B0がループの最終的なパスまで、最終的なパス以外の
全てに対してゼロでないので、条件命令の結果はA12
へ書き込まれない。最終的なパスに関して、結果はA1
2へ書き込まれる。しかし、A12が先行する命令にお
いて、書き込まれなくて、次の命令内のソースとして、
用いられないので、データの完全性は影響を受けない。
サイクル3において、命令は、コードのオリジナルの関
数であったA12に書き込む。
ダミー命令は、図15A及び15Bの例におけるよう
な、間違った条件を用いているダミー命令である。しか
し、条件レジスタが有効でないときに、いくつかのケー
スにおいて、例えば、代替ダミー命令(例えば図14A
及び14Bのそれ)を用いることができる。ステップ6
8の結果として、より少ないビットは、プログラムメモ
リ12から入来命令ストリーム内の状態を変える。ま
た、より少ないノードは、デコードユニット11cにお
いて、変化する。
ラムメモリ12内のフェッチ・パケットのアドレス・ロ
ケーションを分析することである。例えばループ内にお
けるように、繰り返し実行されるコードのセクションの
ために、プログラムメモリ・アドレスラインに変化して
いるビットの数は、最小にされ得る。
初のフェッチ・パケットがアドレス....0111を
有し、次のフェッチ・パケットがプログラムメモリ12
内のアドレス....1000を有すると仮定する。プ
ログラムメモリ12が最初のパケットへのアクセスから
第2のパケットへのアクセスまで切り換えるごとに、4
つのアドレスビットが変化する。第2のパケットがアド
レス....0110に移動される場合には、1ビット
だけが変化する。
コード・プログラマによって、実行できる。しかし、本
発明のより洗練された実施例において、コード生成ツー
ルについては、テクニックのうちの少なくとも1つは、
自動的に実行される。この種のツールは、特別なテクニ
ックが適用できるコードシーケンスを検出して、そのテ
クニックにより要求される最適化を実行するようにプロ
グラムされる。
のサイクルから次のサイクルまでコードの機能性に影響
を及ぼすことなく達成される。これらのステップは、ス
テップ61、63、64、65及び69を含む。
性に影響を及ぼし得る。これらのステップは、ステップ
67及び68を含む。これらの最適化テクニックのため
に、自動最適化プロセスには、機能性問題を解決するた
めに経験的規則を含むことができる。あるいは、最適化
がプログラマのオプションで可能かもしれないことを示
して、最適化プロセスは、プログラマにメッセージを出
力することもできる。
多様な変更、置換及び修正が添付の請求項に記載の本発
明の精神と範囲から逸脱せずに、作られることが可能で
あると理解されなければならない。
る。 (1) 1つ以上のプロセッサーサイクルの間に、語の各
々における命令が前記プロセッサの異なる機能ユニット
により実行されるように、マルチ命令語を処理するプロ
セッサによる節電使用方法であって:多くの前記命令語
の構文を比較するステップ、サイクルからサイクルま
で、前記命令語のいずれもの2進数表示内のビット変更
の数が、前記命令語の機能性に実質的に影響を及ぼすこ
となくビットを変えて減少されることができるかどうか
を決定するステップ、そして、前記決定ステップの前記
命令語のうちの少なくとも1つを変更するステップを含
む節電使用方法。
決定及び変更ステップは、各前記命令内で機能ユニット
識別子に対して指示され、かつ、前記変更ステップは、
命令を前記命令語内に再配列することにより実行される
節電使用方法。
決定及び変更ステップは、機能ユニット割当てに対して
各前記命令内で指示され、かつ、前記変更ステップは、
他の機能ユニット割当てを有する前記機能ユニット割当
てを置き換えることにより実行される節電使用方法。
決定及び変更ステップは、条件レジスタ割当てに各前記
命令内で指示され、かつ、前記変更ステップは、条件レ
ジスタを再割当てすることにより実行される節電使用方
法。
決定及び変更ステップは、オペランドに各前記命令内で
指示され、かつ、前記変更ステップは、オペランドを再
配列することにより実行される節電使用方法。
決定及び変更ステップは、オペランドに各前記命令内で
指示され、かつ、前記変更ステップは、オペランド・ロ
ケーションを再割当てすることにより実行される節電使
用方法。
決定及び変更ステップは、ノー・オペレーション命令に
指示され、かつ、前記変更ステップは、前記ノー・オペ
レーション命令を前記命令語の1つから他の命令に移動
することにより実行される節電使用方法。
決定及び変更ステップは、ノー・オペレーション命令に
指示され、かつ、前記変更ステップは、ダミー命令を有
する前記ノー・オペレーション命令を置き換えることに
より実行される節電使用方法。
ッサが非常に長い命令語プロセッサである節電使用方
法。
ッサが二重のデーターパス・プロセッサである節電使用
方法。
の各々における全ての命令がメモリーから実質的に同じ
時間でフェッチされるように、前記マルチ命令語は、フ
ェッチ・パケットである節電使用方法。
チ命令語の1つ以上のループの位置を決めるために前記
マルチ命令語をスキャンすること、及び、そこにおい
て、前記比較、決定及び変更ステップは、前記プログラ
ムメモリ・アドレスのいずれもの2進数表示内のビット
変更の数を減らすように指示されることを含む節電使用
方法。
マルチ命令語(20)を用いる他のプロセッサのアセン
ブリーコードを最適化する方法であって、それぞれはプ
ロセッサ(10)の異なる機能ユニット(11d及び1
1e)に実行される命令を含む。命令語(20)は、1
つ以上の符号最適化テクニックにより変更される(図
6)。典型的には、変更はマシンコード内のサイクル・
ツー・サイクル・ビット変更をより少なくする結果をも
たらし、それは電力消費を減少することになる。
ダイヤグラムである。
るフェッチ・パケットの基本フォーマットを例示する。
する。
のプロセッサのための命令符号のマッピングを例示す
る。Bは、図4Aのニーモニックを記述しているテーブ
ルである。
・パケットを例示する。
する。
されていないコードの例を例示する。ここで、最適化は
図6のステップ63により実行される。
されていないコードの例を例示する。ここで、最適化は
図6のステップ63により実行される。
されていないコードの例を例示する。ここで、最適化は
図6のステップ63により実行される。
化されていないコードの例を例示する。ここで、最適化
は図6のステップ64により実行される。
化されていないコードの例を例示する。ここで、最適化
は図6のステップ65により実行される。
ドと共に最適化されていないコードの例を例示する。こ
こで、最適化は図6のステップ65により実行される。
ドと共に最適化されていないコードの例を例示する。こ
こで、最適化は図6のステップ67により実行される。
ドと共に最適化されていないコードの例を例示する。こ
こで、最適化は図6のステップ68により実行される。
ドと共に最適化されていないコードの例を例示する。こ
こで、最適化は図6のステップ68により実行される。
Claims (1)
- 【請求項1】 1つ以上のプロセッサーサイクルの間
に、語の各々における命令が前記プロセッサの異なる機
能ユニットにより実行されるように、マルチ命令語を処
理するプロセッサによる節電使用方法であって:多くの
前記命令語の構文を比較するステップ、 サイクルからサイクルまで、前記命令語のいずれもの2
進数表示内のビット変更の数が、前記命令語の機能性に
実質的に影響を及ぼすことなくビットを変えて減少され
ることができるかどうかを決定するステップ、そして、
前記決定ステップの前記命令語のうちの少なくとも1つ
を変更するステップを含む節電使用方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US6865697P | 1997-12-23 | 1997-12-23 | |
| US068656 | 1997-12-23 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11249896A true JPH11249896A (ja) | 1999-09-17 |
| JP3959194B2 JP3959194B2 (ja) | 2007-08-15 |
Family
ID=22083915
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP36566498A Expired - Fee Related JP3959194B2 (ja) | 1997-12-23 | 1998-12-22 | マルチ命令語プロセッサのための電力低減方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US6195756B1 (ja) |
| EP (1) | EP0926596B1 (ja) |
| JP (1) | JP3959194B2 (ja) |
| DE (1) | DE69838374T2 (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6742131B1 (en) * | 1999-05-03 | 2004-05-25 | Stmicroelectronics S.A. | Instruction supply mechanism |
| JP2005196729A (ja) * | 2003-12-10 | 2005-07-21 | Renesas Technology Corp | コンパイラおよび命令コード出力装置 |
| JP2006004123A (ja) * | 2004-06-17 | 2006-01-05 | Nec Electronics Corp | 最適化装置、最適化方法及びプログラム |
| JP2006286027A (ja) * | 2006-07-28 | 2006-10-19 | Matsushita Electric Ind Co Ltd | コンパイラ装置およびコンパイル方法 |
| JP2007537528A (ja) * | 2004-05-13 | 2007-12-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム |
| JP2014527248A (ja) * | 2011-09-20 | 2014-10-09 | クアルコム,インコーポレイテッド | コンピューティングデバイス用の動的な電力最適化 |
| US9098309B2 (en) | 2011-09-23 | 2015-08-04 | Qualcomm Incorporated | Power consumption optimized translation of object code partitioned for hardware component based on identified operations |
Families Citing this family (46)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5452401A (en) | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
| DE69430018T2 (de) * | 1993-11-05 | 2002-11-21 | Intergraph Corp., Huntsville | Befehlscachespeicher mit assoziativem Kreuzschienenschalter |
| US6535984B1 (en) * | 1998-11-25 | 2003-03-18 | Texas Instruments Incorporated | Power reduction for multiple-instruction-word processors with proxy NOP instructions |
| US6651176B1 (en) * | 1999-12-08 | 2003-11-18 | Hewlett-Packard Development Company, L.P. | Systems and methods for variable control of power dissipation in a pipelined processor |
| US7263567B1 (en) * | 2000-09-25 | 2007-08-28 | Intel Corporation | Method and apparatus for lowering the die temperature of a microprocessor and maintaining the temperature below the die burn out |
| US6721873B2 (en) * | 2000-12-29 | 2004-04-13 | Intel Corporation | Method and apparatus for improving dispersal performance in a processor through the use of no-op ports |
| US7400668B2 (en) | 2001-03-22 | 2008-07-15 | Qst Holdings, Llc | Method and system for implementing a system acquisition function for use with a communication device |
| US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
| US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
| US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
| US7489779B2 (en) | 2001-03-22 | 2009-02-10 | Qstholdings, Llc | Hardware implementation of the secure hash standard |
| US7249242B2 (en) | 2002-10-28 | 2007-07-24 | Nvidia Corporation | Input pipeline registers for a node in an adaptive computing engine |
| US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
| US6577678B2 (en) | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
| GB2375695B (en) * | 2001-05-19 | 2004-08-25 | At & T Lab Cambridge Ltd | Improved power efficency in microprocessors |
| JP3578735B2 (ja) * | 2001-08-02 | 2004-10-20 | 松下電器産業株式会社 | 情報処理装置及び情報処理方法 |
| GB2378538A (en) * | 2001-08-10 | 2003-02-12 | At & T Lab Cambridge Ltd | Saving power in a pipelined processor/memory system by replacing discarded instructions following a branch by a duplicate of the branch instruction |
| US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
| US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
| US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
| US7602740B2 (en) | 2001-12-10 | 2009-10-13 | Qst Holdings, Inc. | System for adapting device standards after manufacture |
| US7215701B2 (en) | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
| US8645954B2 (en) * | 2001-12-13 | 2014-02-04 | Intel Corporation | Computing system capable of reducing power consumption by distributing execution of instruction across multiple processors and method therefore |
| US7403981B2 (en) | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
| US7493375B2 (en) | 2002-04-29 | 2009-02-17 | Qst Holding, Llc | Storage and delivery of device features |
| US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
| US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
| US7093255B1 (en) * | 2002-05-31 | 2006-08-15 | Quicksilver Technology, Inc. | Method for estimating cost when placing operations within a modulo scheduler when scheduling for processors with a large number of function units or reconfigurable data paths |
| JP2005535045A (ja) * | 2002-08-05 | 2005-11-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Vliw命令を処理するためのプロセッサおよび方法 |
| US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
| US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
| WO2004040394A2 (en) * | 2002-11-01 | 2004-05-13 | Mtel Limited | Method and system for efficient character-based processing |
| US7478031B2 (en) | 2002-11-07 | 2009-01-13 | Qst Holdings, Llc | Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information |
| US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
| US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
| JP4412905B2 (ja) * | 2003-01-28 | 2010-02-10 | パナソニック株式会社 | 低電力動作制御装置、およびプログラム最適化装置 |
| US7609297B2 (en) | 2003-06-25 | 2009-10-27 | Qst Holdings, Inc. | Configurable hardware based digital imaging apparatus |
| CN100343868C (zh) * | 2004-04-28 | 2007-10-17 | 英华达(上海)电子有限公司 | 避免掌上型电脑耗电的方法 |
| US7480809B2 (en) * | 2004-10-15 | 2009-01-20 | Genesis Microchip Inc. | Reducing power consumption of a microprocessor |
| US7882380B2 (en) * | 2006-04-20 | 2011-02-01 | Nvidia Corporation | Work based clock management for display sub-system |
| US8189792B2 (en) * | 2007-12-28 | 2012-05-29 | Intel Corporation | Method and apparatus for performing cryptographic operations |
| US8726281B2 (en) | 2009-08-31 | 2014-05-13 | Imec | Method and system for improving performance and reducing energy consumption by converting a first program code into a second program code and implementing SIMD |
| US9544133B2 (en) * | 2009-12-26 | 2017-01-10 | Intel Corporation | On-the-fly key generation for encryption and decryption |
| TWI432953B (zh) | 2010-12-09 | 2014-04-01 | Ind Tech Res Inst | 具電源管理之超長指令處理器以及其電源管理裝置與方法 |
| AU2016228166A1 (en) * | 2016-09-13 | 2018-03-29 | Canon Kabushiki Kaisha | Visualisation for guided algorithm design to create hardware friendly algorithms |
| JP2024104948A (ja) * | 2023-01-25 | 2024-08-06 | 株式会社Preferred Networks | プロセッサ及びプロセッサの制御方法 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6145354A (ja) | 1984-08-10 | 1986-03-05 | Nec Corp | マイクロプロセツサ |
| JP3497516B2 (ja) * | 1992-02-20 | 2004-02-16 | 株式会社ルネサステクノロジ | データプロセッサ |
| EP0627100B1 (en) * | 1992-12-23 | 2000-01-05 | Centre Electronique Horloger S.A. | Multi-tasking low-power controller |
| US5584031A (en) | 1993-11-09 | 1996-12-10 | Motorola Inc. | System and method for executing a low power delay instruction |
| US5557557A (en) | 1994-10-04 | 1996-09-17 | Texas Instruments Incorporated | Processor power profiler |
| JP3494813B2 (ja) * | 1996-07-19 | 2004-02-09 | 株式会社東芝 | マイクロプロセッサの消費電力見積もり方法 |
| US6125334A (en) * | 1997-05-02 | 2000-09-26 | Texas Instruments Incorporated | Module-configurable full-chip power profiler |
| US6002878A (en) * | 1997-07-01 | 1999-12-14 | Motorola, Inc. | Processor power consumption estimator that using instruction and action formulas which having average static and dynamic power coefficients |
-
1998
- 1998-12-11 EP EP98310182A patent/EP0926596B1/en not_active Expired - Lifetime
- 1998-12-11 DE DE69838374T patent/DE69838374T2/de not_active Expired - Lifetime
- 1998-12-15 US US09/212,507 patent/US6195756B1/en not_active Expired - Lifetime
- 1998-12-22 JP JP36566498A patent/JP3959194B2/ja not_active Expired - Fee Related
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6742131B1 (en) * | 1999-05-03 | 2004-05-25 | Stmicroelectronics S.A. | Instruction supply mechanism |
| JP2005196729A (ja) * | 2003-12-10 | 2005-07-21 | Renesas Technology Corp | コンパイラおよび命令コード出力装置 |
| JP2007537528A (ja) * | 2004-05-13 | 2007-12-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム |
| JP2006004123A (ja) * | 2004-06-17 | 2006-01-05 | Nec Electronics Corp | 最適化装置、最適化方法及びプログラム |
| JP2006286027A (ja) * | 2006-07-28 | 2006-10-19 | Matsushita Electric Ind Co Ltd | コンパイラ装置およびコンパイル方法 |
| JP2014527248A (ja) * | 2011-09-20 | 2014-10-09 | クアルコム,インコーポレイテッド | コンピューティングデバイス用の動的な電力最適化 |
| US9098309B2 (en) | 2011-09-23 | 2015-08-04 | Qualcomm Incorporated | Power consumption optimized translation of object code partitioned for hardware component based on identified operations |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69838374D1 (de) | 2007-10-18 |
| EP0926596A2 (en) | 1999-06-30 |
| US6195756B1 (en) | 2001-02-27 |
| DE69838374T2 (de) | 2008-05-29 |
| EP0926596A3 (en) | 2001-05-23 |
| EP0926596B1 (en) | 2007-09-05 |
| JP3959194B2 (ja) | 2007-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3959194B2 (ja) | マルチ命令語プロセッサのための電力低減方法 | |
| US6442701B1 (en) | Power saving by disabling memory block access for aligned NOP slots during fetch of multiple instruction words | |
| JPH11316690A (ja) | データプロセッサおよびコンピュータプログラム最適化方法 | |
| US5692169A (en) | Method and system for deferring exceptions generated during speculative execution | |
| Kim et al. | An instruction set and microarchitecture for instruction level distributed processing | |
| CA2338008C (en) | Method and apparatus for identifying splittable packets in a multithreaded vliw processor | |
| KR100284789B1 (ko) | N-지로 분기를 갖는 슈퍼스칼라 또는 초장 명령어 워드컴퓨터에서 다음 명령어를 선택하는 방법 및 장치 | |
| US5941983A (en) | Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues | |
| US8200987B2 (en) | Dynamic object-level code translation for improved performance of a computer processor | |
| JP3832623B2 (ja) | マルチスレッドvliwプロセッサにおいて機能単位を割り当てるための方法および装置 | |
| US6553502B1 (en) | Graphics user interface for power optimization diagnostics | |
| US6950926B1 (en) | Use of a neutral instruction as a dependency indicator for a set of instructions | |
| KR100940956B1 (ko) | 다중 스레드 초장 명령어 프로세서 및 명령 처리 방법 | |
| US6535984B1 (en) | Power reduction for multiple-instruction-word processors with proxy NOP instructions | |
| JP3777541B2 (ja) | マルチスレッドvliwプロセッサにおけるパケット分割の方法および装置 | |
| US6314510B1 (en) | Microprocessor with reduced context switching overhead and corresponding method | |
| US6324639B1 (en) | Instruction converting apparatus using parallel execution code | |
| US6064818A (en) | Straight path optimization for compilers | |
| CN1318957C (zh) | 在程序控制流中实现改变的装置和方法 | |
| US7290157B2 (en) | Configurable processor with main controller to increase activity of at least one of a plurality of processing units having local program counters | |
| US6895494B1 (en) | Sub-pipelined and pipelined execution in a VLIW | |
| Abnous et al. | Architectural design and analysis of a VLIW processor | |
| US8095780B2 (en) | Register systems and methods for a multi-issue processor | |
| US6704855B1 (en) | Method and apparatus for reducing encoding needs and ports to shared resources in a processor | |
| Finlayson et al. | Improving processor efficiency by statically pipelining instructions |
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: 20060627 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060927 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061002 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061128 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070508 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070514 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100518 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |