JPH1063500A - 信号処理装置 - Google Patents

信号処理装置

Info

Publication number
JPH1063500A
JPH1063500A JP8222119A JP22211996A JPH1063500A JP H1063500 A JPH1063500 A JP H1063500A JP 8222119 A JP8222119 A JP 8222119A JP 22211996 A JP22211996 A JP 22211996A JP H1063500 A JPH1063500 A JP H1063500A
Authority
JP
Japan
Prior art keywords
data
flag
signal
signal processing
output
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.)
Pending
Application number
JP8222119A
Other languages
English (en)
Inventor
Jiro Miyake
二郎 三宅
Yoshinori Urano
美紀 浦野
Genichiro Inoue
源一郎 井上
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP8222119A priority Critical patent/JPH1063500A/ja
Priority to US08/907,953 priority patent/US6047371A/en
Priority to KR1019970040218A priority patent/KR100549705B1/ko
Priority to EP97114599A priority patent/EP0825528A3/en
Publication of JPH1063500A publication Critical patent/JPH1063500A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders

Landscapes

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

Abstract

(57)【要約】 【課題】 条件付き分岐命令を用いずに、2つの異なる
演算をフラグ信号で切り替えて実行することにより少な
いサイクルで処理を行う信号処理装置を提供する。 【解決手段】 信号処理装置は、命令を解読し2つの制
御信号22、23を出力する命令デコーダ3と、命令デ
コーダ3に接続され、フラグ保持回路7に格納されたフ
ラグ信号に従って、制御信号22、23のいずれかを選
択して出力する制御選択回路6と、制御選択回路6が出
力する制御信号28に従って、複数の入力データのいず
れか1つを選択して出力する選択回路4、5と、選択回
路4、5が出力するデータに対して演算を行う演算手段
とを備えたものである。フラグ信号の値によって異なる
処理を1つの命令で実現することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、命令に従ってデー
タの処理を行う信号処理装置、特に、フラグの値に応じ
て異なる処理が可能な信号処理装置に関する。
【0002】
【従来の技術】命令に従ってデータの処理を行う信号処
理装置(プロセッサ)は、命令の集まりであるプログラ
ムによって、様々な処理や機能を実現することができる
ため、さまざまな機器に広く用いられている。
【0003】信号処理装置は、命令デコーダ、演算器、
データ保持回路などから構成され、命令デコーダが命令
を解読して制御信号を生成し、その制御信号によって、
データ保持回路からデータを読み出し、演算器は読み出
されたデータに対して、制御信号で指示された演算を行
い、演算結果を制御信号に従ってデータ保持回路に格納
する。このような処理を各々の命令に対して行うことに
よって、様々な機能を実現する。
【0004】このような信号処理装置を用いて次に示す
ような処理を行う場合を考える。 (処理1)は、データAとデータBを比較して、Aの方
が大きい場合は、データCにAを代入し、さもなくば、
CにBを代入するという処理である。つまり、条件によ
って処理が異なる。
【0005】これを命令を用いて処理する場合、条件付
き分岐命令と呼ばれる命令を用いる。
【0006】条件付き分岐命令は、前の演算の結果を示
すフラグが指定した値の場合のみ分岐する命令である。
【0007】(処理1)は次のような命令の組合わせ
(プログラム)で実現できる。 cmp r1,r2 bge L1 nop mov r3,r2 ba L2 nop k1: mov r3,r1 k2: このプログラムにおいて、r1、r2、r3は演算で用い
るデータを格納するレジスタであり、それぞれ、データ
A,B,Cを格納する。
【0008】このプログラムでは、先ず、cmp命令に
よって、レジスタr1からr2が減算され、減算の結果が
フラグに設定される。条件付き分岐命令bgeはそのフ
ラグによって減算結果が正または0である場合、つま
り、レジスタr1の値(A)がレジスタr2の値(B)に
対して等しいか、大きい場合、ラベルL1へ分岐する。
それ以外の場合は分岐せず、後続の命令を実行する。L
1ヘ分岐すると、mov命令によってレジスタr3
(C)へレジスタr1のデータ(A)が格納される。分
岐しない場合は、mov命令によってレジスタr3
(C)へレジスタr2(B)のデータが格納され、無条
件分岐命令baによって、無条件にラベルL2へ分岐す
る。このようにして、(処理1)が実現される。
【0009】
【発明が解決しようとする課題】このような信号処理装
置では、条件付き分岐命令を用いて処理を変える場合、
条件付き分岐命令の実行に要する時間や、分岐が生じた
場合に分岐先の命令をメモリから読み出す時間などが必
要で、信号処理装置の処理能力を低下させるという問題
点を有していた。
【0010】さらに、分岐命令や、2つの異なる処理の
それぞれに対する命令など、多くの命令を必要とし、プ
ログラムサイズが増加するという問題点を有していた。
【0011】さらに、分岐の条件によって処理が完了す
る時間が変わり、処理の結果を他の装置が利用する場
合、他の装置の動作のタイミングを調整するなど制御が
複雑になるという問題点を有していた。
【0012】従って本発明は上記問題点に鑑み、その目
的は、分岐命令を用いずに、フラグに応じて、2つの異
なる演算を行い、高い処理能力を実現する信号処理装置
を提供することにある。
【0013】
【課題を解決するための手段】上記問題点を解決するた
めに本発明の信号処理装置は、命令を解読し、第1の制
御信号と第2の制御信号を出力する命令解読手段と、フ
ラグ信号に従って、前記第1の制御信号と前記第2の制
御信号のいずれかを選択して出力する制御信号選択手段
と、前記制御信号選択手段が出力する制御信号に従っ
て、複数の入力データのいずれか1つを選択して出力す
るデータ選択手段と、前記データ選択手段が出力するデ
ータを入力の一つとして演算を行う演算手段と、を備え
たものである。
【0014】本発明は上記した構成によって、1つの命
令で2つの条件のそれぞれに対する演算を指定でき、フ
ラグの値に応じて2つの制御信号のうち1つが選択さ
れ、異なる処理を行うこととなる。
【0015】
【発明の実施の形態】以下本発明の一実施例の信号処理
装置について、図面を参照しながら説明する。
【0016】(実施例1)図1は本発明の第1の実施例
における信号処理装置のブロック図である。
【0017】図1において、3は命令20を解読し、第
1の制御信号22と第2の制御信号23を出力する命令
解読手段としての命令デコーダ、6は命令解読手段とし
ての命令デコーダ3に接続され、フラグ信号に従って、
第1の制御信号22と第2の制御信号23のいずれかを
選択して出力する制御信号選択手段としての制御選択回
路、4および5は、それぞれ、制御選択回路6が出力す
る制御信号28に従って、複数の入力データのいずれか
1つを選択して出力するデータ選択手段としての選択回
路、1は選択回路4、5に接続され、選択回路4、5が
出力するデータに対して演算を行う演算手段としての演
算器、7は演算器1が出力する演算結果フラグ32を格
納し、フラグ信号として制御選択回路6に出力するフラ
グ保持手段としてのフラグ保持回路、8および9は入力
データを反転して出力する反転手段としての反転回路で
ある。
【0018】演算器1は、入力11、12に与えられた
2つのデータに対して加算や論理演算などを行い、演算
結果のデータ31とフラグ32を出力する。フラグ32
は演算結果が正の数なのか、負の数なのか、オーバーフ
ローしたのか、0なのか、などを示す。
【0019】ここでは、簡単のため、フラグ32は1ビ
ットとし、演算結果が負の数の場合、フラグ32は0と
なり、正の数または0の場合、フラグ32は1となると
する。
【0020】2はレジスタファイルであり、演算器1が
演算に用いるデータや演算結果のデータを保持する。2
1は命令を格納するプログラムメモリである。
【0021】制御選択回路6は命令デコーダ3が出力す
る制御信号22、23を入力とし、フラグ保持回路7に
格納されているフラグFが0の場合、制御信号22を選
択し、フラグFが1の場合、制御信号23を選択して制
御信号28に出力する。制御信号28は5ビットであ
り、最上位2ビットは選択回路4の制御信号13に、次
の2ビットは選択回路5の制御信号14に、最下位ビッ
トは演算器1のキャリー入力29に与えられる。
【0022】択回路4は2ビットの制御信号13が00
の場合、レジスタファイル2の出力24を選択し、01
の場合、反転回路8の出力25を選択し、10の場合、
定数0を選択して出力する。
【0023】選択回路5は2ビットの制御信号14が0
0の場合、レジスタファイル2の出力26を選択し、0
1の場合、反転回路9の出力27を選択し、10の場
合、定数0を選択し、11の場合、命令デコーダ3の定
数出力33を選択して出力する。
【0024】命令20は、演算の種類を示すフィールド
op、演算の制御情報を示すフィールドcnt0、cn
t1、演算に用いるデータを格納するレジスタの番号を
示すフィールドrs1、rs2、演算結果を格納するレ
ジスタの番号を示すフィールドrdなどから構成され
る。フィールドcnt0は、フラグ保持回路7が保持す
るフラグ信号が0の場合の演算を指示するフィールドで
あり、フィールドcnt1は、フラグ信号が1の場合の
演算の制御を指示するフィールドである。フィールドc
nt0,cnt1はそれぞれ5ビットからなり、最上位
2ビットは選択回路4の入力選択を指定し、次の2ビッ
トは選択回路5の入力選択を指定し、残りの1ビットは
演算器1のキャリー入力29に与えられるデータであ
る。また、演算で定数を使用する場合、定数はimmフ
ィールドに設定される。
【0025】以上のように構成された信号処理装置につ
いて、以下その動作を説明する。例として(処理1)を
実現する場合を説明する。
【0026】(処理1)は次のような命令の組合わせ
(プログラム)で実現できる。 cmp r1,r2 F?add r3,r1,0:r3,0,r2 第1の命令cmpでは、レジスタr1に格納されている
データAからレジスタr2に格納されているデータBを
減算し、フラグFを出力する。演算結果が負の数の場合
フラグFは0であり、演算結果が正の数または0の場合
フラグFは1である。
【0027】第2の命令は条件付き演算命令であり、F
が1の場合はadd r3,r1,0を実行し、Fが0
の場合はadd r3,0,r2を実行することを示
す。add r3,r1,0は、レジスタr1と0を加
算して、レジスタr3へ格納、即ち、データAの値をデ
ータCに格納する。同様に、add r3,0,r2は
データBの値をデータCに格納する。第1の命令の結
果、A≧BであればFは1となり、A<BであればFは
0となるので、第2の命令の実行によって、(処理1)
が実現されることになる。
【0028】(処理1)の動作を図1を用いて説明す
る。まず、プログラムメモリ21から第1の命令cmp
が読み出され、命令デコーダ3に与えられる。命令cm
pはフラグFの値に関係なく、2つのデータに対して減
算を行う。図1に示す信号処理装置では、減算は、一方
の入力をビット反転し、キャリー入力29に1を与え、
演算器1で加算を行うことで実現される。従って、命令
cmpのopフィールドには加算を示す値が設定され
る。cnt0およびcnt1フィールドには、共に、0
0011が設定される。rs1フィールドには1が、r
s2フィールドには2が設定されている。
【0029】命令デコーダ3は命令cmpを解読し、レ
ジスタファイル2からレジスタr1およびレジスタr2
のデータの読みだしを指示する。opフィールドを解読
して、演算器1に対して加算を指示し、cnt0および
cnt1フィールドの値をそれぞれ、制御信号22、2
3から制御選択回路6に与える。制御選択回路6は、フ
ラグ保持回路7に格納されているフラグFが0の場合は
制御信号22を、1の場合は制御信号23を選択して出
力するが、cnt0およびcnt1フィールドの値は同
じであるので、フラグ保持回路7に格納されている値に
関係なく同じ値00011が出力28に出力される。選
択回路4は制御信号13が00であるので、レジスタフ
ァイル2の出力24、即ち、レジスタr1のデータを選
択して演算器1の入力11へ与える。選択回路5は制御
信号14が01であるので、反転回路9の出力27を選
択して演算器1の入力12へ与える。反転回路9の出力
27は、レジスタファイル2の出力26、即ち、レジス
タr2のデータの反転データである。演算器1のキャリ
ー入力29には値1が与えられる。演算器1は命令デコ
ーダ3からの演算制御信号30に従って、入力11、入
力12、およびキャリー入力29に対して加算、すなわ
ち、レジスタr1とレジスタr2のデータに対して減算
を行って、演算結果のデータ31およびフラグ32を出
力する。フラグ32は命令デコーダからの制御に従っ
て、フラグ保持回路7に格納される。
【0030】次に第2の命令がプログラムメモリ21か
ら読み出されて命令デコーダ3へ与えられる。この命令
のopフィールドには加算を示す値が設定されている。
cnt0フィールドには00100が、cnt1フィー
ルドには10000が設定されている。rs1フィール
ドには1が、rs2フィールドには2が、rdフィール
ドには3が設定されている。命令デコーダ3はrs1フ
ィールドおよびrs2フィールドを用いて、レジスタフ
ァイル2からレジスタr1およびレジスタr2のデータ
を読み出し、それぞれ、出力24および26に出力す
る。また、命令デコーダ3はopフィールドを解読し
て、演算器1に対して加算を指示し、cnt0フィール
ドおよびcnt1フィールドの値をそれぞれ、制御信号
22および23に出力し制御選択回路6に与える。
【0031】フラグ保持回路7に保持されているフラグ
Fの値が0の場合、制御選択回路6は制御信号22の値
00100を選択して出力28に出力する。選択回路4
は、制御信号13が00であるので、レジスタファイル
2の出力24、すなわちレジスタr1のデータを選択し
て、演算器1の入力11へ出力する。選択回路5は、制
御信号14が10であるので、定数0を選択して、演算
器1の入力12に出力する。演算器1のキャリー入力2
9には0が与えられる。演算器1は、命令デコーダ3の
指示に従い、入力11、12およびキャリー入力29に
対して加算を行い、演算結果31とフラグ32を出力す
る。すなわち、レジスタr1のデータAが演算結果31
として出力される。
【0032】ラグ保持回路7に保持されているフラグF
の値が1の場合、制御選択回路6は制御信号23の値1
0000を選択して出力28に出力する。選択回路4
は、制御信号13が10であるので、定数0を選択し
て、演算器1の入力11へ出力する。選択回路5は、制
御信号14が00であるので、レジスタファイル2の出
力26、すなわちレジスタr2のデータを選択して、演
算器1の入力12に出力する。演算器1のキャリー入力
29には0が与えられる。演算器1は、命令デコーダ3
の指示に従い、入力11、12およびキャリー入力29
に対して加算を行い、演算結果31とフラグ32を出力
する。すなわち、レジスタr2のデータBが演算結果3
1として出力される。
【0033】命令デコーダ3は第2の命令のrdフィー
ルドの値に従い、演算結果31のデータをレジスタファ
イルのレジスタr3(データC)に格納する。従って、
フラグFが1の場合、つまり、A≧Bの場合はCにはデ
ータAが、フラグFが0の場合、つまり、A<Bの場合
はCにはデータBが格納されることになり、(処理1)
が実現される。
【0034】次に、以下に示す処理を実行する場合を説
明する。 (処理2)は、データBが5以上であれば、CにA+B
を代入し、さもなくば、CにA−Bを代入するという処
理である。この処理は次に示すようなプログラムで実現
できる。
【0035】 cmp r2,5 F?add r3,r1,−r2 : r3,r1,r
2 ここで、r1、r2、r3はそれぞれ、データA、B、
Cを格納するレジスタを示す。
【0036】第1の命令cmpでは、レジスタr2に格
納されているデータBから定数5を減算し、フラグFを
出力し、フラグ保持回路7に格納する。第2の命令は、
フラグFが1の場合、即ち、データBが5以上の数の場
合は、レジスタr1のデータAからレジスタr2のデー
タBを減算し、Fが0の場合、即ち、データBが5未満
の数の場合は、レジスタr1のデータAにレジスタr2
のデータBを加算し、レジスタr3(データC)へ演算
結果のデータを格納する。
【0037】(処理2)の動作を図1を用いて説明す
る。プログラムメモリ21から第1の命令cmpが読み
出され、命令デコーダ3に与えられる。命令cmpはフ
ラグFの値に関係なく、レジスタr2の値から定数5を
減算する。定数5を減算するのは定数5の2の補数を加
算するのと同じである。従って、第1の命令cmpで
は、命令の即値フィールドimmには定数5の2の補数
が設定され、opフィールドには加算を示す値が設定さ
れる。cnt0およびcnt1フィールドには、共に、
00110が設定される。rs1フィールドには2が設
定されている。
【0038】命令デコーダは命令cmpをデコードし、
レジスタファイル2からレジスタr2のデータの読みだ
しを指示し、immフィールドに設定されている定数5
の2の補数を定数出力33に出力する。opフィールド
を解読して、演算器1に対して加算を指示し、cnt0
およびcnt1フィールドの値をそれぞれ、制御信号2
2、23に出力し制御選択回路6に与える。cnt0お
よびcnt1フィールドの値は同じであるので、フラグ
保持回路7に格納されている値に関係なく値00110
が出力28に出力される。選択回路4は、制御信号13
が00であるので、レジスタファイル2の出力24、即
ち、レジスタr1のデータを選択して演算器1の入力1
1へ与える。選択回路5は、制御信号14が11である
ので、命令デコーダ3の定数出力33を選択して演算器
1の入力12へ与える。演算器1のキャリー入力29に
は0が与えられる。演算器1は命令デコーダからの演算
制御信号30に従って、入力11、入力12、およびキ
ャリー入力29に対して加算、すなわち、レジスタr2
から定数5の減算、すなわちB−5を行って、演算結果
のデータ31およびフラグ32を出力する。フラグ32
は命令デコーダ3からの制御に従って、フラグ保持回路
7に格納される。
【0039】次に第2の命令がプログラムメモリ21か
ら読み出されて命令デコーダ3へ与えられる。この命令
のopフィールドには加算を示す値が設定されている。
cnt0フィールドには00000が、cnt1フィー
ルドには00011が設定されている。rs1フィール
ドには1が、rs2フィールドには2が、rdフィール
ドには3が設定されている。命令デコーダ3はrs1フ
ィールドおよびrs2フィールドを用いて、レジスタフ
ァイル2からレジスタr1およびレジスタr2のデータ
を読み出し、それぞれ、出力24および26に出力す
る。また、命令デコーダ3はopフィールドを解読し
て、演算器1に対して加算を指示し、cnt0フィール
ドおよびcnt1フィールドの値をそれぞれ、制御信号
22および23に出力し、制御選択回路6に与える。
【0040】フラグ保持回路7に保持されているフラグ
Fの値が0の場合、制御選択回路6は制御信号22を選
択して出力28に出力する。選択回路4は、制御信号1
3が00であるので、レジスタファイル2の出力24、
すなわちレジスタr1のデータを選択して、演算器1の
入力11へ出力する。選択回路5は、制御信号14が0
0であるので、レジスタファイル2の出力26、すなわ
ちレジスタr2のデータを選択して、演算器1の入力1
2に出力する。演算器1のキャリー入力29には、制御
選択回路6の出力28の最下位ビット、この場合、0が
与えられる。演算器1は、命令デコーダ3の指示に従
い、入力11、12およびキャリー入力29に対して加
算を行い、演算結果31とフラグ32を出力する。これ
により、レジスタr1のデータAとレジスタr2のデー
タBの加算結果が演算結果31として出力される。
【0041】フラグ保持回路7に保持されているフラグ
Fの値が1の場合、制御選択回路6は制御信号23を選
択して出力28に出力する。選択回路4は、制御信号1
3が00であるので、レジスタファイル2の出力24を
選択して、演算器1の入力11へ出力する。選択回路5
は、制御信号14が01であるので、反転回路9の出力
27のデータを選択して、演算器1の入力12に出力す
る。反転回路9の出力27は、レジスタファイル2の出
力26の反転データ、すなわちレジスタr2の反転デー
タである。演算器1のキャリー入力29には1が与えら
れる。演算器1は、命令デコーダ3の指示に従い、入力
11、12およびキャリー入力29に対して加算を行
い、演算結果31とフラグ32を出力する。これによ
り、A−Bが演算結果31として出力される。
【0042】命令デコーダ3は命令のrdフィールドの
値に従い、演算結果31のデータをレジスタファイルの
レジスタr3(データC)に格納する。従って、フラグ
Fが0の場合は、CにはA+Bが、フラグFが1の場合
はCにはA−Bが格納されることになり、(処理2)が
実現される。
【0043】以上のように、命令にフラグが0の場合の
演算の情報とフラグが1の場合の演算の情報を持たせ、
フラグ保持回路に格納されている値に応じて、2つの制
御信号のいずれかを選択する制御選択回路を備えること
により、条件付きで演算を変えて実行することができ
る。
【0044】また、フラグの値に応じた制御情報のフィ
ールドが2つに別れているため、命令デコーダは容易に
制御信号を生成することができ、制御信号を生成するた
めの回路の規模を小さくし、生成に要する時間を短くす
ることができる。
【0045】また、フラグに応じて処理を変えるための
制御選択回路も単に2つの入力から1つをフラグに応じ
て選択するだけなので、極めて簡単な回路で高速な処理
が実現できる。
【0046】なお、この例では、条件付き演算命令で加
算を行う場合を示したが、加算以外の演算、例えば、論
理積や排他的論理和などに用いてもよい。
【0047】また、本実施例では演算器が2つの入力デ
ータに対して演算を行う場合について述べたが、本発明
は演算器が3つ以上の入力データに対して演算を行う場
合に適用できる。
【0048】また、演算器の複数の入力のうち一部だけ
に、制御選択回路の出力に従って入力を選択して出力す
る選択回路を接続し、他の入力にはフラグ信号とは関係
なく決定されたデータを与えるとしてもよい。
【0049】また、本実施例では減算を行う場合に、反
転したデータを入力し、キャリー入力に1を与えて加算
しているが、演算器に減算の機能を設け、演算を指定す
ることで実現することもできる。この場合、フラグが0
の場合と1の場合の制御情報を示すフィールドに加算や
減算を指示する情報を入れ、フラグの値に応じて制御選
択回路によって選択する。例えば、フラグが1の場合に
加算を指定し、フラグが0の場合に減算を指定するとし
てもよい。図2に条件によって演算器の演算を変える信
号処理装置のブロック図を示す。この図では、cnt
0、cnt1フィールドに演算の種類を指定する情報が
含まれており、この情報をもとに制御信号22、23が
命令デコーダ3によって生成される。制御信号22、2
3のいずれかが、フラグ保持回路7に保持されているフ
ラグに従って、制御選択回路6により選択され、演算の
種類を示す信号が演算制御信号30に与えられ、演算器
1の演算を制御する。演算制御信号30により減算を指
定することができるので、選択回路4および5からデー
タを反転した値を演算器1に与えなくても、図1に示す
信号処理装置と同様の条件付き演算を実行することがで
きる。
【0050】また、命令のフォーマットにおいて、フラ
グが0の場合と1の場合の制御情報のフィールドを明確
に分離せずに、フラグが0の場合と1の場合の制御情報
をエンコードして1つのフィールドに設定してもよい。
例えば、このフィールドが1の場合は、フラグが0の
時、加算器は第1の入力を出力し、フラグが1の時、加
算器は第2の入力を出力するとし、このフィールドが2
の場合は、フラグが0の時、加算器は第1の入力と第2
の入力の加算を行い、フラグが1の時、加算器は第1の
入力から第2の入力を演算するとしてもよい。
【0051】また、フラグ保持回路には、演算器のフラ
グ出力を格納するとしたが、レジスタファイルに格納さ
れているデータあるいは、信号処理装置の外部から入力
されるデータを格納するとしてもよい。
【0052】(実施例2)以下本発明の第2の実施例に
ついて図面を参照しながら説明する。
【0053】図3は本発明の第2の実施例を示す信号処
理装置のブロック図である。図3において、図1と同一
の機能を有するものには同一の符号を付してその詳細な
説明を省略する。
【0054】104、105、および106は制御選択
回路6が出力する制御信号28に従って、複数の入力デ
ータのいずれか1つを選択して出力するデータ選択手段
としての選択回路、101は選択回路104、105、
106に接続され、選択回路104、105、106が
出力するデータに対して演算を行う演算手段としての加
算器、102は複数のデータを保持する第1のデータ保
持手段としてのデータ保持回路、103は加算器101
が出力する演算結果31を格納して出力する第2のデー
タ保持手段としてのデータ保持回路、115、116、
117は入力データを反転して出力する反転手段として
の反転回路である。
【0055】加算器101は、3つの入力111、11
2、113のデータとキャリー入力118の値を加算
し、演算結果のデータ31とフラグ32を出力する。1
37は選択回路であり、加算器101の演算結果31か
データ保持回路102の出力136を選択して出力13
5に出力する。
【0056】121、122、123はシフタであり、
入力されたデータに対して、命令デコーダ3の指示に従
って、右(下位ビット方向)あるいは左(上位ビット方
向)に適当なビット数シフトする。選択回路107は、
命令デコーダ3の制御信号130に従って、シフタ12
1の出力か反転回路115の出力のいずれかを選択し出
力する。選択回路108は、命令デコーダ3の制御信号
131に従って、シフタ122の出力か反転回路116
の出力か命令デコーダ3の定数出力114のいずれかを
選択して出力する。選択回路110は、命令デコーダ3
の制御信号132に従って、データ入力128をラッチ
138で一旦格納した値かデータ保持回路103の出力
を選択してシフタ123に出力する。選択回路109
は、制御信号144が0の場合シフタ123の出力を選
択し、1の場合反転回路117の出力を選択して出力す
る。選択回路104、105、106はそれぞれ、対応
する制御信号141、142、143が1の場合、選択
回路107、108、109の出力を選択し、0の場
合、定数0を選択して、加算器101の入力111、1
12、113へ出力する。
【0057】図3に示す信号処理装置では、シフタ12
1、122と加算器101と累算用に用いるデータ保持
回路103によって積和演算を行うことができる。例え
ば、3つのデータA、B、Cに対して、Ax(1/4)
+bx(1/2)+Cx(1/4)を行う場合、先ず、
データ保持回路102から2つのデータA,Bを選択し
て、ぞれぞれ、シフタ121、122に与える。シフタ
121はデータAを右(下位ビット方向)に2ビットシ
フトし、選択回路107、104を介して、加算器10
1の入力111に与える。シフタ122はデータBを右
に1ビットシフトし、選択回路108、105を介し
て、加算器101の入力112に与える。加算器101
の入力113には選択回路106により0が与えられ
る。また、キャリー入力118にも0が与えられる。加
算器101は入力されたデータに対して加算を行い、演
算結果のデータ31をデータ保持回路103に格納す
る。これにより、データ保持回路103にはAx(1/
4)+bx(1/2)が得られたことになる。次に、デ
ータ保持回路102はデータCを選択してシフタ121
に与え、シフタ121はデータCを右に2ビットシフト
して、選択回路107、104を介して、加算器101
の入力111に与える。データ保持回路103に格納さ
れているデータは選択回路110によって選択されシフ
タ123に与えられ、シフトされずにそのまま選択回路
109、106を介して加算器101の入力113に与
えられる。入力112には選択回路105により0が与
えられる。加算器101は与えられたデータに対して加
算を行い、演算結果31を出力する。この演算結果はA
x(1/4)+Bx(1/2)+Cx(1/4)とな
る。
【0058】この信号処理装置を用いて、図1の信号処
理装置と同様に条件によって異なる処理を行う場合の動
作について説明する。
【0059】図4に、図3に示す信号処理装置の命令の
フォーマットを示す。命令はいくつかのフィールドから
構成される。typeフィールドは命令の種類を示すフ
ィールドであり、0および1の時は無条件演算命令、2
および3の時は条件付き演算命令を示す。また、typ
eフィールドが1および3の場合は、演算に定数を用い
る命令であることを示す。演算で用いる定数はimmフ
ィールドで与えられる。add、add0、add1フ
ィールドは加算器の3つの入力を制御するフィールド
で、入力にデータを与えるのか、あるいは0を与えるの
かを示す。これらのフィールドはそれぞれ3ビットから
なり、それぞれ1ビットが加算器のそれぞれの入力に対
応する。このビットが0の場合は定数0が入力に与えら
れ、1の場合はデータが与えられる。add0はフラグ
が0の時に使われる情報であり、add1はフラグが1
の時に使われる情報であり、addはフラグの値とは関
係なく使われる情報である。pi、qi、ri、ri
0、ri1フィールドはそれぞれ、1ビットであり、加
算器の3つの入力に与えるデータを反転させるかどうか
を示すフィールドであり、このビットが0であれば、デ
ータを反転せずにそのまま加算器の入力に与え、1であ
ればデータを反転して加算器の入力に与える。piフィ
ールドは加算器101の入力111のデータに対応し、
qiフィールドは入力112のデータに対応し、ri、
ri0、ri1フィールドは入力113のデータに対応
する。ri0はフラグが0の場合の制御情報であり、r
i1はフラグが1の場合の制御情報であり、pi、q
i、riフィールドはフラグの値とは関係なく使われる
情報である。
【0060】命令デコーダ3は、pi、qiフィールド
の値をそれぞれ、制御信号130、131に出力し、選
択回路107、108に与える。さらに、命令が無条件
演算命令の場合は、addフィールドの値とriフィー
ルドの値とキャリー入力値を連結した5ビットの信号を
制御信号22と23の両方に出力する。キャリー入力値
は減算を行う場合に1とする値であり、pi、qi、r
iフィールドのいずれかが1の場合に1となる。命令が
条件付き演算命令の場合は、add0フィールドの値と
ri0フィールドの値とキャリー入力値を連結した5ビ
ットの信号を制御信号22に出力し、add1フィール
ドの値とri1フィールドの値とキャリー入力値を連結
した4ビットの信号を制御信号23に出力する。制御信
号22に出力するキャリー入力値は、pi、qi、ri
0フィールドのいずれかが1の場合に1となり、制御信
号23に出力するキャリー入力値は、pi、qi、ri
1フィールドのいずれかが1の場合に1となる。
【0061】制御選択回路6の5ビットの出力28は最
上位のビットから1ビットずつ、それぞれ、選択回路1
04、105、106、109と加算器101のキャリ
ー入力118に与えられる。
【0062】命令には、ここに示したフィールドの他
に、シフタ121、122、123でのシフトの量を示
すフィールドや、データ保持回路102から読み出すデ
ータを指定するフィールドや、データ保持回路103に
演算結果31を格納するかどうかを指示するフィールド
などがあるが、ここでは、説明を簡単にするため省略す
る。
【0063】例えば、次に示す処理について説明する。 (処理3)は、2つのデータの差分をとって、その絶対
値を求めるという処理である。
【0064】アの処理を以下に示す命令を用いて実行す
る。 第1命令: E=r1−r2 第2命令: E=F?E:(−E) ここで、r1、r2はそれぞれ、データA、Bを保持す
るデータ保持回路102の中のレジスタを示し、Eはデ
ータ保持回路103に格納されるデータを示す。
【0065】まず、第1命令で、A−Bを実行する。第
1命令の、addフィールドは110であり、pi,q
i,riフィールドはそれぞれ、0、1、0であり、キ
ャリー入力は1である。この命令は無条件演算命令であ
るので、addフィールドとriフィールドとキャリー
入力を連結した値11001が制御信号22および23
に出力される。同じ値が制御信号22および23に与え
られるので、制御選択回路6の出力28は、フラグ保持
回路7に格納されている値に関係なく値11001であ
る。命令デコーダ3の制御により、データ保持回路10
2からレジスタr1のデータAとレジスタr2のデータ
Bが読み出され、それぞれシフタ121、122に与え
られる。シフタ121および122は入力されたデータ
をシフトせず、そのまま出力する。選択回路104は制
御信号141が1であるので、選択回路107の出力を
選択して加算器101の入力111に出力する。選択回
路105は制御信号142が1であるので選択回路10
8の出力を選択して加算器101の入力112に出力す
る。選択回路106は制御信号143が0であるので、
定数0を選択して加算器101の入力113に出力す
る。制御信号130、131には命令のpi、qiフィ
ールドの値すなわち、0、1が与えられ、選択回路10
7はシフタ121の出力を、選択回路108は反転回路
116の出力を選択して出力する。これにより、加算器
101の入力111、112、113にはそれぞれ、デ
ータA、データBの反転データ、定数0が与えられる。
さらに、キャリー入力118には1が与えられ、加算器
101が加算を行った結果のデータ31およびフラグ3
2はA−Bの結果のデータおよびフラグとなる。演算結
果のデータ31はデータ保持回路103に、フラグ32
はフラグ保持回路7にそれぞれ格納される。
【0066】次に、第2の命令を実行する。第2の命令
は条件付き演算命令であり、add0フィールドおよび
add1フィールドは共に001である。piおよびq
iフィールドはそれぞれ、0、0であり、ri0および
ri1フィールドはそれぞれ1、0である。従って、命
令デコーダ3は制御信号22に値00111を、制御信
号23に値00100を出力する。
【0067】フラグ保持回路7に格納されているフラグ
Fが0の場合、制御選択回路6は制御信号22を選択し
て出力28に値00111を出力する。制御信号14
1、142は共に0であるので選択回路104および1
05は定数0を選択して加算器101の入力111、1
12に出力する。制御信号143は1であるので選択回
路106は選択回路109の出力を選択して加算器10
1の入力113に出力する。選択回路110はデータ保
持回路103の出力、すなわち、第1の命令の演算結果
A−Bを出力する。制御信号144は1であるので、選
択回路109は反転回路117の出力を選択して出力す
るので、選択回路106を介して、加算器101の入力
113にはデータA−Bの反転データが与えられる。キ
ャリー入力118には1が与えられるので、加算器10
1は0+0−(A−B)の演算を行い、−A+Bを演算
結果31に出力する。
【0068】フラグ保持回路7に格納されているフラグ
Fが1の場合、制御選択回路6は制御信号23を選択し
て出力28に値00100を出力する。加算器101の
入力111、112には、フラグFが0の場合と同様に
定数0が与えられる。制御信号143は1であるので選
択回路106は選択回路109の出力を選択して加算器
101の入力113に出力する。制御信号144は0で
あるので選択回路109はシフタ123の出力を選択し
て出力する。選択回路110は命令デコーダ3の制御に
よりデータ保持回路103の出力A−Bの値を選択して
出力する。これにより、加算器101の入力111、1
12、113にはそれぞれ、定数0、定数0、およびデ
ータA−Bが入力される。キャリー入力118には0が
与えられるので、加算器101は演算結果31にA−B
を出力する。
【0069】このようにして、フラグFが1の場合、つ
まりA−Bが正の数または0の場合はA−Bを出力し、
フラグFが0の場合、つまりA−Bが負の数の場合は−
A+Bを出力して、データ保持回路103に格納し、
(処理3)が実現されたことになる。
【0070】次に、(処理1)において、データBが定
数である場合の動作について説明する。
【0071】この処理は次のような命令の組合わせで実
現できる。 第1命令: E=r1−B 第2命令: E=F?B:r1 ここで、r1はデータAを保持するデータ保持回路10
2の中のレジスタを示し、Eはデータ保持回路103に
格納されるデータを示す。Bは定数である。
【0072】第1の命令は、レジスタr1のデータAか
ら定数Bを引いて、結果のフラグを格納する。
【0073】第1の命令は無条件演算命令であり、定数
Bを用いるのでtypeフィールドは1であり、定数B
はimmフィールドより与えられる。この場合、imm
フィールドには定数Bの2の補数が設定される。add
フィールドは110であり、pi、qi、riフィール
ドはそれぞれ0、0、0である。命令デコーダ3は第1
の命令をデコードして、制御信号23および23共に、
11000を出力する。制御選択回路6はフラグ保持回
路7の値に関係なく、出力28に11000を出力す
る。制御信号141には1が与えられるので、選択回路
104は選択回路107の出力を選択し、制御信号14
2には1が与えられるので、選択回路105は選択回路
108の出力を選択し、制御信号143には0が与えら
れるので、選択回路106は定数0を選択し、制御信号
144には0が与えられるので選択回路109はシフタ
123の出力を選択して出力する。命令デコーダ3は命
令のimmフィールドに設定されている定数Bの2の補
数を定数出力114に出力する。命令デコーダ3の制御
に従って、選択回路107はシフタ121の出力を、選
択回路108は定数出力114を選択して出力する。従
って、加算器101の入力111、112、113には
それぞれ、レジスタr1のデータA、定数Bの2の補
数、定数0が与えられ、キャリー入力118には0が与
えられるので、演算結果31にはA−Bの結果のデータ
が出力され、そのフラグがフラグ出力32に出力され
る。フラグ出力32の値は、命令デコーダ3の制御に従
って、フラグ保持回路7に格納される。
【0074】第2の命令は、フラグFの値に応じて演算
が異なる条件付き演算命令であり、定数Bを用いるの
で、typeフィールドは3である。フラグFが1の場
合は、定数Bをデータ保持回路103に格納し、フラグ
Fが0の場合は、レジスタr1のデータAをデータ保持
回路103に格納する。
【0075】第2の命令のadd0およびadd1フィ
ールドはそれぞれ、100および010であり、pi、
qiフィールドは0、0で、ri0、ri1フィールド
は0、0である。immフィールドには定数Bが設定さ
れている。
【0076】命令デコーダ3の制御により、データ保持
回路102よりデータAが読み出され、シフタ121へ
与えられる。この場合、シフト量は0であるのでシフタ
121はデータAをそのまま選択回路107に出力す
る。定数出力114には、immフィールドに設定され
ている定数Bが出力される。選択回路108は定数出力
114の値、すなわち定数Bを選択して出力する。命令
デコーダ3は第2の命令を解読し、制御信号22および
23にそれぞれ、10000および01000を出力す
る。
【0077】フラグ保持回路7に格納されているフラグ
Fが0の場合、制御選択回路6は制御信号22の値10
000を出力28に出力する。制御信号141には1が
与えられるので選択回路104は選択回路107の出力
を選択する。制御信号142、143には0が与えられ
るので選択回路105、106は定数0を選択する。選
択回路107は命令デコーダ3の制御により、シフタ1
21の出力を選択して出力する。従って、加算器101
の入力111、112、113にはそれぞれ、データ
A、定数0、および定数0が与えられ、キャリー入力1
18には0が与えられるので、加算器101はA+0+
0、すなわちAを演算結果31に出力する。演算結果3
1に出力されたデータAは、データ保持回路103に格
納される。
【0078】フラグFが1の場合、制御回路6は制御信
号23の値01000を出力28に出力する。制御信号
141および143は0なので、選択回路104および
106は定数0を選択して出力する。制御信号142は
1なので、選択回路105は選択回路108の出力、す
なわち定数Bを選択して出力する。従って、加算器10
1の入力111、112、113にはそれぞれ、定数
0、定数B、および定数0が与えられ、キャリー入力1
18には0が与えられるので、加算器101は0+B+
0、すなわちBを演算結果31に出力する。演算結果3
1に出力されたデータBは、データ保持回路103に格
納される。
【0079】これにより、(処理1)でBが定数の場合
の処理が実行されたことになる。制御選択回路6はフラ
グ保持回路7に格納されているフラグによって、制御信
号22あるいは23のいずれかを選択するだけなので、
回路構成は簡素で遅延時間を小さくすることができる。
【0080】なお、フラグ保持回路7には複数のフラグ
を保持し、そのいずれかを用いて、制御選択回路6は制
御信号22あるいあ23のいずれかを選択するとしても
よい。
【0081】本実施例では、加算器101のフラグ出力
は演算結果が負の数かどうかを示す信号としたが、演算
結果がオーバーフローしたかどうか、値0かどうか、最
上位ビットからの桁あげが起こったかどうかなどを示す
1つあるいは複数の信号でもよい。さらに、制御選択回
路6はフラグ保持回路7に格納された複数のフラグの組
合わせにしたがって制御信号22あるいは23のいずれ
かを選択するとしてもよい。
【0082】本実施例では、加算器の3つの入力のうち
1つのデータに対して減算を行う場合に、そのデータを
反転して、キャリー入力に1を与えて加算するようにし
ているが、2つ以上のデータに対して減算ができるよう
にキャリー入力のビット数を2ビット以上にしてもよ
い。
【0083】また、本発明は、加算器が2つの入力デー
タ、あるいは4つ以上の入力データに対して演算を行う
場合にも適用できる。
【0084】また、本実施例におけるシフタあるいは選
択回路のうちいくつかを省略し、加算器の入力の一部に
のみ、フラグによってデータが切り替わる機能をもたせ
るとしてもよい。
【0085】以上のように、命令にフラグが0の場合の
演算の情報とフラグが1の場合の演算の情報を持たせ、
フラグ保持回路に格納されている値に応じて、2つの制
御信号のいずれかを選択する制御選択回路を備えること
により、条件付きで演算を変えて実行することが可能に
なる。
【0086】(実施例3)以下本発明の第3の実施例に
ついて図面を参照しながら説明する。
【0087】図5は本発明の第3の実施例を示す図であ
り、2つの信号処理装置を接続した構成を示す図であ
る。
【0088】図5において、100aおよび100bは
図3における信号処理装置であり、信号処理装置100
aの出力135、32、31がそれぞれ、信号処理装置
100bの入力129、136、128に接続されてい
る。
【0089】直列に接続した2つの信号処理装置100
a、100bを用いて、前段の信号処理装置100aで
行われた演算の結果のフラグの用いて、次段の信号処理
装置100bで条件付き演算命令を実行することができ
る。
【0090】例えば、2つの信号処理装置100a、1
00bを用いて除算を行う場合について説明する。
【0091】以下に、A÷Bを行う場合の各サイクルの
処理を示す。 (信号処理装置100a) (信号処理装置10 0b) サイクル1 E=A−B サイクル2 E=F?Ex2−B:Ex2+B E=PF?1:0 サイクル3 E=F?Ex2−B:Ex2+B E=PF?Ex2+ 1:Ex2+0 サイクル4 E=F?Ex2−B:Ex2+B E=PF?Ex2+ 1:Ex2+0 サイクル5 E=PF?Ex2+ 1:Ex2+0 ここで、PFとは前段の信号処理装置100aの演算結
果のフラグを示す。
【0092】この処理において、被除数Aは信号処理装
置100aのデータ入力128から与えられ、除数Bは
信号処理装置100aのデータ入力129から与えられ
データ保持回路102に保持されるとする。
【0093】信号処理装置100aでは、サイクル1で
データAが入力128からラッチ138、選択回路11
0、シフタ123、選択回路109、106を介して加
算器101の入力113に与えられる。データBはデー
タ保持回路102から読み出され、シフタ121から反
転回路115に与えられ、反転された後、選択回路10
7、104を介して加算器101の入力111に与えら
れる。入力112には選択回路105によって定数0が
与えられ、キャリー入力118には1が与えられる。加
算器101によって加算が行われ、結果のデータA−B
が演算結果31に出力され、データ保持回路103に格
納される。同時に、演算結果のフラグ32がフラグ保持
回路7に格納される。
【0094】サイクル2では、フラグ保持回路7に格納
されたフラグFが1の場合、データ保持回路103に格
納されているデータEを2倍、すわなち、左へ1ビット
シフトして、データBを減算する。フラグFが0の場
合、データEの2倍にデータBを加算する。この時、デ
ータBはデータ保持回路102から読み出され、2つの
シフタ121、122に与えられ、選択回路107はシ
フタの出力を選択し、選択回路108はシフタ122の
出力を反転した反転回路116の出力を選択して出力す
る。フラグFが0の場合は選択回路104がデータBを
加算器101の入力111に、選択回路105は定数0
を入力112に与え、フラグFが1の場合は、選択回路
104は定数0を入力111に、選択回路105はデー
タBの反転を入力112に与える。キャリー入力118
には、フラグFが1の場合は1が、フラグFが0の場合
は0が与えられる。入力113にはフラグFに関係なく
データEの2倍が与えられる。
【0095】猿Z結果のデータをデータ保持回路103
に、演算結果のフラグをフラグ保持回路7にそれぞれ格
納する。サイクル3およびサイクル4は、サイクル2と
同じ演算を繰り返す。サイクル2、3、4の命令は条件
付き演算命令であり、命令のadd1フィールドは10
1、add0フィールドは011、piおよびqiフィ
ールドは0および1、ri0、ri1フィールドは共に
0であり、命令デコーダ3は制御信号22、23にそれ
ぞれ01101、10100を出力する。
【0096】サイクル1、2、3、4のそれぞれの演算
で得られた結果のフラグは除算A÷Bの商の各ビットで
ある。この各1ビットのフラグを用いて、次段の信号処
理装置100bで4ビットの商を組み立てる。信号処理
装置100aのサイクル1の演算で得られたフラグ32
は、信号処理装置100bのフラグ入力136から入力
され、サイクル2でフラグ保持回路7に取り込まれて、
制御選択回路6による制御信号22、23の選択に用い
られる。信号処理装置100bの命令の記述でPFと
は、前段の信号処理装置のフラグを示す。信号処理装置
100bでは、サイクル2に、前段の信号処理装置10
0aのサイクル1の演算結果のフラグが1であれば1
を、フラグが0であれば0をデータ保持回路103に格
納する。この命令も条件付き演算命令であり、add1
フィールドは010、add0フィールドは000、p
i、qi、ri0、ri1フィールドは全て0で、制御
信号22、23にそれぞれ01000、00000を出
力する。フラグFが1の場合、定数出力114に出力さ
れた値1が加算器101の入力113に与えられ、演算
結果31に1が出力される。フラグFが0の場合は、加
算器101の入力111、112、113には全て0が
与えられるので、演算結果31には0が出力される。演
算結果31はデータ保持回路103に格納される。
【0097】サイクル3、4、5でも同様に演算が行わ
れるが、この場合、データ保持回路103に格納された
データEを左に1ビットシフトした値が加算される。
【0098】これにより、信号処理装置100aで4回
の演算で得られたフラグを用いて、次段の信号処理装置
100bで4ビットの商が得られる。例えば、データA
が4でデータBが3である場合、信号処理装置100b
のデータ保持回路103には1010が得られる。な
お、この4ビットのデータの最上位ビットは整数1桁目
であり、以下は少数部である。
【0099】このように、信号処理装置を連結し、他の
信号処理装置が出力するフラグを用いて条件付き演算命
令を行うこともできる。
【0100】また、条件付き分岐命令を使わないため、
条件によって演算結果が得られるタイミングが変わるこ
とがなく、その結果を用いて処理を行う信号処理装置の
制御が容易である。
【0101】
【発明の効果】以上のように本発明は、条件によって異
なる処理を条件付き分岐命令を用いずに行うことができ
るため、処理に要するサイクル数を少なくでき、極めて
有用である。
【0102】また、処理を指示する命令の数を少なくす
ることができ、命令の格納するプログラムメモリの面積
を小さくすることができる。
【0103】さらに、それぞれの条件に対応する2つの
制御信号をフラグで選択することで、処理を切り替える
回路規模を小さくし、動作速度を速くし、また、さまざ
まな処理に柔軟に対応することができる。
【0104】さらに、条件によって演算結果が得られる
タイミングが変わらないので、その結果を用いる装置の
制御を容易にすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例における信号処理装置の
ブロック図
【図2】本発明の第1の実施例において、条件によって
演算の種類を変える信号処理装置のブロック図
【図3】本発明の第2の実施例における信号処理装置の
ブロック図
【図4】本発明の第2の実施例における命令のフォーマ
ットを示す図
【図5】本発明の第3の実施例において、2つの信号処
理装置を接続した構成を示す図
【符号の説明】
1 演算器 2 レジスタファイル 3 命令デコーダ 4,5,104,105,106,107,108,1
09,110 選択回路 6 制御選択回路 7 フラグ保持回路 8,9,115,116,117 反転回路 21 プログラムメモリ 102,103 データ保持回路 121,122,123 シフタ 22,23,28,13,14,141,142,14
3 制御信号 20 命令 31 演算結果 32 フラグ

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】命令を解読し、第1の制御信号と第2の制
    御信号を出力する命令解読手段と、 フラグ信号に従って、前記第1の制御信号と前記第2の
    制御信号のいずれかを選択して出力する制御信号選択手
    段と、 前記制御信号選択手段が出力する制御信号に従って、複
    数の入力データのいずれか1つを選択して出力するデー
    タ選択手段と、 前記データ選択手段が出力するデータを入力の一つとし
    て演算を行う演算手段と、を備えたことを特徴とする信
    号処理装置。
  2. 【請求項2】命令を解読し、第1の制御信号と第2の制
    御信号を出力する命令解読手段と、 フラグ信号に従って、前記第1の制御信号と前記第2の
    制御信号のいずれかを選択して出力する制御信号選択手
    段と、 前記制御信号選択手段が出力する制御信号に従って、複
    数の入力データのいずれか1つを選択して出力する複数
    のデータ選択手段と、 前記複数のデータ選択手段が出力するデータを入力とし
    て演算を行う演算手段と、を備えたことを特徴とする信
    号処理装置。
  3. 【請求項3】請求項1あるいは請求項2記載の信号処理
    装置において、 前記データ選択手段の複数の入力データのうち1つには
    定数0が入力されることを特徴とする信号処理装置。
  4. 【請求項4】請求項1あるいは請求項2記載の信号処理
    装置において、 入力データを反転して出力する反転手段を少なくとも1
    つ備え、 前記データ選択手段の複数の入力のうちのいずれかに前
    記反転手段の出力が接続され、 前記第1および第2の制御信号には前記演算手段のキャ
    リー入力情報が含まれ、 前記演算手段は前記制御信号選択手段の出力の中のキャ
    リー入力情報を用いて演算を行うことを特徴とする信号
    処理装置。
  5. 【請求項5】請求項1あるいは請求項2記載の信号処理
    装置において、 前記演算手段の演算結果フラグを格納し、前記フラグ信
    号として前記制御選択手段に出力するフラグ保持手段を
    備えたことを特徴とする信号処理装置。
  6. 【請求項6】請求項5記載の信号処理装置において、 前記演算手段の演算結果フラグは、前記演算手段の演算
    結果が負の数であるかどうかを示すフラグであることを
    特徴とする信号処理装置。
  7. 【請求項7】請求項5記載の信号処理装置において、 前記フラグ保持手段は複数の演算結果フラグを格納し、
    前記複数の演算結果フラグの1つを選択して前記フラグ
    信号として前記制御信号選択手段へ出力することを特徴
    とする信号処理装置。
  8. 【請求項8】請求項1あるいは請求項2記載の信号処理
    装置において、 前記演算手段の演算結果フラグと入力フラグを入力と
    し、前記演算結果フラグと前記入力フラグを選択して格
    納し、前記フラグ信号として前記制御選択手段に出力す
    るフラグ保持手段を備えたことを特徴とする信号処理装
    置。
  9. 【請求項9】請求項1あるいは請求項2記載の信号処理
    装置において、 前記命令は、前記フラグ信号が示す2つの条件に対する
    動作の制御を示す第1の制御フィールドと第2の制御フ
    ィールドを含み、 前記命令解読手段は、前記命令の前記第1および第2の
    制御フィールドを用いて前記第1および第2の制御信号
    を生成することを特徴とする信号処理装置。
  10. 【請求項10】命令を解読し、第1の制御信号と第2の
    制御信号を出力する命令解読手段と、 前記命令解読手段に接続され、フラグ信号に従って、前
    記第1の制御信号と前記第2の制御信号のいずれかを選
    択して出力する制御信号選択手段と、 前記制御信号選択手段が出力する制御信号に従って、複
    数の演算入力データに対して演算を行う演算手段と、を
    備えたことを特徴とする信号処理装置。
  11. 【請求項11】請求項10記載の信号処理装置におい
    て、 前記制御信号選択手段が出力する制御信号に従って、複
    数の入力データのいずれか1つを選択して出力する少な
    くとも1つのデータ選択手段を備え、 前記少なくとも1つのデータ選択手段の出力が前記演算
    手段の演算入力データに与えられることを特徴とする信
    号処理装置。
  12. 【請求項12】請求項10記載の信号処理装置におい
    て、 前記命令は、前記フラグ信号が示す2つの条件に対する
    動作の制御を示す第1の制御フィールドと第2の制御フ
    ィールドを含み、 前記命令解読手段は、前記命令の前記第1および第2の
    制御フィールドを用いて前記第1および第2の制御信号
    を生成することを特徴とする信号処理装置。
  13. 【請求項13】命令を解読し、第1の制御信号と第2の
    制御信号を出力する命令解読手段と、 前記命令解読手段に接続され、フラグ信号に従って、前
    記第1の制御信号と前記第2の制御信号のいずれかを選
    択して出力する制御信号選択手段と、 複数のデータを保持する第1のデータ保持手段と、 前記第1のデータ保持手段に接続され、前記第1のデー
    タ保持手段に格納されたデータをシフトして出力する少
    なくとも1つのシフタと、 前記シフタの出力と定数0を入力とし、前記制御信号選
    択手段が出力する制御信号に従って、前記入力データを
    選択して出力する少なくとも1つのデータ選択手段と、 前記少なくとも1つのデータ選択手段が出力するデータ
    を入力とし演算を行う演算手段と、を備えたことを特徴
    とする信号処理装置。
  14. 【請求項14】請求項13記載の信号処理装置におい
    て、 前記演算手段が出力する演算結果データを格納して出力
    する第2のデータ保持手段を備え、 前記第2のデータ保持手段の出力が直接あるいは前記少
    なくとも1つのデータ選択手段の1つを介して前記演算
    手段の入力の1つに与えられることを特徴とする信号処
    理装置。
  15. 【請求項15】請求項14記載の信号処理装置におい
    て、 前記第2のデータ保持手段はデータをシフトして出力す
    ることを特徴とする信号処理装置。
  16. 【請求項16】請求項13記載の信号処理装置におい
    て、 入力データを反転して出力する反転手段を少なくとも1
    つ備え、 前記データ選択手段の複数の入力のうちのいずれかに前
    記反転手段の出力が接続され、 前記第1および第2の制御信号には前記演算手段のキャ
    リー入力情報が含まれ、 前記演算手段は前記制御信号選択手段の出力の中のキャ
    リー入力情報を用いて演算を行うことを特徴とする信号
    処理装置。
  17. 【請求項17】請求項13記載の信号処理装置におい
    て、 前記演算手段の演算結果フラグと入力フラグを入力と
    し、前記演算結果フラグと前記入力フラグを選択して格
    納し、前記フラグ信号として前記制御選択手段に出力す
    るフラグ保持手段を備えたことを特徴とする信号処理装
    置。
  18. 【請求項18】請求項8あるいは請求項17記載の信号
    処理装置を1つの信号処理要素とし、 第1の前記信号処理要素と第2の前記信号処理要素を備
    え、 前記第2の信号処理要素の入力フラグに前記第1の信号
    処理要素の演算手段の演算結果フラグが与えられること
    を特徴とする信号処理装置。
