JPH1165841A - Arithmetic processor and its method - Google Patents

Arithmetic processor and its method

Info

Publication number
JPH1165841A
JPH1165841A JP21682897A JP21682897A JPH1165841A JP H1165841 A JPH1165841 A JP H1165841A JP 21682897 A JP21682897 A JP 21682897A JP 21682897 A JP21682897 A JP 21682897A JP H1165841 A JPH1165841 A JP H1165841A
Authority
JP
Japan
Prior art keywords
data
register
internal memory
address
instruction
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
JP21682897A
Other languages
Japanese (ja)
Inventor
Yoshihiko Imamura
義彦 今村
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP21682897A priority Critical patent/JPH1165841A/en
Publication of JPH1165841A publication Critical patent/JPH1165841A/en
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

PROBLEM TO BE SOLVED: To efficiently perform processing accompanied with successive access to a memory address space by performing arithmetic processing by using data stored in a 1st data register and writing the result in a 2nd data register when a 2-operand arithmetic instruction is decoded. SOLUTION: A decoder 36 decodes an instruction. According to the control signal S36 corresponding to the result, multiplexers 12 and 15, ALU 13, etc., are controlled. For example, the 2-operand arithmetic instruction specifies a data register r0 as a source register and a data register r1 as a destination register. Data from an internal memory are read out to the registers r0 and r1, respectively. The data stored in the register r0 and the data stored in the register r1 are added and the sum data are written in the register r1. Then the data stored in the register r1 is written to the internal memory.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は演算処理装置および
その方法に関する。
[0001] The present invention relates to an arithmetic processing device and a method thereof.

【0002】[0002]

【従来の技術】従来のマイクロプロセッサやDSP(Di
gital Signal Processor)では、通常、レジスタからデ
ータを読み出して演算を行い、その演算結果を、読み出
しを行ったレジスタに書き込んでいる。また、プロセッ
サの開発の歴史的経緯から見ても、レジスタには一時的
にデータを記憶するのみで、他の目的には使用しないの
が一般的であった。技術が発展するにつれて、例えばイ
ンテル社の8088(商品名)などのプロセッサでは、
汎用レジスタ(C−reg)をプログラムのループカウ
ンタとして用いるなど、レジスタの使用形態も多様化し
てきた。
2. Description of the Related Art Conventional microprocessors and DSPs
In general, a digital signal processor reads data from a register, performs an operation, and writes the operation result in the read register. Also, in view of the history of the development of the processor, it is common that the register only temporarily stores data and does not use it for other purposes. As technology evolves, for example, processors such as Intel's 8088 (trade name)
The use form of registers has also been diversified, such as using a general-purpose register (C-reg) as a loop counter of a program.

【0003】しかしながら、MIPS社のR3000
(商品名)などのように、レジスタからのデータ読み出
し時に、読み出しデータの値を特定の値に固定するプロ
セッサがある。このR3000は、32本の32ビット
の汎用レジスタを備え、そのうち、汎用レジスタR0
を、読みだし時に常に「0」を返すという特殊な使い方
をしている。なお、プログラム上で汎用レジスタr0に
対して書き込みを指定できるが、特に意味をもたない。
[0003] However, M3000 R3000
Some processors, such as (product name), fix the value of read data to a specific value when reading data from a register. The R3000 includes 32 32-bit general-purpose registers.
Is always returned as "0" when read. Note that writing can be designated for the general-purpose register r0 on the program, but it has no particular meaning.

【0004】上述したR3000では、3オペランド演
算命令を実行する。3オペランド演算命令では、同時に
3つのレジスタを指定する。そのうち、2つはソースレ
ジスタであり、もう一つはディスティネーションレジス
タである。このR3000では、リードモディファイラ
イトを実行するのではなく、読み出し対象のレジスタと
書き込み対象のレジスタとを物理的に独立して指定でき
る命令体系となっている。なお、この命令体系では、読
み出し対象のレジスタと書き込み対象のレジスタとし
て、同一のレジスタを指定してもよい。
[0004] In the above-mentioned R3000, a three-operand operation instruction is executed. In the three-operand operation instruction, three registers are specified at the same time. Two of them are source registers and the other is a destination register. The R3000 does not execute a read-modify-write, but has an instruction system in which a register to be read and a register to be written can be specified physically independently. In this instruction system, the same register may be designated as a register to be read and a register to be written.

【0005】ところで、プロセッサの命令セットを構成
するうえで、命令長はレジスタの演算体系を決定付け
る。前述したインテル社の8088では、2バイト命令
でレジスタ−レジスタ間の演算を実現する。但し、80
88は可変長命令体系を採用しているため、メモリアク
セスを行う演算命令は3バイト以上の命令長になること
がある。但し、いずれにしても、2オペランド演算命令
が8088のアーキテクチュアの基調である。2オペラ
ンド演算命令では、同時に2つのレジスタを指定する。
ここで、一方はソースレジスタを指定し、他方はディス
ティネーションレジスタを指定する。この場合のディス
ティネーションレジスタは、読み出し対象のレジスタで
あると同時に書き込み対象のレジスタでもある。すなわ
ち、ディスティネーションレジスタに対してリードモデ
ィファイライトを実行することになる。上述した2オペ
ランド演算命令では、2つまでの異なるメモリ上のデー
タにアクセスを行ってALU演算を行うことができる。
By the way, in configuring an instruction set of a processor, an instruction length determines an operation system of a register. In Intel's 8088, the operation between registers is realized by a 2-byte instruction. However, 80
Since 88 employs a variable length instruction system, an operation instruction for performing memory access may have an instruction length of 3 bytes or more. However, in any case, the 2-operand operation instruction is based on the architecture of 8088. In the two-operand operation instruction, two registers are specified at the same time.
Here, one designates a source register and the other designates a destination register. In this case, the destination register is a register to be read and is also a register to be written. That is, read-modify-write is executed for the destination register. With the two-operand operation instruction described above, ALU operation can be performed by accessing data on up to two different memories.

【0006】[0006]

【発明が解決しようとする課題】ところで、画像処理や
音声処理などのメディア処理では、ベクトル演算、特に
行列の乗算が多く、このような演算では、連続したメモ
リアドレス空間上のデータに対して所定のALU演算を
行う繰り返して行う。このような演算を高速に行うため
には、同時に3つのメモリアドレスを指定することが要
求され、従来の2オペランド演算命令を採用したマイク
ロプロセッサでは、実質的に3つのレジスタを指定する
機能を備えていないため、このような要求に応えること
ができないという問題がある。
In media processing such as image processing and audio processing, vector operations, particularly matrix multiplications, are often performed. In such operations, data on a continuous memory address space is specified. ALU operation is repeatedly performed. In order to perform such an operation at high speed, it is required to specify three memory addresses at the same time. A conventional microprocessor employing a two-operand operation instruction has a function to specify substantially three registers. Therefore, there is a problem that such a demand cannot be met.

【0007】本発明は上述した従来技術の問題点に鑑み
てなされ、メモリアドレス空間に対しての所定パターン
の連続したアクセスを伴う処理を効率的に行うことがで
きる2オペランド演算命令を採用した演算処理装置およ
びその方法を提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made in view of the above-described problems of the prior art, and has been made in consideration of the above-mentioned problems, and has been made in consideration of the above-described conventional technique by using a two-operand operation instruction capable of efficiently performing processing that involves continuous access to a memory address space in a predetermined pattern. It is an object to provide a processing device and a method thereof.

【0008】[0008]

【課題を解決するための手段】上述した目的を達成する
ために、本発明の演算処理装置は、演算対象となるデー
タを記憶する内部メモリと、前記内部メモリ上のアドレ
スを記憶する第1のデータポインタレジスタおよび第2
のデータポインタレジスタと、前記第1のデータポイン
タレジスタに記憶された前記内部メモリ上のアドレスか
ら読み出したデータを記憶する第1のデータレジスタ
と、前記第2のデータポインタレジスタに記憶された前
記内部メモリ上のアドレスに、記憶データを書き込む第
2のデータレジスタと、デコード結果に基づいて演算を
行う演算手段と、前記第1のデータレジスタと前記第2
のデータレジスタとを同一の論理アドレスを用いてディ
スティネーションレジスタに指定し、リードモディファ
イライトを行うことを指示する2オペランド演算命令を
デコードした場合に、前記演算手段が前記第1のデータ
レジスタに記憶されたデータを用いて演算処理を行い、
その演算処理の結果を、前記第2のデータレジスタに書
き込むように制御するデコード手段とを有する。
In order to achieve the above object, an arithmetic processing unit according to the present invention comprises an internal memory for storing data to be operated and a first memory for storing an address on the internal memory. Data pointer register and second
A data pointer register, a first data register for storing data read from an address on the internal memory stored in the first data pointer register, and the internal data stored in the second data pointer register. A second data register for writing storage data to an address on a memory; an operation unit for performing an operation based on a decoding result; the first data register and the second data register;
When the two-operand operation instruction instructing to perform the read-modify-write operation is decoded by specifying the data register and the data register as the destination register using the same logical address, the operation means stores the instruction in the first data register. Perform arithmetic processing using the data obtained,
Decoding means for controlling a result of the arithmetic processing to be written to the second data register.

【0009】本発明の演算処理装置では、前記第1のデ
ータレジスタと前記第2のデータレジスタとを同一の論
理アドレスを用いてディスティネーションレジスタに指
定し、リードモディファイライトを行うことを指示する
2オペランド演算命令を実行した場合に、第1のデータ
レジスタおよび第2のデータレジスタが、それぞれ3オ
ペランド演算命令のソースレジスタおよびディスティネ
ーションレジスタとして指定された場合と同様に機能す
る。
In the arithmetic processing device according to the present invention, the first data register and the second data register are designated as destination registers using the same logical address, and instruct to perform read-modify-write. When the operand operation instruction is executed, the first data register and the second data register function similarly to the case where the first data register and the second data register are designated as the source register and the destination register of the three-operand operation instruction, respectively.

【0010】また、本発明の演算処理装置は、好ましく
は、前記第1のデータレジスタと前記第2のデータレジ
スタとを同一の論理アドレスを用いてディスティネーシ
ョンレジスタに指定し、リードモディファイライトを行
うことを指示する2オペランド演算命令を実行する場合
に、プログラムカウンタが指し示す命令メモリ上のアド
レスから命令を読み出す命令フェッチ処理と、前記フェ
ッチした命令をデコードし、前記第1のデータレジスタ
および第3のデータレジスタから前記演算手段にデータ
を転送するデコード処理と、前記演算手段による演算処
理と、前記演算処理の演算結果を前記第2のデータレジ
スタに書き込むライトバック処理とを多重化した4段パ
イプライン処理を行う。
Preferably, the arithmetic processing unit of the present invention performs read-modify-write by designating the first data register and the second data register as a destination register using the same logical address. When executing a two-operand operation instruction indicating that an instruction is to be executed, an instruction fetch process for reading an instruction from an address on an instruction memory indicated by a program counter, decoding the fetched instruction, and executing the first data register and the third A four-stage pipeline multiplexing a decoding process for transferring data from a data register to the arithmetic unit, an arithmetic process by the arithmetic unit, and a write-back process for writing an arithmetic result of the arithmetic process to the second data register. Perform processing.

【0011】また、本発明の演算処理方法は、第1のデ
ータレジスタと第2のデータレジスタとを同一の論理ア
ドレスを用いてディスティネーションレジスタに指定
し、第3のデータレジスタをソースレジスタに指定し、
リードモディファイライトを行うことを指示する2オペ
ランド演算命令を実行する場合に、プログラムカウンタ
が指し示す命令メモリ上のアドレスから命令を読み出す
命令フェッチ処理と、前記フェッチした命令をデコード
し、前記第1のデータレジスタおよび前記第3のデータ
レジスタから前記演算手段にデータを転送するデコード
処理と、演算処理と、前記演算処理の演算結果を前記第
2のデータレジスタに書き込むライトバック処理とを多
重化した4段パイプライン処理を行い、第1のデータポ
インタレジスタに記憶された内部メモリ上のアドレスか
らデータを読み出して前記第1のデータレジスタに記憶
する処理と、前記第2のデータレジスタに書き込まれた
データを、第2のデータポインタレジスタに記憶された
前記内部メモリ上のアドレスに書き戻す処理と、第3の
データポインタレジスタに記憶された前記内部メモリ上
のアドレスからデータを読み出して前記第3のデータレ
ジスタに記憶する処理とを前記4段パイプライン処理と
並行して行う。
Further, according to the arithmetic processing method of the present invention, the first data register and the second data register are designated as a destination register using the same logical address, and the third data register is designated as a source register. And
When executing a two-operand operation instruction instructing to perform a read-modify-write, an instruction fetch process of reading an instruction from an address on an instruction memory indicated by a program counter, decoding the fetched instruction, and executing the first data 4-stage multiplexed decoding processing for transferring data from a register and the third data register to the arithmetic means, arithmetic processing, and write-back processing for writing the arithmetic result of the arithmetic processing to the second data register Performing a pipeline process to read data from an address on the internal memory stored in the first data pointer register and storing the data in the first data register; and a process of reading data written in the second data register. On the internal memory stored in the second data pointer register The process of writing back to the address and the process of reading data from the address on the internal memory stored in the third data pointer register and storing the data in the third data register are performed in parallel with the four-stage pipeline process. Do.

【0012】[0012]

【発明の実施の形態】以下、本発明の実施形態に係わる
マイクロプロセッサについて説明する。第1実施形態 図1は、本実施形態のマイクロプロセッサ1の構成図で
ある。マイクロプロセッサ1は、図1に示す汎用レジス
タモジュール11、マルチプレクサ(MUX)12,1
6、ALU(Arithmetic Logic Unit) 13、インストラ
クションページメモリ35、デコーダ36と、図2に示
すDPレジスタ30,31および内部メモリ47を有
し、これらを1チップ内に組み込んだ構成をしている。
なお、マイクロプロセッサ1では、デコーダ36におけ
るデコード結果に応じた制御信号S36に基づいて、以
下に示す処理が行われる。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a microprocessor according to an embodiment of the present invention will be described. First Embodiment FIG. 1 is a configuration diagram of a microprocessor 1 of the present embodiment. The microprocessor 1 includes a general-purpose register module 11, a multiplexer (MUX) 12, 1 shown in FIG.
6, an ALU (Arithmetic Logic Unit) 13, an instruction page memory 35, a decoder 36, the DP registers 30 and 31 and the internal memory 47 shown in FIG. 2, and these are incorporated in one chip.
In the microprocessor 1, the following processing is performed based on the control signal S36 according to the decoding result of the decoder 36.

【0013】汎用レジスタモジュール11は、汎用的に
使用される例えば32ビットの16個のレジスタr0
15で構成されるレジスタセットである。汎用レジスタ
モジュール11を構成するレジスタの数は、命令セット
あるいはチップアーキテクチュアに大きく依存し、一般
的には、8個から32個の範囲で設定される。汎用レジ
スタモジュール11は、図1に示すように、7個のポー
トW,RA,RB,MA,MB,DA,DBを添えてい
る。ここで、ポートWは、ライトポートであり、ALU
13のポートAOUTから出力されたデータが、バス2
3およびポートWを介して、汎用レジスタモジュール1
1に書き込まれる。また、ポートMA,MBは、図2に
示すように、それぞれ内部メモリ47のメモリバンク4
5,46との間のポートであり、それぞれバス26,2
7を介して、メモリバンク45,46のポートとの間で
データ転送を行う。なお、ポートMA,MBを設けず
に、汎用レジスタモジュール11の外部で、ポートR
A,RB,Wを切り替えて、メモリバンク45,46と
の接続を実現するような構成にしてもよい。
The general-purpose register module 11 has, for example, 16 32-bit registers r 0 to r 0 to be generally used.
It is composed of a register set in r 15. The number of registers constituting the general-purpose register module 11 largely depends on the instruction set or the chip architecture, and is generally set in the range of 8 to 32. The general-purpose register module 11 is provided with seven ports W, RA, RB, MA, MB, DA, and DB, as shown in FIG. Here, port W is a write port and ALU
The data output from port AOUT of bus 13 is
3 and the general-purpose register module 1 via the port W
Written to 1. The ports MA and MB are connected to the memory banks 4 of the internal memory 47, respectively, as shown in FIG.
Ports between the buses 26 and 2 respectively.
7, data is transferred to and from the ports of the memory banks 45 and 46. It should be noted that the port R is provided outside the general-purpose register module 11 without providing the ports MA and MB.
A, RB, W may be switched to realize a connection with the memory banks 45, 46.

【0014】また、ポートRA,RBは、リードポート
であり、ポートRA,RBおよびバス17,18を介し
て、汎用レジスタモジュール11から読み出されたデー
タがマルチプレクサ12に出力される。さらに、ポート
DA,DBは、それぞれマルチプレクサ16とデータレ
ジスタr0 ,r1 との間で、双方向通信を行うためのポ
ートである。
The ports RA and RB are read ports. Data read from the general-purpose register module 11 is output to the multiplexer 12 via the ports RA and RB and the buses 17 and 18. Further, the ports DA and DB are ports for performing bidirectional communication between the multiplexer 16 and the data registers r 0 and r 1 , respectively.

【0015】汎用レジスタモジュール11では、ポート
W,RA,RB,MA,MB,DA,DBを同時に使用
することができる。つまり、汎用レジスタモジュール1
1に対してのリード動作とライト動作とを独立して実行
できる。
In the general-purpose register module 11, the ports W, RA, RB, MA, MB, DA, and DB can be used simultaneously. That is, general-purpose register module 1
1 can be executed independently of the read operation and the write operation.

【0016】マイクロプロセッサ1では、データレジス
タr0 ,r1 を、それぞれバス26,27を介してメモ
リとの間で通信を行うためのインターフェイスとなるバ
ッファとして用いる。また、レジスタr2 〜r15は、一
般的な汎用レジスタとして使用される。マイクロプロセ
ッサ1では、例えば、ALU13において内部メモリ4
7に記憶されたデータを用いる場合には、そのデータを
バス26を介してデータレジスタr0 に読み出した後
に、データレジスタr0 にアクセスを行う。このとき、
内部メモリ47からバス27を介して、データレジスタ
1 にデータを読み出した後に、データレジスタr1
アクセスしてもよい。また、マイクロプロセッサ1で
は、データを内部メモリ47に書き込む場合に、データ
レジスタr0 あるいはr1 にデータを書き込んだ後に、
この書き込んだデータをバス26あるいは27を介して
内部メモリ47に転送する。
In the microprocessor 1, the data registers r 0 and r 1 are used as buffers serving as interfaces for communicating with the memories via the buses 26 and 27, respectively. The register r 2 ~r 15 is used as a general-purpose register. In the microprocessor 1, for example, the internal memory 4 in the ALU 13
In the case of using the data stored in 7, the data is read out to the data register r 0 via the bus 26, and then the data register r 0 is accessed. At this time,
From the internal memory 47 via the bus 27, after reading the data into the data register r 1, may access the data register r 1. Further, the microprocessor 1, when writing data in the internal memory 47, after writing data to the data register r 0 or r 1,
The written data is transferred to the internal memory 47 via the bus 26 or 27.

【0017】なお、データレジスタr0 ,r1 は、他の
レジスタr2 〜r15と実質的に同じ接続形態をしてお
り、レジスタr2 〜r15と同様に汎用レジスタとしても
使用できる。具体的には、例えば、マルチプレクサ16
がバス21および22とポートDA,DBとの接続を選
択しているときに、ポートDA,DBがそれぞれRA,
RBと同様の機能を果たし、バス21,22がバス1
7、18と同様の機能を果たす。また、マルチプレクサ
16が、バス23とポートDAあるいはDBとの接続を
選択しているときには、ポートDAあるいはDBがポー
トWと同様の機能を果たす。そのため、データレジスタ
0 ,r1 は、プログラム内でレジスタr2 〜r15を含
む汎用レジスタ群の一部として統一的に記述され、デコ
ーダ36においても同様に認識される。
[0017] The data register r 0, r 1 is the substantially the same topology and other registers r 2 ~r 15, can also be used as well as general-purpose registers and register r 2 ~r 15. Specifically, for example, the multiplexer 16
Selects the connection between the buses 21 and 22 and the ports DA and DB, the ports DA and DB
Performs the same function as RB, and buses 21 and 22
It performs the same function as 7 and 18. When the multiplexer 16 selects the connection between the bus 23 and the port DA or DB, the port DA or DB performs the same function as the port W. Therefore, the data registers r 0 and r 1 are uniformly described as a part of a general-purpose register group including the registers r 2 to r 15 in the program, and are similarly recognized by the decoder 36.

【0018】DP(Data Pointer)レジスタ30,31
は、それぞれ内部メモリ47のメモリバンク45,46
のメモリアドレス空間内のアドレスを記憶する。なお、
DPレジスタ30,31は、汎用レジスタモジュール1
1のレジスタr0 〜r15とは異なり、複数の制御レジス
タのうち一部を割り当てる。そのため、DPレジスタ3
0,31を、ALU演算命令のレジスタ指定子を用いて
直接的には指定することはできず、データ転送命令によ
って指定される。なお、DPレジスタ30,31に、内
部メモリ47上のアドレスを書き込むには、1命令分の
ステップを必要とするが、データレジスタr0 ,r1
介した内部メモリ47に対してのアクセス動作は、プロ
グラムには記述されておらず、プログラムに直接的に明
示された処理とは別に、バックグランドで行われる。す
なわち、内部メモリ47に対してのアクセス動作は、パ
イプライン処理と並行して行われる。
DP (Data Pointer) registers 30, 31
Are the memory banks 45 and 46 of the internal memory 47, respectively.
The address in the memory address space is stored. In addition,
The DP registers 30 and 31 correspond to the general-purpose register module 1
Unlike one register r 0 to r 15 , a part of a plurality of control registers is assigned. Therefore, DP register 3
0 and 31 cannot be directly specified using the register specifier of the ALU operation instruction, but are specified by a data transfer instruction. Writing an address on the internal memory 47 to the DP registers 30 and 31 requires one instruction step. However, an access operation to the internal memory 47 via the data registers r 0 and r 1 is required. Is not described in the program, and is performed in the background separately from the process directly specified in the program. That is, the access operation to the internal memory 47 is performed in parallel with the pipeline processing.

【0019】マイクロプロセッサ1では、例えば、図2
に示す内部メモリ47のメモリバンク45に記憶された
データを読み出す際に、当該読み出すデータのメモリバ
ンク45内でのアドレスをDPレジスタ30に書き込
む。これによって、DPレジスタ30に書き込まれたメ
モリバンク45内でのアドレスに記憶されたデータが、
バス26を介してメモリバンク45からデータレジスタ
0 に、ハードウェアによって自動的に読み出される。
その後、データレジスタr0 から、マルチプレクサ16
を介してALU13のポートAINあるいはBINにデ
ータが転送される。
In the microprocessor 1, for example, FIG.
When the data stored in the memory bank 45 of the internal memory 47 is read, the address of the read data in the memory bank 45 is written to the DP register 30. As a result, the data stored in the address in the memory bank 45 written in the DP register 30 becomes
The data is automatically read from the memory bank 45 to the data register r 0 via the bus 26 by hardware.
Thereafter, the multiplexer 16 is read from the data register r 0.
Is transferred to the port AIN or BIN of the ALU 13 via the.

【0020】また、同様に、マイクロプロセッサ1で
は、例えば、図2に示す内部メモリ47のメモリバンク
46に記憶されたデータを読み出す際に、当該読み出す
データのメモリバンク46内でのアドレスをDPレジス
タ31に書き込む。これによって、DPレジスタ31に
書き込まれたメモリバンク46内でのアドレスに記憶さ
れたデータが、バス26を介してメモリバンク46から
データレジスタr1 に、ハードウェアによって自動的に
読み出される。その後、データレジスタr1 から、マル
チプレクサ16を介してALU13のポートAINある
いはBINにデータが転送される。
Similarly, in the microprocessor 1, when reading data stored in the memory bank 46 of the internal memory 47 shown in FIG. 2, for example, the address of the read data in the memory bank 46 is stored in the DP register. Write to 31. As a result, the data stored in the address in the memory bank 46 written in the DP register 31 is automatically read out from the memory bank 46 to the data register r 1 via the bus 26 by hardware. Thereafter, data is transferred from the data register r 1 to the port AIN or BIN of the ALU 13 via the multiplexer 16.

【0021】このように、マイクロプロセッサ1では、
DPレジスタ30,31に、メモリバンク45,46内
のアドレスを書き込むことで、それぞれデータレジスタ
0,r1 に、当該アドレスに記憶されたデータを自動
的に読み出す。
As described above, in the microprocessor 1,
By writing the addresses in the memory banks 45 and 46 to the DP registers 30 and 31, the data stored at the addresses are automatically read out to the data registers r 0 and r 1 respectively.

【0022】一方、内部メモリ47のメモリバンク45
および46内の所定のアドレスにデータを書き込む場合
に、当該アドレスをそれぞれDPレジスタ30,31に
書き込んだ後に、それぞれデータレジスタr0 およびr
1 に当該データを書き込む。その後、ハードウェアによ
って自動的に、データレジスタr0 ,r1 に記憶された
データが、DPレジスタ30,31に記憶されたメモリ
バンク45,46内のアドレスに書き込まれる。なお、
データレジスタr0 とメモリバンク45とのデータ転送
と、データレジスタr1 とメモリバンク46とのデータ
転送とは、マイクロプロセッサ1において、同一のパイ
プラインサイクルで行うことができる。
On the other hand, the memory bank 45 of the internal memory 47
When data is written to a predetermined address in data registers 46 and 46, after writing the address to DP registers 30 and 31, respectively, data registers r 0 and r
Write the relevant data to 1 . Thereafter, the data stored in the data registers r 0 and r 1 are automatically written by hardware into the addresses in the memory banks 45 and 46 stored in the DP registers 30 and 31. In addition,
Data transfer between the data register r 0 and the memory bank 45 and data transfer between the data register r 1 and the memory bank 46 can be performed in the same pipeline cycle in the microprocessor 1.

【0023】ところで、内部メモリ47に対してのメモ
リライト動作で、データレジスタr0 またはr1 の一方
を使用すると、若干のサイクルをロスすることがある。
これは、データレジスタr0 またはr1 に対してデータ
の自動読み出し動作が不要に行われてしまうためであ
る。これを防ぐために、使用目的に合わせてデータレジ
スタr0 またはr1 をライト動作専用モードに設定して
おけば、無駄なメモリリード(ロード)動作を実行する
ことを回避できる。メモリリードあるいはメモリライト
の特性として、画像処理などの分野では、連続したメモ
リアドレスが参照される可能性が高い。つまり、メモリ
リード命令の次には再びメモリリード命令を実行するこ
とが多い。しかも、このとき、連続したメモリアドレス
をアクセスする可能性が高い。そのため、DPレジスタ
30,31には、例えば、内部メモリ47の記憶された
データにアクセスする度に、記憶されているアドレス
を、例えば、+1,−1,+4,−4,+8あるいは−
8だけ自動的にインクリメントする機能を備え、画像処
理を行うときの処理効率の向上を図っている。
When one of the data registers r 0 and r 1 is used in a memory write operation to the internal memory 47, some cycles may be lost.
This is because the operation of automatically reading data from the data register r 0 or r 1 is unnecessary. To prevent this, if the data register r 0 or r 1 is set to the write operation only mode according to the purpose of use, it is possible to avoid performing unnecessary memory read (load) operation. As a characteristic of memory read or memory write, in the field of image processing or the like, there is a high possibility that consecutive memory addresses are referred to. That is, the memory read instruction is often executed again after the memory read instruction. Moreover, at this time, there is a high possibility that consecutive memory addresses are accessed. Therefore, for example, each time the data stored in the internal memory 47 is accessed, the stored address is set to, for example, +1, -1, +4, -4, +8, or-.
A function of automatically incrementing by eight is provided to improve processing efficiency when performing image processing.

【0024】図2に示す内部メモリ47のメモリバンク
45,46は、それぞれアドレスが連続した外部メイン
メモリ50のメモリアドレス空間上のデータのコピーを
記憶している。メモリバンク45と46との間では、外
部メインメモリ50のメモリアドレス空間上のアドレス
が連続している必要はない。
The memory banks 45 and 46 of the internal memory 47 shown in FIG. 2 store copies of data in the memory address space of the external main memory 50 whose addresses are continuous. The addresses in the memory address space of the external main memory 50 do not need to be continuous between the memory banks 45 and 46.

【0025】ALU13は、入力ポートAIN,BIN
およびポートAOUTを備え、デコーダ36からの制御
信号S36に基づいて、入力ポートAIN,BINから
入力されたデータに対して算術演算あるいは論理演算を
実行し、演算結果のデータをポートAOUTからバス2
3に出力する。ALU13では、演算を1クロックサイ
クルで実行する。ここで、ALU13は、演算命令の種
類によっては、デコーダ36からの制御信号S36に基
づいて、入力ポートAINあるいはBINからALU1
3に入力されたデータを演算を行わずに、そのまま出力
ポートAOUTから出力することもある。
The ALU 13 has input ports AIN, BIN
And an arithmetic operation or a logical operation on data input from the input ports AIN and BIN based on a control signal S36 from the decoder 36, and transfers the operation result data from the port AOUT to the bus 2
Output to 3. The ALU 13 executes an operation in one clock cycle. Here, depending on the type of the operation instruction, the ALU 13 transmits the ALU1 from the input port AIN or BIN based on the control signal S36 from the decoder 36.
In some cases, the data input to 3 is output from the output port AOUT as it is without performing the operation.

【0026】以下、マイクロプロセッサ1におけるパイ
プライン処理動作について説明する。マイクロプロセッ
サ1では、図1に示す構成によって、以下に示すよう
に、命令実行時のデータパスを4段パイプライン構造に
する。図4は、マイクロプロセッサ1のパイプライン処
理を説明するための図である。図4に示すように、マイ
クロプロセッサ1は、IFステージ、DECステージ、
ALUステージおよびWB(Write Back)ステージの4段
パイプラインを採用している。すなわち、図4に示す4
段パイプラインには、図20に示す従来の一般的な5段
パイプラインのMENステージが存在しない。
Hereinafter, a pipeline processing operation in the microprocessor 1 will be described. In the microprocessor 1, with the configuration shown in FIG. 1, the data path at the time of instruction execution has a four-stage pipeline structure as shown below. FIG. 4 is a diagram for explaining the pipeline processing of the microprocessor 1. As shown in FIG. 4, the microprocessor 1 includes an IF stage, a DEC stage,
A 4-stage pipeline of an ALU stage and a WB (Write Back) stage is adopted. That is, 4 shown in FIG.
The stage pipeline does not include the MEN stage of the conventional general five-stage pipeline shown in FIG.

【0027】図4に示す4段パイプラインにおいて、I
Fステージ、DECステージおよびALUステージにお
ける処理は、図20に示す5段パイプラインの場合と同
じである。図4に示す4段パイプラインでは、IFステ
ージ、DECステージ、ALUステージおよびWBステ
ージが多重化して行われる。具体的には、マイクロプロ
セッサ1では、1段目のIFステージで、図1に示すプ
ログラムカウンタ34によって指し示されるインストラ
クションメモリ35上のアドレスから、次に実行する命
令をフェッチする(読み込む)。次に、2段目のDEC
ステージで、IFステージでフェッチした命令を図1に
示すデコーダ36でデコードする。そして、このデコー
ド結果に応じた制御信号S36に基づいて、マルチプレ
クサ12,16およびALU13などが制御される。
In the four-stage pipeline shown in FIG.
The processing in the F stage, DEC stage and ALU stage is the same as in the case of the five-stage pipeline shown in FIG. In the four-stage pipeline shown in FIG. 4, the IF stage, the DEC stage, the ALU stage, and the WB stage are multiplexed and performed. Specifically, the microprocessor 1 fetches (reads) the next instruction to be executed from the address on the instruction memory 35 indicated by the program counter 34 shown in FIG. 1 in the first IF stage. Next, the second stage DEC
In the stage, the instruction fetched in the IF stage is decoded by the decoder 36 shown in FIG. The multiplexers 12, 16 and the ALU 13 are controlled based on the control signal S36 according to the decoding result.

【0028】なお、汎用レジスタモジュール11のレジ
スタr0 〜r15をソースレジスタとして指定した命令で
あれば、DECステージで命令をデコードした後に、デ
ータレジスタr0 〜r15からデータを、マルチプレクサ
12を介してALU13のポートAIN,BINに読み
出す。すなわち、マイクロプロセッサ1では、プログラ
ムに応じて、データレジスタr0 ,r1 を他の汎用のレ
ジスタr2 〜r15と同様にアクセスできる。このとき、
内部メモリ47に対してのメモリアクセスが必要な場合
には、図2に示すDPレジスタ30,31に、内部メモ
リ47上の所定のアドレスを記憶させた後に、データレ
ジスタr0 ,r1 にアクセスを行うことで、内部メモリ
47に対してのアクセスを実現する。すなわち、マイク
ロプロセッサ1では、データレジスタr0 ,r1 を介し
て、内部メモリ47へのメモリアクセスを実現する。
If the instruction specifies the registers r 0 to r 15 of the general-purpose register module 11 as the source register, the instruction is decoded in the DEC stage, and then the data from the data registers r 0 to r 15 is transmitted to the multiplexer 12. The data is read out to the ports AIN and BIN of the ALU 13 via the CPU. That is, in the microprocessor 1, in accordance with the program, can access data registers r 0, r 1 as well as other general purpose register r 2 ~r 15. At this time,
When a memory access to the internal memory 47 is necessary, a predetermined address on the internal memory 47 is stored in the DP registers 30 and 31 shown in FIG. 2, and then the data registers r 0 and r 1 are accessed. , The access to the internal memory 47 is realized. That is, the microprocessor 1 implements memory access to the internal memory 47 via the data registers r 0 and r 1 .

【0029】次に、3段目のALUステージで、ALU
演算命令を実行する。なお、フェッチした命令がALU
演算命令でない場合は、ALUステージでは何も行わ
ず、ポートAIN,BINから入力したデータをALU
13のポートAOUTからそのまま出力する。次に、4
段目のWBステージでは、データレジスタr0 ,r1
よびレジスタr2 〜r15の何れかを、ディスティネーシ
ョンレジスタとして指定した命令について、ALU13
の演算結果を、当該指定したレジスタに書き戻す。この
とき、データレジスタr0 ,r1 にデータを書き込むこ
とで、バス26,27を介して、間接的に内部メモリ4
7にデータを書き戻す。
Next, in the third ALU stage, the ALU
Execute the operation instruction. The fetched instruction is ALU
If it is not an operation instruction, nothing is performed in the ALU stage, and data input from ports AIN and BIN are
The signal is directly output from the port AOUT 13. Next, 4
In the second WB stage, the ALU 13 for an instruction in which one of the data registers r 0 and r 1 and the registers r 2 to r 15 is designated as a destination register
Is written back to the specified register. At this time, by writing data to the data registers r 0 and r 1 , the internal memory 4 is indirectly connected via the buses 26 and 27.
Write the data back to 7.

【0030】図4に示す4段パイプライン処理では、コ
ードC1 が図2に示す内部メモリ47に対してのメモリ
ライト操作を伴う命令であり、コードC3 が内部メモリ
47に対してのメモリリード操作を伴う命令である場合
に、図5に示すクロックサイクルYにおいて、コードC
1 のWBステージ41と、コードC3 のDECステージ
42とで、同時にメモリアクセスを行うことになる。こ
の場合に、マイクロプロセッサ1では、内部メモリ47
に対してのアクセスのバッファとなるデータレジスタr
0 ,r1 を設け、内部メモリ47に対しての2系統のア
クセス経路を設けているため、コードC1 とコードC3
とでアクセスを行う内部メモリ47のバンクが異なれ
ば、図5に示すように、コードC1 のWBステージ41
とコードC3 のDECステージ42とを多重化でき、パ
イプライ処理は乱れない(ストールしない)。
[0030] In four-stage pipeline processing shown in FIG. 4, the code C 1 is an instruction involving memory write operation to the internal memory 47 shown in FIG. 2, the memory code C 3 is to the internal memory 47 In the case of an instruction accompanied by a read operation, in the clock cycle Y shown in FIG.
1 of WB stage 41, in the DEC stage 42 of the code C 3, will perform a memory access at the same time. In this case, in the microprocessor 1, the internal memory 47
Data register r serving as a buffer for access to
0 and r 1 and two access paths to the internal memory 47 are provided, so that the code C 1 and the code C 3
If the bank of the internal memory 47 to be accessed is different between the WB stage 41 and the code C 1 , as shown in FIG.
And it can be multiplexed and DEC stage 42 of the code C 3, pipeline processing is not disturbed (not stall).

【0031】以下、マイクロプロセッサ1におけるプロ
グラムの記述に応じた内部メモリ47に対してのアクセ
ス動作例について説明する。2オペランド演算命令を用いた場合 以下、図6に示すように、オペコード(OP)と、〔ソ
ースレジスタ〕および〔ディスティネーションレジス
タ〕を指定する2個のオペランドとを備えた2オペラン
ド演算命令を用いて、プログラムを記述した場合におけ
る内部メモリ47に対してのアクセス動作について説明
する。
An example of an access operation to the internal memory 47 according to the description of the program in the microprocessor 1 will be described below. When a two-operand operation instruction is used, a two-operand operation instruction having an operation code (OP) and two operands specifying a [source register] and a [destination register] is used as shown in FIG. Next, an access operation to the internal memory 47 when a program is described will be described.

【0032】例えば、図7に示すように、2オペランド
演算命令において、データレジスタr0 をソースレジス
タとして指定した場合には、内部メモリ47上のDPレ
ジスタ30に記憶されたアドレスからデータをデータレ
ジスタr0 に読み出した後に、データレジスタr0 に記
憶されたデータと、レジスタr4 に記憶されたデータと
を加算して、その加算結果のデータをレジスタr4 に書
き込む。
For example, as shown in FIG. 7, when the data register r 0 is specified as the source register in the two-operand operation instruction, the data is stored in the data register from the address stored in the DP register 30 on the internal memory 47. After reading to r 0 , the data stored in the data register r 0 and the data stored in the register r 4 are added, and the resulting data is written to the register r 4 .

【0033】また、例えば、図8に示すように、2オペ
ランド演算命令において、データレジスタr1 をディス
ティネーションレジスタとして指定した場合には、内部
メモリ47上のDPレジスタ31に記憶されたアドレス
からデータをデータレジスタr1 に読み出した後に、デ
ータレジスタr1 に記憶されたデータと、レジスタr5
に記憶されたデータとを加算して、その加算結果のデー
タをレジスタr1 に書き込む。そして、内部メモリ47
上のDPレジスタ31に記憶されたアドレスに、データ
レジスタr1 に記憶されたデータを書き込む。
For example, as shown in FIG. 8, when the data register r 1 is specified as a destination register in a two-operand operation instruction, the data stored in the DP register 31 on the internal memory 47 is read from the address. the after reading the data register r 1, and data stored in the data register r 1, register r 5
By adding the data stored in the write data of the addition result in the register r 1. Then, the internal memory 47
The DP register 31 to the address stored in the above, and writes the data stored in the data register r 1.

【0034】また、例えば、図9に示すように、2オペ
ランド演算命令において、データレジスタr0 をソース
アドレスとして指定し、データレジスタr1 をディステ
ィネーションレジスタとして指定した場合には、内部メ
モリ47上のDPレジスタ30,31に記憶されたアド
レスからデータをそれぞれデータレジスタr0 ,r1
読み出した後に、データレジスタr0 に記憶されたデー
タと、データレジスタr1 に記憶されたデータとを加算
して、その加算結果のデータをレジスタr1 に書き込
む。そして、内部メモリ47上のDPレジスタ31に記
憶されたアドレスに、データレジスタr1 に記憶された
データを書き込む。
For example, as shown in FIG. 9, when the data register r 0 is specified as a source address and the data register r 1 is specified as a destination register in a two-operand operation instruction, After reading the data from the addresses stored in the DP registers 30 and 31 into the data registers r 0 and r 1 respectively, the data stored in the data register r 0 and the data stored in the data register r 1 are added. to write the data of the addition result in the register r 1. Then, the address stored in the DP register 31 in the internal memory 47, and writes the data stored in the data register r 1.

【0035】ところで、図8に示す演算命令を連続して
実行したときに、図4に示すマイクロプロセッサ1のパ
イプライン処理において、図10に示すように、2クロ
ックサイクルのパイプライン・ハザード(ストール)が
発生する。これは、図10に示すクロックサイクルT+
3で、データレジスタr1 に対してのライト動作とリー
ド動作とが競合するためである。すなわち、図8に示す
演算命令であるコードC1 が、クロックサイクルT+1
でDECステージに進んだときに、図1に示すデコーダ
36は、コードC1 がロード/ストア命令であることを
認識してレジスタr1 を内部でロックする。そして、コ
ードC1 がクロックサイクルT+3でWBステージに進
んだときに、このロックは解除される。すなわち、内部
メモリ47に対してのリード・モディファイ・ライト
は、ライトバックされるまでロックされる。このロック
されたレジスタを命令がアクセスすると、ロックが解除
するまでアクセスが待たされる。そして、クロックサイ
クルT+3でALU13の出力をデータレジスタr1
書き込み、ロックの解除を決定し、DPレジスタ31を
更新する。そして、クロックサイクルT+4で、コード
2 に応じて、内部メモリ47からデータレジスタr1
にデータを読み込み、その後、コードC1 の場合と同様
の処理を繰り返す。
When the operation instructions shown in FIG. 8 are successively executed, in the pipeline processing of the microprocessor 1 shown in FIG. 4, as shown in FIG. ) Occurs. This corresponds to clock cycle T + shown in FIG.
In No. 3, the write operation and the read operation on the data register r1 conflict with each other. That is, the code C 1 is an operation command shown in FIG. 8, a clock cycle T + 1
When proceeding to DEC stage in the decoder 36 shown in FIG. 1, the locking internally registers r 1 recognizes that the code C 1 is a load / store instruction. The code C 1 is in when it proceeds to the WB stage in clock cycle T + 3, the lock is released. That is, the read-modify-write to the internal memory 47 is locked until it is written back. When an instruction accesses the locked register, the access waits until the lock is released. Then, at clock cycle T + 3 writes the output of the ALU13 in the data register r 1, to determine the release of the lock, and updates the DP register 31. Then, at clock cycle T + 4, the data register r 1 is read from the internal memory 47 according to the code C 2.
Reads data, then repeats the same processing as the processing of the code C 1.

【0036】3オペランド演算命令を用いた場合 以下、図11に示すように、オペコード(OP)と、2
個の〔ソースレジスタ〕および〔ディスティネーション
レジスタ〕を指定する3個のオペランドとを備えた3オ
ペランド演算命令を用いて、プログラムを記述した場合
における内部メモリ47に対してのアクセス動作につい
て説明する。マイクロプロセッサ1では、例えば、従来
のマイクロプロセッサにおける図21に示すプログラム
を実行するときに、プログラムを図12に示すように記
述できる。図12において、命令「mov r0
2 」はデータレジスタr0 に記憶された内部メモリ4
7上のデータをレジスタr2 に転送することを示す。こ
のとき、命令「mov r0 ,r2 」を実行するのに先
立って、図2に示すDPレジスタ30にメモリバンク4
5内の読み込み対象のデータのアドレスが記憶され、ハ
ードウェアによって、当該アドレスに記憶されたデータ
が、バス26を介してデータレジスタr0 に転送されて
いる。そして、データレジスタr0 に記憶された内部メ
モリ47上のデータが、バス24、マルチプレクサ1
6,12およびバス23を介して、レジスタr2 に転送
される。
When a three- operand operation instruction is used , as shown in FIG.
An access operation to the internal memory 47 when a program is described using a three-operand operation instruction including three operands specifying [source registers] and [destination registers] will be described. In the microprocessor 1, for example, when executing the program shown in FIG. 21 in a conventional microprocessor, the program can be described as shown in FIG. In FIG. 12, the instruction “mov r 0 ,
“r 2 ” is the internal memory 4 stored in the data register r 0.
Data on 7 indicates that transferred to the register r 2. At this time, prior to execution of the instruction “mov r 0 , r 2 ”, the memory bank 4 is stored in the DP register 30 shown in FIG.
Read address of the data of interest within 5 are stored by the hardware, the data stored in the address have been transferred to the data register r 0 through the bus 26. The data on the internal memory 47 stored in the data register r 0 is transferred to the bus 24 and the multiplexer 1.
The data is transferred to the register r 2 via the buses 6 and 12 and the bus 23.

【0037】また、「add r2 ,r9 ,r3 」はレ
ジスタr2 に記憶されたデータとレジスタr9 に記憶さ
れたデータとを加算してレジスタr3 に記憶することを
示す。これによって、ALU13のポートAINに対し
てレジスタr2 に記憶されたデータが出力され、ポート
BINに対してレジスタr9 に記憶されたデータが出力
され、ALU13において、これらの加算が行われ、加
算結果がポートAOUTからバス23を介して、汎用レ
ジスタモジュール11のレジスタr3 に書き込まれる。
“Add r 2 , r 9 , r 3 ” indicates that the data stored in the register r 2 and the data stored in the register r 9 are added and stored in the register r 3 . As a result, the data stored in the register r 2 is output to the port AIN of the ALU 13, the data stored in the register r 9 is output to the port BIN, and these additions are performed in the ALU 13. result via the bus 23 from the port AOUT, written into the register r 3 of the general register module 11.

【0038】さらに、「mov r3 ,r1 」は、レジ
スタr3 に記憶されたデータをデータレジスタr1 に転
送することを意味する。
Further, "mov r 3 , r 1 " means to transfer the data stored in the register r 3 to the data register r 1 .

【0039】これによって、レジスタr3 に記憶された
データが、例えばバス17、マルチプレクサ12、バス
23、マルチプレクサ16およびバス25を介して、デ
ータレジスタr1 に転送される。その後、ハードウェア
によって、DPレジスタ31に記憶された内部メモリ4
7上のアドレスに対して、データレジスタr1 に記憶さ
れたデータがバス27を介して自動的に書き込まれる。
このように、マイクロプロセッサ1では、図21に示す
ロード命令「lw」およびストア命令「sw」の代わり
に、図12に示すようにレジスタ間転送命令「mov」
を記述したプログラムを実行する。
As a result, the data stored in the register r 3 is transferred to the data register r 1 via, for example, the bus 17, the multiplexer 12, the bus 23, the multiplexer 16 and the bus 25. Thereafter, the internal memory 4 stored in the DP register 31 is stored in hardware by the hardware.
The address of the 7, data stored in the data register r 1 is automatically written via the bus 27.
Thus, in the microprocessor 1, instead of the load instruction “lw” and the store instruction “sw” shown in FIG. 21, an inter-register transfer instruction “mov” as shown in FIG.
Is executed.

【0040】なお、図12に示すプログラムは、例え
ば、図13に示すようにも記述できる。図13に示すプ
ログラムでは、命令「add」のソースレジスタとして
データレジスタr0 およびレジスタr9 を指定してお
り、ディステイネイションアドレスとしてデータレジス
タr1 を指定している。但し、この場合に、DPレジス
タ30,31によって、内部メモリ47上の異なるバン
ク内のアドレスが指し示されている必要がある。図13
に示すプログラムは、マイクロプロセッサ1によって1
クロックサイクルで実行される。
The program shown in FIG. 12 can be described, for example, as shown in FIG. In the program shown in FIG. 13, the data register r 0 and the register r 9 are specified as the source register of the instruction “add”, and the data register r 1 is specified as the destination address. However, in this case, it is necessary that the DP registers 30 and 31 point to addresses in different banks on the internal memory 47. FIG.
The program shown in FIG.
Executed in clock cycles.

【0041】また、マイクロプロセッサ1では、内部メ
モリ47上の連続したメモリアドレスに記憶されたデー
タを加工する場合には、例えば、図14に示すようにプ
ログラムを記述する。図14に示すプログラムを実行す
ると、図2に示すDPレジスタ30,31に記憶されて
いるアドレスに対して順次に、例えば「+4」を加算し
て更新することで、データレジスタr0 ,r1 を介し
て、内部メモリ47における「+4」間隔のアドレスに
対して順次にアクセスが行われる。図13において、
「add r0 ,r9 ,r1 」は、データレジスタr0
に記憶されたデータと、レジスタr9 に記憶されたデー
タとを加算して、その加算結果のデータをデータレジス
タr1 に記憶することを示している。図14に示すプロ
グラムに応じた処理では、内部メモリ47上の8個のデ
ータを加工する。なお、図14に示すプログラムは、ル
ープを用いて記述してもよい。
In the microprocessor 1, when processing data stored at consecutive memory addresses on the internal memory 47, a program is described, for example, as shown in FIG. When the program shown in FIG. 14 is executed, the addresses stored in the DP registers 30 and 31 shown in FIG. 2 are sequentially updated by adding, for example, “+4”, thereby updating the data registers r 0 and r 1. , Accesses are sequentially made to addresses at intervals of “+4” in the internal memory 47. In FIG.
“Add r 0 , r 9 , r 1 ” is the data register r 0
The stored data, by adding the data stored in the register r 9, show that for storing data of the addition result in the data register r 1 is in. In the processing according to the program shown in FIG. 14, eight data on the internal memory 47 are processed. The program shown in FIG. 14 may be described using a loop.

【0042】マイクロプロセッサ1では、例えば、図3
に示す汎用レジスタモジュール11のレジスタr14をデ
ータレジスタとして扱い、レジスタr14に対応したDP
レジスタを更に設けることで、メモリアクセスのパスを
3系統にすることができる。この場合に、図15に示す
ように、プログラムを記述することで、加算命令「ad
d」の3個の全てのオペランドにおいて、データレジス
タr0 ,r14,r1 を指定することができる。
In the microprocessor 1, for example, FIG.
DP of treatment, corresponding to the register r 14 registers r 14 of general register module 11 shown in the data register
By additionally providing a register, three paths for memory access can be provided. In this case, as shown in FIG. 15, by describing a program, the addition instruction “ad
Data registers r 0 , r 14 , and r 1 can be specified in all three operands “d”.

【0043】以上説明したように、マイクロプロセッサ
1によれば、汎用レジスタモジュール11を構成する複
数の汎用レジスタの一部を、データレジスタr0 ,r1
として用いることで、プログラムにおいて、内部メモリ
47に対してのメモリアクセスのためのメモリリード命
令およびメモリライト命令を、別途記述する必要がな
い。すなわち、命令セットを、メモリアクセスが必要な
場合も含めて、汎用レジスタに記憶されたデータ相互間
で行う演算として統一して記述できる。すなわち、マイ
クロプロセッサ1によれば、内部メモリ47に対しての
アクセスは、汎用レジスタに対してのアクセスの延長と
して扱われ、ソフトウェアからは、データレジスタ
0 ,r1 をメモリウィンドウとして使用できる。
As described above, according to the microprocessor 1, some of the general-purpose registers constituting the general-purpose register module 11 are partially replaced by the data registers r 0 and r 1.
Therefore, it is not necessary to separately describe a memory read instruction and a memory write instruction for accessing the internal memory 47 in the program. In other words, the instruction set can be described as an operation performed between the data stored in the general-purpose registers, even when a memory access is required. That is, according to the microprocessor 1, the access to the internal memory 47 is treated as an extension of the access to the general-purpose register, and the data registers r 0 and r 1 can be used as a memory window from software.

【0044】また、マイクロプロセッサ1では、アクセ
スする内部メモリ47のアドレスおよびアクセスする順
番が予め決められている場合には、DPレジスタ30,
31のアドレス更新機能を用いて、DPレジスタ30,
31に記憶されているアドレスを自動的に更新すること
で、メモリアクセスのための手順を、プログラム内で毎
回明示して記述する必要がない。
In the microprocessor 1, if the address of the internal memory 47 to be accessed and the access order are determined in advance, the DP register 30,
31, the DP register 30,
By automatically updating the address stored in 31, there is no need to explicitly describe the procedure for memory access every time in a program.

【0045】そのため、内部メモリ47のメモリアドレ
ス空間内の連続したアドレスに記憶された複数のデータ
を順にアクセスして加工する場合に、アクセスするデー
タのアドレスを毎回指定する必要がなく、プログラムに
はALU演算命令のみを記述すればよい。このとき、デ
ータレジスタr0 ,r1 に対して、DPレジスタ30,
31が自動的に更新された直後に、内部メモリ47から
データを読み出すことで、ALU演算命令を実行する度
に、ALU13がメモリアクセスの完了を待たされるこ
とを回避できる。すなわち、ALU13がプログラムに
応じてALU演算を実行する時点で、内部メモリ47か
らデータレジスタr0 ,r1 に既にデータが既に読み込
まれている状態にすることができる。その結果、マイク
ロプロセッサ1における演算処理において、命令の多重
化を効率的に実現し、例えば、パイプライン処理におい
て、ALU演算命令を毎クロックサイクル実行できる。
また、ユーザによるプログラムの記述を簡単化できる。
Therefore, when sequentially accessing and processing a plurality of data stored at consecutive addresses in the memory address space of the internal memory 47, it is not necessary to specify the address of the data to be accessed each time, and the program is not required. Only the ALU operation instruction needs to be described. At this time, with respect to the data registers r 0, r 1, DP register 30,
By reading data from the internal memory 47 immediately after the 31 is automatically updated, it is possible to avoid waiting for the ALU 13 to complete the memory access every time the ALU operation instruction is executed. That is, at the time when the ALU 13 executes the ALU operation according to the program, the data can be already read from the internal memory 47 to the data registers r 0 and r 1 . As a result, in the arithmetic processing in the microprocessor 1, multiplexing of instructions can be efficiently realized, and for example, in pipeline processing, an ALU arithmetic instruction can be executed every clock cycle.
Further, the description of the program by the user can be simplified.

【0046】また、マイクロプロセッサ1によれば、2
個のDPレジスタ30,31を設け、内部メモリ47上
のデータに対して直接的にALU演算命令を実行するこ
とで、例えば、内部メモリ47上のデータを読み出して
加工した後に、内部メモリ47に書き戻す処理を1命令
で記述できる。しかも、この命令において、内部メモリ
47から読み出すデータのバンクと、内部メモリ47に
書き込むデータのバンクとが異なる場合に、命令を1ク
ロックサイクル内に実行できる。なお、DPレジスタ3
0,31が共に内部メモリ47の全てのアドレスを指定
できる場合には、内部メモリ47から読み出すデータの
アドレスと、内部メモリ47に書き込むデータのアドレ
スとが異なれば、命令を1クロックサイクル内に実行で
きる。例えば、プログラムにおいて、メモリアクセスを
伴う演算処理を、例えば図13に示すように1命令で記
述し、1クロックサイクル内で実行できる。
According to the microprocessor 1, 2
By providing the DP registers 30 and 31 and executing the ALU operation instruction directly on the data on the internal memory 47, for example, after reading and processing the data on the internal memory 47, The rewriting process can be described by one instruction. Moreover, in this instruction, if the bank of data read from the internal memory 47 is different from the bank of data written to the internal memory 47, the instruction can be executed within one clock cycle. Note that DP register 3
If both 0 and 31 can specify all the addresses of the internal memory 47, the instruction is executed within one clock cycle if the address of the data read from the internal memory 47 is different from the address of the data written to the internal memory 47. it can. For example, in a program, arithmetic processing involving memory access can be described by, for example, one instruction as shown in FIG. 13 and executed within one clock cycle.

【0047】また、マイクロプロセッサ1では、内部メ
モリ47にデータを書き戻す命令(ディスティネーショ
ンレジスタとしてデータレジスタr0 またはr1 を指定
するデータ転送命令)を連続して実行する場合に、DP
レジスタ30,31の自動読み込み機能を停止し、無駄
なメモリリードを無くすことができる。これにより、メ
モリライトを連続して実行することができ、命令の多重
化を実現できる。
Further, the microprocessor 1, when performing write back data to the internal memory 47 instructions (data transfer instruction specifying the data register r 0 or r 1 as the destination register) successively, DP
The automatic reading function of the registers 30 and 31 is stopped, and unnecessary memory reading can be eliminated. As a result, memory writes can be executed continuously, and multiplexing of instructions can be realized.

【0048】また、マイクロプロセッサ1では、データ
レジスタr0 ,r1 およびDPレジスタ30,31を用
いたメモリ構成にしたことで、図20に示す従来の5段
パイプライン構造におけるMEMステージが不要とな
り、図4に示すように、4段パイプライン構造にするこ
とができる。すなわち、データレジスタr0 ,r1 を用
いて内部メモリ47に書き込み動作を行うことから、内
部メモリ47に対しての書き込み動作を、WBステージ
において行われるレジスタ書き込み動作によって行うこ
とができる。従って、パイプライン処理に、メモリアク
セス処理のステージを独立して設ける必要がない。その
結果、マイクロプロセッサ1では、プロセッサ全体の制
御回路が簡単になり、外部割り込みを含む例外処理に対
しても柔軟な対応を行うことができる。
Further, in the microprocessor 1, the memory configuration using the data registers r 0 and r 1 and the DP registers 30 and 31 eliminates the need for the MEM stage in the conventional five-stage pipeline structure shown in FIG. As shown in FIG. 4, a four-stage pipeline structure can be adopted. That is, since the write operation is performed on the internal memory 47 using the data registers r 0 and r 1 , the write operation on the internal memory 47 can be performed by the register write operation performed in the WB stage. Therefore, it is not necessary to provide a memory access processing stage independently in the pipeline processing. As a result, in the microprocessor 1, the control circuit of the entire processor is simplified, and it is possible to flexibly cope with exception processing including an external interrupt.

【0049】第2実施形態 本実施形態のマイクロプロセッサは、内部メモリのバン
ク数、データレジスタおよびDPレジスタの数、およ
び、図1に示すマルチプレクサ12,16の代わりにマ
ルチプレクサ82を備えている点を除いて、基本的に、
前述した第1実施形態のマイクロプロセッサ1と同じ構
成をしている。図16は、本実施形態のマイクロプロセ
ッサ81の内部メモリ87の周辺の構成図である。図1
6に示すように、マイクロプロセッサ81は、内部メモ
リ87、DPレジスタ91,92,93、データレジス
タr0 ,r1 −R,r1 −W、マルチプレクサ82およ
びバス101〜106を備えている。
Second Embodiment The microprocessor according to the second embodiment is characterized in that the number of banks of the internal memory, the number of data registers and DP registers, and that a multiplexer 82 is provided instead of the multiplexers 12 and 16 shown in FIG. Except, basically,
It has the same configuration as the microprocessor 1 of the first embodiment described above. FIG. 16 is a configuration diagram around the internal memory 87 of the microprocessor 81 of the present embodiment. FIG.
As shown in 6, the microprocessor 81 includes an internal memory 87, DP register 91, 92 and 93, the data register r 0, r 1 -R, r 1 -W, a multiplexer 82 and bus 101-106.

【0050】また、マイクロプロセッサ81は、図1に
示すマイクロプロセッサ1と同様に、ALU13、プロ
グラムカウンタ34、インストラクションページメモリ
35、デコーダ36、バス17,18,19,20,2
3を備えている。また、マイクロプロセッサ81では、
図1に示すレジスタr1 の代わりに、レジスタr1 −R
およびレジスタr1 −Wを備えている。すなわち、マイ
クロプロセッサ81には、図16に示すデータレジスタ
0 ,r1 −R,r1 −Wの他に、レジスタr2 〜r15
が備えられている。なお、マイクロプロセッサ81で
は、プログラムの記述において論理的に、物理的なデー
タレジスタr1 −Rとデータレジスタr1 −Wとを、単
体のデータレジスタr1 として扱う。
The microprocessor 81 includes an ALU 13, a program counter 34, an instruction page memory 35, a decoder 36, and buses 17, 18, 19, 20, and 2, similarly to the microprocessor 1 shown in FIG.
3 is provided. In the microprocessor 81,
Instead of the register r 1 shown in FIG. 1, the register r 1 -R
And a register r 1 -W. That is, the microprocessor 81 has registers r 2 to r 15 in addition to the data registers r 0 , r 1 -R, and r 1 -W shown in FIG.
Is provided. The microprocessor 81 logically handles the physical data registers r 1 -R and the data registers r 1 -W as a single data register r 1 in the description of the program.

【0051】マイクロプロセッサ81では、DPレジス
タ91に記憶された内部メモリ87のメモリバンク11
0内のアドレスからデータを読み出して、データレジス
タr0 に記憶する。また、データレジスタr1 −Rは、
内部メモリ87のメモリバンク111からのデータ読み
出し動作専用であり、プログラムに記述された2オペラ
ンド演算命令においてディスティネーションレジスタと
して論理的なデータレジスタr1 のアドレスが指定され
ている場合に、DPレジスタ92に記憶されたメモリバ
ンク111内のアドレスから読み出されたデータを記憶
する。また、データレジスタr1 −Wは、内部メモリ8
7のメモリバンク112に対してのデータ書き込み動作
専用であり、プログラムに記述された2オペランド演算
命令においてディスティネーションレジスタとして論理
的なデータレジスタr1 のアドレスが指定されている場
合に、そのデータレジスタr1 −Wの記憶データを、D
Pレジスタ93に記憶されたメモリバンク112内のア
ドレスに書き込む。なお、論理的なデータレジスタr1
のアドレスの指定は、論理アドレスを直接指定する他、
例えば、論理レジスタ名を介して論理アドレスを間接的
に指定してもよい。
In the microprocessor 81, the memory bank 11 of the internal memory 87 stored in the DP register 91
Data is read from the address in 0 and stored in the data register r0. The data register r 1 -R is
A data read operation only from the memory bank 111 of internal memory 87, when the address of the logical data register r 1 is designated in the second operand arithmetic instructions written in the program as the destination register, DP register 92 The data read from the address in the memory bank 111 stored in the memory cell is stored. Further, the data register r 1 -W stores the internal memory 8
7 is a data write operation only with respect to the memory bank 112, if specified address of a logical data register r 1 as the destination register in the two-operand arithmetic instructions written in the program, the data register r 1 -W is stored in D
Write to the address in the memory bank 112 stored in the P register 93. Note that the logical data register r 1
In addition to specifying the logical address directly,
For example, a logical address may be indirectly specified via a logical register name.

【0052】以下、マイクロプロセッサ81の動作につ
いて説明する。マイクロプロセッサ81では、例えば、
図6に示すフォーマットを持つ2オペランド演算命令を
実行する。マイクロプロセッサ81では、例えば、図1
7に示すように、データレジスタr1 がディスティネー
ションアドレスに指定されている命令を実行する場合
に、先ず、DPレジスタ92に加算対象データが記憶さ
れたメモリバンク111内のアドレスを書き込むこと
で、ハードウェアによって、バス102を介してデータ
レジスタr1 −Rに当該加算対象データを読み出す。次
に、図1に示すALU13において、レジスタr5 に記
憶されたデータと、データレジスタr1 −Rに記憶され
たデータとの加算演算を行い、加算結果のデータをバス
106を介してデータレジスタr1 −W0 に記憶する。
また、加算結果のデータを書き戻すメモリバンク112
内のアドレスをDPレジスタ93に書き込む。これによ
って、データレジスタr1 −W0 に記憶された加算結果
のデータが、ハードウェアによって、バス103を介し
てメモリバンク112に書き戻される。
Hereinafter, the operation of the microprocessor 81 will be described. In the microprocessor 81, for example,
A two-operand operation instruction having the format shown in FIG. 6 is executed. In the microprocessor 81, for example, FIG.
As shown in FIG. 7, when the data register r 1 executes the instruction specified by the destination address, first, the address in the memory bank 111 in which the data to be added is stored is written to the DP register 92, The data to be added is read out to the data register r 1 -R via the bus 102 by hardware. Next, the ALU13 shown in FIG. 1, the data stored in the register r 5, performs addition operation between data stored in the data register r 1 -R, data register data of the addition result through the bus 106 Store it in r 1 -W 0 .
The memory bank 112 to which the data of the addition result is written back
Is written into the DP register 93. As a result, the data of the addition result stored in the data register r 1 -W 0 is written back to the memory bank 112 via the bus 103 by hardware.

【0053】以下、マイクロプロセッサ81において、
内部メモリ87上の連続したメモリアドレスに記憶され
たデータを加工する場合について説明する。マイクロプ
ロセッサ81において、例えば、図18に示すプログラ
ムを図4に示す4段パイプライン処理で実行するとき、
図19(A)に示すようになる。図18に示すコードC
1 〜C6 の各コードは、図19(A)に示すパイプライ
ン処理において、IFステージで命令「add r0
1 」のフェッチが行われ、DECステージで、DPレ
ジスタ91に記憶されたメモリバンク110上のアドレ
スからデータレジスタr0 に読み出された一方の加算対
象データが、データレジスタr0 からALU13のポー
トAINに出力される。それと共に、DPレジスタ92
に記憶されたメモリバンク111上のアドレスからデー
タレジスタr1 −Rに読み出された他方の加算対象デー
タがデータレジスタr1 −RからALU13のポートB
INに出力される。次に、ALUステージで、ALU1
3において双方の加算対象データを用いた加算が行わ
れ、WBステージで、ALU13の加算結果がポートA
OUTからデータレジスタr1 −Wに書き込まれる。そ
の後、DPレジスタ93に記憶されたメモリバンク11
2上のアドレスに、データレジスタr1 −Wの記憶デー
タが書き戻される。
Hereinafter, in the microprocessor 81,
A case where data stored at consecutive memory addresses on the internal memory 87 is processed will be described. In the microprocessor 81, for example, when the program shown in FIG. 18 is executed by the four-stage pipeline processing shown in FIG.
The result is as shown in FIG. Code C shown in FIG.
Each code 1 -C 6, in the pipeline processing shown in FIG. 19 (A), the instruction in the IF stage "the add r 0,
Fetching r 1 "is performed, in DEC stage, one of the addition-target data from the stored address on the memory bank 110 has been read into the data register r 0 in the DP register 91, the data register r 0 of ALU13 Output to port AIN. At the same time, the DP register 92
Port from the stored address on the memory bank 111 of the other read the data register r 1 -R addition target data from the data register r 1 -R of ALU13 to B
Output to IN. Next, at the ALU stage, ALU1
3, the addition using both the addition target data is performed, and the addition result of the ALU 13 is output to the port A in the WB stage.
OUT is written to the data register r 1 -W. Thereafter, the memory bank 11 stored in the DP register 93
The data stored in the data register r 1 -W is written back to the address on 2.

【0054】このとき、図19(A)に示すように、ク
ロックサイクルTで、コードC1 のIFステージが行わ
れる。図19(B)に示すように、クロックサイクルT
+1〜T+6で、コードC1 〜C6 によるデータレジス
タr0 に対してのメモリリード動作(デコードステー
ジ)が順に行われる。また、図19(C)に示すよう
に、クロックサイクルT+1〜T+6で、コードC1
6 によるデータレジスタr1 −Rに対してのメモリリ
ード動作(デコードステージ)が順に行われる。さら
に、図19(D)に示すように、クロックサイクルT+
3〜T+8で、コードC1 〜C6 によるデータレジスタ
1 −Wに対してのメモリライト動作(WBステージ)
が順に行われる。すなわち、マイクロプロセッサ81で
は、前述したように、データレジスタr1 −R,r1
Wr0 を設けたことで、データレジスタr1 に対しての
メモリリード動作とメモリライト動作とを同時に行うこ
とができる。その結果、図18に示すコードC1 〜C6
を、それぞれ1クロックサイクルで実行できる。
At this time, as shown in FIG. 19A, the IF stage of the code C 1 is performed in the clock cycle T. As shown in FIG. 19B, the clock cycle T
+ In 1 to T + 6, a memory read operation for the data registers r 0 by the code C 1 -C 6 (decode stage) is carried out in order. Further, as shown in FIG. 19C, in clock cycles T + 1 to T + 6, the codes C 1 to C 1 are output.
The memory read operation (decode stage) for the data register r 1 -R by C 6 is performed in order. Further, as shown in FIG. 19D, the clock cycle T +
From 3 to T + 8, a memory write operation to the data register r 1 -W by the codes C 1 to C 6 (WB stage)
Are performed in order. That is, in the microprocessor 81, as described above, the data registers r 1 -R, r 1-
By providing Wr 0 , a memory read operation and a memory write operation for data register r 1 can be performed simultaneously. As a result, the codes C 1 to C 6 shown in FIG.
Can be executed in one clock cycle.

【0055】以上説明したように、マイクロプロセッサ
81によれば、論理的なデータレジスタr1 をディステ
ィネーションアドレスに指定してリードモディファイラ
イトを行う2オペランド演算命令を繰り返し連続して行
う場合であっても、各演算命令を1クロックサイクルで
実行できる。また、マイクロプロセッサ81によれば、
2オペランド演算命令を用いて同一のクロックサイクル
で内部メモリ87上の異なる3個のデータにアクセスを
行い、実質的に3オペランド演算と同等の演算を実現で
きる。
[0055] As described above, according to the microprocessor 81, a case where the specified logical data register r 1 to the destination address performed continuously repeated 2 operand operation instruction for performing the read-modify-write Also, each operation instruction can be executed in one clock cycle. According to the microprocessor 81,
By using a two-operand operation instruction, three different data on the internal memory 87 are accessed in the same clock cycle, and an operation substantially equivalent to a three-operand operation can be realized.

【0056】本発明は上述した実施形態には限定されな
い。例えば、上述した実施形態では、汎用レジスタモジ
ュール11のうち、2個の汎用レジスタをデータレジス
タr0 ,r1 として用いた場合について例示したが、デ
ータレジスタの数は、1以上であれば任意である。ま
た、データレジスタr0 ,r1 の使用方法は、内部メモ
リ47との間のインターフェイスとして用いる他、例え
ば、複数のマイクロプロセッサを搭載した並列処理プロ
セッサにおけるマイクロプロセッサ相互間で通信を行う
際のFIFO(First In FIrst out)メモリとして用い
てもよい。また、データレジスタr0,r1 は、ローカ
ルメモリあるいはスタックメモリとして用いてもよい。
The present invention is not limited to the above embodiment. For example, in the above-described embodiment, the case where two general-purpose registers are used as the data registers r 0 and r 1 in the general-purpose register module 11 has been described as an example. is there. The method of using the data registers r 0 and r 1 is not only used as an interface with the internal memory 47, but also for example, when a FIFO is used for communication between microprocessors in a parallel processor equipped with a plurality of microprocessors. (First In First Out) It may be used as a memory. Further, the data registers r 0 and r 1 may be used as a local memory or a stack memory.

【0057】また、マイクロプロセッサ1では、図1に
示すように、マルチプレクサ12とマルチプレクサ16
とを独立に設けたが、マルチプレクサ16の機能をマル
チプレクサ12に組み込んでもよい。
In the microprocessor 1, as shown in FIG.
The functions of the multiplexer 16 may be incorporated in the multiplexer 12.

【0058】また、マイクロプロセッサ1では、図2に
示すように、内部メモリ47を2バンクに分けて構成し
たが、内部メモリ47を3バンク以上にバンク分けした
構成、あるいは、バンク分けしていない構成にしてもよ
い。
Further, in the microprocessor 1, as shown in FIG. 2, the internal memory 47 is divided into two banks, but the internal memory 47 is divided into three or more banks, or the banks are not divided. It may be configured.

【0059】また、マイクロプロセッサ1では、図1に
示すように、汎用レジスタモジュール11に、複数の汎
用レジスタの一部として、データレジスタr0 ,r1
設けたが、汎用レジスタモジュール11の外部に、デー
タレジスタr0 ,r1 を設け、汎用レジスタとは別に扱
うようにしてもよい。
In the microprocessor 1, as shown in FIG. 1, the general-purpose register module 11 is provided with data registers r 0 and r 1 as a part of a plurality of general-purpose registers. May be provided with data registers r 0 and r 1 so as to be handled separately from general-purpose registers.

【0060】また、図16に示すメモリ構造を持つマイ
クロプロセッサ81において、内部メモリ87の代わり
に3本のFIFOメモリを備え、データレジスタr1
Rに入力用のFIFOメモリを接続し、データレジスタ
1 −Wに出力用のFIFOメモリを接続した構成にし
てもよい。
In the microprocessor 81 having the memory structure shown in FIG. 16, three FIFO memories are provided instead of the internal memory 87, and the data register r 1-
A configuration may be adopted in which an input FIFO memory is connected to R and an output FIFO memory is connected to the data register r 1 -W.

【0061】[0061]

【発明の効果】以上説明したように、本発明の演算処理
装置によれば、第1のデータレジスタと第2のデータレ
ジスタとを同一の論理アドレスを用いてディスティネー
ションレジスタに指定し、リードモディファイライトを
行うことを指示する2オペランド演算命令を実行する場
合に、同一のクロックサイクルで内部メモリ上の異なる
3個のデータにアクセスを行い、実質的に3オペランド
演算と同等の演算を実現できる。また、本発明の演算処
理装置およびその方法によれば、上述した2オペランド
演算命令を繰り返し連続して行う場合であっても、パイ
プライン処理を用いて、各演算命令を効率的に実行でき
る。さらに、本発明の演算処理装置によれば、内部メモ
リに対してのアクセスをデータレジスタを用いて実現す
ることで、内部メモリに対してのアクセスをレジスタに
対してのアクセスと同様に扱うことができる。その結
果、ユーザのプログラム作成時の負担を軽減できる。
As described above, according to the arithmetic processing unit of the present invention, the first data register and the second data register are designated as the destination register using the same logical address, and the read modification is performed. When a two-operand operation instruction instructing to perform writing is executed, three different data in the internal memory are accessed in the same clock cycle, and an operation substantially equivalent to the three-operand operation can be realized. Further, according to the arithmetic processing device and the method thereof of the present invention, even when the above-described two-operand arithmetic instruction is repeatedly and continuously performed, each arithmetic instruction can be efficiently executed using pipeline processing. Further, according to the arithmetic processing device of the present invention, by realizing access to the internal memory using the data register, access to the internal memory can be handled in the same manner as access to the register. it can. As a result, the burden on the user when creating a program can be reduced.

【図面の簡単な説明】[Brief description of the drawings]

【図1】図1は、本発明の第1実施形態に係わるマイク
ロプロセッサの構成図である。
FIG. 1 is a configuration diagram of a microprocessor according to a first embodiment of the present invention.

【図2】図2は、図1に示すマイクロプロセッサのデー
タレジスタ、DPレジスタおよび内部メモリを説明する
ための図である。
FIG. 2 is a diagram for explaining a data register, a DP register, and an internal memory of the microprocessor shown in FIG. 1;

【図3】図3は、図1に示す汎用レジスタモジュールの
構成を説明するための図である。
FIG. 3 is a diagram for explaining a configuration of a general-purpose register module shown in FIG. 1;

【図4】図4は、図1に示すマイクロプロセッサの4段
パイプラン処理を説明するための図である。
FIG. 4 is a diagram for explaining a four-stage pipeline process of the microprocessor shown in FIG. 1;

【図5】図5は、図1に示すマイクロプロセッサのパイ
プラン処理を説明するための図である。
FIG. 5 is a diagram for explaining the pipeline process of the microprocessor shown in FIG. 1;

【図6】図6は、図1に示すマイクロプロセッサにおい
て用いられる2オペランド演算命令のフォーマットを説
明するための図である。
FIG. 6 is a view for explaining a format of a two-operand operation instruction used in the microprocessor shown in FIG. 1;

【図7】図7は、図6に示す演算命令において、ソース
レジスタにデータレジスタを指定した場合の演算命令を
説明するための図である。
FIG. 7 is a diagram for explaining an operation instruction when a data register is specified as a source register in the operation instruction shown in FIG. 6;

【図8】図8は、図6に示す演算命令において、ディス
ティネーションレジスタにデータレジスタを指定した場
合の演算命令を説明するための図である。
FIG. 8 is a diagram for explaining an operation instruction when a data register is designated as a destination register in the operation instruction shown in FIG. 6;

【図9】図9は、図6に示す演算命令において、ソース
レジスタおよびディスティネーションレジスタの双方に
データレジスタを指定した場合の演算命令を説明するた
めの図である。
FIG. 9 is a diagram for explaining an operation instruction when a data register is designated as both a source register and a destination register in the operation instruction shown in FIG. 6;

【図10】図10は、図8に示す演算命令を連続して行
う場合に生じるパイプライン処理のストールを説明する
ための図である。
FIG. 10 is a diagram for explaining a stall in pipeline processing that occurs when the operation instructions shown in FIG. 8 are continuously performed.

【図11】図11は、図1に示すマイクロプロセッサに
おいて用いられる3オペランド演算命令のフォーマット
を説明するための図である。
FIG. 11 is a diagram for explaining a format of a three-operand operation instruction used in the microprocessor shown in FIG. 1;

【図12】図1に示すマイクロプロセッサにおいて、従
来のマイクロプロセッサにおける図21に示すプログラ
ムと同様の処理を記述したプログラムを説明するための
図である。
12 is a diagram for describing a program in the microprocessor shown in FIG. 1 that describes processing similar to the program shown in FIG. 21 in a conventional microprocessor.

【図13】図13は、図1に示すマイクロプロセッサに
おいて、図12に示すプログラムと同様の処理を、ソー
スレジスタおよびディステイネイションアドレスとして
データレジスタを指定して記述したプログラムを説明す
るための図である。
13 is a view for explaining a program in which the same processing as the program shown in FIG. 12 is described in the microprocessor shown in FIG. 1 by designating a data register as a source register and a destination address; It is.

【図14】図14は、図1に示すマイクロプロセッサに
おいて、内部メモリ上の連続したメモリアドレスに記憶
されたデータを加工する処理を示すプログラムを説明す
るための図である。
FIG. 14 is a diagram for explaining a program showing a process of processing data stored at consecutive memory addresses on an internal memory in the microprocessor shown in FIG. 1;

【図15】図15は、図1に示すマイクロプロセッサに
おいて、メモリアクセスのパスを3系統にして、加算命
令の3個の全てのオペランドにデータレジスタを指定し
た命令を含むプログラムを説明するための図である。
FIG. 15 is a diagram for explaining a program including an instruction in which a data register is specified in all three operands of an addition instruction in the microprocessor shown in FIG. FIG.

【図16】図16は、本発明の第2実施形態に係わるマ
イクロプロセッサの内部メモリ87の周辺の構成図であ
る。
FIG. 16 is a configuration diagram around an internal memory 87 of a microprocessor according to a second embodiment of the present invention.

【図17】図17は、2オペランド演算命令において、
ディスティネーションアドレスとしてデータレジスタを
指定した場合の例を説明するための図である。
FIG. 17 shows two-operand operation instructions.
FIG. 4 is a diagram for describing an example in which a data register is specified as a destination address.

【図18】図18は、本発明の第2実施形態に係わるマ
イクロプロセッサにおいて、内部メモリ上の連続したメ
モリアドレスに記憶されたデータを加工するプログラム
を説明するための図である。
FIG. 18 is a diagram for explaining a program for processing data stored in continuous memory addresses on an internal memory in the microprocessor according to the second embodiment of the present invention.

【図19】図19は、図18に示すプログラムを図4に
示す4段パイプライン処理で実行した場合を説明するた
めの図である。
FIG. 19 is a diagram for explaining a case where the program shown in FIG. 18 is executed by the four-stage pipeline processing shown in FIG. 4;

【図20】図20は、従来のマイクロプロセッサの5段
パイプライン処理を説明するための図である。
FIG. 20 is a diagram for explaining five-stage pipeline processing of a conventional microprocessor.

【図21】図21は、図20に示す5段パイプライン処
理において、メモリ上のデータをALU演算の対象とし
た処理のプログラムを説明するための図である。
FIG. 21 is a diagram for explaining a program for processing in which data on a memory is subjected to an ALU operation in the five-stage pipeline processing shown in FIG. 20;

【符号の説明】[Explanation of symbols]

