JPH07168715A - ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法 - Google Patents

ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法

Info

Publication number
JPH07168715A
JPH07168715A JP6225377A JP22537794A JPH07168715A JP H07168715 A JPH07168715 A JP H07168715A JP 6225377 A JP6225377 A JP 6225377A JP 22537794 A JP22537794 A JP 22537794A JP H07168715 A JPH07168715 A JP H07168715A
Authority
JP
Japan
Prior art keywords
instruction
signal
decoder
field
register
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
JP6225377A
Other languages
English (en)
Other versions
JP3452655B2 (ja
Inventor
Atsushi Kiuchi
淳 木内
Toru Umaji
徹 馬路
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH07168715A publication Critical patent/JPH07168715A/ja
Application granted granted Critical
Publication of JP3452655B2 publication Critical patent/JP3452655B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【目的】 DSPプログラムの実行に必要な命令数を減
少させ、フレキシビリティを増す。 【構成】 DSP1100は、実行装置、コンディショ
ン・コード・レジスタ(ccr)、および命令復号器を
含んでいる。各命令語は実行装置により実行されるデー
タ処理操作を指定する少なくとも1つのフィールドを有
し、また、所定の条件を指定し、実行装置によりデータ
処理操作が実行された時にccrを更新すべきかどうか
指定するコンディション・コード・フィールド(CC)
を有する。実行装置はコンディション・コード・フラグ
を生成するための手段を含む。命令復号器は、CCを復
号し、その値にしたがってccrによる現行コンディシ
ョン・コード・フラグの格納をイネーブルあるいはディ
スエーブルとする制御信号を生成するコンディション・
コード・復号器回路を含む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的には、ディジタ
ル信号処理プロセッサ(DSP)に関し、さらに詳しく
は、DSPのコンディション・コード更新操作をディス
エーブルにすることを認め、それによりDSP上でプロ
グラムを実行させるのに必要な命令の数を減らすことが
できるアーキテクチャを有するDSPに関するものであ
る。
【0002】
【従来の技術】ほとんどのディジタル信号処理プロセッ
サ(DSP)は、コンディション・コード・レジスタを
有している。このレジスタには多数のコンディション・
コード・フラグ用のレジスタが含まれている。コンディ
ション・コード・フラグは、DSPの算術論理演算器
(ALU)および乗算器(MU)による操作(オペレー
ション)の結果生じるさまざまな状態のタイプに対応す
るものである。
【0003】ALUあるいは乗算器(MU)が操作を実
行する度に、その操作の結果ある状態が発生するとそれ
に対応するコンディション・コード・フラグをALUあ
るいは乗算器(MU)が生成する。従来のDSPでは、
一番最後のALUあるいは乗算器(MU)操作の際に生
成されたすべてのコンディション・コード・フラグをコ
ンディション・コード・レジスタが格納している。言い
替えれば、コンディション・コード・レジスタ・ファイ
ルは、ALUあるいは乗算器(MU)により実行される
各操作の後に更新される。
【0004】
【発明が解決しようとする課題】しかし、このアプロー
チには大きな問題が存在している。DSPのプログラマ
が条件付きブランチ(分岐)あるいは条件付きデータ操
作のためにコンディション・コード・フラグを使用した
い場合、そのプログラマはそのコンディション・コード
・フラグを与えるデータ操作命令の直後にそのような条
件付き命令を入れなければならない。これはプログラマ
のフレキシビリティや創造性を制約してしまう。しか
し、より重要なことは、それによりプログラマが多くの
ブランチ命令および/又はデータ操作命令を用いなけれ
ばならず、それによりDSPの性能を低下させてしまう
ことである。
【0005】本発明の1つの目的は、ディジタル信号処
理プロセッサおよびそれに関する、コンディション・コ
ードを更新しない条件付きデータ操作方法を提供し、D
SPでプログラムを実行するために必要な命令の数を減
少させることである。
【0006】本発明のもう1つの目的は、DSPおよび
それに関する、コンディション・コードを更新しない条
件付きデータ操作方法を提供し、DSPで実行されるプ
ログラムを開発する上でより大きなフレキシビリティと
創造性を可能にすることである。
【0007】
【課題を解決するための手段】本発明の上記およびその
他の目的は、実行装置(execution uni
t)、コンディション・コード・レジスタ、プログラム
・メモリ、プログラム制御装置、そして、命令復号器を
有するディジタル信号処理プロセッサにより達成され
る。プログラム・メモリは、命令語の列を記憶し、それ
には、実行装置により実行されるデータ処理操作(デー
タ処理オペレーション)を指定するための少なくとも1
つのフィールドを有する命令語が含まれている。命令語
は、また、所定のコンディション・コードを指定し、実
行装置によりデータ処理操作が実行された時にそれに対
応するコンディション・コード・レジスタが更新される
べきかどうかを指定するコンディション・コード・フィ
ールドを含んでいる。プログラム制御装置は命令アドレ
スをプログラム・メモリに出力し、プログラム・メモリ
中の命令語を選択する。
【0008】命令復号器は選択された命令語を復号す
る。命令復号器には少なくとも1つのフィールドを復号
する復号器回路が含まれており、復号器回路はその復号
により制御信号を生成し、特定のデータ処理操作を実行
するように実行装置を制御する。実行装置には、実行装
置が制御信号に応じて現行のデータ処理操作を実行する
ことにより所定の状態が発生したときにそれに対応する
現行コンディション・コード・フラグを生成する手段が
含まれている。命令復号器には、更に、コンディション
・コード復号器回路が含まれており、この回路は、コン
ディション・コード・フィールドを復号し、コンディシ
ョン・コード・フィールドの値にしたがってコンディシ
ョン・コード・レジスタによる現行コンディション・コ
ード・フラグの格納をイネーブルあるいはディスエーブ
ルにするための制御信号を生成する。
【0009】本発明の他の目的と特徴は、以下の詳細な
説明と特許請求の範囲を図面と表を参照して考慮する
時、より容易に明確にされるであろう。
【0010】
【実施例】図1〜図32はここに開示されている本発明
を図示したものである。これらの図において、同一の参
照番号は同一の構成要素を示す。
【0011】最初に図1を参照すると、データ処理シス
テム1000が示されている。データ処理システム10
00は、ディジタル信号処理プロセッサ(DSP)11
00、ホスト・マイクロ・コンピュータ1200、外部
メモリ2500、外部周辺装置2300と発振器500
0で構成されている。DSP1100は、命令バス11
14をXデータ・バス1102、Yデータ・バス110
4とは別個に備えている点で、ハーバード・アーキテク
チャが採用されている。ただし、本発明はハーバード・
アーキテクチャに限定されず、例えばフォン・ノイマン
型でも同様に適用できる。
【0012】DSPの一般操作 一般的に、ディジタル信号処理プロセッサ(DSP)の
操作(オペレーション)は、3段階のパイプラインが関
係している。すなわち、3段階とは、命令フェッチ段
階、復号段階および実行段階である。
【0013】命令フェッチ段階では、DSPコア350
0のプログラム制御装置1500がプログラム制御(P
C)アドレス・バス1116上にアドレスを提供する
が、これは命令メモリ(プログラム・メモリ)1400
のそのアドレスに位置する命令をフェッチさせるためで
ある。これに応じて、命令メモリ1400はプログラム
制御(PC)命令バス1114上にその命令を出力す
る。DSPコア3500の共通復号装置(共通デコーダ
・ユニット)1600が、PC命令バス1114からこ
の命令を受信する。
【0014】次のステージは、復号段階である。この段
階では、共通復号装置1600が受信したこの命令を復
号する。それに応じて、共通復号装置1600は制御信
号を生成し、それらの制御信号は実行装置(EXU)1
700、アドレス・ユニット(AU)1800、プログ
ラム制御装置(PCU)1500に、そしてDSPコア
3500の並列アービタ2100に、提供される。
【0015】最終ステージは実行段階である。この段階
では、制御信号が実行装置(EXU)1700、アドレ
ス・ユニット(AU)1800およびプログラム制御装
置(PCU)1500の操作を制御し、それにより、命
令により定義された機能が実行される。
【0016】基本タイミング DSPコア3500はタイミング装置1300をも含ん
でおり、その装置は、ディジタル信号処理プロセッサ
(DSP)の操作のための基本タイミングを提供するた
めのものである。図2に示されているように、タイミン
グ装置1300にはクロック・パルス発生器1302が
含まれており、このクロック・パルス発生器1302の
操作はクロック制御器1304により制御される。
【0017】クロック・パルス発生器 クロック・パルス発生器には、発振器5000からクロ
ック信号(CLK)が提供される。それにより、クロッ
ク・パルス発生器1302は、2個のクロック信号CK
0とCK1を発生する。この2個のクロック信号CK0
とCK1は、その位相がお互いに1/4サイクルずれて
いる信号であって、クロック・バス1120に提供され
る。そこからさらに、これらのクロック信号CK0とC
K1は、ディジタル信号処理プロセッサ1100の他の
構成要素に提供される。
【0018】好ましい実施例においては、発振器500
0から受信されるクロック信号CKLの周波数は25M
Hzであり、クロック・パルス発生器1302により発
生されるクロック信号CK0とCK1もまた、それぞれ
の周波数は25MHzである。従って、それぞれのマシ
ン・サイクルの長さは、図3〜図7に示されているよう
に40nsである。
【0019】タイミング 図3は、多くのタイプの命令および条件に対するディジ
タル信号処理プロセッサ1100の操作のための基本タ
イミングを示したものである。図から明らかなように、
この装置の操作には、すでに説明した3段階のパイプラ
インが関係している。このパイプラインは、クロック信
号CK0とCK1により制御され、それにより、それぞ
れのマシン・サイクルM0−M3は、時点t0で開始
し、時点t4(すなわち、次のマシン・サイクルの開始
時点t0)で終了する。ほとんどの命令の場合は、正常
な条件下にあっては、3段階パイプライン全体は実際に
は、3.25マシン・サイクルで終了する(つまり、マ
シン・サイクルM0での時点t3からマシン・サイクル
M3での時点t4まで)。しかし、命令フェッチ段階
が、それに先行する実行段階と0.25マシン・サイク
ルだけオーバーラップするから、この3段階パイプライ
ン全体は、事実上、3マシン・サイクルで完了される。
【0020】ある種の命令や環境条件のもとでは、3段
階のパイプラインの完了のために、さらに、マシン・サ
イクルが追加要求されることがある。例えば、命令フェ
ッチ段階で、命令メモリ1400へのアクセスに競合が
発生する場合がある。そのような競合が発生すると、図
4に示したように、パイプラインの命令フェッチ段階の
ためにマシン・サイクルM1Aを追加することが必要と
なる。さらに、命令メモリ1400は、倍長語命令を記
憶していることがある。図5に示されているように、倍
長語命令の第二語をフェッチするために追加のマシン・
サイクルM1Aが必要とされる。さらに、図6に示され
ているように、標準ブランチ(分岐)、標準ループ、呼
出し(コール)、および、復帰(リターン)のそれぞれ
の命令の命令制御のために追加のマシン・サイクルM2
AとM3Bが要求される。最後の点として、データ・メ
モリ1900へのアクセスの競合が、実行段階で発生す
る可能性がある。図7に示されているように、このよう
な競合が発生すると、実行段階を完了するために追加マ
シン・サイクルM3Aおよび/又は、M3Bが要求され
ることになる。
【0021】命令セット 図8(a)〜図8(c)は、それぞれ、ディジタル信号
処理プロセッサ(DSP)1100の命令セットに含ま
れる命令のクラスとタイプを異なった詳細レベルで列挙
したものである。図8(a)〜図8(c)はまた、異な
ったタイプの命令に含まれる各種のフィールドを示した
ものである。命令は、クラスとして、1130と113
2で表示したクラスに分割され、命令タイプとしては、
1134〜1170で表示したタイプに分割されてい
る。図9(a)〜図9(i)は、命令タイプ1134〜
1170がさらに、どのように、特定命令に細分割され
るかを示したものである。
【0022】RISCとDSPクラスの命令 命令セットはDSPクラスの命令1130を含んでい
る。図8(a)〜図8(c)の命令タイプ欄から明らか
なように、DSPクラス命令1130は、(a)並列デ
ータ転送操作と並列に並列データ処理操作を定義する命
令タイプ1134および1135、(b)並列データ転
送操作と並列に単一データ処理操作を定義する命令タイ
プ1136、1137、1140および1141、
(c)単一データ転送操作と並列に並列データ処理操作
を定義する命令タイプ1138と1139、(d)単一
データ転送操作と並列に単一データ処理操作を定義する
命令タイプ、1142〜1145、とで構成されてい
る。
【0023】さらに、命令セットはRICSクラスの命
令1132を含んでいる。このRISCクラス命令11
32は、(a)プログラム制御操作を定義する命令タイ
プ1152〜1154、1162、1163および11
67〜1169、(b)単一データ処理操作を排他的に
(つまり、データ処理操作と並列にではなく)定義する
命令タイプ1149、1151、1157、1159と
1161、(c)並列データ処理操作を排他的に(つま
り、データ処理操作と並列にではなく)定義する命令タ
イプ1146、(d)単一データ転送操作を排他的に
(つまり、データ転送操作と並列にではなく)定義する
命令タイプ1148、1150、1155、1157、
1160と1165、(e)並列データ転送操作を排他
的に(つまり、データ転送操作と並列にではなく)定義
する命令タイプ1147、(f)倍長語命令の第二の語
を定義する命令タイプ1158、(g)サブルーチン呼
出しからの復帰、フラグのセット、ソフトウェア割込み
などの特殊操作を定義する命令タイプ1164、(h)
ノー・オペレーション(NOPs)のための命令タイプ
1170、とで構成されている。
【0024】DSPクラス命令1130とRISCクラ
ス命令1132は両方共、ビット長が固定されている。
好ましい実施例では、それぞれの命令は24ビットで構
成されている。しかし、他の実施例においては、固定ビ
ット長命令を、16ビット、32ビット等、他の固定ビ
ット長とすることもできる。
【0025】タイプ・コード・フィールド 図8(a)に示されているように、DSPクラス命令1
130とRISCのクラス命令1132は、それぞれ、
タイプ・コード・フィールド(TY)を有している。そ
れぞれの命令のタイプ・コード・フィールド(TY)は
その命令のタイプを特定するものである。図8(a)〜
図8(c)では各種タイプの命令1134〜1170が
命令タイプの欄に列挙されている。この欄から明らかな
ように、命令タイプ1134〜1170は、それぞれが
ディジタル信号処理プロセッサ1100に対して実行を
要求する操作の種類により識別されている。
【0026】後にさらに詳しく説明するが、タイプ・コ
ード・フィールド(TY)のビット長は、命令タイプに
依存して変わる。好ましい実施例である24ビット命令
の場合、タイプ・コード(TY)のビット長は、最小値
である命令タイプ1134と1146での2ビットか
ら、最大値である命令タイプ1169の15ビットまで
の範囲内にある。しかし、当業者には、この範囲が、他
の24ビット命令セットや、16ビット、32ビットな
どの他の固定ビット長の命令セットに対しては、異なる
ことがありうることは理解しうるであろう。
【0027】図8(b)に示したように、それぞれの命
令のタイプ・コード・フィールド(TY)はプリトラン
ジション(pre−transition)ビット・フ
ィールド(PT)とトランジション・ビット・フィール
ド(T)とを含んでいる。さらに、ある種の命令タイプ
(1136〜1141、1147〜1154、1157
〜1164、1166および1167)に対しては、タ
イプ・コード・フィールド(TY)はハイブリッド・フ
ィールド(H)を含んでいる。
【0028】図8(b)と図8(c)を参照すると、D
SPクラス命令1130の場合には、プリトランジショ
ン・ビット・フィールド(PT)はビット“1”かまた
は、一連の連続したビット“1”であって、次にビット
“0”が来るように構成されている。その場合、次につ
づくビット“0”は、トランジション・ビット・フィー
ルド(T)を構成する。しかし、RISCクラス命令1
132に対しては、プリトランジション・ビット・フィ
ールド(PT)は、ビット“0”かまたは一連の連続し
たビット“0”であって、次にビット“1”が来るよう
に構成されている。その場合、ビット“1”がトランジ
ション・ビット・フィールド(T)を構成する。
【0029】好ましい実施例である24ビット命令の場
合、DSPクラス命令1130のプリトランジション・
ビット・フィールド(PT)のビット長は1ビットから
10ビットの範囲であり、RISCクラス命令1132
の場合では、ビット長範囲は、最小1ビットから最大1
4ビットまでとなる。さらに、トランジション・ビット
のビット長は、わずか1ビットである。しかし、当業者
には、プリトランジション・ビット・フィールド(P
T)のビット長と、トランジション・ビット・フィール
ド(T)のビット長の範囲が、他の24ビット命令セッ
トや、16ビットおよび32ビットなどの固定ビット長
の命令セットに対しては、異なってもよいことは理解し
うるであろう。
【0030】多くの場合、プリトランジション・ビット
・フィールド(PT)のビット長は、命令のそれぞれの
タイプに依存して変化する。しかし、異なったタイプの
命令(1136〜1141、1147〜1154、11
57〜1164、1166および1167)が、命令の
残りのフィールドに対して同じビット数を必要とするの
であれば、これらのタイプの命令のプリトランジション
・ビット・フィールド(PT)は同一のビット長を有す
ることになる。これら異なったタイプの命令を識別する
ために、タイプ・コード・フィールド(TY)はハイブ
リッド・フィールド(H)を含んでいる。好ましい実施
例においては、ハイブリッド・フィールド(H)は、ト
ランジション・ビット・フィールド(T)の直後に位置
しており、残りのフィールドに対して同一数のビットを
必要とする異なったタイプの命令の数に依存して決めら
れるビット長を有している。
【0031】操作コード・フィールド タイプ・コード・フィールド(TY)に加えて、DSP
クラス命令1130とRISCクラス命令1132の多
くの命令タイプ(1134〜1153、1155〜11
66、1168および1169)は、操作コード(オペ
レーション・コード)・フィールド(OP)を含んでい
る。しかし、いくつかの命令タイプ(1154と116
7)は、この操作コード・フィールド(OP)を含んで
いない。実際に操作コード・フィールドを有している命
令タイプの場合、操作コード・フィールド(OP)のビ
ット長と位置は、異なる命令タイプに応じて変化する。
【0032】図9(a)〜図9(i)は、それぞれの命
令と、その命令が定義するそれぞれの特定操作を列挙し
たものである。タイプ・コード・フィールド(TY)と
操作コード・フィールド(OP)とを含む命令について
は、この2つのフィールドが一緒になって、ディジタル
信号処理プロセッサ1100が実行すべき特定の操作を
定義する。しかし、命令がタイプ・コード・フィールド
(TY)だけを含んでいる時は、上記のように、このフ
ィールドが単独で、ディジタル信号処理プロセッサ11
00が実行すべき特定操作を定義する。
【0033】オペランド・ソース/ディスティネーショ
ン・フィールド 図8(a)〜図8(c)に戻ると、そこに示されている
ように、命令セットは、命令タイプにより定義されるデ
ータ処理操作を達成するために、オペランド・ソース・
フィールド(SRC、SRC1とSRC2、SRCX
1、SRCY1、SRCX2およびSRCY2、また
は、SX1、SX2、SY1およびSY2)および/ま
たは、オペランド・ディスティネーション・フィールド
(DST、または、D1およびD2)を有する、各種の
命令タイプ1134〜1146、1149、1151、
1157、1159および1161を含んでいる。オペ
ランド・ソースとオペランド・ディスティネーションと
は、図10における実行装置(EXU)1700の各種
のデータ・レジスタ1702〜1709から選択するこ
とができる。図8(a)〜図8(c)、図9(a)〜図
9(i)から明らかなように、オペランド・ソースとし
てまたはディスティネーションとして選択可能なレジス
タ1706〜1710の数とタイプとは、命令タイプ
と、特定のソース・フィールド(SRC、SRC1、S
RC2、SX1、SX2、SY1またはSY2)また
は、ディスティネーション・フィールド(DST、D1
またはD2)のサイズとに依存している。これらのフィ
ールドのサイズは1ビットから3ビットまで変化してい
る。
【0034】オペランド・アドレス・ソース・フィール
ド 命令セットにはまた、データ・メモリ1900への間接
アクセスに関係するデータ転送操作のために、オペラン
ド・アドレス・ソース・フィールド(Am、An、Aq
およびAp、または、AaおよびAb)を有する命令タ
イプ1134〜1145、1147、1156および1
165を含めることができる。これらオペランド・アド
レス・ソース・フィールドは、データ・メモリ1900
へ、またはデータ・メモリ1900から転送されるデー
タのオペランド・アドレス・ソースを提供するものであ
る。図11に示されているように、オペランド・アドレ
ス・ソースは、アドレス・ユニット(AU)1800の
各種アドレス・レジスタ1802〜1809から選択す
ることができる。図8(a)〜図8(c)と図9(a)
〜図9(i)で示唆されているように、オペランド・ア
ドレス・ソースとして選択することができるアドレス・
レジスタ1802〜1809の数とタイプは、命令タイ
プと、オペランド・アドレス・ソース・フィールド(A
m、An、AqおよびAp、または、AaおよびAb)
のサイズとに依存している。オペランド・アドレス・ソ
ース・フィールドのサイズは1ビットから3ビットの範
囲である。
【0035】オペランド転送ソース・フィールド 命令セットには、また、データ・メモリ1900への間
接アクセス、または、レジスタからレジスタへの転送に
関係するデータ転送操作のためのオペランド転送ソース
・フィールド(Rp、Rs、Rn、RaaまたはRb)
を有する命令タイプ1134、1136、1139、1
140、1143、1145、1147、1148、1
155、1156と1165を含めることができる。さ
らに、命令セットには、データ・メモリ1900の直接
または間接アクセス、または、レジスタからレジスタへ
の転送に関係するデータ転送操作のためのオペランド転
送ディスティネーション・フィールド(Rq、Rl、R
aa、Rn、Raおよび/又はRb)を有する命令タイ
プ1134〜1138、1140〜1142、114
4、1147、1148、1155、1156および1
165を含めることができる。
【0036】さらに、命令セットには、図9(i)に示
されているように、間接ブランチ(間接分岐、すなわ
ち、goto)、ループ、呼び出し(call)、ブレ
ークアウト(break out)、あるいは、繰り返
し(リピート、repeat)などの操作を実行するた
めに必要とされるデータ転送のためのオペランド転送ソ
ース・フィールド(Rm)を有する命令タイプ1167
〜1169を含めることができる。図12を参照する
と、ブランチ(分岐)、ループ、呼び出し、ブレークア
ウトなどの命令に対しては、オペランド・ソース・フィ
ールド(Rm)により指定されたレジスタの内容が、プ
ログラム制御レジスタ1502(pc0)に移動され、
プログラムの制御の流れの目標アドレスとなる。しか
し、繰り返し(リピート)命令の場合は、オペランド・
ソース・フィールド(Rm)により指定されたレジスタ
の内容が、リピート・カウンタ・レジスタ1508(r
c)に移動される。
【0037】図10〜図13(b)、図16および図3
0を参照すると、オペランド転送ソースあるいはオペラ
ンド転送ディスティネーションは、多数のレジスタから
選択することができる。これらのレジスタとして、
(a)アドレス・ユニット(AU)1800のアドレス
・レジスタ1802〜1809(xa0〜ya3)およ
びインデックス・レジスタ1818および1809(i
0およびi1)、(b)実行装置(EXU)1700の
個々のデータ・レジスタ1702(a)〜1709
(c)(xd0g〜m1l)と、シフト制御レジスタ1
720および1722(shaとshb)、(c)プロ
グラム制御装置(PCU)1500内のプログラム制御
レジスタ1502および1505(pc0およびpc
3)、リピート制御レジスタ1508〜1510(r
c、rsおよびre)、および、ループ制御レジスタ1
511(lc)、および、(d)共通復号装置1600
内の命令フェッチ・レジスタ1604および1606
(if0およびif1)およびコンディション・コード
・レジスタ1674(ccr)、を挙げることができ
る。
【0038】図8(a)〜図8(c)、図9(a)〜図
9(i)から明らかなように、オペランド転送ソースま
たはオペランド転送ディスティネーションとして選択で
きる上記レジスタの数とタイプは、命令タイプに依存
し、また、オペランド転送ソース・フィールド(Rp、
Rs、Rn、Rm、RaaまたはRb)または転送ディ
スティネーション・フィールド(Rq、Rl、Raa、
Rn、Raおよび/又はRb)のサイズに依存してい
る。これらのフィールドのサイズは1〜3ビットまたは
6ビットである。
【0039】アドレス更新フィールド さらに、命令セットには、間接メモリ・アクセス・デー
タ転送操作のためのメモリ・アドレス更新フィールド
(MEMA、MEMBあるいはMEM)を有する命令タ
イプ1134〜1145、1147および1165が含
まれている。これらのフィールドは、対応するオペラン
ド・アドレス・ソース(AmまたはAaとAb)に含ま
れるアドレスを、命令により定義されたデータの転送と
同時に更新すべきかどうかについての情報を提供する。
図8(a)〜図8(c)、図9(a)〜図9(i)で示
唆されているように、選択できる更新操作の数とタイプ
は、命令タイプに依存し、また、オペランド転送ソース
・フィールド(Rp、Rs、Rn、Rm、Raaあるい
はRb)または転送ディスティネーション・フィールド
(Rq、Rl、Raa、Rn、Raおよび/又はRb)
のサイズに依存している。これらのフィールドのサイズ
は1ビット〜3ビットである。
【0040】Xアドレス・バスとYアドレス・バス・オ
プション・フィールド DSPクラス命令1130の幾つかの命令タイプ、つま
り1134、1136および1140の命令タイプは、
Xアドレス・バスとYアドレス・バスのオプション・フ
ィールド(St)を含んでいる。このフィールドは、X
データ・バス1102を介してデータ・メモリ1900
にデータを記憶する目的でXアドレス・バス1108に
アドレスを提供するために、オペランド・アドレス・ソ
ース・フィールド(AaまたはAb)のどちらのフィー
ルドが用いられるかを特定し、また、データ・メモリ1
900からYデータ・バス1104を介してデータを回
収する目的でYアドレス・バス1110にアドレスを提
供するためにどちらのフィールドが用いられるかを特定
するためのものである。
【0041】イミディエート(immediate)値
・フィールド RISCクラス命令1132のうちの幾つかの命令タイ
プ、つまり命令タイプ1149、1150、1152〜
1158、1160〜1163および1167は、イミ
ディエート値・フィールド($Address、$Di
sp、StepNumber M、Repeat Co
unt N、$DATA、$Data、$A、$Dat
a/$Address)を含んでいる。イミディエート
値・フィールドは、直接メモリ・アクセス、間接プログ
ラム制御操作、直接レジスタ・ローディング操作あるい
は直接データ処理操作に関係するデータ転送操作を実行
するためにイミディエート値を提供するためのものであ
る。
【0042】コンディション・コード・フィールド RISCクラス命令1132の多くの命令タイプは、ま
た、各種のプログラム制御命令、データ処理命令、およ
び、直接レジスタ・ローディング命令のためのコンディ
ション・コード・フィールド(CC)を含んでいる。こ
のフィールドは、対応する操作が実行される際の条件を
提供するものである。
【0043】タイプ・コード・フィールドが可変長であ
ることの利点 タイプ・コード・フィールド(TY)が可変長である
(2〜14ビット)ことにより、上記各種フィールドに
関連して、多くの利点が提供される。これら利点には次
の点が含まれる。すなわち、(a)広範囲のDSPクラ
ス命令1130が提供できる、(b)各DSPクラス命
令1130のデータ処理のために、別個の異なるソース
/ディスティネーション・フィールドが提供できる、そ
して、(c)DSPクラス命令1130と同じデータ処
理やデータ転送操作を定義するRISCクラス命令11
32であって、これら操作を実行するためにより大きな
オペランド・フィールドを有するRISCクラス命令1
132が提供できる。
【0044】図8(a)〜図8(c)から明らかなよう
に、タイプ・コード・フィールド(TY)が可変長であ
る結果、多様なDSPクラス命令1130が実現され
る。既に説明したように、このようなDSPクラス命令
1130には次のものが含まれる。(a)並列データ転
送操作と並列に並列データ処理操作を定義する命令タイ
プ1134および1135、(b)並列データ転送操作
と並列に単一データ処理操作を定義する命令タイプ11
36、1137、1140および1141、(c)単一
データ転送操作と並列に並列データ処理操作を定義する
命令タイプ1138および1139、および、(d)単
一データ転送操作と並列に単一データ処理操作を定義す
る命令タイプ1142〜1145。
【0045】さらに、タイプ・コード・フィールド(T
Y)が可変長であることにより非常に大きなフレキシビ
リティが提供され、1つの命令で多数の並列操作を定義
できるだけでなく、これらの操作を実行する点でもそう
である。例えば、すでに指摘されたように、DSPクラ
ス命令1130には、データ転送操作と並列にデータ処
理操作を定義する命令タイプ1134〜1145が含ま
れている。DSPクラス命令1130で定義された各デ
ータ処理操作に対して、命令は、単一ソース・フィール
ド(SRC)または2個のソース・フィールド(SX1
とSX2、または、SY1とSY2)と、別個の異なる
ディスティネーション・フィールド(DST、D1また
はD2)を含んでいる。DSPクラス命令1130によ
り定義される各データ転送操作に対して、命令は、オペ
ランド・アドレス・ソース・フィールド(Aa、Abあ
るいはAm)、および、オペランド転送ソース・フィー
ルド(RsあるいはRq)または転送ディスティネーシ
ョン・フィールド(RlあるいはRp)を含んでいる。
(特に、データ処理操作のための)別個の異なるフィー
ルドの数が多いため、命令により定義される各種操作の
実行面で非常に大きなフレキシビリティが提供されるこ
とになる。
【0046】タイプ・コード(TY)が可変長であるこ
とは、RISCタイプのデータ処理およびデータ転送操
作の実行に関して非常に大きなフレキシビリティを提供
する点でも貢献している。このようにフレキシビリティ
が増大されたことにより、ディジタル信号処理プロセッ
サ1110でのプログラムの実行のハウスキーピング部
分、すなわち、数値演算処理でない部分の性能に大きな
貢献をしている。
【0047】図8(a)〜図8(c)、図9(a)〜図
9(i)に示されているように、RISCクラス命令1
132には、DSPクラス命令1130の様々な命令タ
イプ、すなわち命令タイプ1136、1137および1
140〜1145により定義できる単一データ処理操作
と同じ単一データ処理操作を排他的に(すなわち、デー
タ転送操作と並列にではなく)定義できる命令タイプ1
151および1161が含まれている。RISCクラス
命令1132には、DSPクラス命令1130の命令タ
イプ1134、1135、1138および1139によ
り定義できる並列データ処理操作と同じ並列データ処理
操作を排他的に(つまり、データ転送操作と並列にでは
なく)定義できる命令タイプ1146も含まれる。
【0048】しかし、DSPクラス命令1130とは異
なり、これらのRISCクラス命令1132は、データ
処理操作と並列なデータ転送操作のためのオペランド・
アドレス・ソース・フィールド、オペランド転送ソース
・フィールドおよびオペランド転送ディスティネーショ
ン・フィールドを含んでいない。従って、オペランド・
ディスティネーション・フィールド(DSTあるいはD
1およびD2)そして、ある場合には、オペランド・ソ
ース・フィールド(SRC、SRC1およびSRC2、
または、SX1、SX2、SY1およびSY2)は、同
一のデータ処理操作に対するDSPクラス命令1130
の場合のフィールドに比較してより大きなものとなり得
る。従って、DSPクラス命令1130の場合よりも、
多くのレジスタをこれらのフィールドのために選択する
ことができる。それにより、これらのRISCクラス命
令1132の直交性(orthogonality)を
高めることができる。
【0049】さらに、RISCクラス命令1132に
は、DSPクラス命令1130の様々な命令タイプ、す
なわち命令タイプ1138、1139および1142〜
1145により定義できる単一データ転送操作と同じ単
一データ転送操作を排他的に(つまり、データ処理操作
と並列にではなく)定義できる命令タイプ1165が含
まれている。RISCクラス命令1132には、DSP
クラス命令1130の命令タイプ1134〜1137、
1140および1141により定義できる並列データ転
送操作と同じ並列データ転送操作を排他的に(つまり、
データ処理操作と並列にではなく)定義できる命令タイ
プ1147も含まれている。
【0050】しかし、DSPクラス命令1130とは異
なり、これらのRISCクラス命令1132は、データ
転送操作と並列なデータ処理操作のためのオペランド・
ソース・フィールドおよびオペランド・ディスティネー
ション・フィールドを含んでいない。従って、オペラン
ド・アドレス・ソース・フィールド(AqおよびA
p)、オペランド転送ソース・フィールド(Raa)
や、転送ディスティネーション・フィールド(Raaお
よびRbb)は、同一のデータ処理操作に対して、DS
Pクラス命令1130の場合のフィールドより大きなも
のとなり得る。従って、これらのフィールドに対して、
DSPクラス命令1130の場合より多くのレジスタの
選択が可能となり、それにより、これらのタイプのRI
SCクラス命令1132の直交性がより高いものとな
る。
【0051】命令フェッチ段階 図3〜図7に示したように、命令メモリ1400から命
令をフェッチする命令フェッチ段階は、先行マシン・サ
イクルM0の時点t3で開始される。殆どの状況では、
図3、図5〜図7に示されているように、命令フェッチ
段階は、次のマシン・サイクルM1の時点t4で終了す
る。しかし、図4に示されているように、また、次にす
ぐに説明するように、命令メモリ1400や外部メモリ
2500へのアクセスの競合が発生する場合、プログラ
ム制御装置1500により、PCアドレス・バス111
6上に出力されたアドレスが優先するように競合が解決
されない時は、命令フェッチ段階は追加マシン・サイク
ルM1Aの時点t4で終了する。しかし、この競合がP
Cアドレス・バス1116上のアドレスが優先するよう
に解決されるのであれば、命令フェッチ段階は図3、図
5〜図7に示されているように、次のマシン・サイクル
M1の時点t4で終了することになる。
【0052】プログラム制御装置(PCU) 図12に示されているように、プログラム制御装置(P
CU)1500は、プログラム制御(PC)レジスタ1
502(pc0)、バッファ1512およびローカルP
CU制御器(ローカルPCUコントローラ)1550を
有している。ローカルPCU制御器1550はタイミン
グ装置1300からクロック信号CK0とCK1を受信
する。それに応じてローカルPCU制御器1550はバ
ッファ1512を制御するための制御信号を生成し、こ
れによりPCレジスタ1502に格納されているアドレ
スA17−0がPCアドレス・バス1116上に出力さ
れる。
【0053】図5を参照すると、ローカルPCU制御器
はまた、次のような制御信号をも生成する;すなわち、
(a) 最後のマシン・サイクル時に第一プログラムア
ドレスレジスタ1502(pc0)により出力され、格
納されているアドレスを第二プログラムアドレスレジス
1503(pc1)に格納させるための制御信号、
(b) 最後のマシン・サイクル時に第二プログラムア
ドレスレジス1503(pc1)により出力され、格納
されているアドレスを第三プログラムアドレスレジス1
504(pc2)に格納させるための制御信号、と
(c) 最後のマシン・サイクル時に第三プログラムア
ドレスレジス1504(pc2)により出力し、格納さ
れているアドレスを第四プログラムアドレスレジス15
05(pc3)に格納させるための制御信号。
【0054】後に明らかにされるように、これは、その
後のプログラム分岐のためにアドレスの記録(trac
k)を保持するためになされるものである。
【0055】また、後により詳細に説明するが、アドレ
スA17−0がPCアドレス・バス1116に出力され
ると同時に、共通復号装置1600が、図13(a)に
示されているように、PCアドレス・バス・イネーブル
(PCBUSE)信号を生成し、出力する。プログラム
アドレスレジス1502(pc0)により有効アドレス
A17−0がPCアドレス・バス1116上に出力され
ていない時は、PCBUSE信号はそのことをも示す。
PCBUSE信号は並列アービタ2100に供給され
る。
【0056】好適な実施例では、PCアドレス・バス1
116は18ビット・アドレス・バスであり、PCレジ
スタ1502は、このバスに18ビット・アドレスA1
7−0を出力する。しかし、当業者には、他のビット長
も使用可能であることは理解できるであろう。
【0057】命令メモリ・アービタおよび外部メモリ・
アービタ 図15を参照すると、命令メモリ1400と外部メモリ
2500の両方が、図8(a)〜図8(c)、図9
(a)〜図9(i)に示された命令セットの命令を記憶
できる。従って、PCアドレス・バス1116上のアド
レスは、命令メモリ1400にマップされたアドレスで
あるか、または、外部メモリ2500にマップされたア
ドレスかのどちらかである。更に、命令メモリ1400
および外部メモリ2500は単一ポート・メモリであ
る。しかし、命令メモリのためのインタフェース240
0はPCアドレス・バス1116とDMACアドレス・
バス1112の両方からアドレスを受信し、一方、外部
メモリ2500のための並列入出力インタフェース(パ
ラレルI/Oインタフェース)4000はPCアドレス
・バス1116、DMACアドレス・バス1112、X
アドレス・バス1108、および、Yアドレス・バス1
110からアドレスを受信する。その結果、命令フェッ
チ段階において、命令メモリ1400あるいは外部メモ
リ2500へのアクセスの競合が発生し得る。
【0058】図3〜図7に示したように、前のマシン・
サイクルM0の時点t3で、命令メモリ1400と外部
メモリ2500へのアクセスの調停(arbitrat
ion)が開始される。図3、図5〜図7に示されたよ
うに、アクセスの競合が発生しない場合、調停はマシン
・サイクルM0の時点t4において終了する。しかし、
命令をフェッチしようとして、命令メモリ1400また
は外部メモリ2500へのアクセスにおいて競合が発生
した場合は、図4に示されているように、調停は次のマ
シン・サイクルM1の時点t4において終了する。
【0059】図14を参照すると、並列アービタ210
0は命令メモリ・アービタ2108を有しており、命令
メモリ・アービタ2108は命令メモリ1400へのイ
ンタフェース2400を介するアクセスを制御し、それ
に対するアクセスの競合を解決する。並列アービタ21
00は、さらに、外部メモリ・アービタ2104を有し
ており、外部メモリ・アービタ2104は並列入出力イ
ンタフェース4000を介する外部メモリ2500への
アクセスを制御し、それに対するアクセスの競合を解決
する。
【0060】命令メモリ・アービタ2108は、(a)
PCアドレス・バス1116とDMACアドレス・バス
1112からのアドレスA17−0、および、(b)共
通復号装置1600からのPCアドレス・バス・イネー
ブル信号(PCBUSE)、および、DMAC3000
からのDMACアドレス・バス・イネーブル信号(DA
BUSE)、を受信する。外部メモリ・アービタ210
4は、(a)PCアドレス・バス1116、DMACア
ドレス・バス1112、Xアドレス・バス1108およ
びYアドレス・バス1110からのアドレスA17−
0、および、(b)PCBUSE信号とDABUSE信
号、そして、共通復号装置1600からのXアドレス・
バス・イネーブル信号(XABUSE)とYアドレス・
バス・イネーブル信号(YABUSE)、を受信する。
【0061】先に述べたように、PCBUSE信号は、
命令メモリ1400あるいは外部メモリ2500にアク
セスするための有効なアドレスがPCアドレス・バス1
116上にあるかどうかを示す。DABUSE信号は、
命令メモリ1400、外部メモリ2500、データ・メ
モリ1900、周辺装置インタフェース2200、ある
いは、DMAC3000にアクセスするための有効なア
ドレスがDMACアドレス・バス1112上にあるかど
うかを示す。さらに、信号XABUSEおよびYABU
SEは、それぞれXアドレス・バス1108およびYア
ドレス・バス1110上に、データ・メモリ1900、
外部メモリ2500、周辺装置インタフェース220
0、または、DMAC3000にアクセスするための有
効なアドレスが存在するかどうかを示す。
【0062】命令メモリ・アービタ2108は、PCア
ドレス・バス1116とDMACアドレス・バス111
2上のアドレスを復号し、これらアドレスのどちらか一
方あるいは両方が命令メモリ1400中に位置するかど
うかを決定する。図14および図15を参照すると、P
CBUSE信号とDABUSE信号のうちのどちらか一
方または両方が受信され、PCアドレス・バス1116
とDMACアドレス・バス1112上のアドレスのどち
らか一方または両方が命令メモリ1400内に位置する
場合、命令メモリ・アービタ2108は、(a)1ビッ
トのPCアドレス/命令バス選択信号(IASELP
C)、および/又は、(b)1ビットのDMACアドレ
ス/命令バス選択信号(IASELD)を生成する。こ
のIASELPC信号とIASELD信号は、インタフ
ェース2400を制御して、命令メモリ1400へのア
クセスのために、それぞれ、PCアドレス・バス111
6と命令バス1114、そして、DMACアドレス・バ
ス1112とデータ・バス1106をそれぞれ選択する
ための信号である。
【0063】命令メモリ・アービタ2108と同様に、
外部メモリ・アービタ2104は、PCアドレス・バス
1116、DMACアドレス・バス1112、Xアドレ
ス・バス1108とYアドレス・バス1110上のアド
レスを復号し、これらのアドレスのうちの1つ以上が命
令メモリ内に位置するかどうかを決定する。図14、図
15を参照すると、PCBUSE、DABUSE、XA
BUSEおよびYABUSEの信号のうち1つ以上が受
信され、かつ、PCアドレス・バス1116、DMAC
アドレス・バス1112、Xアドレス・バス1108お
よびYアドレス・バス1110上のアドレスのうち1つ
以上が命令メモリ1400内に位置すると、外部メモリ
・アービタ2104は、(a)1ビットPCアドレス/
命令バス選択信号(EASELPC)、(b)1ビット
DMACアドレス/データ・バス選択信号(EASEL
D)、(c)1ビットXアドレス/データ・バス選択信
号(EASELX)、および/又は、(d)1ビットY
アドレス/データ・バス選択信号(EASELY)、を
生成する。EASELPC、EASELD、EASEL
XおよびEASELY信号は、インタフェース1400
を制御して、外部メモリ2500へのアクセスのため
に、それぞれ、PCアドレス・バス1116と命令バス
1114、DMACアドレス・バス1112とデータ・
バス1106、Xアドレス・バス1108とデータ・バ
ス1102、そして、Yアドレス・バス1110とデー
タ・バス1104を選択するための信号である。
【0064】しかし、図15を参照すると、先に述べた
ように、命令メモリ1400と外部メモリ2500は単
一ポート・メモリである。従って、命令メモリ・アービ
タ2108は、特定のマシン・サイクル内の時点におい
ては、IASELPC信号とIASELD信号のうち1
つの信号だけをインタフェース1400に出力すること
ができる。そして、外部メモリ・アービタ2104は、
特定のマシン・サイクル内の時点においては、EASE
LPC、EASELD、EASELXおよびEASEL
Yの信号のうち1つだけをインタフェース1400に出
力することができる。
【0065】従って、特定のマシン・サイクル内の時点
においてIASELPC信号とIASELD信号のうち
1つだけが生成される場合、その信号は、命令メモリ・
アービタ2108により、そのまま出力されることにな
る。同様に、特定のマシン・サイクル内の時点におい
て、EASELPC、EASELD、EASELXおよ
びEASELYの信号のうち1つだけが生成される場
合、その信号は、外部メモリ・アービタ2108によ
り、そのまま出力されることになる。その場合、3段階
命令、フェッチ、復号、そして実行のパイプラインは、
図3に示されているように進行する。
【0066】しかし、IASELPCとIASELDの
両方の信号が同時に生成される場合(つまり、命令メモ
リ1400へのアクセスに競合が発生する場合)、命令
メモリ・アービタ2108は、以下に示す優先順位の基
準に基づいて、これらの信号を異なったマシン・サイク
ル時に出力する;すなわち、(1)前の調停から保持さ
れているDABUSE信号に第一優先権が与えられる、
(2)PCBUSE信号に第二優先権が与えられる、そ
して(3)前の調停から保持されているのではないDA
BUSE信号が最後の優先順位が与えられる。
【0067】それと同時に、命令メモリ・アービタ21
08は、上記の優先順位基準に基づいて、アクセス競合
の発生の間、DSPコア3500の動作を休止(sta
ll)させるためのストール信号(IASTALL)、
あるいは、アクセス競合発生の間、DMAC3000の
動作を休止させるためのDMACストール信号(IAD
STALL)を出力する。
【0068】EASELPC、EASELD、EASE
LXおよびEASELYのうち2つ以上の信号が同時に
生成された場合(すなわち、外部メモリ2500へのア
クセスの競合の場合)には、外部メモリ・アービタ21
04が、以下に示す優先順位基準に基づいて、異なった
マシン・サイクル時に、これらの信号を出力する;すな
わち、(1)前の調停から保持されているDABUSE
信号に第一の優先権が与えられる、(2)XABUSE
信号に第二優先権が与えられる、(3)YABUSE信
号に第三優先権が与えられる、(4)PCBUSE信号
に第四優先権が与えられる、(5)前の調停から保持さ
れているのではないDABUSE信号に最後の優先順位
が与えられる。
【0069】それと同時に、同じ優先順位基準に基づい
て、外部メモリ・アービタ2104は、アクセス競合の
発生の間、DSPコア3500の動作を休止(stal
l)させるためのストール信号(EASTALL)、あ
るいは、アクセス競合の発生の間、DMAC3000の
動作を休止させるためのDMACストール信号(EAD
STALL)を出力する。
【0070】IASTALL信号またはEASTALL
信号が出されると、常に、ORゲート2100により収
集され、STALL信号としてDSPコア3500に出
力される。その結果、DSPコア3500の動作は、図
4に示されているように、休止される。しかし、IAD
STALLあるいはEADSTALLのどちらかの信号
が出された場合には、ORゲート2112により収集さ
れ、DSTALL信号としてDMAC3000に出力さ
れる。その場合、DMAC3000の動作は休止される
が、DSPコア3500の三段階パイプラインは図3に
示されているように進行する。
【0071】図12において、STALL信号はローカ
ルPCU制御器1550により受信される。この信号を
受けると、ローカルPCU制御器1550は、プログラ
ム・カウンタ(PC)加算器1506により計算される
か、あるいは、Xデータ・バス1108から供給され
る)新たな命令メモリ・アドレスA17−0をロードし
ないようにPCレジスタ1502(pc0)を制御する
ための制御信号を生成する。それにより、PCアドレス
・バス1116は、次のマシン・サイクル時に、その前
のマシン・サイクルM1から保持されてきたアドレスA
17−0を命令メモリ1400に提供しつづけることに
なる。
【0072】命令メモリ 図15を参照すると、先に言及したように、命令メモリ
1400と外部メモリ2500は、先に説明し、また、
図8(a)〜図8(c)、図9(a)〜図9(i)に示
されている命令セットから選択された一連の命令を記憶
する。この一連の命令により、ディジタル信号処理プロ
セッサ(DSP)1100が実行すべきプログラムが定
義される。好ましい実施例においては、命令メモリ14
00と外部メモリ2500は、RAM(随時読出し書込
み可能メモリ)である。しかし、当業者には理解される
ように、他のタイプのメモリも使用できる。
【0073】インタフェース2400は、IASELP
C信号を受信すると、PCアドレス・バス上1116の
アドレスA17−0を命令メモリ1400に提供する。
これに応答して、命令メモリ1400は、命令メモリ1
400に提供されたアドレスA17−0の位置の24ビ
ット命令I23−0をインタフェース2400に供給す
る。次いで、インタフェース2400はPC命令バス1
114上に命令I23−0を出力する。同じように、並
列入出力インタフェース4000は、EASELPC信
号を受信すると、PCアドレス・バス1116上のアド
レスA17−0を外部メモリ2500に提供する。これ
に応答して、外部メモリ2500は、外部メモリ250
0に提供されたアドレスA17−0の位置の24ビット
命令I23−0をインタフェース4000に出力する。
次いで、インタフェース4000はPC命令バス111
4に命令I23−0を出力する。
【0074】図3、図5〜図7を参照すると、命令メモ
リに対してアクセスの競合が発生していない時は、現在
のマシン・サイクルM1の時点t1から時点t4までの
間、命令I23−0はPC命令バス1114に提供され
つづける。図4を参照すると、命令メモリ1400また
は外部メモリ2500へのアクセスの競合がPCアドレ
ス・バス1116上のアドレスが有利になるように解決
されていない場合、追加のマシン・サイクルM1Aの時
点t4まで、命令I23−0がPC命令バス1114に
提供されつづける。
【0075】先に示されたように、本発明の好ましい実
施例においては、命令メモリ1400および外部メモリ
2500は24ビット命令I23−0を記憶し出力す
る。従って、この好ましい実施例においては、PC命令
バス1114は24ビットデータ・バスである。しか
し、当業者には理解されるように、16ビットおよび3
2ビットなど、他のビット長も使用可能である。
【0076】命令フェッチ・ブロック 再び、図13(a)を参照すると、共通復号装置160
0には命令フェッチ・ブロック1602が設けられてい
る。図16に示されているように、命令フェッチ・ブロ
ックは、2個の命令フェッチ・レジスタ1604と16
06、そして、ローカル命令フェッチ制御器(コントロ
ーラ)1608とで構成されている。
【0077】第一の命令フェッチ・レジスタ1604は
PC命令バス1114と結合されて、このバス上の命令
I23−0のすべてのビットを受信する。他方、第二の
命令フェッチ・レジスタ1606はPC命令バス111
4と結合されて、倍長語命令の第二語のイミディエート
値・フィールド($Data/$Address)を含
むビットI15−0だけを受け入れるようになってい
る。すぐに説明するように、第一、第二の命令フェッチ
・レジスタ1604および1606は、組み合わされ
て、コンポジット(複合)命令CI39−0を格納す
る。即ち、第一命令フェッチ・レジスタ1604は、コ
ンポジット命令の最上位ビットCI39−16を格納
し、第二命令フェッチ・レジスタ1606は最下位ビッ
トCI15−0を格納する。
【0078】命令フェッチ・レジスタ制御器(コントロ
ーラ)1608には、共通復号装置1600の複数サイ
クル状態機械1614から倍長語命令状態信号(DBL
WST)が入力として供給される。図13(a)に示さ
れているように、また、詳しくは後述されるように、D
BLWST信号は、倍長語命令が復号されたことを示す
DBLW信号が命令復号ブロック1612から受信され
た時に、倍長語命令が現にフェッチされていることを示
す。更に、DBLW信号が単一語命令が復号されたこと
を示す場合には、DBLWST信号は単一語命令がフェ
ッチされたことを示す。
【0079】図16を参照すると、DBLW信号が単一
語命令が復号されたことを示す場合には、これに応答し
て命令フェッチ制御器1608は、PC命令バス111
4上に提供される次の命令I23−0を格納するように
第一命令フェッチ・レジスタ1604を制御するための
制御信号を生成する。更に、命令フェッチ制御器160
8は、受信する次の命令I23−0のビットを格納しな
いように第二命令フェッチ・レジスタ1606を制御す
るための制御信号を生成する。従って、その場合、コン
ポジット命令CI39−0の適切なビットCI39−1
6は、第一命令フェッチ・レジスタ1604に含まれて
いるビットである。
【0080】しかし、命令フェッチ制御器1608がD
BLWST信号を受信した場合、命令フェッチ制御器1
608は命令の第二語のビットI15−0を第二命令レ
ジスタ1606に入力可能とする制御信号を生成する。
このビットI15−0はイミディエート値・フィールド
($Data/$Address)を含んでいる。更
に、命令フェッチ制御器1608は第一命令レジスタ1
604がこの命令を格納しないように制御する制御信号
を生成する。従って、その場合、第一命令フェッチ・レ
ジスタ1604は命令の第一語CI39−16を格納し
つづけ、第二命令フェッチ・レジスタ1606は倍長語
命令の第二語に含まれるイミディエート値・ビットCI
15−0を格納する。
【0081】ローカル命令フェッチ制御器1608はタ
イミング装置1300に結合されて、クロック信号CK
0とCK1とを受信する。図3、図4、図6、図7を参
照すると、単一語命令に対しては、単一語命令CI39
−16が命令フェッチ段階の最後のマシン・サイクルM
1の時点t2からt4の間に第一命令フェッチ・レジス
タ1604に格納される。しかし、図5を参照すると、
倍長語命令に対しては、命令の第一語CI39−16が
命令フェッチ段階のマシン・サイクルM1の時点t2か
らt4の間に第一命令フェッチ・レジスタ1604に格
納され、第二語CI15−0は、次のマシン・サイクル
M1Aの時点t2からt4の間に第二命令フェッチ・レ
ジスタ1606に格納される。
【0082】先に言及したように、好ましい実施例とし
ては、24ビット命令が使用される。従って、好ましい
実施例においては、第一命令フェッチ・レジスタ160
4は24ビット・レジスタであり、PC命令バス111
4に結合されて、このバス上の命令の24ビットI23
−0すべてを受信する。一方、第二命令フェッチ・レジ
スタ1606は、PC命令バス1114に結合されて、
このバス上の命令の最下位16ビットCI15−0だけ
を受信する。第一命令フェッチ・レジスタ1604と第
二命令フェッチ・レジスタ1606は、組み合わされ
て、40ビットのコンポジット命令CI39−0を格納
する。すなわち、第一命令フェッチ・レジスタ1604
は最上位24ビットCI36−16を格納し、第二命令
フェッチ・レジスタ1606は最下位16ビットCI1
5−0を格納する。
【0083】命令フェッチ・レジスタ1604と160
6とが共になって、復号のために40ビットのコンポジ
ット命令CI39−0を提供するが、フェッチされた2
4ビット命令が復号のために実際伸長される時だけ、倍
長語命令がフェッチされる。言い換えると、コンポジッ
ト命令CI39−0の最下位ビットCI15−0は、単
一語命令の復号プロセスにとっては適切なものではな
い。このことは、命令復号段階の説明において更に明白
にされる。
【0084】命令フェッチ・レジスタ制御器1608
は、また、並列アービタ2100に結合されて、STA
LL信号を受信する。STALL信号を受信すると、命
令フェッチ・レジスタ制御器1608は2個のフェッチ
・レジスタ1602と1604を制御し、それらのレジ
スタが命令バス1114上の命令I23−0を入力しな
いようにする。
【0085】命令復号段階 図13(a)および図13(b)に示されているよう
に、共通復号装置1600は、命令フェッチ・ブロック
1602、命令復号ブロック1612、複数サイクル状
態機械1614(つまり、シーケンス制御器)と条件チ
ェック・ブロック1616とレジスタ・ブロック161
8を有している。
【0086】図16に戻り、また、図3〜図7を参照す
ると、復号段階の第一マシン・サイクルM2の時点t0
からt2の間に、命令フェッチ・ブロック1602の命
令フェッチ・レジスタ1604および1606は、前に
両者により格納されていたコンポジット命令CI39−
0を出力する。次いで、かく出力されたコンポジット命
令CI39−0は、図13(a)に示されているよう
に、命令復号ブロック1612に提供される。
【0087】再度、図16を参照すると、すでに示唆さ
れたように、第一命令フェッチ・レジスタ1604によ
り出力されたビットCI39−16は、単一語命令かま
たは、倍長語命令の第一語を含んでいる。単一語命令の
場合には、第二命令フェッチ・レジスタ1606により
出力される残りのビットCI15−0は、復号プロセス
には関係がない。また、倍長語命令の第二語が、第二命
令フェッチ・レジスタ1606にフェッチされていない
時には、やはり、第二命令フェッチ・レジスタ1606
により出力される残りのビットCI15−0は復号プロ
セスに適切なものではない。しかし、第二語が第二命令
フェッチ・レジスタ1606にフェッチされている時に
は、残りのビットCI15−0は第二語により提供され
るデータを含んでおり、復号プロセスにとって適切なビ
ットである。
【0088】命令復号ブロック1612による復号プロ
セスは、各コンポジット命令CI39−0に対して、マ
シン・サイクルM2の時点t0において開始される。正
常な条件下では、図3、図4および図7に示されている
ように、復号プロセスは同一マシン・サイクルM2の時
点t2で終了する。プログラム制御装置(PCU)15
00と、実行装置(EXU)1700と、アドレス・ユ
ニット(AU)1800とによるローカル復号は、図
3、図4および図7に示されているように、マシン・サ
イクルM2の時点t2から開始され、正常な条件下で
は、次のマシン・サイクルM3の時点t2において終了
する。従って、復号された命令により定義される操作は
マシン・サイクルM3において実行できる。
【0089】図5を参照すると、倍長語命令に対して
は、命令復号ブロック1612による復号プロセスの第
一ラウンドは、マシン・サイクルM1Aの時点t0にお
いて開始され、同一マシン・サイクルの時点t2におい
て終了する。この復号の第一ラウンドでは、命令復号ブ
ロック1612は、単に、復号されている命令が倍長語
であるか単一語であるかを決定し、DBLW信号を複数
サイクル状態機械1614に出力する。DBLW信号が
命令が倍長語命令であることを示す場合、その信号に応
答して、複数サイクル状態機械1614は、ノー・オペ
レーション(NOP)制御信号を生成することによりマ
シン・サイクルM1Aの時点t2からt4までのプログ
ラム・シーケンスを制御する。その結果、マシン・サイ
クルM2においてノー・オペレーション状態となる。こ
れらの信号は、マシン・サイクルM1Aの時点t2から
マシン・サイクルM2の時点t2の間で、実行装置(E
XU)1700、アドレス・ユニット(AU)1800
およびプログラム制御装置1500によりローカルに復
号される。
【0090】次いで、命令復号ブロック1612による
復号の第二ラウンドがマシン・サイクルM2の時点t0
からt2の間で実行される。復号のこのラウンドでは、
命令復号ブロック1612が倍長語命令を復号して制御
信号を生成することにより、命令により定義される操作
がマシン・サイクルM3において実行される。これらの
信号は、マシン・サイクルM2の時点t2からマシン・
サイクルM3の時点t2においてローカルに復号され
る。
【0091】更に、図6に示されているように、標準ブ
ランチ(分岐)、ループ、呼び出し、ブレークアウトお
よび復帰(リターン)、の命令に対しては、命令復号ブ
ロック1612による復号はマシン・サイクルM2の時
点t0からt4において実行される。命令復号ブロック
1612は、命令を復号して制御信号を生成し、それに
より、上記命令により定義される操作がマシン・サイク
ルM2Aにおいて実行される。標準ブランチ(分岐)、
ループ、呼び出しおよびブレークアウト命令の場合に
は、これらの制御信号はプログラム制御装置1500で
実行されるブランチ(分岐)操作を定義することにな
る。復帰(リターン)命令の場合には、これらの制御信
号はデータ・メモリ1900または外部メモリ2500
のスタック領域から復帰アドレスをポップするための操
作を定義する。これらの信号は、マシン・サイクルM2
の時点t2からマシン・サイクルM2Aの時点t2にお
いてローカルに復号され、それにより、命令の実行はマ
シン・サイクルM2Aでなされる。
【0092】更に、命令復号ブロック1612による復
号時に、同ブロックによりBRANCH、LOOP、C
ALL、BREAKOUTあるいはRETURN信号が
生成され、それによりどのタイプのブランチ(分岐)命
令が復号されたかが示される。次いで、後に詳述するよ
うに、BRANCH、LOOPまたはBREAKOUT
の信号が、それぞれ、標準ブランチ(分岐)、ループま
たはブレークアウト命令が復号されていることを示す場
合、複数サイクル状態機械1614がマシン・サイクル
M2の時点t2からマシン・サイクルM2Aの時点t2
においてプログラム・シーケンスを制御し、次いで、N
OP制御信号を生成することにより、マシン・サイクル
M2Aの時点t2からマシン・サイクルM2Bの時点t
2間のプログラム・シーケンスを再度制御することによ
り、ノー・オペレーション状態がマシン・サイクルM2
Bとマシン・サイクルM3において発生する。
【0093】しかし、CALL信号により呼び出し(コ
ール)命令の復号が示される場合、複数サイクル状態機
械1614は制御信号を生成することにより、マシン・
サイクルM2の時点t2からマシン・サイクルM2Aの
時点t2までのプログラム・シーケンスを制御する。そ
れにより、マシン・サイクルM2Bにおいて、コンディ
ション・コード・レジスタ1674の内容がデータ・メ
モリ1900または外部メモリ2500にプッシュされ
る。次いで、更に、マシン・サイクルM2Aの時点t2
からマシン・サイクルM2Bの時点t2において、複数
サイクル状態機械1614は制御信号を生成することに
よりプログラム・シーケンスを制御する。それにより、
マシン・サイクルM3において、リターン・アドレスが
データ・メモリ1900または外部メモリ2500のス
タック領域にプッシュされる。
【0094】最後に、RETURN信号により復帰命令
の復号が示されると、複数サイクル状態機械1614
は、制御信号を生成することにより、マシン・サイクル
M2の時点t2からマシン・サイクルM2Aの時点t2
までプログラム・シーケンスを制御する。それにより、
マシン・サイクルM2Bにおいて、コンディション・コ
ード・レジスタ1674の内容がデータ・メモリ190
0または外部メモリ2500のスタック領域からポップ
される。そして、複数サイクル状態機械1614は、N
OP制御信号を生成することにより、マシン・サイクル
M2Aの時点t2からマシン・サイクルM2Bの時点t
2までプログラム・シーケンスを制御し、それにより、
マシン・サイクルM3においてノー・オペレーション状
態が発生する。
【0095】コンポジット命令CI39−0の受信に応
答して、命令復号ブロック1612は、ディジタル信号
処理プロセッサ1100を制御するための制御信号を生
成、出力し、これにより復号されている命令により定義
される操作を実行する。図17に示されているように、
命令復号ブロック1612には、実行装置(EXU)操
作復号器1620、アドレス・ユニット(AU)操作復
号器1622、プログラム制御装置(PCU)操作復号
器1624、X/Yデータ・バス操作復号器1625、
レジスタ選択復号器1626、コンディション・コード
復号器1627、複数サイクル命令復号器1628そし
てイミディエート値復号器1630が含まれている。
【0096】実行装置操作復号器 実行装置(EXU)操作復号器1620を図18に示
す。実行装置(EXU)操作復号器1620は、第一命
令フェッチ・レジスタ1604が出力するビットCI3
9−16を受信する。このビットCI39−16の受信
に応答して、EXU操作復号器1620は、実行装置
(EXU)1700の動作を制御するためのいくつかの
制御信号を生成し出力する。このような信号を生成する
ために、EXU操作復号器1620には、ALU/BP
U操作復号器1632、ALUソース/ディスティネー
ション復号器1634、MU操作復号器1636、MU
/BPUソース/ディスティネーション復号器1638
が含まれている。
【0097】図19に示されているように、ALU/B
PU操作復号器1632は、受信された命令を復号し、
それに応答して各種の信号を生成し出力する。図10に
示されているように、これらの信号は、演算論理装置
(ALU)1712およびビット処理装置(BPU)1
714の動作を制御する。
【0098】図19には、また、ALU/BPU操作復
号器1632の概念的アーキテクチャが示されている。
この復号器1632には、タイプ・コード復号器164
0とフィールド抽出器/復号器1642が含まれてい
る。
【0099】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1640は、それらの図に示された
命令タイプ1134〜1146、1149、1151、
1157、1159および1161のタイプ・コード・
フィールド(TY)を含む可能性のあるコンポジット命
令の可能なビットのすべてを受信する。図10を参照す
ると、これらの命令タイプはALU1712またはBP
U1714によるデータ処理操作に関連する命令タイプ
である。好ましい実施例において、タイプ・コード復号
器1640には、コンポジット命令の最初の10ビット
CI39−29が入力される。この理由は、命令タイプ
1161が、ALUまたはBPU操作に関連する命令タ
イプのうち最大のタイプ・コード(TY)フィールドを
有しており、そのタイプ・コード・フィールド(TY)
が10ビット長であることによる。
【0100】受信されたビットCI39−29から、タ
イプ・コード復号器1640はコンポジット命令のタイ
プ・コード・フィールド(TY)を復号し、図8(a)
〜図8(c)に列挙されている命令タイプの中から、そ
の命令タイプを決定する。もし、命令が、ALU操作ま
たはALUとBPUの組み合わせ操作に関係する命令タ
イプ1134〜1146、1149、1151、115
7、1159および1161のうちの1つである場合、
タイプ・コード復号器1640は、フィールド抽出器/
復号器1642に対して、操作コード・フィールド(O
P)の位置とサイズ(つまりビット長)を示す情報を提
供する。もし、決定された命令タイプが、ALUまたは
BPUデータ処理操作に関係していない場合には、やは
り、タイプ・コード・フィールド復号器がこの情報をフ
ィールド抽出器/復号器1642に提供する。
【0101】フィールド抽出器/復号器1642は、コ
ンポジット命令のビットで、命令タイプ1134〜11
46、1149、1151、1157、1159、11
61に対する操作コード・フィールド(OP)を含む可
能性のあるすべてのビットを受け入れる。図8(a)〜
図8(c)から明らかなように、好ましい実施例では、
この操作コード・フィールドは、コンポジット命令の1
4ビットのCI36、CI34−25と、CI19−1
6である。
【0102】タイプ・コード復号器1640により提供
された情報に応答して、フィールド抽出器/復号器16
42は、(a)5ビットALU/BPU操作信号(AL
U/BPUOP)、(b)3ビットALUシフト機能信
号(ALUSHFT)、(c)1ビットの桁上げ付き加
算(add with carry)または桁下げ付き
減算(or subtract with borro
w)信号(ADDWC)、(d)1ビットのイミディエ
ート値・イネーブルまたはALUソースBイネーブル信
号(IMMDE)、(e)1ビット整数または小数部演
算操作信号(INTEG)、そして、(f)1ビットA
LU/BPUディスティネーション更新イネーブル/デ
ィスエーブル信号(DSTE)、を出力する。
【0103】図10を参照すると、ALU/BPUOP
信号は図9(a)〜図9(i)に定義されたALU操作
とBPU操作とを実行させるように、ALU1712と
BPU1714を制御する信号である。ALUSHFT
信号は、ALU/BPUOP信号により定義される操作
のためのシフト機能を実行するように、ALU1712
を制御する信号である。ADDWC信号は、ALU/B
PUOP信号により定義される加算および減算のための
桁上げ付き加算または桁下げ付き減算を実行するよう
に、ALU1712を制御する信号である。IMMDE
信号は、イミディエート値復号器1630により出力さ
れるイミディエート値、または、ALUソース/ディス
ティネーション復号器1634により出力されるALU
SRCB信号(これについては後述する)により指示さ
れたレジスタに格納されているデータをオペランド・ソ
ースとして使用するように、ALU1712を制御する
信号である。INTEG信号は、ALU/BPUOP信
号により定義されるALU操作のための整数または小数
部演算を使用するように、ALU1712を制御する信
号である。DSTE信号は、ある操作のためにALU1
712が生成した結果を格納するまたは格納しないよう
に、ALUDST信号により指定されるディスティネー
ション・レジスタを制御する信号である。
【0104】タイプ・コード復号器1640がフィール
ド抽出器/復号器1642に対して、操作コード・フィ
ールド(OP)のサイズおよび位置に関する情報を提供
すると、フィールド抽出器/復号器1642は、受信し
たビットCI36、CI34−25とCI19−16か
ら適切なビットを抽出し、それを復号する。それに応じ
て、フィールド抽出器/復号器1642が生成するAL
U/BPUOP、ALUSHFT、ADDWC、IMM
DE、INTEG、DSTEの信号により、ALU17
12とBPU1714が制御され、復号された命令によ
り定義される特定のALU操作が実行される。しかし、
タイプ・コード復号器1640がフィールド抽出器/復
号器1642に対して、復号されている命令の命令タイ
プがALU操作またはALU/BPU操作に関係してい
ないという情報を提供すると、フィールド抽出器/復号
器1642は、ALU1712およびBPU1714に
対してノー・オペレーション(NOP)を指示するAL
U/BPUOP信号を生成する。図10に示されている
ように、ALU/BPUOP、ALUSHFT、ADD
WC、IMMDE、INTEG、DSTEの信号は、ロ
ーカルEXU制御器1750により受信される。ローカ
ルEXU制御器1750は、図3〜図7に示されるロー
カル復号プロセス時にこれらの信号を復号し、それに応
じて(後に実行段階の説明部分で説明される)制御信号
を生成する。
【0105】先に説明したように、ALU/BPU操作
復号器1632に関して図19で示されたアーキテクチ
ャは概念的なものである。実際に実施する場合には、タ
イプ・コード復号器1640とフィールド抽出器164
2の論理は、入力されたコンポジット命令のビットCI
36、CI34−25、CI19−16から信号ALU
/BPUOP、ALUSHFT、ADDWC、IMMD
E、INTEG、DSTEを生成するように、最小化さ
れ組み合わされる。それにより、共通復号装置1600
による復号が、図3に示されているように、20ns
(マシン・サイクルの1/2)でなされる。その結果、
ALU/BPU操作復号器1632はタイプ・コード・
フィールド(TY)を復号し、操作コード・フィールド
(OP)の位置とサイズとを決定すると同時に、操作コ
ード・フィールド(OP)を抽出し復号する。
【0106】図20に示したように、ALUソース/デ
ィスティネーション復号器1634は受信した命令を復
号し、それに応じて、各種信号を生成し出力する。図1
0を参照すると、これらの信号は、実行装置(EXU)
1700のデータ・レジスタ1702〜1709を制御
し、それにより、ALU/BPU操作復号器1632に
より生成された信号により制御されるALU操作のため
のソースまたはディスティネーションとして機能する。
【0107】図20は、また、ALUソース/ディステ
ィネーション復号器1634の概念的アーキテクチャを
示している。これには、タイプ・コード復号器1644
と3個のフィールド抽出器/復号器1646〜1648
が含まれている。
【0108】図8(a)〜図8(c)をも参照すると、
タイプ・コード復号器1644は、コンポジット命令の
ビットで、ALUデータ処理操作に関係する命令タイプ
1134〜1146、1149、1151、1157、
1159および1161のタイプ・コード・フィールド
(TY)を含む可能性があるすべてのビットを受信す
る。ALU/BPU操作復号器のタイプ・コード復号器
1640の場合について既に説明されたように、好まし
い実施例では、これはコンポジット命令の最初の10ビ
ットCI39−29である。
【0109】この受信ビットCI39−29から、タイ
プ・コード復号器1644はコンポジット命令のタイプ
・コード・フィールド(TY)を復号し、図8(a)〜
図8(c)に列挙されている命令タイプの中から、その
命令タイプを決定する。命令が、ALU操作に関係する
命令タイプ1134〜1146、1151、1157、
1159、1161のうちの1つであれば、タイプ・コ
ード復号器1644は、(a)フィールド抽出器/復号
器1646に対して、第一オペランド・ソース・フィー
ルド(SX1、SRC1またはSRCX1)の位置とサ
イズ(つまり、ビット長)を示す情報を提供し、(b)
フィールド抽出器/復号器1647に対して、単一オペ
ランド・ソース・フィールド(SRC)または、第二オ
ペランド・ソース・フィールド(SY1、SRCY1、
またはSRC1)の位置とサイズを示す情報を提供し、
そして、(c)フィールド抽出器/復号器1648に対
して、オペランド・ディスティネーション・フィールド
(D1、DST1またはDST)の位置とサイズを示す
情報を提供する。もし、決定された命令タイプが、AL
UまたはALU/BPUデータ処理操作には関係しない
か、または、適切なソースまたはディスティネーション
・フィールドが命令中に存在しない場合には、タイプ・
コード復号器は、やはり、その情報をフィールド抽出器
/復号器1644〜1646に提供する。
【0110】フィールド抽出器/復号器1646は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1139、1142、1143、1146および115
1の第一ソース・フィールド(SX1、SCR1、SC
RX1)を含む可能性のあるすべてのビットを受信す
る。これらの命令タイプは、2個のソース・フィールド
を含む命令タイプである。図8(a)〜図8(c)から
明らかなように、好ましい実施例においては、コンポジ
ット命令の12ビットCI37−30とCI28−25
である。
【0111】タイプ・コード復号器1644により提供
される情報に従って、フィールド抽出器/復号器164
6は、第一ALUオペランド・ソース信号(ALUSR
CA)を出力する。図10を参照すると、好ましい実施
例では、この信号は3ビットの信号であって、実行装置
(EXU)1700の8個のデータ・レジスタ(図9
(a)〜図9(i)に示されている)のうち1つのレジ
スタを制御することにより、そのレジスタに格納されて
いるオペランドをALU1712のソースAに出力させ
る。
【0112】タイプ・コード復号器1644が、フィー
ルド抽出器/復号器1646に対して、ソース・フィー
ルド(SX1、SRC1またはSRCX1)の位置とサ
イズに関する情報を提供すると、フィールド抽出器/復
号器は、受信したビットCI37−30とCI28−2
5から適切なビットを抽出し復号する。フィールド抽出
器/復号器1646は、それに応じて、ALUSRCA
信号を生成し、その信号によりソース・フィールド(S
X1、SRC1またはSRCX1)に指定されているレ
ジスタ1702〜1709のうちの1つのレジスタを制
御し、そのレジスタが格納しているオペランドをALU
1712のソースAに出力させる。
【0113】フィールド抽出器/復号器1647は、コ
ンポジット命令のビットのうち、命令タイプ1140、
1141、1144、1145および1159の単一ソ
ース・フィールド(SRC)または、命令タイプ113
4〜1139、1142、1143、1146および1
151の第二ソース・フィールド(SY1、SRCY
1、SRC2)を含む可能性のあるすべてのビット受信
する。図8(a)〜図8(c)から明らかなように、好
ましい実施例においては、これは、コンポジット命令の
15ビットCI37−27およびCI25−22であ
る。
【0114】タイプ・コード復号器1644により提供
される情報に従って、フィールド抽出器/復号器164
7は、第二ALUオペランド・ソース信号(ALUSR
CB)を出力する。図10を参照すると、好ましい実施
例では、この信号は3ビット信号であり、実行装置(E
XU)1700の8個のデータ・レジスタ1702〜1
709のうちの1つのレジスタを制御して、そのレジス
タに格納されているオペランドをALU1712のソー
スBに出力させる。
【0115】タイプ・コード復号器1644が、フィー
ルド抽出器/復号器1647に対してソース・フィール
ド(SRC、SY1、SRCY1またはSRC2)の位
置とサイズに関する情報を提供すると、フィールド抽出
器/復号器は、受信したビットCI37−27およびC
I25−22から適切なビットを抽出し、復号する。そ
れに応じて、フィールド抽出器/復号器はALUSRC
B信号を生成し、その信号によりソース・フィールド
(SRC、SY1、SRCY1またはSRC2)に指定
されている8個のレジスタ1702〜1709のうちの
1つのレジスタを制御し、そのレジスタが格納するオペ
ランドをALU1712のソースBに出力させる。
【0116】フィールド抽出器/復号器1648は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1146、1149、1151、1157、1159お
よび1161のオペランド・ディスティネーション・フ
ィールド(D1、DST1またはDST)を含む可能性
のあるすべてのビットを受信する。図8(a)〜図8
(c)から明らかなように、好ましい実施例では、それ
は、コンポジット命令の8ビットCI31−29、CI
26、CI24およびCI22−20である。
【0117】タイプ・コード復号器1644により提供
される情報に従って、フィールド抽出器/復号器は、A
LUオペランド・ディスティネーション信号(ALUD
ST)を生成する。図10を参照すると、好ましい実施
においては、これは3ビット信号であって、実行装置
(EXU)1700の8個のデータ・レジスタ1702
〜1709のうちの1つのレジスタを制御し、ALU1
712の出力をそのレジスタに格納させる。
【0118】タイプ・コード復号器1644がフィール
ド抽出器/復号器1648に対して、ディスティネーシ
ョン・フィールド(D1、DST1、DST)の位置と
サイズに関する情報を提供すると、フィールド抽出器/
復号器1648は、受信たビットCI31−29、CI
26、CI24、CI22−20から適切なビットを抽
出し、復号する。それに応じて、フィールド抽出器/復
号器はALUDST信号を生成し、その信号により、デ
ィスティネーション・フィールド(D1、DST1また
はDST)に指定されている8個のレジスタ1702〜
1709のうちの1つのレジスタを制御して、ALU1
712の出力を格納させる。
【0119】図10に示されているように、ALUSR
CA、ALUSRCBおよびALUDST信号は、ロー
カル実行装置(EXU)制御器1750により受信され
る。ローカル実行装置(EXU)制御器1750は、図
3〜図7に示されているローカル復号プロセス時にこれ
らの信号を復号し、それに応じて制御信号を生成する
(この信号については後に実行段階の説明部分で説明さ
れる)。
【0120】図20に示されたALUソース/ディステ
ィネーション復号器1634のアーキテクチャは、先に
示唆されたように、概念的なものである。実際の構成で
は、タイプ・コード復号器1644とフィールド抽出器
1646〜1648の論理は、受信されたコンポジット
命令のビットCI37−20から信号ALUSRCA、
ALUSRCB、ALUDSTを生成するように、最小
化され組み合わされる。ALU/BPU操作復号器に関
して既に説明したように、これは、タイミングの目的で
なされる。従って、実際の構成では、ALUソース/デ
ィスティネーション復号器1634がタイプ・コード・
フィールド(TY)を復号し、記述されたALU操作ソ
ース/ディスティネーション・フィールドの位置とサイ
ズを決定すると同時に、これらのフィールドを抽出し復
号する。
【0121】図21に示されているように、乗算器(M
U)操作復号器1636は、受信された命令を復号し、
それに応じて各種の信号を生成し、出力する。図10を
参照すると、それらの信号は、乗算器(MU)1716
の操作を制御するためのものである。
【0122】図21は、また、乗算器(MU)操作復号
器1636の概念的アーキテクチャを示している。それ
には、タイプ・コード復号器1650およびフィールド
抽出器/復号器1652が含まれている。
【0123】図8(a)〜図8(c)をも参照すると、
タイプ・コード復号器1650は、コンポジット命令の
ビットのうち、命令タイプ1134〜1139、114
6および1151のタイプ・コード・フィールド(T
Y)を含む可能性のあるすべてのビットを受け入れる。
図10を参照すると、これらの命令タイプは、乗算器
(MU)1716によるデータ処理操作を定義すること
ができる命令タイプである。好ましい実施例において
は、タイプ・コード復号器1650は、コンポジット命
令の最初の6ビットCI39−34を受信する。これ
は、MU操作に関係する命令タイプのうち、命令タイプ
1139が最大のタイプ・コード(TY)を有してお
り、そのタイプ・コード・フィールド(TY)が6ビッ
ト長であるからである。
【0124】タイプ・コード復号器1650は、受信さ
れたビットCI39−34からコンポジット命令のタイ
プ・コード・フィールド(TY)を復号し、図8(a)
〜図8(c)に列挙されている命令タイプの中からその
命令タイプを決定する。その命令が、MU操作に関係す
る命令タイプ1134〜1139、1146および11
51のうちの1つであれば、タイプ・コード復号器16
50は、フィールド抽出器/復号器1652に対して、
操作コード・フィールド(OP)の位置とサイズ(つま
り、ビット長)を示す情報を提供する。決定された命令
タイプがMUデータ処理操作に関係しない場合には、タ
イプ・コード・フィールド復号器は、また、この情報を
フィールド抽出器/復号器1652に提供する。
【0125】フィールド抽出器/復号器1652は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1139、1146および1151の操作コード・フィ
ールド(OP)を含む可能性のあるすべてのビットを受
信する。図8(a)〜図8(c)から明らかなように、
好ましい実施例では、これは、コンポジット命令の11
ビットCI36、CI34−29およびCI19−16
である。
【0126】タイプ・コード復号器1650により提供
される情報に応じて、フィールド抽出器/復号器165
2は3ビットMU操作信号(MUOP)を出力する。図
10を参照すると、MU信号は、乗算器(MU)171
6を制御して、命令タイプ1134〜1139、114
6および1151に対して図9(a)〜図9(i)に定
義されたMU操作を実行させる。
【0127】タイプ・コード復号器1650が操作コー
ド・フィールド(OP)の位置とサイズに関する情報を
フィールド抽出器/復号器1652に提供すると、フィ
ールド抽出器/復号器1652は、受信したビットCI
36、CI34−29およびCI19−16から適切な
ビットを抽出し、復号する。それに応じて、生成された
信号MUOPは乗算器(MU)1716を制御し、復号
された命令が定義するMU操作を実行させる。しかし、
タイプ・コード復号器1650が、復号されている命令
の命令タイプがMU操作には関係していないという情報
をフィールド抽出器/復号器1652に提供する場合に
は、フィールド抽出器/復号器1652は、乗算器(M
U)1716に対して、ノー・オペレーション(NO
P)を示すMUOP信号を生成する。図10に示されて
いるように、MUOP信号はローカル実行装置(EX
U)制御器1750に受信される。ローカル実行装置
(EXU)制御器1750は、図3〜図7に示されたロ
ーカル復号プロセス時にこれらの信号を復号し、それに
応じて制御信号を生成する(この制御信号については、
後に、実行段階についての説明部分で説明する)。
【0128】乗算器(MU)操作復号器1636の実際
の構成では、タイプ・コード復号器のタイプ・コード復
号器1650とフィールド抽出器1652の論理は、受
信されたコンポジット命令のビットCI36−29とC
I29−16からMUOP信号を生成するように、最小
化して組み合わされる。先に説明したように、これは、
タイミングの目的でなされるものであり、それにより、
共通復号装置1600による復号は、図3に示されてい
るように、20ns(マシン・サイクルの1/2)でな
される。その結果、乗算器(MU)操作復号器1636
がタイプ・コード・フィールド(TY)を復号すること
により操作コード・フィールド(OP)の位置とサイズ
とを決定すると同時に、操作コード・フィールド(O
P)を抽出し、復号する。
【0129】図22に示されているように、MU/BP
Uソース/ディスティネーション復号器1638は、受
信された命令を復号し、それに応じて、各種の信号を生
成し、出力する。図10を参照すると、これらの信号
は、実行装置(EXU)1700の8個のデータ・レジ
スタ1702〜1709のうちの選択されたレジスタを
制御することにより、MUまたはBPU操作のためのソ
ースまたは、ディスティネーションとして機能させる。
【0130】図22は、また、MU/BPUソース/デ
ィスティネーション復号器1638の概念的なアーキテ
クチャを示している。これは、タイプ・コード復号器1
656と3個のフィールド抽出器/復号器1658〜1
660で構成されている。
【0131】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1656は、コンポジット命令のビ
ットのうち、MUまたはBPUデータ処理操作に関係す
る命令タイプ1134〜1139、1146、1151
のタイプ・コード・フィールド(TY)を含む可能性の
あるすべてのビットを受信する。乗算器(MU)操作復
号器のタイプ・コード復号器1650に関して既に示さ
れているように、好ましい実施では、これは、コンポジ
ット命令の最初の6ビットCI39−34である。
【0132】受信されたビットCI39−34から、タ
イプ・コード復号器1656は、コンポジット命令のタ
イプ・コード・フィールド(TY)を復号し、図8
(a)〜図8(c)に列挙されている命令タイプの中か
ら、その命令タイプを決定する。その場合、命令が命令
タイプ1134〜1139、1146および1151の
うちの1つであるとすれば、タイプ・コード復号器16
56は、(a)フィールド抽出器/復号器1658に対
して、第一のオペランド・ソース・フィールド(SX
2、SRC1またはSRCX2)の位置およびサイズ
(つまり、ビット長)を示す情報を提供し、(b)フィ
ールド抽出器/復号器1659に対して、第二のオペラ
ンド・ソース・フィールド(SY2、SRC2またはS
RCY2)の位置とサイズを示す情報を提供し、(c)
フィールド抽出器/復号器1660に対しては、オペラ
ンド・ディスティネーション・フィールド(D2、DS
T2またはDST)の位置とサイズを示す情報を提供す
る。決定された命令タイプが、MUまたはBPUデータ
処理操作に関係しないか、または適切なソースまたはデ
ィスティネーション・フィールドがその命令中に存在し
ない場合には、タイプ・コード・フィールド復号器は、
また、その情報をフィールド抽出器/復号器1658〜
1660に提供する。
【0133】フィールド抽出器/復号器1658は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1139、1146および1151の第一のソース・フ
ィールド(SX2、SCR1、SCRX2)を含む可能
性のあるすべてのビットを受信する。図8(a)〜図8
(c)から明らかなように、好ましい実施例では、これ
は、コンポジット命令の5ビットCI28−24であ
る。
【0134】タイプ・コード復号器1656により提供
された情報に応じて、フィールド抽出器/復号器165
8は、第一のMU/BPUオペランド・ソース信号(M
U/BPUSRCA)を出力する。図10を参照する
と、好ましい実施例では、この信号は3ビット信号であ
り、実行装置(EXU)1700の8個のデータ・レジ
スタ1702〜1709のうちの1つのレジスタを制御
することにより、そのレジスタに格納されているオペラ
ンドをMU1716のソースAまたはBPU1714の
ソースAに出力させる。
【0135】タイプ・コード復号器1656が、フィー
ルド抽出器/復号器1658に対して、ソース・フィー
ルド(SX2、SCR1またはSRCX2)の位置とサ
イズに関する情報を提供すると、フィールド抽出器/復
号器は、受信したビットCI28−24から適切なビッ
トを抽出して復号する。それに応じて、フィールド抽出
器/復号器は、MU/BPUSRCA信号を生成、出力
し、その信号により8個のレジスタ1702〜1709
のうちのソース・フィールド(SX2、SRC1または
SRCX2)に指定されたレジスタを制御することによ
り、そのレジスタが格納するオペランドを、MU171
6のソースAまたはBPU1714のソースAに出力さ
せる。
【0136】フィールド抽出器/復号器1659は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1139、1146および1151の第二ソース・フィ
ールド(SY2、SRCY2またはSRC2)を含む可
能性があるすべてのビットを受信する。図8(a)〜図
8(c)から明らかなように、好ましい実施例において
は、これは、コンポジット命令の6ビットCI27−2
2である。
【0137】タイプ・コード復号器1656により提供
された情報に応じて、フィールド抽出器/復号器165
9は、第二のMU/BPUオペランド・ソース信号(M
U/BPUSRCB)を生成する。図10を参照する
と、好ましい実施例では、この信号は3ビット信号であ
り、実行装置(EXU)1700の8個のデータ・レジ
スタ1702〜1709のうちの1つを制御して、その
レジスタに格納されているオペランドをMU1716の
ソースBまたはBPU1714のソースBに出力させ
る。
【0138】タイプ・コード復号器がフィールド抽出器
/復号器1659に対して、ソース・フィールド(SY
2、SRCY2またはSRC2)のサイズと位置に関す
る情報を提供すると、フィールド抽出器/復号器165
9は、受信したビットCI27−22から適切なビット
を抽出して復号する。それに応じて、フィールド抽出器
/復号器1659はMU/PBUSRCB信号を生成
し、その信号によりソース・フィールド(SY2、SR
CY2またはSRC2)により指示されたレジスタ17
02〜1709のうちの1つのレジスタを制御し、その
レジスタが格納しているオペランドをMU1716のソ
ースBまたはBPU1714のソースBに出力させる。
【0139】フィールド抽出器/復号器1600は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1139、1146および1151のオペランド・ディ
スティネーション・フィールド(D2、DST2または
DST)を含む可能性のあるすべてのビットを受信す
る。図8(a)〜図8(c)から明らかなように、好ま
しい実施例においては、これは、コンポジット命令の4
ビットCI24およびCI22−20である。
【0140】タイプ・コード復号器1656により提供
される情報に応じて、フィールド抽出器/復号器166
0は、MU/BPUオペランド・ディスティネーション
信号(MU/BPUDST)を出力する。図10を参照
すると、好ましい実施例では、この信号は3ビット信号
であり、実行装置(EXU)1700の8個のデータ・
レジスタ1702〜1709のうちの1つを制御するこ
とにより、乗算器(MU)1716またはビット処理装
置(BPU)1714の出力をそのレジスタに格納させ
る。
【0141】タイプ・コード復号器1656が、フィー
ルド抽出器/復号器1660に対してディスティネーシ
ョン・フィールド(D2、DST2、DST)のサイズ
と位置に関する情報を提供すると、フィールド抽出器/
復号器1648は、受信したビットCI24とCI22
−20から適切なビットを抽出して復号する。それに応
じて、フィールド抽出器/復号器1660は、MU/B
PUDST信号を生成し、その信号によりディスティネ
ーション・フィールド(D2、DST2、DST)によ
り指示されるレジスタ1702〜1709のうちの1つ
を制御し、MU1716またはBPU1714の出力を
そのレジスタに格納させる。
【0142】図10に示されているように、MU/BP
USRCA、MU/BPUSRCBおよびMU/BPU
DSTの信号は、ローカル実行装置(EXU)制御器1
750により受信される。ローカル実行装置(EXU)
制御器1750は、図3〜図7に示されているように、
ローカル復号プロセス時にこれらの信号を復号し、それ
に応じて、制御信号を生成する(この信号については実
行段階についての説明の部で後述する)。
【0143】MU/BPUソース/ディスティネーショ
ン復号器1638の実際の構成では、タイプ・コード復
号器1656とフィールド抽出器/復号器1658〜1
660の論理は、受信されたコンポジット命令のビット
CI39−34とCI28−20とから信号MU/BP
USRCA、MU/BPUSRCBおよびMU/BPU
DSTを生成するように、最小化され組み合わされる。
これは、前述したように、タイミングのためになされる
ものである。その結果、MU/BPUソース/ディステ
ィネーション復号器1638は、タイプ・コード・フィ
ールド(TY)を復号し、MUおよびBPU操作のため
のソース/ディスティネーション・フィールドの位置と
サイズとを決定すると同時に、これらのフィールドを抽
出し復号する。
【0144】アドレス・ユニット操作復号器 アドレス・ユニット(AU)操作復号器1622を図2
3に示す。アドレス・ユニット(AU)操作復号器16
22は第一命令フェッチ・レジスタ1604からビット
CI36−16を受信する。このビットCI36−16
の受信に応じて、アドレス・ユニット復号器1618は
アドレス・ユニット(AU)1800を制御するための
いくつかの制御信号を生成し、出力する。これらの制御
信号を生成するために、アドレス・ユニット操作復号器
1622は、X/Yアドレス・ユニット(XAU/YA
U)操作復号器1661とX/Yオペランド・アドレス
・ソース復号器1662とで構成されている。
【0145】図24に示されているように、X/Yアド
レス・ユニット(XAY/YAU)操作復号器1662
は、受信された命令を復号し、それに応じて各種信号を
生成して出力する。図11を参照すると、これらの信号
はXアドレス・ユニット(XAU)1812およびYア
ドレス・ユニット(YAU)1814の操作を制御する
ためのものである。
【0146】図24は、また、X/Yアドレス・ユニッ
ト(XAU/YAU)復号器1661の概念的アーキテ
クチャを示している。この回路はタイプ・コード復号器
1663およびフィールド抽出器/復号器1664で構
成されている。
【0147】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1663は、コンポジット命令のビ
ットのうち、命令タイプ1134〜1145、114
7、1155、1156、1160、1165および1
166のタイプ・コード・フィールド(TY)を含む可
能性のあるすべてのビットを受信する。図1を参照する
と、これらの命令タイプは、データ転送のためにデータ
・メモリ1900へアクセスすることに関係する命令タ
イプである。好ましい実施例では、タイプ・コード復号
器1663はコンポジット命令の最初の13ビットCI
39−27を受信する。これは、データ転送操作のため
のデータ・メモリ1900へのアクセスに関係する命令
タイプのタイプ・コード(TY)フィールドのうち最大
のタイプ・コード・フィールドを有する命令タイプが命
令タイプ1166であり、そのタイプ・コード・フィー
ルド(TY)が13ビット長であることに起因してい
る。
【0148】受信されたビットCI39−27から、タ
イプ・コード復号器1663は、コンポジット命令のタ
イプ・コード・フィールド(TY)を復号し、図8
(a)〜図8(c)に列挙された命令タイプの中からそ
の命令タイプを決定する。この命令が、命令タイプ11
34〜1145、1147、1155、1156、11
60、1165および1166のうちの1つであって、
データ・メモリ1900へのアクセスに関係するもので
ある場合には、タイプ・コード復号器1663は、フィ
ールド抽出器/復号器1664に対して、操作コード・
フィールド(OP)の位置とサイズ(ビット長)と、ア
ドレス更新フィールド(MEMA、MEMBおよびME
M)がある場合にはそのフィールドの位置とサイズを示
す情報を提供する。決定された命令タイプがデータ・メ
モリ1900へのアクセスに関係しない場合、タイプ・
コード・フィールド復号器1663は、また、その情報
をフィールド抽出器/復号器1664に提供する。
【0149】フィールド抽出器/復号器1664は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1145、1147、1155、1156、1160、
1165および1166の操作コード・フィールド(O
P)、そして、アドレス更新フィールド(MEMA、M
EMBまたはMEM)があればそのフィールドを含む可
能性のあるすべてのビットを受信する。図8(a)〜図
8(c)から明らかなように、好ましい実施例では、こ
れは、コンポジット命令の15ビットCI36、CI3
4−25、CI20、CI19、CI17とおよびCI
16である。
【0150】タイプ・コード復号器1663により提供
される情報に応じて、フィールド抽出器/復号器166
4は、(a)2ビットXAU操作信号(XAUOP)、
(b)2ビットYAU操作信号(YAUOP)、(c)
2ビットXAUインデックス・ソース選択信号(XAU
IS)、(d)1ビットYAUインデックス・ソース選
択信号(YAUIS)、(e)1ビットXアドレス・バ
ス・イネーブル/ディスエーブル信号(XABUS
E)、(f)1ビットYアドレス・バス・イネーブル/
ディスイエーブル信号(YABUSE)と、(g)1ビ
ット倍データ転送または単一データ転送信号(DBLD
T)を出力する。
【0151】図11を参照すると、XAUOP信号は、
Xアドレス・ユニット(XAU)1812を制御するこ
とにより、図9(a)〜図9(i)に定義されたアドレ
ス更新操作を実行させる。YAUOP信号は、Yアドレ
ス・ユニット(YAU)1814を制御することによ
り、図9(a)〜図9(i)に定義されたアドレス更新
操作を実行させる。XAUIS信号は、XAUOP信号
で定義され、Xアドレス・ユニット(XAU)1812
で実行される各種タイプのアドレス更新に用いられるイ
ンデックス・オペランドのソースを選択するための信号
である。YAUIS信号は、XAUOP信号で定義さ
れ、YAU1814で実行される各種タイプのアドレス
更新に用いられるインデックス・オペランドのソースを
選択するための信号である。XABUSE信号およびY
ABUSE信号は、データ・メモリ1900へのアクセ
スを制御するために並列アービタ2100により用いら
れる信号である。DBLDT信号は、復号された命令
が、データ・メモリ1900へのアクセスを必要とする
データ転送の1つに関連するか、または2つに関連する
かをアドレス・ユニット(AU)1800に指示するた
めの信号である。
【0152】タイプ・コード復号器1663がフィール
ド抽出器/復号器1664に操作コード・フィールド
(OP)のサイズと位置に関する情報を提供すると、フ
ィールド抽出器/復号器1664は、受信したビットC
I36、CI34−25、CI20、CI19、CI1
7およびCI16から適切なビットを抽出し、それを復
号する。それに応じて、フィールド抽出器/復号器16
64は、XAUOP、YAUOP、XAUIS、YAU
IS、XABUSE、YABUSEおよびDBLDTの
信号を生成する。図11に示されているように、信号X
AUOP、YAUOP、XAUIS、YAUISおよび
DBLDTは、ローカル・アドレス・ユニット(AU)
制御器1850に受信される。この制御器1850は、
図3〜図7に示されているローカル復号プロセス時にこ
れらの信号を復号し、それに応じて制御信号を生成する
(この制御信号については実行段階についての説明部分
で後述する)。信号XABUSE、YABUSEは並列
アービタ2100により受信され、実行段階時に、デー
タ・メモリ1900へのアクセスを制御するために用い
られる。
【0153】すでに説明したように、X/Yアドレス・
ユニット(AU)操作復号器1661として図24に示
されたアーキテクチャは概念的なものである。実際の構
成では、タイプ・コード復号器1663とフィールド抽
出器/復号器1664の論理は、受信されたコンポジッ
ト命令のビットCI36、CI34−25、CI20、
CI19、CI17およびCI16から信号XAUO
P、YAUOP、XAUIS、YAUIS、XABUS
E、YABUSEおよびDBLDTを生成するために、
最小化されて組み合わされる。このことは、やはり、タ
イミングを目的とするものである。従って、X/Yアド
レス・ユニット(XAU/YAU)操作復号器1661
はタイプ・コード・フィールド(TY)を復号し、操作
コード・フィールド(OP)の、また、アドレス更新フ
ィールド(MEMA、MEMBまたはMEM)があれば
そのフィールドの位置とサイズを決定すると同時に、こ
れらのフィールドを抽出し、復号する。
【0154】図25に示したように、X/Yオペランド
・アドレス・ソース復号器1662は、受信された命令
を復号し、それに応じて各種信号を生成し出力する。図
11を参照すると、これらの信号は、アドレス・ユニッ
ト(AU)1800のアドレス・レジスタ1802〜1
809のうちの選択されたレジスタを制御して、データ
・メモリ1900に関係するデータ転送のためのオペラ
ンド・アドレス・ソースとして機能させる。
【0155】図25は、また、X/Yオペランド・アド
レス・ソース復号器1662の概念的アーキテクチャを
示している。この復号器1662には、タイプ・コード
復号器1665と、フィールド抽出器/復号器1666
が含まれている。
【0156】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1665は、コンポジット命令のビ
ットのうち、命令タイプ1134〜1145、114
7、1155、1156、1160、1165および1
166のタイプ・コード・フィールド(TY)を含む可
能性のあるすべてのビットを受信する。これらの命令タ
イプは、データ転送のためのデータ・メモリ1900へ
のアクセスに関係し得る命令タイプである。好ましい実
施例では、タイプ・コード復号器1665は、コンポジ
ット命令の最初の13ビットCI39−27を受信す
る。これは、データ・メモリ1900へのアクセスに関
係する命令タイプのうち、命令タイプ1166が最大の
タイプ・コード(TY)フィールドを持ち、そのタイプ
・コード・フィールド(TY)が13ビット長であるこ
とに起因している。
【0157】受信されたビットCI39−27から、タ
イプ・コード復号器1665は、コンポジット命令のタ
イプ・コード・フィールド(TY)を復号し、図8
(a)〜図8(c)に列挙されている命令タイプの中か
ら、その命令タイプを決定する。命令が、データ・メモ
リ1900へのアクセスに関係する命令タイプ1134
〜1145、1147、1155、1156、116
0、1165および1166のうちの1つであれば、タ
イプ・コード復号器1665が、フィールド抽出器/復
号器1666に対して、操作コード・フィールド(O
P)とオペランド・アドレス・ソース・フィールド(A
a、Ab、Am、Ap、Aqおよび/又はAn)の位置
とサイズ(ビット長)を示す情報を提供する。もし、決
定された命令タイプがデータ・メモリ1900へのアク
セスに関係しない場合には、タイプ・コード復号器16
65は、また、その情報をフィールド抽出器/復号器1
664に提供する。
【0158】フィールド抽出器/復号器1666は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1145、1147、1155、1156、1160、
1165および1166の操作コード・フィールド(O
P)と、オペランド・アドレス・ソース・フィールド
(Aa、Ab、Am、Ap、Aqおよび/又はAn)を
含む可能性のあるすべてのビットを受信する。図8
(a)〜図8(c)から明らかなように、好ましい実施
例では、これは、コンポジット命令の15ビットCI3
6、CI34−25、CI21およびCI19−16で
ある。
【0159】タイプ・コード復号器1665により提供
される情報に応じて、フィールド抽出器/復号器166
6は、(a)4ビットのXオペランド・アドレス・ソー
ス信号(XAUSRC)、および、(b)3ビットのオ
ペランド・アドレス・ソース信号(YAUSRC)を出
力する。図11を参照すると、XAUSRC信号は、
(a)アドレス・ユニット(AU)1800の8個のア
ドレス・レジスタ1802〜1809のうちの1つを制
御して、アドレスをXアドレス・バス1108に出力さ
せるか、(b)スタック・ポインタ・レジスタ1816
(sp)と1817(sp+1)のうちの1つを制御し
て、アドレスをXアドレス・バス1108に出力させる
か、または、(c)イミディエート値復号器1630に
より抽出されたイミディエート値をXアドレス・バス1
108上にロードさせる。YAUSRC信号は、アドレ
ス・ユニット(AU)1800の8個のアドレス・レジ
スタ1802〜1809のうちの1つを制御して、アド
レスをYアドレス・バス1110に出力させる。
【0160】タイプ・コード復号器1665が、フィー
ルド抽出器/復号器1666に対して、操作コード・フ
ィールド(OP)と、オペランド・アドレス・ソース・
フィールド(Aa、Ab、Am、Ap、Aqおよび/又
はAn)のサイズと位置に関する情報を提供すると、フ
ィールド抽出器/復号器は、受信したビットCI36、
CI34−25、CI21およびCI19−16から適
切なビットを抽出して、それを復号する。それに応じ
て、信号XAUSRCと信号YAUSRCとが生成され
る。図11に示されているように、信号XAUSRCと
YAUSRCとは、ローカル・アドレス・ユニット(A
U)制御器1850に提供される。この制御器1850
は、図3〜図7に示されるように、ローカル復号プロセ
ス時に、これらの信号を復号し、それに応じて制御信号
を生成する(この信号については実行段階についての説
明部分で後述する)。
【0161】X/Yオペランド・アドレス・ソース復号
器1662の実際の構成では、タイプ・コード復号器1
665と、フィールド抽出器/復号器1666の論理
は、受信されたコンポジット命令のビットCI39−2
5、CI34−25、CI21およびCI19−16か
ら信号XASRC、YASRCを生成するように、最小
化され組み合わされる。従って、X/Yオペランド・ア
ドレス・ソース復号器1662は、タイプ・コード・フ
ィールド(TY)を復号して、操作コード・フィールド
(OP)とオペランド・アドレス・ソース・フィールド
(Aa、Ab、Am、Ap、AqおよびAn)の位置と
サイズを決定すると同時に、これらのフィールドを抽出
し、復号する。
【0162】PCU操作復号器 PCU操作復号器1624を図26に示す。PCU操作
復号器1624は、第一命令フェッチ・レジスタ160
4からビットCI39−16を受信する。これらのビッ
トCI39−16の受信に応じて、PCU操作復号器1
624は、プログラム制御装置(PCU)1500の操
作を制御するためのいくつかの制御信号を生成し、出力
する。これらの信号を生成するために、プログラム制御
装置(PCU)操作復号器1624は、概念的には、タ
イプ・コード復号器1667とフィールド抽出器/復号
器1668とで構成されている。
【0163】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1667は、コンポジット命令のビ
ットのうち、命令タイプ1152〜1154、116
2、1163および1167〜1169のタイプ・コー
ド・フィールド(TY)を含む可能性があるすべてのビ
ットを受信する。これらは、プログラム制御に関係する
命令タイプである。好ましい実施例では、タイプ・コー
ド復号器1663は、コンポジット命令の最初の14ビ
ットCI39−26を受信する。これは、プログラム制
御に関係する命令タイプのうち、命令タイプ1169が
最大のタイプ・コード(TY)・フィールドを有し、そ
のタイプ・コード・フィールド(TY)が14ビット長
であることに起因している。
【0164】受信されたビットCI39−26から、タ
イプ・コード復号器1667は、コンポジット命令のタ
イプ・コード・フィールド(TY)を復号し、図8
(a)〜図8(c)に列挙された命令タイプの中からそ
の命令タイプを決定する。命令が、命令タイプ1152
〜1154、1162、1163および1167〜11
69のうちの1つである場合には、タイプ・コード復号
器1667は、フィールド抽出器/復号器1668に対
して、操作コード・フィールド(OP)の位置とサイズ
(ビット長)を示す情報を提供する。しかし、この命令
がリピート・タイプ命令1154あるいは1167であ
る場合、このタイプの命令は操作コード・フィールド
(OP)を含んでいないので、タイプ・コード復号器1
667は、それをフィールド抽出器1668に示す。更
に、決定された命令がプログラム制御に関係しない場
合、タイプ・コード復号器1667は、また、その情報
をフィールド抽出器/復号器1668に提供する。
【0165】フィールド抽出器/復号器1668は、コ
ンポジット命令のビットのうち、命令タイプ1152〜
1154、1162、1163および1167〜116
9の操作コード・フィールド(OP)を含む可能性のあ
るすべてのビットを受信する。図8(a)〜図8(c)
から明らかなように、好ましい実施例では、これはコン
ポジット命令の8ビットCI34−32、CI29、C
I28およびCI26−24である。
【0166】タイプ・コード復号器1667により提供
される情報に応じて、フィールド抽出器/復号器166
8は、(a)3ビットのプログラム制御操作信号(PC
UOP)、(b)相対ブランチ・非ブランチ信号(RE
LB)、そして、(c)1ビットPCBUSE信号(こ
れについてはすでに説明されている)、を出力する。
【0167】図12を参照すると、信号PCUOPとR
ELBは、プログラム制御装置(PCU)1500を制
御することにより、図9(a)〜図9(i)に定義され
ているプログラム制御操作を実行させるための信号であ
る。信号PCBUSEは、命令メモリ1400へのアク
セス時に発生する競合を解決するための信号である。
【0168】タイプ・コード復号器1667が、フィー
ルド抽出器/復号器1668に対して、操作コード・フ
ィールド(OP)のサイズと位置に関する情報を提供す
ると、フィールド抽出器/復号器1668は、受信した
CI34−32、CI29、CI28およびCI26−
24から適切なビットを抽出し、それを復号する。それ
に応じて、フィールド抽出器/復号器1668は信号P
CUOP、RELB、PCBUSEを生成する。図12
に示されているように、信号PCUOPとRELBと
は、ローカル・PCU(プログラム制御装置)制御器1
550に提供される。このローカル・PCU制御器11
50は、図3〜図7に示されたようにローカル復号プロ
セス時にこれらの信号を復号し、それに応じて制御信号
を生成する(この制御信号については実行段階の説明部
分で後述する)。信号PCBUSEは、すでに説明した
調停プロセスのために並列アービタ2100に提供され
る。
【0169】先に説明したように、PCU操作復号器1
624に関して図26に示されたアーキテクチャは概念
的なものである。実際の構成では、タイプ・コード復号
器1667とフィールド抽出器/復号器1668の論理
は、受信されたコンポジット命令のビットCI39−2
4から信号PCUOP、RELBおよびPCBUSEを
生成するように、最小化され組み合わされる。その結
果、プログラム制御装置(PCU)操作復号器1624
は、タイプ・コード・フィールド(TY)を復号し、操
作コード・フィールド(OP)の位置とサイズを決定す
ると同時に、操作コード・フィールド(OP)を抽出し
て復号する。
【0170】データ・バス操作復号器 X/Yデータ・バス操作復号器1625を図27に示
す。X/Yデータ・バス操作復号器1625は、第一命
令フェッチ・レジスタ1604から出力されるビットC
I39−16を受信する。このビットCI39−16の
受信に応じて、データ・バス操作復号器1625は、X
/Yデータ・バス1108および1110の操作を制御
するためのいくつかの制御信号を生成し、出力する。こ
れらの制御信号を生成するために、データ・バス操作復
号器1625は、タイプ・コード復号器1669とフィ
ールド抽出器/復号器1670とで構成されている。
【0171】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1669は、コンポジット命令のビ
ットのうち、命令タイプ1134〜1148、115
0、1154、1155、1160、1165、116
6〜1169のタイプ・コード・フィールド(TY)を
含む可能性のあるすべてのビットを受信する。これらの
命令タイプは、Xデータ・バス1108および/又は、
Yデータ・バス1110の操作に関係する命令タイプで
ある。好ましい実施例では、タイプ・コード復号器16
69は、コンポジット命令の最初の14ビットCI39
−26を受信する。これは、データ・バス操作に関係す
る命令タイプのうち、命令タイプ1169が最大のタイ
プ・コード(TY)フィールドを有し、そのタイプ・コ
ード・フィールド(TY)が14ビット長であることに
起因している。
【0172】受信されたビットCI39−26から、タ
イプ・コード復号器1669は、コンポジット命令のタ
イプ・コード・フィールド(TY)を復号して、図8
(a)〜図8(c)に列挙されている命令タイプの中か
らその命令を決定する。命令が、命令タイプ1134〜
1148、1150、1154、1155、1160、
1165、1166〜1169のうちの1つである場合
には、タイプ・コード復号器1669は、フィールド抽
出器/復号器1670に対して、操作コード・フィール
ド(OP)の位置とサイズ(ビット長)を示す情報を提
供する。しかし、決定された命令が、データ・バス操作
に関係しない場合、タイプ・コード復号器1669は、
また、その情報を、フィールド抽出器/復号器1670
に提供する。
【0173】フィールド抽出器/復号器1670は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1148、1150、1154、1155、1160、
1165および1166〜1169の操作コード・フィ
ールド(OP)を含む可能性があるすべてのビットを受
信する。図8(a)〜図8(c)から明らかなように、
好ましい実施例では、これは、コンポジット命令の16
ビットCI36、CI34−24およびCI19−16
である。
【0174】タイプ・コード復号器1699により提供
される情報に応じて、フィールド抽出器/復号器167
0は、(a)2ビットのXデータ・バス操作信号(XD
BUSOP)、および、(b)2ビットのYデータ・バ
ス操作信号(YDBUSOP)、を出力する。図10〜
図12を参照すると、XDBUSOP信号はXデータ・
バス1108上のデータ転送を制御するための信号であ
り、一方、YDBUSOP信号はYデータ・バス111
0上のデータ転送を制御する信号である。
【0175】タイプ・コード復号器1669が、フィー
ルド抽出器/復号器1670に対して、操作コード・フ
ィールド(OP)のサイズと位置に関する情報を提供す
ると、フィールド抽出器/復号器は、受信したビットC
I36、CI34−24およびCI19−16から適切
なビットを抽出し、それを復号する。それに応じて、フ
ィールド抽出器/復号器は信号XDBUSOPとYDB
USOPを生成する。
【0176】図10〜図12、図16および図19に示
されているように、信号XDBUSOPは、ローカル実
行装置(EXU)制御器1750と、ローカル・アドレ
ス・ユニット(AU)制御器1850と、ローカル・プ
ログラム制御装置(PCU)制御器1550と、命令フ
ェッチ・レジスタ制御器1608と、コンディション・
コード・レジスタ制御器1685に受信される。信号Y
DBUSOPは、ローカル実行装置(EXU)制御器1
750と、ローカル・アドレス・ユニット(AU)制御
器1850により受信される。これらの制御器は、図3
〜図7に示すようなローカル復号プロセス時に、信号X
DBUSOPとYDBUSOPを復号し、それに応じて
制御信号を生成する(この信号については実行段階につ
いての説明部分で後述する)。
【0177】データ・バス操作復号器1625の実際の
構成では、タイプ・コード復号器1669とフィールド
抽出器/復号器1670の論理は、受信されたコンポジ
ット命令のビットCI39−24およびCI19−16
から信号XDBUSOPとYDBUSOPとを生成する
ように、最小化されて組み合わされる。その結果、デー
タ・バス操作復号器1625は、タイプ・コード・フィ
ールド(TY)を復号して操作コード・フィールド(O
P)の位置とサイズを決定すると同時に、操作コード・
フィールド(OP)を抽出して復号する。
【0178】レジスタ選択復号器 レジスタ選択復号器1626を図28に示す。レジスタ
選択復号器1626は、第一命令フェッチ・レジスタ1
604から出力されるビットCI39−16を受信す
る。このビットCI39−16の受信に応じて、レジス
タ選択復号器1626は、データ転送のために、DSP
1100の各種レジスタの使用を制御するためのいくつ
かの制御信号を生成し、出力する。これらの制御信号を
生成するために、レジスタ選択復号器1626は、概念
的には、タイプ・コード復号器1671とフィールド抽
出器/復号器1672とで構成されている。
【0179】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1671は、コンポジット命令のビ
ットのうち、命令タイプ1134〜1148、115
0、1154、1155、1160、1164、116
5および1166〜1169のタイプ・コード・フィー
ルド(TY)を含む可能性のあるすべてのビットを受信
する。図10〜図12および図29を参照すると、これ
ら命令タイプは、個々のデータ・レジスタ1702
(a)〜1709(c)(xd0g〜m1l)、シフト
制御レジスタ1720および1722(shaおよびs
hb)、アドレス・レジスタ1802〜1809(xa
0〜ya3)、スタック・ポインタ・レジスタ1816
および1817(spおよびsp+1)、インデックス
・レジスタ1818および1820(i0およびi
l)、プログラムアドレスレジス1502および150
5(pc0およびpc3)、リピート制御レジスタ15
08〜1511(rc、reおよびrs)、ループ制御
レジスタ(lc)、または、コンディション・コード・
レジスタ1674(ccr)を使用したデータ転送操作
に関係する命令タイプである。好ましい実施例では、タ
イプ・コード復号器1671は、コンポジット命令の最
初の14ビットCI39−26を受信する。これは、デ
ータ・バス操作に関係する命令タイプのうち命令タイプ
1169が最大のタイプ・コード(TY)・フィールド
を有し、そのタイプ・コード・フィールド(TY)が1
4ビット長であることに起因する。
【0180】受信されたビットCI39−26から、タ
イプ・コード復号器1671は、コンポジット命令のタ
イプ・コード・フィールド(TY)を復号して、図8
(a)〜図8(c)に列挙されている命令タイプの中か
らその命令を決定する。命令が、命令タイプ1134〜
1148、1150、1154、1155、1160、
1164、1165および1166〜1169のうちの
1つである場合、タイプ・コード復号器1671はフィ
ールド抽出器/復号器1672に対して、データ・オペ
ランド転送ソース・フィールド(Rp、Rs、Rn、R
m、Raaおよび/又はRb)、および/又は、転送デ
ィスティネーション・フィールド(Rq、Rl、Ra
a、Rn、Raおよび/又はRb)の位置とサイズ(ビ
ット長)を示す情報を提供する。しかし、決定された命
令タイプが、データ・バス操作に関係しない場合、タイ
プ・コード・フィールド復号器1671は、また、その
情報をフィールド抽出器/復号器1672に提供する。
【0181】フィールド抽出器/復号器1672は、コ
ンポジット命令のビットのうち、命令タイプ1134〜
1148、1150、1154、1155、1160、
1165、1166〜1169のオペランド転送ソース
・フィールド(Rp、Rs、Rn、Rm、Raaおよび
/又はRb)又は、転送ディスティネーション・フィー
ルド(Rq、Rl、Raa、Rn、Raおよび/又はR
b)を含む可能性のあるすべてのビットを受信する。図
8(a)〜図8(c)から明らかなように、好ましい実
施例では、これは、コンポジット命令の12ビットCI
34−29およびCI25−20である。
【0182】タイプ・コード復号器1671により提供
される情報に応じて、フィールド抽出器/復号器167
2は、(a)Xデータ・バス1102を使用するデータ
転送のための、第一の6ビットのレジスタ選択信号(X
RSEL)、および、(b)Yデータ・バスを使用する
メモリ・アクセス・データ転送と、Xデータ・バスを使
用するレジスタからレジスタへの(つまり、移動(mo
ve))データ転送のための第二の6ビットのレジスタ
選択信号(YRSEL)、を出力する。
【0183】タイプ・コード復号器1671が、フィー
ルド抽出器/復号器1672に対して、オペランド転送
ソース・フィールド(Rp、Rs、Rn、Rm、Raa
および/又はRb)、または、転送ディスティネーショ
ン・フィールド(Rq、Rl、Raa、Rn、Raおよ
び/又はRb)のサイズと位置に関する情報を提供する
と、フィールド抽出器/復号器1672は、受信したビ
ットCI34−29およびCI25−20から適切なビ
ットを抽出し、それを復号する。それに応じて、フィー
ルド抽出器/復号器1672は、信号XRSELおよび
YRSELを生成する。図10〜図12、図16および
図29を参照すると、信号XRSEL、YRSELは、
ローカル実行装置(EXU)制御器1750と、ローカ
ル・アドレス・ユニット(AU)制御器1850と、ロ
ーカル・プログラム制御装置(PCU)制御器1550
と、命令フェッチ・レジスタ制御器1608およびコン
ディション・コード・レジスタ制御器1685により受
信される。これら各種の制御器は、図3〜図7に示すよ
うなローカル復号プロセス時に、これらの信号を復号し
て、制御信号を生成する(この制御信号は実施段階の説
明部分において後述する)。
【0184】レジスタ選択復号器1626の実際の構成
では、タイプ・コード復号器1671とフィールド抽出
器/復号器1672の論理は、受信されたコンポジット
命令のビットCI39−20から信号XRSELおよび
YRSELを生成するように、最小化され組み合わされ
る。その結果、レジスタ選択復号器1626が、タイプ
・コード・フィールド(TY)を復号して、オペランド
転送ソース・フィールド(Rp、Rs、Rn、Rm、R
aaおよび/又はRb)と、転送ディスティネーション
・フィールド(Rq、Rl、Raa、Rn、Raおよび
/又はRb)の位置とサイズを決定すると同時に、これ
らのフィールドを抽出して復号する。
【0185】コンディション・コード復号器 コンディション・コード復号器1627を図29に示
す。コンディション・コード復号器1627は、第一命
令フェッチ・レジスタ1604から出力されるビットC
I39−16を受信する。ビットCI39−16の受信
に応じて、コンディション・コード復号器1627は、
復号された命令のコンディション・コード(CC)を抽
出する。これを可能にするために、コンディション・コ
ード復号器1627は、概念的には、タイプ・コード復
号器1675と、フィールド抽出器/復号器1676と
で構成されている。
【0186】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1675は、コンポジット命令のビ
ットのうち、命令タイプ1149、1153、115
7、1159、1161〜1163、1168、116
9のタイプ・コード・フィールド(TY)を含む可能性
のあるすべてのビットを受信する。これらの命令タイプ
は、条件付操作に関係する可能性のある命令タイプであ
る。好ましい実施例では、タイプ・コード復号器167
5は、コンポジット命令の最初の14ビットCI39−
26を受信する。これは、データ・バス操作に関連する
命令タイプのうち、命令タイプ1169が最大のタイプ
・コード(TY)フィールドを有しており、そのタイプ
・コード・フィールドが14ビット長であることに起因
している。
【0187】受信されたビットCI39−16から、タ
イプ・コード復号器1675は、命令タイプのタイプ・
コード・フィールド(TY)を復号して、図8(a)〜
図8(c)に列挙された命令タイプの中からその命令タ
イプを決定する。命令が、命令タイプ1149、115
3、1157、1159、1161〜1163、116
8および1169のうちの1つである時には、タイプ・
コード復号器1675は、フィールド抽出器/復号器1
676に対してコンディション・コード・フィールド
(CC)の位置およびサイズ(ビット長)を示す情報を
提供する。しかし、決定された命令タイプがコンディシ
ョン・コード・フィールド(CC)を含んでいない時に
は、タイプ・コード復号器1675は、また、その情報
をフィールド抽出器/復号器1676に提供する。
【0188】フィールド抽出器/復号器1676は、コ
ンポジット命令のビットのうち、コンディション・コー
ド・フィールド(CC)を含む可能性のあるすべてのビ
ットを受信する。図8(a)〜図8(c)から明らかな
ように、好ましい実施例では、これは、コンポジット命
令の4ビットCI19−16である。
【0189】タイプ・コード復号器1675により提供
される情報に応じて、フィールド抽出器/復号器167
6は、(a)4ビットのコンディション・コード信号
(CC)、および、(b)1ビットの無条件又は条件付
命令信号(UNCOND)、を出力する。CC信号は、
単に、抽出されたコンディション・コード・フィールド
(CC)である。しかし、すぐに説明されるように、U
NCOND信号が出力される時には、復号された命令が
コンディション・コード・フィールド(CC)を有して
いないか、または、コンディション・コード・フィール
ド(CC)を持っているにもかかわらず無条件であるこ
とを示している。
【0190】タイプ・コード復号器1675が、フィー
ルド抽出器/復号器1676に対して、コンディション
・コード・フィールド(CC)のサイズと位置に関する
情報を提供すると、フィールド抽出器/復号器1676
はビットCI39−16から適切なビットを抽出する。
それに応じて、フィールド抽出器/復号器1676はC
C信号とUNCOND信号を出力する。また、タイプ・
コード復号器1675が、フィールド抽出器/復号器1
676に対して、復号された命令がコンディション・コ
ード・フィールド(CC)を有していないという情報を
提供する場合、UNCOND信号がこのことを示す。そ
うでなければ、UNCOND信号は、復号された命令が
コンディション・コード・フィールド(CC)を有して
いることを示す。CC信号およびUNCOND信号は、
レジスタ・ブロック1618のコンディション・コード
・レジスタ(CCR)制御器1685に提供される。
【0191】コンディション・コード復号器1627の
実際の構成では、タイプ・コード復号器1675とフィ
ールド抽出器/復号器1676の論理は、受信されたコ
ンポジット命令のビットCI39−26およびCI19
−16からCC信号とUNCOND信号を生成するよう
に、最小化され組み合わされる。その結果、コンディシ
ョン・コード復号器1627はタイプ・コード・フィー
ルド(TY)を復号して、コンディション・コード・フ
ィールド(CC)の位置とサイズを決定すると同時に、
コンディション・コード・フィールド(CC)を抽出し
て復号する。
【0192】複数サイクル命令復号器 複数サイクル命令復号器1628を図30に示す。複数
サイクル命令復号器1628は、第一命令フェッチ・レ
ジスタ1604から出力されるビットCI39−16を
受信する。ビットCI39−16の受信に応じて、複数
サイクル命令復号器1628は、複数サイクルステート
・マシーン1614の操作を制御するためのいくつかの
制御信号を生成して出力する。これらの制御信号を生成
するために、複数サイクル命令復号器1628は、概念
的には、タイプ・コード復号器1677と、フィールド
抽出器/復号器1678とで構成されている。
【0193】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1677は、コンポジット命令のビ
ットのうち、命令タイプ1149、1150、115
2、1160、1162〜1164、1167および1
168のタイプ・コード・フィールド(TY)を含む可
能性のあるすべてのビットを受信する。これらの命令タ
イプは、複数サイクル命令に関係する命令タイプであ
る。特に、図9(a)〜図9(i)を参照すると、これ
らの複数サイクル命令は、繰り返し(リピート)命令
と、標準ブランチ(つまり、goto)、ループ命令、
ブレークアウト命令、呼び出し(コール)命令と、復帰
(リターン)命令および倍長語命令を含んでいる。好ま
しい実施例では、タイプ・コード復号器1677は、コ
ンポジット命令の最初の13ビットCI39−17を受
信する。これは、フェッチ、復号および/又は実行のた
めに複数のマシン・サイクルを必要とする命令タイプの
うち、命令タイプ1169が最大のタイプ・コード・フ
ィールド(TY)を有することに起因している。
【0194】受信したビットCI39−27から、タイ
プ・コード復号器1677は、コンポジット命令のタイ
プ・コード・フィールド(TY)を復号し、図8(a)
〜図8(c)に列挙された命令タイプの中からその命令
タイプを決定する。命令が、倍長語命令を定義する命令
タイプ1149、1150、1160、1162および
1163のうちの1つである時には、タイプ・コード復
号器1677はDBLW信号を生成し出力することによ
り、それを複数サイクルステート・マシーン1614に
示す。そうでなければ、DBLW信号は、単一語命令が
復号されたことを示す。更に、命令が、繰り返し(リピ
ート)命令を定義する命令タイプ1154あるいは11
67のうちの1つである時には、タイプ・コード復号器
1677がリピート命令信号(REPEAT)を生成
し、複数サイクルステート・マシーン1614に出力す
る。しかし、命令が、標準ブランチ(つまり、got
o)、標準ループ、ブレークアウト、呼び出し(コー
ル)または復帰(リターン)の命令を定義できる命令タ
イプ1152、1164または1168のうちの1つで
ある時には、タイプ・コード復号器1677は、フィー
ルド抽出器/復号器1678に対して、操作コード・フ
ィールド(OP)の位置とサイズ(ビット長)を示す情
報を提供する。しかし、決定された命令タイプが、上記
命令タイプの1つでない時には、タイプ・コード復号器
1677は、また、その情報をフィールド抽出器/復号
器1678に提供する。
【0195】フィールド抽出器/復号器1678は、コ
ンポジット命令のビットのうち、命令タイプ1152、
1164または1168に対しての操作コード・フィー
ルド(OP)を含む可能性があるすべてのビットを受信
する。図8(a)〜図8(c)から明らかなように、好
ましい実施例では、これは、コンポジット命令の8ビッ
トCI34−32およびCO28−24である。
【0196】フィールド抽出器/復号器1678は、
(a)ループ命令信号(LOOP)、(b)ブランチ命
令信号(BRANCH)、(c)ブレークアウト信号
(BREAKOUT)、(d)呼び出し命令信号(CA
LL)、および、(e)復帰命令信号(RETURN)
を生成し、出力する。これらの信号は、それぞれ、複数
サイクルステート・マシーン1614に提供される。
【0197】タイプ・コード復号器1677が、フィー
ルド抽出器/復号器1678に対して、操作コード・フ
ィールド(OP)のサイズと位置に関する情報を提供す
ると、フィールド抽出器/復号器1678は、受信した
ビットCI34−32およびCI28−24から適切な
ビットを抽出して、それを復号する。それに応じて、フ
ィールド抽出器/復号器1678は、LOOP、BRA
NCH、BREAKOUT、CALLおよびRETUR
N信号を生成する。
【0198】複数サイクル命令復号器1628の実際の
構成では、タイプ・コード復号器1677とフィールド
抽出器/復号器1678の論理は、受信したコンポジッ
ト命令のビットCI39−24およびCI19−16か
らDBLW、REPEAT、LOOP、BRANCH、
BREAKOUT、CALLおよびRETURNの信号
を生成するように、最小化され組み合わされる。その結
果、ある種の複数サイクル命令(つまり、ブランチ、ル
ープ、ブレークアウト、呼び出し、および、復帰)に対
しては、複数サイクル命令復号器1628は、タイプ・
コード・フィールド(TY)を復号して、操作コード・
フィールド(OP)の位置とサイズとを決定すると同時
に、この操作コード・フィールド(OP)を抽出して復
号する。
【0199】複数サイクルステート・マシーン 複数サイクル命令復号器1628により出力される信号
のほかに、複数サイクルステート・マシーン1614
は、信号PCUOP、ALU/BPUOP、MUOP、
XBUSOP、YBUSOP、XAUSRC、XAUO
P、YAUOP、PCBUSE、XABUSE、YAB
USE、XRSELおよびYRSELを受信す。これは
図16に示されている。
【0200】図5を参照すると、倍長語命令の第一語
は、マシン・サイクルM1Aの最初の半分の期間で復号
され、命令復号ブロック1612がDBLW信号を出力
する。このDBLW信号に応じて、複数サイクルステー
ト・マシーン1614は、マシン・サイクルM1Aの後
の半分の期間で、処理の流れを制御して、マシン・サイ
クルM1Aにおいて、信号PCUOP、ALU/BPU
OP、MUOP、XBUSOP、YBUSOP、XAU
OP、YAUOP、XAUSRC、PCBUSE、XA
BUSE、YABUSE、XRSELおよびYRSEL
に対してNOP信号を挿入する。この時点では、命令の
第一語だけがフェッチされているので、NOP信号が挿
入されることにより、倍長語命令は、その第二語がマシ
ン・サイクルM1Aでフェッチされるまで実行されない
ことになる。図16を参照すると、DBLW信号に応じ
て、複数サイクルステート・マシーン1614は、マシ
ン・サイクルM1A時に、すでに説明したDBLWST
信号を生成し、それにより倍長語命令の第二語の第二命
令フェッチ・レジスタ1606によるフェッチが可能と
なり、第一語は第一命令フェッチ・レジスタ1604に
保持されている。
【0201】次のマシン・サイクルM2までに、倍長語
命令は、第一フェッチ・レジスタ1604と第二フェッ
チ・レジスタ1606にフェッチされる。その結果、複
数サイクルステート・マシーン1614は、倍長語命令
の復号に応じてこのマシン・サイクルにおいて生成され
た信号ALU/BPUOP、MUOP、XBUSOP、
YBUSOP、XAUOP、YAUOP、XAUSR
C、PCBUSE、XABUSEおよびYABUSEを
変更することはない。次いで、倍長語命令は、マシン・
サイクルM3において最終的に実行される。
【0202】マシン・サイクルM1Aにおいて、DBL
W信号が、単一語命令が復号されていることを示す場
合、複数サイクルステート・マシーン1614により出
力されるDBLWST信号は、単に、次の命令が図16
に示されている第一命令フェッチ・レジスタ1604に
フェッチ可能であることを示す。更に、その場合、複数
サイクルステート・マシーン1614は、信号ALU/
BPUOP、MUOP、XBUSOP、YBUSOP、
XAUOP、YAUOP、XAUSRC、PCBUS
E、XABUSEおよびYABUSEを変更することは
ない。
【0203】図16および図6を参照すると、繰り返し
(リピート)、ブレークアウト、標準ループまたは標準
ブランチの命令がマシン・サイクルM2時に復号される
と、複数サイクルステート・マシーン1614は、復号
段階の次の2つのマシン・サイクルM2AとM2Bにお
いて、それぞれの信号に対してNOP信号を挿入するこ
とにより、信号ALU/BPUOP、MUOP、XBU
SOP、YBUSOP、XAUOP、YAUOP、XA
USRC、PCBUSE、XABUSEおよびYABU
SEを変更する。これがなされると、命令の繰り返し
(リピート)、ループまたはブランチ操作が実際に実行
されるマシン・サイクルM2Aの後の2つのマシン・サ
イクルM2BとM3において、データ処理、データ転送
またはプログラム制御の操作は、実行されない。
【0204】しかし、呼び出し(コール)命令がマシン
・サイクルM2で復号される時に生成される信号CAL
Lに応じる場合は、複数サイクルステート・マシーン1
614は、復号段階の次の2つのマシン・サイクルM2
AとM2Bにおいて、信号ALU/BPUOP、MUO
P、YBUSOP、YAUOP、PCBUSEおよびY
ABUSEに対してだけNOP信号を挿入する。複数サ
イクルステート・マシーン1614は、これら2つのマ
シン・サイクルM2AとM2Bにおいて、信号XAUS
RC、XABUSEおよびXAUOPに対しては値を挿
入し、それにより、図29に示されたコンディション・
コード・レジスタ1674の内容と図12に示された第
四プログラムアドレスレジス1505(pc3)の内容
をデータ・メモリ1900にプッシュする。その結果、
命令の実際の呼び出し(コール)操作がマシン・サイク
ルM2Aにおいて実行された後、コンディション・コー
ド・レジスタ1674の内容は、マシン・サイクルM2
Bにおいてデータ・メモリ1900にプッシュされ、プ
ログラムアドレスレジス1505(pc3)の内容は、
マシン・サイクルM3においてデータ・メモリ1900
にプッシュされる。
【0205】復帰(リターン)命令がマシン・サイクル
M2時に復号される場合には、命令復号ブロック161
2は信号XAUSRC、XABUSEおよびXAUOP
を出力し、データ・メモリ1900のスタック・ポイン
タ・レジスタ1816(sp+1)により指定された位
置における内容を、図12に示す第一プログラムアドレ
スレジス1502(pc0)にポップさせる。更に、命
令復号ブロック1612はRETURN信号を出力し、
それに応じて、複数サイクルステート・マシーン161
4は復号段階での次の2つのマシン・サイクルM2Aと
M2Bにおいて、信号ALU/BPUOP、MUOP、
YBUSOP、YAUOP、PCBUSEおよびYAB
USEに対してNOP信号を挿入する。しかし、複数サ
イクルステート・マシーン1614は、次のマシン・サ
イクルM2Aにおいて、信号XAUSRC、XABUS
EおよびXAUOPを挿入することにより、データ・メ
モリ1900のスタック・ポインタ・レジスタ1817
(sp+1)により指定された位置の内容を、図29に
示されたコンディション・コード・レジスタ1674
(CCR)にポップさせる。次のマシン・サイクルM2
Bにおいて、複数サイクルステート・マシーン1614
は、信号XAUSRC、XABUSEとXAUOPに対
してNOP信号を挿入する。
【0206】イミディエート値復号器 イミディエート値復号器1630を図31に示す。イミ
ディエート値復号器1630は、第一命令フェッチ・レ
ジスタ1604により出力されるビットCI39−16
と、第二命令フェッチ・レジスタ1606により出力さ
れるビットCI15−CI0を受信する。ビットCI3
9−0の受信に応じて、イミディエート値復号器163
0は、イミディエート値を抽出して、イミディエート値
データ線1698又は、Xデータ・バス1102に出力
する。そのために、イミディエート値復号器1630
は、概念的には、タイプ・コード復号器1682とフィ
ールド抽出器/復号器1683とで構成されている。
【0207】図8(a)〜図8(c)を参照すると、タ
イプ・コード復号器1682は、コンポジット命令のビ
ットのうち、命令タイプ1149、1150、1152
〜1158、1160〜1163および1167のタイ
プ・コード・フィールド(TY)を含む可能性のあるす
べてのビットを受信する。これらはイミディエート値操
作に関係する命令タイプである。好ましい実施例では、
タイプ・コード復号器1682は、コンポジット命令の
最初の13ビットCI39−27を受信する。これは、
イミディエート値操作に関係する命令タイプのうち、命
令タイプ1167が最大のタイプ・コード・フィールド
(TY)を有しており、そのタイプ・コード・フィール
ド(TY)が13ビット長であることに起因している。
【0208】受信されたビットCI39−27から、タ
イプ・コード復号器1682は、コンポジット命令のタ
イプ・コード・フィールド(TY)を復号して、図8
(a)〜図8(c)に列挙されている命令タイプの中か
ら、その命令タイプを決定する。命令が、命令タイプ1
149、1150、1152〜1158、1160〜1
163および1167のうちの1つである時には、タイ
プ・コード復号器1682は、フィールド抽出器/復号
器1683に対して、第一命令フェッチ復号器から受信
されるビットCI33−16から抽出することができる
イミディエート値・フィールド($Address、$
Disp、Step Number M、Repeat
Count N、$DATA、$Data、$D、$
A)の位置とサイズ(ビット長)を示す情報を提供す
る。言い換えると、タイプ・コード復号器1682は、
フィールド抽出器/復号器1683に対して、単一語命
令に見出されるイミディエート値の位置とサイズ、ある
いは、倍長語命令の第一語内に見出されるイミディエー
ト値の位置とサイズを提供する。
【0209】タイプ・コード復号器1682は、また、
フィールド抽出器/復号器1683に対して、倍長語命
令であるか単一語命令であるかという情報と、抽出され
たイミディエート値がイミディエート値データ線169
8および/又はXデータ・バス1102上に出力すべき
かどうかという情報を提供する。しかし、決定された命
令タイプがイミディエート値操作に関係しない場合に
は、タイプ・コード復号器1682は、また、その情報
をフィールド抽出器/復号器1683に提供する。
【0210】フィールド抽出器1683は、コンポジッ
ト命令のビットのうち、命令タイプ1149、115
0、1152〜1158、1160〜1163および1
167のイミディエート値・フィールド($Addre
ss、$Disp、StepNumber M、Rep
eat Count N、$DATA、$Data、$
D、$A、$Address/$Data)を含む可能
性があるすべてのビットを受信する。図8(a)〜図8
(c)から明らかなように、好ましい実施例では、これ
は、コンポジット命令の35ビットCI34−0であ
る。
【0211】単一語命令タイプ1152、1153〜1
157、1161および1167の場合、フィールド抽
出器/復号器1683には、タイプ・コード復号器から
次の情報が受信される;すなわち、(a)単一語命令が
復号されていることを示す情報、(b)イミディエート
値データ線1698に出力されるべきイミディエート値
・フィールド($Address、$Disp、Ste
p Number M、$Data)の、受信されたビ
ットCI34−16における位置とサイズを示す情報、
および、(c)命令タイプ1154については、Xデー
タ・バス1102上に出力されるべきイミディエート値
・フィールド(Repeat Count N)の、ビ
ットCI34−16におけるサイズと位置を示す情報。
【0212】これに応じて、フィールド抽出器/復号器
1683は、(a)イミディエート値・フィールド($
Address、$Disp、Step Number
M、$Data)内に含まれるビットを抽出してイミ
ディエート値データ線1698に出力し、更に、(b)
イミディエート値・フィールド(Repeat Cou
nt N)内に含まれるビットを抽出してXデータ・バ
ス1102に出力する。
【0213】倍長語命令タイプ1149、1150、1
160、1162、1163の場合には、フィールド抽
出器/復号器1683にはタイプ・コード復号器から次
の情報が受信される;すなわち、(a)倍長語命令が復
号されていることを示す情報と、(b)命令タイプ11
49、1160、1162、1163については、受信
されたビットCI15−0におけるイミディエート値・
フィールド($Data/$Address)と組み合
わされてイミディエート値データ線1698に出力され
るべきイミディエート値・フィールド($A、$DAT
A)のビットCI34−16におけるサイズと位置を示
す情報と、そして、(c)命令タイプ1150について
は、ビットCI15−0におけるイミディエート値・フ
ィールド($Data/$Address)と組み合わ
されてXデータ・バス1102上に出力されるべきイミ
ディエート値・フィールド($DATA)のビットCI
34−16におけるサイズと位置を示す情報。
【0214】これに応じて、フィールド抽出器/復号器
1683は、(a)倍長語命令タイプ1149、116
0、1162、1163のイミディエート値・フィール
ド($A、$DATA、および、$Address/$
Data)に含まれるビットを抽出して、イミディエー
ト値データ線1698に出力し、そして、(b)倍長語
命令1150のイミディエート値・フィールド($DA
TAおよび$Address/$Data)に含まれて
いるビットを抽出して、Xデータ・バス1102に出力
する。
【0215】イミディエート値復号器1630の実際の
構成では、タイプ・コード復号器1682とフィールド
抽出器/復号器1683の論理は、受信されたコンポジ
ット命令のビットCI39−0からイミディエート値を
抽出して出力するように、最小化され組み合わされる。
その結果、イミディエート値復号器1630は、タイプ
・コード・フィールド(TY)を復号して、イミディエ
ート値・フィールド($Address、$Disp、
Step Number M、RepeatCount
N、$DATA、$Data、$D、$A、$Add
ress/$Data)の位置とサイズとを決定すると
同時に、これらのフィールドを抽出し、出力する。
【0216】実行段階 図3、図4に示されているように、命令タイプの復号さ
れた命令により定義された操作を実行するための実行段
階は、前のマシン・サイクルM2の時点t3で開始され
る。殆どの単一語命令の場合には、実行段階は、図3、
4に示されているように、次のマシン・サイクルM3の
時点t4で終了する。しかし、図6に示されているよう
に、標準ブランチ命令あるいは復帰(リターン)命令の
場合には、実行段階は、余分のマシン・サイクルM2A
とM2Bを通してつづき、マシン・サイクルM3の時点
t4で終了する。図5を参照すると、倍長語命令の場合
には、実行段階はマシン・サイクルM1Aの時点t3で
開始され、マシン・サイクルM3の時点t4で終了す
る。更に、データ・メモリ1900へのアクセス時に、
何らかの競合が発生した場合には、実行段階はマシン・
サイクルM3Bの時点t4で終了する。
【0217】レジスタ・ブロック 図29に示されているように、レジスタ・ブロックに
は、コンディション・コード・レジスタ1674(cc
r)と、コンディション・コード・レジスタ(CCR)
制御器1685、および、セレクタ1686、1687
が含まれている。コンディション・コード・レジスタ
(CCR)制御器1685は、コンディション・コード
復号器1627から、信号CC、UNCOND、XRS
EL、YRSELおよびXDBUSOPを受信する。
【0218】図10を参照すると、データ・レジスタ1
702〜1709(xd0〜m1)は、3個のサブ・レ
ジスタ、即ち、ガード・ビット・レジスタ1702
(a)〜1709(a)(xd0g〜m1g)と、基本
精度レジスタ1702(b)〜1709(b)(xd0
h〜m1h)と、拡張精度レジスタ1702(c)〜1
709(c)(xd0l〜m1l)に細分割される。従
って、データ処理操作のために、ALU1712とBP
U1714の両方は、ALUあるいはBPU操作のため
に、データ・レジスタ1702〜1709(xd0〜m
1)からそのソースAおよび、ソースBに56ビット・
オペランドを受信する。
【0219】図29を参照すると、これらのデータ処理
操作の結果として、レジスタ・ブロック1618は実行
装置(EXU)1700から次のようなフラグを受信す
る;すなわち、(a)ALUまたはBPU操作の時のベ
ース・ビットのための、1ビットの桁上げ(carr
y)または桁下げ(borrow)フラグ(C)、
(b)ALUまたはBPU操作の時のベース・ビットの
ための、1ビットのオーバフロー(あふれ)・フラグ
(V)、(c)結果がゼロとなるALUまたはBPU操
作のための、1ビットのゼロ結果フラグ(Z)、(d)
結果が負(マイナス)となるALUまたはBPU操作の
ための、1ビットの負結果フラグ(N)、(e)ALU
やBPUの操作におけるガード・ビットのための桁上げ
または桁下げフラグ(GC)、そして、(f)ALUや
BPUの操作におけるガード・ビット部分のためのオー
バ・レンジ(over range)フラグ(VR)、
の各種フラグである。
【0220】図10に示されているように、C、N、
Z、V、VRあるいはGCフラグは、ALU1712ま
たはBPU1714で生成することができる。
【0221】信号XDBUSOPが、レジスタからレジ
スタへのデータ転送を示すものでない時には、コンディ
ション・コード・レジスタ(CCR)制御器1685は
セレクタ1686を制御するための制御信号を生成し、
それにより、コンディション・コード・レジスタ167
4(ccr)のビット・レジスタ1674−0〜167
4−5に対して、実行装置(EXU)1700により生
成されたフラグC、V、N、Z、GCまたはVRをそれ
ぞれ供給させ、また、セレクタ1687を制御するため
の制御信号を生成し、それにより、格納されているC、
V、N、Z、GC、またはVRフラグを出力させる。し
かし、コンディション・コード・レジスタ(CCR)制
御器1685がレジスタからレジスタへの移動を示す信
号XDBUSOPを受信し、信号XRSELがコンディ
ション・コード・レジスタ1674(ccr)を特定す
る場合には、コンディション・コード・レジスタ167
4(ccr)のビット・レジスタ1674−0〜167
4−5のそれぞれに、Xデータ・バス1102を通じ
て、C、V、N、Z、GC、VRまたはユーザーにより
セット可能なフラグ(U)をセットすることができる。
【0222】もし、復号された命令がコンディション・
コード・フィールド(CC)を有していないことを信号
UNCONDが示す場合、コンディション・コード・レ
ジスタ(CCR)制御器1685は、コンディション・
コード・レジスタ1674(ccr)を再新するための
UPDATE信号を生成する。その結果、現命令の実行
段階時に、ALU1712またはBPU1714により
C、V、N、Z、GCまたはVRのいずれかのフラグが
生成される場合、コンディション・コード・レジスタ1
674(ccr)は、これら生成されたフラグを格納す
る。
【0223】しかし、復号された命令がコンディション
・コード・フィールド(CC)を有していることを信号
UNCONDが示す場合がある。表1は、4ビットのコ
ンディション・コード・フィールド(CC)で識別可能
な、2個の無条件ビット0000と0001と14個の
条件ビット0010〜1111を列挙したものであり、
表中に、それぞれについての説明がなされている。
【0224】
【表1】
【0225】表1に示したように、14個の条件001
0〜1111と第二の無条件0001は、このコンディ
ション・コード・フィールド(CC)を含む現命令が実
行される時に、ALU1712またはBPU1714に
より生成されるフラグC、V、N、Z、GCまたはVR
によりコンディション・コード・レジスタ1674(c
cr)が再新されないことを示している。一方、無条件
0000は、このコンディション・コード・フィールド
(CC)を含む現命令が実行される時に生成されるフラ
グC、V、Z、N、GCまたはVRにより、コンディシ
ョン・コード・レジスタ1674(ccr)が再新され
ることを示している。
【0226】コンディション・コード・レジスタ(CC
R)制御器1685が、復号された命令がコンディショ
ン・コード・フィールド(CC)を有していることを示
す信号UNCONDを受信すると、コンディション・コ
ード・レジスタ(CCR)制御器1685はコンディシ
ョン・コード復号器1672により生成されたコンディ
ション・コード信号(CC)を復号する。それに応じ
て、コンディション・コード信号(CC)により14個
の条件0010〜1111のうちの1つ、または、第二
無条件0001が特定される時には、制御器1685
は、コンディション・コード・レジスタ1674(cc
r)を再新しないためのUPDATE信号を生成する。
一方、CC信号が第一無条件0000を特定する時に
は、コンディション・コード・レジスタ(CCR)制御
器1685は、コンディション・コード・レジスタ16
74(ccr)を再新するためのUPTATE信号を生
成する。
【0227】ALU1712またはBPU1714によ
り生成されるフラグC、N、Z、V、GCまたはVRが
再新されないことを示すコンディション・コードを用い
ることには大きな利点がある。簡単に言うと、この利点
とは、それが無い場合にプログラムを実現するために用
いられるブランチ命令およびその他の命令の数を減少さ
せることができることである。
【0228】条件チェック・ブロック 図32に共通復号装置1600の条件チェック・ブロッ
ク1616を示す。条件チェック・ブロック1616に
は、コンディション・コード・フィールド復号器169
0と、コンディション・コード・フラグ復号器1691
と、比較器1692が含まれている。比較器1692
は、ORゲート1694とANDゲート1693(a)
〜(n)のセットで構成されている。ANDゲート16
93(a)〜(n)のそれぞれは、表1に示された14
個の条件(0010〜1111)の1つに対応してい
る。
【0229】特定の命令の命令復号段階で、コンディシ
ョン・コード・フィールド復号器1690は、コンディ
ション・コード復号器1627から、CC信号(つま
り、その命令の、抽出されたコンディション・コード・
フィールド)とUNCOND信号とを受信する。無条件
付命令が復号されていることをUNCOND信号が示す
なら、命令の実行段階において、コンディション・コー
ド・フィールド復号器1690は、2進高位信号を比較
器1692のORゲート1694に直接出力する。それ
に応じて、ORゲート1692により出力されるCNC
L信号は、命令により定義され、現に実行されている操
作が完了されるべきことを示す。
【0230】しかし、条件付命令が復号されたことをU
NCOND信号が示す場合には、コンディション・コー
ド・フィールド復号器1690が受信したCC信号を復
号することにより、表1に列挙されている2個の無条件
(0000と0001)または、14個の条件(001
0〜1111)のうちのどれがCC信号により定義され
るかを決定する。CC信号が2個の無条件(0000と
0001)のうちのどちらか一方の条件を定義する時に
は、命令の実行段階で、コンディション・コード・フィ
ールド復号器1690は、2進高位信号を直接ORゲー
ト1694に出力する。それに応じて、ORゲート16
94により出力されるCNCL信号は、命令により定義
され現に実行されている操作が完了されるべきことを示
す。
【0231】しかし、CC信号が、14個の条件(00
10〜1111)のうちの1つを定義する時には、命令
の実行段階で、コンディション・コード・フィールド復
号器1690が、適切なANDゲート1693(a)〜
(n)に対して、2進高位信号を出力する。同時に、コ
ンディション・コード・フラグ復号器1691は、コン
ディション・コード・レジスタ1674(ccr)のビ
ット・レジスタ1674−0〜1674−5および16
74−10に現在格納されているフラグを受信する。そ
れに応じて、ANDゲート1693(a)〜(n)のそ
れぞれに対応する(表1に示された)条件が現在存在し
ている時には、コンディション・コードフラグ復号器1
691は、2進高位信号をANDゲート1693(a)
〜(n)の各々に出力する。対応する条件が存在してい
ない時には、コンディション・コード・フラグ復号器1
691は、対応するANDゲート1693(a)〜
(n)に2進低位信号を出力する。
【0232】その結果、CC信号により定義された条件
が現に存在する時には、対応するANDゲート1693
(a)〜(n)は、ORゲート1694に対して2進高
位信号を提供する。これに応じて、ORゲート1694
により出力されるCNCL信号は、命令により定義さ
れ、現に実行されている操作が完了されるべきことを示
す。しかし、CC信号により定義された条件が現在存在
しない時には、対応するANDゲートに対して、2進低
位信号を提供する。それに応じて、ORゲート1694
により出力されるCNCL信号は、命令により定義さ
れ、現在実行されつつある操作がキャンセルされるべき
ことを示す。
【0233】EXUの操作 図10は、実行装置(EXU)1700のアーキテクチ
ャを示したものである。ローカル実行装置(EXU)制
御器1750は、復号された命令の実行のために共通復
号装置1600により生成されるいくつかの信号を受信
する。
【0234】信号ALU/BPUOPに応じて、ローカ
ル実行装置(EXU)制御器1750は、ALU171
2およびBPU1714に提供される制御信号を生成す
る。ALU、BPU操作および、ALUとBPUの組み
合わせ(つまり、割算)の操作を定義する図9(a)〜
図9(g)に示された各種の命令に対しては、これらの
信号がALU1712およびBPU1714を制御し
て、これらの操作を実行させる。
【0235】信号MUOPに応じて、ローカル実行装置
(EXU)制御器1750は、MU1716に提供され
る制御信号を生成する。MUの操作を定義する図9
(a)〜図9(g)に示された各種の命令に対しては、
これらの制御信号が、MU1716を制御して、これら
の操作を実行させる。
【0236】すでに説明され、また、図10にも示され
ているように、データ・レジスタ1702〜1709
(xd0〜m1)の各々には、ガード・ビット・レジス
タ1702(a)〜1709(a)(xd0g〜m1
g)と、基本精度レジスタ1702(b)〜1709
(b)(xd0h〜m1h)と、拡張精度レジスタ17
02(c)〜1709(c)(xd0l〜m1l)が含
まれている。レジスタ1702〜1709(xd0〜m
1)の各1つのレジスタは56ビットのデータ語(また
は、オペランド)を格納している。つまり、ガード・ビ
ット・レジスタ1702(a)〜1709(a)(xd
0g〜m1g)が最初の8ビットを、基本精度レジスタ
1702(b)〜1709(b)(xd0h〜m1h)
が次の24ビットを、そして、拡張精度レジスタ170
2(c)〜1709(c)(xd0l〜m1l)が最後
の24ビットを格納している。データ処理操作に対して
は、全体のレジスタ1702〜1709が、内部バス1
742、1744により提供された56ビットのデータ
語を格納するために、そしてさらに、56ビットのデー
タ語を内部バス1734〜1737に出力するために用
いられる。しかし、Xデータ・バス1102とYデータ
・バス1104への、あるいは、それからのデータ転送
のためには、サブ・レジスタ1702(a)〜1709
(b)の各々にアクセスすることができる。
【0237】ローカル実行装置(EXU)制御器175
0は、信号ALUSRCA、ALUSRCB、MU/B
PUSRCA、MU/BPUSRCBに応じてセレクタ
1730〜1732に提供されるソース制御信号を生成
する。
【0238】信号ALUSRCAについては、ローカル
実行装置(EXU)制御器1750により生成されたソ
ース制御信号がセレクタ1730〜1732を制御し
て、レジスタ1702〜1709(xd0〜m1)のう
ち信号ALUSRCAにより指定されたレジスタに格納
されている56ビットのデータを、56ビット内部AL
USRCAバス1734に出力させる。図8(a)〜図
8(c)を参照すると、これは、命令タイプ1134〜
1139、1142、1143、1146および115
1のうちの復号された命令に対して発生する。信号AL
USRCBについては、これらの制御信号はセレクタ1
730〜1732を制御し、レジスタ1702〜170
9(xd0〜m1)のうちの信号ALUSRCBにより
指定されたレジスタに格納されている56ビットのデー
タを56ビット内部ALUSRCBバス1735に出力
する。図8(a)〜図8(c)を参照すると、これは命
令タイプ1134〜1146、1151および1159
のうちの復号された命令に対して発生する。
【0239】信号MU/BPUSRCAについては、こ
れらの制御信号がセレクタ1730〜1732を制御
し、レジスタ1702〜1709(xd0−m1)のう
ちのMU/BPUSRCA信号により指定されたレジス
タに格納されている56ビットのデータを、56ビット
内部MU/BPUSRCAバス1736に出力させる。
【0240】最後に、信号MU/BPUSRCBについ
ては、これらの信号がセレクタ1730〜1732を制
御して、レジスタ1702〜1709(xd0〜m1)
のうちのMU/BPUSRCB信号により指定されたレ
ジスタに格納されている56ビットのデータを56ビッ
ト内部MU/BPUSRCBバス1737に出力させ
る。図8(a)〜図8(c)を参照すると、これらのこ
とは、命令タイプ1134〜1146、1151および
1159のうち復号された命令に対して発生し得る。
【0241】ローカル実行装置(EXU)制御器175
0はまた、信号ALUDSTとMU/BPUDSTに応
じて、セレクタ1738〜1740に提供されるディス
ティネーション制御信号を生成する。信号ALUDST
については、ローカル実行装置(EXU)制御器175
0により生成された制御信号がセレクタ1738〜17
40を制御し、56ビットALUDSTバス1742か
らの56ビットのデータを、レジスタ1702〜170
9(xd0〜m1)のうちALUDST信号により指定
されたレジスタに入力させる。信号MU/BPUDST
については、ローカル実行装置(EXU)制御器175
0により生成された制御信号がセレクタ1738〜17
40を制御し、56ビットMU/BPUDSTバス17
44からの56ビットのデータを、レジスタ1702〜
1709(xd0〜m1)のうちMU/BPUDST信
号により指定されたレジスタに入力させる。
【0242】上記の考察から、また、図8(a)〜図8
(c)および図9(a)〜図9(i)に示唆されている
ように、実行装置(EXU)1700は、ALU、BP
UまたはMUの単一操作(命令タイプ1136、113
7、1140〜1145、1149、1151、115
7、1159および1161)と、ALUおよびBPU
の並列操作(命令タイプ1151に対する分割操作)
と、ALUおよびMUの並列操作(命令タイプ113
4、1135、1138、1139および1146)を
実現するように設計されていることが明らかである。さ
らに、この構成は、これらの命令タイプのうちの1つに
より定義されるALU、BPUまたはMUの各操作に対
して、2つまでのソース・レジスタと1つの別個のディ
スティネーション・レジスタを提供するように設計され
ている。それに加えて、8個のレジスタ1702〜17
09(xd0〜md1)の各々は、ALU1712、B
PU1714またはMU1716による操作のための第
一ソース(A)、第二ソース(B)またはディスティネ
ーションとなることができる。しかし、図8(a)〜図
8(c)および図9(a)〜図9(i)に示されている
ように、ソースまたはディスティネーションとして選択
することができるレジスタ1702〜1709(xd0
〜m1)の数とタイプは命令タイプにより制限されてい
る。
【0243】信号INTEGに応じて、ローカル実行装
置(EXU)制御器1750は、ALU1712または
BPU1714に提供される整数演算制御信号を生成す
る。これらの制御信号はALU1712または乗算器
(MU)1716を制御し、図9(a)〜図9(g)に
列挙された整数演算に関係する命令のための整数演算操
作を実行させる。一方、信号FRACが受信されると、
ローカル実行装置(EXU)制御器1750はALU1
712または乗算器(MU)1716を制御するための
制御信号を生成し、小数部演算操作を実行させる。
【0244】ローカル実行装置(EXU)制御器175
0は、信号ALUSHFTに応じて、ALU1712と
セレクタ1746に提供されるシフト制御信号を生成す
る。
【0245】セレクタ1746に受信されたシフト制御
記号はセレクタ1746を制御し、シフト・レジスタ1
720および1722(shaおよびshb)のうちの
1つに格納されているシフト・コードをALU1712
のソースBシフタ1752または、ALU1712の出
力シフタ1753に提供させる。ALU1712に受信
されたシフト制御信号は、ソースBシフタ1752を制
御してソースBオペランドをシフトさせるかまたは、A
LU出力シフタ1753を制御してセレクタ1746に
より提供されたシフトコードに指示された量だけALU
出力をシフトさせて丸める。これらの制御信号はALU
1712を制御し、それにより、図9(a)〜図9
(g)に列挙されているALUの操作によるビットシフ
トに関係する命令に関して示されているシフト機能が実
行される。
【0246】信号IMMDEにより、ALU1712の
ソースBに対するレジスタの代わりにイミディエート値
を用いるべきことを示されている場合、ローカル実行装
置(EXU)制御器1750はバッファ1751とセレ
クタ1730〜1732に提供される制御信号を生成
し、それにより、内部ALUSRCBバス1735に
は、レジスタ1702〜1709(xd0〜m1)の1
つからのデータではなく、イミディエート値データ線1
698上のイミディエート値が提供される。これは、命
令タイプ1149、1157、1161のうちの1つ
が、共通復号装置1600により復号される時に発生す
る。しかし、信号IMMDEにより、レジスタの内容が
ALU1712のソースBに対して使用すべきであるこ
とが示される場合、ローカル実行装置(EXU)制御器
1750はバッファ1752とセレクタ1730〜17
32に提供される制御信号を生成し、それにより、イミ
ディエート値データ線1698上のイミディエート値の
代わりに、レジスタ1702〜1709(xd0〜m
1)のうちの1つからのデータがALUSRCBバス1
135に提供される。図8(a)〜図8(c)を参照す
ると、これは、命令タイプ1134〜1146、115
1、1159のうちの1つが共通復号装置1600によ
り復号される時に生じる。
【0247】ローカル実行装置(EXU)制御器175
0は、信号ADDWCに応じて、ALU1712に提供
される制御信号を生成する。これらの制御信号は、AL
U1712を制御し、命令タイプ1146と1149に
対して図9(g)に示されている桁上げ付き加算または
桁下げ付き減算の操作を実行させる。
【0248】信号DSTEが、ディスティネーション・
レジスタがイネーブルにされるべきことを示す場合、ロ
ーカル実行装置(EXU)制御器1750は、レジスタ
1702〜1709(xd0〜m1)に提供され、これ
らのレジスタをイネーブルにするための制御信号を生成
し、Xデータ・バス1102、Yデータ・バス110
4、内部ALUDSTバス1742または内部MU/B
PUDSTバス1744により提供されるデータを、セ
レクタ1738〜1740を介して格納させる。
【0249】図8(a)〜図8(c)を参照すると、こ
れは、データ処理操作に関係し、ディスティネーション
・フィールド(DST、D1またはD2)を含む命令タ
イプ1134〜1146、1149〜1151、115
7、1159および1161に対して発生する。しか
し、信号DSTEがそうではないことを示している場合
には、ローカル実行装置(EXU)制御器1750は制
御信号を生成してレジスタ1702〜1709(xd0
〜m1)に提供し、Xデータ・バス1102、Yデータ
・バス1104、内部ALUDSTバス1742または
内部MU/BPUDSTバス1744により提供される
データの、セレクタ1738〜1740を介する格納に
関してこれらのレジスタをディスエーブルにする。これ
は、データ処理操作に関係するが、ディスティネーショ
ン・フィールド(DST、D1またはD2)を含まない
図9(f)の命令タイプ1151の各種の命令に対して
発生する。
【0250】ローカルAU制御器1850と同様に、ロ
ーカル実行装置(EXU)制御器1750は、信号XR
SEL、YRSEL、XDBUSOP、YDBUSOP
に応じて、セレクタ1730〜1732およびセレクタ
1738〜1740に提供されるデータ転送制御信号を
生成する。
【0251】すでに言及されたように、信号XDBUS
OPはデータがデータ・メモリ1900に記憶またはプ
ッシュされるべきことを示す場合がある。これが当ては
まる場合であって、更に、その実行のために、信号XR
SELがデータ・レジスタ1702(a)〜1709
(c)(xd0g〜m1l)のうちの1つのレジスタま
たはシフト制御レジスタ1720および1722(sh
aおよびshb)のうちの1つのレジスタを指定する場
合には、ローカル実行装置(EXU)制御器1750
は、セレクタ1730、1731、1732、1746
のうちの適切なセレクタに提供される制御信号を生成
し、そのセレクタを制御して、レジスタのうちの信号X
RSELにより指定されたレジスタに格納されているデ
ータを、Xデータ・バス1102に出力させる。図8
(a)〜図8(c)を参照すると、これは、復号された
命令が1134、1136、1139、1140、11
43、1145、1147、1165、1166の命令
タイプであるもの対して発生し得る。
【0252】しかし、信号XDBUSOPは、また、デ
ータがデータ・メモリ1900からレジスタにロードま
たはポップされるべきこと、あるいは、イミディエート
値がレジスタにロードされべきことを示すことがある。
従って、これが当てはまる場合で、かつ、その実施のた
めに、信号XRSELがレジスタ1702(a)〜17
09(c)(xd0g〜m1l)のうちの1つのレジス
タまたはレジスタ1720と1722(shaとsh
b)のうちの1つを指定する場合には、ローカル実行装
置(EXU)制御器1750は、セレクタ1738、1
739、1740、1748のうちの適切なセレクタに
提供される制御信号を生成し、そのセレクタを制御し
て、レジスタのうちの信号XRSELにより指定された
レジスタに、Xデータ・バス1102からのデータを入
力させる。これは、復号された命令が、命令タイプ11
34〜1138、1140〜1142、1144、11
47、1150、1155、1156、1160、11
65または1166であるものに対して発生し得る。
【0253】信号YDBUSOPが、データがレジスタ
からデータ・メモリ1900に記憶されるべきことを示
しており、信号YRSELがレジスタ1702(a)〜
1709(c)(xd0g〜m1l)のうちの1つまた
はレジスタ1720と1722(shaとshb)のう
ちの1つを指定している場合には、ローカル実行装置
(EXU)制御器1750は、セレクタ1730、17
31、1732、1746のうちの適切な1つに提供さ
れる制御信号を生成し、そのセレクタを制御して、信号
YRSELにより指定されたレジスタに格納されている
データをYデータ・バス1104に出力させる。図8
(a)〜図8(c)を参照すると、これは、復号された
命令が並列データ転送操作を定義する命令タイプ113
4、1136、1140および1147のものに対して
発生する。
【0254】しかし、信号YDBUSOPが、データが
データ・メモリ1900からレジスタにロードされるべ
きことを示しており、信号YRSELが、データ・レジ
スタ1702(a)〜1709(c)(xd0g〜m1
l)のうちの1つまたはレジスタ1720と1722
(shaとshb)のうちの1つを指定している場合に
は、ローカル実行装置(EXU)制御器1750は、セ
レクタ1738、1739、1740、1748のうち
の適切なセレクタに提供される制御信号を生成し、その
セレクタを制御して、信号YRSELにより指定された
レジスタに、Yデータ・バス1104からのデータを入
力させる。これは、復号された命令が、並列データ転送
操作を定義する命令タイプ1134〜1137、114
0、1141、1147の場合に発生し得る。
【0255】信号XDBUSOPが、1つのレジスタか
ら他のレジスタにデータが移動されるべきことを示して
おり、信号XRSELがデータ・レジスタ1702
(a)〜1709(c)(xd0g〜m1l)のうちの
1つまたはレジスタ1720と1722(shaとsh
b)のうちの1つを指定している場合には、ローカル実
行装置(EXU)制御器1750は、セレクタ173
0、1731、1732のうちの適切なセレクタに提供
される制御信号を生成し、そのセレクタを制御して、デ
ータ・レジスタ1702(a)〜1709(c)(xd
0g〜m1l)のうち信号XRSELにより指定された
レジスタからXデータ・バス1102上にデータを出力
させる。さらに、この場合、信号YRSELがデータ・
レジスタ1702(a)〜1709(c)(xd0g〜
m1l)のうちの1つのレジスタを指定する場合には、
EXU制御器は、セレクタ1738、1739、174
0のうちの適切なレジスタに提供される制御信号を生成
し、そのセレクタを制御して、レジスタのうち信号YR
SELにより指定されたレジスタにXデータ・バス11
02からのデータを受信させる。これは、復号された命
令がレジスタからレジスタへの(つまり、移動)データ
転送操作を定義する命令タイプ1148のものである場
合に発生し得る。
【0256】ローカル実行装置(EXU)制御器175
0は、さらに、クロック信号CK0とCK1を受信す
る。これらのクロック信号は、すでに説明した制御信号
の生成時に正しいタイミングを得るためにローカルEX
U復号器1750により使用され、それにより、図3に
示された標準パイプラインを実現することができる。
【0257】ローカル実行装置(EXU)制御器175
0にはさらに、共通復号装置1600の条件チェック・
ブロック1616から信号CANCELが受信される。
これに応じて、ローカル実行装置(EXU)制御器17
50は制御信号を生成し、それによりデータ・レジスタ
1702(a)〜1709(c)とシフト制御レジスタ
1720と1722(shaとshb)を制御して、X
テータバス1104、Yデータ・バス1104、内部A
LUDSTバス1742または内部MU/BPUDST
バス1744からセレクタ1738〜1740または1
748を介して送られるいかなるデータをも格納しない
ようにさせる。
【0258】さらに、ローカル実行装置(EXU)制御
器1750は、並列アービタ2100から信号STAL
Lを受信することがある。この信号を受信した場合に
は、制御器1750は制御信号を生成し、それによりデ
ータ・レジスタ1702(a)〜1709(c)および
シフト制御レジスタ1720、1722(sha、sh
b)を制御して、Xデータ・バス1102、Yデータ・
バス1104、内部ALUDSTバス1742または内
部MU/BPUDSTバス1744からセレクタ173
8〜1740または1748を介して送られるいかなる
データも格納しないようにさせる。図7に示されている
ように、これは、アクセス競合が並列アービタ2100
により解決されるまで、マシン・サイクルM3Aおよび
M3Bの少なくとも1つに対して発生し得る。
【0259】PCU 図12にプログラム制御装置(PCU)1500のアー
キテクチャを示す。ローカルPCU制御器1550は、
復号された命令を実行するために共通復号装置1600
により生成されるいくつかの信号を受信する。
【0260】信号PCUOPに応じて、ローカルプログ
ラム制御装置(PCU)制御器1500は、PCU15
00の様々な構成要素に提供される制御信号を生成す
る。
【0261】図8(a)〜図8(c)を参照すると、ノ
ンプログラム制御命令タイプ1134〜1151、11
55〜1161、1165、1166および1170が
共通復号装置1600により復合されると、信号PCU
OPは、プログラムアドレスレジス1502(pc0)
の内容がインクリメントされるべきことを示す。これに
応じて、PCU制御器1550は、これを実現するため
に、プログラムアドレスレジス1502(pc0)、セ
レクタ1514、セレクタ1516そして加算器150
6に提供される制御信号を生成する。
【0262】図9(i)を参照すると、信号PCUOP
は、ループ、呼び出し(コール)、ブランチ(got
o)またはブレークアウトの命令が復号されていること
を示すことがある。これが当てはまり、さらに、信号R
ELBが、相対ブランチ操作が実現されないことを示し
ている場合には、ローカルPCU制御器1550は、セ
レクタ1514、1516、1518、加算器150
6、バッファ1520およびプログラムアドレスレジス
1502(pc0)に提供される制御信号を生成し、
(a)Xデータ・バス1102上のアドレスを獲得し、
そして(b)そのアドレスをプログラムアドレスレジス
1502(pc0)に格納させる。このアドレスは、次
の命令フェッチ段階においてPCアドレス・バス111
6上に出力されることになる。
【0263】しかし、信号PCUOPが、ループ、呼び
出し(コール)、ブランチ(分岐、goto)またはブ
レークアウト命令が復号されたことを示し、かつ、信号
RELBが、相対ブランチ操作が実現されるべきこと示
している場合には、ローカルPCU制御器1550は、
セレクタ1514、1516、1518、加算器150
6、バッファ1520およびプログラムアドレスレジス
1502(pc0)に提供される信号を生成し、(a)
イミディエート値・アドレスをイミディエート値データ
線1698またはXデータ・バス1102から獲得し、
(b)そのイミディエート値・アドレスをプログラムア
ドレスレジス1502(pc0)が出力するアドレスに
加算し、そして、(c)それをそのレジスタに戻して格
納させる。このアドレスは、次の命令フェッチ段階にお
いてPCアドレス・バス1116上に出力されることに
なる。
【0264】信号PCUOPはまた、リピート命令が復
号されたことを示す場合がある。その場合には、ローカ
ルPCU制御器1550は、セレクタ1514、151
8、1524、1522、加算器1506、バッファ1
520、リピート開始レジスタ1510(rs)、リピ
ート・カウンタ・レジスタ1508(rc)およびリピ
ート終了レジスタ1509(re)に提供される制御信
号を生成し、それにより、(a)リピート・カウント値
をXデータ・バス1102から獲得し、それをリピート
・カウンタ・レジスタ1508(rc)に格納させ、
(b)ステップ・ナンバー値(増分)をイミディエート
値データ線1698から獲得し、それをプログラムアド
レスレジス1504(pc2)により提供されるアドレ
スに加算してリピート終了レジスタ1509(re)に
格納し、そして、(c)プログラムアドレスレジス15
03(pc1)に格納されているアドレスを獲得し、そ
れをリピート開始レジスタ1510(rs)に格納させ
る。
【0265】ローカルPCU制御器1550はまた、信
号XRSEL、YRSEL、XDBUSOP、YDBU
SOPに応じて、バッファ1526〜1532に提供さ
れるデータ転送制御信号を生成する。
【0266】信号XDBUSOPは、データがレジスタ
からデータ・メモリ1900に記憶またはプッシュされ
るべきことを示す場合がある。これが当てはまり、か
つ、これを実現するために、信号XRSELがレジスタ
1502、1505、1508〜1511のうちの1つ
を指定する場合には、ローカルPCU制御器1550
は、バッファ1532に、また、バッファ1526〜1
531のうちの1つに提供される制御信号を生成し、そ
れによりこれらのバッファを制御して、レジスタのうち
信号XRSELにより指定されたレジスタに格納されて
いるデータをXデータ・バス1102上に出力させる。
図8(a)〜図8(c)を参照すると、これは復号され
た命令が命令タイプ1155、1156、1160およ
び1165のものである場合に発生し得る。
【0267】一方、信号XDBUSOPは、データがデ
ータ・メモリ1900からレジスタへロードまたはポッ
プされるべきこと、あるいは、イミディエート値がレジ
スタにロードされるべきこと示す場合がある。これが当
てはまり、さらに、信号XRSELが、これを実現する
ために、レジスタ1502、1505、1508〜15
11のうちの1つのレジスタを指定する場合には、ロー
カルPCU制御器1550は、バッファ1520に対
し、また、バッファ1526〜1531のうちの1つに
対して提供される制御信号を生成し、それによりこれら
のバッファを制御してXデータ・バス1102からのデ
ータを信号XRSELにより指定されたレジスタに出力
させる。これは、復号された命令が、命令タイプ115
0、1155、1156、1160および1165のも
のである場合に発生し得る。
【0268】信号XDBUSOPが、データが1つのレ
ジスタから他のレジスタに移動されるべきことを示して
おり、かつ信号XRSELがレジスタ1502、150
5、1508〜1511のうちの1つを指定する場合に
は、ローカルPCU制御器1550は、バッファ153
2に対し、また、バッファ1526〜1531のうちの
1つに対して提供される制御信号を生成し、これらのバ
ッファを制御して、レジスタのうち信号XRSELによ
り指定されたレジスタからXデータ・バス1102にデ
ータを出力させる。さらに、その場合、信号YRSEL
がレジスタ1502、1505、1508〜1511の
うちの1つを指定する時は、ローカルPCU制御器15
50は、バッファ1520に対し、また、バッファ15
26〜1531のうちの1つに対して提供される制御信
号を生成し、それによりこれらのバッファを制御して、
レジスタのうち信号YRSELにより指定されたレジス
タに対して、Xデータ・バス1102からのデータを受
信させる。これは、復号された命令がレジスタからレジ
スタへの(つまり、移動)データ転送操作を定義する命
令タイプ1148の場合に発生し得る。
【0269】ローカルPCU制御器1550にはまた、
クロック信号CK0とCK1が受信される。これらのク
ロック信号は、ローカルPCU制御器1550により、
すでに説明した制御信号を生成する場合にタイミングを
正しく取るために使用され、それにより、図3に示され
た標準パイプラインを実現することができる。
【0270】さらに、ローカルPCU制御器1550に
は、並列アービタ2100の提供する信号STALLが
受信される。この信号を実際に受信すると、制御器15
50は制御信号を生成し、レジスタ1502〜150
5、1508〜1511を制御して、受信されたいかな
るデータをも格納しないようにさせる。図7に示されて
いるように、これは、アクセス競合が並列アービタ21
00により解決されるまで、M3AとM3Bの少なくと
も1つのマシン・サイクルに対して発生する。
【0271】アドレス・ユニット(AU)の操作 図11はアドレス・ユニット(AU)1800のアーキ
テクチャを示したものである。ローカルAU復号器/制
御器1850には、共通復号装置1600で復号された
命令を実行するために、共通復号装置1600により生
成されたいくつかの信号が受信される。
【0272】図11に示されているように、アドレス・
レジスタ1802〜1809(xa0〜ya3)の各々
とスタック・ポインタ・レジスタ1816(sp)と1
817(sp+1)の各々は18ビットのアドレスを格
納している。さらに、インデックス・レジスタ1818
と1820(i0とi1)は、18ビットのインデック
ス値(つまり、偏位値)を格納している。
【0273】ローカルAU制御器1850はオペランド
・アドレス・ソース制御信号を生成し、その信号は、信
号XAUSRCとYAUSRCに応じて、セレクタ18
30とバッファ1831、1832に提供される。
【0274】信号XAUSRCが、アドレス・レジスタ
1802〜1809(xa0〜ya3)のうちの1つま
たはスタック・ポインタ・レジスタ1816(sp)ま
たは1817(sp+1)を指定する時には、ローカル
AU制御器1850により生成されたオペランド・アド
レス・ソース制御信号がセレクタ1830を制御して、
これらのレジスタのうち信号XAUSRCにより指定さ
れたレジスタにより出力されるデータの18ビットを1
8ビット内部XAUSRCバス1834とXアドレス・
バス1108に出力させる。図8(a)〜図8(c)を
参照すると、これは、復号された命令が、命令タイプ1
134〜1145、1147、1165、1166のも
のである場合に発生し得る。
【0275】信号XAUSRCが、イミディエート値ア
ドレスデータを指定する時には、ローカルAU制御器1
850により生成されたオペランド・アドレス・ソース
制御信号がバッファ1832を制御し、イミディエート
値データ線1698により提供されるデータの18ビッ
トを18ビット内部XAUSRCバス1834とXアド
レス・バス1108に出力させる。図8(a)〜図8
(c)を参照すると、これは、復号された命令が、命令
タイプ1155、1156、1160のものである場合
に発生し得る。
【0276】一方、信号DBLDTが受信され、かつ信
号YAUSRCがアドレス・レジスタ1802〜180
9(xa0〜ya3)のうちの1つを指定する場合に
は、ローカルAU制御器1850により生成されたオペ
ランド・アドレス・ソース制御信号がセレクタ1830
を制御し、これらのレジスタのうちの信号YAUSRC
により指定されたレジスタにより出力されるデータの1
8ビットを18ビット内部YAUSRCバス1836と
Yアドレス・バス1110に出力させる。図8(a)〜
図8(c)を参照すると、これは、復号された命令が並
列データ転送操作を定義する命令タイプ1134〜11
37、1140、1141、1147のものである場合
に発生し得る。
【0277】これまでの考察から、また、図8(a)〜
図8(c)、図9(a)〜図9(i)に示唆されている
ように、アドレス・ユニット(AU)1700は、デー
タ・メモリ1900、外部メモリ2500、周辺装置イ
ンタフェース2220およびDMAC3000へのアク
セスに関係する、単一データ転送操作(命令タイプ11
38、1139、1142〜1145、1155、11
56、1160および1165)および並列データ転送
操作(命令タイプ1134〜1137、1140、11
41および1147)を実現し得るように設計されてい
ることは明かである。さらに、8個のアドレス・レジス
タ1802〜1809(xa0〜ya3)の各々は、X
データ・バス1108に対するオペランド・アドレス・
ソースとなることもできるし、Yアドレス・バス111
0のオペランド・アドレス・ソースになることもでき
る。しかし、図8(a)〜図8(c)、図9(a)〜図
9(i)に示されているように、オペランド・アドレス
・ソースとして選択されることができるアドレス・レジ
スタ1802〜1809(xa0〜ya3)の数とタイ
プは命令タイプにより制限されている。
【0278】XAUOP、YAUOP、XAUIS、Y
AUISの信号に応じて、ローカルAU制御器1850
は、データ・アドレス更新制御信号を生成し、その信号
はXアドレス・ユニット(XAU)1812とYアドレ
ス・ユニット(YAU)1814に提供される。
【0279】信号XAUSRCがアドレス・レジスタ1
802〜1809(xa0〜ya3)のうちの1つを指
定する時は、信号XAUOPは、アドレス・レジスタ1
802〜1809(xa0〜ya3)のうちの信号XA
USRCで指定されたレジスタによりXAUSRCバス
1836上に出力されたアドレスが、(a)更新される
べきでない、(b)インクリメントされて同じレジスタ
に格納されるべきである、(c)デクリメントされて同
じレジスタに格納されるべきである、あるいは、(d)
インデックス値(つまり、偏位値)と加算され、同じレ
ジスタに格納されるべきである、のいずれかを示す。信
号XAUOPに応じて、ローカルAU制御器は制御信号
を生成し、それによりXアドレス・ユニット(XAU)
1812を制御して、バス1836上に出力されたアド
レスを上記の方法で更新するかまたは更新しないように
させる。信号XAUOPが、XAUSRCバス1836
上のアドレスが偏位値(つまり、インデックス値)に加
算されるべきことを示す場合、信号XAUISがこの偏
位値のソースを特定する。信号XAUISがインデック
ス・レジスタ1818および1820(i0およびi
1)のうちの1つを特定すと、AU制御器1850は制
御信号を生成し、その制御信号によりセレクタ1822
と1826を制御して、指定されたインデックス・レジ
スタに格納されている偏位値をXアドレス・ユニット
(XAU)1812のソースIに出力させる。他方、信
号XAUISが、イミディエート値が偏位値であること
を示す時には、AU制御器1850は制御信号を生成
し、それによりセレクタ1826を制御して、イミディ
エート値データ線1698上の偏位値をXアドレス・ユ
ニット(XAU)1812のソースIに出力させる。
【0280】信号XAUSRCが第一スタック・ポイン
タ・レジスタ1816(sp)を指定した場合(つま
り、プッシュ操作が実行されるべき場合)、信号XAU
OPは次のことを指定することになる;すなわち、
(a)スタック・ポインタ・レジスタ1816(sp)
によりXAUSRCバス1836に出力したアドレスが
事後デクリメントされ、ついで同じレジスタに格納され
るべきである;(b)同じデクリメントされたアドレス
が第二スタック・ポインタ・レジスタ1817(sp)
に提供され、その内部カウンタ回路により1だけインク
リメントされ、ついでその第二スタック・ポインタ・レ
ジスタ1817に格納されるべきである。言い換える
と、スタック・ポインタ・レジスタ1816(sp)の
アドレス内容が次のプッシュ操作のためのアドレスとな
り、一方スタック・ポインタ・レジスタ1817(sp
+1)のアドレス内容は現にプッシュされたデータが位
置する場所のアドレスとなるということである。
【0281】さらに、信号XAUSRCが第二スタック
・ポインタ・レジスタ1816(sp)を指定する場合
(つまり、ポップ操作が実行されるべき場合)、信号X
AUOPは、次のことを指定することになる;すなわ
ち、(a)スタック・ポインタ・レジスタ1817(s
p+1)によりXAUSRCバス1836に出力された
アドレスがスタック・ポインタ・レジスタ1816(s
p)に提供され格納されるべきである;(b)同じアド
レスが第二スタック・ポインタ・レジスタ1817(s
p+1)に提供され、その内部カウンタ回路により1だ
けインクリメントされ、ついでその第二スタック・ポイ
ンタ・レジスタレジスタ1817に格納されるべきであ
る。言い換えると、スタック・ポインタ・レジスタ18
16(sp)のアドレス内容が効果的に事後インクリメ
ントされ、次のプッシュ操作のアドレスとなり、一方、
スタックレジスタ1817(sp+1)のアドレス内容
は次のポップ操作のアドレスとなる。
【0282】信号YAUOPは、アドレス・レジスタ1
802〜1809(xa0〜ya3)のうち信号YAU
SRCにより指定されたレジスタによりYAUSRCバ
ス1836に出力されたアドレスが、(a)更新される
べきではない、(b)インクリメントされて同じレジス
タに格納されるべきである、(c)デクリメントされて
同じレジスタに格納されるべきである、または、(d)
偏位値と加算されて、同じレジスタに格納されるべきで
ある、ことを示す。信号YAUOPに応じて、ローカル
AU制御器は、Yアドレス・ユニット(YAU)181
4を制御する制御信号を生成し、バス1836上に出力
されたアドレスを上記の仕方で更新するかまたは更新し
ないようにさせる。信号YAUOPが、YAUSRCバ
ス1836上のアドレスがインデックス値に加算される
べきことを示す場合、信号YAUISはインデックス値
のソースを特定する。信号YAUISは、インデックス
・レジスタ1818および1820(i0およびi1)
のうちの1つのレジスタだけをインデックス・ソースと
して特定できる。信号YAUISに応じて、AU制御器
1850は、セレクタ1822を制御するための制御信
号を生成し、指定されたインデックス・レジスタに格納
されているインデックス値をYアドレス・ユニット(Y
AU)1814のソースIに出力させる。
【0283】ローカルAU制御器1850はまた、信号
XRSEL、YRSEL、XDBUSOP、YDBUS
OPに応じてデータ転送制御信号を生成し、セレクタ1
830および1832に提供する。
【0284】信号XDBUSOPは、データがレジスタ
からデータ・メモリ1900、外部メモリ2500、周
辺装置インタフェース2200あるいはDMAC300
0に記憶またはプッシュされるべきことを示す場合があ
る。これが当てはまり、かつ、信号XRSELが、これ
を実行するために、アドレス・レジスタ1802〜18
09(xa0〜ya3)のうちの1つのレジスタ、イン
デックス・レジスタ1818と1820(i0とi1)
のうちの1つのレジスタ、または、スタック・ポインタ
・レジスタ1816(sp)と1817(sp+1)の
うちの1つのレジスタを指定する場合、ローカルAU制
御器1850は、セレクタ1830または1822に提
供される制御信号を生成し、そのセレクタを制御して、
レジスタのうちの信号XRSELにより指定されたレジ
スタに格納されているデータをXデータ・バス1102
に出力させる。図8(a)〜図8(c)を参照すると、
これは復号された命令が、命令タイプ1155、115
6、1160、1165である場合に発生し得る。
【0285】他方、信号XDBUSOPは、データがデ
ータ・メモリ1900、外部メモリ2500、周辺装置
インタフェース2200あるいはDMAC3000から
レジスタへロードまたはポップされるべきこと、また
は、イミディエート値がレジスタにロードされるべきこ
とを示す場合がある。これが当てはまり、かつ、信号X
RSELが、このことを実行するために、アドレス・レ
ジスタ1802〜1809(xa0〜ya3)のうちの
1つのレジスタ、インデックス・レジスタ1818また
は1820(i0またはi1)、あるいは、スタック・
ポインタ・レジスタ1816(sp)または、1817
(sp+1)を指定する場合には、ローカルAU制御器
1850は、セレクタ1838または1824に提供さ
れる制御信号を生成し、そのセレクタを制御して、レジ
スタのうちの信号XRSELにより指定されたレジスタ
に対してXデータ・バス1102からのデータを受信さ
せる。これは、復号された命令が、命令タイプ115
0、1155、1156、1160、1165のもので
ある場合に発生し得る。
【0286】信号XDBUSOPが、データが1つのレ
ジスタから他のレジスタに移動されるべきことを示して
おり、かつ、信号XRSELがアドレス・レジスタ18
02〜1809(xa0〜ya3)のうちの1つのレジ
スタ、または、インデックス・レジスタ1818または
1820(i0またはi1)を指定する場合、ローカル
AU制御器1850は、セレクタ1830または182
2に提供される制御信号を生成し、そのセレクタを制御
して、レジスタのうちの信号XRSELにより指定され
たレジスタからのデータをXデータ・バス1102に出
力させる。さらに、その場合、信号YRSELがアドレ
ス・レジスタ1802〜1809(xa0〜ya3)の
うちの1つ、インデックス・レジスタ1818または1
820(i0またはi1)、または、スタック・ポイン
タ・レジスタ1816(sp)または1817(sp+
1)を指定する場合には、ローカルAU制御器1850
は、セレクタ1838または1824に提供される制御
信号を生成し、そのセレクタを制御して、レジスタのう
ちの信号YRSELにより指定されたレジスタに対し
て、Xデータ・バス1102からのデータを受信させ
る。これは、復号された命令が、レジスタからレジスタ
への(つまり、移動)データ転送操作を定義する命令タ
イプ1148のものである場合に発生し得る。
【0287】ローカルAU制御器1850はまた、クロ
ック信号CK0とCK1を受信する。これらのクロック
信号は、すでに説明された制御信号の生成時におけるタ
イミングを正しくするために、ローカルAU制御器18
50により使用され、それにより、図3に示された標準
パイプラインを実現することができる。
【0288】ローカルAU制御器1850にはさらに、
共通復号装置1600の条件チェック・ブロック161
6から信号CANCLが受信される。これに応じて、ロ
ーカルAU制御器1850は制御信号を生成し、それに
よりアドレス・レジスタ1802〜1809およびイン
デックス・レジスタ1720と1722を制御して、セ
レクタ1838または1824を介してXデータ・バス
1102、Yデータ・バス1104、内部XAUDST
バス1824または内部YAUDSTバス1840から
のいかなるデータをも格納しないようにさせる。
【0289】さらに、ローカルAU制御器1850に
は、並列アービタ2100からの信号STALLが受信
され得る。この信号が実際に受信されると、制御器18
50は制御信号を生成してアドレス・レジスタ1802
〜1809を制御し、セレクタ1838を介して、Xデ
ータ・バス1102、Yデータ・バス1104、内部X
AUDSTバス1842または内部YAUDSTバス1
844からのいかなるデータをも格納しないようにさせ
る。図7に示されているように、これは、アクセス競合
が並列アービタ2100により解決されるまで、M3A
とM3Bの少なくとも1つのマシン・サイクルに対して
発生し得る。
【0290】並列アービタ 図15を参照すると、データ・メモリ1900、外部メ
モリ2500と、周辺装置インタフェース2200は、
すべて、データを記憶することができる。従って、Xデ
ータ・バス1108とYデータ・バス1110上のアド
レスは、これらの1つにマップされることになる。さら
に、データ・メモリは、メモリの4ページ(P0〜P
3)(つまり、4個の別個のメモリ・バンク)1902
〜1905を含んでいる。ページ(P0〜P3)190
2〜1905の各々に対して、それに対応するページ・
インタフェース2002〜2005がデータ・メモリ・
インタフェース2400に存在する。
【0291】さらに、データ・メモリ1900のページ
(P0〜P3)1902〜1905と周辺装置インタフ
ェース2200は、外部メモリ2500および命令メモ
リ1400と同様に、すべて単一ポート・デバイスある
いはメモリである。しかし、インタフェース2002〜
2005および周辺装置インタフェース2200は、X
アドレス・バス1108、Yアドレス・バス1110お
よびDMACアドレス・バス1112からアドレスが受
信される。従って、実行段階時に、データ・メモリ19
00のページ(P0〜P3)1902〜1905および
/又は周辺装置インタフェース2200へのアクセスに
競合が発生する可能性がある。外部メモリ2500への
アクセスにも競合が発生する可能性があるが、このこと
については、すでに説明した。
【0292】実行段階における、データ・メモリ190
0、外部メモリ2500および周辺装置インタフェース
2200に対するアクセスの調停は、図3、図4、図
6、図7の場合については、マシン・サイクルM2の時
点t3で開始され、図5の場合については、M1Aの時
点t3で開始される。アクセスの競合が発生しない時
は、調停は、図3〜図6に例示されているように、同じ
マシン・サイクルの時点t4で終了する。しかし、アク
セスの競合が発生する場合は、図7に示されているよう
に、調停はマシン・サイクルM3Aの時点t4で終了す
るであろう。
【0293】図15を参照すると、並列アービタは、外
部メモリ・アービタ2104、データ・メモリ・ページ
・アービタ2102と、周辺装置インタフェース・アー
ビタ2106とで構成されている。外部メモリ・アービ
タ2104については、命令フェッチ段階での外部メモ
リ2500へのアクセス制御とアクセス時の競合の解決
という点から既に説明した。しかし、そこでの考察は実
行段階についても同じように当てはまる。
【0294】さらに、データ・メモリ・ページ・アービ
タ2102は、ページ(P0〜P3)1902〜190
5へのインタフェース2002〜2005を通じてのア
クセスを制御し、アクセス時の競合を解決する。周辺装
置インタフェース・アービタ2106は、周辺装置イン
タフェース2200へのアクセスを制御し、アクセス時
の競合を解決する。両アービタには、(a)Xデータ・
バス1108、Yデータ・バス1110およびDMAC
アドレス・バス1112からのアドレスA17−0、お
よび、(b)共通復号装置1600からの信号XABU
SE、YABUSE(これらについては、すでに説明し
た)と、DMAC3000からの信号DABUSE(こ
れついても、すでに説明した)、が受信される。
【0295】命令メモリ・アービタ2108および外部
メモリ・アービタ2104と同様、ページ・アービタ2
102は、Xアドレス・バス1108、Yアドレス・バ
ス1110およびDMACアドレス・バス1112上の
アドレスを復号し、これらのアドレスの1つ以上がデー
タ・メモリ1900の特定ページ(P0〜P3)190
2〜1905に位置されるかどうかを決定する。同様
に、周辺装置インタフェース・アービタ2106は、X
アドレス・バス1108、Yアドレス・バス1110お
よびDMACアドレス・バス1112上のアドレスを復
号し、これらのアドレスの1つ以上が周辺装置インタフ
ェース2200にマップされるかどうかを決定する。
【0296】図14、図15を参照すると、信号XAB
USE、YABUSEおよびDABUSEのうちの1つ
以上の信号が受信されており、また、Xアドレス・バス
1108、Yアドレス・バス1110およびDMACア
ドレス・バス1112上のアドレスのうちの1つ以上の
アドレスがページ(P0〜P3)1902〜1905の
うちの1つに位置される場合には、ページ・アービタ2
102は次のような信号を生成する;すなわち、(a)
特定ページのための1ビットXアドレス/命令バス選択
信号(PG0SELX、PG1SELX、PG2SEL
XまたはPG3SELX)、(b)特定ページのための
1ビットYアドレス/命令バス選択信号(PG0SEL
Y、PG1SELY、PG2SELYまたはPG3SE
LY)、および/又は、(c)特定ページのための1ビ
ットDMACアドレス/命令バス選択信号(PG0SE
LD、PG1SELD、PG2SELDまたはPG3S
ELD)。
【0297】他方、信号XABUSE、YABUSEお
よびDABUSEのうちの1つ以上の信号が受信され、
Xアドレス・バス1108、Yアドレス・バス1110
およびDMACアドレス・バス1112上のアドレスの
うち1つ以上のアドレスが周辺装置インタフェース22
00にマップされている場合には、周辺装置インタフェ
ース・アービタ2106は次の信号を生成する;すなわ
ち、(a)1ビットXアドレス/命令バス選択信号(P
RSELX)と、(b)1ビットYアドレス/命令バス
選択信号(PRSELY)、および/又は、(c)1ビ
ットDMACアドレス/命令バス選択信号(PRSEL
D)。
【0298】信号PG0SELX、PG0SELY、P
G0SELD、PG1SELX、PG1SELY、PG
1SELD、PG2SELX、PG2SELY、PG2
SELD、PG3SELX、PG3SELY、PG3S
ELDは、ぞれぞれ対応するインタフェース2002〜
2005を制御して、データ・メモリ1900の対応す
るページ(P0からP3)1902〜1905にアクセ
スするために、Xアドレス・バス1108とXデータ・
バス1102、Yアドレス・バス1110とYデータ・
バス1104と、DMACアドレス・バス1112とD
MACデータ・バス1106を選択するための信号であ
る。同様に、信号PRSELX、PRSELYおよびP
RSELDは、周辺装置インタフェース2200を制御
して、Xアドレス・バス1108とXデータ・バス11
02、Yアドレス・バス1110とYデータ・バス11
04、DMACアドレス・バス1112とDMACデー
タ・バス1106を選択するための信号である。
【0299】しかし、図15を参照すると、既に言及さ
れたように、データ・メモリ1900のページ(P0〜
P3)1902〜1905と周辺装置インタフェースと
は、単一ポートのメモリまたはデバイスである。従っ
て、特定のマシン・サイクルの1つの時点においては、
信号PG0SELX、PG0SELYおよびPG0SE
LDのうち1つの信号だけ、信号PG1SELX、PG
1SELYおよびPG1SELDのうち1つの信号だ
け、信号PG2SELX、PG2SELYおよびPG2
SELDのうち1つの信号だけ、そして、信号PG3S
ELX、PG3SELYおよびPG3SELDのうち1
つの信号だけが、ページ・アービタ2102により、そ
れぞれのインタフェース2002〜2005に出力する
ことができる。さらに、信号PRSELX、PRSEL
YおよびPRSELDのうち1つの信号だけが、特定の
マシン・サイクルの1つ時点において、周辺装置インタ
フェース・アービタ2106により、周辺装置インタフ
ェース2200に出力することができる。
【0300】従って、特定のマシン・サイクルの1つの
時点において、信号PG0SELX、PG0SELYお
よびPG0SELDのうち1つの信号だけ、信号PG1
SELX、PG1SELYおよびPG1SELDのうち
1つの信号だけ、信号PG2SELX、PG2SELY
およびPG2SELDのうち1つの信号だけ、そして、
信号PG3SELX、PG3SELYおよびPG3SE
LDのうち1つの信号だけが生成されるならば、生成さ
れた信号はページ・アービタ2102により直接出力さ
れる。同様に、信号PRSELX、PRSELYおよび
PRSELDのうち1つの信号だけが特定のマシン・サ
イクル内の1つの時点で生成されるならば、この信号は
周辺装置インタフェース・アービタ2106により直接
出力される。その場合、3段階命令(フェッチ、復号、
実行)パイプラインは図3に示されているように進行す
る。
【0301】しかし、信号PG0SELX、PG0SE
LYおよびPG0SELDのうち1つ以上の信号、信号
PG1SELX、PG1SELYおよびPG1SELD
のうち1つ以上の信号、信号PG2SELX、PG2S
ELYおよびPG2SELDのうち1つ以上の信号、あ
るいは、信号PG3SELY、PG3SELYおよびP
G3SELDのうち1つ以上の信号が同時に生成される
場合には(つまり、ページ(P0〜P3)1902〜1
905へのアクセスの競合が発生する場合には)、ペー
ジ・アービタ2102は下記の優先順位基準に基づい
て、これらの信号を異なったマシン・サイクル時に出力
する; (1)これまでの調停から保持されているDABUSE
信号に第一優先権が与えられる、(2)XABUSE信
号に第二優先権が与えられる、(3)YABUSE信号
に第三優先権が与えられる、(4)これまでの調停から
保持されてきたのではないDABUSE信号に最後の優
先順位が与えられる。
【0302】同時に、ページ・アービタ2102は、ア
クセス競合の発生時にDSPコア3500の動作を休止
させるためのストール信号(PGSTALL)または、
アクセス競合の発生時にDMAC3000の動作を休止
させるためのDMACストール信号(PGDSTAL
L)を上記優先順位基準に基づいて送り出す。
【0303】さらに、信号PRSELX、PRSEL
Y、PRSELDのうちの2つ以上の信号が同時に生成
される場合(つまり、周辺装置インタフェース2200
へのアクセスの競合の場合)、周辺装置アービタ210
6は、上記の優先順位基準に基づいてこれらの信号を異
なったマシン・サイクル時に出力する。これと同時に、
やはり上記優先順位基準に基づいて、周辺装置インタフ
ェース・アービタ2106は、アクセス競合の発生時に
DSPコア3500の動作を休止するためのストール信
号(PRSTALL)またはアクセス競合の発生時にD
MAC3000の動作を休止させるためのDMACスト
ール信号(PRDSTALL)を出力する。
【0304】信号PGSTALLまたはPRSTALL
が出されると、それはORゲート2110により集めら
れ、STALL信号としてDSPコア3500に出力さ
れる。その結果、DSPコア3500の動作は、図4に
示されているように、休止される。しかし、信号PGD
STALLまたはPRDSTALLが出力される場合、
それはORゲート2112により集められ、DSTAL
L信号としてDMAC3000に出力される。その場
合、DMAC3000の操作は休止されるがDSPコア
3500の3段階パイプラインは図3に示されているよ
うに進行する。
【0305】すでに説明したように、STALL信号
は、プログラム制御装置(PCU)制御器1550、ロ
ーカル実行装置(EXU)制御器1850、ローカル・
アドレス・ユニット(AU)制御器、命令フェッチ制御
器1608、複数サイクルステート・マシーン161
4、コンディション・コード・レジスタ(CCR)制御
器1685および条件チェック・ブロック1616によ
り受信される。すでに示したように、これに応じて、D
SP1100のこれらの構成要素は、図7に示されてい
るように、実行段階を遅延させ、それにより、データ・
メモリ1900のページ(p0〜p3)1902〜19
05、外部メモリ2500または周辺装置インタフェー
ス2200へのアクセスの競合を適正に解決することが
できる。
【0306】コンディション・コードを更新しない条件
付きデータ操作の利点 図8(a)〜図8(c)を参照すると、DSP1100
の命令セットの条件付きデータ処理命令タイプ1149
〜1151、1157、1159および1161は応用
プログラムの実行に関し多くの利点を提供する。
【0307】前出の表1を参照すると、命令タイプ11
49〜1151、1157、1159および1161の
1つが実行される時に生成されるフラグは、コンディシ
ョン・コードが第二の無条件(0001)あるいは14
の条件(0010〜1111)の1つを指定している時
には、更新されない。これにより、次の命令を、もっと
以前に実行された無条件命令の実行段階で生成されたフ
ラグ(即ち、条件)に基づいて条件付きに実行すること
が可能になる、という利点がある。その結果、DSP1
100のプログラマが特定の条件を条件付きブランチ
(分岐)あるいは条件付きデータ操作に利用したいと思
う場合、そのような条件付き命令をそのコンディション
・コード・フラグを生成するデータ操作命令の直後に入
れなければならないという制約はない。これはプログラ
ムあるいはルーチンを実現するために必要な命令の数を
減らす効果があり、それによりそのプログラムあるいは
ルーチンを実現するために必要なマシン・サイクルの数
を減らすことになる。
【0308】表2および表3は今の説明の例を示したも
のである。表3には、コンディション・コードの更新を
伴わない条件付きデータ処理操作を利用したプログラム
が示されている。便宜上、プログラムは高級レベル言語
で記述されている。
【0309】
【表2】
【0310】図8(a)〜図8(c)を参照すると、プ
ログラムの二番目から四番目までの命令は命令タイプ1
149〜1151、1157、1159および1161
のものとすることができる。二番目から四番目の命令が
実行されるときコンディション・コード・レジスタ16
74(ccr)は更新されないので、ブランチ命令はこ
れ以上必要ではなく、ALU操作は望ましい条件のもと
で実行できる。
【0311】表3は、表2に示されたプログラムと同じ
機能を実現するプログラムを示したものである。しか
し、この場合、無条件データ処理操作だけが用いられて
いるので、コンディション・コード・レジスタ1674
(ccr)は更新される。
【0312】
【表3】
【0313】表2と表3から明らかなように、表2のプ
ログラムは表3のプログラムより用いる命令が2つ少な
い。更に、表3のプログラムは表2のプログラムに比べ
て、ループあたりのブランチが1つ多く必要である。こ
のように、表2のプログラムに用いられる条件付きデー
タ処理命令タイプ1149〜1151、1157、11
59および1161は、前記両方のプログラムにより定
義される機能を実現するのに必要なマシン・サイクルの
数を節約することができる。
【0314】以上本発明者によってなされた発明を実施
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変更可能であることは言うまでもない。
【0315】
【発明の効果】本発明のディジタル信号処理プロセッサ
(DSP)およびそれに関する、コンディション・コー
ドを更新しない条件付きデータ操作方法によれば、DS
Pでプログラムを実行するために必要な命令の数を減少
させることができる。
【0316】更に、本発明によれば、DSPで実行され
るプログラムを開発する上でより大きなフレキシビリテ
ィと創造性を可能にすることができる。
【図面の簡単な説明】
【図1】本発明によるディジタル信号処理プロセッサ
(DSP)のブロック図である。
【図2】本発明のDSPのタイミング装置とクロック・
パルス発生器のブロック図である。
【図3】正常な条件下における本発明のDSPの単一語
命令と、単一サイクル命令に対する3段階命令、つまり
フェッチ、信号および実行段階のタイミング図である。
【図4】命令メモリへのアクセス時に競合があった場合
における本発明のDSPの単一語命令に対する命令フェ
ッチ、命令復号、実行の3段階パイプラインのタイミン
グ図である。
【図5】正常な条件下における本発明のDSPの倍長語
命令に対する命令フェッチ、命令復号、実行の3段階パ
イプラインのタイミング図である。
【図6】本発明のDSPの複数サイクル命令に対する命
令フェッチ、命令復号、実行の3段階パイプラインのタ
イミング図である。
【図7】データ・メモリへのアクセス時に競合があった
場合における本発明のDSPの単一語命令に対する命令
フェッチ、命令復号、実行の3段階パイプラインのタイ
ミング図である。
【図8(a)】本発明のDSPの命令セットに対する命
令クラスと命令タイプを列挙したものである。
【図8(b)】本発明のDSPの命令セットに対する命
令クラスと命令タイプを列挙したものである。
【図8(c)】本発明のDSPの命令セットに対する命
令クラスと命令タイプを列挙したものである。
【図9(a)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図9(b)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図9(c)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図9(d)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図9(e)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図9(f)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図9(g)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図9(h)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図9(i)】本発明のDSPの命令セットの特定命令
を列挙したものである。
【図10】本発明のDSPの実行装置のブロック図であ
る。
【図11】本発明のDSPのアドレス・ユニットのブロ
ック図である。
【図12】本発明のDSPのプログラム制御装置のブロ
ック図である。
【図13(a)】本発明のDSPの共通復号装置のブロ
ック図である。
【図13(b)】本発明のDSPの共通復号装置のブロ
ック図である。
【図14】本発明のDSPの並列アービタのブロック図
である。
【図15】メモリへのアクセスを制御するためのDSP
のインタフェースのブロック図である。
【図16】共通復号装置の命令フェッチ・ブロックのブ
ロック図である。
【図17】共通復号装置の命令復号ブロックのブロック
図である。
【図18】命令復号ブロックの実行装置操作復号器のブ
ロック図である。
【図19】実行装置操作復号器のALU/BPU操作復
号器のブロック図である。
【図20】実行装置操作復号器のALUソース/ディス
ティネーション復号器のブロック図である。
【図21】実行装置操作復号器の乗算器(MU)操作復
号器のブロック図である。
【図22】実行装置操作復号器のMU/BPUソース/
ディスティネーション復号器のブロック図である。
【図23】命令復号ブロックのアドレス・ユニット(A
U)操作復号器のブロック図である。
【図24】アドレス・ユニット操作復号器のXとYアド
レス・ユニット(XAU/YAU)操作復号器のブロッ
ク図である。
【図25】アドレス・ユニット操作復号器のXとYアド
レス・ソース復号器のブロック図である。
【図26】命令復号ブロックのプログラム制御装置(P
CU)操作復号器のブロック図である。
【図27】命令復号ブロックのデータ・バス操作復号器
のブロック図である。
【図28】命令復号ブロックのレジスタ選択復号器のブ
ロック図である。
【図29】共通復号装置の命令復号ブロックとレジスタ
・ブロックのコンディション・コード復号器のブロック
図である。
【図30】命令復号ブロックの複数サイクル命令復号器
のブロック図である。
【図31】命令復号ブロックのイミディエート値復号器
のブロック図である。
【図32】共通復号装置の条件チェック・ブロックのブ
ロック図である。
【符号の説明】
1000 データ処理システム 1100 ディジタル信号処理プロセッサ 1130 DSPクラス命令 1132 RISCクラス命令 1400 命令メモリ(プログラム・メモリ) 1500 プログラム制御装置 1600 フィールド抽出器/復号器 1612 命令復号ブロック 1618 アドレス・ユニット復号器 1702〜1709 データ・レジスタ CC コンディション・コード・フィールド ccr コンディション・コード・レジスタ OP 操作コード・フィールド TY タイプ・コード・フィールド

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 ディジタル信号処理プロセッサであっ
    て、 データ処理操作を実行する実行装置;コンディション・
    コード・フラグを格納するためのコンディション・コー
    ド・レジスタ;命令語の列を記憶するプログラム・メモ
    リで、該命令語の列は、前記実行装置により実行される
    べきデータ処理操作を指定する少なくとも1つのフィー
    ルドを有する命令語を含み、該命令語は、また、所定の
    条件を指定し、また、該実行装置により該データ処理操
    作が実行される時に前記コンディション・コード・レジ
    スタが更新されるべきかどうかを指定するコンディショ
    ン・コード・フィールドを含んでいる、プログラム・メ
    モリ;前記プログラム・メモリにおいて1つの命令語を
    選択するために命令アドレスを該プログラム・メモリに
    出力するプログラム制御装置;そして、 前記選択された命令語を復号するための命令復号器であ
    って、前記少なくとも1つのフィールドを復号し前記実
    行装置を制御して特定のデータ処理操作を実行させる復
    号器回路を含んでいる、命令復号器;を有し、 前記実行装置には、該実行装置が前記制御信号に応じて
    現行のデータ処理操作を実行することにより所定の条件
    が発生した時に、それに対応する現行コンディション・
    コード・フラグを生成する手段が含まれており、更に、 前記命令復号器が、更に、前記コンディション・コード
    ・フィールドを復号し該コンディション・コード・フィ
    ールドの値にしたがって前記コンディション・コード・
    レジスタによる前記現行のコンディション・コード・フ
    ラグの格納をイネーブルあるいはディスエーブルにする
    制御信号を生成するためのコンディション・コード復号
    器回路を含んでいる、ディジタル信号処理プロセッサ。
  2. 【請求項2】 前記コンディション・コード復号器回路
    は一組の復号されたコンディション・コード信号を生成
    し、 前記命令復号器が、更に:前記コンディション・コード
    ・レジスタに以前から格納されているコンディション・
    コード・フラグを復号し、コンディション状態信号を生
    成するための復号器回路;復号された該コンディション
    ・コード信号と該コンディション状態信号とを比較し、
    それに応じて、該格納されているコンディション・コー
    ド・フラグと該復号されたコンディション・コード信号
    が一致するとき操作続行信号を生成し、該格納されてい
    るコンディション・コード・フラグと該復号されたコン
    ディション・コード信号が一致しないとき操作キャンセ
    ル信号生成する、比較器;を有し、 前記実行装置が該操作続行信号あるいは操作キャンセル
    信号を受信し、該キャンセル信号の受信に応じて前記選
    択された命令語の実行をキャンセルする、ことを特徴と
    する請求項1記載のディジタル信号処理プロセッサ。
  3. 【請求項3】 ディジタル信号処理プロセッサを用いて
    命令を実行する方法であって、次の段階、すなわち:命
    令語の列をプログラム・メモリに格納する段階、ここ
    で、該命令語の列は、実行装置により実行されるべきデ
    ータ処理操作を指定する少なくとも1つのフィールドを
    有する命令語を含み、該命令語は、また、所定の条件を
    指定し該実行装置により該データ処理操作が実行される
    ときにコンディション・コード・レジスタが更新される
    べきか否かを指定するコンディション・コード・フィー
    ルドを有している;前記プログラム・メモリにおいて前
    記命令語を選択するために命令アドレスを前記プログラ
    ム・メモリに出力する段階;前記実行装置を制御して前
    記特定のデータ処理操作を実行させる制御信号を生成す
    るために、前記少なくとも1つのフィールドを復号する
    段階;前記制御信号に応じて現行の前記データ処理操作
    を実行し、該現行のデータ処理操作において所定の条件
    が発生したときにそれに応じたコンディション・コード
    ・フラグを生成する段階;そして、 前記コンディション・コード・フィールドを復号し、該
    コンディション・コード・フィールドの値にしたがって
    コンディション・コード・レジスタによる現行の前記コ
    ンディション・コード・フラグの格納をイネーブルある
    いはディスエーブルにするための制御信号を生成する段
    階;を含む、ディジタル信号処理プロセッサを用いて命
    令を実行する方法。
  4. 【請求項4】 更に、次の段階、すなわち:前記コンデ
    ィション・コード・フィールドを復号し、一組の復号さ
    れたコンディション・コード信号を生成する段階;前記
    コンディション・コード・レジスタに以前から格納され
    ているコンディション・コード・フラグを復号しコンデ
    ィション状態信号を生成する段階;前記復号されたコン
    ディション・コード信号と前記コンディション状態信号
    とを比較し、それに応じて、該格納されていたコンディ
    ション・コード・フラグと該復号されたコンディション
    ・コード信号が一致するときには操作続行信号を生成
    し、該格納されていたコンディション・コード・フラグ
    と該復号されたコンディション・コード信号が一致しな
    いときには操作キャンセル信号を生成する段階;そし
    て、 前記操作キャンセル信号の受信に応じて前記選択された
    命令の実行をキャンセルする段階;を含むことを特徴と
    する請求項3記載の方法。
JP22537794A 1993-09-27 1994-09-20 ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法 Expired - Fee Related JP3452655B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12769193A 1993-09-27 1993-09-27
US08/127,691 1993-09-27

Publications (2)

Publication Number Publication Date
JPH07168715A true JPH07168715A (ja) 1995-07-04
JP3452655B2 JP3452655B2 (ja) 2003-09-29

Family

ID=22431433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22537794A Expired - Fee Related JP3452655B2 (ja) 1993-09-27 1994-09-20 ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法

Country Status (3)

Country Link
US (1) US5832258A (ja)
JP (1) JP3452655B2 (ja)
KR (1) KR100320559B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014500546A (ja) * 2010-11-23 2014-01-09 アーム・リミテッド データ処理装置および方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US6820093B2 (en) * 1996-07-30 2004-11-16 Hyperphrase Technologies, Llc Method for verifying record code prior to an action based on the code
US7013298B1 (en) 1996-07-30 2006-03-14 Hyperphrase Technologies, Llc Method and system for automated data storage and retrieval
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US6904515B1 (en) * 1999-11-09 2005-06-07 Ati International Srl Multi-instruction set flag preservation apparatus and method
FR2802321A1 (fr) * 1999-12-09 2001-06-15 Ass Pour La Promotion De La Mi Processeur configurable par l'utilisateur
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US6715038B1 (en) * 2001-11-05 2004-03-30 Lsi Logic Corporation Efficient memory management mechanism for digital signal processor and method of operation thereof
EP1383039B1 (en) * 2002-07-19 2011-05-11 STMicroelectronics Srl A process and device for managing system stacks during the interrupt stage
ITRM20030354A1 (it) 2003-07-17 2005-01-18 Micron Technology Inc Unita' di controllo per dispositivo di memoria.
US7908463B2 (en) * 2007-06-26 2011-03-15 Globalfoundries Inc. Immediate and displacement extraction and decode mechanism
US7921278B2 (en) * 2008-03-10 2011-04-05 International Business Machines Corporation Early exit processing of iterative refinement algorithm using register dependency disable
US7913066B2 (en) * 2008-03-10 2011-03-22 International Business Machines Corporation Early exit processing of iterative refinement algorithm using register dependency disable and programmable early exit condition
US20100306384A1 (en) * 2009-06-01 2010-12-02 Keith Hayes Multi-directional secure common data transport system
GB2480285A (en) 2010-05-11 2011-11-16 Advanced Risc Mach Ltd Conditional compare instruction which sets a condition code when it is not executed
RU2010145507A (ru) * 2010-11-10 2012-05-20 ЭлЭсАй Корпорейшн (US) Устройство и способ управления микрокомандами без задержки

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4181942A (en) * 1978-03-31 1980-01-01 International Business Machines Corporation Program branching method and apparatus
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4503500A (en) * 1982-02-11 1985-03-05 Texas Instruments Incorporated Microcomputer with bus interchange module
US4498135A (en) * 1982-02-22 1985-02-05 Texas Instruments Incorporated Microcomputer with accumulator addressing
JPS6015745A (ja) * 1983-07-06 1985-01-26 Nec Corp 情報処理装置
US4566063A (en) * 1983-10-17 1986-01-21 Motorola, Inc. Data processor which can repeat the execution of instruction loops with minimal instruction fetches
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
JPS63245525A (ja) * 1987-03-31 1988-10-12 Toshiba Corp マイクロプログラム処理装置
DE3782819D1 (de) * 1987-06-02 1993-01-07 Itt Ind Gmbh Deutsche Steuerprozessor.
DE3856175T2 (de) * 1987-06-05 1998-12-17 Mitsubishi Denki K.K., Tokio/Tokyo Digitales Signalverarbeitungssystem in dem ein Prozessor unter Kontrolle eines Hosts auf zwei Befehlsspeicher zugreift
US4891754A (en) * 1987-07-02 1990-01-02 General Datacomm Inc. Microinstruction sequencer for instructing arithmetic, logical and data move operations in a conditional manner
US4881194A (en) * 1987-11-16 1989-11-14 Intel Corporation Stored-program controller for equalizing conditional branch delays
US4823390A (en) * 1988-02-10 1989-04-18 Sencore, Inc. FM stereo generator
US4974155A (en) * 1988-08-15 1990-11-27 Evans & Sutherland Computer Corp. Variable delay branch system
EP0365188B1 (en) * 1988-10-18 1996-09-18 Hewlett-Packard Company Central processor condition code method and apparatus
JPH02306341A (ja) * 1989-02-03 1990-12-19 Nec Corp マイクロプロセッサ
US5109495A (en) * 1989-02-03 1992-04-28 Digital Equipment Corp. Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor
JP2507638B2 (ja) * 1989-12-01 1996-06-12 三菱電機株式会社 デ―タ処理装置
US5257354A (en) * 1991-01-16 1993-10-26 International Business Machines Corporation System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results
US5345567A (en) * 1991-06-10 1994-09-06 International Business Machines Corporation System and method for modifying program status word system mask, system access key, and address space code with overlap enabled

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014500546A (ja) * 2010-11-23 2014-01-09 アーム・リミテッド データ処理装置および方法
US9207937B2 (en) 2010-11-23 2015-12-08 Arm Limited Apparatus and method for processing a bitfield manipulation instruction having a control value indicating insertion or extraction form
US9619225B2 (en) 2010-11-23 2017-04-11 Arm Limited Apparatus and method including an instruction for performing a logical operation on a repeating data value generated based on data size and control parameter portions specified by the instruction
US10521232B2 (en) 2010-11-23 2019-12-31 Arm Limited Data processing apparatus and method for processing a SIMD instruction specifying a control value having a first portion identifying a selected data size and a second portion identifying at least one control parameter having a number of bits that varies in dependence on a number of bits comprised by the first portion