JP8222119A 1996-08-23 1996-08-23 信号処理装置 Pending JPH1063500A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP8222119A JPH1063500A (ja) 1996-08-23 1996-08-23 信号処理装置
US08/907,953 US6047371A (en) 1996-08-23 1997-08-11 Signal processor for performing conditional operation
KR1019970040218A KR100549705B1 (ko) 1996-08-23 1997-08-22 신호처리장치
EP97114599A EP0825528A3 (en) 1996-08-23 1997-08-22 Digital signal processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8222119A JPH1063500A (ja) 1996-08-23 1996-08-23 信号処理装置

Publications (1)

Publication Number Publication Date
JPH1063500A true JPH1063500A (ja) 1998-03-06

Family

ID=16777464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8222119A Pending JPH1063500A (ja) 1996-08-23 1996-08-23 信号処理装置

Country Status (4)

Country Link
US (1) US6047371A (ja)
EP (1) EP0825528A3 (ja)
JP (1) JPH1063500A (ja)
KR (1) KR100549705B1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834338B1 (en) * 2000-02-18 2004-12-21 Texas Instruments Incorporated Microprocessor with branch-decrement instruction that provides a target and conditionally modifies a test register if the register meets a condition
JP4970793B2 (ja) * 2004-01-30 2012-07-11 株式会社カネカ 加水分解性珪素基含有オキシアルキレン重合体の製造方法およびその硬化性組成物
US7908463B2 (en) * 2007-06-26 2011-03-15 Globalfoundries Inc. Immediate and displacement extraction and decode mechanism
FR3094512A1 (fr) 2019-03-29 2020-10-02 Stmicroelectronics (Rousset) Sas Procédé d'authentification d'un processeur
FR3094513B1 (fr) 2019-03-29 2023-07-14 Proton World Int Nv Procédé d'authentification d'un processeur

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5741741A (en) * 1980-08-26 1982-03-09 Nec Corp Central arithmetic processor
JPS59148948A (ja) * 1983-02-15 1984-08-25 Nec Corp マイクロコンピユ−タ
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
JP2806524B2 (ja) * 1988-03-04 1998-09-30 日本電気株式会社 ベクトル演算命令発行制御方法
JP2535252B2 (ja) * 1990-10-17 1996-09-18 三菱電機株式会社 並列処理装置
JP2959104B2 (ja) * 1990-10-31 1999-10-06 日本電気株式会社 信号処理プロセッサ
US5404557A (en) * 1991-11-22 1995-04-04 Matsushita Electric Industrial Co., Ltd. Data processor with plural instruction execution parts for synchronized parallel processing and exception handling
KR940009920B1 (ko) * 1991-11-28 1994-10-18 주식회사금호 개량된 타이어 성형기용 고무밴드 및 그것의 제조방법
JP3055999B2 (ja) * 1992-03-16 2000-06-26 日本電気株式会社 マイクロプログラム制御装置群
FR2693571B1 (fr) * 1992-07-13 1994-09-30 Texas Instruments France Système de traitement de données dont le programme de commande comporte des instructions dépendant de paramètres d'état.
JPH0683618A (ja) * 1992-08-31 1994-03-25 Nec Corp フラグ制御回路
US5606677A (en) * 1992-11-30 1997-02-25 Texas Instruments Incorporated Packed word pair multiply operation forming output including most significant bits of product and other bits of one input
US6058473A (en) * 1993-11-30 2000-05-02 Texas Instruments Incorporated Memory store from a register pair conditional upon a selected status bit
US5581717A (en) * 1994-03-01 1996-12-03 Intel Corporation Decoding circuit and method providing immediate data for a micro-operation issued from a decoder
JP3105738B2 (ja) * 1994-06-10 2000-11-06 日本電気株式会社 情報処理装置
KR960015210A (ko) * 1994-10-28 1996-05-22 이문기 수퍼스칼라 마이크로프로세서 정수 실행 유닛의 구조
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
US5710914A (en) * 1995-12-29 1998-01-20 Atmel Corporation Digital signal processing method and system implementing pipelined read and write operations

