JP2001236226A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JP2001236226A
JP2001236226A JP2001006832A JP2001006832A JP2001236226A JP 2001236226 A JP2001236226 A JP 2001236226A JP 2001006832 A JP2001006832 A JP 2001006832A JP 2001006832 A JP2001006832 A JP 2001006832A JP 2001236226 A JP2001236226 A JP 2001236226A
Authority
JP
Japan
Prior art keywords
instruction
instructions
block
profile
microprocessor
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
Application number
JP2001006832A
Other languages
English (en)
Other versions
JP5133476B2 (ja
Inventor
Gilbert Laurenti
ローランティ ジルベール
Olivier Morchipont
モルシポン オリバー
Laurent Ichard
イシャール ローラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments France SAS
Texas Instruments Inc
Original Assignee
Texas Instruments France SAS
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments France SAS, Texas Instruments Inc filed Critical Texas Instruments France SAS
Publication of JP2001236226A publication Critical patent/JP2001236226A/ja
Application granted granted Critical
Publication of JP5133476B2 publication Critical patent/JP5133476B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

(57)【要約】 【課題】 ディジタル信号プロセッサのようなマイクロ
プロセッサを含むディジタル・システムで、電力消費を
さらに減少するための、ディジタル・システムの操作方
法を提供する。 【解決手段】 マイクロプロセッサ(100)の一部を
複数個の区画に区画分けする。一連の命令がマイクロプ
ロセッサの命令パイプライン内で実行される(140
4、1406)。局所繰返し命令に応答して(140
6)一連の命令内の命令のブロックが繰返し実行される
(1416、1422)。命令のブロックは最初の命令
と最後の命令とを有する。命令のブロックを実行する前
のアセンブリ段階(1410)か、又は監視回路による
ループの第1繰返し時(1412)のどちらかで、複数
個の区画の内少なくとも1つが命令のブロックを実行す
るのに必要ないことの決定が行なわれる。電力消散を減
少するために命令のブロックの繰返し実行時に少なくと
も一つの識別された区画の動作が禁止される(141
4)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はディジタル・マイク
ロプロセッサに関係し、特に専用ではないが、プログラ
ム流れを繰返すよう設定可能なマイクロプロセッサに関
係している。
【0002】
【従来の技術】多数の異なる型式のマイクロプロセッサ
が公知であり、中でもマイクロプロセッサは1例であ
る。例えば、ディジタル信号プロセッサ(DSP)は、
特にモバイル処理応用のような特定の応用に広範囲に使
用されている。DSPは、関連する応用の性能を最適化
するよう標準的に構成され、これを実施するためより特
殊化された実行装置と命令組を使用している。専用では
ないが、特にモバイル電気通信応用のような応用例で
は、電力消費を出来る限り低くしつつDSP性能をさら
に増強して提供することが望ましい。
【0003】DSP又はマイクロプロセッサでは、プロ
グラム・メモリに記憶されたマシン読取り可能命令は、
プロセッサが演算又は機能を実行するためプロセッサに
より連続的に実行される。マシン読取り可能命令の列は
「プログラム」と呼ばれる。プログラム命令は連続的に
実行されるのが標準であるが、ある種の命令はプログラ
ム順序を中断させ、プログラム流れが命令のブロックを
繰返すことを可能とする。このような命令ブロックの繰
返しは「ルーピング」として知られ、命令のブロックは
「ループ」又は「ブロック」として知られている。
【0004】電力消費を減少するため、多くのプロセッ
サは、非活動時にクロックが低下する、又はある種の周
辺装置を不要の時にオフにする低電力モードを備える。
割込みが発生して全動作を再開するまでプロセッサは
「アイドル」モード又は「スリープ」モードに入る。
【0005】
【発明が解決しようとする課題】本発明の教示はディジ
タル・システムと、例えば専用ではないが、ディジタル
信号プロセッサのようなマイクロプロセッサによる電力
消費をさらに減少するための、ディジタル・システムの
操作方法を開示する。
【0006】
【課題を解決するための手段】特に、マイクロプロセッ
サを含むディジタル・システムを操作する方法を開示す
る。マイクロプロセッサの一部が複数個の区画に区分さ
れる。マイクロプロセッサはマイクロプロセッサの命令
パイプライン内で一連の命令を実行し、一連の命令内の
命令のブロックを繰返し実行する。複数個の区画の内の
少なくとも1つが命令のブロックを実行するために必要
ないことが決定される。電力消散を減少するため、命令
のブロックが繰返し実行されている間不要な区画の動作
は禁止される。
【0007】命令のブロックを実行するのに必要ない区
画を示す繰返しプロファイル・パラメータが与えられ
る。繰返しプロファイル・パラメータは命令のブロック
の前に実行される命令により与えられることが望まし
い。繰返しプロファイル・パラメータは、命令のブロッ
クの最初の繰返しの実行を監視し、これにより繰返しプ
ロファイル・パラメータを得ることにより決定してもよ
い。内部ループと外部ループに別々の繰返しプロファイ
ル・パラメータを与えてもよい。
【0008】ISRの実行時にマイクロプロセッサの全
ての区画が付勢されるよう区画禁止をマスクし、ISR
の実行を完了した後命令のブロックの繰返し実行に復帰
した時区画禁止のアンマスクを発生させる割込みが命令
のブロックの実行時に与えられることが望ましい。
【0009】マイクロプロセッサの各種の部分が区画分
け可能であり、命令のブロックの実行時に部分的に禁止
される。例えば、命令デコーダは命令の群に従って区画
分けされる。命令レジスタは各種の命令長に従って区画
分けされる。命令パイプラインは並列命令実行に従って
区画分けされる。マイクロプロセッサの一部はデータ型
式に従って区画分けされる。アドレス発生回路はアドレ
ス・モードに従って区画分けされる。命令のブロックの
実行時に不要な場合、状態回路は禁止される。
【0010】一連の命令を作成するためソースコード・
プログラムをアセンブルする方法も開示される。一連の
命令は、最初の命令と最後の命令を含む命令の繰返し可
能なブロックを有する。各命令の項目がその命令を含む
命令群を定義する群パターンを含むように、選択したマ
イクロプロセッサにより実行可能な各命令に対して項目
を有する命令表が作成される。ソースコードは一連の命
令に変換され、プロローグ命令と関係する命令の繰返し
ブロックに対して最初の命令と最後の命令が決定され
る。命令のブロック中の各命令を表す命令表から選択さ
れた複数個の群パターンを組合せて繰返しプロファイル
・パラメータを形成し、繰返しプロファイル・パラメー
タは一連の命令のプロローグ命令に関係付けられる。
【0011】いくつかの命令群に対する命令デコーダの
区画分けは、命令ループの実行時に1つ以上のデコーダ
区画をアイドルのままにすることを可能とする。結果と
して、マイクロプロセッサによる電力消費の対応した減
少がある。
【0012】それ故、本願の教示は無線通信装置のよう
な、携帯装置での使用に特に適している。標準的にこれ
らの無線通信装置は、液晶表示又はTFT表示部のよう
な表示部と、通信装置へデータを入力するキーパッド又
はキーボードを含むユーザー・インターフェースを含
む。さらに、無線通信装置はまた、無線電話網等と無線
通信するアンテナも含む。一例として、添付図面に図示
した例示実施例を参照として、本発明を詳細に説明す
る。
【0013】
【発明の実施の形態】本願の教示は、例えば応用特定集
積回路(ASIC)に実装された、ディジタル信号プロ
セッサ(DSP)に特定の応用を見出すが、これらの教
示はその他の形式のマイクロプロセッサにも応用例を見
出してもよい。
【0014】図1はディジタル信号プロセッサ(「DS
P」)であるマイクロプロセッサ10のブロック線図で
ある。明瞭にするため、図1は本願の教示に適切なマイ
クロプロセッサ10の部分のみを図示している。DSP
の一般的構成の詳細は公知であり、他で容易に見出され
るであろう。例えば、フレデリック・ボートー他に発行
された米国特許第5,072,418号はDSPを詳細に記載し
ている。ゲーリー・スウォボダ他に発行された米国特許
第5,329,471号はDSPを如何に検査しエミュレートす
るかを詳細に記載している。本願により開示される実施
例に適切なマイクロプロセッサ10の部分の詳細は、マ
イクロプロセッサ技術の当業者がこれらを作成し使用可
能とするよう以下に十分詳細に説明されている。
【0015】プロセッサの部分の区画分けは、命令ルー
プの実行時に1つ以上の区画がアイドルのままでいるこ
とを可能とする。結果として、マイクロプロセッサによ
る電力消費に対応する減少がある。それ故、開示の実施
例は、無線通信装置のような携帯装置の使用に特に適し
ている。本教示の特徴から恩恵を受けるいくつかの例示
システムは、米国特許第5,072,418号、特に米国特許第
5,072,418号の図2−18と関連して説明される。電力
消費を減少するため本教示の特徴を含むマイクロプロセ
ッサは、米国特許第5,072,418号に記載されたシステム
をさらに改良するために使用可能である。前記のシステ
ムは、以下には限定されないが、産業プロセス制御。自
動車システム、モーター制御、ロボット制御システム、
衛星電気通信システム、エコー抑止システム、モデム、
ビデオ映像システム、音声認識システム、暗号化付きボ
コーダ・モデム・システム、等を含む。
【0016】図2は、一体化キーボード12と表示部1
4付きの移動電話のような、移動電気通信装置で本教示
の特徴を使用するディジタル・システムの例示実装を図
示する。本教示の特徴を実施したディジタル信号プロセ
ッサ10は、適切な場合にはキーボード・アダプタ(図
示せず)を介してキーボード12に、また適切な場合に
は表示アダプタ(図示せず)を介して表示部14に、さ
らに無線周波数(RF)回路16に接続された集積回路
40にパッケージ化される。RF回路16はアンテナ1
8に接続される。集積回路40は表面実装用の複数個の
接点を有する。しかしながら、集積回路はその他の構
成、例えば零挿入力ソケットに取付けるための回路の底
面の複数個のピン、又は実際任意のその他の適切な構成
を含み得る。
【0017】本教示によるプロセッサの例の基本アーキ
テクチャを以下に説明する。
【0018】ここで再び図1を参照すると、マイクロプ
ロセッサ10は中央処理装置(CPU)100とプロセ
ッサ・バックプレーン20を含む。本実施例では、プロ
セッサは応用特定集積回路(ASIC)に実装されたデ
ィジタル信号プロセッサ(DSP)である。
【0019】図1に示すように、中央処理装置100は
プロセッサ・コア102とプロセッサ・コア102をプ
ロセッサ・コア外部のメモリ装置とインターフェースす
るメモリ・インターフェース、又は管理装置104を含
む。
【0020】プロセッサ・バックプレーン20は、マイ
クロプロセッサのメモリ管理装置104が接続されるバ
ックプレーン・バス22を含む。バックプレーン・バス
22には、命令キャッシュ・メモリ24、周辺装置26
及び外部インターフェース28も接続される。
【0021】その他の実施例では、別の実装例が異なる
構成及び/又は異なる技術を使用してもよいことも認め
られる。例えば、CPU100単独でプロセッサ10を
構成し、プロセッサ・バックプレーン20をこれから分
離することも可能である。例えば、CPU100は、バ
ックプレーン・バス22、周辺及び外部インターフェー
スをサポートするバックプレーン20から分離して取付
けたDSPも可能である。例えば、マイクロプロセッサ
100はDSP以外のマイクロプロセッサも可能で、A
SIC以外の技術で実装することも可能である。処理エ
ンジンを含むマイクロプロセッサ、又はプロセッサは1
個以上の集積回路に実装可能である。
【0022】図3は処理コア102の実施例の基本構造
を図示する。図示したように、処理コア102は4つの
要素、すなわち命令バッファ装置(I装置)106と3
個の実行装置とを含む。実行装置は、命令バッファ装置
(I装置)106からデコードされた命令を実行し、プ
ログラム流れを制御監視する、プログラム流れ装置(P
装置)108、アドレス・データ流れ装置(A装置)1
10及びデータ計算装置(D装置)112である。
【0023】図4は処理コア102のP装置108、A
装置110及びD装置112をさらに詳細に図示し、処
理コア102の各種要素を接続するバス構造を示す。P
装置108は、例えば、ループ制御回路、GoTo/分
岐制御回路および繰返しカウンタ・レジスタや割込みマ
スク、フラッグ又はベクトル・レジスタのようなプログ
ラム流れを制御し監視する各種のレジスタを含む。P装
置108は汎用データ書込みバス(EB、FB)13
0、132、データ読取りバス(CB、DB)134、
136及びアドレス定数バス(KAB)142に結合さ
れる。さらに、P装置108はCSR、ACB及びRG
Dとラベル付けした各種のバスを介してA装置110と
D装置112内の副装置に結合される。
【0024】図4に図示するように、本実施例では、A
装置110はレジスタファイル30、データアドレス発
生副装置(DAGEN)32及び算術論理装置(AL
U)34を含む。A装置レジスタファイル30は各種の
レジスタを含み、この中には16ビット・ポインタ・レ
ジスタ(AR0−AR7)とアドレス発生と共にデータ
流れにも使用してもよいデータ・レジスタ(DR0−D
R3)がある。さらに、レジスタファイルは16ビット
環状バッファ・レジスタと7ビット・データページ・レ
ジスタを含む。汎用バス(EB、FB、CB、DB)1
30、132、134、136と共に、データ定数バス
140とアドレス定数バス142がA装置レジスタファ
イル30に結合される。A装置レジスタファイル30
は、各々反対方向に動作する単方向バス144と146
によりA装置DAGEN装置32に結合される。DAG
EN装置32は、例えばマイクロプロセッサ100内の
アドレス発生を制御し監視する16ビットX/Yレジス
タと係数及びスタックポインタ・レジスタを含む。
【0025】A装置110はまた、加算、減算及びAN
D、OR及びXOR論理演算のようなALUと標準的に
関係する機能と共にシフタ機能を含むALU34も含
む。ALU34も汎用バス(EB、DB)130、13
6と命令定数データバス(KDB)140に結合され
る。A装置ALUはP装置108レジスタファイルから
レジスタ内容を受取るPDAバスによりP装置108に
結合される。ALU34はまたアドレス及びデータ・レ
ジスタ内容を受取るためバスRGAとRGBにより、か
つレジスタファイル30のアドレス及びデータ・レジス
タを転送するためバスRGDによりA装置レジスタファ
イル30にも結合される。
【0026】図示したように、D装置112はD装置レ
ジスタファイル36、D装置ALU38、D装置シフタ
40及び2個の乗算及びアキュムレート装置(MAC
1、MAC2)42と44を含む。D装置レジスタファ
イル36、D装置ALU38及びD装置シフタ40はバ
ス(EB、FB、CB、DB及びKDB)130、13
2、134、136及び140に結合され、MAC装置
42と44はバス(CB、DB、KDB)134、13
6、140とデータ読取りバス(BB)144に結合さ
れる。D装置レジスタファイル36は40ビット・アキ
ュムレータ(AC0−AC3)と16ビット転移レジス
タを含む。D装置112は40ビット・アキュムレータ
に加えてソース又は目的地レジスタとしてA装置110
中の16ビット・ポインタ及びデータレジスタも利用可
能である。D装置レジスタファイル36はアキュムレー
タ書込みバス(ACW0、ACW1)146、148を
通してD装置ALU38とMAC1&2 42、44か
ら、及びアキュムレータ書込みバス(ACW1)148
を通してD装置シフタ40からデータを受取る。データ
はアキュムレータ読取りバス(ACR0、ACR1)1
50、152を通してD装置レジスタファイル・アキュ
ムレータからD装置ALU38、D装置シフタ40及び
MAC1&2 42、44へ読取られる。D装置ALU
38とD装置シフタ40もEFC、DRB、DR2及び
ACBとラベル付けした各種のバスを介してA装置10
8の副装置に結合される。
【0027】ここで図5を参照すると、32語命令バッ
ファ・キュー(IBQ)502を含む命令バッファ装置
106が図示されている。IBQ502は8ビット・バ
イト506に論理的に分割される、32X16ビット・
レジスタ504を含む。命令は32ビット・プログラム
・バス(PB)122を介してIBQ502に到着す
る。命令は局所書込みプログラム・カウンタ(LWP
C)532により指示された位置へ32ビット・サイク
ルでフェッチされる。LWPC532はP装置108に
位置するレジスタに含まれる。P装置108は又局所読
取りプログラム・カウンタ(LRPC)536レジス
タ、及び書込みプログラム・カウンタ(WPC)530
と読取りプログラム・カウンタ(RPC)534レジス
タも含む。LRPC536は命令デコーダ512と51
4にロードされる次ぎの命令又は複数命令のIBQ50
2中の位置を指す。すなわち、LRPC534はデコー
ダ512、514に現在ディスパッチされている命令の
IBQ502中の位置を指す。WPCはパイプライン用
の命令コードの次ぎの4バイトの開始のプログラム・メ
モリ中のアドレスを指す。IBQへの各フェッチに対し
て、命令境界に係らずプログラム命令からの次ぎの4バ
イトがフェッチされる。RPC534はデコーダ512
と514に現在ディスパッチされている命令のプログラ
ム・メモリ中のアドレスを指す。
【0028】命令は48ビット語に形成されて命令レジ
スタ522にロードされ、それからマルチプレクサ52
0と521を介して48ビット・バス516を通して命
令デコーダ512、514にロードされる。命令は48
ビット以外を含む語に形成してもよく、本教示は上述し
た特定の実施例に限定されないことは通常の当業者には
明らかである。
【0029】任意の1命令サイクル時に、バスは最大2
命令、デコーダ当り1つをロード可能である。命令の組
合せは、48ビット・バス上に適合する、任意の形式の
組合せ、8、16、24、32、40及び48ビットで
よい。1命令のみが1サイクル時にロード可能である場
合、デコーダ1、512がデコーダ2、514に優先し
てロードされる。次いで各命令は、これを実行し、命令
又は演算が実行されるべきデータをアクセスするために
各機能装置に転送される。命令デコーダに渡される前
に、命令はバイト境界に整合される。整合はそのデコー
ド時に前の命令に得られた形式を基にして行なわれる。
バイト境界による命令の整合と関係する多重化はマルチ
プレクサ520と521で実行される。
【0030】プロセッサ・コア102は7段命令実行パ
イプラインを通して命令を実行し、その各段を以下に図
6を参照して説明する。
【0031】パイプラインの第1段はPRE−FETC
H(P0)段202で、この段ではメモリ・インターフ
ェース又はメモリ管理装置104のアドレスバス(PA
B)118上のアドレスをアサートすることにより次ぎ
のプログラム・メモリ位置がアドレスされる。
【0032】次ぎの段、FETCH(P1)段204で
は、プログラム・メモリが読取られ、I装置106はメ
モリ管理装置104からPBバス122を介して充填さ
れる。
【0033】PRE−FETCHとFETCH段時には
パイプラインは割込可能で連続プログラム流れを切断
し、例えば分岐命令に対してプログラム・メモリ中の他
の命令を指すことが可能であるという点で、PRE−F
ETCHとFETCH段はパイプライン段の残りから分
離している。
【0034】次いで第3段、DECODE(P3)20
6で命令バッファの次ぎの命令がデコーダ512/51
4にディスパッチされ、ここで命令はデコードされその
命令を実行する実行装置、例えばP装置108、A装置
110又はD装置112へディスパッチされる。デコー
ド段206は、命令の種類を指示する第1部分、命令の
形式を指示する第2部分及び命令のアドレシング・モー
ドを指示する第3部分を含む命令の少なくとも1部をデ
コードする段階を含む。
【0035】次ぎの段はADDRESS(P3)208
であり、ここで命令に使用されるデータのアドレスが計
算されるか、又は命令がプログラム分岐又はジャンプを
必要とする場合、新たなプログラム・アドレスが計算さ
れる。各計算は各々A装置又はP装置108で発生す
る。
【0036】ACCESS(P4)段210では、読取
りオペランドのアドレスが出力され、Xmem間接アド
レシング・モードによりDAGEN Xオペレータでア
ドレスが発生されたメモリ・オペランドが次いで間接ア
ドレスされたXメモリ(Xmem)から読み出される。
【0037】パイプラインの次ぎの段はREAD(P
5)段212で、ここでYmem間接アドレシング・モ
ードによりDAGEN Yオペレータで、又は係数アド
レス・モードによりDAGEN Cオペレータでアドレ
スが発生された、メモリ・オペランドが読取られる。命
令の結果を書込むべきメモリ位置のアドレスが出力され
る。
【0038】2重アクセスの場合、読取りオペランドは
Y路で、書込みオペランドはX路でも発生可能である。
【0039】最後に、A装置110又はD装置112の
どちらかで命令が実行される実行EXEC(P6)段2
14がある。次いで結果はデータ・レジスタ又はアキュ
ムレータに記憶されるか、又は読取り/変更/書込み又
はストア命令でメモリに書込まれる。さらに、EXEC
段時にアキュムレータのデータにシフト演算が実行され
る。
【0040】パイプライン・プロセッサの動作の基本原
理を図7を参照して以下に説明する。図7から分かるよ
うに、第1命令302に対して、連続するパイプライン
段が時間期間T1−T7上で発生する。各時間期間はプロ
セッサ・マシン・クロックのクロック・サイクルであ
る。期間T2に第2命令がパイプラインに入ることが可
能である、何故なら前の命令は今や次ぎのパイプライン
段へ移動しているからである。命令3、306に対し
て、PRE−FETCH段202は時間T3で発生す
る。7段パイプラインの図7から分かるように、全体で
7命令が同時に処理されてもよい。7命令302−31
4全てに対して、図7はこれら全てが時間T7で処理中
であることを示す。このような構造は命令の処理にある
形式の並列性を付与する。
【0041】図8に示すように、開示実施例は、24ビ
ット・アドレスバス114と両方向16ビット・データ
バス116とを介して外部メモリ装置(図示せず)に結
合されているメモリ管理装置104を含む。さらに、メ
モリ管理装置104は24ビット・アドレスバス118
と32ビット両方向データバス120とを介してプログ
ラム記憶メモリ(図示せず)に結合される。メモリ管理
装置104はまた32ビット・プログラム読取りバス
(PB)122を介してプロセッサ・コア102のI装
置106にも結合される。P装置108、A装置110
及びD装置112はデータ読取り及びデータ書込みバス
と対応するアドレスバスとを介してメモリ管理装置10
4に結合される。P装置108はさらにプログラム・ア
ドレスバス128にも結合される。
【0042】特に、P装置108は24ビット・プログ
ラム・アドレスバス128、2本の16ビット・データ
書込みバス(EB、FB)130、132、及び2本の
16ビット・データ読取りバス(CB、DB)134、
136によりメモリ管理装置104に結合される。A装
置110は2本の24ビット・データ書込みアドレスバ
ス(EAB、FAB)160、162、2本の16ビッ
ト・データ書込みバス(EB、FB)130,132、
3本のデータ読取りアドレスバス(BAB、VAB、D
AB)164、166、168及び2本の16ビット・
データ読取りバス(CB、DB)134、136を介し
てメモリ管理装置104に結合される。D装置112は
2本のデータ書込みバス(EB、FB)130,132
と3本のデータ読取りバス(BB、CB、DB)14
4、134、136とを介してメモリ管理装置104に
結合される。
【0043】図8は、例えば分岐命令を転送するため、
124でI装置106からP装置108へ命令の引渡し
を表している。さらに、図8は126と128で各々I
装置106からA装置110へ、そしてD装置112へ
のデータの引渡しを表している。
【0044】プロセッサの各種の特徴を表1に要約す
る。
【表1】
【0045】マイクロプロセッサは、命令のブロックを
通して繰り返しルーピングを提供する、局所繰返し命令
に応答するよう設定される。局所繰返し命令は16ビッ
ト命令で、演算コード;並列付勢ビット;及びオフセッ
ト(6ビット)を含む。演算コードは局所命令として命
令を定義し、マイクロプロセッサにオフセットと演算コ
ード拡張を期待するよう促す。記載した実施例では、オ
フセットは55の最大値を有する。しかしながら、これ
はループ寸法が55バイトに限定されることを意味しな
い。実際、このオフセットはブロック繰返し終了アドレ
スと開始アドレスとの間の差を指定し、開始アドレスは
第1命令又は命令対のアドレスであり、終了アドレスは
最後の命令又は命令対の最後の命令のアドレスである。
それ故、最大ループ寸法は(55+「最終命令の寸
法」)となり、これは61バイト以下である。他の実施
例では、例えば、異なる寸法の命令バッファ・キューに
従って、オフセット及びループ寸法を大きく又は小さく
してもよい。
【0046】再び図5を参照すると、局所ループ命令が
デコードされると、局所ループの開始アドレス、すなわ
ち局所ループ命令アドレス後のアドレスが、例えばP装
置108に配置されているブロック繰返し開始アドレス
0(RSA0)レジスタに記憶される。ループの最初の通
過後に、読取りプログラム・カウント(RPC)はルー
プに再入するためRSA0の内容をロードされる。局所
ループの最後の命令の位置はオフセットを用いて計算さ
れ、その位置は、例えばP装置108にこれも配置して
もよいブロック繰返し終了アドレス0(REA0)に記憶
される。2個の繰返し開始アドレス・レジスタと2個の
繰返し終了アドレス・レジスタ(RSA 0550、RS
1551、REA0、REA1)がネストされたループ
用に提供される。2より大きいネスト・レベルに対して
は、先行する開始/終了アドレスはスタックレジスタに
プッシュされる。これら4個のレジスタに加えて、ブロ
ック繰返し制御回路も2個のブロック繰返しカウント
(BRC0/BRC1)レジスタと関係する制御回路と
を含む。
【0047】標準的には、DSPプログラム・コードは
ループの集中的繰返しに起因する相当量のプロセッサ実
行サイクルを生じる。本実施例では、これらのループの
大部分は、コードが命令バッファから直接実行され外部
メモリからのフェッチは減勢されている「局所繰返し」
として管理可能である。これは図18を参照してより詳
細に説明される。これらの局所繰返しループはアルゴリ
ズムの性質により駆動される限定数の命令を含むため、
電力消費を最小化するために全機能装置又は機能装置の
1つ以上の区画又は制御回路を選択的に減勢する機会が
ある。これは、コンパイル/アセンブリ過程時又はマイ
クロプロセッサ内で回路を監視することによるループの
第1繰返し時に、命令のブロック繰返し本体をプロファ
イルすることにより実施可能である。
【0048】本発明の実施例のマイクロプロセッサは局
所繰返し命令とIBQ内に完全には適合不可能であるブ
ロック用の一般ブロック繰返し命令の両方を有する。大
きな繰返しブロックはハードウェア・リソースの限定さ
れた組を使用する可能性が小さいため、繰返しループ・
プロファイリングは局所繰返し命令と関係する。しかし
ながら、本発明の特徴は、局所繰返しそれ自体を含ま
ず、例えば一般ブロック繰返し命令のみを有する実施例
にも有用である。そのような実施例では、例えばブロッ
ク長を決定し短いブロックのみに繰返しプロファイリン
グを起動するよう検査を実施可能である。
【0049】アセンブラがプロファイリングを実行する
時、ブロック内の命令の解析を基に繰返しプロファイル
・パラメータが形成され、即時オペランドとして局所ブ
ロック命令に添付される。標準的には、減勢可能である
選択区画を指定するために余分な1バイトで十分であ
る。
【0050】監視ハードウェアがプロファイリングを実
施する時、命令のブロックの第1繰り返しの実行から命
令のそのブロックを実行するのに必要なハードウェア・
リソースが決定される。次いで第2から最後の繰返しま
で不用なハードウェアと関係する制御デコード論理部が
減勢、又は禁止可能である。
【0051】図9はプロセッサの命令組内の群分けの図
である。本発明の特徴は、命令デコーダが命令群を基に
多数の区画に区画分け可能である点である。例えば、図
9では5命令群、901−905の命令組900が図示
されている。繰返しブロック内で使用される命令に応じ
て、1つ以上の命令群が表示されなくともよい。例え
ば、第1繰返しループ時には、命令のブロックは群90
2と904内のみの命令から構成される。群901、9
03と905内の命令は使用されない。それ故、デコー
ドされる必要のないこれらの未使用命令群又はアドレシ
ング・モードと関係するデコード論理部は、それ故命令
のこの第1ブロックの繰返し実行時に減勢される。以後
の繰返しループは、異なる命令群が表示されない命令の
ブロックを有することもある。これらの異なる未使用命
令群と関係する異なるデコード論理部はそれ故以後の命
令のブロックの繰返し実行時に減勢される。この方式
は、デコード・ハードウェアにより見られる動的な命令
組を最小に保持しつつ、柔軟性とコード寸法最適化をコ
ード化する大規模DSP命令組のトレードオフを可能と
する。
【0052】本発明の実施例のプロセッサ内では、繰返
しループ内で使用を許可されていない、goto、call、sw
itch、intr(ソフトウェア割込み)、trap、reset、及
びidleを含む、制御流れ命令の組が定義される。局所ル
ープでは本質的に不正である制御流れ命令はループの実
行時にはデコードされる必要はない。それ故、この命令
組を別の区画に配置するよう命令デコード・ハードウェ
アを区画分けすることにより、ブロック繰返しプロファ
イル・パラメータに係らず局所繰返しループ実行時に相
当量のゲートを停止可能である。
【0053】例えば、本発明の別の実施例は繰返しプロ
ファイル・パラメータのサポートを提供しない;しかし
ながら、命令がパイプライン中で実行される間命令デコ
ーダの残りの部分が命令のブロックをデコードしている
間、命令のブロックを繰返し実行する段階時に命令の本
質的に禁止されている群に対応する命令デコーダの区画
の動作を禁止することにより、電力消費を減少できる。
【0054】表2は、本実施例のプロセッサの局所繰返
し命令に添付される繰返しプロファイル・パラメータの
命令コード化を図示する。
【表2】 表2に記載したように、プログラムを書く人間は繰返し
プロファイル・パラメータに責任を負わない。このパラ
メータは、プログラマからの助け又は指令なしで、本実
施例のアセンブラにより、又は別の実施例ではハードウ
ェアを監視することにより決定される。
【0055】当業者は繰返し命令に他のコード化を使用
可能であることを認識するであろう。本実施例では、繰
返しプロファイル・パラメータは繰返し局所命令に添付
される。しかしながら、当業者は、繰返しプロファイル
・パラメータは繰返しループのプロローグ命令として動
作する任意の命令に添付又は関係してもよいことを認め
る。例えば、他の実施例では繰返しプロファイル・パラ
メータは、関係繰返しループの実行の前に実行用のアセ
ンブラによりマシン読取り可能命令ストリームに挿入さ
れるロード命令により渡される。
【0056】図10は、命令デコーダの区画を含む、プ
ロセッサ100の命令実行パイプラインをさらに詳細に
図示するブロック線図である。本実施例の命令デコーダ
は階層的である。命令デコードの第1レベルはDECO
DEパイプライン段と関係し、区画802a−e、と5
12により表される。命令デコードの第2レベルはAD
DRESSパイプライン段と関係し、区画810a−
c、812a−c、820a−c及び822a−cを有
する命令デコード・ハードウェア808により表され
る。各命令デコーダ区画は命令群と関係する。図9に図
示した命令群と図10に図示した区画は図解用に簡略化
されている。本発明の各種の実施例は本明細書で図示す
るものより多少の命令群とデコーダ区画を有してもよ
い。
【0057】前述したように、命令対が命令レジスタ5
22に受取られ次いでデコードされる。DECODEパ
イプライン段でデコーダ512により抽出された命令形
式は命令#1/命令#2境界と制御マルチプレクサ52
1を定義する。命令#1と命令#2は次いで、ADDR
ESS段の各形式に従って別々の命令レジスタ805、
806にロードされることにより分離される。DECO
DE段で、制御流れ命令は区画802aによりデコード
され、繰返し命令は区画802bによりデコードされ、
ソフト・デュアル命令は区画802cによりデコードさ
れ、アドレス・モードは区画802dによりデコードさ
れ、そしてスタック・ポインタ制御命令は区画802e
によりデコードされる。
【0058】ADDRESSパイプライン段時に、第2
レベル命令デコーダ808は、命令対を処理するのにど
のデータ装置リソースが必要であるかを決定する。デー
タ装置38,40、及び42が命令対を処理するのに必
要である。データ装置38、40および42が図解用に
与えられている。各種の実施例は追加の又は少ないデー
タ装置を有してもよい。電力消費を減少するため現在の
命令対実行に不用であると決定されたデータ装置は停止
される。これは、制御ハードウェア831、832、及
び/又は833のクロックをゲートすることにより前の
データ・オペランド選択と前の演算制御を保持すること
で実行され、従って不用な装置内では信号転移は発生し
ない。READパイプライン段の不用な装置と関係する
局所デコード・ハードウェアも停止される。
【0059】都合のよいことに、現在の命令演算コード
が前記装置と関係する命令群内にある場合、局所繰返し
プロファイリング方式は、与えられたループ実行に不用
であるデータ・リソースの予想を可能とし、各段階のデ
コードを避けられる。繰返し局所命令の即時オペランド
として与えられた繰返しプロファイル・パラメータは繰
返しプロファイル・レジスタ800に記憶される。それ
故、命令デコーダ808内の識別された区画は関係ルー
プの繰返し実行時に繰返しプロファイル・パラメータに
応答して禁止される。
【0060】都合のよいことに、局所繰返しプロファイ
リング方式はまたDECODEパイプライン段のデコー
ド・ハードウェアの選択された区画の停止も可能とす
る。しかしながら、上述したように、局所繰返し本体内
では不正である全ての制御流れ(goto、call、…)はデ
コードする必要はない。それ故、繰返しプロファイル・
パラメータが与えられているかどうかに係らず、区画8
02cの関係ハードウェアは全ループ実行時に停止可能
である。
【0061】プロファイルは、ループ本体がネストされ
た局所ループ繰返し又は単一の繰返し命令を含むかどう
か決定可能である。ネストがない時、「局所繰返し&繰
り返し」デコードと関係するハードウェア区画802b
は全ループ実行時に停止可能である。
【0062】プロファイルは、ループ本体がスタックポ
インタ関連命令(push()、pop()…)を含むかどうか決
定可能である。スタックポインタ関連命令がない場合、
「push()・pop()族」デコードと関係するハードウェア
区画802eは全ループ実行時に停止可能である。
【0063】プロファイルは、ループ本体がソフト・デ
ュアル又はビルトイン・デュアル命令を含むかどうか決
定可能である。命令抽出ハードウェアとアドレス発生器
制御はこの静的構成を利用してゲート活動ハードウェア
区画802cを減少可能である。
【0064】図11は、繰返しプロファイル・レジスタ
800とプロファイル・マスク1101を含む、プロセ
ッサのブロック繰返し制御回路1100をより詳細に図
示するブロック線図である。繰返しプロファイル・レジ
スタ800は繰返し局所命令により与えられる繰返しプ
ロファイル・パラメータをロードされる。ループ・ネス
ティングの場合、2つのオプションが可能である。第1
オプションでは、プロファイルは外部及び内部ループの
両方により必要とされるリソースに従って決定される。
第2オプションでは、外部ループと内部ループがそれ自
体のプロファイルを有し、レジスタ800はマスク11
01に含まれるマルチプレクサ又はその他の手段により
選択可能な2つのレジスタを含む。次いでプロファイル
は有限ステートマシン(FSM)1104によりスタッ
クとして管理される。プロファイルはブロック繰返しの
能動レベルに従って切替えられる。この方式は良好なグ
ラニュラリティ(granularity)を与えるが、余分なハ
ードウェアを必要とする。
【0065】命令のブロックの局所繰返しが完了する
と、又はループ実行が割込まれた場合直ちにFSM11
04に応答してプロファイルはマスク1101によりマ
スクされる。割込みサービス・ルーチン(ISR)から
の復帰時に、プロファイルはアンマスクされ能動とな
る。これによりISR時には全命令組が能動に設定され
る。
【0066】さらに図11を参照すると、選択した区画
の動作を禁止するためにマスク回路1101からのプロ
ファイル信号1110a−nがマイクロプロセッサの各
種ハードウェア区画に与えられる。例えば、プロファイ
ル信号1110aは命令デコーダ区画1102cに与え
られる。同様に、マスク1101からのその他のプロフ
ァイル信号はDECODE段のその他の区画に与えられ
る。1102bのようなある種の区画は、常に付勢され
ている必要があり、プロファイル信号には応答しない。
上述したように、制御流れ区画802aのようなある種
の区画は、デコード区画802bからのデコード信号1
111により指示される、局所ループが実行されている
時は常にプロファイル・パラメータに係らず減勢され
る。FSM1104からの禁止信号1112はデコード
信号1111に応答してアサートされる。
【0067】デコード・ハードウェア区画分けはプロフ
ァイル・パラメータ・ビットにより定義されるグラニュ
ラリティと整合する。禁止、又は停止は、デコード論理
の第1段(特別なゲート又は特別な入力)上の各プロフ
ァイル信号の特別な信号入力により処理される。この停
止制御はループ実行時の静的信号として見ることが可能
である。これは不用な転移又はグリッチの論理を通した
伝播を避ける。プロファイル情報は他の実施例では、従
来の設計ではこれがゲート化クロック付勢信号の速度路
を発生するであろうクロック制御によりDフリップフロ
ップ(DFF)又はラッチを停止するよう使用されても
よい。
【0068】さらに図11を参照すると、パイプ遅延レ
ジスタ1120はデコーダ808のADDRESS段区
画のプロファイル信号のタイミングを保持する。ADD
R段で実施される停止は特別な制御なしに読取り段デコ
ーダ区画へ伝播される。また、各種のプロファイル信号
は、ゲート1140のような論理ゲートにより組合され
て、プロファイル信号の組合せと入替を作成して各種の
ハードウェア区画を禁止してもよい。
【0069】図12は、可変寸法命令語用の命令レジス
タ522を含む、プロセッサのブロック繰返し制御回路
をさらに詳細に図示する本発明の他の実施例のブロック
線図である。繰返しプロファイル・レジスタ1200は
繰返し局所命令により与えられる繰返しプロファイル・
パラメータをロードされる。命令のブロックの局所繰返
しの実行が開始されると直ちにFSM1204に応答し
てマスク1201によりプロファイルはアンマスクされ
る。命令のブロックの局所繰返しが完了すると、又はル
ープ実行が割込まれた場合に直ちにFSM1204に応
答してプロファイルはマスク1201によりマスクされ
る。
【0070】プロファイル・レジスタ1200に記憶さ
れたプロファイル・パラメータはループ本体の最大長命
令形式を識別可能である。命令レジスタはいくつかの区
画1230−1235に区画分けされる。次いでハード
ウェアは不用な命令レジスタ区画を選択的に禁止して命
令レジスタ寸法をしかるべく調節可能である。クロック
信号IRLOADは命令レジスタ522にマルチプレク
サ520により命令バッファ(図5を参照)から選択さ
れた新たな命令をロードする。ゲート1220−122
3の各々は、クロック信号IRLOADと組合されたマ
スク1201を介してパラメータ・レジスタ1200か
らプロファイル信号を受信し、命令のブロックの繰返し
実行時に命令レジスタ522の選択区画のローディング
を禁止する。例えば、与えられたブロック繰返しで実行
される全命令の最大長が5バイトであると決定された場
合、クロック信号IRLOADがANDゲート1220
を通過することを禁止され、これにより命令レジスタ区
画1230のクロックを禁止するようにして、与えられ
たブロックの実行時にプロファイル信号1210aを低
にアサートさせる繰返しプロファイル・パラメータによ
り区画1230が禁止される。同様に、最大命令形式が
4バイトであるものと決定された場合、命令の関連ブロ
ックの繰返し実行時にプロファイル信号1210aとプ
ロファイル信号1210bの両方が低にアサートされて
区画1230と1231のクロックが禁止される。ブロ
ックは少なくとも2バイト命令を常に有しているため、
区画1234と1235は関係する禁止回路を有しな
い。当業者は、ANDゲート以外の手段を使用して、繰
返しプロファイル・パラメータに応答して選択した区画
を禁止可能であると理解できるであろう。
【0071】さらに図12を参照すると、同様な方法
で、繰返しプロファイル・パラメータにより指示された
最大長命令形式に応答してマルチプレクサ520を区画
分けし選択区画を禁止可能である。
【0072】表2に記載したように、本発明の利点は、
プログラムを書く人間が繰返しプロファイル・パラメー
タに責任を負わなくともよい点である。このパラメータ
は本実施例のアセンブラにより、又は別の実施例ではハ
ードウェアを監視することにより、プログラマからの助
け又は指令なしで決定される。図11と図12の実施例
を組合せ、1250に指示するように、プロファイル・
パラメータ・レジスタからのプロファイル信号の適切な
選択と接続により、単一の繰返しプロファイル・パラメ
ータが命令デコーダの選択区画とまた命令レジスタの選
択区画も禁止するようにしてもよい。
【0073】図13はネストされたループでの2つの繰
返しループによるプロセッサ100の動作を図示するタ
イミング図である。ループのネスティングの場合、2つ
のオプションが可能である:(1)外部及び内部ループ
の両方により必要とされるリソースに従って単一の複合
プロファイルが決定される、(2)外部ループと内部ル
ープがそれ自体のプロファイルを有する。プロファイル
は次いでスタックとして管理される。プロファイルはブ
ロック繰返しの能動レベルに従って切替えられる。第2
オプションは良好なグラニュラリティを与えるが、余分
なハードウェアを必要とする。再び図11を参照する
と、2個のプロファイル・レジスタ、PROFILE0
とPROFILE1が本実施例の800内に含まれる。
マスク1101はMASK0とMASK1を含む。11
01内のマルチプレクサ回路(図示せず)はFSM11
04に応答して動作して、一方がアンマスクされた時に
プロファイル信号1110a−nに選択されたプロファ
イル・パラメータを与える。
【0074】ここで図13を参照すると、時間線130
0は、第1オプションを使用して、ネストされたループ
時のプロファイル信号1110a−n(図11上)又は
1210a−n(図12上)の動作を図示する。内部及
び外部ループ両方を表す複合繰返しプロファイルが決定
され、外部ループと関係するプロローグ命令によりプロ
ファイル・レジスタに記憶される。前述したように、プ
ロローグ命令は時間スロット1310時にデコードされ
たループ命令であるか、又は例えばストア命令でもよ
い。内部ループの繰返し命令がプロファイル・パラメー
タを与える場合、これは無視される。ブロックの最初の
命令が実行を開始する時刻1311までプロファイルは
マスクされたままである。ネストされたループの実行の
全時間1304の間複合プロファイルはアンマスクされ
たままである。時間1312で、外部ループの最後の繰
返しが実行される。時刻1313で、最後の繰返しの最
後の命令が実行され、時間スロット1306に指示する
ように、プロファイルが再びマスクされる。
【0075】時間線1300はまた、単一ブロック繰返
しの動作を表し、この場合時間スロット1304は命令
のブロックの繰返し実行を表し、時間スロット1312
は命令のブロックの最後の繰返しを表す。
【0076】さらに図13を参照すると、時間線134
0は、第2オプションを使用した、ネストされたループ
時のプロファイル信号1110a−n(図11上)又は
1210a−n(図12上)の動作を図示する。外部ル
ープを表す第1繰り返しプロファイルが決定され、外部
ループと関係するプロローグ命令によりプロファイル・
レジスタPROFILE0に記憶される。内部ループを
表す第2繰り返しプロファイルが決定され、内部ループ
と関係するプロローグ命令によりプロファイル・レジス
タPROFILE1に記憶される。前述したように、プ
ロローグ命令は時間スロット1350と1314時にデ
コードされた内部及び外部ループ命令でもよいし、又は
例えばストア命令でもよい。外部ループの最初の命令が
実行を開始する時間1311までプロファイルはマスク
されたままである。時間スロット1343と1345に
より図示する、外部ループの実行時には第1プロファイ
ルはアンマスクされたままである。時間1315で、内
部ループの最初の命令が実行を開始し、時間スロット1
344による図示される、内部ループの実行時にFSM
1104により第2プロファイルが選択される。実行は
内部ループから外部ループへ移動し、又逆も同様であ
り、対応するプロファイルはFSM1104により選択
される。時間線1340は明瞭にするため内部ループの
単一繰返しのみを図示しているが、当業者は内部及び外
部ループの複数繰返しが標準的には発生することを理解
できる。時間1316時に、内部ループの最後の繰返し
が実行される。時間1352時に、外部ループの最後の
繰返しが実施される。時間1313で、最後の繰返しの
最終命令が実行され、時間スロット1346に指示する
ように、プロファイルは再びマスクされる。
【0077】図14は繰返しプロファイル・パラメータ
を用いたプロセッサ100での命令のブロックを繰返し
実行する際に関係する各段階を図示する流れ図である。
段階1400では、命令列の連続実行が実施されてい
る。「連続」という用語はジャンプ、分岐、呼出し、復
帰、等を含んでもよいことを理解すべきである。段階1
402で、未決のループと関係するプロローグ命令によ
りブロック繰返し制御回路が初期化される。これは例え
ば、ブロック繰返しカウント・レジスタのロードを含
む。これはまた繰返しプロファイル・レジスタのロード
を含んでもよい。段階1204と1206で、繰返し命
令がデコードされるまで連続実行が実施される。望まし
い実施例では、繰返し命令は、繰返して実行されるべき
命令の関連ブロックに対して決定された繰返しプロファ
イル・パラメータを与える。段階1408で、繰返しブ
ロック実行時には本質的に禁止される命令群に対応する
命令デコーダの区画が禁止される。
【0078】段階1410で、プロファイルを受取って
いない場合、段階1412時に監視回路が命令のブロッ
クの第1繰返しの実行を監視し、プロセッサのどの区画
が残りの繰返しに不用であるかを決定する。どちらの場
合でも、命令のブロックの実行に不用であるものと決定
されたその他のハードウェア区画と共に、段階1414
で命令デコーダの不用な区画が禁止される。命令のブロ
ックは段階1416、1418及び1422を繰返しル
ープすることにより実行される。段階1418で割込み
が検出された場合、ISRの実行時にはプロファイルは
マスクされるためISRは禁止された回路なしで実行可
能である。ISRからの復帰時にプロファイルは再びア
ンマスクされ、不用な区画を禁止するよう動作する。
【0079】段階1424で命令のブロックの各完全繰
返しが検査される。最後の繰返しを完了した後、プロフ
ァイルはマスクされ、段階1426で禁止回路区画なし
で連続実行が再開される。
【0080】図15はプロセッサ100による命令のブ
ロックの実行時にプロファイルを決定する監視回路を図
示するブロック線図である。回路1500はプロセッサ
100のハードウェアの一部の区画を表す;これは本実
施例では命令デコーダの区画であるが、他の実施例では
例えば命令レジスタのようなプロセッサの他の部分の区
画を表してもよい。区画1500は命令レジスタ150
2から信号を受け取り、区画1500による活動を表す
1つ以上の出力信号を与える。監視回路1520は命令
のブロックの第1繰返し時に信号1510を監視する。
命令のブロック内に含まれる1つ以上の命令の間区画1
500が能動である場合、監視回路1520はこれに従
って設定される。繰返しの終了時に、プロファイル・レ
ジスタ1530は監視回路1520に従って設定され
る。命令のブロックの残りの繰返しの間、命令のブロッ
クの最初の繰返し時に区画1500が使用されなかった
場合、プロファイル信号1531に応答して、ANDゲ
ート1532は区画1500を通る信号の伝播を禁止
し、これにより電力消費を減少させる。当業者は、AN
Dゲート1532は区画1500を禁止する回路の単な
る代表であることを認識可能である。本発明の特徴を実
施するため禁止回路の各種の実施例が当業者により容易
に得られる。
【0081】図16はプロセッサによる命令のブロック
の実行時に図15の監視回路の動作を図示するタイミン
グ図である。時間スロット1600時に、命令のブロッ
クの第1繰返しが実行される。図16は3個のハードウ
ェア区画、簡単のため、1620の装置x、1621の
装置y、及び1622の装置zの動作を図示する。16
20と1621の影付き領域は、第1繰返し時に装置x
と装置yは命令のブロック中の1つ以上の命令により使
用されたことを示す。しかしながら、1622の影なし
は、第1繰返し時に装置zは使用されていないことを示
す。それ故、第1繰返しの終了時に監視回路の設定は、
装置xと装置yは必要であるが、装置zは不用であるこ
とを決定する。時間1612に、繰返しプロファイル・
レジスタは監視回路に応答してプロファイル・パラメー
タにより設定される。時間スロット1602により示さ
れる命令のブロックの残りの繰返し時には、プロファイ
ル・パラメータに応答して装置zは禁止されて電力消費
を減少させる。
【0082】図4と図10を再び参照すると、さらに電
力消費を減少するため区画分け可能で命令のブロックの
繰返し実行時に選択的に禁止可能なプロセッサ100の
いくつかのその他の部分がある。例えば、1実施例で
は、ループ本体がADDRESSパイプライン・スロッ
トの初期化又はレジスタファイルのスワップを実行する
命令を含むかどうかプロファイルは指示可能である。全
ループ実行時に関係するハードウェア(図示せず)は停
止可能である。
【0083】他の実施例では、ループ本体がデータ係数
ポインタと関係する命令を含むかどうかプロファイルは
指示可能である。全ループ実行時に関係するハードウェ
ア(図示せず)は停止可能である。
【0084】他の実施例では、ループがアドレス装置1
10に含まれる3個の内2個のアドレス発生器のみを必
要とする場合、不用なアドレス発生器は停止可能であ
る。
【0085】他の実施例では、アルゴリズムが状態更新
を気にしない場合、状態更新回路(図示せず)はブロッ
ク繰返しの実行時に禁止可能である。
【0086】他の実施例では、命令のブロックの実行時
に命令並列性が利用不能であると決定された場合、命令
レジスタ806と全ての関係制御回路が禁止可能であ
る。同様に、例えば、サイクル当り6から8命令がディ
スパッチ可能であるVLIWアーキテクチャでは、命令
のブロックの繰返し実行時には前記並列性は必ずしも完
全に利用可能ではない。局所繰返しプロファイルは実行
必要性に従ってハードウェアを調節する手段を有利に提
供可能である。例えば、ループ内で並列命令の最大数が
4である場合、プロファイルは不用なハードウェアを停
止するためループ実行の前にこの情報を渡すことが可能
である。
【0087】同様の方式がデータ形式にも適用可能であ
る。プロセッサは異なるデータ型式:8ビット、16ビ
ット、及びデュアル16ビットをサポートする。その他
の実施例は例えば浮動小数点をサポートしてもよい。デ
ータ路は切片として区画分けされ、命令のブロックによ
り必要とされるデータ路区画のみが命令のブロックの繰
返し実行時に能動となり得る。
【0088】図17は、アセンブラにより命令のブロッ
クの実行時にどの区画が必要とされるかを決定すること
により繰返しプロファイル・パラメータを形成する際に
関係する各種の段階を図示する流れ図である。段階17
00では、初期アセンブリ・タスクが実行される。本明
細書で使用するように、用語「アセンブラ」は、例えば
コンパイルと増分コンパイルを含む、人間が読取り可能
なプログラムをマシン読取り可能命令列に変換する任意
の手段を意味する。アセンブラ動作は一般的に公知であ
り本明細書ではこれ以上説明しない。段階1702で、
各マシン読取り可能命令実行可能形式に対して項目を有
する表が作成される。各項目は関係する命令の実行にど
の選択可能なハードウェア区画が必要であるかを指示す
るパターンを含む。例えば、パターンは命令デコーダの
区画に対応する特定の命令群を指示してもよい。パター
ンは選択されたプロセッサとそのプロセッサによりサポ
ートされるハードウェア区画分けに応じて、命令長、ア
ドレス・モード、等を指示してもよい。
【0089】段階1704で、既知のコンパイル/アセ
ンブリ技術を使用してソースコードは一連のマシン読取
り可能命令に変換される。段階1706と1708で、
各マシン読取り可能命令を検査してこれが繰返し命令で
あるかどうかを決定する。繰返し命令が捜し出される
と、段階1710で繰返し命令と関係する命令のブロッ
クの最初の命令が識別され、最初の命令の群パターンが
アクセスされ初期プロファイル・パラメータとして使用
される。段階1712と1714で、ブロックの各以後
の命令が検査され、各々と関係する群パターンが初期繰
返しプロファイル・パラメータと組合される。命令のブ
ロックの最後の命令が検査され、その群パターンがプロ
ファイル・パラメータに含まれると、プロファイル・パ
ラメータは命令のブロックと関係するプロローグ命令に
関係付けられる。望ましい実施例では、プロファイル・
パラメータは表2に示されるように繰返し命令に添付さ
れる。
【0090】段階1718で、一連のマシン読取り可能
命令が完全に処理されるまで処理は続行し、命令の追加
ブロックと関係するプロファイル・パラメータが形成さ
れる。段階1720で既知のアセンブリ技術を使用し
て、アセンブリ処理は完了する。完了したアセンブリ処
理は、命令の各繰返し可能ブロックが添付繰返しプロフ
ァイル・パラメータ付きの繰返し命令のような、プロロ
ーグ命令を有する一連のマシン読み取り可能命令を与え
る。
【0091】ここで図18を参照し図5を参照すると、
望ましい実施例の局所ループ命令流れがさらに詳細に説
明されている。局所ループ繰返しは、第1パイプライン
・スロット602のDECODE段に示したブロック繰
返しカウント(BRC0/BRC1)を局所ループの繰
返し数で初期化することにより設定され、次いで次ぎの
スロット604で局所ループ命令(RPTL)自体がデ
コードされる。BRC0(又はBRC1)がゼロでない
場合BRC0/BRC1はループの最後の命令の各繰返
しで減算される。オプションとして最大繰返し値を定義
し、カウンタをゼロに初期化することにより局所ループ
繰返しを増加に設定してもよいことは当業者には明らか
である。この時カウンタはループの最後の命令の各繰返
しで増分可能である。減分又は増分は1以外のステップ
でもよい。スロット602と604で、プログラム・カ
ウンタは値「PC」へ4バイトだけ増加し、さらに2命
令語がIBQ502にフェッチされ、従ってスロット6
02、604当り2命令語がIBQ502にフェッチさ
れる。スロット602ではIBQ502で利用可能な語
504の数は2で、図18のCountとラベル付けし
て示されている。IBQ502で利用可能な語数はLR
PC536とLWPC532との間の差により与えられ
る、何故ならこれらは現在ディスパッチされている命令
とIBQ502に次ぎの命令を書込む位置を各々指して
いるからである。本発明の目的上、BRC0/BRC1
を初期化する命令は例えば1語16ビット命令であり、
BRC0/BRC1=DAxは並列性を含んでいないた
め、16ビット初期化命令のみがスロット602で第1
又は第2命令デコーダ512、514にディスパッチさ
れる。
【0092】次ぎのスロット604で、WPCは値「P
C」へ4だけ増加し、さらに2x16ビット命令語50
4がIBQ502にフェッチされる。IBQ502で利
用可能な命令語504の数は今や3である、何故なら前
のスロット602ではBRC0/BRC1を初期化する
1語命令のみがディスパッチされたからである。
【0093】局所ループの第1繰返しはスロット606
で開始し、ここで命令L0、L1の第1並列対がデコーダ
512、514にディスパッチされる。IBQ502で
利用可能である命令語504の数は今や4である。これ
は、本実施例では局所ループ命令は16ビット命令のみ
であり、それ故前のスロット604で1語504のみが
デコーダ512にディスパッチされたからである。
【0094】局所ループの実行を最適化するため、命令
は出来る限り並列に実行される。本例では、ループの本
体を含む全命令は並列に実行可能であるものと仮定す
る。これはループの本体の第1パス時に2つの不用スロ
ット、610、612を生じるが、残りの繰返しに高速
度を生じる。
【0095】さらに、本例では命令L0、L1は並列に実
行可能であり、全体で48ビットを含み、従って3命令
語504が各デコード段でデコーダ512、514にデ
ィスパッチされる。繰返しブロックの開始、サイクル6
06では、2つの命令L0とL1がデコーダにディスパッ
チされ、LRPC536とLWPC532との間の差は
4である。サイクル608で、さらに2命令語がIBQ
にフェッチされるが、3語がディスパッチされる。
【0096】ここでLRPC536はIBQ502に沿
って3語を移動し、LWPC532はIBQ502に沿
って次ぎのフェッチ位置へ2語を移動する。従って、L
WPC532とLRPC536との間の差は次ぎのスロ
ット608用に3へ1つだけ減少される。再び、次ぎの
2命令L2、L3は並列に実行可能であり、全体で48ビ
ットを含むものと仮定すると、LRPC532は次ぎの
スロット610用にIBQ502に沿って3語を移動す
る。プログラム・プリフェッチは1スロット、この場合
はスロット608に対して停止していて、それ故このス
ロットでは命令語はIBQ502にロードされない。従
って、スロット610ではLRPC536とLWPC5
32は同じIBQ502アドレスを指し、Count=
0である。IBQ502のディスパッチ用に利用可能ビ
ットがないため、スロット610はデコード用に不用な
スロットである。しかしながら、スロット610時に2
命令語がIBQ502にフェッチされLWPC532を
IBQに沿って2語だけ移動し、それ故スロット612
用に利用可能な2命令語がある。しかしながら、次ぎの
2命令、L4、L5が48ビットを含む並列命令である場
合、スロット612ではディスパッチがなく、さらに不
用なスロットがある。
【0097】スロット614では、IBQ502には利
用可能な全体で4命令語504があり、48ビットを含
む命令L4、L5がデコーダ512、514にディスパッ
チされる。スロット614の間にさらに2命令語504
がIBQ502にフェッチされる。WPCはここで2x
命令語504の16パケットだけ増加され、従ってIB
Q502はいっぱいで、全てのループ本体がフェッチさ
れる。従って、理解出来るように、スロット616のW
PCカウントはプリフェッチでPC+16に留まり、し
かし別の2語504がスロット614のプリフェッチか
ら生じてIBQ502にフェッチされる。
【0098】スロット616ではループの本体がIBQ
502にフェッチされて、IBQには利用可能な32語
がある。これはIBQ502の最大寸法であり、従って
ループのさらなる繰返しを形成する以後のスロット61
8、620ではフェッチはオフされる。
【0099】ループの最後の繰返しでは、キューの空隙
を避けるようIBQ502に注ぎ足すため、スロット6
26でフェッチはオンに切換わる。
【0100】従って、ループの本体に対しては、最初と
最後の繰返しを除いて、パイプライン・フェッチ段はな
い。従って、プログラム・メモリアクセスはない。より
少ないプログラム・メモリアクセスが実施されるため、
従来のループと比較してこれはループ時に電力消費を減
少させる。
【0101】従って、本発明の実施例によると、マイク
ロプロセッサは、全てが命令バッファ・キュー502に
収められる命令の組による繰返しループを与える局所繰
返し命令に応答するよう構成される。再び図5を参照す
ると、IBQ502は64バイト長であり32x16ビ
ット語に構成される。命令はIBQ502に一時に2語
づつフェッチされる。さらに、命令デコーダ制御器はパ
イプラインの各デコード段に対して命令デコーダ512
と514に6プログラムコード・バイトまでのパケット
を読取る。ループの開始と終了、すなわち最初と最後の
命令は、IBQ502にフェッチされたプログラムコー
ドの4バイト・パケット内の任意のバイト境界に該当し
てよい。従って、開始(最初)及び終了(最後)命令は
必ずしもIBQ502の先頭と底部とに共終結する必要
はない。例えば、局所ループ命令が4プログラムコード
のパケットの境界上の2バイトに跨っている場合、4プ
ログラムコードの両方のパケットをIBQ502に保持
しなければならない。これを考慮に入れるため、局所ル
ープ命令オフセットは最大55バイトである。
【0102】局所ループの最初の繰返し時に、ループ本
体のプログラムコードはIBQ502にロードされ通常
のように実行される。しかしながら、以降の繰返しに対
しては、フェッチが再開始される最後の繰返しまで、フ
ェッチは生じない。
【0103】他の実施例では局所ループのブロック寸法
を最大化するためにマイクロプロセッサはIBQ502
で命令語を整合するよう設定される。命令語の整合は局
所ループの開始及び終了命令を出来る限りIBQ502
の各境界に近接して配置するよう動作してもよい。アセ
ンブラの実施例はIBQ502での命令の整合を設定し
て局所ループのブロック寸法を最大化する。
【0104】再び図1を参照すると、データ処理装置1
0の製造は、半導体基盤に各種の不純物を打ち込み、基
盤内の選択深さまで不純物を拡散させてトランジスタ素
子を形成する複数段階を含む。不純物の配置を制御する
ためマスクが形成される。電導材と絶縁材の複数層が蒸
着され各素子を相互接続するためにエッチングされる。
これらの段階はクリーンルーム環境で実行される。
【0105】データ処理装置を製造するコストの相当部
分は検査に関係する。ウェファ形式の間に、個々の素子
にバイアスをかけて動作状態にし、基本動作機能性のプ
ローブ検査を行なう。ウェファは次いで、裸のダイとし
て販売されるか又はパッケージされてもよい別々のダイ
スに分離される。パッケージ後、完成した部品は動作状
態にバイアスされて動作機能性を検査される。
【0106】本発明の新規特徴の別な実施例は、組合せ
機能の全体ゲート数を減少するために本明細書で開示し
た回路と組合されるその他の回路を含んでもよい。当業
者はゲート最小化の技術を熟知しているため、このよう
な実施例の詳細は本明細書では説明しない。
【0107】このように、高コード密度と容易なプログ
ラミングを提供する、プログラム可能なディジタル信号
プロセッサ(DSP)であるプロセッサを説明して来
た。アーキテクチャと命令組は、純粋な制御タスクと共
に、無線電話のような、DSPアルゴリズムの低電力消
費と高効率実行用に最適化されている。プロセッサは命
令バッファ装置と、命令バッファ装置によりデコードさ
れた命令を実行するデータ計算装置とを含む。命令は、
暗黙の並列性に応答して又はユーザー定義の並列性に応
答して、並列的に実行可能である。
【0108】いくつかの命令群に対する命令デコーダの
区画分けは命令ループの実行時に1つ以上のデコーダ区
画をアイドルのままにすることを可能とする。結果とし
て、マイクロプロセッサによる電力消費の対応する減少
がある。都合のよいことに、プロセッサのその他の部分
の区画分けと選択区画の動作の禁止はプロセッサの電力
消費をさらに減少する。
【0109】以上の説明から、発明の範囲内で各種の変
更を行なってもよいことが当業者には明白である。例え
ば、ループの本体を含む命令は完全な48ビット並列命
令である必要はなく、又は全く並列命令である必要もな
い。さらに、ループはIBQの全てを引き受ける必要は
なく、上述したものより小さくともよい。他の実施例で
は、IBQは設けられない。別の実施例では、命令デコ
ーダは多数のパイプライン段上で区画分けされてもよい
し、又は1つのパイプライン段内に完全に含まれてもよ
い。
【0110】マイクロプロセッサを含むディジタル・シ
ステムを操作する方法が提供され、この方法は、マイク
ロプロセッサの一部を複数個の区画に区画分けする段階
と;マイクロプロセッサの命令パイプライン内の一連の
命令を実行する段階と;一連の命令内の命令のブロック
を繰返し実行する段階と、ここでブロックは最初の命令
と最後の命令とを有し;複数個の区画の内の少なくとも
1つが命令のブロックを実行するのに必要ないことを決
定する段階と;命令のブロックを繰返し実行する段階時
に少なくとも一つの区画の動作を禁止する段階と、を含
み、これにより電力消散を減少する。
【0111】本方法の別の実施例では、区画分けする段
階は、異なる命令長に従ってマクロプロセッサの命令レ
ジスタを区画分けする段階を含み;決定する段階は、命
令のブロック内の命令の最大命令長を決定する段階を含
み;禁止する段階は、決定した最大命令長に従って1つ
以上の命令レジスタ区画のロードを禁止する段階を含
む。
【0112】本方法の別の実施例では、区画分けする段
階は、並列命令実行に従って命令パイプラインを区画分
けする段階を含み;決定する段階は、命令のブロック内
の命令の最大命令並列性を決定する段階を含み;禁止す
る段階は、1つ以上の並列命令実行区画を禁止する段階
を含む。
【0113】本方法の別の実施例では、区画分けする段
階は、データ型式に従ってマイクロプロセッサの一部を
区画分けする段階を含み;決定する段階は、命令のブロ
ック内で使用されない1つ以上のデータ型式を決定する
段階を含み;禁止する段階は、1つ以上のデータ型式区
画を禁止する段階を含む。
【0114】本方法の別の実施例では、決定する段階
は、命令のブロック内で状態回路の更新が必要とされな
いことを決定する段階を含み;禁止する段階は、状態回
路の更新を禁止する段階を含む。
【0115】本方法の別の実施例では、区画分けする段
階は、アドレスモードに従ってマイクロプロセッサのア
ドレス発生回路を複数個の区画に区画分けする段階を含
み;決定する段階は、命令のブロック内で使用されない
1つ以上のアドレスモードを決定する段階を含み;禁止
する段階は、1つ以上のアドレス発生区画を禁止する段
階を含む。
【0116】本方法の別の実施例では、決定する段階
は、命令のブロックの最初の繰返しの実行をまず監視
し、これにより繰返しプロファイル・パラメータを得る
段階をさらに含む。
【0117】本方法の別の実施例では、繰返しプロファ
イル・パラメータを記憶する段階は、内部ループを表す
第1繰返しプロファイル・パラメータを記憶する段階と
外部ループを表す第2繰返しプロファイル・パラメータ
を記憶する段階とを含み;禁止する段階は、内部ループ
の実行時にはマイクロプロセッサの第1区画の動作を禁
止する段階と、外部ループの実行時にはマイクロプロセ
ッサの第2区画の動作を禁止する段階とを含む。
【0118】本方法の別の実施例では、命令のブロック
を繰返し実行する段階に割込んで割込みサービス・ルー
チン(ISR)を実行する段階と;マイクロプロセッサ
の全区画がISRの実行時には付勢されるよう区画禁止
をマスクする段階と;ISRの実行を完了した後に命令
のブロックの繰返し実行に復帰する時区画禁止をアンマ
スクする段階と、を含む。
【0119】本方法の別の実施例では、区画禁止をマス
クする段階は、繰返しプロファイル・パラメータをマス
クする段階を含む。
【0120】都合のよいことに、本発明の特徴はプロセ
ッサ内の電力管理の他の技術と組合せてプロセッサの電
力消費をさらに減少させてもよい。例えば、ループ中の
命令によって機能装置が使用されない場合各種の機能装
置をループ実行時に待機モードに置いてもよい。
【0121】本開示の範囲は、これが特許請求された発
明と関係するかどうか、又は本発明により指摘された任
意の又は全ての問題を緩和するかどうかに係らず、明示
的に又は暗黙に又は一般化されてここに開示した新規の
特徴又は機能の組合せを含む。
【0122】本明細書で使用したように、用語「印加さ
れた」、「接続された」及び「接続」は、別の要素が電
気的接続路にある場合も含む、電気的接続を意味する。
「関係する」は、関係するポートにより制御されている
メモリ・リソースのような、制御関係を意味する。用
語、アサート、アサーション、デアサート、デアサーシ
ョン、ニゲート及びニゲーションは、アクティブ・ハイ
及びアクティブ・ローの混合を取扱う時に混乱を避ける
ために使用される。アサートとアサーションは、信号が
アクティブとなっている、又は論理的に真であることを
指示するために使用される。デアサート、デアサーショ
ン、ニゲート及びニゲーションは、信号が非アクティブ
となっている、又は論理的に偽であることを指示するた
めに使用される。
【0123】図示実施例を参照して本発明を記述してき
たが、この説明は限定的な意味で解釈される意図のもの
ではない。本発明のその他の各種の実施例はこの説明か
ら当業者には明らかである。例えば、本明細書で記述し
たように、プロセッサの各種部分を区画の組に区画分け
可能である。与えられた実施例では、1組以上の区画を
与えて、単一の又は複数繰返しプロファイル・パラメー
タにより制御可能である。
【0124】以上の説明に関して更に以下の項を開示す
る。 (1)ディジタル・システムを操作する方法において、
マイクロプロセッサの一部を複数個の区画に区画分けす
る段階と、マイクロプロセッサの命令パイプライン内で
一連の命令を実行する段階と、一連の命令内の命令のブ
ロックを繰返し実行する段階であって、ブロックは最初
の命令と最後の命令とを有する、前記実行する段階と、
複数個の区画の内の少なくとも1つが命令のブロックを
実行するのに必要ないことを決定する段階と、命令のブ
ロックを繰返し実行する段階時に少なくとも1つの区画
の動作を禁止し、これにより電力消散を減少する段階
と、を含むディジタル・システムを操作する方法。 (2)第1項記載の方法において、決定する段階は、命
令のブロックを実行するために必要とされない少なくと
も1つの区画を指示する繰返しプロファイル・パラメー
タを記憶する段階を含む方法。 (3)第1項及至第2項のいずれか記載の方法におい
て、(イ)区画分けする段階は、命令デコーダの各区画
が命令群と関係付けられるように、命令デコーダを複数
個の区画に区画分けする段階を含み、(ロ)決定する段
階は、命令のブロック内に含まれない少なくとも第1群
の命令を指示する繰返しプロファイル・パラメータを記
憶する段階を含み、(ハ)命令デコーダの一部の動作を
禁止する段階は、第1群の命令に対応する命令デコーダ
の区画の動作を禁止する段階をさらに含む、方法。 (4)第1項及至第3項のいずれか記載の方法におい
て、禁止する段階は、パイプラインの第1段と関係する
命令デコーダの第1区画を禁止する段階と命令パイプラ
インの第2段と関係する命令デコーダの第2区画を禁止
する段階とを含む方法。 (5)第1項及至第4項のいずれか記載の方法におい
て、(イ)区画分けする段階は、命令デコーダの各区画
が命令群と関係付けられるように、命令デコーダを複数
個の区画に区画分けする段階を含み、(ロ)決定する段
階は、命令のブロックの繰返し実行時に実行されること
を本質的に禁止されている命令群を識別する段階を含
み、(ハ)禁止する段階は、命令のブロックを繰返し実
行する段階時に命令の禁止群に対応する命令デコーダの
区画の動作を禁止する段階を含み、その間命令デコーダ
の残りの部分は命令がパイプライン中で実行される間命
令のブロックをデコードする、方法。 (6)第1項及至第5項のいずれか記載の方法におい
て、決定する段階は、命令のブロックを繰返し実行する
段階の前にプロローグ命令と関係するパラメータとして
繰返しプロファイル・パラメータを最初に受取る段階を
さらに含む方法。
【0125】(7)第6項記載の方法において、ソース
コード・プログラムをアセンブルして命令のブロック、
プロローグ命令及び関係する繰返しプロファイル・パラ
メータを含む一連の命令を作成する段階をさらに含み、
アセンブルする段階は、(イ)各命令の項目がその命令
を含む命令群を定義する群パターンを含むように、選択
されたマイクロプロセッサにより実行可能な各命令に対
して項目を有する命令表を作成する段階と、(ロ)ソー
スコードを一連の命令に変換する段階と、(ハ)プロロ
ーグ命令と関係する命令の繰返しブロックの最初の命令
と最後の命令を決定する段階と、(ニ)命令のブロック
中の各命令を表す命令表から選択された複数個の群パタ
ーンを組合せて、繰返しプロファイル・パラメータを形
成する段階と、(ホ)繰返しプロファイル・パラメータ
をプロローグ命令と関係付ける段階と、を含む方法。
【0126】(8)一連の命令を作成するためソースコ
ード・プログラムをアセンブルする方法において、一連
の命令は最初の命令と最後の命令を含む命令の繰返しブ
ロックを有し、各命令の項目がその命令を含む命令群を
定義する群パターンを含むように、選択されたマイクロ
プロセッサにより実行可能な各命令に対して項目を有す
る命令表を作成する段階と、ソースコードを一連の命令
に変換する段階と、第1プロローグ命令と関係する命令
の第1繰返しブロックの最初の命令と最後の命令を決定
する段階と、命令の第1ブロック中の各命令を表す命令
表から選択された複数個の群パターンを組合せて、第1
繰返しプロファイル・パラメータを形成する段階と、第
1繰返しプロファイル・パラメータを一連の命令中の第
1プロローグ命令と関係付ける段階と、を含む方法。 (9)第8項記載の方法において、第2プロローグ命令
と関係する命令の第2繰返しブロックの最初の命令と最
後の命令を決定する段階と、命令の第2ブロック中の各
命令を表す命令表から選択された複数個の群パターンを
組合せて、第2繰返しプロファイル・パラメータを形成
する段階と、第2繰返しプロファイル・パラメータを一
連の命令中の第2プロローグ命令と関係付ける段階と、
を含む方法。 (10)マイクロプロセッサを含むディジタル・システ
ムにおいて、マイクロプロセッサは、ディスパッチされ
た命令を実行する複数個の段を有するパイプラインと、
命令をデコードする命令デコーダであって、パイプライ
ンに制御可能に接続されており、命令デコーダは各複数
個の命令群に従って複数個の区画に区画分けされてい
て、区画の少なくとも一つは禁止入力を有する、前記命
令デコーダと、プロローグ命令に応答して命令のブロッ
クの繰返し実行を開始するブロック繰返し制御回路であ
って、前記ブロックは最初の命令と最後の命令を含む前
記ブロック繰返し制御回路と、を含み、命令デコーダは
ある種の命令群をデコードするよう動作可能であり、さ
らにブロック繰返し回路に応答して少なくとも一つの命
令群のデコードを禁止するよう動作可能であり、これに
より命令のブロックの繰返し実行時に命令デコーダによ
り消費される電力を減少する、ディジタル・システム。
【0127】(11)第10項記載のディジタル・シス
テムにおいて、ブロック繰返し制御回路は、繰返しプロ
ファイル・パラメータを受取るように接続された繰返し
プロファイル回路であって、繰返しプロファイル回路の
出力は少なくとも1つの命令デコーダ区画の付勢入力に
接続されている前記繰返しプロファイル回路と、をさら
に含み、命令デコーダはある種の命令群をデコードする
よう動作可能であり、さらに繰返しプロファイル回路の
第1繰返しプロファイル・パラメータに応答して少なく
とも一つの命令群のデコードを禁止するよう動作可能で
ある、ディジタル・システム。 (12)第10項又は第11項記載のディジタル・シス
テムにおいて、命令デコーダの第1部分はパイプライン
の第1段と関係し、命令デコーダの第2部分はパイプラ
インの第2段と関係するように、命令デコーダは階層的
であり、命令デコーダの第1部分の少なくとも第1命令
デコーダ区画は繰返しプロファイル回路の第1出力に接
続された第1禁止入力を有し、命令デコーダの第2部分
の少なくとも第2命令デコーダ区画は繰返しプロファイ
ル回路の第2出力に接続された第2禁止入力を有する、
ディジタル・システム。 (13)第10項及至第12項のいずれか記載のディジ
タル・システムにおいて、繰返しプロファイル回路は命
令のブロックのプロローグ命令により与えられる繰返し
プロファイル・パラメータを受取るように接続されてい
るディジタル・システム。 (14)第10項及至第13項のいずれか記載のディジ
タル・システムにおいて、繰返しプロファイル回路は、
命令デコーダに結合された監視回路により与えられる繰
り返しプロファイル・パラメータを受取るように接続さ
れ、監視回路は命令の第1ブロックの第1繰返し時に命
令デコーダを監視するよう動作可能であり、これにより
命令の第1ブロック内に含まれない少なくとも第1群の
命令を指示する第1繰返しプロファイル・パラメータを
得るように動作可能である、ディジタル・システム。
【0128】(15)第10項及至第14項のいずれか
記載のディジタル・システムにおいて、命令デコーダ
は、内部ループの実行時に第1命令群のデコードを禁止
し、外部ループの実行時に第2命令群のデコードを禁止
するよう動作可能であるように、繰返しプロファイル回
路は内部ループと外部ループを表す2つの繰返しプロフ
ァイル・パラメータを受取るように動作可能であるディ
ジタル・システム。 (16)第10項及至第15項のいずれか記載のディジ
タル・システムにおいて、実行装置へのディスパッチの
前にそこへ転送された命令のブロックを一時的に記憶す
る命令バッファと、をさらに含み、パイプラインは転送
用のプログラム・メモリから命令バッファへ命令をフェ
ッチする命令フェッチ段を含み、ブロック繰返し制御回
路はプログラム・メモリから命令バッファへ命令のブロ
ックの最終命令のフェッチ後、命令フェッチ段を禁止す
るよう動作可能である、ディジタル・システム。 (17)第10項及至第16項のいずれか記載のディジ
タル・システムにおいて、命令デコーダによりデコード
される前に各命令を保持する命令レジスタと、をさらに
含み、命令レジスタは命令のブロックの実行時に繰返し
プロファイル回路に応答して部分的に禁止されるよう動
作可能である、ディジタル・システム。 (18)第17項記載のディジタル・システムにおい
て、前記命令は可変長であるディジタル・システム。 (19)第10項及至第18項のいずれか記載のディジ
タル・システムにおいて、前記システムはセルラ電話を
含み、これは、キーボード・アダプタを介してプロセッ
サに接続された一体化キーボードと、表示アダプタを介
してプロセッサに接続された、表示部と、プロセッサに
接続された無線周波数(RF)回路と、RF回路に接続
されたアンテナと、を含むディジタル・システム。
【0129】(20)マイクロプロセッサの一部が複数
個の区画に区画分けされているマイクロプロセッサとマ
イクロプロセッサの操作方法が提供される。一連の命令
がマイクロプロセッサの命令パイプライン内で実行され
る(1404、1406)。局所繰返し命令に応答して
(1406)一連の命令内の命令のブロックが繰返し実
行される(1416、1422)。命令のブロックを実
行する前(1410)か、又はループの第1繰返し時
(1412)のどちらかで、複数個の区画の内少なくと
も1つは命令のブロックを実行するのに必要ないことの
決定が行なわれる。電力消散を減少するために命令のブ
ロックの繰返し実行時に少なくとも一つの識別された区
画の動作が禁止される(1414)。
【図面の簡単な説明】
【図1】プロセッサの概略ブロック線図。
【図2】無線通信装置の概略図。
【図3】プロセッサのコアの概略線図。
【図4】プロセッサのコアの各種実行装置のより詳細な
概略ブロック線図。
【図5】プロセッサの命令バッファ・キューと命令デコ
ーダ制御器の概略線図。
【図6】プロセッサのパイプライン段の表示。
【図7】プロセッサのパイプラインの動作例の図式説明
図。
【図8】パイプラインの動作を説明するためのプロセッ
サのコアの概略図。
【図9】プロセッサの命令組内の群分けの図。
【図10A】命令デコーダの区画を含む、プロセッサの
命令実行パイプラインをさらに詳細に図示したブロック
線図。
【図10B】命令デコーダの区画を含む、プロセッサの
命令実行パイプラインをさらに詳細に図示したブロック
線図。
【図11】繰返しプロファイル・レジスタとマスクを含
む、プロセッサのブロック繰返し制御回路をさらに詳細
に図示するブロック線図。
【図12】可変寸法命令語の命令レジスタを含む、プロ
セッサのブロック繰返し制御回路をさらに詳細に図示し
た別の実施例のブロック線図。
【図13】プロセッサによるネストされたループの実行
時の繰返しプロファイルの動作を図示するタイミング
図。
【図14】繰返しプロファイル・パラメータを用いたプ
ロセッサでの命令のブロックを繰返し実行する際に関係
する各種の段階を図示する流れ図。
【図15】プロセッサによる命令のブロックの実行時に
プロファイルを決定する監視回路を図示するブロック線
図。
【図16】プロセッサによる命令のブロックの実行時に
図15の監視回路の動作を図示するタイミング図。
【図17】命令のブロックの実行時にどの区画を必要と
するかを決定することによりアセンブラによって繰返し
プロファイル・パラメータを形成する際に関係する各種
の段階を図示する流れ図。
【図18】プロセッサのパイプラインの命令実行で局所
ループ命令の実行を図示するタイミング図。
【符号の説明】
10 マイクロプロセッサ 100 CPU 104 メモリ管理装置 106 命令バッファ装置 108 P装置 110 A装置 112 D装置 800 繰返しプロファイル・レジスタ 1100、1200 ブロック繰返し制御回路 1101、1201 プロファイル・マスク 1520 監視回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジルベール ローランティ フランス国 サン ポール ド バンス、 シュマン ド サン エチアンヌ 1490 (72)発明者 オリバー モルシポン フランス国 ジュアン − レ − パ ン、 ビアス アブニュ ド カンヌ 22 (72)発明者 ローラン イシャール フランス国 ジュアン − レ − パ ン、 アブニュ ド カンヌ レ パン ブルー、55

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ディジタル・システムを操作する方法に
    おいて、 マイクロプロセッサの一部を複数個の区画に区画分けす
    る段階と、 マイクロプロセッサの命令パイプライン内で一連の命令
    を実行する段階と、 一連の命令内の命令のブロックを繰返し実行する段階で
    あって、ブロックは最初の命令と最後の命令とを有す
    る、前記実行する段階と、 複数個の区画の内の少なくとも1つが命令のブロックを
    実行するのに必要ないことを決定する段階と、 命令のブロックを繰返し実行する段階時に少なくとも1
    つの区画の動作を禁止し、これにより電力消散を減少す
    る段階と、を含むディジタル・システムを操作する方
    法。
  2. 【請求項2】 一連の命令を作成するためソースコード
    ・プログラムをアセンブルする方法において、一連の命
    令は最初の命令と最後の命令を含む命令の繰返しブロッ
    クを有し、 各命令の項目がその命令を含む命令群を定義する群パタ
    ーンを含むように、選択されたマイクロプロセッサによ
    り実行可能な各命令に対して項目を有する命令表を作成
    する段階と、 ソースコードを一連の命令に変換する段階と、 第1プロローグ命令と関係する命令の第1繰返しブロッ
    クの最初の命令と最後の命令を決定する段階と、 命令の第1ブロック中の各命令を表す命令表から選択さ
    れた複数個の群パターンを組合せて、第1繰返しプロフ
    ァイル・パラメータを形成する段階と、 第1繰返しプロファイル・パラメータを一連の命令中の
    第1プロローグ命令と関係付ける段階と、を含む方法。
  3. 【請求項3】 マイクロプロセッサを含むディジタル・
    システムにおいて、マイクロプロセッサは、 ディスパッチされた命令を実行する複数個の段を有する
    パイプラインと、 命令をデコードする命令デコーダであって、パイプライ
    ンに制御可能に接続されており、命令デコーダは各複数
    個の命令群に従って複数個の区画に区画分けされてい
    て、区画の少なくとも一つは禁止入力を有する、前記命
    令デコーダと、 プロローグ命令に応答して命令のブロックの繰返し実行
    を開始するブロック繰返し制御回路であって、前記ブロ
    ックは最初の命令と最後の命令を含む前記ブロック繰返
    し制御回路と、を含み、 命令デコーダはある種の命令群をデコードするよう動作
    可能であり、さらにブロック繰返し回路に応答して少な
    くとも一つの命令群のデコードを禁止するよう動作可能
    であり、これにより命令のブロックの繰返し実行時に命
    令デコーダにより消費される電力を減少する、ディジタ
    ル・システム。
JP2001006832A 2000-01-14 2001-01-15 マイクロプロセッサ Expired - Fee Related JP5133476B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP00400091.5 2000-01-14
EP00400091A EP1117031B1 (en) 2000-01-14 2000-01-14 Microprocessor with reduced power-consumption.
US09/716,645 US6795930B1 (en) 2000-01-14 2000-11-20 Microprocessor with selected partitions disabled during block repeat

Publications (2)

Publication Number Publication Date
JP2001236226A true JP2001236226A (ja) 2001-08-31
JP5133476B2 JP5133476B2 (ja) 2013-01-30

Family

ID=33454274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001006832A Expired - Fee Related JP5133476B2 (ja) 2000-01-14 2001-01-15 マイクロプロセッサ

Country Status (4)

Country Link
US (1) US6795930B1 (ja)
EP (1) EP1117031B1 (ja)
JP (1) JP5133476B2 (ja)
AT (1) ATE366958T1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009501961A (ja) * 2005-04-04 2009-01-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法
JP2009032257A (ja) * 2001-12-13 2009-02-12 Quicksilver Technologies Inc 有限状態機械制御コードを選択的に用いるプロセッサアーキテクチャ
JP2011204208A (ja) * 2010-03-26 2011-10-13 Fujitsu Ltd マルチコアプロセッサ

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6898718B2 (en) * 2001-09-28 2005-05-24 Intel Corporation Method and apparatus to monitor performance of a process
GB2382672B (en) * 2001-10-31 2005-10-05 Alphamosaic Ltd Repeated instruction execution
US7305567B1 (en) * 2002-03-01 2007-12-04 Cavium Networks, In. Decoupled architecture for data ciphering operations
KR20040101344A (ko) * 2002-04-19 2004-12-02 인터내셔널 비지네스 머신즈 코포레이션 마이크로프로세서, 인스트럭션 시퀀스 발생 방법 및 이를구현한 프로그램 디바이스
DE10221529A1 (de) * 2002-05-14 2003-12-04 Systemonic Ag Verfahren zum gesteuerten Abschalten von Datenverarbeitungseinheiten
EP1363179A1 (en) 2002-05-17 2003-11-19 STMicroelectronics S.A. Architecture for controlling dissipated power in a system on a chip and related system
US7146515B2 (en) * 2002-06-20 2006-12-05 International Business Machines Corporation System and method for selectively executing a reboot request after a reset to power on state for a particular partition in a logically partitioned system
AU2003267692A1 (en) * 2002-10-11 2004-05-04 Koninklijke Philips Electronics N.V. Vliw processor with power saving
US8276135B2 (en) * 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7120804B2 (en) * 2002-12-23 2006-10-10 Intel Corporation Method and apparatus for reducing power consumption through dynamic control of supply voltage and body bias including maintaining a substantially constant operating frequency
US7194601B2 (en) * 2003-04-03 2007-03-20 Via-Cyrix, Inc Low-power decode circuitry and method for a processor having multiple decoders
US7539876B2 (en) * 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7519833B2 (en) * 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7529367B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US8060755B2 (en) * 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7532722B2 (en) * 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7900055B2 (en) * 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7844053B2 (en) * 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7542566B2 (en) * 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7529368B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7536560B2 (en) * 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7502943B2 (en) * 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7039820B2 (en) * 2003-04-24 2006-05-02 International Business Machines Corporation Method for detecting and powering off unused I/O slots in a computer system
US7197655B2 (en) * 2003-06-26 2007-03-27 International Business Machines Corporation Lowered PU power usage method and apparatus
US7167989B2 (en) * 2003-10-14 2007-01-23 Intel Corporation Processor and methods to reduce power consumption of processor components
US7246219B2 (en) * 2003-12-23 2007-07-17 Intel Corporation Methods and apparatus to control functional blocks within a processor
EP1600845A1 (en) * 2004-05-28 2005-11-30 STMicroelectronics Limited Processor with power saving circuitry
US20060101256A1 (en) * 2004-10-20 2006-05-11 Dwyer Michael K Looping instructions for a single instruction, multiple data execution engine
US7669042B2 (en) * 2005-02-17 2010-02-23 Samsung Electronics Co., Ltd. Pipeline controller for context-based operation reconfigurable instruction set processor
US9582060B2 (en) * 2006-08-31 2017-02-28 Advanced Silicon Technologies Llc Battery-powered device with reduced power consumption based on an application profile data
US7804435B2 (en) * 2006-08-31 2010-09-28 Ati Technologies Ulc Video decoder with reduced power consumption and method thereof
FR2930355B1 (fr) * 2008-04-18 2013-01-18 Commissariat Energie Atomique Procede de gestion de la consommation d'energie pour les systemes multiprocesseurs.
US9280344B2 (en) * 2012-09-27 2016-03-08 Texas Instruments Incorporated Repeated execution of instruction with field indicating trigger event, additional instruction, or trigger signal destination
WO2014190263A2 (en) 2013-05-24 2014-11-27 Coherent Logix, Incorporated Memory-network processor with programmable optimizations
US9361027B1 (en) * 2014-12-16 2016-06-07 Texas Instruments Incorporated System and method for fast modification of register content

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04293124A (ja) * 1991-03-20 1992-10-16 Hitachi Ltd データ処理プロセッサ
JPH07160585A (ja) * 1993-12-13 1995-06-23 Hitachi Ltd 低電力データ処理装置
JPH09114660A (ja) * 1995-10-18 1997-05-02 Hitachi Ltd データ処理装置
JPH10326129A (ja) * 1997-05-23 1998-12-08 Mitsubishi Electric Corp 半導体装置
JP2000276351A (ja) * 1998-10-06 2000-10-06 Texas Instr Inc <Ti> ローカル命令ルーピングを有するプロセッサ

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6145354A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロプロセツサ
JP2510591B2 (ja) * 1987-06-12 1996-06-26 株式会社日立製作所 命令処理装置
JPH0328911A (ja) 1989-06-26 1991-02-07 Mitsubishi Electric Corp マイクロプロセッサ
US5167024A (en) 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
JP2762670B2 (ja) * 1990-03-30 1998-06-04 松下電器産業株式会社 データ処理装置
JP3529805B2 (ja) * 1992-03-27 2004-05-24 ナショナル・セミコンダクター・コーポレイション ハードウェア制御パワー管理機能と選択可能な入出力制御ピンとを有するマイクロプロセッサ
US5392437A (en) 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5603037A (en) 1993-04-23 1997-02-11 Intel Corporation Clock disable circuit for translation buffer
JPH07311758A (ja) * 1994-05-16 1995-11-28 Seiko Instr Inc 半導体集積回路及びこれを用いた携帯電子機器
US5754436A (en) 1994-12-22 1998-05-19 Texas Instruments Incorporated Adaptive power management processes, circuits and systems
JP3520611B2 (ja) * 1995-07-06 2004-04-19 株式会社日立製作所 プロセッサの制御方法
US5996083A (en) 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
US5920724A (en) * 1996-03-28 1999-07-06 Intel Corporation Software pipelining a hyperblock loop
US5887179A (en) * 1996-06-11 1999-03-23 Motorola, Inc. System power saving means and method
WO1998006040A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Architectural support for software pipelining of nested loops
US5742781A (en) 1996-08-09 1998-04-21 Hitachi America, Ltd. Decoded instruction buffer apparatus and method for reducing power consumption in a digital signal processor
US5880981A (en) 1996-08-12 1999-03-09 Hitachi America, Ltd. Method and apparatus for reducing the power consumption in a programmable digital signal processor
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04293124A (ja) * 1991-03-20 1992-10-16 Hitachi Ltd データ処理プロセッサ
JPH07160585A (ja) * 1993-12-13 1995-06-23 Hitachi Ltd 低電力データ処理装置
JPH09114660A (ja) * 1995-10-18 1997-05-02 Hitachi Ltd データ処理装置
JPH10326129A (ja) * 1997-05-23 1998-12-08 Mitsubishi Electric Corp 半導体装置
JP2000276351A (ja) * 1998-10-06 2000-10-06 Texas Instr Inc <Ti> ローカル命令ルーピングを有するプロセッサ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009032257A (ja) * 2001-12-13 2009-02-12 Quicksilver Technologies Inc 有限状態機械制御コードを選択的に用いるプロセッサアーキテクチャ
JP2009501961A (ja) * 2005-04-04 2009-01-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法
JP2011204208A (ja) * 2010-03-26 2011-10-13 Fujitsu Ltd マルチコアプロセッサ

Also Published As

Publication number Publication date
US6795930B1 (en) 2004-09-21
EP1117031B1 (en) 2007-07-11
JP5133476B2 (ja) 2013-01-30
ATE366958T1 (de) 2007-08-15
EP1117031A1 (en) 2001-07-18

Similar Documents

Publication Publication Date Title
JP5133476B2 (ja) マイクロプロセッサ
US6507921B1 (en) Trace fifo management
US6279100B1 (en) Local stall control method and structure in a microprocessor
US6810475B1 (en) Processor with pipeline conflict resolution using distributed arbitration and shadow registers
US7490228B2 (en) Processor with register dirty bit tracking for efficient context switch
EP1102163A2 (en) Microprocessor with improved instruction set architecture
WO2000033183A9 (en) Method and structure for local stall control in a microprocessor
EP1869536A2 (en) Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US7117342B2 (en) Implicitly derived register specifiers in a processor
EP1160662A1 (en) Processor with pointer tracking to eliminate redundant memory fetches
US20010042187A1 (en) Variable issue-width vliw processor
US6615338B1 (en) Clustered architecture in a VLIW processor
US6986028B2 (en) Repeat block with zero cycle overhead nesting
JP2009032257A (ja) 有限状態機械制御コードを選択的に用いるプロセッサアーキテクチャ
US7996660B2 (en) Software controlled CPU pipeline protection
JP2000284973A (ja) 二重割込みベクトル・マッピング装置とその操作方法
US6889320B1 (en) Microprocessor with an instruction immediately next to a branch instruction for adding a constant to a program counter
JP2001202241A (ja) 実行パケットが2以上の取出しパケットをスパンするマイクロプロセッサを備えるディジタル処理システム及び同システムの操作方法
US7039790B1 (en) Very long instruction word microprocessor with execution packet spanning two or more fetch packets with pre-dispatch instruction selection from two latches according to instruction bit
EP0992897A2 (en) Stack pointer management
US7290153B2 (en) System, method, and apparatus for reducing power consumption in a microprocessor
WO2002057893A2 (en) Method and apparatus for reducing power consuption in a digital processor
EP0992902A2 (en) Dual interrupt vector mapping
Oh et al. AE32000: an embedded microprocessor core
JP2000276352A (ja) パイプライン保護

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110517

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110617

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120406

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120705

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120710

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120803

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120808

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120905

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121005

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: 20121102

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121108

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5133476

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees