JPH01116730A - Digital signal processor - Google Patents

Digital signal processor

Info

Publication number
JPH01116730A
JPH01116730A JP27481087A JP27481087A JPH01116730A JP H01116730 A JPH01116730 A JP H01116730A JP 27481087 A JP27481087 A JP 27481087A JP 27481087 A JP27481087 A JP 27481087A JP H01116730 A JPH01116730 A JP H01116730A
Authority
JP
Japan
Prior art keywords
data
address
memory
output
input
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
JP27481087A
Other languages
Japanese (ja)
Inventor
Atsumichi Murakami
篤道 村上
Isao Uesawa
上澤 功
Masatoshi Kameyama
正俊 亀山
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP27481087A priority Critical patent/JPH01116730A/en
Priority to EP93104238A priority patent/EP0551934A2/en
Priority to EP19930104197 priority patent/EP0551933A3/en
Priority to DE3851858T priority patent/DE3851858T2/en
Priority to DE3856175T priority patent/DE3856175T2/en
Priority to EP88108755A priority patent/EP0293851B1/en
Priority to DE3856220T priority patent/DE3856220T2/en
Priority to EP93104195A priority patent/EP0551931B1/en
Priority to DE3856219T priority patent/DE3856219T2/en
Priority to EP93104194A priority patent/EP0554917B1/en
Priority to EP93104196A priority patent/EP0551932B1/en
Priority to US07/201,208 priority patent/US5045993A/en
Priority to CA000568527A priority patent/CA1288169C/en
Publication of JPH01116730A publication Critical patent/JPH01116730A/en
Priority to US07/750,478 priority patent/US5247627A/en
Priority to US07/755,503 priority patent/US5237667A/en
Priority to US07/750,512 priority patent/US5206940A/en
Priority to US07/750,408 priority patent/US5222241A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

PURPOSE:To flexibly and easily configure a high-speed signal processing system by specifying uniquely a computing element action to various operations, combining a function code and a control code corresponding to this and composing a microinstruction code. CONSTITUTION:The title device has 5-stage structure to which a stage to read data out of a data memory to an instruction executing pipe line stage and input the data to a computing element 106 and a stage to output data from the computing element 106 and write them into the data memory or execute an accumulation or a data rounding by using an accumulator in the computing element are added, a barrel shifter, a multiplier, an arithmetic and logic unit are arranged in the same row in the computing element 106 corresponding to an execution stage in the 5 stages, a barrel shifter for regularizing is connected in the next step corresponding to a writing/accumulation stage and the output of this is made into an input to an adder for rounding/accumulation or the output of the computing element. Thus, a digital signal processing processor whose device configuration is rich in flexibility and simple can be obtained.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、主に信号系列を対象とした演算処理を実行
するディジタル信号処理プロセッサに関するものである
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a digital signal processing processor that performs arithmetic processing mainly on signal sequences.

〔従来の技術〕[Conventional technology]

第1図は9例えば昭和61年度電子通信学会通信部門全
国大会シンポジウム予稿(4810−1)に示された従
来のディジタル信号処理プロセッサであるD88P1(
Digital  5peech 81gnalPro
cessor 1  )の構成を示すブロック図であり
9図において、(1)は命令アドレスを制御するスタツ
クを内蔵したプログラム・カウンタPC,(21はマイ
クロ命令を記憶した命令マスクROM、+31はこの命
令マスクROM+21ないし外部から入力されるマイク
ロ命令をマシンサイクル毎IcI語入力するインストラ
クション・レジスタエRO0(4)はこのインストラク
ション・レジスタエRO+31へ入力されたマイクロ命
令中のデコードが必要なビットフィールドのみを入力す
るインストラクションレジスタIRI、+5)はこのイ
ンストラクションレジスタエR? 141へ入力された
マイクロ命令をデコードするインストラクションデコー
ダ、(6)はマイクロ命令を各機能部へ分配するプログ
ラムバスP−Bu8.(71はこのプログラムバフ、 
P −Bus (6)から出力されるマイクロ命令中の
即値(18ビット幅)を入力し、データバスD −Bu
g(8)へ出力するレジスタフ工、(8)は演算に伴う
データの内部転送に用いられる18ビット幅のデータバ
スD−13us、(9)はデータメモリのアドレスモー
ド指示をプログラムバスP −Bug (61から入力
するレジスタAM、[11は間接アドレス生成に使用す
るアドレスポインタ情報を保持する4WX16ビツト幅
のレジスタAD、fullは外部データーメモリのペー
ジを指定する3ビット幅のページレジスタPR,ff2
は同時に最大3つのアドレス生成が可能な9ビット幅の
アドレス算出器AAU、+13はアドレスレジスタAR
O,f141はアドレスllレジスタARI、115は
アドレスレジスタA12,118はアドレスセレクタR
AS、(171はループカウンタDo、(J棒ハプロセ
ッサの動作モードおよび状態の表示を行うステータスレ
ジスタ8R,α傷はシリアルエ10ポートSxa/″1
、Son/l(至)と外部データメモリとの間で直接デ
ータ転送を行うDMA制御部、翰は外部データメモリへ
出力する12ビット幅のアドレスを保持するアドレスレ
ジスタAR,1211は512WX1aビツトの容量を
持ち、同時Jlc2つのデータの読出し、書込が可能な
デュアルポート内部データメモリ2、P−RAM、@は
被演算入力データを保持するレジスタ・D P O、■
は演算入力データを保持するレジスタDI’ 1.勾は
12E6ビツトフオーマツトの浮動小数点乗算を行う乗
算i51FMPL、@はこの乗算器F M P L e
)4)の結果を保持するレジスタP、@はセレクタ、■
はセレクタ、(至)は主に12E6ビントフオーマツト
の浮動小数点演算を実行する浮動小数点算述論理演算1
FALU、@はこの浮動小数点算述論理演算15FAL
U(至)の出力を保持し、累算等に使用する4WX18
ビツトのアキュームレータAaaO〜AOC!3.ωは
外部データメモリに対する読出し/−it込みデータを
一時保持する目的でデータバスD −Bus (8)に
接続されたデータレジスタDR,Onは外部データメモ
リの読出し/書込制御回路R/ W Cont 、 e
33は外部デバイスとの間で全2重2チヤンネルのシリ
アルデータ転送を実行するシリアルエ10ポートS工0
/1 、800/1 、 @は割込制御回路工nt。
Figure 1 shows the conventional digital signal processing processor D88P1 (4810-1) shown in the 1986 IEICE National Conference Symposium (4810-1).
Digital 5peech 81gnalPro
In Figure 9, (1) is a program counter PC with a built-in stack for controlling instruction addresses, (21 is an instruction mask ROM that stores microinstructions, and +31 is this instruction mask). The instruction register RO0 (4), which inputs IcI words input from the ROM+21 or the outside, every machine cycle, is an instruction register that inputs only the bit fields that need to be decoded in the microinstructions input to the instruction register RO+31. IRI, +5) is this instruction register R? An instruction decoder (6) decodes the microinstructions input to the P-Bu8.141, and a program bus P-Bu8. (71 is this program buff,
The immediate value (18-bit width) in the microinstruction output from P-Bus (6) is input, and the data bus D-Bu
(8) is an 18-bit wide data bus D-13us used for internal transfer of data associated with calculations, and (9) is a program bus P-Bug that outputs data memory address mode instructions. (Register AM input from 61, [11 is a 4W x 16-bit wide register AD that holds address pointer information used for indirect address generation, full is a 3-bit wide page register PR that specifies the page of external data memory, ff2
is a 9-bit wide address calculator AAU that can generate up to three addresses at the same time, +13 is an address register AR
O, f141 is address ll register ARI, 115 is address register A12, 118 is address selector R
AS, (171 is the loop counter Do, (J bar is the status register 8R that displays the operating mode and status of the processor, α is the serial port Sxa/''1
, a DMA control unit that directly transfers data between Son/l (to) and external data memory, 1211 is an address register AR that holds a 12-bit wide address to be output to the external data memory, and 1211 is a capacity of 512W x 1a bit. Dual port internal data memory 2, P-RAM, which can read and write two types of data at the same time, @ is a register that holds operand input data, D P O, ■
is a register DI' that holds calculation input data.1. The gradient is the multiplier i51FMPL that performs floating point multiplication in 12E6-bit format, and @ is the multiplier FMPL.
) 4) The register P that holds the result, @ is the selector, ■
is a selector, and (to) is a floating-point arithmetic logical operation 1 that mainly performs floating-point operations in 12E6 bin format.
FALU, @ is this floating point arithmetic logic operation 15FAL
4WX18 which holds the output of U (to) and uses it for accumulation etc.
Bit accumulator AaaO~AOC! 3. ω is a data register DR connected to the data bus D-Bus (8) for the purpose of temporarily holding read/write data to the external data memory, and On is a read/write control circuit for the external data memory R/W Cont. , e
33 is a serial port 10 that performs full-duplex 2-channel serial data transfer with an external device.
/1, 800/1, @ is interrupt control circuit engineering nt.

Cont、 、(至)は外部データメモリバス制御回路
Bu80ont、 、(至)は内部タイミングを制御す
るクロンクYfiI御回路CL K Cant、 +(
至)はセレクタである。
Cont, , (to) is the external data memory bus control circuit Bu80ont, , (to) is the clock YfiI control circuit CL K Cant, +(
) is a selector.

第8図は第7図に示したディジタル信号処理プロセッサ
DB8P1のマイクロ命令実行シーケンスを説明したタ
イムチャートであり6図において。
FIG. 8 is a time chart illustrating the microinstruction execution sequence of the digital signal processing processor DB8P1 shown in FIG. 7;

顛は4相のクロックからなるサイクルタイミング。The main feature is cycle timing consisting of four-phase clocks.

0υはプログラムカウンタP O11)のアドレス出力
およびインストラクションレジスタI RQ +31へ
のマイクロ命令入力のステージを示すフェッチステージ
タイミング、冊はインストラクションレジスタエR1t
4)へ入力されたマイクロ命令をインストラクションデ
コーダ(5)でデコードするデコードステージ・タイミ
ング、伽3はデコードステージにおいてアドレス算出器
AAtT(12の更新を行うタイミング、@4は浮動小
数点乗算!PM P L+241が動作を行うタイミン
グ、09は浮動小数点算術論理演算器FALσ(至)が
演算を行うタイミング、咽はデータバスD −Bus 
(8)を経由してレジスタ間のデータ転送を行うタイミ
ング、包ηはデータレジスタDRI31を介して外部デ
ータメモリへデータの読出し/書込みを行うタイミング
である。
0υ is the fetch stage timing indicating the stage of the address output of the program counter PO11) and the microinstruction input to the instruction register I RQ +31, and the book is the instruction register R1t.
4) is the decode stage timing when the instruction decoder (5) decodes the microinstruction input to the instruction decoder (5). 3 is the timing for updating the address calculator AAtT (12) in the decode stage; @4 is the floating point multiplication! PM P L + 241 09 is the timing when the floating point arithmetic and logic unit FALσ (to) performs the operation, and the third is the data bus D-Bus.
The timing at which data is transferred between registers via (8) is the timing at which data is read/written to the external data memory via the data register DRI31.

第9図は第1図に示したディジタル信号処理プロセッサ
DE18P1の4グル一プ忙分類された1語当り32ビ
ット幅で構成されるマイクロ命令の構造を示す図であり
、鏝は命令動作手順を制御するシーケンス命令、  (
51)  はステータスレジスタ8R(lη、アドレス
算出WAAU[12,DMA制御部(Igのモード設定
・初期値設定を示すモード命令。
FIG. 9 is a diagram showing the structure of a microinstruction consisting of 32 bits per word classified into four groups of the digital signal processing processor DE18P1 shown in FIG. Sequence instructions to control, (
51) Status register 8R (lη, address calculation WAAU [12, DMA control unit (mode command indicating Ig mode setting/initial value setting).

(52)は主に浮動小数点算術論理演算器FALU@に
対する実行とそれに伴う並列データ転送を制御する演算
命令、  (55)  は任意のレジスタないしデータ
メモリへ即値ロードを実行するロード命令である。
(52) is an arithmetic instruction that mainly controls execution on the floating point arithmetic and logic unit FALU@ and associated parallel data transfer, and (55) is a load instruction that executes an immediate value load to any register or data memory.

次に動作について説明する。以下、簡単のために各部の
名称は前記説明中で用いた略称を用いるものとする。
Next, the operation will be explained. Hereinafter, for the sake of simplicity, the abbreviations used in the above description will be used for the names of each part.

先ず、第1図に基づき全体の概略動作を説明する。本信
号処理プロセッサはP −Bus (6)とD −腕θ
(8)が分離された構成を持ち、工RO(31へのマイ
クロ命令入力、  P −Bus (61を介したマイ
クロ命令の転送、インストラクションデコーダ(5)に
よるマイクロ命令のデコード、  D−Bus(8)、
  IPMPL+241.  FALUfi等による命
令の実行をパイプライン処理によって並列に処理を行う
。ここで、  D −Bus (8)、  2 P−R
A M(211を始めとする各実行二二ントは全てレジ
スタベース、すなわち、入力と出力は全てレジスタに接
続された形式となる。このレジスタへのアクセスタイミ
ングは、マシンサイクルの前縁で出力し、マシンサイク
ルの後縁でレジスタヘセットが行われる。すなわち、実
際(処理されるデータは同一マイクロ命令によってレジ
スタへセットされた内容ではなく、1以上前のマイクロ
命令でレジスタへセットされた内容となる。
First, the overall general operation will be explained based on FIG. This signal processing processor uses P-Bus (6) and D-arm θ
(8) has a separate configuration, micro-instruction input to the engineering RO (31), micro-instruction transfer via P-Bus (61), micro-instruction decoding by the instruction decoder (5), and D-Bus (8). ),
IPMPL+241. Instructions such as FALUfi are executed in parallel by pipeline processing. Here, D-Bus (8), 2 P-R
All execution units including A M (211) are register-based, that is, all inputs and outputs are connected to registers.The access timing to this register is such that the output is output at the leading edge of the machine cycle. , the register is set at the trailing edge of the machine cycle.In other words, the data actually processed is not the content set in the register by the same microinstruction, but the content set in the register by one or more previous microinstructions. Become.

これを、遅延動作(デイレード動作)と呼び、レジスタ
で演算部内の各部を区切ることで各部を並列に動作させ
ることが可能となる。例えば、  FMPLQ4は本プ
ロセッサではマシンサイクル毎に1回浮動小数点乗算を
常に実行している。ここへ演算データを入力する場合に
は、先ず1つ前のマイクロ命令で:opocc、npt
@ヘデータをセットし。
This is called a delayed operation, and by separating each section in the arithmetic unit with registers, it is possible to operate each section in parallel. For example, FMPLQ4 always performs a floating point multiplication once per machine cycle in this processor. When inputting calculation data here, first use the previous microinstruction: opocc, npt
Set the data to @.

1つ以上後のマイクロ命令でP(ハ)にセットされて 
It is set to P (c) by one or more subsequent microinstructions.
.

いる内容を取り出すことで乗算結果を得る。この内容を
取シ出すまでの間DPOI2’3.DPI(至)、P(
5)によってデータを保持することから1本来はデータ
入力9乗算、データ出力と3マイクロ命令を必要とする
1回の乗算も、連続して処理を行う場合には9等価的に
1マイクロ命令に1回処理を行うことができる。
Obtain the multiplication result by extracting the contents. Until this content is extracted, DPOI2'3. DPI (To), P (
5) Since the data is retained by 1, a single multiplication that would normally require 9 multiplications for data input, 3 data outputs, and 3 microinstructions becomes 9 equivalently 1 microinstruction when processing is performed continuously. It can be processed once.

DEII9P1ではFMPL24とFAI+U(至)が
P(至)を介して接続され、FALU(至)はAC!G
o〜ACC3のでP2!2の内容を累算可能な様構成さ
れている。
In DEII9P1, FMPL24 and FAI+U (to) are connected via P (to), and FALU (to) is connected to AC! G
o~ACC3 is configured so that the contents of P2!2 can be accumulated.

これは、  Louis Eichirm  がI!f
lectronics1919年12月20日号で発表
した論文”Packinga signal proc
essor onto a single digit
alboa(1″に示した乗算器−累算器の1対と同様
This is Louis Eichirm's I! f
A paper published in the December 20, 1919 issue of electronics “Packing signal proc”
essor onto a single digit
alboa (similar to the multiplier-accumulator pair shown in 1″).

フィルタリング*  FI T (Faat Four
ier Transform)のバラフライ演算等で多
用される積和演算の1項を1マシンサイクルで実行する
ためのものである。
Filtering* FI T (Faat Four
This is for executing one term of the sum-of-products operation in one machine cycle, which is often used in the butterfly operation of the IER Transform.

積和は例えば以下の式に従う。For example, the sum of products follows the following formula.

本プロセッサにおいては1項の積和はDPO@。In this processor, the sum of products of one term is DPO@.

DPI(ハ)へのデータ入力、IFMPLG4)での乗
算。
Data input to DPI (c), multiplication by IFMPLG4).

FAI、UF4)mでP(至)ヘセットされ九乗算結果
とACOO〜AC3C5@の累算の3マイクロ命令を必
要とする。もちろん連続して処理を行う場合には1等価
的に1マイクロ命令に1回、1項の積和を実現すること
ができる。当然、この様に1マイクロ命令に1回、1項
の積和を実行するためには1マイクロ命令毎に前出の式
中のail  biに相当する2つの入力データをDP
E@、DPI(ハ)へ入力することが必要となる。その
ため、2P−RAM211VCよってこの2つの入力デ
ータを供給可能とし。
FAI, UF4) m is set to P (to) and requires 3 microinstructions for the nine multiplication results and the accumulation of ACOO to AC3C5@. Of course, when processing is performed continuously, it is possible to equivalently implement the sum of products of one term once per one microinstruction. Naturally, in order to execute the sum of products of one term once per microinstruction in this way, two input data corresponding to ail bi in the above formula must be input to the DP for each microinstruction.
It is necessary to input to E@ and DPI (c). Therefore, these two input data can be supplied by the 2P-RAM 211VC.

D −Bus t8)へのバス競合を避けるため、2P
−RA M 211から読出されたデータはD −Bu
s t8)を介さずにDPO(2’3.DPI(至)へ
直接転送するパスを備える。主としてこの2P−RAM
211の2入力データのアドレス指定のため、AAt7
(IJはARO(13)。
In order to avoid bus contention for D-Bus t8), 2P
-The data read from RAM 211 is D-Bu
Provides a path for direct transfer to the DPO (2'3.DPI (to)) without going through the
In order to specify the address of 2 input data of 211, AAt7
(IJ is ARO (13).

AR1114)、AR21L51を介して出力される9
ピント幅のアドレスデータ中の2つを選択して出力する
手段を備える。こ0AAUu3は2P−RAMCJII
からの2入力データアドレスとDRC3f)、AR■を
介した外部データメモリへの1出力デ一タアドレス場合
にのみ最高3つのアドレスを同時に指定できる様に構成
される。各々のアドレス指定は全て。
AR1114), 9 output via AR21L51
Means for selecting and outputting two of the focus width address data is provided. This 0AAUu3 is 2P-RAMCJII
It is configured such that a maximum of three addresses can be specified simultaneously only in the case of two input data addresses from DRC3f) and one output data address to external data memory via AR. Each address specification is all.

A A U [2の内部に設定されたアドレスポインタ
を用いたいわゆる間接アドレス指定方式のみとなってお
り、ム1o(13に対してはインクリメント、モジュロ
、ビットリバース、リピート、インクリメントベースア
ドレス、インクリメント値の更新等が可能であL他のA
Ri4.AR21Liは単純なインクリメントのみが可
能となっている。AAUα2は9ピント自然2進形式で
のみアドレス演算が可能であシ、外部データメモリアド
レス12ビットを指定する時は、この9ビツトにPRl
lllで指示される3ピントのメモリページ指定とあわ
せて12ビツトとする。
AA It is possible to update L other A
Ri4. AR21Li is only capable of simple increment. AAUα2 is capable of address calculation only in 9-pin natural binary format, and when specifying a 12-bit external data memory address, PRl is added to these 9 bits.
Together with the 3-pin memory page designation specified by ll, the total is 12 bits.

一万、IFMPLt241.FALU(2)は12E6
の正規化浮動小数点形式で演算を実行するため、2P−
RAMell、DPO■、DPI(ハ)、P(ハ)、 
 Accg〜AOO3@、 DIt311.  D−B
uat8)、 B工(7)は全て18ビツト幅で9fi
、IFALU(至)で特別なアドレス初期値を算用する
ためには特種な演算モードを必要とする。このため、A
RO(1謙、AR1tl瘤。
10,000, IFMPLt241. FALU(2) is 12E6
To perform operations in the normalized floating point format of 2P-
RAMell, DPO ■, DPI (ha), P (ha),
Accg~AOO3@, DIt311. D-B
uat8), B work (7) are all 18 bits wide and 9fi
, IFALU(to) requires a special operation mode to use a special address initial value. For this reason, A
RO (1ken, AR1tl lump.

AR2d、AR■とAca(1〜AOC3(2)へセツ
トされる演算結果データの間のデータ互換性は無い。
There is no data compatibility between the operation result data set in AR2d, AR2 and Aca(1 to AOC3(2)).

DMA制御部+11は合計2チヤンネルの全2重シリア
ルエ10ポートS工0/1.soO/Ni3の入出力デ
ータと外部データメモリ間とのデータ転送をマイクロ命
令とは独立に実行する。DMA制御部(19によるデー
タ転送にはD −Bus (8)、 A R(21)。
The DMA control unit +11 has a total of 2 channels of full duplex serial data 10 ports S 0/1. Data transfer between input/output data of soO/Ni3 and external data memory is executed independently of microinstructions. D-Bus (8) and AR (21) are used for data transfer by the DMA control unit (19).

DRC3Gを使用するため、インストラクションデコー
ダ(5)で制御されるマイクロ命令動作とこの内部リソ
ースの競合が生じる危険がある。
Since DRC3G is used, there is a risk that this internal resource will conflict with the microinstruction operation controlled by the instruction decoder (5).

これを回避する目的でDMA制御部α9によるデータ転
送の際には1ワードにつき、6マシンサイクルの間イン
ストラクションデコーダ(5)を休止し。
In order to avoid this, the instruction decoder (5) is paused for 6 machine cycles for each word during data transfer by the DMA control unit α9.

マイクロ命令による動作を止める。Stops actions caused by microinstructions.

以上f:まとめると、DBSPlはマイクロ命令実行時
に1マイクロ命令内で以下の動作を並列に実行すること
が可能である。
Above f: In summary, DBSP1 can execute the following operations in parallel within one microinstruction when executing a microinstruction.

■ A A U 03による最大3種の9ビツトアドレ
ス演算。
■ Up to three types of 9-bit address operations using AAU03.

■ FMPLeJ4による12E6の浮動小数点乗算O ■ FALU(2)による1 2FX6の浮動小数点演
算。
■ 12E6 floating point multiplication by FMPLeJ4 ■ 12FX6 floating point operation by FALU(2).

■ 2P−RAMc!11とD −Hue (81,D
 Rfiを介した外部データメモリ間でのデータ転送。
■ 2P-RAMc! 11 and D -Hue (81,D
Data transfer between external data memories via RFI.

■ 2チヤンネルの全2重シリアルエ10ポートS工0
/1.Son/ICRとD −Hue (8)IDRC
31を介した外部データメモリ間のDMAデータ転送。
■ 2 channels full duplex serial interface 10 ports S 0
/1. Son/ICR and D-Hue (8) IDRC
DMA data transfer between external data memories via 31.

次に第8図に基づき、DBSPlのマイクロ命令実行タ
イミングについて説明する。DBSPlのマシンサイク
ル+41は1マシンサイクルを4つに分割しfcPO〜
P3の4相のタイミングによって動作し、1マシンサイ
クルのサイクルタイムは公称50 naec  と高速
である。このため、1マシンサイクル内で命令マスクR
OM +21からのマイクロ命令読出し、インストラク
ションデコーダ(5)によるマイクロ命令のデコード、
  FMPLCI!41.  FAI、U(至)等の内
部リソースによる命令の実行の3つの動作を行うことは
実状では困難である。そこで。
Next, the microinstruction execution timing of DBSP1 will be explained based on FIG. DBSPl machine cycle +41 divides one machine cycle into four, fcPO~
It operates according to the four-phase timing of P3, and the cycle time of one machine cycle is nominally 50 naec, which is fast. Therefore, the instruction mask R within one machine cycle
Reading of microinstructions from OM+21, decoding of microinstructions by instruction decoder (5),
FMPLCI! 41. In reality, it is difficult to perform the three operations of executing instructions using internal resources such as FAI and U (To). Therefore.

DB8P1ではこの3つを各々1マシンサイクル毎のス
テージに分割し、3段パイプラインを構成して高速動作
を実現している。この3段パイプラインの各ステージで
は以下のことが実行される。
In the DB8P1, these three stages are each divided into stages of one machine cycle each, forming a three-stage pipeline to realize high-speed operation. The following is performed at each stage of this three-stage pipeline.

■ フェッチ・ステージ0υ pc(1)によるマイクロ命令アドレス出力と命令マス
クROM +2)からのマイクロ命令読出し。および、
工!t O(31へマイクは命令セット。
■ Microinstruction address output by fetch stage 0υ pc(1) and microinstruction reading from instruction mask ROM +2). and,
Engineering! t O (to 31, Mike is a command set.

■ デコード・ステージゆ、(至) 工RO(3)から工It 1 (41へのマイクロ命令
転送とインストラクションデコーダ(5)Kよるマイク
ロ命令デコード。および、プログラム制御モードのセッ
ト。
■ Decode stage (to) Microinstruction transfer from Engineering RO (3) to Engineering It 1 (41) and microinstruction decoding by instruction decoder (5) K. And setting of program control mode.

工RO(31からp −bus (6)へのマイクロ命
令転送とAM+91.  ムD(Inを介したAAtT
l12Oアドレス演算。
Microinstruction transfer from RO(31 to p-bus (6) and AM+91.MUD(AAtT via In)
l12O address calculation.

■ 実行ステージ(財)、卿、■、(4ηFMPLH,
F’ALU@によるデータ演算。
■ Execution stage (goods), Lord, ■, (4ηFMPLH,
Data calculation using F'ALU@.

D −Bus (81rよるデータ転送。AR(25゜
DR(至)を介した外部データメモリ・アクセス等。
D-Bus (Data transfer via 81r. External data memory access via AR (25°DR), etc.

これKより、DB8P1は1マイクロ命令の実行に3マ
シンサイクルを必要とする。しかし、パイプライン手法
によシ等価的に1マシンサイクル毎に1マイクロ命令の
実行が可能となる。このため、命令マスクROM +2
)からマイクロ命令を読出す時点から実際に命令を実行
する時点まで2マシンサイクルの遅延を生じる。内部リ
ソースにおけるタイミング競合を完全に防止する目的で
内部バスをP −Bus +6) 、  D −Bus
 (8)に分離し、これに伴って命令マスクROM +
2)と2P−RAM(2])を分離した構成を取るのは
このためによる。しかし1分校命令等では実際に分枝す
るのは■のデコードステージであるためその時点で工R
O(3)へセット中のマイクロ命令は実行されてしまう
。すなわち。
From this K, DB8P1 requires three machine cycles to execute one microinstruction. However, the pipeline method enables equivalent execution of one microinstruction per machine cycle. Therefore, the instruction mask ROM +2
) There is a delay of two machine cycles from the time the microinstruction is read from the microinstruction to the time the instruction is actually executed. In order to completely prevent timing conflicts in internal resources, internal buses are designated as P-Bus +6) and D-Bus.
(8), and along with this, the instruction mask ROM +
This is the reason why the configuration in which the 2) and 2P-RAM (2]) are separated is adopted. However, in the case of a one-branch instruction, etc., the actual branching occurs at the decoding stage (■), so at that point, the
The microinstruction being set to O(3) will be executed. Namely.

分枝命令の次に書かれた命令は無条件に実行されてしま
うこととなる。これを避ける目的でDBSPlでは分校
命令を実行中は次の命令をN OP(ノーオペレーショ
ン)へ自動的に変更することとしている。この機能はマ
イクロ命令記述の簡単化をねらったものであるが分枝動
作では1マシンサイクルのロスが生じ、更K D −B
uθ(8)を用いた間接分枝では2マシンサイクルのロ
スを生じる。一般に命令記述の頭序を考慮することによ
って約80%程度の無条件分枝は次命令を実行しても問
題が生ぜず、前記ロスの回避は可能であるがDSI9P
1ではこれが不可能である。
The instruction written after the branch instruction will be executed unconditionally. To avoid this, DBSPl automatically changes the next instruction to NOP (no operation) while a branch instruction is being executed. Although this function is aimed at simplifying the microinstruction description, branching operations result in a loss of one machine cycle, and the
Indirect branching using uθ(8) results in a loss of two machine cycles. Generally speaking, by considering the initial order of instruction descriptions, about 80% of unconditional branches will not cause any problems even if the next instruction is executed, and the above loss can be avoided, but DSI9P
1, this is not possible.

次に、第9図に基づきDB8P10マイクロ命令セット
について説明する。マイクロ命令のセットはシーケンス
、モード、演算、ロード命令の4種のみである。
Next, the DB8P10 microinstruction set will be explained based on FIG. The set of microinstructions consists of only four types: sequence, mode, operation, and load instructions.

シーケンス命令は分枝、ループ、サブルーチンコールを
制御するものであり主にP C111に対する命令を担
当する。モード命令はA A U T17Jセレクタ1
1.1,0(lη、EIRQI、DMA制御部fiIK
対する初期値およびモード設定を行う命令である。ロー
ド命令はB工(7)を介してD −Bus (13)に
接続されたレジスタに即値(18ビット幅)をロードす
る命令である。以上のマイクロ命令ではその操作対象と
なるリソースが命令動作によって一定となる。−方、演
算命令に関しては前述の並列動作可能な内部リソースの
全てを直接指示する必要がある。このため、演算命令の
ビット長が最多となjj)、  DB8P1は32ビッ
ト幅の水平マイクロ命令を使用している。ここでFMP
LC!41はフリーランとし、前述の様忙命令で直接指
示を行わない。IP A L UfJK対する動作指定
は命令で直接指示を行い2例えば以下のものがある。
Sequence instructions control branches, loops, and subroutine calls, and are mainly responsible for instructions to the PC 111. The mode command is A A U T17J selector 1
1.1,0(lη, EIRQI, DMA control unit fiIK
This is an instruction to set the initial value and mode for the . The load instruction is an instruction for loading an immediate value (18-bit width) into a register connected to the D-Bus (13) via the B bus (7). In the above microinstructions, the resource to be operated on remains constant depending on the instruction operation. - On the other hand, regarding arithmetic instructions, it is necessary to directly specify all of the internal resources that can operate in parallel. Therefore, the bit length of the arithmetic instruction is the largest (jj), and the DB8P1 uses horizontal microinstructions with a width of 32 bits. FMP here
LC! 41 is a free run and does not give direct instructions using the above-mentioned busy command. The operation specification for the IP A L UfJK is performed by directly instructing the IP A L UfJK with a command.

■ 絶対値1x1 ■ 符号相関Sign (Y)・X ■ 加算 X+Y ■ 減算 X−Y ■ 最大値MAX(X、Y) ■ 最小値M工N(X、り ■ 固定→浮動変換IPL T (X)■ 浮動→固定
変換?工X (X) ■ シフト    R1、I+1〜L8■ 論理  A
ND 、OR、EOR、NO?■ 仮数加算 XM +
 YM ■ 指数減算  xl −xE ここで問題となるのは、DI38P1では浮動小数点演
算を基本とし、論理・アドレス演算を行う場合に固定小
数点演算となる点である。前述の様に両者には互換性は
なく1例えば演算結果忙よってメモリのアドレス指定を
行う場合、FALU(至)において■の命令を実行する
必要がある。また。
■ Absolute value 1x1 ■ Sign correlation Sign (Y)・X ■ Addition X+Y ■ Subtraction X-Y ■ Maximum value MAX (X, Y) ■ Minimum value M engineering N (X, ri) ■ Fixed → floating conversion IPL T (X) ■ Floating → fixed conversion? Engineering X (X) ■ Shift R1, I+1 ~ L8 ■ Logic A
ND, OR, EOR, NO? ■ Mantissa addition XM +
YM ■Exponent subtraction xl -xE The problem here is that the DI38P1 is based on floating point arithmetic, and when performing logic/address arithmetic, it is a fixed point arithmetic. As mentioned above, there is no compatibility between the two. For example, when specifying a memory address due to busy calculation results, it is necessary to execute the instruction (2) in FALU (to). Also.

一般の信号処理では浮動小数点でデータの入出力を行う
ことはあまりしないため、デー遡入出力毎に■ないし■
の命令を実行し、データ変換を行う必要がある。
In general signal processing, floating point data input/output is rarely performed, so each data input/output is
It is necessary to execute instructions and perform data conversion.

次に問題となるのは浮動小数点データを正規化する際に
常にビットの切捨てを行うことである。
The next problem is that bits are always truncated when normalizing floating point data.

信号処理プロセッサでは演算精度が有限であるために当
然演算誤差を伴う。しかし、ビットの切捨てのみでこれ
に対応する場合、演算結果が常に絶対−値を取った場合
を考えると真値よりも小となることとなり、誤差がラン
ダム化されない。これは演算語長を拡大することで容易
に無視できる程の量とすることが可能であるが9通常の
信号処理プロセッサでは高速動作を要求されるためKこ
れには限界がある。
Since the signal processing processor has finite calculation precision, it naturally involves calculation errors. However, if this is handled only by truncating bits, and considering the case where the operation result always takes an absolute value, it will be smaller than the true value, and the error will not be randomized. This can be easily reduced to a negligible amount by enlarging the operation word length, but there is a limit to this since ordinary signal processing processors are required to operate at high speed.

この様な問題は特にエエR型ディジタルフィルタ(巡回
型)、フレーム間処理を行う画像信号処理では無視でき
ず、D8EIP1においては処理結果を論理演算命令等
によって丸め(四捨五入)することが必要となる。更に
、一般の信号処理アルゴリズムでは演算精度が単位処理
毎に種々規定されることが多く、その精度は必ずしも信
号処理プ・ ロセッサの演算語長とは一致しない。この
場合には単位処理毎に演算データのフォーマット変換を
FALUI21を用いてくシ返すこととなる。
Such problems cannot be ignored, especially in image signal processing that performs AE-R type digital filter (cyclic type) and inter-frame processing, and in D8EIP1, it is necessary to round (round off) the processing result using logical operation instructions, etc. . Furthermore, in general signal processing algorithms, calculation accuracy is often specified in various ways for each unit of processing, and the accuracy does not necessarily match the calculation word length of the signal processing processor. In this case, the format conversion of the calculation data is performed using the FALUI 21 for each unit process.

次に問題となるのは、DB8P1では高速処理可能な演
算が前述の積和演算のみに限定されることである。これ
は旧来の代表的な信号処理アルゴリズムであるFPT、
F工Rフィルタでは十分な例えば以下の式で表わされる
もの等も高速処理することが要求される。
The next problem is that the operations that can be processed at high speed in the DB8P1 are limited to the above-mentioned sum-of-products operations. This is FPT, which is a typical old signal processing algorithm.
The F-engine R filter is required to process at high speed, for example, the one expressed by the following equation.

Σ 1a1−’b1 l この様な演算はDB8P1ではサポートできず。Σ 1a1-'b1 l Such operations cannot be supported by DB8P1.

全て単一の四則演算に分解して処理する必要があるため
1項の算出に3積の別々の演算を実行しなくてはならな
い。この時、1項毎に上式の結果を算出すると遅延のた
61項当り3X3=9命令を必要とし、処理多重度が極
度に低下する。もちろん2P−RAM+211を使用し
て中間結果をセーブすることで差分十自乗累算という分
類によって多重度を上げることができるが、限られたデ
ータメモリ空間を有効に利用することが困難となり、多
重のデータを処理できない。
Since it is necessary to decompose and process everything into a single four arithmetic operations, three separate operations must be performed to calculate one term. At this time, if the result of the above equation is calculated for each term, 3×3=9 instructions will be required for each 61 terms due to the delay, and the processing multiplicity will be extremely reduced. Of course, by using 2P-RAM+211 to save intermediate results, it is possible to increase the degree of multiplicity by classifying it as differential ten-square accumulation, but this makes it difficult to effectively utilize the limited data memory space. Unable to process data.

例えば第10図に示す様な2進木探索を行う場合を考え
る。ここで、2P−RAM+211上には入力ベクトル
Aかセットされ1図中で番号付けされた各ノードには本
状に構造化された参照ベクトルBが外部データメモリに
第11図に示す様に配置されているものとする。
For example, consider a case where a binary tree search as shown in FIG. 10 is performed. Here, the input vector A is set on the 2P-RAM+211, and the reference vector B structured in a book shape is arranged in the external data memory as shown in FIG. 11 at each node numbered in FIG. It is assumed that

入力ベクトルAと参照ベクトルBとの間の近似度を表わ
す評価関数は差分絶対値和Σ1a1−bit=  1 (A=(ai + (12) r”’+ aN) + 
B=(bl + b2 + ”、+bs)) とし、こ
の結果が最小となるものを各段で2進本状に選択し、最
終的に最も近似度の高い参照ベクトルを得るものである
。この時、各段の参照ベクトルBは現時点のノード番号
がnの場合。
The evaluation function representing the degree of approximation between input vector A and reference vector B is the sum of absolute differences Σ1a1-bit=1 (A=(ai + (12) r"'+ aN) +
B = (bl + b2 + '', +bs)), and the one with the minimum result is selected in binary form at each stage, and finally the reference vector with the highest degree of approximation is obtained. When the reference vector B of each stage is the current node number n.

2n+1と2n+2のノードの2つの参照ベクトルBと
の間で近似度を求めその結果から次段で比較する参照ベ
クトルのノード番号を算出する。この処理をDB8P1
で実現した場合は以下の命令ステップ数を必要とする。
The degree of approximation is determined between the two reference vectors B of nodes 2n+1 and 2n+2, and from the result, the node number of the reference vector to be compared in the next stage is calculated. Perform this process on DB8P1
If implemented using , the following number of instruction steps is required.

・入力データの変換 N+2ステツプ 111ベクトルの評価値算出 9B+2ステツプ ・評価値の丸め 約3ステツプ ・評価値の比較 4ヌテツプ ・次ノードの参照ベクトルアドレヌ算用約9ヌテツプ これは評価値算出に要するヌテツプの理想値を2Nヌテ
ツプとし、アドレスと入力データの変換が不要であった
場合の約9倍のステップ数となる。
・Conversion of input data N+2 steps 111 Vector evaluation value calculation 9B+2 steps ・Rounding the evaluation value Approximately 3 steps ・Comparison of evaluation values 4 steps ・About 9 steps for calculating the reference vector address of the next node This is required to calculate the evaluation value Assuming that the ideal value of the Nutep is 2N Nutep, the number of steps is approximately 9 times that of the case where conversion of addresses and input data is not required.

更に、この様な処理の場合、同一処理が連続しないこと
となるため、常に命令の前後関係を意識する必要がある
。このため、処理効率が大幅に劣化するのみならず、プ
ログラム作成が非常に煩雑となり、ソフトウェア開発の
工数上も問題となるのは明らかである。
Furthermore, in the case of such processing, the same processing does not occur consecutively, so it is necessary to always be aware of the context of the instructions. For this reason, it is clear that not only the processing efficiency is significantly degraded, but also the program creation becomes extremely complicated, which also poses a problem in terms of the number of man-hours required for software development.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

従来のディジタル信号処理プロセッサは以上の様に構成
されているので例えば以下の様な問題点があった。
Since the conventional digital signal processing processor is configured as described above, it has the following problems, for example.

啼常に命令の前後関係を意識してプログラムを作成する
必要があり、同一の命令を連続して行わない限り処理効
率が上がらない。
It is necessary to always be aware of the context of commands when creating a program, and processing efficiency cannot be improved unless the same command is executed consecutively.

・アドレスとデータのフォーマットに互換性がなく、テ
ーブルルックアップ等を行う場合等ではデータ毎にフォ
ーマット変換を行う必要がある。
- Address and data formats are not compatible, and when performing a table lookup, etc., it is necessary to perform format conversion for each data item.

・演算器が積和のみを対象とするため、これ以外の演算
では効率が極度に劣化し、プログラム作成も煩雑化する
- Since the arithmetic unit only performs sum-of-products, the efficiency of other calculations is extremely poor and programming becomes complicated.

・データの演算精度の制御が困難であり、丸めを自動的
に行うことができない。
- It is difficult to control the precision of data calculations, and rounding cannot be performed automatically.

・2入力・1出力演算全てをデータメモリから同時に読
出し/−!F込みを行うことができず例えばベクトルデ
ータの処理では効率が極度に劣化する。
・Read all 2-input/1-output operations from data memory at the same time/-! F-inclusion cannot be performed, and efficiency is extremely degraded, for example, in processing vector data.

−間接アドレスのモード指定が命令中で即時にできず、
アドレスのモード変更を行う毎に処理を中断する必要が
ある。
- Indirect address mode cannot be specified immediately in an instruction;
It is necessary to interrupt processing every time the address mode is changed.

この発明は上記のような問題点を解消するためだなされ
たもので、以下の点を実現した柔軟性に富み、簡易な装
置開成のディジタル信号処理プロセッサを得ることを目
的とする。
The present invention has been made to solve the above-mentioned problems, and an object thereof is to obtain a digital signal processing processor that is highly flexible and easy to implement, and that achieves the following points.

・命令の前後関係を意識せず、同一演算のくシ返しが少
い処理でも効率が低下しない。
・Efficiency does not decrease even in processing with few repetitions of the same operation without being aware of the context of instructions.

・アドレスとデータ7オーマントに互換性を有し、高速
な探索を行う。
・Compatible with address and data 7omants and performs high-speed search.

・積和のみならず他の高度な処理をも高速処理を行う。- Processes not only sum of products but also other advanced processing at high speed.

φデータ演算時の演算精度を簡易な手段で効率良く制御
する。
To efficiently control calculation accuracy during φ data calculation by a simple means.

・演算器へのベクトルデータの高速入出力。・High-speed input/output of vector data to arithmetic units.

・柔軟性の高いアドレッシング方法。- Highly flexible addressing method.

〔問題点を解決するための手段〕[Means for solving problems]

この発明に係るディジタル信号処理プロセッサは、命令
実行パイプラインステージにデータメモリからデータを
読出し演算器へデータを入力するステージと、演算器か
らデータを出力しデータメモリへ書込みを行うか演算器
中の累算器を用いて累算ま念はデータ丸めを行うステー
ジを加えた5ステージ構成とし、52テージ中の実行ス
テージに対応して演算器中にバレルシフタ、乗算器、算
術論理演算器を同列に配置し、書込/累算ステージに対
応してこれらの次段忙正規化用バレルシフタを接続しこ
の出力を丸め/累算用加算器への入力ないし演算器の出
力とするとともに、内部データメモリを2面の2ポート
メモリで構成し各面の1つの読出しポートを対応する演
算器の2本の入力バスへ接続し、他方の読出し/書込み
ポートを演W、器の1本の出力バスないしDMA転送用
バスに接続し、命令実行ステージに対応して演算器に対
する2入力1出力のデータメモリアドレスを2次元的に
並列生成を行うアドレス生成部と、内部データメモリと
外部データメモリ間でDMAバスを用いて2次元的なデ
ータ転送うI) M A IJ御部を設け、このアドレ
ス生成部、DMAIJ御部と演算部のデータ・フォーマ
ットに互換性を有する様に構成したものである。
The digital signal processing processor according to the present invention includes a stage for reading data from a data memory and inputting data to an arithmetic unit in an instruction execution pipeline stage, and a stage for outputting data from the arithmetic unit and writing it to the data memory. Accumulation using an accumulator has a 5-stage configuration including a stage for data rounding, and a barrel shifter, multiplier, and arithmetic logic unit are placed in the same line in the arithmetic unit corresponding to the execution stage of the 52 stages. These next-stage busy normalization barrel shifters are connected in correspondence with the write/accumulation stage, and the output is used as an input to the rounding/accumulation adder or as an output of the arithmetic unit, and is also used as an internal data memory. consists of a 2-port memory on two sides, one readout port on each side is connected to the two input buses of the corresponding arithmetic unit, and the other read/write port is connected to the output bus or one output bus of the unit. An address generation unit that is connected to the DMA transfer bus and generates 2-input 1-output data memory addresses for the arithmetic unit in parallel two-dimensionally corresponding to the instruction execution stage, and a DMA transfer unit between the internal data memory and the external data memory. A MA IJ control section for two-dimensional data transfer using a bus is provided, and the data formats of the address generation section, DMAIJ control section, and arithmetic section are compatible.

また、この発明に係るディジタル信号処理プロセッサは
9種々の演算だ対する演算器動作を1意に特定し、これ
に対応する機能コードと前記正規化用バレルシフタ、2
入力、1出力に対する2ソースと1デステイネーシヨン
制御コードを組合せてマイクロ命令コードを構成したも
のである。
Further, the digital signal processing processor according to the present invention uniquely specifies the operation of the arithmetic unit for nine various operations, and the function code corresponding to this and the normalization barrel shifter;
A microinstruction code is constructed by combining two sources and one destination control code for input and one output.

〔作用〕[Effect]

この発明における命令実行パイプラインステージは遅延
動作を考慮したマイクロ命令の記述をほぼ不要とし、同
一命令のくり返し処理が少い場合でも高効率処理が可能
である。
The instruction execution pipeline stage according to the present invention substantially eliminates the need to write microinstructions in consideration of delayed operations, and enables highly efficient processing even when the same instruction is not repeatedly processed.

この発明における演算部は積和、差分絶対値和。The calculation section in this invention is a sum of products and a sum of absolute differences.

差分自乗和の1項の計算とデータの桁調整・および丸め
処理を等価的に1マシンサイクルで実行する。更に、こ
の発明における内部データメモリとバス構造は演算部に
対する2入力・1田方のデータ転送を演算と並列に行う
ものでアシ、これと2次元的アドレス生成を行うアドレ
ス生成器との組合せによシベクトルデータの演算を効率
良く処理する。
The calculation of one term of the sum of squared differences, data digit adjustment, and rounding processing are equivalently executed in one machine cycle. Furthermore, the internal data memory and bus structure in this invention performs two-input/one-way data transfer to the calculation unit in parallel with the calculation, and by combining this with an address generator that generates two-dimensional addresses, To efficiently process calculations on sivector data.

この発明におけるアドレス生成器のデータフォーマット
を演算器のデータフォーマットと互換性を有するととに
より9例えばテーブル・ルックアップ、辞書の参照等の
処理においてデータ変換が不要となる。
By making the data format of the address generator in the present invention compatible with the data format of the arithmetic unit, data conversion becomes unnecessary in processing such as table lookup and dictionary reference.

この発明におけるDMA制御部は内部演算と並列忙外部
データメモリから2次元的データ入出力を行い、演算デ
ータの入出力に要する処理時間を効果的に削減する。
The DMA control unit in this invention performs internal calculations and parallel input/output of two-dimensional data from an external data memory, effectively reducing the processing time required for inputting/outputting calculation data.

最後に、この発明におけるマイクロ命令セットは内部1
1/Vlリソースの動作の組合せを一意に指定すること
でプログラム記述の煩雑さを解消し。
Finally, the microinstruction set in this invention is an internal one.
1/Vl By uniquely specifying the combination of resource operations, the complexity of program description is eliminated.

各マイクロ命令毎にデータの桁数・8よびソース。Number of data digits, 8 and source for each microinstruction.

デスティネーションのアドレス生成式を指定することで
、複雑なデータ演算の桁v4整や各種データメモリのス
キャン(走査)方法を直接制御することができる。この
ため、命令の前後関係を考慮する必要性を最小限度にお
さえることができ、プログラム記述が簡易化され、縞級
言語(例えばC言語等)で記述することが容易になる。
By specifying the destination address generation formula, it is possible to directly control the digit v4 arrangement of complex data operations and the scanning method of various data memories. Therefore, it is possible to minimize the need to consider the context of commands, simplify program description, and facilitate writing in striped language (for example, C language).

〔発明の実施例〕[Embodiments of the invention]

以下、この発明の一実施例を図について説明する。 An embodiment of the present invention will be described below with reference to the drawings.

第1図はこの発明によるディジタル信号処理プロセッサ
の概略を示すブロック図であり9図において、  (1
00)は外部拡張マイクロ命令メモリへ接続するための
外部プログラム・バス、  (101)は内部だ実装さ
れた書込み可能命令メモリwcs。
FIG. 1 is a block diagram schematically showing a digital signal processing processor according to the present invention, and in FIG. 9, (1
00) is an external program bus for connection to an external expansion microinstruction memory, and (101) is an internally implemented writable instruction memory wcs.

(102)は外部プログラム・バス(100)又は書込
可能命令メモリW (! B (101)から読出され
るマイクロ命令を入力し、命令実行パイプラインにおい
て所定の動作制御を行うシーケンス制御部、  (10
3)はデータメモリに対する2入力・1出力アドレスを
並列に生成するアドレス生成部、  (104)はこの
2入力・1出力データを並列に転送するため、に備えら
れた各々24ピツトの幅を有する3本の内部データバス
、  (105)はこの3本の内部データバス(104
)中の1つを選択し、外部データバス(111)に接続
する外部データメモリエ/F部、  (106)は3本
の内部データバス(104)に接続され、所定の演算を
行う演算部、  (107)は1本の読出しポートと1
本の読出し/書込みポートを備え、内部データバス(1
04)に接続され念内部データメモリMO。
(102) is a sequence control unit that inputs microinstructions read from the external program bus (100) or writable instruction memory W (! B (101), and performs predetermined operation control in the instruction execution pipeline; 10
3) is an address generation unit that generates 2 input/1 output addresses for the data memory in parallel, and (104) has a width of 24 pits each for transferring this 2 input/1 output data in parallel. Three internal data buses (105) are the three internal data buses (104)
) is an external data memory E/F unit that selects one of them and connects it to the external data bus (111), and (106) is an arithmetic unit that is connected to the three internal data buses (104) and performs a predetermined calculation. , (107) has one read port and one
Equipped with a book read/write port and an internal data bus (1
04) is connected to the internal data memory MO.

(108)は同様に内部データメモリMl、(109)
は外部データメモリアドレス生成器と内部データメモリ
アドレス生成器を独自に備えたDMA制御部。
(108) is similarly an internal data memory Ml, (109)
is a DMA control unit uniquely equipped with an external data memory address generator and an internal data memory address generator.

(110)は外部データバス(111)と内部データメ
モリM O(107)ないし内部データメモリM 1 
(108)との間のDMA転送を行うDMAバス、  
(111)は外部の拡張データメモIJ K接続する外
部データバス、  (112)はシーケンス制御部(1
02)へ外部からリセット信号を入力するリセット端子
、  (113)は同様に外部から割込制御信号を入力
する割込端子である。
(110) is an external data bus (111) and internal data memory M O (107) or internal data memory M 1
(108), a DMA bus that performs DMA transfer between
(111) is an external data bus connected to the external extended data memory IJK, (112) is a sequence control unit (1
02) is a reset terminal for inputting a reset signal from the outside, and (113) is an interrupt terminal for inputting an interrupt control signal from the outside.

第2図は第1図における演算部(106)の構成例を示
すブロック図であり9図において、  (120)は3
本の内部データバス(104)中の被演算データを転送
するX−バス、  (121)は同様に演算データを転
送するY−バス、  (122)は同様に出力データを
転送する2−バス、  (123)は1マシンサイクル
で入力データを所定のビット数シフト/ローテートを行
う24ビツト語長のバレルシフタB−8FT。
FIG. 2 is a block diagram showing an example of the configuration of the arithmetic unit (106) in FIG. 1. In FIG. 9, (120) is 3
An X-bus that transfers operand data in the book's internal data bus (104), a Y-bus (121) that similarly transfers operation data, a 2-bus (122) that similarly transfers output data, (123) is a 24-bit word length barrel shifter B-8FT that shifts/rotates input data by a predetermined number of bits in one machine cycle.

(−124)は1マシンサイクルで所定の算術論理演算
または差分絶対値の算出を行う24ビツト語長の算術論
理演算器A L U、  (125)は1マシンサイク
ルで24ビツトの乗算を行い47ビツトの結果を出力す
る乗算i5MPY、  (126)は算術論理演算器A
 L U (124)の量分出力を一時保持し0乗算器
M P Y (125)の自乗入力ポートへ出力するこ
とで差分自乗を算出するためのデータ・パイプラインレ
ジスタDPRO,(127)はバレルシ7りB−8IF
 T (123)の24ビット出力ま喪は算術論理演算
器A L U (124)の24ビット出力の一方を選
択し、データ・パイプラインレジスタD P R1、(
129)へ出力するマルチプレクサ、  (12B)は
乗算a MPY(125)の4Tビツト出力を一時保持
するデータ拳パイプラインレジスタDPR2,(129
)はマルチプレクサ(12υの24ビット出力を一時保
持するデータ・パイプラインレジスタD P R1、(
150)はデーターパイプラインレジスタD P R1
(129)からの24ビツトデータまたはデーターパイ
プラインレジスタD P R2(128)の41ビツト
データの一方を選択して入力し、′/!マシンサイクル
で所定の桁数調整を行った後24ビツトデータとして出
力する正規化用バレルシフタN−8FT、  (151
)はこの正規化用バレルシフタN−Elν’I’ (1
30) O24ビット出力、  (152)はワーキン
グレジスタwr(135)からの24ビット累算用出力
、  (133)は累算/丸め用加算器AU、  (1
54)はこの累算/丸め用加算器A U (153)の
24ビット結果出力、  (135)は24ビツト×8
ワード構成のワーキングレジスタWr 、  (156
)は算術論理演算l5ALUのフラグ出力、  (15
7)はこのフラグ出力(136)を条件テストするフラ
グチエツク回路、  (158)はこのフラグチエツク
回路の出力である1ビツトの真偽判定結果を順次記憶す
る24×lビツトの条件テストシフトレジスタtcsr
 、  (139)は正規化用バレルシフタN−8F 
T (150)においてL8B方向、すなわち右シフト
を指示した場合にシフトアウトされた最上位のビットを
そのまま出力する1ビツトのキャリーである。
(-124) is a 24-bit word length arithmetic and logic unit ALU that performs a predetermined arithmetic and logic operation or calculates the absolute difference value in one machine cycle, and (125) performs 24-bit multiplication in one machine cycle. Multiplication i5MPY which outputs the bit result, (126) is arithmetic logic unit A
The data pipeline register DPRO (127) is a barrel system for temporarily holding the output of the amount of L U (124) and outputting it to the square input port of the 0 multiplier MPY (125) to calculate the difference square. 7riB-8IF
Selects one of the 24-bit outputs of the arithmetic and logic unit ALU (124) to select one of the 24-bit outputs of the T (123), and selects one of the 24-bit outputs of the arithmetic logic unit ALU (124), and selects one of the 24-bit outputs of the arithmetic logic unit ALU (124),
129), (12B) is a data pipeline register DPR2, (129) which temporarily holds the 4T bit output of multiplication a MPY (125).
) is a multiplexer (data pipeline register D P R1 that temporarily holds the 24-bit output of 12υ, (
150) is the data pipeline register DPR1
Select and input either the 24-bit data from (129) or the 41-bit data from data pipeline register DPR2 (128), '/! Normalization barrel shifter N-8FT (151
) is this normalization barrel shifter N-Elν'I' (1
30) O24-bit output, (152) is the 24-bit accumulation output from working register wr (135), (133) is the accumulation/rounding adder AU, (1
54) is the 24-bit result output of this accumulation/rounding adder AU (153), and (135) is the 24-bit x 8
Word-structured working register Wr, (156
) is the flag output of the arithmetic logic operation l5ALU, (15
7) is a flag check circuit that performs a condition test on this flag output (136), and (158) is a 24×1 bit condition test shift register tcsr that sequentially stores the 1-bit truth/false judgment result that is the output of this flag check circuit.
, (139) is the normalization barrel shifter N-8F
This is a 1-bit carry that outputs the most significant bit shifted out as is when the L8B direction, that is, right shift is instructed at T (150).

第3図は第1図に示したディジタル信号処理プロセッサ
の内部データメモリと内部データバスの関係を説明する
図であり、  (140)は内部データメモリM O(
107)の読出しポートからの24ビントデータをX−
バス(120)ないしY−バス(121)O一方へ出力
するデマルチプレクサ、  (141)は内部データメ
モリM 1 (108)の読出しポートからの24ビツ
トデータをX−バス(120)ないしY−バス(121
)の一方へ出力するデマルチプレクサ。
FIG. 3 is a diagram explaining the relationship between the internal data memory and the internal data bus of the digital signal processing processor shown in FIG.
107) 24-bit data from the read port of
A demultiplexer (141) outputs 24-bit data from the read port of the internal data memory M1 (108) to one of the X-bus (120) and the Y-bus (121). (121
) Demultiplexer that outputs to one side.

(142)は2−バス(122)ないしDMAバ2 (
110)の書込みデータの一方を選択して内部データメ
モリM O(107)の読出し/書込みポートへ出力す
るマルチプレクサ、  (143)は同様に2−バス(
122)ないしDMAバス(110)の書込みデータの
一方を選択して内部データメモリM 1 (108)の
読出し/書込みポートう出力するマルチプレクサ、  
(144)は書込アドレスDアドレス(147)とDM
A制御部(109)からの内部データメモリアドレスエ
アドレス(148)を内部データメモリM O(107
)ないし内部データメモリM 1 (108)の読出し
/書込みポートのいずれかへ選択して(支)力するアド
レス用2−2セレクタ、  (145)は内部データメ
モリM O(107)の読出しポートアドレスであるS
Oエアドレス(14t5)は内部データメモリM 1 
(108)の読出しポートアドレスであるS1アドレス
、  (147)は内部データメモリM O(107)
ないし内部データメモリM 1 (108)に対する書
込みアドレス、  (148)は゛DMAバス(110
)から転送されるデータに対応する内部データメモリア
ドレスであるエアドレスである。
(142) is the 2-bus (122) or DMA bus 2 (
A multiplexer (143) selects one of the write data of the 2-bus (110) and outputs it to the read/write port of the internal data memory MO (107).
122) or a multiplexer for selecting one of the write data on the DMA bus (110) and outputting it to the read/write port of the internal data memory M1 (108);
(144) is the write address D address (147) and DM
The internal data memory address air address (148) from the A control unit (109) is transferred to the internal data memory M O (107).
) or the read/write port of the internal data memory M 1 (108). (145) is the read port address of the internal data memory M 1 (107). S is
O air address (14t5) is internal data memory M1
S1 address which is the read port address of (108), (147) is the internal data memory M O (107)
The write address (148) for the internal data memory M1 (108) is the ``DMA bus (110).
) is an air address that is an internal data memory address corresponding to the data transferred from the address.

第4図は第1図中のアドレス発生部(103)の構成を
説明する図であfi、  (150)はシーケンス制御
部(102)へ入力されたマイクロ命令中の即値で示す
ディスプレースメントデータ、  (151)は24ビ
ツト×4ワードのアドレスレジスタAR,(152)は
12ビツト×4ワードのインデックス修飾レジスタI 
X R,(153)はアドレスレジスタA R(151
)とX−バス(120)のデータ入出力バス、  (1
54)はインデックス修飾レジスタI X R(152
)とx−バス(120)のデータ入出力バス、  (1
55)は24ビツト語長のアドレス加算器、  (15
+5)は3系統独立に備えたアドレス生成i1A G 
U、  (157)は24ビツトの書込アドレスを1マ
シンサイクル遅延させる書込アドレスパイプラインレジ
スタDAPR3゜(158)は同様に書込アドレスパイ
プラインレジスタDAPR4である。
FIG. 4 is a diagram illustrating the configuration of the address generation section (103) in FIG. (151) is a 24-bit x 4-word address register AR, and (152) is a 12-bit x 4-word index modification register I.
X R, (153) is the address register A R (151
) and the data input/output bus of the X-bus (120), (1
54) is the index modification register I
) and the data input/output bus of the x-bus (120), (1
55) is a 24-bit word length address adder, (15
+5) is address generation i1A G with 3 independent systems
U, (157) is a write address pipeline register DAPR3 which delays a 24-bit write address by one machine cycle. Similarly, (158) is a write address pipeline register DAPR4.

第5図は第1図に示したディジタル信号処理プロセッサ
の5ステージで構成された命令実行パイプラインを説明
する図であり、  (160)は4相で構成されるマシ
ンサイクル、  (161)はフェッチステージ、 、
 (162)はデコードステージ、  (165)はデ
コードステージ後半のアドレス更新タイミング。
FIG. 5 is a diagram explaining the instruction execution pipeline consisting of five stages of the digital signal processing processor shown in FIG. 1. (160) is a machine cycle consisting of four phases, (161) is a stage, ,
(162) is the decode stage, and (165) is the address update timing in the second half of the decode stage.

(164)は読出しステージ、  (165)は実行ス
テージ。
(164) is a read stage, and (165) is an execution stage.

(,166)は書込/累算ステージ前半の正規化用タイ
ミング、  (167)は書込/累算ステージである。
(, 166) is the normalization timing in the first half of the write/accumulate stage, and (167) is the write/accumulate stage.

第6図は第1図に示すディジタル信号処理プロセッサの
マイクロ命令セット例の一部を示す図であり0図におい
て、  (170)はロード命令、  (171)は分
枝命令、  (172)は1ソース演算命令、  (1
75)は2ソーヌ演算命令、(17りはソース指示コー
ド。
FIG. 6 is a diagram showing a part of an example of a microinstruction set of the digital signal processing processor shown in FIG. 1. In FIG. Source operation instruction, (1
75) is 2 Saone operation instructions, and (17) is a source instruction code.

(175)はデスティネーション指示コード、  (1
7(S)はソース0指示コード、  (177)はソー
ス1指示コードである。
(175) is the destination instruction code, (1
7(S) is the source 0 instruction code, and (177) is the source 1 instruction code.

次に動作について説明する。以下、同様に各部の名称は
上記説明で用いた略称を用いる。
Next, the operation will be explained. Hereinafter, the abbreviations used in the above description will be used for the names of each part.

先ず、第1図より、全体の概略動作を説明する。First, the overall general operation will be explained with reference to FIG.

本発明によるディジタル信号処理プロセッサは従来例と
同様プログラムバス(100)とデータバス(104)
が分離された構成を持ち、シーケンス制御部(102)
へのマイクロ命令入力、データバス(104)を介した
演算部(106)のデータ入出力、アドレス生成部(1
03)による2入力I11出力データアドレスの並列生
成、内部データメモリM O(107) 、 Ml(1
08)ないし外部データメモリエ/ F (105)に
よる外部データメモリのアクセスをマイクロ命令によっ
て並列に実行する。更に、DMA制御部(109)によ
υDMAバス(110)を介しこの内部動作と独立に内
部データメモリM O(107) 、  M 1 (1
08)と外部データメモリエ/ F (105)との間
でデータのDMA転送を実行する。ここで、各実行ユニ
ットは従来例と同様にレジヌタベーヌである。本プロセ
ッサでは大半の命令で遅延動作形式としないため、命令
実行パイプライン中に、データの入出力ステージを含め
ている。従って6例えば演算部(106)において加算
を行う場合を考えると、入力。
The digital signal processing processor according to the present invention has a program bus (100) and a data bus (104) as in the conventional example.
has a separate configuration, and a sequence control unit (102)
Microinstruction input to the arithmetic unit (106) via the data bus (104), data input/output to the arithmetic unit (106), address generation unit (1
Parallel generation of 2 input I11 output data addresses by 03), internal data memory M O (107), Ml (1
08) or external data memory accesses (105) are executed in parallel by microinstructions. Furthermore, the internal data memories M O (107) and M 1 (1
08) and the external data memory/F (105). Here, each execution unit is a regina tabe, similar to the conventional example. Since most instructions in this processor do not require delayed operation, a data input/output stage is included in the instruction execution pipeline. Therefore, if we consider the case where addition is performed in the arithmetic unit (106), for example, 6 inputs.

出力も含め、1ヌテツプのマイクロ命令によって加算命
令を実行すれば良い。このため1種々の演算を組合せた
プログラムでも等価的に1マシンサイクルで1マイクロ
命令の実行が可能である。
The addition instruction, including the output, can be executed using one microinstruction. Therefore, even a program that combines various operations can equivalently execute one microinstruction in one machine cycle.

但し、命令実行結果を使用できるのは次命令の読出しス
テージとのステージ数差に対応する3命令ステツプ後か
らである。本プロセッサではこれによるロスを避ける意
味を含め結果を直ちに使用する必要のあるものの大半を
複合演算とし、1命令で対応させている。
However, the instruction execution result can be used after three instruction steps corresponding to the difference in the number of stages from the read stage of the next instruction. In this processor, most of the operations whose results need to be used immediately, including the meaning of avoiding loss due to this, are performed as compound operations, and are handled by one instruction.

このため、大半のプログラムではこのロスが発生しない
。演算部(胆り、アドレス生成部(103)のデータ語
長とフォーマットは同一であって、完全に互換性を有す
る。
Therefore, this loss does not occur in most programs. The data word length and format of the arithmetic unit (input and address generation unit (103)) are the same and are completely compatible.

このため、テーブルルックアップ、辞書参照等の処理に
おいて、演算結果をデータメモリアドレスに直接換算す
ることができる。
Therefore, in processing such as table lookup and dictionary reference, calculation results can be directly converted into data memory addresses.

次に、第2図に基づき演算部(106)の機能を説明す
る。B−B ’IP T (125)、  A r、+
 U (124)、  MPY(125)は全て1マシ
ンサイクルで動作が可能であり、命令実行パイプライン
ステージ中の実行ステージで動作する。次ステージであ
る書込/累算ステージにおいてはN−8F T (15
0)において桁数調整を行い結果(1!11)を2−バ
ス(122)へ出力しデータメモリへ書込みを行うか、
AU(135)によってvrr(135)の内容(15
2)と累算ないし丸めを行い再び結果(154)をwr
  (155)ヘセットすることができる。ここで、D
PRI(129)、DPR2(128)は各々次ステー
ジへ結果を転送するレジスタである。この構成によって
例えば複合演算は以下の様に実行される。
Next, the function of the calculation section (106) will be explained based on FIG. B-B'IP T (125), A r, +
U (124) and MPY (125) can all operate in one machine cycle, and operate in the execution stage of the instruction execution pipeline stage. In the next stage, the write/accumulate stage, N-8F T (15
Adjust the number of digits in 0) and output the result (1!11) to the 2-bus (122) and write it to the data memory, or
Contents (15) of vrr (135) by AU (135)
2) and perform accumulation or rounding and write the result (154) again.
(155) Can be set. Here, D
PRI (129) and DPR2 (128) are registers that transfer results to the next stage. With this configuration, for example, a compound operation is executed as follows.

積和: MPY(125)→DPR2(128)→N−
8IFT(150)→AU(155)→Wr(155) 差分絶対値和: ALU(124)−eMUX(127
)→DPR1(129)→N−8FT(150)→At
e(155)→Wr(155) 差分自乗相: ALU(124)→DPRO(126)
→MPY(125)→DPR2(12B)→N−EIF
T(150)→AU(155)→Wr(155)差分自
乗和に関してはD P RO(126)を用いた遅延動
作となる。しかし、この命令は大半の場合に連続して用
いられるのみで69.こればよる問題は無視できる。
Sum of products: MPY (125) → DPR2 (128) → N-
8IFT (150) → AU (155) → Wr (155) Sum of absolute differences: ALU (124) - eMUX (127
) → DPR1 (129) → N-8FT (150) → At
e (155) → Wr (155) Difference square phase: ALU (124) → DPRO (126)
→MPY(125)→DPR2(12B)→N-EIF
Regarding the sum of squared differences T(150)→AU(155)→Wr(155), a delay operation is performed using D P RO(126). However, this command is only used consecutively in most cases, and 69. This problem can be ignored.

丸めを行う場合1本プロセッサでは以下の手順による。When rounding is performed using one processor, the following procedure is used.

1  :キャリ(159) すなわち、  B−8FT(150)でシフトアウトさ
れるデータの最上位ビットをキャリとし、  AU(1
55)においてキャリ加算を実行することで丸め処理を
行える。このため、丸めた結果の出力光はwr(155
)のまに限定される。
1: Carry (159) In other words, the most significant bit of the data shifted out by B-8FT (150) is a carry, and AU (1
Rounding processing can be performed by executing carry addition in step 55). Therefore, the output light as a result of rounding is wr(155
).

次に、フラグチエツク回路(157)はAr、+σ(1
24)で比較動作を行った結果の7ラグ(156)をマ
イクロ命令で指示される条件コードに従い1条件が成立
したか否かを示す1ピントのフラグを出力し。
Next, the flag check circuit (157) runs Ar, +σ(1
24), the result of the comparison operation is 7 lags (156), and a 1-pinto flag indicating whether 1 condition is satisfied is output according to the condition code specified by the microinstruction.

tcsr  (158)へ順次セットして行く。例えば
、2入力のデータ最大値・最小値を求める場合、どちら
を選択したかの履歴を記憶できる。このtCar(15
B)にセットされた内容をMOBからLSBまで水平に
見たものが2進木探索におけるインデックスコードに相
当する。
tcsr (158) in sequence. For example, when determining the maximum and minimum data values for two inputs, a history of which one was selected can be stored. This tCar(15
The content set in B) viewed horizontally from MOB to LSB corresponds to the index code in binary tree search.

第3図に基づき内部データメモリの構成を説明する。M
 O(107) 、 M 1 (108)  は各々2
4ピツト×512ワードの2ボ一トRAMであり、演算
部(106)へ2入力データを並列に出力する場合はM
 O(107) 、 M 1(108)の読出しポート
の出力をセL/ / 夕(140) 、 (141) 
 によってx−バ、K (120) Y−++ ハヌ(
121)へ出力する。この時のアドレスはsoアドレヌ
(145)がM O(107)、  S 1アドレス(
145)がM 1 (108)へ出力される。更に、ベ
クトル加算すなわち7+7→での様にソース、デイテイ
ネーション共データメモリを対象とする場合には2−バ
、E (122)からM U X (142)ないしM
UX(145)を通じてM O(107)ないしM 1
 (108)の読出し/書込ポートからデータが書込ま
れる。すなわち、内部動作に関してはバス競合が発生し
ない。
The configuration of the internal data memory will be explained based on FIG. M
O(107) and M 1 (108) are each 2
It is a 2-bot RAM with 4 pits x 512 words, and when outputting 2 input data to the calculation section (106) in parallel, M
O(107), M1(108) read port output is set L//Y(140), (141)
By x-ba, K (120) Y-++ Hanu (
121). At this time, the addresses are so address (145), M O (107), and S1 address (
145) is output to M 1 (108). Furthermore, when both the source and destination data memories are targeted, as in vector addition, ie, 7+7→, 2-bars, E (122) to M U X (142) to M
M O (107) to M 1 through UX (145)
Data is written from the read/write port of (108). That is, no bus contention occurs regarding internal operations.

第4図に基づきアドレス発生部−(凹9の構成を説明す
る。アドレス発生部(1)はROアドレス発生!、st
発生器、Dアドレス生成を各々担当する3系統のA G
 U (156)から構成される。各AGUには24ピ
ント×4ワードのA R(151)と12ビツト×4ワ
ードの工X R(152)が備えられてお9. AR(
151)とX X R(152)とディスプレーヌメン
) (1,50)の3項の加算の組合せをアドレス加算
6 (iss)によって行うことで2次元的なアドレス
生成が可能である。
The structure of the address generation section (concave 9) will be explained based on FIG.
Three systems of A and G, each responsible for generator and D address generation.
Consists of U (156). Each AGU is equipped with a 24-pin x 4-word AR (151) and a 12-bit x 4-word AR (152).9. AR(
Two-dimensional address generation is possible by performing a combination of additions of three terms: 151), X X R (152), and displanemen (1, 50) using address addition 6 (iss).

尚、  A G [7(156)の動作はデコードステ
ージであるが書込/累算ステージとは2ステ一ジ分のス
テージ差があるため、Dアドレス(147)はDAPR
3(157) 、 DA、PH1(158)によって2
マシンサイクル遅延されてA G U (15<S)か
ら出力される。A R(151) 。
Note that the operation of A
3 (157), 2 by DA, PH1 (158)
It is delayed by machine cycles and output from AGU (15<S). A R (151).

X X R(152)は各kX−バ、2 (120) 
K接続され。
X X R (152) is each kX-bar, 2 (120)
K connected.

データフォーマットは演算部(106)と互換性を有し
ている。よって9例えばテーブルルックアップを行う場
合は直接Wr(155)  からX−バス(120)を
介してA R(151)へデータを転送し、そのままS
Oアドレス(145)ないしS1アドレヌ(146)と
してアドレス加算を行えば良い。
The data format is compatible with the arithmetic unit (106). Therefore, for example, when performing a table lookup, data is directly transferred from Wr (155) to AR (151) via the X-bus (120), and then sent directly to S
Address addition may be performed using the O address (145) to the S1 address (146).

本プロセッサの命令実行パイプラインを第5図に基づい
て説明する。命令実行パイプラインは1命令に竹垣下の
5つのステージから構成される。
The instruction execution pipeline of this processor will be explained based on FIG. The instruction execution pipeline consists of five stages for each instruction.

■ フェッチ・ステージ(161) プログラムカウンタ出力および1ワード(48ビット幅
)のマイクロ命令読出し。
■ Fetch stage (161) Program counter output and 1-word (48-bit width) microinstruction read.

■ デコードステージ マイクロ命令のデコード(162)およびアドレス加算
(165) − ■ 読出しステージ(164) データメモリまたはレジ2タ等のソースデータをX−パ
、2 (120) 、  Y−バ、K(121)経由で
読出し。
■ Decode stage Microinstruction decode (162) and address addition (165) - ■ Read stage (164) Source data such as data memory or register 2 (X-P, 2 (120), Y-B, K (121) ).

■ 実行ステージ(165) B−8FT(125) 、 ALU(124) 、 M
PY(125)による演算。
■ Execution stage (165) B-8FT (125), ALU (124), M
Calculation by PY(125).

■ 書込み/累算ステージ N−8FT(150)による正規化(166)およびA
 TT (155)による丸め/累算ないし2−バス(
122)を介したデータメモリへの書込みここで■の書
込み/累算ステージにおいてATT(155)または2
−バス(122)を介したデータ書込みのタイミング(
167)を共有するとはA U (155)の出力はW
r(155)のみにセットされ、2−バス(122)を
使用する場合、  AU(155)は使用しないという
排他的関係があるためである。
■ Normalization (166) and A by write/accumulation stage N-8FT (150)
Round/accumulate or 2-bus (by TT (155)
122) to the data memory via ATT (155) or 2 in the write/accumulate stage of
- Timing of data writing via bus (122) (
167) means that the output of A U (155) is W
This is because there is an exclusive relationship in which when only r (155) is set and 2-bus (122) is used, AU (155) is not used.

以上のシーケンスに従って命令を実行することで煩雑な
遅延を考慮したプログラムの作成がほぼ不要となり、高
級言語コンパイラを用いても効率の良いマイクロプログ
ラムの作成が可能となる。
By executing instructions according to the above sequence, it is almost unnecessary to create a program that takes complicated delays into consideration, and it is possible to create an efficient microprogram even using a high-level language compiler.

゛本プロセッサのマイクロ命令は例えば第6図に示す様
になっており、全て48ビット語長の1ワード水平型命
令セツトである。この命令セットでは同時に動作可能な
内部リソースを並列に指示するのではなく、命令対応に
各ステージのリソース動作の組合せを規定した機能コー
ドを用いる。これによって、マイクロ命令の記述が簡易
化する。
The microinstructions of this processor are as shown in FIG. 6, for example, and are all 1-word horizontal instruction sets with a word length of 48 bits. This instruction set does not instruct internal resources that can operate simultaneously in parallel, but uses function codes that define combinations of resource operations at each stage in response to instructions. This simplifies the writing of microinstructions.

この命令セットは大別してロード(170)、分枝(1
71)、  1ソーヌ演算(172)、  2ソーヌ演
算(175)があり0機能コードに対応し、ソース・デ
ヌテイネーションを制御するソースコード(174)、
デヌテイネーションコード(175)、  ソース0コ
ード(176)、  ソース1コード(177)がセッ
トされている。これらのコードは各々データメモリを対
象とする場合はアドレス発生部(105)内の対応する
A G IT (156)に対するアドレッシング指示
コードとなる。この識別はリソースコードによって行わ
れる。この命令セットによシ例えば演算命令毎にアドレ
ッシングモードの切換え、正規化シフト値等の設定を変
更でき、複雑な信号処理アルゴリズムをプログラムする
時にも最小限のロスで記述することが可能となる。
This instruction set can be broadly divided into load (170), branch (170), and branch (170).
71), 1 Saone operation (172), 2 Saone operation (175), corresponding to 0 function code, source code (174) for controlling source denutation,
The denutainment code (175), source 0 code (176), and source 1 code (177) are set. Each of these codes becomes an addressing instruction code for the corresponding AGIT (156) in the address generator (105) when the data memory is targeted. This identification is done by a resource code. With this instruction set, for example, it is possible to switch the addressing mode, change the settings of the normalization shift value, etc. for each calculation instruction, and even when programming complex signal processing algorithms, it is possible to write them with minimal loss.

例えば、従来例と同様に第10図に示す2進木探索を実
行する場合1本プロセッサでは近以度の算出を以下の様
にプログラムすれば良い。
For example, when executing the binary tree search shown in FIG. 10 as in the conventional example, with one processor, the calculation of the degree of proximity can be programmed as follows.

ap  N (aubaa  aco、scl、wrz  )  N
回くり返しSCO:入力ベクトルアドレス制御 8ei  :参照ベクトルアドレス制御Wrz :ワー
キングレジヌタ指定 これに要するマシンサイクル数はN+1サイクルであシ
、これを2回くシ返せば方向O1方向1の参照ベクトル
の近以度が求められる。次忙近以度が大のものを決足し
1次段のノード番号を求める処理は以下の様に記述でき
る。
ap N (aubaa aco, scl, wrz) N
Repeat SCO: Input vector address control 8ei: Reference vector address control Wrz: Working register designation The number of machine cycles required for this is N+1 cycles, and if you repeat this twice, you will be able to get close to the reference vector in direction O1 and direction 1. The following is required. The process of determining the node number of the first stage by determining the next busyness or the next highest node number can be described as follows.

cmp*gs  wro、  wrl  比較し、結果
をtcsr、   (158)へセット op ap mvr   WF2  、ar12 計 7命令 よって1段当りの所要マシンサイクル数は2N+9マシ
ンサイクルである。これは理想値とほぼ一致する程の高
効率処理であることが明らかであり、またプログラムも
簡潔である。
cmp*gs wro, wrl Compare and set the result to tcsr, (158) op ap mvr WF2, ar12 Since there are 7 instructions in total, the number of machine cycles required per stage is 2N+9 machine cycles. It is clear that this is a highly efficient process that almost matches the ideal value, and the program is also simple.

なお、上記実施例では語長を24ビットアドレヌ空間を
16MW(,24ピント)としたもので説明したが他の
語長およびデータフォーマットであってもよい。
In the above embodiment, the word length is 16 MW (24 pinto) in a 24-bit address space, but other word lengths and data formats may be used.

また、上記実施例では2進木探索について説明したが、
他の信号処理アルゴリズムも同様に上記実施例と同一の
効果を奏する。
Also, in the above embodiment, binary tree search was explained, but
Other signal processing algorithms also produce the same effect as the above embodiment.

ま九、上記実施例の細部の仕様は本発明の本質とは無関
係であシ9本発明の内容を限定するものではないことは
明らかである。
It is clear that the detailed specifications of the above embodiments are irrelevant to the essence of the present invention and do not limit the content of the present invention.

〔発明の効果〕〔Effect of the invention〕

以上のように、この発明によればディジタル信号処理プ
ロセッサを高度に適応化させることができるため、高速
な信号処理システムを柔軟かつ簡易に構成することがで
きる効果があシ9本発明の目的を満足する。
As described above, according to the present invention, a digital signal processing processor can be highly adapted, and therefore a high-speed signal processing system can be configured flexibly and easily. be satisfied.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図はこの発明の一実施例によるディジタル信号処理
プロセッサの構成を示すブロック図、第2図は第1図中
の演算部の構成を示す図、第3図は第1図中の内部デー
タメモリ構成を説明する図。 第4図は第1図中のアドレス生成部の構成を示す図、第
5図は第1図忙示したディジタル信号処理プロセッサの
命令実行タイミングを説明する図。 第6図は第1図に示したディジタル信号処理プロセッサ
のマイクロ命令セットの例を示す図、第7図は従来のデ
ィジタル信号処理プロセッサの一例であるDS8P1の
構成を示すブロック図、第8、図はこのDB8P1の命
令実行タイミングを説明する図、第S図はDB8P10
マイクロ命令セットを示す図、第10図は2進木探索の
動作を説明する図、第11図は第10図における参照ベ
クトルのデータメモリ内での配置例を示す図である。 (100)はプログラムバス、  (101)はWaS
。 (102)はシーケンス制御部、  (105)はアド
レス生成部、  (104)はデータバス、  (10
5)は外部データメモリ内/IF、  (106)は演
算部、  (107)はMO。 (108)はMl、(109)はDMA制御部、  (
110)はIBMムバス、  (111)は外部データ
バス、  (120)はX−バx、(12りはY−バ、
に、  (122)は2−バス。 (125)はB−8IPT、 (12りはALU、 (
125)はMPY、 (126)はDPRO,(127
)はMUX。 (128)はI)PH1,(129)はDPRI、 (
150)はN−8IFT、 (155)はAU、 (1
55)は酊、 (159)は”?−?lJ、  (14
0)はDMX、  (141)はDMX。 (142)はM U !、 (145)はM U !、
 (144)は2−2セレクタ、  (145)はSO
アドレヌ、  (14t5)はs1アドレ;x、  (
147)はD7ドl/7.  (148)はエアドレヌ
、  (150)はデイヌプレーヌメント、  (15
1)はAR,(152)はI X R,(155)はA
 R(151) ヘのX−バス(120)からの大田カ
パヌ、  (154)はエX R(152)へのX−バ
ス(120)からの入出力パヌ、  (155)はアド
レヌ加算器、  (156)はAGU。 (157)はDAPFj3. (158)はD A P
 R4、(160)はマシンサイクル、  (161)
はフェッチタイミング。 (162)はデコードタイミング、  (165)はア
ドレヌ更新タイミング、  (164)は読出しタイミ
ング。 (165)は実行タイミング、  (166)は正規化
タイミ゛   ング、  (IS7)は書込み/累算/
丸めタイミング。 (170)はロード命令、  (171)は分枝命令、
  (172)゛ は1ソーヌ演算命令の例、  (1
75)は2ソーヌ演算命令の例、  (174)はソー
ヌコード、  (175)はデヌテイネーションコード
、  (176)はソーク0コード。 (177)はソース1コードである。 尚1図中、同一符号は同一、又は相当部分を示す。
FIG. 1 is a block diagram showing the configuration of a digital signal processing processor according to an embodiment of the present invention, FIG. 2 is a diagram showing the configuration of the arithmetic unit in FIG. 1, and FIG. 3 is a diagram showing the internal data in FIG. 1. FIG. 3 is a diagram illustrating a memory configuration. FIG. 4 is a diagram showing the configuration of the address generation section in FIG. 1, and FIG. 5 is a diagram explaining the instruction execution timing of the digital signal processing processor shown in FIG. 1. 6 is a diagram showing an example of a microinstruction set of the digital signal processing processor shown in FIG. 1, FIG. 7 is a block diagram showing the configuration of DS8P1, which is an example of a conventional digital signal processing processor, and FIG. is a diagram explaining the instruction execution timing of this DB8P1, and Figure S is a diagram explaining the instruction execution timing of this DB8P1.
10 is a diagram illustrating the operation of binary tree search, and FIG. 11 is a diagram illustrating an example of the arrangement of reference vectors in the data memory in FIG. 10. (100) is the program bus, (101) is WaS
. (102) is a sequence control section, (105) is an address generation section, (104) is a data bus, (10
5) is in the external data memory/IF, (106) is the calculation unit, and (107) is MO. (108) is Ml, (109) is the DMA control unit, (
110) is an IBM bus, (111) is an external data bus, (120) is an X-bax, (12 is a Y-ba,
, (122) is 2-bus. (125) is B-8IPT, (12 is ALU, (
125) is MPY, (126) is DPRO, (127
) is MUX. (128) is I) PH1, (129) is DPRI, (
150) is N-8IFT, (155) is AU, (1
55) is drunkenness, (159) is "?-?lJ, (14)
0) is DMX, (141) is DMX. (142) is M U! , (145) is M U! ,
(144) is 2-2 selector, (145) is SO
addressnu, (14t5) is s1 address; x, (
147) is D7 dollar l/7. (148) is Airdrain, (150) is Dayne Plainement, (15
1) is AR, (152) is I X R, (155) is A
Ota Kapanu from the X-bus (120) to R (151), (154) is the input/output Panu from the X-bus (120) to E 156) is AGU. (157) is DAPFj3. (158) is D A P
R4, (160) is machine cycle, (161)
is fetch timing. (162) is the decode timing, (165) is the address update timing, and (164) is the read timing. (165) is execution timing, (166) is normalization timing, (IS7) is write/accumulate/
rounding timing. (170) is a load instruction, (171) is a branch instruction,
(172)゛ is an example of one Saone operation instruction, (1
75) is an example of a 2-Saone operation instruction, (174) is a Saone code, (175) is a denutation code, and (176) is a Soak 0 code. (177) is the source 1 code. In Figure 1, the same reference numerals indicate the same or corresponding parts.

Claims (13)

【特許請求の範囲】[Claims] (1)種々の内部動作を規定するマイクロ命令が予め記
述された命令メモリとプログラムバスを介して前記命令
メモリから1マシンサイクル毎に前記マイクロ命令を読
出す命令読出し部と、前記マイクロ命令の実行手順を1
マシンサイクル単位に命令読出し命令デコード、データ
読出し演算実行、データ書込みまたは累算の5段パイプ
ラインに分割し1マシンサイクル毎に前記マイクロ命令
を1語実行するシーケンス制御部と、前記5段パイプラ
イン中のデータ読出し段階において2項演算に対応する
2入力データを並列に転送する複数のデータ入力バスと
、前記5段パイプライン中の演算実行データ書込または
累算の2段階において前記データ入力バスから転送され
た2入力データに対し種々の単一演算ないし複合演算を
実行する演算部とこの演算部の演算結果を記憶し前記デ
ータ入力バスからデータの読出し可能な複数のワーキン
グレジスタと、前記5段パイプライン中のデータ書込み
/累算段階において前記演算部の出力データを転送する
単一あるいは複数のデータ出力バスと、前記演算部の出
力を前記ワーキングレジスタないし前記データ出力バス
の一方を選択して出力する出力制御部と、読出し専用ポ
ートと読出し書込みポートを備え同時に双方のポートか
らデータの読出しないし書込みが可能であり2項演算の
各項に対応したデータおよびその演算結果を個別かつブ
ロック単位に記憶する複数の2ポートメモリと前記デー
タ入力バスへこの複数の2ポートメモリの読出し専用ポ
ート中のいずれか1ないし複数を選択し入力データを読
出す読出し制御部と、前記データ出力バスからこの複数
の2ポートメモリの読出し/書込ポート中のいずれか1
ないし複数を選択し前記演算結果を書込み書込み制御部
と、前記複数のデータ入力バス中のいずれか1ないし複
数を選択し外部に備えたデータメモリからデータを読出
し前記データ出力バス中のいずれか1ないし複数からこ
のデータメモリへデータを書込む外部データメモリ接続
部と、前記複数の2ポートメモリ中の読出し/書込みポ
ートのいずれか1ないし複数を選択しこの外部データメ
モリ接続部とを接続する前記データ入力バスおよびデー
タ出力バスと別個に備えられた直接メモリ転送バスと、
この直接メモリ転送バスを介し、前記シーケンス制御部
による内部演算とは独立に前記外部データメモリ接続部
と2ポートメモリとの間でブロック単位にデータの入出
力を行う直接メモリ転送制御部と、前記データ入力バス
、データ出力バス、直接メモリ転送バスによる前記外部
データメモリ接続部の接続競合を調停する外部データメ
モリ競合制御部と、前記データ入力バスに接続されこれ
を用いたデータ入出力が可能なアドレスレジスタおよび
インデックス修飾レジスタを各々複数備え前記5段パイ
プライン中のデコード段階において前記2ポートメモリ
ないし外部データメモリに対する読出しおよび書込みア
ドレスを少くとも前記演算器に対する2入力1出力デー
タ分並列に生成する複数のアドレス発生器からなるアド
レス発生部と、このアドレス発生部から出力される読出
しおよび書込アドレスによつて前記2ポートメモリない
し外部データメモリ接続部中の対応するものを選択し前
記5段パイプライン中の読出しおよび書込み段階に同期
してデータメモリアドレスを指示するアドレス選択指示
部と、同様にデータ入力バスを介してデータ入出力を行
いデータ転送範囲を制御する転送アドレス制御レジメタ
を複数備え前記直接メモリ転送に使用する前記2ポート
メモリアドレスと外部データメモリ接続部に対するアド
レス双方を並列に生成する直接メモリ転送アドレス発生
部とを備えたディジタル信号処理プロセッサ。
(1) An instruction memory in which microinstructions that define various internal operations are written in advance; an instruction reading unit that reads out the microinstructions from the instruction memory every machine cycle via a program bus; step 1
a sequence control unit that executes one word of the microinstruction every machine cycle by dividing the pipeline into a five-stage pipeline for reading instructions, decoding data, reading operations, writing data, or accumulating each machine cycle; and the five-stage pipeline. a plurality of data input buses for transferring two input data corresponding to a binary operation in parallel in the data read stage in the middle, and a plurality of data input buses in the two stages of operation execution data writing or accumulation in the five-stage pipeline; an arithmetic unit that performs various single operations or compound operations on two input data transferred from the arithmetic unit; a plurality of working registers that store the arithmetic results of the arithmetic unit and are capable of reading data from the data input bus; Selecting one or more data output buses for transferring the output data of the arithmetic unit in the data write/accumulation stage of the stage pipeline, and selecting one of the working register or the data output bus for the output of the arithmetic unit. It has an output control unit that outputs data, a read-only port, and a read/write port. Data can be read or written from both ports at the same time, and the data corresponding to each term of a binary operation and its operation results can be read individually and in blocks. a read control unit that selects one or more of the read-only ports of the plurality of two-port memories and reads input data from the plurality of two-port memories to the data input bus; Any one of multiple 2-port memory read/write ports
a write control unit that selects one or more of the data input buses and writes the calculation result; a write control unit that selects one or more of the plurality of data input buses and reads data from an external data memory; and one of the data output buses that selects one or more of the data input buses or an external data memory connection unit for writing data from a plurality of the data memories into the data memory, and the external data memory connection unit for selecting one or more of the read/write ports in the plurality of two-port memories and connecting the external data memory connection unit to the external data memory connection unit. a direct memory transfer bus separate from a data input bus and a data output bus;
a direct memory transfer control unit that inputs and outputs data between the external data memory connection unit and the two-port memory in units of blocks, independently of internal calculations by the sequence control unit, via the direct memory transfer bus; an external data memory contention control unit that arbitrates connection contention between the external data memory connection unit due to a data input bus, a data output bus, and a direct memory transfer bus; A plurality of address registers and index modification registers are each provided, and read and write addresses for the two-port memory or external data memory are generated in parallel for at least two inputs and one output data for the arithmetic unit in the decoding stage of the five-stage pipeline. An address generation section consisting of a plurality of address generators and a corresponding one of the two-port memory or external data memory connection section are selected according to the read and write addresses outputted from the address generation section, and the five-stage pipe is connected to the five-stage pipe. It is equipped with an address selection instruction unit that instructs a data memory address in synchronization with the read and write stages in the line, and a plurality of transfer address control registers that similarly perform data input/output via the data input bus and control the data transfer range. A digital signal processing processor comprising: a direct memory transfer address generation section that generates in parallel both the two-port memory address used for direct memory transfer and an address for an external data memory connection.
(2)演算部およびアドレス発生部において、演算部に
おけるデータ入出力語長およびデータ形式とアドレス発
生部におけるアドレスレジスタとアドレス演算の語長お
よびデータ形式を統一し、演算データをそのままアドレ
スとすること、またはその逆を可能としたことを特徴と
した特許請求の範囲第1項記載のディジタル信号処理プ
ロセッサ。
(2) In the calculation section and address generation section, the data input/output word length and data format in the calculation section and the word length and data format of the address register and address operation in the address generation section are unified, and the calculation data is used as an address as is. 2. The digital signal processing processor according to claim 1, wherein the digital signal processing processor is capable of performing the following operations.
(3)演算部において、前記データ入力部からデータを
入力し、1マシンサイクルで入力データを任意ビット数
シフトないしローテートおよびその結果を他の入力デー
タと論理演算可能なバレルシフタと、同様に2入力デー
タに対し1マシンサイクルで少くとも加算、減算、差分
絶対値演算が可能な算術論理演算器と、同様に2入力デ
ータに対し乗算および1入力データに対して自乗演算を
1マシンサイクルで実行する乗算器と、前記バレルシフ
タ、算術論理演算器および乗算器の演算結果出力のいず
れか1つを選択して1時保持するレジスタと、このレジ
スタの出力データに対して多くとも1/2マシンサイク
ルで所定のビット数シフトを行いデータ桁数調整を行う
正規化用バレルシフタと、この正規化用バレルシフタの
出力と前記複数のワーキングレジスタ中の1つを選択し
て多くとも1/2マシンサイクルで累算を行う加算器と
、この加算器を用いない場合に多くとも1/2マシンサ
イクルで前記データ出力バスへ前記正規化用バレルシフ
タの出力を転送するデータ出力部とを備え、前記5段パ
イプライン中の実行段階において前記バレルシフタ、算
術論理演算器、乗算器のいずれか1つを動作させ種々の
算術論理演算および差分絶対値演算を実行し、実行段階
において算術論理演算器において差分を求めた結果を1
時レジスタで保持し前記乗算器において自乗を実行する
ことで1マシンサイクルで差分自乗を求め、前記5段パ
イプライン中のデータ書込みないし累算段階において実
行段階の結果を前記正規化用バレルシフタによつて桁数
調整を行つた後に累算を行う場合は前記加算器を用いて
累算し、行わない場合はそのまま前記データ出力バスへ
出力することで、1マシンサイクルで等価的に種々の算
術論理演算または積和、差分絶対値和、差分自乗和等の
複合演算を実行することを特徴とした特許請求範囲第1
項記載のディジタル信号処理プロセッサ。
(3) In the arithmetic unit, the data is inputted from the data input unit, and the input data can be shifted or rotated by an arbitrary number of bits in one machine cycle, and the result can be logically operated on other input data, as well as a 2-input barrel shifter. An arithmetic logic unit that can perform at least addition, subtraction, and absolute difference calculation on data in one machine cycle, and similarly performs multiplication on two input data and square operation on one input data in one machine cycle. a multiplier, a register that selects and temporarily holds any one of the arithmetic result output of the barrel shifter, arithmetic logic unit, and multiplier; A normalization barrel shifter that adjusts the number of data digits by shifting a predetermined number of bits, and the output of this normalization barrel shifter and one of the plurality of working registers are selected and accumulated in at most 1/2 machine cycle. and a data output section that transfers the output of the normalization barrel shifter to the data output bus in at most 1/2 machine cycle when the adder is not used, In the execution stage, any one of the barrel shifter, the arithmetic logic unit, and the multiplier is operated to execute various arithmetic and logic operations and absolute difference calculations, and in the execution stage, the result of calculating the difference in the arithmetic logic unit is calculated. 1
The difference is squared in one machine cycle by holding it in the time register and performing squaring in the multiplier, and the result of the execution stage is sent to the normalization barrel shifter in the data writing or accumulation stage in the five-stage pipeline. If accumulation is to be performed after adjusting the number of digits, the adder is used to accumulate the data, and if not, the data is directly output to the data output bus. Claim 1, characterized in that a computation or a complex computation such as a sum of products, a sum of absolute differences, a sum of squared differences, etc. is executed.
The digital signal processing processor described in .
(4)アドレス生成部における個々のアドレス生成器に
おいて、前記アドレスレジスタへ前記データ入力バスか
らアドレス発生の初期値を書込み、前記インデックス修
飾レジスタへ同様にデータ入力バスからインデックス修
飾値を書込み、これとマイクロ命令によつて指示された
相対アドレス変更量との両者と前記アドレスレジスタと
の加算を行つた後にその結果によつて前記アドレスレジ
スタの内容を更新すると同時にこれをデータメモリアド
レスとする様構成し、マイクロ命令毎に逐次そのアドレ
ス生成モードを前記アドレス生成器毎に個別に指示する
ことで複数のマイクロ命令の組合せで2次元的あるいは
各種アドレス指示を実現することを特徴とした特許請求
範囲第1項記載のディジタル信号処理プロセッサ。
(4) In each address generator in the address generation section, write an initial value for address generation from the data input bus to the address register, write an index modification value from the data input bus to the index modification register, and After adding the relative address change amount instructed by the microinstruction to the address register, the content of the address register is updated by the result, and at the same time, this is set as a data memory address. , Claim 1 is characterized in that two-dimensional or various address instructions are realized by a combination of a plurality of micro-instructions by sequentially instructing the address generation mode for each micro-instruction to each of the address generators. The digital signal processing processor described in .
(5)前記直接メモリ転送制御部と直接メモリ転送アド
レス発生部において、前記外部データメモリ接続部に対
するアドレス指示をm行×n列(m、nは正の整数)の
2次元データアドレス空間中のk行×l列(k、lは正
の整数)の矩形部分を順次指示する様構成し、前記複数
の2ポートメモリに対するアドレスを昇順に任意の開始
アドレスから指示し、このアドレス中の最上位に位置す
る単一ないし複数のビットを持つて前記複数の2ポート
メモリ中の1つを選択する様構成することで外部データ
メモリと前記2ポートメモリとの間での2次元データ転
送を行うこと、および、この直接メモリ転送の開始にあ
たつては、マイクロ命令によつて転送方向、転送データ
数を指示し、終了にあたつては前記直接メモリ転送制御
部より前記シーケンス制御部へ転送終了を通知すること
で、前記k行×l列の矩形ブロック単位に外部データメ
モリとのデータ入出力と内部演算処理を並列に行うこと
を特徴とした特許請求範囲第1項記載のディジタル信号
処理プロセッサ。
(5) In the direct memory transfer control unit and the direct memory transfer address generation unit, the address instruction for the external data memory connection unit is specified in a two-dimensional data address space of m rows by n columns (m and n are positive integers). The configuration is such that rectangular portions of k rows and l columns (k and l are positive integers) are sequentially designated, and addresses for the plurality of 2-port memories are designated in ascending order from an arbitrary starting address, and the highest order among these addresses is designated in ascending order. 2-dimensional data transfer between an external data memory and the 2-port memory by configuring the 2-port memory to select one of the 2-port memories by having one or more bits located at , and when starting this direct memory transfer, the transfer direction and the number of data to be transferred are instructed by a microinstruction, and when finishing, the direct memory transfer control section sends an instruction to the sequence control section to complete the transfer. The digital signal processing processor according to claim 1, wherein the digital signal processing processor performs data input/output with an external data memory and internal arithmetic processing in parallel in units of rectangular blocks of k rows and l columns. .
(6)シーケンス制御部において条件分枝を行う場合、
予め複数の条件をレジスタに記憶するとともに、これが
成立した場合に分枝する命令メモリアドレスを予めこの
条件に対応したレジスタに記憶し、マイクロ命令の指示
の下で前記複数の条件を並列に検査し、条件が成立した
ものの中で最も優先順位の高い条件に対応したレジスタ
中の前記命令メモリアドレスに分枝し、条件が全て不成
立の場合はこれに対応したレジスタ中の前記命令メモリ
アドレスに分枝することで複数条件による分枝を1マイ
クロ命令で実現することを特徴とした特許請求範囲第1
項記載のディジタル信号処理プロセッサ。
(6) When performing conditional branching in the sequence control unit,
A plurality of conditions are stored in a register in advance, and an instruction memory address to be branched when the condition is satisfied is stored in advance in a register corresponding to the condition, and the plurality of conditions are checked in parallel under instructions from a microinstruction. , branches to the instruction memory address in the register corresponding to the condition with the highest priority among those for which the conditions are met, and if all conditions are not met, branches to the instruction memory address in the register corresponding to this. Claim 1 is characterized in that by doing so, branching based on multiple conditions can be realized with one microinstruction.
The digital signal processing processor described in .
(7)シーケンス制御部において、前記データ入力バス
から初期値の入力、および内容の出力が可能なループカ
ウンタおよびリピートカウンタを備え、マイクロ命令に
よつてリピートを指示された場合は前記リピートカウン
タの内容から、マイクロ命令毎に1を減じこれがゼロと
なるまで同一のマイクロ命令をくり返し実行し、マイク
ロ命令によつてループを指示された場合は前記ループカ
ウンタの内容から1を減じこれがゼロでない場合にはマ
イクロ命令によつて指示された命令メモリアドレスへ分
枝し、ゼロであつた場合はこの分枝を行わずループ動作
を終了することで単一のマイクロ命令ないし複数のマイ
クロ命令を所定の回数分くり返して実行することを特徴
とした特許請求範囲第1項記載のディジタル信号処理プ
ロセッサ。
(7) The sequence control unit includes a loop counter and a repeat counter capable of inputting initial values and outputting contents from the data input bus, and when a repeat is instructed by a microinstruction, the contents of the repeat counter are , subtract 1 for each microinstruction and execute the same microinstruction repeatedly until it becomes zero, and if a loop is instructed by a microinstruction, subtract 1 from the contents of the loop counter, and if it is not zero, Branch to the instruction memory address specified by the microinstruction, and if it is zero, do not branch and terminate the loop operation to execute a single microinstruction or multiple microinstructions a predetermined number of times. The digital signal processing processor according to claim 1, wherein the digital signal processing processor is repeatedly executed.
(8)外部データメモリ接続部において、予めマイクロ
命令によつて設定されたアドレスを境界として外部デー
タメモリを2分し、この一方をアドレスする場合には1
マシンサイクルで読出し/書込みを完了する高速メモリ
とし、他方をアドレスする場合には外部からの読出し/
書込み完了信号が検知されるまで待期する低速メモリと
したことを特徴とした特許請求範囲第1項記載のディジ
タル信号処理プロセッサ。
(8) In the external data memory connection section, the external data memory is divided into two parts using the address set in advance by a microinstruction as a boundary, and when one of the two parts is to be addressed, one
It is a high-speed memory that completes reading/writing in a machine cycle, and when addressing the other side, reading/writing from outside is required.
The digital signal processing processor according to claim 1, characterized in that the low-speed memory waits until a write completion signal is detected.
(9)命令メモリにおいて、命令メモリの一部または全
部を書替え可能な構成とし、この書替え可能な命令メモ
リに対して機能処理対応にマイクロプログラムを外部装
置から書込むことで複雑かつ多種類の処理を同一のプロ
セッサで実現し、これを行わない場合には、外部に備え
た読出し専用メモリから自律的にマイクロプログラムを
書込むことを特徴とした特許請求範囲第1項記載のディ
ジタル信号処理プロセッサ。
(9) The instruction memory has a configuration in which part or all of the instruction memory can be rewritten, and microprograms corresponding to functional processing can be written from an external device to this rewritable instruction memory to perform complex and various types of processing. 2. The digital signal processing processor according to claim 1, wherein the microprogram is realized by the same processor, and when the microprogram is not executed, the microprogram is written autonomously from an externally provided read-only memory.
(10)マイクロ命令において、前記5段パイプライン
中の各段の動作を演算の種別対応に一意に規定する機能
コードと、前記アドレス生成部におけるアドレス発生部
のアドレス生成モードを1マイクロ命令毎に少くとも2
入力・1出力ないし1入力1出力のデータメモリ対応に
個別に指定する入力指定コードおよび出力指定コードと
、データ入出力の対象がデータメモリのいずれかないし
レジスタであるかを指定する資源指定コードと、前記演
算部における正規化用バレルシフタのシフトビット数と
、演算の種別によつて指示する検査条件コード、即値デ
ータ、保持条件コードとの組合せによつてマイクロ命令
セットを形成したことを特徴とした特許請求範囲第1項
記載のディジタル信号処理プロセッサ。
(10) In the microinstruction, a function code that uniquely defines the operation of each stage in the five-stage pipeline corresponding to the type of operation, and an address generation mode of the address generation unit in the address generation unit are specified for each microinstruction. at least 2
Input specification codes and output specification codes that individually specify input/1 output or 1 input/1 output data memory correspondence, and resource specification codes that specify whether the data input/output target is data memory or register. , characterized in that a microinstruction set is formed by a combination of the number of shift bits of the normalization barrel shifter in the arithmetic unit, and a test condition code, immediate value data, and holding condition code that are instructed depending on the type of operation. A digital signal processing processor according to claim 1.
(11)前記外部データメモリアドレスにおいてプロセ
ッサ間通信用アドレスを任意に割当て、このアドレスに
通信用のフアーストイン・ファーストアウトメモリない
し2ポートメモリを外部に備えて同一のプロセッサない
し他のプロセッサとの接続を行い複数のプロセッサによ
つて高速かつ複雑な処理を実現したことを特徴とした特
許請求範囲第1項記載のディジタル信号処理プロセッサ
(11) Arbitrarily allocate an address for communication between processors in the external data memory address, and provide an external first-in/first-out memory or 2-port memory for communication at this address to connect the same processor or other processors. 2. The digital signal processing processor according to claim 1, wherein high-speed and complicated processing is realized by a plurality of processors.
(12)演算部における正規化用バレルシフタおよび加
算器において、正規化用バレルシフタで最下位ビット方
向へシフトを行つて桁数調整を行う場合にシフトした結
果切捨てられる最下位からシフトビット数分のデータ中
の最上位ビットを持つてキャリないしボロービットとし
、前記加算器においてキャリないしボロー付の加算を前
記ワーキングレジスタないしゼロデータて行うことでデ
ータ丸め付累算ないしデータ丸め演算を実行するモード
を設け、このモードを用いるか否かを前記加算器に対す
るモード設定またはマイクロ命令によつて直接制御を行
うことで指示することを特徴とした特許請求範囲第1項
または第3項のいずれかに記載のディジタル信号処理プ
ロセッサ。
(12) In the normalization barrel shifter and adder in the arithmetic unit, when adjusting the number of digits by shifting toward the least significant bit in the normalization barrel shifter, the data corresponding to the number of shifted bits from the least significant bit is truncated as a result of the shift. A mode is provided in which the most significant bit of the data is set as a carry or borrow bit, and the adder performs addition with carry or borrow on the working register or zero data to perform accumulation with data rounding or data rounding operation. , wherein whether or not to use this mode is instructed by mode setting for the adder or direct control by microinstructions. Digital signal processing processor.
(13)演算部における算術論理演算器において、2入
力データの大小関係比較ないし入力データ中の特定のビ
ットを検査する動作を実行する場合にマイクロ命令中で
指示される比較結果の検査条件(例えば2入力データが
等しい等)が成立するか否かを検査し1マイクロ命令毎
に検査結果をシフトレジスタの1方向から逐次記憶し、
このシフトレジスタの水平方向から見た内容を前記デー
タ入力バスから読出し、前記マイクロ命令を複数回実行
した複数の判定結果を持つて木探索における探索履歴コ
ードないし複数条件の分枝動作に用いることを特徴とし
た特許請求範囲第1項または第3項のいずれか記載のデ
ィジタル信号処理プロセッサ。
(13) In the arithmetic logic unit in the arithmetic unit, when comparing the magnitude of two input data or inspecting a specific bit in the input data, the comparison result inspection conditions specified in the microinstruction (e.g. (2 input data are equal, etc.) is established, and the test results are sequentially stored from one direction of the shift register for each microinstruction,
The contents of this shift register viewed from the horizontal direction are read from the data input bus, and the multiple judgment results obtained by executing the microinstruction multiple times are used as a search history code in tree search or for branching operations under multiple conditions. A digital signal processing processor according to claim 1 or 3.
JP27481087A 1987-06-05 1987-10-30 Digital signal processor Pending JPH01116730A (en)

Priority Applications (17)

Application Number Priority Date Filing Date Title
JP27481087A JPH01116730A (en) 1987-10-30 1987-10-30 Digital signal processor
EP93104194A EP0554917B1 (en) 1987-06-05 1988-06-01 Digital signal processing system having two instruction memories accessed by a processor under control of host
EP93104196A EP0551932B1 (en) 1987-06-05 1988-06-01 Digital signal processor processing multi-point conditional branch operations in a pipeline mode
DE3851858T DE3851858T2 (en) 1987-06-05 1988-06-01 Digital signal processor.
DE3856175T DE3856175T2 (en) 1987-06-05 1988-06-01 Digital signal processing system in which a processor accesses two command memories under the control of a host
EP88108755A EP0293851B1 (en) 1987-06-05 1988-06-01 Digital signal processor
DE3856220T DE3856220T2 (en) 1987-06-05 1988-06-01 Digital signal processor that processes conditional multipoint jump commands in pipeline mode
EP93104195A EP0551931B1 (en) 1987-06-05 1988-06-01 Digital signal processor comprising address generator accessing data stored in bidirectional space of data memory
DE3856219T DE3856219T2 (en) 1987-06-05 1988-06-01 Digital signal processor with address generator for accessing data from a two-way area of a data memory
EP93104238A EP0551934A2 (en) 1987-06-05 1988-06-01 Digital signal processor
EP19930104197 EP0551933A3 (en) 1987-06-05 1988-06-01 Digital signal processor
US07/201,208 US5045993A (en) 1987-06-05 1988-06-03 Digital signal processor
CA000568527A CA1288169C (en) 1987-06-05 1988-06-03 Digital signal processor
US07/750,478 US5247627A (en) 1987-06-05 1991-08-27 Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
US07/755,503 US5237667A (en) 1987-06-05 1991-08-27 Digital signal processor system having host processor for writing instructions into internal processor memory
US07/750,512 US5206940A (en) 1987-06-05 1991-08-27 Address control and generating system for digital signal-processor
US07/750,408 US5222241A (en) 1987-06-05 1991-08-27 Digital signal processor having duplex working registers for switching to standby state during interrupt processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27481087A JPH01116730A (en) 1987-10-30 1987-10-30 Digital signal processor

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP6258084A Division JPH07168713A (en) 1994-10-24 1994-10-24 Digital signal processor
JP6258083A Division JPH07182157A (en) 1994-10-24 1994-10-24 Digital signal processor

Publications (1)

Publication Number Publication Date
JPH01116730A true JPH01116730A (en) 1989-05-09

Family

ID=17546879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27481087A Pending JPH01116730A (en) 1987-06-05 1987-10-30 Digital signal processor

Country Status (1)

Country Link
JP (1) JPH01116730A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0377168A (en) * 1989-08-19 1991-04-02 Mitsubishi Electric Corp Signal processor
JPH0498572A (en) * 1990-08-17 1992-03-31 Mitsubishi Electric Corp Digital signal processing system
JPH0667876A (en) * 1992-08-13 1994-03-11 Yamaha Corp Digital signal processor
US6014683A (en) * 1996-12-20 2000-01-11 Nec Corporation Arithmetic operation system for arithmetically operating a first operand having an actual point and a second operand having no actual point
JP2009514097A (en) * 2005-10-26 2009-04-02 アナログ デバイシーズ インク Improved pipelined digital signal processor
US9383994B2 (en) 2011-02-15 2016-07-05 Nec Corporation Co-processor for complex arithmetic processing, and processor system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5537651A (en) * 1978-09-07 1980-03-15 Matsushita Electric Ind Co Ltd Microcomputer circuit
JPS5729150A (en) * 1980-07-30 1982-02-17 Toshiba Corp Method and device for arithmetic control

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5537651A (en) * 1978-09-07 1980-03-15 Matsushita Electric Ind Co Ltd Microcomputer circuit
JPS5729150A (en) * 1980-07-30 1982-02-17 Toshiba Corp Method and device for arithmetic control

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0377168A (en) * 1989-08-19 1991-04-02 Mitsubishi Electric Corp Signal processor
JPH0498572A (en) * 1990-08-17 1992-03-31 Mitsubishi Electric Corp Digital signal processing system
JPH0667876A (en) * 1992-08-13 1994-03-11 Yamaha Corp Digital signal processor
US5633808A (en) * 1992-08-13 1997-05-27 Yamaha Corporation Digital signal processor
US6014683A (en) * 1996-12-20 2000-01-11 Nec Corporation Arithmetic operation system for arithmetically operating a first operand having an actual point and a second operand having no actual point
JP2009514097A (en) * 2005-10-26 2009-04-02 アナログ デバイシーズ インク Improved pipelined digital signal processor
JP2014038640A (en) * 2005-10-26 2014-02-27 Analog Devices Inc Improved pipelined digital signal processor
US9383994B2 (en) 2011-02-15 2016-07-05 Nec Corporation Co-processor for complex arithmetic processing, and processor system

Similar Documents

Publication Publication Date Title
EP0293851B1 (en) Digital signal processor
JP3983857B2 (en) Single instruction multiple data processing using multiple banks of vector registers
US4370709A (en) Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases
US8074058B2 (en) Providing extended precision in SIMD vector arithmetic operations
US5815715A (en) Method for designing a product having hardware and software components and product therefor
US4135242A (en) Method and processor having bit-addressable scratch pad memory
US6671797B1 (en) Microprocessor with expand instruction for forming a mask from one bit
US4367524A (en) Microinstruction execution unit for use in a microprocessor
EP1267256A2 (en) Conditional execution of instructions with multiple destinations
JPH0926878A (en) Data processor
JPH02300983A (en) Fast arithmetic processing for central processing unit
JP2001516916A (en) Data processing device with digital signal processing capability
JPH10134036A (en) Single-instruction multiple data processing for multimedia signal processor
US7308559B2 (en) Digital signal processor with cascaded SIMD organization
US5237667A (en) Digital signal processor system having host processor for writing instructions into internal processor memory
JP5326314B2 (en) Processor and information processing device
US6026486A (en) General purpose processor having a variable bitwidth
US20020138712A1 (en) Data processing device with instruction translator and memory interface device
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
TWI794789B (en) Apparatus and method for vector computing
EP1143333A2 (en) Microprocessor for supporting reduction of program codes in size
JPH01116730A (en) Digital signal processor
KR100267089B1 (en) Single instruction multiple data processing with combined scalar/vector operations
US6223275B1 (en) Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
US5222241A (en) Digital signal processor having duplex working registers for switching to standby state during interrupt processing