Also Published As

Publication number Publication date
KR19980018919A (ko) 1998-06-05
US6047371A (en) 2000-04-04
EP0825528A3 (en) 1998-12-23
KR100549705B1 (ko) 2006-04-28
EP0825528A2 (en) 1998-02-25

Similar Documents

Publication Publication Date Title
US4472788A (en) Shift circuit having a plurality of cascade-connected data selectors
US4617641A (en) Operation unit for floating point data having a variable length exponent part
JP2596909B2 (ja) 最小/最大検索命令を有するデジタル処理装置
US6999985B2 (en) Single instruction multiple data processing
US6167420A (en) Multiplication method and multiplication circuit
JPH1063500A (ja) 信号処理装置
US5559730A (en) Shift operation unit and shift operation method
US20050256996A1 (en) Register read circuit using the remainders of modulo of a register number by the number of register sub-banks
JPH0546363A (ja) 除算器
JPH1091395A (ja) プロセッサ
WO2002029552A1 (en) Single instruction multiple data processing
JPH09198231A (ja) 演算処理装置
US6122651A (en) Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions
EP0223273B1 (en) A data-processing apparatus provided with a finite-state machine to perform a program jump
US6035310A (en) Method and circuit for performing a shift arithmetic right operation
JPH05274143A (ja) 複合条件処理方式
JP3144859B2 (ja) 算術論理演算装置
KR100315303B1 (ko) 디지탈 신호 처리기
JP2664750B2 (ja) 演算装置及び演算処理方法
US6470369B1 (en) Euclid mutual division arithmetic circuit and processing circuit
JP3166781B2 (ja) 加算回路
US20110066827A1 (en) Multiprocessor
KR100246472B1 (ko) 디지탈신호처리기
EP0448097A2 (en) Arithmetic shift circuit
KR100297544B1 (ko) 디지탈신호처리기