1…マイクロプロセッサ、11…汎用レジスタモジュー
ル、12,16…マルチプレクサ、13…ALU、2
1,22,23,24,25,26,27…バス、3
0,31…DPレジスタ、35…インストラクションペ
ージメモリ、36…デコーダ、45、46…バンク、4
7…内部メモリ、50…外部メインメモリ18
DESCRIPTION OF SYMBOLS 1 ... Microprocessor, 11 ... General-purpose register module, 12, 16 ... Multiplexer, 13 ... ALU, 2
1, 22, 23, 24, 25, 26, 27 ... bus 3,
0, 31: DP register, 35: instruction page memory, 36: decoder, 45, 46: bank, 4
7 internal memory, 50 external main memory 18

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】演算対象となるデータを記憶する内部メモ
リと、 前記内部メモリ上のアドレスを記憶する第1のデータポ
インタレジスタおよび第2のデータポインタレジスタ
と、 前記第1のデータポインタレジスタに記憶された前記内
部メモリ上のアドレスから読み出したデータを記憶する
第1のデータレジスタと、 前記第2のデータポインタレジスタに記憶された前記内
部メモリ上のアドレスに、記憶データを書き込む第2の
データレジスタと、 デコード結果に基づいて演算を行う演算手段と、 前記第1のデータレジスタと前記第2のデータレジスタ
とを同一の論理アドレスを用いてディスティネーション
レジスタに指定し、リードモディファイライトを行うこ
とを指示する2オペランド演算命令をデコードした場合
に、前記演算手段が前記第1のデータレジスタに記憶さ
れたデータを用いて演算処理を行い、その演算処理の結
果を、前記第2のデータレジスタに書き込むように制御
するデコード手段とを有する演算処理装置。
An internal memory for storing data to be operated on; a first data pointer register and a second data pointer register for storing addresses on the internal memory; and a first data pointer register for storing the data. A first data register for storing data read from an address on the internal memory, and a second data register for writing storage data to an address on the internal memory stored in the second data pointer register Calculating means for performing an operation based on a decoding result; and designating the first data register and the second data register as a destination register using the same logical address, and performing a read-modify-write. When the designated two-operand operation instruction is decoded, the operation means Serial first performs arithmetic processing using the data stored in the data register, the result of the arithmetic processing, the arithmetic processing unit and a decoding means for controlling to write to the second data register.
【請求項2】前記内部メモリは、前記第1のデータレジ
スタにデータを読み出す第1のバンクと、前記第2のデ
ータレジスタからデータを書き込む第2のバンクとを少
なくとも有する請求項1に記載の演算処理装置。
2. The internal memory according to claim 1, wherein said internal memory has at least a first bank for reading data from said first data register and a second bank for writing data from said second data register. Arithmetic processing unit.
【請求項3】前記内部メモリ上のアドレスを記憶する第
3のデータポインタレジスタと、 前記第3のデータポインタレジスタに記憶された前記内
部メモリ上のアドレスから読み出したデータを記憶する
第3のデータレジスタとをさらに有する請求項1に記載
の演算処理装置。
3. A third data pointer register for storing an address on the internal memory, and a third data for storing data read from the address on the internal memory stored in the third data pointer register. The arithmetic processing device according to claim 1, further comprising a register.
【請求項4】前記内部メモリ上のアドレスを記憶する第
3のデータポインタレジスタと、 前記第3のデータポインタレジスタに記憶された前記内
部メモリ上のアドレスから読み出したデータを記憶する
第3のデータレジスタとをさらに有し、 前記内部メモリは、前記第3のデータレジスタにデータ
を読み出す第3のバンクをさらに有する請求項2に記載
の演算処理装置。
4. A third data pointer register for storing an address on the internal memory, and a third data for storing data read from the address on the internal memory stored in the third data pointer register. The arithmetic processing device according to claim 2, further comprising a register, wherein the internal memory further includes a third bank for reading data to the third data register.
【請求項5】前記第1のデータポインタレジスタおよび
前記第2のデータポインタレジスタは、前記内部メモリ
に対してのアクセスに所定のパターンがある場合に、そ
れぞれ記憶しているアドレスを前記パターンに応じて自
動的に更新する請求項1に記載の演算処理装置。
5. The first data pointer register and the second data pointer register, when there is a predetermined pattern in access to the internal memory, respectively store addresses stored in accordance with the pattern. The arithmetic processing device according to claim 1, wherein the arithmetic processing device automatically updates the data.
【請求項6】前記第1のデータレジスタおよび前記第2
のデータレジスタは、それぞれ前記第1のデータポイン
タレジスタおよび第2のデータポインタレジスタに記憶
されたアドレスが更新された直後に、前記内部メモリの
前記更新後のアドレスからデータを読み出して記憶する
請求項1に記載の演算処理装置。
6. The first data register and the second data register.
The data register reads and stores data from the updated address in the internal memory immediately after the addresses stored in the first data pointer register and the second data pointer register are updated, respectively. 2. The arithmetic processing device according to 1.
【請求項7】前記第1のデータレジスタおよび前記第2
のデータレジスタは、前記内部メモリへのデータ書き込
みを連続して繰り返し行う場合に、それぞれ前記第1の
データポインタレジスタおよび前記第2のデータポイン
タレジスタに記憶されたアドレスが更新された直後に前
記内部メモリの前記更新後のアドレスからデータを読み
出す機能を停止する請求項1に記載の演算処理装置。
7. The first data register and the second data register.
When the data write to the internal memory is continuously and repeatedly performed, the data register immediately after the address stored in the first data pointer register and the address stored in the second data pointer register are updated, respectively. The arithmetic processing device according to claim 1, wherein a function of reading data from the updated address of the memory is stopped.
【請求項8】前記第1のデータレジスタおよび前記第2
のデータレジスタと、前記第1のデータデータレジスタ
および前記第2のデータレジスタ以外の前記複数の汎用
レジスタと、前記演算手段との相互間の接続を切り換え
る切換手段をさらに有する請求項1に記載の演算処理装
置。
8. The first data register and the second data register.
2. The switch according to claim 1, further comprising: a switching unit that switches a connection between the data register, the plurality of general-purpose registers other than the first data register and the second data register, and the arithmetic unit. Arithmetic processing unit.
【請求項9】前記第1のデータレジスタおよび前記第2
のデータレジスタと前記演算手段との接続形態と、前記
第1のデータレジスタおよび前記第2のデータレジスタ
以外の前記複数の汎用レジスタと前記演算手段との接続
形態とが等価である請求項1に記載の演算処理装置。
9. The first data register and the second data register.
2. The connection form between the data register and the calculation means is equivalent to the connection form between the plurality of general-purpose registers other than the first data register and the second data register and the calculation means. An arithmetic processing unit according to any one of the preceding claims.
【請求項10】前記第1のデータレジスタと前記第2の
データレジスタとを同一の論理アドレスを用いてディス
ティネーションレジスタに指定し、リードモディファイ
ライトを行うことを指示する2オペランド演算命令を実
行する場合に、 プログラムカウンタが指し示す命令メモリ上のアドレス
から命令を読み出す命令フェッチ処理と、 前記フェッチした命令をデコードし、前記第1のデータ
レジスタおよび前記第3のデータレジスタから前記演算
手段にデータを転送するデコード処理と、 前記演算手段による演算処理と、 前記演算処理の演算結果を前記第2のデータレジスタに
書き込むライトバック処理とを多重化した4段パイプラ
イン処理を行う請求項4に記載の演算処理装置。
10. A two-operand operation instruction designating the first data register and the second data register as a destination register using the same logical address, and instructing to perform a read-modify-write operation. An instruction fetch process for reading an instruction from an address on an instruction memory indicated by a program counter; decoding the fetched instruction; and transferring data from the first data register and the third data register to the arithmetic means. 5. The arithmetic operation according to claim 4, wherein a four-stage pipeline process is performed in which a decoding process for performing the operation, a calculation process by the arithmetic unit, and a write-back process for writing an operation result of the arithmetic process to the second data register are performed. Processing equipment.
【請求項11】所定の2オペランド演算命令を繰り返し
連続して実行する請求項10に記載の演算処理装置。
11. The arithmetic processing unit according to claim 10, wherein a predetermined two-operand arithmetic instruction is repeatedly and continuously executed.
【請求項12】前記第1のデータポインタレジスタに記
憶された前記内部メモリ上のアドレスからデータを読み
出して前記第1のデータレジスタに記憶する処理と、 前記第2のデータレジスタに書き込まれたデータを、第
2のデータポインタレジスタに記憶された前記内部メモ
リ上のアドレスに書き戻す処理と第3のデータポインタ
レジスタに記憶された前記内部メモリ上のアドレスから
データを読み出して前記第3のデータレジスタに記憶す
る処理とを前記4段パイプライン処理と並行して行う請
求項10に記載の演算処理装置。
12. A process of reading data from an address on the internal memory stored in the first data pointer register and storing the data in the first data register, and data written in the second data register. Back to the address on the internal memory stored in the second data pointer register, and reading the data from the address on the internal memory stored in the third data pointer register to read the third data register The arithmetic processing device according to claim 10, wherein the processing to be stored in the arithmetic processing unit is performed in parallel with the four-stage pipeline processing.
【請求項13】第1のデータレジスタと第2のデータレ
ジスタとを同一の論理アドレスを用いてディスティネー
ションレジスタに指定し、第3のデータレジスタをソー
スレジスタに指定し、リードモディファイライトを行う
ことを指示する2オペランド演算命令を実行する場合
に、 プログラムカウンタが指し示す命令メモリ上のアドレス
から命令を読み出す命令フェッチ処理と、 前記フェッチした命令をデコードし、前記第1のデータ
レジスタおよび前記第3のデータレジスタから前記演算
手段にデータを転送するデコード処理と、 演算処理と、 前記演算処理の演算結果を前記第2のデータレジスタに
書き込むライトバック処理とを多重化した4段パイプラ
イン処理を行い、 第1のデータポインタレジスタに記憶された内部メモリ
上のアドレスからデータを読み出して前記第1のデータ
レジスタに記憶する処理と、 前記第2のデータレジスタに書き込まれたデータを、第
2のデータポインタレジスタに記憶された前記内部メモ
リ上のアドレスに書き戻す処理と、 第3のデータポインタレジスタに記憶された前記内部メ
モリ上のアドレスからデータを読み出して前記第3のデ
ータレジスタに記憶する処理とを前記4段パイプライン
処理と並行して行う演算処理方法。
13. Specifying the first data register and the second data register as a destination register using the same logical address, specifying the third data register as a source register, and performing a read-modify-write. An instruction fetch process for reading an instruction from an address on an instruction memory indicated by a program counter, decoding the fetched instruction, and executing the first data register and the third Performing a four-stage pipeline process that multiplexes a decode process of transferring data from a data register to the arithmetic unit, an arithmetic process, and a write-back process of writing an arithmetic result of the arithmetic process to the second data register; The address on the internal memory stored in the first data pointer register Reading the data from the memory and storing the data in the first data register; and writing back the data written in the second data register to the address on the internal memory stored in the second data pointer register. An arithmetic processing method for performing, in parallel with the four-stage pipeline processing, processing of reading data from an address on the internal memory stored in a third data pointer register and storing the data in the third data register .
JP21682897A 1997-08-11 1997-08-11 Arithmetic processor and its method Pending JPH1165841A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21682897A JPH1165841A (en) 1997-08-11 1997-08-11 Arithmetic processor and its method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21682897A JPH1165841A (en) 1997-08-11 1997-08-11 Arithmetic processor and its method

Publications (1)

Publication Number Publication Date
JPH1165841A true JPH1165841A (en) 1999-03-09

Family

ID=16694539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21682897A Pending JPH1165841A (en) 1997-08-11 1997-08-11 Arithmetic processor and its method

Country Status (1)

Country Link
JP (1) JPH1165841A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264909A (en) * 2006-03-28 2007-10-11 Toshiba Corp Processor controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007264909A (en) * 2006-03-28 2007-10-11 Toshiba Corp Processor controller

Similar Documents

Publication Publication Date Title
US5978838A (en) Coordination and synchronization of an asymmetric, single-chip, dual multiprocessor
US5838984A (en) Single-instruction-multiple-data processing using multiple banks of vector registers
EP1001335B1 (en) Data processing unit with coprocessor interface
JP2834837B2 (en) Programmable controller
US6988181B2 (en) VLIW computer processing architecture having a scalable number of register files
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
KR100267098B1 (en) Vector processor design to reduce register file read ports
JPH09311786A (en) Data processor
JPH11154144A (en) Method and device for interfacing processor to coprocessor
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
JP2001092662A (en) Processor core and processor using the same
US7139899B2 (en) Selected register decode values for pipeline stage register addressing
JPH07120278B2 (en) Data processing device
JP2003044273A (en) Data processor and data processing method
JPH10232821A (en) Data processor
JP2002215387A (en) Data processor provided with instruction translator, and memory interface device
US20030033503A1 (en) Single instruction having opcode and stack control field
JPH0248732A (en) Micro processor for instruction pipe line system
US6725355B1 (en) Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks
US7340591B1 (en) Providing parallel operand functions using register file and extra path storage
US7024540B2 (en) Methods and apparatus for establishing port priority functions in a VLIW processor
JPH096614A (en) Data processor
JPH1165841A (en) Arithmetic processor and its method
US20020032849A1 (en) VLIW computer processing architecture having the program counter stored in a register file register
US20020087821A1 (en) VLIW computer processing architecture with on-chip DRAM usable as physical memory or cache memory