JPH10222367A - ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 - Google Patents

ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法

Info

Publication number
JPH10222367A
JPH10222367A JP10049945A JP4994598A JPH10222367A JP H10222367 A JPH10222367 A JP H10222367A JP 10049945 A JP10049945 A JP 10049945A JP 4994598 A JP4994598 A JP 4994598A JP H10222367 A JPH10222367 A JP H10222367A
Authority
JP
Japan
Prior art keywords
instruction
packet
target address
fetch
phase
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
JP10049945A
Other languages
English (en)
Other versions
JP3834145B2 (ja
Inventor
Sesuhan Natarajan
セスハン ナタラジャン
R Simmer Lawrence
アール. シマー ローレンス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH10222367A publication Critical patent/JPH10222367A/ja
Application granted granted Critical
Publication of JP3834145B2 publication Critical patent/JP3834145B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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

Abstract

(57)【要約】 【課題】 第1の分岐命令の遅延スロット(又は複数の
遅延スロット)において第2の遅延命令が発生したとき
に、命令実行パイプラインが停止することを原因とした
パフォーマンスの遅延をなくすようにしたマイクロプロ
セッサを備えたデータ処理装置及びそのマイクロプロセ
ッサの動作方法を提供する。 【解決手段】 マイクロプロセッサ1に命令フェッチ/
デコード装置10a〜10cと、算術演算及びロード/
ストア装置D1、乗算器M1、ALU/シフタ装置S
1、算術論理演算器(ALU)L1、データを読み出
し、かつデータを書き込む共有マルチポート・レジスタ
・ファイル20aを含む複数の実行装置と、データ・メ
モリ22とを備え、これらの装置により、インターロッ
クなしに動作する命令実行パイプラインを形成して、ネ
スト可能である遅延分岐命令を得る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サを備えたデータ処理装置及びそのマイクロプロセッサ
を動作させる方法に関し、特に命令実行パイプラインを
有するデータ処理装置、及びこのようなデータ処理装置
に備えられたマイクロプロセッサを動作させる方法に関
する。
【0002】
【従来の技術】マイクロプロセッサの設計者は、クロッ
ク速度を増加させ、かつ並行性を付加することによって
種々のマイクロプロセッサにおけるパフォーマンスを改
善するようにますます努めるようになった。複雑なデー
タ操作は多数の命令を実行する必要があり、これらの命
令は種々の形式のデータ操作のためにいくつかの反復サ
イクルを必要とすることがある。分岐命令は反復中に頻
繁に用いられている。分岐命令は、典型的に、分岐アド
レスを決定してその分岐アドレスの目標命令をフェッチ
するために、1又はそれより多くのクロック・サイクル
即ち「遅延スロット」を必要とする。遅延分岐命令は、
ある分岐命令の遅延スロット(又は複数の遅延スロッ
ト)において他の命令を実行可能にする。パイプライン
化命令の実行回路を有するマイクロプロセッサは、命令
実行シーケンス内で分岐アドレスを取ったために、又は
取らなかったために失ってしまう恐れのある多数の実行
サイクルを少なくするために、遅延分岐命令を備えるこ
とができる。しかし、もし第1の目標命令を実行する前
に第2の命令に遭遇すると、命令の実行順序を保存する
ために命令実行パイプラインは停止される。
【0003】
【発明が解決しようとする課題】本発明の目的は、第1
の分岐命令の遅延スロット(又は複数の遅延スロット)
において第2の遅延命令が発生したときに、命令実行パ
イプラインが停止することを原因としたパフォーマンス
の遅延を克服することである。
【0004】
【課題を解決するための手段】概要的に、本発明の一形
式では、中央処理装置を有するデータ処理装置を備え、
この中央処理装置はネストされた分岐命令を実行できる
命令実行パイプラインを有する。前記パイプラインは固
定数のパイプライン・フェーズにおいて目標アドレスを
有する分岐命令を処理及び実行するように動作可能であ
る。前記分岐命令の実行の最終フェーズにおいて前記目
標アドレスによりプログラム・カウンタがロードされ
る。フェッチ回路が前記プログラム・カウンタにおける
アドレスを用いて命令をフェッチする。
【0005】第2の遅延分岐命令の処理は、先行する遅
延分岐命令に関する処理の開始後の次のフェーズにおい
て開始されてもよい。前記遅延分岐命令の目標アドレス
は、前記第1の分岐命令の目標アドレスをプログラム・
カウンタにロードした後の次のフェーズにおいて前記プ
ログラム・カウンタにロードされる。従って、この発明
のネスト可能な遅延分岐命令により複雑な分岐シーケン
スを作成することができる。
【0006】例えば、ネストされた遅延分岐命令のシー
ケンスに同一の目標アドレスを置くことにより、単一の
フェーズ反復ループを形成することができる。更に、前
記目標命令のフェッチ・パケットに遅延分岐命令を置く
ことにより、無期限の単一フェーズ反復ループを形成す
ることができる。選択した条件を検出したときは、この
ループを抜け出すことができる。
【0007】本発明の他の形式において、データ処理装
置内の中央処理装置(CPU)を動作させる方法は、多
数のフェーズにおいて分岐命令を処理及び実行する命令
実行パイプラインを設けるステップと、目標アドレスに
よる分岐命令を含む命令パケットをフェッチするステッ
プと、次のパイプライン・フェーズにおいて分岐命令を
有する第2の命令パケットをフェッチするステップと、
前記第1の分岐命令の目標アドレスをプログラム・カウ
ンタに受け取るステップと、前記次のパイプライン・フ
ェーズにおいて前記第2の分岐命令の前記目標アドレス
を前記プログラム・カウンタに受け取るステップとを備
えている。
【0008】本発明の他の実施例は詳細な説明及び図面
から明らかとなる。
【0009】本発明の他の特徴及び効果は、添付する図
面に関連して考慮すれば、以下の詳細な説明を参照する
ことにより明らかとなる。
【0010】異なる図面及び図表において対応する番号
及びシンボルは、特に指摘しない限り対応する部分を示
す。
【0011】
【発明の実施の形態】図1は本発明の一実施例を有する
マイクロプロセッサ1のブロック図である。マイクロプ
ロセッサ1はVLIWディジタル信号プロセッサ(DS
P)である。明確にする観点から、図1は本発明の一実
施例を理解するために関係するマイクロプロセッサ1の
部分のみを示す。DPSに関する一般的な構成の詳細は
周知であり、他にも容易に見出すことができる。例え
ば、フレデリック・ブトー(Frederik Bou
taud)ほかに発行された米国特許第5,072,4
18号は、詳細にDSPを説明しており、ここでは引用
による関連される。ゲーリ・スボボダ(Gary Sw
oboda)ほかに対して発行された米国特許第5,3
29,471号は、どのようにDSPをテストし、かつ
エミュレートするかについて詳細に説明しており、ここ
では引用による関連される。本発明の一実施例に関連す
るマイクロプロセッサ1の部分の詳細は、マイクロプロ
セッサ技術に通常に習熟する者が本発明を作成して使用
するできるように、以下に十分詳細に説明されている。
【0012】マイクロプロセッサ1内には、中央処理装
置(CPU)10、データ・メモリ22、プログラム・
メモリ23、周辺装置60、及び直接メモリ・アクセス
(DMA)を有する外部メモリ・インタフェース(EM
IF)61が示されている。CPU10は、更に、命令
フェッチ/デコード装置10a〜10cと、算術演算及
びロード/ストア装置D1、乗算器M1、ALU/シフ
タ装置S1、算術論理演算装置(ALU)L1及びデー
タを読み出すと共にデータを書き込む共有マルチポート
のレジスタ・ファイル20aを含む複数の実行装置とを
有する。デコードされた命令は命令フェッチ/デコード
装置10a〜10cから図示していない種々の組の制御
ラインを介して機能装置(算術演算及びロード/ストア
装置D1、乗算器M1、ALU/シフタ装置S1及びA
LU L1)に供給される。データは、レジスタ・ファ
イル20aから第1組のバス32aを介してレジスタ・
ファイル20aへ又はその逆へ、第2組のバス34aを
介して乗算器M1へ、第3組のバス36aを介してAL
U/シフタ装置S1へ、及び第4組のバス38aを介し
てALU L1へ供給される。データは、メモリ22か
ら第5組のバス40aを介して算術演算及びロード/ス
トア装置D1へ又はその逆へ供給される。以上で説明し
たデータ・パスの全体は、レジスタ・ファイル20b及
び実行装置D2、M2、S2及びL2により二重化され
ていることに注意すべきである。命令は、プログラム・
メモリ23から1組のバス41を介して命令フェッチ/
デコード装置10aに供給される。エミュレーション装
置50は、外部テスト・システム51により制御可能に
されているマイクロプロセッサ1の内部回路に対するア
クセスを行う。
【0013】図1に示されているデータ・メモリ22及
びプログラム・メモリ23はマイクロプロセッサ1の一
部の集積回路であり、その範囲はブロック42により表
されていることに注意すべきである。データ・メモリ2
2〜プログラム・メモリ23は、マイクロプロセッサ1
の集積回路42の外部にあっても、又はその一部が集積
回路42に存在し、かつその一部が集積回路42の外部
にあってもよい。更に、他の数の実行装置を用いること
もできる。
【0014】マイクロプロセッサ1がデータ処理システ
ムに関連されているときは、図1に示すように、付加的
なメモリ又は周辺装置をマイクロプロセッサ1に接続し
てもよい。例えば、ランダム・アクセス・メモリ(RA
M)70、読み出し専用メモリ(ROM)71及びディ
スク72は、外部バス73を介して接続されているのが
示されている。外部バス73は集積回路42内の機能ブ
ロック61の一部である外部メモリ・インタフェース
(EMIF)に接続されている。更に、直接メモリ・ア
クセス(DMA)コントローラはブロック61にも含ま
れている。DMAコントローラは、通常、マイクロプロ
セッサ1内のメモリと周辺装置との間でデータを転送す
るために用いられる。
【0015】本発明の構成により効果が得られるいくつ
かのシステム例は、ここで参照により関連される米国特
許第5,072,418号、特に米国特許第5,07
2,418号の図2−18を参照して説明されている。
パフォーマンスを改善するため、又はコストを減少させ
るために本発明の構成に関連するマイクロプロセッサ
は、米国特許第5,072,418号に説明されている
システムを更に改善するために用いられてもよい。しか
し、このようなシステムは、工業的なプロセス制御、オ
ートモティーブ車両システム、モータ制御、ロボット制
御システム、衛星通信システム、エコー打ち消しシステ
ム、モデム、ビデオ映像システム、音声認識システム、
暗号によるボーコーダ・モデム・システム等に限定され
ない。
【0016】図1の種々のアーキテクチャ上の特徴の説
明は共通に譲受された米国特許出願第60/036,4
82号(TI文書番号T−25311)に記載されてい
る。更に、図1のマイクロプロセッサ用の完全な命令セ
ットの説明は、共通に譲受された米国特許出願第60/
036,482号(TI文書番号T−25311)に記
載されている。
【0017】図2は図1のマイクロプロセッサの実行装
置及びレジスタ・ファイルのブロック図であり、種々の
機能ブロックを接続するバスの更に詳細な図を示す。こ
の図において、全てのデータ・バスは特に記載がない限
り32ビット幅である。バス40aはアドレス・バスD
A1を有し、マルチプレクサ200aにより駆動され
る。これは、ロード/ストア装置D1又はD2が発生し
たアドレスをレジスタ・ファイル20aにロード即ち記
憶するためのアドレスを供給可能にさせる。データ・バ
スLD1はアドレス・バスDA1により指定されたデー
タ・メモリ22のアドレスによるデータを算術演算及び
ロード/ストア装置D1にロードさせる。算術演算及び
ロード/ストア装置D1はレジスタ・ファイル20aに
データを記憶する前に供給されたデータを操作すること
ができる。同様に、データ・バスST1はレジスタ・フ
ァイル20aからのデータをデータ・メモリ22に記憶
する。算術演算及びロード/ストア装置D1は下記のオ
ペレーション:32ビット加算、引算、線形及び循環ア
ドレス計算を実行する。算術演算及びロード/ストア装
置D2は、マルチプレクサ200bを介して算術演算及
びロード/ストア装置D1と同じように動作してアドレ
スを選択する。
【0018】ALU L1は下記の形式のオペレーショ
ン:32/40ビット算術演算オペレーション及び比較
オペレーション、32ビットについて左端1、0ビット
・カウント、32及び40ビットについての正規化カウ
ント、及び論理オペレーションを実行する。ALU L
1は32ビット・ソース・オペランド用の入力src1
及び第2の32ビット・ソース・オペランドの入力sr
c2を有する。入力msb srcは8ビット値であ
り、40ビット・ソース・オペランドを形成するために
用いられる。ALU L1は32ビット行き先オペラン
ド用の出力dstを有する。出力msb dstは8ビ
ット値であり、40ビット行き先オペランドを形成する
ために用いられる。レジスタ・ファイル20a内の2つ
の32ビットのレジスタは40ビットのオペランドを保
持するように連結されている。Mux211は入力sr
c1に接続されており、32ビット・オペランドがバス
38aを介してレジスタ・フアイル20aから、又はバ
ス210を介してレジスタ・ファイル20bから得られ
るようにする。Mux212は入力src2に接続され
ており、32ビット・オペランドがバス38aを介して
レジスタ・ファイル20aから、又はバス210を介し
てレジスタ・ファイル20bから得られるようにする。
ALU L2はALU L1と同じように動作する。
【0019】ALU/シフタ装置S1は下記の形式のオ
ペレーション:32ビットの算術演算オペレーション、
32/40ビット・シフト、及び32ビット・ビット・
フィールド・オペレーション、32ビット論理オペレー
ション、分岐、及び定数発生オペレーションを実行す
る。ALU/シフタ装置S1は32ビット・ソース・オ
ペランド用の入力src1、及び第2の32ビット・ソ
ース・オペランド用の入力src2を有する。入力ms
b srcは8ビット値であり、40ビット・ソース・
オペランドを形成するために用いられる。ALU/シフ
タ装置S1は32ビット行き先オペランド用の出力ds
tを有する。出力msb dstは8ビット値であり、
40ビットのソース・オペランドを形成するために用い
られる。Mux213は入力src2に接続されてお
り、32ビット・オペランドがバス36aを介してレジ
スタ・ファイル20aから、又はバス210を介してレ
ジスタ・ファイル20bから得られるようにする。AL
U S2はALU/シフタ装置S1と同じように動作
し、制御レジスタ・ファイル102から/へのレジスタ
転送を実行する。
【0020】乗算器M1は16×16乗算を実行する。
乗算器M1は32ビット・ソース・オペランド用の入力
src1及び32ビット・ソース・オペランド用の入力
src2を有する。ALU/シフタ装置S1は32ビッ
ト行き先オペランド用の出力dstを有する。Mux2
14は入力src2に接続されており、32ビット・オ
ペランドがバス34aを介してレジスタ・ファイル20
aから、又はバス210を介してレジスタ・ファイル2
0bから得られるようにする。乗算器M2は乗算器M1
と同じように動作する。
【0021】図3は図1のマイクロプロセッサ内の命令
実行パイプラインの処理フェーズを示す図表である。各
処理フェーズはシステム・クロックのクロック・サイク
ルにほぼ対応する。例えば、マイクロプロセッサ1が2
00MHzで動作しているのであれば、各処理フェーズ
は公称5nsである。しかし、RAM70のようなメモ
リ又は周辺装置からデータが期待されるフェーズにおい
て、期待されるときにデータがレディーでなければ、パ
イプラインは停止してしまう。停止すれば、与えられた
パイプラインのフェーズは多数のシステム・クロック・
サイクルに対して存在することになる。
【0022】図3において、命令を処理する第1の処理
フェーズはフェーズPGにおいてプログラム・アドレス
を発生することである。これは制御レジスタ・ファイル
102に位置するプログラム・フェッチ・カウンタPF
Cをロードすることにより行われる。第2の命令の処理
フェーズPSでは、命令フェッチ・パケットのアドレス
がバス41の一部であるプログラム・アドレス・バスP
ADDRを介してプログラム・メモリ23に送出され
る。第3の処理フェーズPWはプログラム・メモリ23
でのアクセス時間を許容するための待機フェーズであ
る。第4の処理フェーズPRでは、プログラム・フェッ
チ・パケットは、バス41の一部であるデータ・バスP
DATA Iを介してプログラム・メモリ23から得ら
れる。第5の処理フェーズDPでは、命令の並行が検出
され、実行可能とされる命令が適当な機能装置に送出さ
れる。以下の記載においてこのパイプライン・オペレー
ションの構成を更に詳細に説明する。第6の処理フェー
ズDCでは、実行可能な命令をデコードし、種々のデー
タ・パス及び機能装置を制御するために制御信号を発生
させる。
【0023】図4は図1のマイクロプロセッサ内の命令
実行パイプラインの実行フェーズを説明する図表であ
る。第1の実行フェーズE1では、「ISC」と呼ばれ
る単一サイクル命令、及び「BR」と呼ばれる分岐命令
が完結する。指定された実行装置は、制御回路100に
より指示された図4に示すオペレーションを実行する。
第2の実行フェーズE2では、下記の形式の命令:整数
乗算(IMPY)、プログラム記憶命令(STP)、及
びデータ記憶命令(STD)が制御回路100の制御に
より指定された実行装置により、完結される。第3の実
行フェーズE3では、データのロード命令(LD)の実
行が、図示のように、データ・メモリ・システム(DM
S)からデータをラッチすることにより継続する。実行
フェーズE4では、実行フェーズE3においてラッチさ
れたデータが算術演算及びロード/ストア装置D1又は
D2内のデータ入力レジスタDDATA Iに転送され
る。実行フェーズE5では、データ入力レジスタDDA
TA Iのデータを操作し、かつレジスタ・ファイル2
0a又は20b内の指定されたレジスタに操作したデー
タを書き込むことにより、LD命令が完結する。
【0024】図5は、図3の処理フェーズにおける実行
フェーズ命令フェッチ・パケットの処理、及び図4の実
行フェーズにおける実行フェーズの実行の詳細なタイミ
ングを示すタイミング図である。フェーズPSではプロ
グラム・メモリ・レディー信号PRDYがローであるた
めに、フェーズPWにおいてパイプ停止が示されてお
り、またフェーズE2ではデータ・メモリ・レディー信
号DRDYがローであるために、フェーズE3において
第2のパイプ停止が示されていることに注意すべきであ
る。
【0025】図6は、本発明により図3、図4及び図5
に示した命令実行パイプラインにおける遅延分岐命令
(BR)を実行するときに、含まれる遅延スロットを示
す。BR命令は、ここで「目標アドレス」と呼ばれるア
ドレスを供給する。この目標アドレスは、マイクロプロ
セッサ1により実行されているプログラムの論理シーケ
ンスにおいて次に実行されるべき命令のアドレスであ
る。BR命令の実行フェーズE1では、命令フェッチ/
デコード装置10aの一部であるプログラム・フェッチ
・カウンタ(PFC)がBR命令により与えられる目標
アドレスを受け取る。目標アドレスが変位値であれば、
これは、プログラム・フェッチ・カウンタPFCに送出
される前に、シフトされて分岐命令を含むフェッチ・パ
ケットのアドレスに加算される。目標アドレスが分岐命
令により指定されたレジスタに含まれていれば、レジス
タの内容をプログラム・フェッチ・カウンタにロードす
る。そこで、このフェーズは目標アドレスの命令処理フ
ェーズPGに対応している。命令パイプラインのオペレ
ーションに関連して以上で説明したように、目標アドレ
ス命令がフェーズE1において実行を開始する前に、更
に5つのフェーズPS、PW、PR、DP及びDCを完
結する。目標アドレス命令BR命令の実行フェーズE1
と目標命令の実行フェーズE1との間の「遅延」は、命
令アドレスの流れにおける変化のために実行パイプライ
ンに対する「ヒット」を表している。このパイプライン
・ヒットのパフォーマンス影響を最小化するために、マ
イクロプロセッサ1は、図7に示すように、BR命令後
に逐次的にアドレス指定される下記の5命令を実行し続
ける。図7において、アドレス「n」からの命令はBR
命令であり、またBR命令の目標アドレスはアドレス
「m」である。アドレスn+1〜n+5からの命令は有
効なオペレーションを実行することかできるか、又はプ
ログラム・フローにおいて有効に実行され得るものが他
になけば、ノー・オペレーション(NOP)とすること
ができる。このモードの分岐オペレーションは、分岐命
令後に、付加的なシーケンス命令を処理するので、「遅
延分岐」と呼ばれる。
【0026】図8はプログラム・メモリ23からフェッ
チされた命令パケットの基本フォーマットを示す。一実
施例において、命令パケットには4つの32ビット命令
A、B、C及びDが含まれている。図8に示すように、
命令A、B、C及びDはプログラム・メモリ23に連続
するアドレスで記憶される。従って、プログラム命令の
通常的な逐次実行では、命令Aが最初に実行され、逐次
的に命令B、C及びDが続く。
【0027】図8における各命令のビット0はpビット
として表された。これらのpビットは、命令をどのよう
に実行するのかを定義する。図8の命令パケットのpビ
ットは、命令処理フェーズDPにおいてプログラム・デ
ィスパッチ回路10bにより左から右へ調べられる。与
えられた命令のpビットが1に等しいときは、命令パケ
ットにおける次のシーケンス命令が最初に述べた命令と
並列に実行されることになる。プログラム・ディスパッ
チ回路10bは、命令パケット内の命令が論理0に等し
いpビットに到達するまで、このルールを適用する。
【0028】与えられた命令が0のpビットを有すると
きは、与えられた命令の後に(及び与えられた命令と並
列に実行される任意の命令の後に)、次のシーケンス命
令を逐次的に実行する。プログラム・ディスパッチ回路
10bは、論理1のpビットを有する命令パケット内の
命令に到達するまで、このルールを適用する。
【0029】図3を再び参照すると、処理フェーズPR
では、前のフェッチ・パケットにおける少なくとも一つ
の命令の逐次的な実行のために新しい命令フェッチ・パ
ケットを必要としないのであれば、新しい命令フェッチ
・パケットをラッチしない。図5に示したストローブ信
号PDSは、プログラム・データを必要としないのであ
れば、主張されない。この場合に、プログラム・データ
・ラッチPDATAIはプログラム・メモリ23から得
た最後のプログラム・フェッチ・パケットを保持する。
【0030】図9A〜図13Aは前述のpビット・ルー
ルの種々の例を示す。図9Aは全てのpビットが0であ
る命令パケットを示す。従って、命令A〜Dは図9Bに
示すように、逐次的に実行される。
【0031】図10Aは命令A、B及びCのpビットが
1に等しく、かつ命令Dのpビットが0である命令パケ
ットを示す。従って、命令A、BC及びDが同時に、即
ち図10Bに示すように、並列に実行される。
【0032】図11Aの命令では、命令Cのpビットの
みが1にセットされており、図11Bの実行シーケンス
に帰結し、即ち命令A及びBが逐次的に実行され、並列
に実行される命令C及びDが続く。
【0033】図12Aの命令パケットでは、命令Bのp
ビットのみが1にセットされており、図12Bに示す実
行シーケンスに帰結する。即ち、命令Aが実行され、逐
次的に命令B及びCの並列実行が続き、次いで逐次的に
命令Dの実行が続く。
【0034】図13Aの命令パケットでは、命令B及び
Cのpビットが1にセットされており、かつ命令A及び
Dのpビットが0である。これは図13Bに示す命令シ
ーケンスに帰結する。即ち、命令Aが実行され、次いで
逐次的に命令B、C及びDの並列実行が続く。
【0035】開示された例における命令パケットには4
プログラム命令が含まれているので、プログラム・コン
パイラは常に0のpビットを有する命令D(第4命令)
を供給する。コンパイラは並列に命令A及びBを実行す
る特性、並列に命令B及びCを実行する特性、及び並列
に命令A、B及びCを実行する特性に基づいて、命令
A、B及びCの残りのpビットの値を判断する。例え
ば、命令Aの実行により得た結果を命令Bの実行が必要
とするときは、0のpビットを有する命令Aを供給し、
従って命令Aの後に逐次的に命令Bを実行する。他の例
として、命令B及びCが同一レジスタをアクセスするの
であれば、コンパイラは、命令B及びCを並列ではなく
逐次的に実行するのを保証するように、0のpビットを
有する命令Bを供給することになる。
【0036】図14Aは、ネストされた遅延分岐命令を
有する命令パケット・シーケンスの本発明による例を示
しており、6回実行される単一のフェーズ・ループを発
生するものである。アドレス位置「n」からフェッチさ
れた命令フェッチ・パケット1310には、「m」の目
標アドレスを有する分岐命令Aが含まれている。命令A
におけるpビットは1なので、同一のフェッチ・パケッ
トにおける命令Bは命令Aと並列に実行される。命令B
は有用な他のいくつかのオペレーションを実行してもよ
い。更に、命令Cもmの目標アドレスを有する分岐命令
である。命令Dは命令CのpビットのためにCと並列に
実行される。本発明の一構成によれば、命令C及びDは
共に、図14Bに示すように、命令Bにおけるpビット
のために、命令Aの第1の遅延スロットにおいて処理を
開始する。都合のよいことに、ある分岐命令に第2の分
岐命令が続くときに、マイクロプロセッサ1の命令実行
パイプラインにインターロック即ち遅延が発生すること
はない。
【0037】同じように、命令E、G、I及びKはmの
目標アドレスを有する分岐命令である。命令対E〜Fは
命令Aの第2の遅延スロットにおいて処理を開始し、命
令対G〜Hは命令Aの第3の遅延スロットにおいて処理
を開始し、命令対I〜Jは命令Aの第4の遅延スロット
において処理を開始し、かつ命令対K〜Lは命令Aの第
5の遅延スロットにおいて処理を開始する。
【0038】図7によれば、この時点で、命令Mは分岐
命令Aに応答してアドレスmからフェッチされているフ
ェッチ・パケット1340による処理を開始する。次の
フェーズでは、命令Mの他のコピーは分岐命令Cに応答
してアドレスmからフェッチされているフェッチ・パケ
ット1341による処理を開始する。次のフェーズで
は、命令Mの他のコピーは分岐命令Eに応答してアドレ
スmからフェッチされているフェッチ・パケット134
2による処理を開始する。次のフェーズでは、命令Mの
他のコピーは分岐命令Gに応答してアドレスmからフェ
ッチされているフェッチ・パケット1343による処理
を開始する。次のフェーズでは、命令Mの他のコピーは
分岐命令Iに応答してアドレスmからフェッチされてい
るフェッチ・パケット1344による処理を開始する。
次のフェーズでは、命令Mの他のコピーは分岐命令Kに
応答してアドレスmからフェッチされているフェッチ・
パケット1345による処理を開始する。Kは最後の分
岐命令であったので、命令Qは、フェッチ・パケット1
345に続くアドレスmの後に次の逐次的なアドレスと
してアドレスm+1からフェッチされて、次のフェーズ
において処理を開始する。
【0039】図14Bを調べることにより明らかなよう
に、命令Mは命令Qを実行する前に6回実行される。こ
れはゼロのオーバヘッドによる反復ループを効率的に作
成する。これは、データ・ブロック上で実行されるオペ
レーションのように種々の反復的な作業にとって都合が
よい。ループの前に設定する分岐命令の数を予め選択す
ることにより、反復ループの長さを2から6に変化させ
てもよいことを理解すべきである。
【0040】更に、分岐命令の条件特性を用いることに
より、この反復ループの長さをダイナミックに変更する
ことができる。この実施例における分岐命令は、条件に
よって実行される。指定された条件が真であれば、分岐
命令を実行し、プログラムの流れは前述のような遅延形
式により目標アドレスへ分岐する。この条件が偽であれ
ば、分岐命令はノー・オペレーションとして取り扱われ
る。
【0041】従って、予め選択した条件が検出される適
当な条件信号により満足されないと命令Cが判断すると
きは、命令Cを実行せず、かつ反復ループのサイズを1
により減少させる。同じように、命令E、G、I又はK
は条件によって実行せずに反復ループのサイズを減少さ
せないようにしてもよい。
【0042】図15Aは、ネストされた遅延分岐命令を
有する命令パケットのシーケンスの本発明による他の例
を示す。これは、条件テストが偽となるまで、実行され
る単一フェーズ・ループを発生する。この例は図14A
と同一であるが、この場合に、命令Mは更にそれ自身の
目標アドレスを有する分岐命令である。このループは、
6つの分岐命令を逐次的な処理用に設定することによ
り、前のように開始されて最初の分岐の遅延スロットを
満たす。このループが開始されると、命令Mは命令フェ
ッチ・パケット1440〜1445のように6回処理さ
れる。分岐命令Mが処理される度に、反復ループは1フ
ェーズだけ延長される。従って、ゼロ・オーバヘッドの
反復ループが無期限に実行される。前述のように、条件
信号が偽であることを分岐命令が検出することにより、
このループを抜け出すことができる。ループを完全に抜
け出すためには条件信号を6回検知することに注意すべ
きである。
【0043】分岐命令の処理では、マイクロプロセッサ
1が割り込み処理を禁止している。これは、割り込み処
理の完了後に命令パイプラインをその割り込み前の状態
に正しく復旧させるために、割り込み処理の開始時にセ
ーブしなければならない状態量を簡単化することにあ
る。
【0044】図16はネストされた遅延分岐を用いて最
適化される内側ループ及び外側ループを有するプログラ
ムを示す、本発明によるフローチャートである。外側ル
ープはアドレスxから命令実行パケット1500による
実行処理を開始する。内側ループはアドレスyから命令
実行パケット1510による実行処理を開始する。任意
数の命令パケットはパケット1500とパケット151
0との間で処理されてもよい。更に、パケット1500
及びパケット1510はいくつかの場合に同一アドレス
からの同一命令パケットであってもよい。アドレスmか
らの命令実行パケット1520は、yの目標アドレスに
よる内側ループに関する分岐命令を有し、かつ条件i_
condに基づく条件付きのものである。命令実行パケ
ット1521及び1522はパケット1520の遅延ス
ロット1及び2における処理をそれぞれ開始する。命令
パケット1522は、xの目標アドレスによる外側ルー
プに関する分岐命令を有し、かつ条件o_condに基
づく条件付きのものである。命令実行パケット1523
及び1525はパケット1520の遅延スロット3〜
5、更にパケット1522の遅延スロット1〜3にあ
る。i_condが真であり、かつo_condが偽で
あるときは、実行パケット1520はパケット1525
後に処理を開始する。i_condが偽であり、かつo
_condが真であるときは、実行パケット1526及
び1527は処理され、次いでパケット1500が処理
される。このようにして、小さな分岐オーバヘッドを都
合良く有する2つのループが形成される。
【0045】明らかなように、本発明の新しい技術を用
いて多くの複雑なシーケンスの分岐を実行することがで
きる。
【0046】図17〜図16は図1のマイクロプロセッ
サ用の命令フォーマットを示し、特に図26は本発明に
よるネスト可能な遅延分岐命令用の命令フォーマットを
示す。フィールド「cst」には目標アドレスを定義す
る21ビットのアドレス変位定数が含まれる。フィール
ド「creg」はレジスタ・ファイル20内の16レジ
スタのうちの一つを指定して条件テスト用に用いる。フ
ィールド「z」はテストするのは0に対してか又は1に
対してかを指定する。指定した条件レジスタが指定され
たテストに一致するときは、分岐命令を実行し、かつプ
ログラムの流れが前述のように遅延した形式による目標
アドレスに分岐する。テストがノーであれば、分岐命令
をノー・オペレーションとして取り扱う。
【0047】本発明の他の実施例における新しい特徴
は、命令フェッチ・パケットにおける4命令以外を有す
る。図27に示されているこのような一実施例では、命
令フェッチ・パケットには8命令が含まれている。命令
フェッチ・パケット1710は送出されて、図示のよう
に8実行装置にデコードされる。フェッチ・パケット1
720には分岐命令1725が含まれている。命令フェ
ッチ・パケット1730には3つの命令実行パケットが
含まれている。第1の命令実行パケットには、分岐命令
1725の第1の遅延スロットにおける処理を開始させ
る2つの命令、ZERO、SHLが含まれている。第2
の命令実行パケットには、分岐命令1725用の第2の
遅延スロットにおける処理を開始させるADD、SU
B、STW、STWが含まれている。第3の命令実行パ
ケットには、分岐命令1725の第3の遅延スロットに
おける処理を開始させる2つの命令ADDK、BRが含
まれている。本発明の特徴によれば、分岐命令1738
は、分岐命令1725の第3の遅延スロットにおける処
理を開始させ、かつ命令フェッチ/デコード装置10a
内のプログラム・フェッチ・カウンタPFCにより分岐
命令1738の目標アドレスを受け取った後、5つのパ
イプライン・フェーズが完結する。
【0048】本発明の他の実施例の新しい特徴には、組
み合わせ機能の総ゲート・カウントを小さくするため
に、ここで開示した回路と組み合わせられた他の回路が
含まれる。当該技術分野に習熟する者はゲート最小化の
技術に通じているので、ここでこのような実施例の詳細
については説明しない。
【0049】本発明の他の実施例の新しい特徴におい
て、割り込み処理は分岐命令処理中に実行可能にされ
る。この場合に、割り込み回路90が受け取った割り込
みは、分岐命令の処理中に命令実行パイプラインに割り
込みできるようにされる。割り込みに応答するために、
命令フェッチ/デコード装置10cは、処理フェーズD
Cに進行しなかった処理における全ての命令を無効にす
る。これはデコードされた全ての命令が待機中の任意の
書き込み動作を完了できるようにする。従って、無効に
された命令を再フェッチ及び再処理することにより、パ
イプラインを再開始することができる。しかし、遅延分
岐をネスト可能にする本発明の新しい特徴によれば、単
純なフェッチの再開始がパイプラインを正しく再び満た
すことはない。従って、遅延分岐命令の処理中に割り込
みを可能にさせるために、パイプライン全体を表す状態
は、割り込みを処理する前にセーブされなければならな
い。この状態はデータ・メモリ22の指定された領域に
セーブされてもよい。割り込み処理が完了すると、パイ
プラインはセーブされた状態情報により完全に復旧され
る。
【0050】本発明の他の実施例の新しい構成では、命
令フェッチ/デコード装置10aにおけるアドレス比較
回路が次のフェッチ・パケットが、例えば図14Bにお
けるように、フェッチ・パケット1341〜1345に
対する前のフェッチ・パケットと同一アドレスからのも
のであるときを検出する。このような場合に、試行され
たフェッチは禁止され、本発明のフェッチ・パケットが
保持される。
【0051】ここで用いているように、用語「適用され
た」及び「接続された」は、電気的な接続パスに付加的
な要素が存在してもよいことを含め、電気的に接続され
たことを意味する。
【0052】実施例を参照して本発明を説明したが、こ
の説明は限定する意味で解釈されることを意図するもの
ではない。本発明の他の種々の実施例はこの説明を参照
することにより当該技術分野に習熟する者に明らかであ
る。従って、請求の範囲は実施例の如何なる変更も本発
明の真の範囲及び精神内に属することを意図している。
【0053】以上の項に関して更に以下の項を開示す
る。
【0054】(1)命令実行パイプラインを有する中央
処理装置であって、前記パイプラインは第1の所定数の
パイプライン・フェーズにおける第1の目標アドレスを
有する第1の分岐命令を処理及び実行するように動作可
能な前記中央処理装置と、前記所定数のパイプライン・
フェーズの最終フェーズにおいて前記第1の目標アドレ
スを受け取ってフェッチ・アドレスを形成するように動
作可能なプログラム・カウンタ回路と、前記プログラム
・カウンタ回路により指定された前記フェッチ・アドレ
スから命令フェッチ・パケットをフェッチするように動
作可能なフェッチ回路であって、前記命令フェッチ・パ
ケットは前記命令実行パイプラインにより処理をするよ
うに少なくとも一つの命令を有する前記フェッチ回路
と、前記第1の目標アドレスを有する前記第1の分岐命
令の処理を開始した後、直ちにパイプライン・フェーズ
において第2の目標アドレスを有する第2の分岐命令の
処理を開始するように動作可能な前記命令実行パイプラ
イン用の制御回路とを備え、前記プログラム・カウンタ
回路は前記第1の目標アドレスを受け取った後、直ちに
パイプライン・フェーズにおいて前記第2の目標アドレ
スを受け取るように動作可能であるデータ処理装置。
【0055】(2)前記制御回路は、前記パイプライン
・フェーズの前記第1の所定数より少ない、又は等しい
第2数の分岐命令の連続的な処理を開始するように動作
可能である第1項記載のデータ処理装置。
【0056】(3)前記第2数の分岐命令はそれぞれ同
一目標命令パケットの目標アドレスを有し、前記フェッ
チ回路は、前記目標命令パケットを含む単一のフェーズ
反復ループが前記第2の回数により実行されるように、
前記目標命令パケットをフェッチして前記第2の回数に
より連続的に処理するように動作可能である第2項記載
のデータ処理装置。
【0057】(4)前記目標命令パケットは前記目標命
令パケットの目標アドレスを有する分岐命令を含み、前
記分岐命令の前記第2数は前記処理フェーズの前記所定
数に等しく、かつ前記制御回路が制御信号を受け取るま
で、前記目標命令パケットを含む前記単一のフェーズ反
復ループを無制限回数により実行するように、前記目標
命令パケットの処理を連続的に開始するように動作可能
である第3項記載のデータ処理装置。
【0058】(5)更に、前記反復ループの処理中は禁
止されるように動作可能である割り込み回路を備えてい
る第3項記載のデータ処理装置。
【0059】(6)更に、前記反復ループの処理に割り
込みをするように動作可能な割り込み回路と、前記割り
込み回路からの割り込みに応答して前記反復ループを表
す状態をセーブするように動作可能な状態セーブ回路
と、前記反復ループを表す前記状態を復旧させるように
動作可能な状態復旧回路とを備えている第3項記載のデ
ータ処理装置。
【0060】(7)命令実行パイプラインを有する中央
処理装置であって、前記パイプラインは第1の所定数の
パイプライン・フェーズにおける第1の目標アドレスを
有する分岐命令を処理及び実行するように動作可能であ
る前記中央処理装置と、前記所定数のパイプライン・フ
ェーズの最終フェーズにおいて前記目標アドレスを受け
取ってフェッチ・アドレスを形成するように動作可能な
プログラム・カウンタ回路と、前記プログラム・カウン
タ回路により指定された前記フェッチ・アドレスから目
標命令フェッチ・パケットをフェッチするように動作可
能なフェッチ回路であって、前記目標フェッチ・パケッ
トは前記命令実行パイプラインにより処理をするように
少なくとも一つの命令を有する前記フェッチ回路と、前
記第1の所定数のパイプライン・フェーズより少ない、
又は等しい第2数の分岐命令の連続的な処理を開始する
ように動作可能な前記命令実行パイプライン用の制御回
路とを備え、前記フェッチ回路は、前記目標命令パケッ
ト含む単一のフェーズ反復ループを前記第2の回数実行
するように、前記目標命令フェッチ・パケットをフエッ
チして前記第2の回数連続的な処理をするように動作可
能であるデータ処理装置。
【0061】(8)データ処理装置内の中央処理装置
(CPU)を動作させる方法において、第1の所定数の
命令処理フェーズ及び第2数の実行フェーズを有する命
令実行パイプラインを設けるステップと、第1フェーズ
の命令処理フェーズにおいて第1の命令パケットをフェ
ッチするステップであって、前記第1の命令パケットが
第1の目標アドレスにより少なくとも第1の分岐命令を
有するステップと、前記第1の命令パケットをフェッチ
するステップの後、直ちに第2の命令パケットをフェッ
チするステップであって、前記第2の命令パケットは第
2の目標アドレスによる第2の命令を有するステップ
と、前記第1の所定数の処理フェーズの後、前記実行フ
ェーズのうちの所定の一フェーズにおいて前記CPUの
プログラム・カウンタに前記第1の目標アドレスを受け
取るステップと、前記第1の目標アドレスを受け取った
後、直ちにフェーズにおける前記プログラム・カウンタ
における前記第2の目標アドレスを受け取るステップと
を備えている方法。
【0062】(9)更に、前記命令実行パイプラインに
おいて第3数の分岐命令が同時に処理されるまで、他の
目標アドレスによる他の分岐命令を有する他の命令パケ
ットを反復的にフェッチするステップであって、前記第
3数は前記処理フェーズの前記第1の所定数より小さ
い、又は等しいステップと、前記第1の目標アドレスに
前記プログラム・カウンタを受け取った後、前記第1の
目標アドレスから第1の目標命令パケットをフェッチす
るステップと、前記第2の目標アドレスに前記プログラ
ム・カウンタを受け取った後、前記第1の目標アドレス
をフェッチするステップであって、前記第2の目標アド
レスは前記第1の目標アドレスと同一であるステップ
と、前記第1の目標命令パケットを複数回フェッチする
ステップであって、前記目標命令パケットを含む単一の
フェーズ反復ループを前記第3の回数実行するように、
前記他の目標アドレスが前記第1の目標アドレスと同一
であるステップとを備えている第8項記載の方法。
【0063】(10)前記目標命令パケットは前記目標
命令パケットの目標アドレスを有する分岐命令を含み、
前記分岐命令の前記第3数は前記処理フェーズの第1所
定数と等しく、更に、前記目標命令パケットを含む単一
のフェーズ反復ループを無限回数実行するように、制御
信号を受け取るまで前記第1の目標命令パケットを複数
回フェッチするステップを備えている第9項記載の方
法。
【0064】(11)更に、前記反復ループの処理中に
割り込みを禁止するステップを備えている第10項記載
の方法。
【0065】(12)更に、前記反復ループの処理に割
り込みをするステップと、割り込みに応答して前記反復
ループを表す状態をセーブするステップと、前記割り込
みを処理するステップと、前記反復ループを表す前記状
態を復旧させるステップであって、前記割り込みを処理
した後に、前記反復ループを復旧させるステップとを備
えている第10項記載の方法。
【0066】(13)一つのパターンを表す物理的な入
力に応答してディジタル信号を発生するセンサ手段と、
中央処理装置(CPU)、及び前記パターンを認識する
ために前記CPUにより実行される複数の命令を保持す
る内部プログラム・メモリを有するマイクロプロセッサ
とを備え、前記マイクロプロセッサは、更に、命令実行
パイプラインを有する中央処理装置であって、前記パイ
プラインが第1の所定数のパイプライン・フェーズにお
ける第1の目標アドレスを有する第1の分岐命令を処理
及び実行するように動作可能な前記中央処理装置と、前
記所定数のパイプライン・フェーズの最終フェーズにお
いて前記第1の目標アドレスを受け取ってフェッチ・ア
ドレスを形成するように動作可能なプログラム・カウン
タ回路と、前記プログラム・カウンタ回路により指定さ
れた前記フェッチ・アドレスから命令フェッチ・パケッ
トをフェッチするように動作可能なフェッチ回路であっ
て、前記命令フェッチ・パケットは前記命令実行パイプ
ラインにより処理するために少なくとも一つの命令を有
する前記フェッチ回路と、前記第1の目標アドレスを有
する前記第1の分岐命令の処理を開始した後、直ちにパ
イプライン・フェーズにおいて第2の目標アドレスを有
する第2の分岐命令の処理を開始するように動作可能な
前記命令実行パイプライン用の制御回路とを備え、前記
プログラム・カウンタ回路は前記第1の目標アドレスを
受け取った後、直ちにパイプライン・フェーズにおいて
前記目標アドレスを受け取るように動作可能である信号
処理システム。
【0067】(14)前記センサ手段はマイクロホン及
びアナログ・ディジタル変換器を含み、かつ前記プログ
ラム・メモリは音声認識処理用の命令を保持する第13
項記載の信号処理システム。
【0068】(15)マイクロプロセッサ1は、命令フ
ェッチ/デコード装置10a〜10cと、算術演算及び
ロード/ストア装置D1、乗算器M1、ALU/シフタ
装置S1、算術論理演算器(ALU)L1、データを読
み出し、かつデータを書き込む共有マルチポート・レジ
スタ・ファイル20aを含む複数の実行装置と、データ
・メモリ22とを有する。これらの装置は、ネスト可能
な遅延分岐命令が得られるように、インターロックなし
に動作する命令実行パイプラインを形成する。
【0069】この発明は、共通に譲受され、この発明と
同時出願の米国特許出願第60/036,482号(T
I文書番号T−25311)に関連しており、ここでは
これを引用により関連させる。
【図面の簡単な説明】
【図1】本発明の実施例を有するマイクロプロセッサの
ブロック図。
【図2】図1のマイクロプロセッサの実行装置及びレジ
スタ・ファイルのブロック図。
【図3】図1のマイクロプロセッサにおける命令実行パ
イプラインの処理フェーズを示す図表。
【図4】図1のマイクロプロセッサにおける命令実行パ
イプラインの実行フェーズを示す図表。
【図5】図3の処理フェーズにおける命令フェッチ・パ
ケットの処理及び図4の実行フェーズにおける実行パケ
ットの実行の詳細なタイミングを示すタイミング図。
【図6】図3及び図5に示す命令実行パイプラインにお
ける遅延分岐を実行するときに含まれる遅延スロットを
示すタイミング図。
【図7】図6に示した遅延分岐をフェッチした後に命令
パイプライン内で処理する命令を示すタイム・チャー
ト。
【図8】本発明に用いられる命令パケットの基本フォー
マットを示す図。
【図9】Aは図8の基本フォーマットによる命令パケッ
トの1例を示す図。Bは図9Aの命令パケットにより定
義された実行シーケンスを示す図。
【図10】Aは図8の基本フォーマットによる命令パケ
ットの他の例を示す図。Bは図10Aの命令パケットに
より定義される実行シーケンスを示す図。
【図11】Aは図8のフォーマットによる命令パケット
の他の例を示す図。Bは図9Aの命令パケットにより定
義された実行シーケンスを示す図。
【図12】AはA図8のフォーマットによる命令パケッ
トの他の例を示す図。Bは図12Aの命令パケットによ
り定義された実行シーケンスを示す図。
【図13】Aは図8のフォーマットによる命令パケット
の他の例を示す図。Bは図13Aの命令パケットにより
定義された実行シーケンスを示す図。
【図14】Aはネストされた遅延分岐命令を有する命令
パケットのシーケンスであって、6回実行される単一フ
ェーズ・ループを発生する本発明による1例を示す図。
Bは図14Aの命令パケットにより定義された実行シー
ケンスを示す図。
【図15】Aはネストされた遅延分岐命令を有する命令
パケットのシーケンスであって、条件テストを満足させ
るまで実行される単一のフェーズ・ループを発生する本
発明による他の例を示す図。Bは図15Aの命令パケッ
トにより定義された実行シーケンスを示す図。
【図16】ネストされた遅延分岐を用いて最適化される
内側ループ及び外側ループを有するプログラムを示す本
発明によるフローチャート。
【図17】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図18】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図19】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図20】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図21】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図22】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図23】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図24】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図25】図1のマイクロプロセッサ用の命令フォーマ
ットを示す図。
【図26】ネストされた遅延分岐命令用の、本発明によ
る命令フォーマットを示す図。
【図27】本発明の他の実施例を有し、256ビットの
命令メモリを有するマイクロプロセッサのブロック図。
【符号の説明】
1 マイクロプロセッサ 10 CPU 10a〜10c 命令フェッチ/デコード装置 20a レジスタ・ファイル 23 プログラム・メモリ 42 集積回路 50 エミュレーション装置 100 制御回路

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令実行パイプラインを有する中央処理
    装置であって、前記パイプラインは第1の所定数のパイ
    プライン・フェーズにおける第1の目標アドレスを有す
    る第1の分岐命令を処理及び実行するように動作可能な
    前記中央処理装置と、 前記所定数のパイプライン・フェーズの最終フェーズに
    おいて前記第1の目標アドレスを受け取ってフェッチ・
    アドレスを形成するように動作可能なプログラム・カウ
    ンタ回路と、 前記プログラム・カウンタ回路により指定された前記フ
    ェッチ・アドレスから命令フェッチ・パケットをフェッ
    チするように動作可能なフェッチ回路であって、前記命
    令フェッチ・パケットは前記命令実行パイプラインによ
    り処理をするように少なくとも一つの命令を有する前記
    フェッチ回路と、 前記第1の目標アドレスを有する前記第1の分岐命令の
    処理を開始した後、直ちにパイプライン・フェーズにお
    いて第2の目標アドレスを有する第2の分岐命令の処理
    を開始するように動作可能な前記命令実行パイプライン
    用の制御回路とを備え、 前記プログラム・カウンタ回路は前記第1の目標アドレ
    スを受け取った後、直ちにパイプライン・フェーズにお
    いて前記第2の目標アドレスを受け取るように動作可能
    であるデータ処理装置。
  2. 【請求項2】 データ処理装置内の中央処理装置(CP
    U)を動作させる方法において、 第1の所定数の命令処理フェーズ及び第2数の実行フェ
    ーズを有する命令実行パイプラインを設けるステップ
    と、 第1フェーズの命令処理フェーズにおいて第1の命令パ
    ケットをフェッチするステップであって、前記第1の命
    令パケットが第1の目標アドレスによる少なくとも第1
    の分岐命令を有するステップと、 前記第1の命令パケットをフェッチするステップの後、
    直ちに第2の命令パケットをフェッチするステップであ
    って、前記第2の命令パケットは第2の目標アドレスに
    よる第2の命令を有するステップと、 前記第1の所定数の処理フェーズの後、前記実行フェー
    ズのうちの所定の一フェーズにおいて前記CPUのプロ
    グラム・カウンタに前記第1の目標アドレスを受け取る
    ステップと、 前記第1の目標アドレスを受け取った後、直ちにフェー
    ズにおける前記プログラム・カウンタにおける前記第2
    の目標アドレスを受け取るステップとを備えている方
    法。
JP04994598A 1997-01-24 1998-01-26 ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 Expired - Lifetime JP3834145B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3622297P 1997-01-24 1997-01-24
US036222 1997-01-24

Publications (2)

Publication Number Publication Date
JPH10222367A true JPH10222367A (ja) 1998-08-21
JP3834145B2 JP3834145B2 (ja) 2006-10-18

Family

ID=21887364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04994598A Expired - Lifetime JP3834145B2 (ja) 1997-01-24 1998-01-26 ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法

Country Status (2)

Country Link
US (1) US6055628A (ja)
JP (1) JP3834145B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100336773B1 (ko) * 1999-11-12 2002-05-16 박종섭 지연 분기 구조를 갖는 자바 프로세서
JP2006525583A (ja) * 2003-04-29 2006-11-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 時間−静止型プロセッサにおけるゼロ−オーバヘッドのブランチング及びルーピング
JP2009536769A (ja) * 2006-05-10 2009-10-15 クゥアルコム・インコーポレイテッド ハードウェアエンドループ情報の命令へのコード化

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0974894B1 (en) * 1993-11-05 2002-02-27 Intergraph Corporation Instruction cache associative cross-bar switch
DE69837138T2 (de) * 1997-12-31 2007-08-16 Texas Instruments Inc., Dallas Unterbrechbare mehrfache Ausfuehrungseinheitverarbeitung waehrend mehrfacher Zuweisung von Register verwendenden Operationen
WO2000079395A1 (en) * 1999-06-21 2000-12-28 Bops Incorporated Methods and apparatus for establishing port priority functions in a vliw processor
US20040162972A1 (en) * 2003-02-18 2004-08-19 Sorin Iacobovici Method for handling control transfer instruction couples in out-of-order, multi-issue, multi-stranded processor
US7861063B1 (en) * 2004-06-30 2010-12-28 Oracle America, Inc. Delay slot handling in a processor
US7814487B2 (en) * 2005-04-26 2010-10-12 Qualcomm Incorporated System and method of executing program threads in a multi-threaded processor
US8713286B2 (en) 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US8473725B2 (en) * 2009-12-21 2013-06-25 Ceva D.S.P., Ltd. System and method for processing interrupts in a computing system
DE112011106062T5 (de) * 2011-12-28 2014-09-25 Intel Corporation Bildstrom-Pipeline-Controller zur Bereitstellung von Bildprimitiven auf einer Berechnungsstruktur

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4722050A (en) * 1986-03-27 1988-01-26 Hewlett-Packard Company Method and apparatus for facilitating instruction processing of a digital computer
DE69129569T2 (de) * 1990-09-05 1999-02-04 Philips Electronics Nv Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
DE69130757T2 (de) * 1990-11-30 1999-07-29 Toshiba Kawasaki Kk Ausführungsvorrichtung für bedingte Verzweigungsbefehle
US5909573A (en) * 1996-03-28 1999-06-01 Intel Corporation Method of branch prediction using loop counters
US5796998A (en) * 1996-11-21 1998-08-18 International Business Machines Corporation Apparatus and method for performing branch target address calculation and branch prediciton in parallel in an information handling system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100336773B1 (ko) * 1999-11-12 2002-05-16 박종섭 지연 분기 구조를 갖는 자바 프로세서
JP2006525583A (ja) * 2003-04-29 2006-11-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 時間−静止型プロセッサにおけるゼロ−オーバヘッドのブランチング及びルーピング
JP2009536769A (ja) * 2006-05-10 2009-10-15 クゥアルコム・インコーポレイテッド ハードウェアエンドループ情報の命令へのコード化
JP2013101638A (ja) * 2006-05-10 2013-05-23 Qualcomm Inc ハードウェアエンドループ情報の命令へのコード化

Also Published As

Publication number Publication date
JP3834145B2 (ja) 2006-10-18
US6055628A (en) 2000-04-25

Similar Documents

Publication Publication Date Title
US6327647B1 (en) Method and apparatus for interfacing a processor to a coprocessor
JP3781419B2 (ja) パイプライン方式のプロセッサにおける例外処理
JP3881763B2 (ja) データ処理装置
EP1102163A2 (en) Microprocessor with improved instruction set architecture
JPH09311786A (ja) データ処理装置
JP2000222206A (ja) データ処理装置
JPH10232779A (ja) 命令並列処理方法及び装置
US5983338A (en) Method and apparatus for interfacing a processor to a coprocessor for communicating register write information
JP2620511B2 (ja) データ・プロセッサ
US8671266B2 (en) Staging register file for use with multi-stage execution units
JPH0496825A (ja) データ・プロセッサ
JP3834145B2 (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
JP3578883B2 (ja) データ処理装置
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
JP2002229779A (ja) 情報処理装置
JP2001202241A (ja) 実行パケットが2以上の取出しパケットをスパンするマイクロプロセッサを備えるディジタル処理システム及び同システムの操作方法
JP2003263313A (ja) デジタルプロセッサおよび命令の選択方法
EP0374598B1 (en) Control store addressing from multiple sources
US6128725A (en) Microprocessor with an instruction for setting or clearing a bit field
JP3534987B2 (ja) 情報処理装置
GB2380283A (en) A processing arrangement comprising a special purpose and a general purpose processing unit and means for supplying an instruction to cooperate to these units
JP3547585B2 (ja) 条件実行命令を有するマイクロプロセッサ
US9135006B1 (en) Early execution of conditional branch instruction with pc operand at which point target is fetched
JP2636821B2 (ja) 並列処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060424

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060525

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060721

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130728

Year of fee payment: 7

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

EXPY Cancellation because of completion of term