Also Published As

Publication number Publication date
US5832258A (en) 1998-11-03
JP3452655B2 (ja) 2003-09-29
KR950009474A (ko) 1995-04-24
KR100320559B1 (ko) 2002-04-22

Similar Documents

Publication Publication Date Title
JP3532975B2 (ja) マイクロコンピュータおよびそれを用いて命令を実行する方法
JP3452655B2 (ja) ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法
US5901301A (en) Data processor and method of processing data
KR100268635B1 (ko) 마이크로 컴퓨터 및 제산 회로
US5717946A (en) Data processor
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
US5954811A (en) Digital signal processor architecture
JP2834292B2 (ja) データ・プロセッサ
JPH02130634A (ja) プロセッサシステム、コンピュータシステム及び命令処理方法
JPH04109336A (ja) データ処理装置
JPH03218523A (ja) データプロセッサ
JPH1049370A (ja) 遅延命令を有するマイクロプロセッサ
US5924114A (en) Circular buffer with two different step sizes
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
JP2001523022A (ja) データストリーミングのためのコンピュータのプロセッサ及び方法
JPH10222368A (ja) データ処理装置
US7010677B2 (en) Data processor speeding up repeat processing by inhibiting remaining instructions after a break in a repeat block
US20030196072A1 (en) Digital signal processor architecture for high computation speed
JP4502532B2 (ja) データ処理装置
EP1499956B1 (en) Method and apparatus for swapping the contents of address registers
WO2004104822A1 (en) Methods and apparatus for instruction alignment
JPH07175651A (ja) ディジタル信号処理プロセッサおよびそれを用いて命令をフェッチし復号する方法
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
JPH11119998A (ja) 情報処理装置
JP2636821B2 (ja) 並列処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080718

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080718

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090718

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100718

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees