JPH0298734A - Data processor - Google Patents

Data processor

Info

Publication number
JPH0298734A
JPH0298734A JP63251076A JP25107688A JPH0298734A JP H0298734 A JPH0298734 A JP H0298734A JP 63251076 A JP63251076 A JP 63251076A JP 25107688 A JP25107688 A JP 25107688A JP H0298734 A JPH0298734 A JP H0298734A
Authority
JP
Japan
Prior art keywords
stage
instruction
register
code
operand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP63251076A
Other languages
Japanese (ja)
Other versions
JPH0769805B2 (en
Inventor
Soichi Kobayashi
聡一 小林
Masahito Matsuo
雅仁 松尾
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 JP63251076A priority Critical patent/JPH0769805B2/en
Publication of JPH0298734A publication Critical patent/JPH0298734A/en
Priority to US07/754,285 priority patent/US5269008A/en
Publication of JPH0769805B2 publication Critical patent/JPH0769805B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

PURPOSE:To perform a balanced pipeline processing at the time of processing a POP instruction by generating a process unit with respect to a source operand shown by the POP instruction indirectly, and performing the pipeline processing of the process unit. CONSTITUTION:The step code (4-1) of an instruction one preceding to the POP instruction requires three steps in a processing at an E stage 205, therefore, a two step queue state for the step code of the POP instruction is generated at an F stage 204. In such a case, the number of step codes to be processed at the E stage 205 is reduced by the absorption of a step code (2-1), and as a result, the number of steps required for the entire processing can be reduced. Thus, high possibility to reduce the number of steps required for the processing can be generated when a queue state on a pipeline mechanism is generated by absorbing an unrequired step code (2-1) on the pipeline mechanism. In such a way, it is possible to accelerate the processing speed of a data processor.

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、パイプライン処理方式によって動作するデー
タ処理装置に間するもので、特にポツプ(POP)命令
をソースオペランドとする命令の処理機能を有するデー
タ処理装置に関する。
[Detailed Description of the Invention] [Field of Industrial Application] The present invention relates to a data processing device that operates according to a pipeline processing method, and in particular has a processing function for an instruction that uses a POP instruction as a source operand. The present invention relates to a data processing device having a data processing device.

[従来の技術] 従来のデータ処理装置のパイプライン処理機能の構成を
第11図のブロック図に示す。
[Prior Art] The configuration of the pipeline processing function of a conventional data processing device is shown in the block diagram of FIG.

従来のデータ処理装置は、命令フェッチステージ391
.命令デコードステージ392.オペランドアドレス計
算ステージ393.オペランドフェッチステージ394
及び実行ステージ395の各ステージにて構成されてい
る。そして、命令はデコード段階で複数のパイプライン
処理のための単位コード(ステップコード)に分解され
てパイプライン処理される。この様なデータ処理装置に
関しては特開昭63−89932号にその詳細が開示さ
れている。
A conventional data processing device has an instruction fetch stage 391.
.. Instruction decode stage 392. Operand address calculation stage 393. Operand fetch stage 394
and an execution stage 395. Then, in the decoding stage, the instruction is decomposed into unit codes (step codes) for pipeline processing and pipeline processing is performed. Details of such a data processing device are disclosed in Japanese Patent Laid-Open No. 89932/1983.

上述の如き従来のデータ処理装置では、パイプラインを
構成する要素の内で命令フェッチステージ391.命令
デコードステージ392.オペランドアドレス計算ステ
ージ393及びオペランドフェッチステージ394等の
前処理を行う部分と、実行ステージ395の如く命令を
実行する部分とに分けられる。
In the conventional data processing device as described above, the instruction fetch stage 391 . Instruction decode stage 392. It is divided into a part that performs preprocessing such as an operand address calculation stage 393 and an operand fetch stage 394, and a part that executes instructions such as an execution stage 395.

前処理を行う部分は、命令中で指定されるオペランドに
関する前処理だけを行う、そして、前処理によって準備
されたオペランドを用いて実行ステージ395により命
令が実行される。
The preprocessing portion performs only preprocessing regarding operands specified in the instruction, and the instruction is executed by the execution stage 395 using the operands prepared by the preprocessing.

しかし、このようなデータ処理装置では、命令中にはオ
ペランドの指定部を一つだけ有するが、命令の機能上の
意味において暗に示されたオペランドを他にも有するよ
うな命令に関してはパイプライン上において十分な前処
理が行われない場合が生じる。
However, in such data processing devices, although an instruction has only one operand specification part, instructions that have other operands implicit in the functional meaning of the instruction are not processed in the pipeline. In some cases, sufficient pretreatment is not performed on the above.

このような命令の一例として、ポツプ(r’OP)命令
が考えられる。  POP命令は、デスティネーション
としてメモリまたはレジスタを指定可能であるとする。
An example of such an instruction is a pop (r'OP) instruction. It is assumed that the POP instruction can specify a memory or a register as a destination.

データ処理装置では通常、メモリ空間上にデータを退避
させておくためのスタック領域が形成されている。そし
て、スタックにデータを退避させる命令、及び退避させ
ておいたデータをスタックから読み出す命令が用意され
ている。前者の命令をpt+so命令、後者の命令をP
OP命令とそれぞれ称し、これらは互いに対称な命令で
ある。なお、スタックポインタ(SP)は、スタックの
最上位(スタックトップ)のアドレスを常時示している
In a data processing device, a stack area is usually formed in a memory space for saving data. An instruction to save data to the stack and an instruction to read the saved data from the stack are provided. The former command is pt+so command, the latter command is P
These instructions are called OP instructions and are symmetrical to each other. Note that the stack pointer (SP) always indicates the address of the highest (stack top) of the stack.

POP命令は、オペランドとしてはデスティネーション
を指定するためのオペランドのみを有するlオペランド
命令である。しかしPOP命令は、命令自体の機能とし
ては現実にはソースオペランドがスタックトップである
ことを暗に示している2オペランド命令であり、メモリ
ーメモリ間あるいはメモリーレジスタ間転送命令と同等
な命令である。
The POP instruction is an l-operand instruction that has only an operand for specifying a destination. However, in terms of the function of the instruction itself, the POP instruction is actually a two-operand instruction that implies that the source operand is the top of the stack, and is equivalent to an inter-memory or inter-memory-register transfer instruction.

pop命令の処理に際して、従来のデータ処理装置のパ
イプライン上においては、POP命令のデスティネーシ
ョン指定部によりデスティネーションの処理のためのス
テップコードのみが生成される。
When processing a POP instruction, only a step code for processing the destination is generated by the destination designation section of the POP instruction on the pipeline of a conventional data processing device.

このステップコードの処理とは、命令の前処理を行う部
分であるオペランドアドレス計算ステージ393におい
てデスティネーションのアドレス計算を行うことである
。しかし、POP命令はソースの指定部を有さないため
、ソースに関するステップコードが生成されず、ソース
指定部に関する前処理は一切行われない。
Processing of this step code means calculating the destination address in the operand address calculation stage 393, which is a part that performs preprocessing of the instruction. However, since the POP instruction does not have a source specification section, no step code regarding the source is generated, and no preprocessing regarding the source specification section is performed.

ソースの指定部に関する処理は、pop命令の実行時に
一連のマイクロ命令により、命令を実行する部分である
実行ステージ395において実行される。具体的には、
実行ステージ395において先ずスタックトップに対し
てデータのフェッチを行うというソース指定部に関する
処理が行われ、次いでフェッチしたデータを前処理で準
備されたデスティネーシッンアドレスに転送するという
手順でpop命令が処理される。
Processing related to the source specification part is executed in the execution stage 395, which is the part that executes instructions, by a series of microinstructions when the pop instruction is executed. in particular,
In the execution stage 395, the process related to the source specification section of fetching data from the top of the stack is first performed, and then the pop instruction is transferred to the destination address prepared in preprocessing. It is processed.

このような処理に際しては、通常の2オペランド命令で
は前処理として行われるべきソースの指定部に関する処
理を実行ステージ395において行うため、実行ステー
ジ395の処理負担が非常に大きい。また各ステージに
おける処理負荷の不均一が生じるため、パイプライン処
理における処理効率低下が惹起する。
In such processing, the execution stage 395 carries out processing related to the source specification part that should be performed as preprocessing in a normal two-operand instruction, so the processing load on the execution stage 395 is extremely large. Furthermore, since the processing load at each stage is uneven, processing efficiency in pipeline processing is reduced.

[発明が解決しようとする課題] 従来のデータ処理装置においては、パイプライン処理機
構上で上述の如< pop命令が処理される。
[Problems to be Solved by the Invention] In a conventional data processing device, the pop instruction as described above is processed on a pipeline processing mechanism.

この際、実行ステージ自身がスタックトップからオペラ
ンドをフェッチする処理を行う必要があるので、前処理
を行うステージに比較して命令を実行するステージにお
けるデ〜り処理の負荷が大きくなり、POP命令の処理
効率が向上しないという問題がる。
At this time, since the execution stage itself needs to perform processing to fetch the operand from the top of the stack, the load of de-processing in the stage that executes the instruction is greater than that in the stage that performs preprocessing, and There is a problem that processing efficiency does not improve.

本発明はこのような問題を解決するためになされたもの
であり、ソースオペランドが特定のアトレンジングモー
ドに限定されているlオペランド命令をパイプライン上
で効率よく処理し得るデータ処理装置の提供を目的とす
る。
The present invention has been made to solve such problems, and it is an object of the present invention to provide a data processing device that can efficiently process l-operand instructions in which the source operand is limited to a specific attributing mode on a pipeline. purpose.

[課題を解決するための手段] 本発明に係るデータ処理装置は、pop命令の処理に際
して、命令デコード時に暗に示されているソースオペラ
ンドの処理単位を生成する手段と、デスティネーション
がレジスタである場合には命令を実行するまでにデステ
ィネーションオペランドの処理単位とソースオペランド
の処理単位とを処理して1つの処理単位として生成する
手段を備えている。
[Means for Solving the Problems] A data processing device according to the present invention includes means for generating a processing unit of a source operand that is implicitly indicated at the time of instruction decoding when processing a pop instruction, and a destination that is a register. In some cases, a means is provided for processing a destination operand processing unit and a source operand processing unit to generate one processing unit before executing an instruction.

[作用] 本発明のデータ処理装置では、パイプライン上の前処理
を行う部分において暗に示されているオペランドに対し
ても処理単位を生成し、スタックトップにあるデータが
ブリフェッチ処理され、またデスティネーションがレジ
スタである場合はデスティネーションオペランドに関す
る処理が行わ〔発明の実施例〕 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
[Operation] In the data processing device of the present invention, a processing unit is also generated for the operand implied in the preprocessing part on the pipeline, data at the top of the stack is briefetched, and the data at the destination is If the nation is a register, processing related to the destination operand is performed. [Embodiments of the Invention] The present invention will be described in detail below with reference to drawings showing embodiments thereof.

(1)「本発明のデータ処理装置の命令フォーマット」
本発明のデータ処理装置の命令は16ビツト単位で可変
長となっており、奇数バイト長の命令は使用しない。
(1) “Instruction format of the data processing device of the present invention”
The instructions of the data processing device of the present invention have a variable length in units of 16 bits, and instructions with an odd number of bytes are not used.

本発明のデータ処理装置では高開度命令を短いフォーマ
ットとする目的で特に工夫された命令フォーマット体系
を有する。例えば、2オペランド命令に関しては基本的
に°4バイト+絋鉱部°の構成を有して総てのアドレッ
シングモードが利用可能な一般形フオーマットと、使用
顧度の高い命令及びアドレッシングモードのみが使用可
能な短縮形フォーマットの2つのフォーマットとがある
The data processing device of the present invention has an instruction format system specially devised for the purpose of making high opening degree instructions into a short format. For example, for 2-operand instructions, there is a general format that basically has a configuration of 4 bytes + 10 bits and all addressing modes can be used, and only frequently used instructions and addressing modes are used. There are two possible abbreviated formats.

本発明のデータ処理装置の命令フォーマ、ト中に現われ
る記号の意味は次の通りである。
The meanings of the symbols appearing in the instruction format of the data processing device of the present invention are as follows.

−:オペレーションコードが入る部分 #;リテラルまたは即値が入る部分 Ea:8ミニ8ビツト形のアドレッシングモードでオペ
ランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマントは、第12図に示す如く右側が1.sB側
で且つ高いアドレスになっている。アドレスNとアドレ
スN+1の2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは前述の如く、命令
が必ず16ビノト(2バイト)単位でフェッチ及びデコ
ードされることをi?i Qとしているためである。
-: Part where operation code is entered #; Part where literal or immediate value is entered Ea: Part where operands are specified in 8 mini 8-bit addressing mode Sh: Part where operands are specified in 6-bit abbreviated addressing mode Rn: Register The partial formant that specifies the above operand by register number is 1. on the right side as shown in FIG. It is on the sB side and has a high address. The instruction format cannot be determined without looking at the two bytes of address N and address N+1, but this means that, as mentioned above, instructions are always fetched and decoded in units of 16 bits (2 bytes). This is because i Q.

本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのl!aまたはshの拡張部は必
ずそのEaまたはshの基本部を含むハーフワードの直
後に位置される。これは、命令により暗黙に指定される
即値データあるいは命令の拡張部に優先する。従って、
4バイト以上の命令では、Eaの拡張部によって命令の
オペレーションコードが分断される場合がある。
In the data processing device of the present invention, l! of each operand in any format. The a or sh extension is always placed immediately after the halfword containing the Ea or sh base. This overrides any immediate data or extensions of the instruction implicitly specified by the instruction. Therefore,
For instructions of 4 bytes or more, the operation code of the instruction may be divided by the extension part of Ea.

また後述する如く、多段間接モードによってEaの拡張
部に更に拡張部が付く場合にも、次の命令オペレーショ
ンコードよりもそちらの方が優先される0例えば、第1
ハーフワードにEalを含み、第2ハーフワードにEa
2を含み、第3ハーフワードまである6バイト命令の場
合を考える。1Ealに多段間接モードを使用したため
、普通の拡張部の他に多段間接モードの拡張部も付くも
のとすると、実際の命令ビットパターンは、命令の第1
ハーフワード(Eatの基本部を含む)、 Balの拡
張部、Ealの多段間接モード拡張部、命令の第2ハー
フワード(Ea2の基本部を含む)+ Ealの拡張部
、命令の第3ハーフワードの順となる。
Furthermore, as will be described later, even if an extension part is added to the extension part of Ea in the multi-stage indirect mode, that part is given priority over the next instruction operation code.
Halfword contains Eal, second halfword contains Ea
Consider the case of a 6-byte instruction containing 2 and up to the third halfword. Since the multi-stage indirect mode is used for 1Eal, assuming that the multi-stage indirect mode extension part is attached in addition to the normal extension part, the actual instruction bit pattern is
halfword (contains the base of Eat), extension of Bal, multi-indirect mode extension of Eal, second halfword of instruction (contains base of Ea2) + extension of Eal, third halfword of instruction The order is as follows.

(1,1) r短縮形2オペランド命令」第13図から
第16図は2オペランド命令の短縮形フォーマントを示
す模式図である。
(1,1) r Shortened Two-Operand Instruction" FIGS. 13 to 16 are schematic diagrams showing the shortened form of a two-operand instruction.

第13図はメモリーレジスタ間演算命令のフォーマント
を示す模式図である。このフォーマットには、ソースオ
ペランド側がメモリとなるL−formatと、デステ
ィネーションオペランド側がメモリとなるS−rort
matとがある。
FIG. 13 is a schematic diagram showing the formant of an operation instruction between memory registers. This format includes L-format, where the source operand side is memory, and S-rort, where the destination operand side is memory.
There is mat.

L−formatでは、shはソースオペランドの指定
フィールドを、Rnはデスティネーションオペランドの
レジスタの指定フィールドを、RRはshのオペランド
サイズの指定をそれぞれ表す、レジスタ上に位置された
デスティネーションオペランドのサイダハ32ヒツトに
固定されている。レジスタ側とメモリ側とのサイズが異
なり、ソース側のサイズが小さい場合に符号拡張が行な
われる。
In the L-format, sh is the specification field of the source operand, Rn is the specification field of the destination operand register, and RR is the specification of the sh operand size. Fixed to humans. Sign extension is performed when the size of the register side and the memory side are different and the size of the source side is small.

54or+watでは、shはデスティネーションオペ
ランドの指定フィールドを、Rnはソースオペランドの
レジスタ指定フィールドを、IIRはshのオペランド
サイズの指定をそれぞれ表す。レジスタ上に位置された
ソースオペランドのサイズは32ビツトに固定されてい
る。レジスタ側とメモリ側とのサイズが異なり、ソース
側のサイズが大きい場合にオーバフローした部分の切捨
てとオーバフローチエツクが行なわれる。
In 54or+wat, sh represents the destination operand designation field, Rn represents the source operand register designation field, and IIR represents the sh operand size designation. The size of the source operand located on the register is fixed at 32 bits. If the size of the register side and the memory side are different and the size of the source side is large, the overflow portion is truncated and an overflow check is performed.

第14図はレジスターレジスタ間演算命令のフォーマッ
ト(R−format)を示す模式図である。Rnはデ
スティネーションレジスタの指定フィールド、Rmはソ
ースレジスタの指定フィールドである。オペランドサイ
ズは32ビツトのみである。
FIG. 14 is a schematic diagram showing the format (R-format) of an inter-register operation instruction. Rn is a destination register designation field, and Rm is a source register designation field. The operand size is only 32 bits.

第15図はリテラル−メモリ間演算命令のフォーマy 
ト(Q−format)を示す模式図である。■はディ
スティネーションオペランドサイズの指定フィールド、
■1はリテラルによるソースオペランドの指定フィール
ド、shはデスティ7−シヨンオベランドの指定フィー
ルドである。
Figure 15 shows the format y of literal-memory operation instructions.
FIG. ■ is the destination operand size specification field,
(1) 1 is a literal source operand specification field, and sh is a destination operand specification field.

第16図は即値−メモリ間演算命令のフォーマント(1
−format)を示す模式図である。間はオペランド
サイズの指定フィールド(ソース、ディスティネーショ
ンで共通) 、 Shはデスティネーションオペランド
の指定フィールドである。 I−rortmatの即値
のサイズはデスティネーション側のオペランドのサイズ
と共通に8.16.32ビツトとなり、ゼロ拡張及び符
号拡張は行なわれない。
Figure 16 shows the formant (1
-format). Sh is a field specifying the operand size (common for source and destination), and Sh is a field specifying the destination operand. The size of the immediate value of I-rortmat is 8.16.32 bits, which is the same as the size of the destination operand, and zero extension and sign extension are not performed.

(1,2) r−船形lオペランド命令」第17図はl
オペランド命令の一船形フオーマツ) (Gl−for
mat)を示す模式図である。開はオペランドサイズの
指定フィールドである。一部のG1−format命令
では、Eaの拡張部以外にも拡張部がある。また、開を
使用しない命令もある。
(1, 2) r-hull shape l operand command” Figure 17 shows l
(Gl-for
FIG. Open is a field specifying the operand size. Some G1-format instructions have extensions in addition to the Ea extension. There are also instructions that do not use open.

(1,3) r−船形2オペランド命令」第18図から
第20図は2オペランド命令の一船形フオーマットを示
す模式図である。このフォーマットに含まれるのは、8
ビツトで指定する一船形アドレンシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合がある。
(1, 3) r-Ship-shaped 2-operand instruction" FIGS. 18 to 20 are schematic diagrams showing the 1-ship format of the 2-operand instruction. This format includes 8
This is an instruction with a maximum of two operands in single-ship addressing mode specified by bits. The total number of operands itself may be three or more.

第18図は第1オペランドがメモリ読み出しを必要とす
る命令のフォーマット(G−format)を示す模式
図である。 EaMはデスティネーションオペランドの
指定フィールド、開はデスティネーションオペランドサ
イズの指定フィールド、EaRはソースオペランド指定
フィールド、RRはソースオペランドサイズの指定フィ
ールドである。一部のG−format命令では、Ea
MあるいはEaRの拡張部以外にも拡張部がある。
FIG. 18 is a schematic diagram showing the format (G-format) of an instruction whose first operand requires memory reading. EaM is a destination operand designation field, Open is a destination operand size designation field, EaR is a source operand designation field, and RR is a source operand size designation field. In some G-format instructions, Ea
There are extensions other than those of M or EaR.

第19図は第1オペランドが8ビツト即値の命令のフォ
ーマット(E−format)を示す模式図である。
FIG. 19 is a schematic diagram showing the format (E-format) of an instruction whose first operand is an 8-bit immediate value.

EaMはデスティネーションオペランドの指定フィール
ド、藺はデスティネーンヨンオベランドサイズの指定フ
ィールド、■・・・はソースオペランド値である。
EaM is a destination operand specification field, ◯ is a destination operand size specification field, and . . . is a source operand value.

E−4ormatとI−formatとは機能的には類
似しているが、考え方の点では大きく違っている。具体
的には、E−formatはあくまでも2オペランド−
船形(G−4ormat)の派生形であり、ソースオペ
ランドのサイズが8ビツト固定、ディスティネーション
オペランドのサイズが8 /16/32ビットからの選
択となっている。つまり、E−for膳atは異種サイ
ズ間の演算を前提とし、デスティネーションオペランド
のサイズに合わせて8ビツトのソースオペランドがゼロ
拡張または符号拡張される。一方、Lformatは、
特に転送命令及び比較命令で頻度の多い即値のパターン
を短縮形にしたものであり、ソースオペランドとディス
ティネーションオペランドのサイズが等しい。
Although E-4ormat and I-format are similar in function, they are very different in terms of concept. Specifically, E-format only has two operands.
It is a derivative of the G-4 format, with the source operand size being fixed at 8 bits and the destination operand size being selectable from 8/16/32 bits. That is, the E-for set assumes an operation between different sizes, and the 8-bit source operand is zero-extended or sign-extended to match the size of the destination operand. On the other hand, Lformat is
This is a shortened form of the immediate value pattern that is often used in transfer instructions and comparison instructions in particular, and the size of the source operand and destination operand are equal.

第20図は、第1オペランドがアドレス計算のみの命令
のフォーマット(GA−for+aat)を示す模式図
である。Ealllはデスティネーションオペランドの
指定フィールド、四はデスティ不−ションオベランドサ
イズの指定フィールド、EaAはソースオペランドの指
定フィールドである。ソースオペランドとしては実行ア
ドレスの計算結果自体が使用される。
FIG. 20 is a schematic diagram showing the format of an instruction whose first operand is only address calculation (GA-for+aat). Eall is a destination operand designation field, 4 is a destination operand size designation field, and EaA is a source operand designation field. The execution address calculation result itself is used as the source operand.

第20図は、ショートブランチ命令のフォーマットを示
す模式図である。ccccはブランチ条件指定フィール
ド、disp:8はジャンプ先との変位指定フィールド
であり、本発明のデータ処y1装置では8ビツトで変位
を指定する場合には、ビノトバクーンでの指定値を2倍
して変位値とする。
FIG. 20 is a schematic diagram showing the format of a short branch instruction. cccc is a branch condition specification field, and disp:8 is a displacement specification field with respect to the jump destination. In the data processing y1 device of the present invention, when specifying a displacement in 8 bits, double the specified value in Vinoto Bakun. Let it be a displacement value.

(1,,4) rアドレッシングモード」本発明のデー
タ処理装置のアドレッシングモード指定方法には、レジ
スタを含めて6ビノトで指定する短縮形と、8ビ、トで
措定する一般形とがある。
(1, 4) r Addressing Mode The method of specifying the addressing mode of the data processing device of the present invention includes a short form in which the addressing mode is specified in 6 bits including registers, and a general form in which it is specified in 8 bits.

未定義のアドレッシングモードが指定された場合、ある
いは意味的に考えて明らかに不適当なアドレッシングモ
ードの組み合わせが指定された場合には、未定義命令が
実行された場合同様に予約命令例外が発生され、例外処
理が起動される。
If an undefined addressing mode is specified, or if a semantically inappropriate combination of addressing modes is specified, a reserved instruction exception will occur in the same way as when an undefined instruction is executed. , exception handling is triggered.

これに該当するのは、テ″ステイネ−ジョンが即値モー
ドの場合、アドレス計算を伴うべきアドレッシングモー
ド指定フィールドで即値モードを使用した場合等である
This applies, for example, when the ``stainability'' is in the immediate value mode, or when the immediate value mode is used in the addressing mode designation field that should involve address calculation.

フォーマットの図中で使われる記号の意味は次の通りで
ある。
The meanings of the symbols used in the format diagram are as follows.

Rn:レジスタ指定 seem EA:EAで示されるアドレスのメモリ内容
(Sh)  :Gビットの短縮形アドレッシングモード
での指定方法 (Ea)  :8ビツトの一般形アドレッシングモード
での指定方法 フォーマットの図において破線にて囲繞された部分は拡
張部を示す。
Rn: Register specificationseem EA: Memory contents of the address indicated by EA (Sh): Specification method in G-bit abbreviated addressing mode (Ea): Specification method in 8-bit general addressing mode Broken line in the format diagram The area surrounded by indicates an extension.

(1,4,1,)  rM本アドレッシングモード」本
発明のデータ処理装置は様々なアドレッシングモードを
サポートする。それらの内、本発明のデータ処理装置で
サポートする基本アドレッシングモードには、レジスタ
直接モード、レジスタ間接モード、レジスタ相対間接モ
ード、即値モード、絶対モード、PC(プログラムカウ
ンタ)相対間接モード、スタックポツプモード及びスタ
ックブツシュモードがある。
(1, 4, 1,) rM Book Addressing Mode” The data processing device of the present invention supports various addressing modes. Among these, the basic addressing modes supported by the data processing device of the present invention include register direct mode, register indirect mode, register relative indirect mode, immediate mode, absolute mode, PC (program counter) relative indirect mode, and stack pop. There are two modes: mode and stack mode.

レジスタ直接モードはレジスタの内容をそのままオペラ
ンドとする。フォーマットの模式図を第22図に示す、
Rnは汎用レジスタの番号を示す。
In register direct mode, the contents of the register are used as operands. A schematic diagram of the format is shown in Figure 22.
Rn indicates the number of a general-purpose register.

レジスタ間接モードはレジスタの内容をアドレスとする
メモリの内容をオペランドとする。フォーマットの模式
図を第23図に示す。Rnは汎用レジスタの番号を示す
In register indirect mode, the operand is the contents of the memory whose address is the contents of the register. A schematic diagram of the format is shown in FIG. Rn indicates the number of a general-purpose register.

レジスタ相対間接モードはディスプレースメント値が1
6ビツトであるか32ビツトであるかにより2種類があ
る。それぞれ、レジスタの内容に16ビツトまたは32
ビツトのディスプレースメント値を加えた値をアドレス
とするメモリの内容をオペランドとする。フォーマット
の模式図を第24図に示す、 Rnは汎用レジスタの番
号を示す、 disp : 16とdtsp : 32
とはそれぞれ各々16ビツトのディスプレースメント偵
または32ビツトのディスプレースメント値を示す、デ
ィスプレースメント値は符号付きとして扱う。
In register relative indirect mode, the displacement value is 1.
There are two types depending on whether it is 6 bits or 32 bits. 16 bits or 32 bits for register contents, respectively.
The operand is the contents of the memory whose address is the value plus the bit displacement value. A schematic diagram of the format is shown in Figure 24. Rn indicates the general-purpose register number, disp: 16 and dtsp: 32.
represent a 16-bit displacement value or a 32-bit displacement value, respectively, and the displacement values are treated as signed.

即値モードは命令コード中で指定されるピントパターン
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第25図に示す。
In the immediate value mode, the focus pattern specified in the instruction code is treated as a binary number and used as an operand. A schematic diagram of the format is shown in FIG.

ism−dataは即値を示す* ism−dataの
サイズは、オペランドサイズとして命令中で指定される
ism-data indicates an immediate value.* The size of ism-data is specified in the instruction as the operand size.

絶対モードはアドレス値が16ビツトで示されるか32
ビツトで示されるかにより2[類ある。それぞれ、命令
コード中で指定される16ビツトまたは32ビツトのビ
ットパターンをアドレスとするメモリの内容をオペラン
ドとする。フォーマットの模式図を第26図に示す、 
abs:16とabs:32とはそれぞれ16ビツトま
たは32ビツトのアドレス値を示す。
In absolute mode, the address value is indicated by 16 bits or 32
There are 2 types depending on what is indicated by the bit. Each operand is the contents of the memory whose address is a 16-bit or 32-bit bit pattern specified in the instruction code. A schematic diagram of the format is shown in Figure 26.
abs:16 and abs:32 indicate a 16-bit or 32-bit address value, respectively.

abs:16でアドレスが示される時は指定されたアド
レス値を32ビツトに符号拡張する。
When an address is indicated by abs:16, the specified address value is sign-extended to 32 bits.

PC相対間接モードはディスプレースメント値が16ビ
ツトか32ビツトかにより2種類ある−それぞれ、プロ
グラムカウンタの内容に16ビツトまたは32ビツトの
ディスプレースメント値を加えた値をアドレスとするメ
モリの内容をオペランドとする。
There are two types of PC relative indirect mode, depending on whether the displacement value is 16 bits or 32 bits - in each case, the operand is the contents of memory whose address is the program counter contents plus the 16-bit or 32-bit displacement value. do.

フォーマットの模式図を第27図に示す、 disp 
: 16とdisp : 32とはそれぞれ16ビツト
のディスプレースメント値または32ビツトのディスプ
レースメント値を示す、ディスプレースメント値は符号
付きとして扱う、PC相対間接モードにおいて、参照さ
れるプログラムカウンタの値はそのオペランドを含む命
令の先頭アドレスである。多段間接アドレッシングモー
ドにおいてプログラムカウンタの値が参照される場合に
も、同じように命令の先頭のアドレスをPC相対の基準
(直として使用する。
A schematic diagram of the format is shown in Figure 27.
: 16 and disp : 32 respectively indicate a 16-bit displacement value or a 32-bit displacement value. The displacement value is treated as signed. In PC relative indirect mode, the referenced program counter value is its operand. This is the start address of the instruction containing the . When the value of the program counter is referenced in the multi-stage indirect addressing mode, the first address of the instruction is similarly used as a PC-relative reference.

スタックポンプモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
The stack pump mode uses the contents of the memory whose address is the contents of the stack pointer (SP) as the operand.

オペランドアクセス後、スタックボ・インクをオペラン
ドサイズだけインクリメントする。
After accessing the operand, increment the stack box by the operand size.

例えば、32ビツトデータを汲う場合には、オペランド
アクセス後にSPが÷4だけ更新(インクリメント)さ
れる、B、Hのサイズのオペランドに対するスタックポ
ツプモードの指定も可能であり、それぞれSPが目、÷
2だけ更新(インクリメント)される、フォーマットの
模式図を第28図に示す、オペランドに対しスタックポ
ツプモードが意味を持たないものに関しては予約命令例
外が発生される。
For example, when fetching 32-bit data, it is possible to specify stack pop mode for operands of size B and H, in which the SP is updated (incremented) by 4 after the operand is accessed, and the SP is the target for each. ,÷
FIG. 28 shows a schematic diagram of the format in which the stack pop mode is updated (incremented) by 2. A reserved instruction exception is generated for operands for which the stack pop mode has no meaning.

具体的に予約命令例外となるのは、writeオペラン
ド、read−modify−wri teオペランド
に対するスタックポツプモード指定である。
Specifically, the reserved instruction exception is the stack pop mode specification for the write operand and read-modify-write operand.

スタックブツシュモードはスタックポインタの内容をオ
ペランドサイズだけデクリメントした内容をアドレスと
するメモリの内容をオペランドとする。スタックブツシ
ュモードでは、オペランドアクセス前にスタックポイン
タがデクリメントされる0例えば、32ビツトデータを
扱う場合には、オペランドアクセス前にSPが−4だけ
更新(デクリメント)される、B、Hのサイズのオペラ
ンドに対するスタックブツシュモードの指定も可能であ
り、それぞれSPが−1,−2だけ更新(デクリメント
)される、フォーマントの模式図を第29図に示す、オ
ペランドに対してスタックブツシュモードが意味を持た
ないものに関しては、予約命令例外が発生される。具体
的に予約命令例外となるのは、readオペランド、r
ead−modify−writeオペランドに対すス
タックブツシュモード指定である。
In stack bush mode, the operand is the contents of the memory whose address is the contents obtained by decrementing the contents of the stack pointer by the operand size. In stack bush mode, the stack pointer is decremented before operand access.For example, when handling 32-bit data, SP is updated (decremented) by -4 before operand access. It is also possible to specify the stacked bush mode for the operand, and a schematic diagram of the formant in which SP is updated (decremented) by -1 and -2 is shown in Figure 29. For those that have no meaning, a reserved instruction exception is generated. Specifically, the reserved instruction exception is the read operand, r
This is the stack bush mode specification for the ead-modify-write operand.

(1,4,2) r多段間接アドレッシングモード」如
何に複雑なアドレッシングも、基本的には加算と間接参
照の組み合わせに分解される。従って、加算と間接参照
のオペレージロンをアドレッシングのプリミティブとし
て与えておき、それを任意に組み合わせることができれ
ば、如何なる複雑なアドレッシングモードをも実現可能
となる0本発明のデータ処理装置の多段間接アドレッシ
ングモードはこの様な考え方に基づいたアドレッシング
モードである@?jllなアドレッシングモードはモジ
ュール間のデータ参照あるいはAI (人工知能)言語
の処理系に特に有用である。
(1, 4, 2) Multi-stage indirect addressing mode No matter how complex addressing is, it is basically broken down into a combination of addition and indirect reference. Therefore, if the operations of addition and indirect reference are given as addressing primitives and can be combined arbitrarily, any complex addressing mode can be realized. @? is an addressing mode based on this idea. This addressing mode is particularly useful for inter-module data references or AI (artificial intelligence) language processing systems.

多段間接アドレッシングモードを指定する場合、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ヘ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
When specifying the multi-stage indirect addressing mode, the basic addressing mode specification field specifies one of three types of specification methods: register-based multi-stage indirect mode, PC-based multi-stage indirect mode, and absolute hash multi-stage indirect mode.

レジスタベース多段間接モードはレジスタのイ直を拡張
する多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットの模式図を第30図
に示す、 Rnは汎用レジスタの番号を示す。
The register-based multi-stage indirect mode is an addressing mode that uses the register address as a base value for multi-stage indirect addressing that expands. A schematic diagram of the format is shown in FIG. 30, where Rn indicates the number of the general-purpose register.

PCベース多段間接モードはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第3
1図に示す。
The PC-based multi-stage indirect mode is an addressing mode in which the value of the program counter is used as the base value for multi-stage indirect addressing. A schematic diagram of the format is shown in the third section.
Shown in Figure 1.

絶対ベース多段間接モードはゼロを拡張する多段間接ア
ドレッシングのベース値とするアドレッシングモードで
ある。フォーマットの模式図を第32図に示す。
The absolute base multi-stage indirect mode is an addressing mode that uses zero as the base value of extended multi-stage indirect addressing. A schematic diagram of the format is shown in FIG.

拡張する多段間接モード指定フィールドは16ビツトを
単位としており、これを任意回反復する。
The multi-stage indirect mode specification field to be expanded has a unit of 16 bits, and this is repeated any number of times.

1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスクのスケーリング(Xll X
2. ×4+ X8)と加算、メモリの間接参照を行な
う。多段間接モードのフォーマットの模式図を第33図
に示す。各フィールドは以下に示す意味を持つ。
One-stage multi-stage indirect mode allows addition of displacement and scaling of index registration (Xll
2. ×4+X8) and performs memory indirect reference. A schematic diagram of the format of the multi-stage indirect mode is shown in FIG. Each field has the meaning shown below.

E;O E++1 :多段間接モード継続 ニア]ルス計算終了 tap ==> address  or opera
nd!=0 :メモリ間接参照なし tap 4 disp 4 RX t 5cale =
=> Lap■・l :メモリ間接参照あり ■em tmp + disp + Rx傘5cale
 =−>LipM=O:  <Rx>をインデクスとし
て使用トl ;特殊なインデクス <RX>・0  インデクス値を加算しない  (RX
=O) くRX〉・1  プログラムカウンタをインデクス値と
して使用 (Rx=PC) <Rx>=2=   reserved口・O:多段間
接モード中の4ビツトのフィールドd4の値を4倍して
ディスプレースメント値とし、これを加算する d4は符号付きとして扱い、オペラン ドのサイズとは関係なく必ず4倍して 使用する D=l  :多段間接モードの拡張部で指定されたdi
spx(16/32ピッ日をディスプレースメント値と
し、これを加算する 拡張部のサイズはd4フィールドで指 定する d4=o001   dispxは16ビツ(・d4・
0010   dispxは32ビツト××=インデク
スのスケール(scale=1/2/4/8)プログラ
ムカウンタに対してX2. X4. X 13のスケー
リングを行なった場合には、その段の処理終了後の中間
(a(tap〉として不定値が入る。この多段間接モー
ドによって得られる実効アドレスは予測できない値とな
るが、例外は発生しない。プログラムカウンタに対する
スケーリングの指定は行なってはいけない。
E; O E++1: Continuation of multi-stage indirect mode] End of Luss calculation tap ==> address or opera
nd! =0: No memory indirect reference tap 4 disp 4 RX t 5cale =
=> Lap■・l: Memory indirect reference ■em tmp + disp + Rx umbrella 5cale
=->LipM=O: Use <Rx> as index; Special index <RX>・0 Do not add index value (RX
=O) RX>・1 Use program counter as index value (Rx=PC) <Rx>=2= reserved port・O: Displace by multiplying the value of 4-bit field d4 in multi-stage indirect mode by 4. d4 is treated as a signed value and is always multiplied by 4 regardless of the size of the operand.D=l: di specified in the extension part of multi-stage indirect mode
spx (16/32 bit days is the displacement value, and the size of the extension section to which this is added is specified in the d4 field. d4 = o001 dispx is 16 bits (・d4・
0010 dispx is 32 bits xx=scale of index (scale=1/2/4/8) X2. X4. If scaling of No. Do not specify scaling for the program counter.

多段間接モードによる命令フォーマットのバリエーショ
ンを第34図、第35図に示す。
Variations in instruction formats in the multi-stage indirect mode are shown in FIGS. 34 and 35.

第34図は、多段間接モードが維続するか終了するかの
バリエーションを示す。
FIG. 34 shows variations on whether the multi-stage indirect mode continues or ends.

第35図は、ディスプレースメントのサイズのバリエー
ションを示す。
FIG. 35 shows variations in displacement size.

任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上では任意の段数が可
能になっている。
If a multi-stage indirect mode with an arbitrary number of stages can be used, there is no need for the compiler to differentiate between cases based on the number of stages, which has the advantage of reducing the burden on the compiler. This is because even if the frequency of multiple indirect references is very low, the compiler must always be able to generate correct code. Therefore, any number of stages is possible in the format.

(1,5) r例外処理」 本発明のデータ処理装置はソフトウェア負荷の軽減のた
め豊富な例外処理機能を存する0本発明のデータ処理装
置では、例外処理は命令処理を再実行するもの(例外)
、命令処理を完了するもの(トラップ)及び割込の3種
類に分けて名称をつけている。また本発明のデータ処理
装置では、この3種の例外処理とシステム障害とを総称
してEITと称する。
(1, 5) Exception Handling” The data processing device of the present invention has abundant exception handling functions to reduce the software load. In the data processing device of the present invention, exception handling involves re-executing instruction processing (except )
They are divided into three types and named: , those that complete instruction processing (traps), and interrupts. Furthermore, in the data processing apparatus of the present invention, these three types of exception handling and system failure are collectively referred to as EIT.

(2)「機能ブロックの構成」 第1図は本発明のデータ処理装置の構成を示すブロック
図である。
(2) "Configuration of Functional Blocks" FIG. 1 is a block diagram showing the configuration of the data processing device of the present invention.

本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令フェッチ部101.命令デコード部102、 
PC計算部103.オペランドアドレス計算部104゜
マイクロROM部105.データ演算部106.外部パ
スインターフ二イス部107に分かれる。
Functionally, the inside of the data processing device of the present invention can be roughly divided into an instruction fetch unit 101. instruction decoding unit 102,
PC calculation section 103. Operand address calculation unit 104゜Micro ROM unit 105. Data calculation unit 106. It is divided into an external path interface section 107.

第1図では、その他にCPU外部にアドレスを出力する
ためのアドレス出力回路10Bと、CPu外部とデータ
を入出力するためのデータ入出力回路109とを他の機
能ブロック部と分けて示した。
In addition, in FIG. 1, an address output circuit 10B for outputting an address to the outside of the CPU, and a data input/output circuit 109 for inputting and outputting data to and from the outside of the CPU are shown separately from other functional blocks.

(2,1) r命令フェッチ部J 命令フェッチ部101にはブランチバッファ、命令キュ
ーとその制御部等があり、次にフェッチすべき命令のア
ドレスを決定してブランチバッファあるいはCPII外
部のメモリから命令を7エツチする。またブランチバッ
ファへの命令登録をも行う。
(2, 1) r Instruction fetch unit J The instruction fetch unit 101 includes a branch buffer, an instruction queue and its control unit, and determines the address of the next instruction to be fetched and fetches the instruction from the branch buffer or memory outside the CPII. 7 times. It also registers instructions to the branch buffer.

ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63−56731号に開示されている。
Since the branch buffer is small, it operates as a selective cache. Details of the operation of the branch buffer are disclosed in Japanese Patent Laid-Open No. 63-56731.

次にフェッチすべき命令のアドレスは、命令キュー30
1に入力すべき命令のアドレスとして専用のカウンタに
て計算される0分岐あるいはジャンプが発止した場合に
は、新たな命令のアドレスがPC計算部103あるいは
データ演算部106から転送されてくる。
The address of the next instruction to be fetched is stored in the instruction queue 30.
When a 0 branch or jump, which is calculated by a dedicated counter as the address of an instruction to be input to 1, occurs, the address of a new instruction is transferred from the PC calculation unit 103 or the data calculation unit 106.

CPU外部のメモリから命令をフェッチする場合は、外
部バスインターフェイス部107を通して、フェッチす
べき命令のアドレスをアドレス出力回路10BからCP
u外部へ出力し、データ入出力回路109から命令コー
ドをフェッチする。そして、バッファリングした命令コ
ードの内、次にデコードすべき命令コードを命令デコー
ド部102に出力する。
When fetching an instruction from a memory external to the CPU, the address of the instruction to be fetched is sent from the address output circuit 10B to the CPU through the external bus interface unit 107.
u is output to the outside, and the instruction code is fetched from the data input/output circuit 109. Then, among the buffered instruction codes, the instruction code to be decoded next is output to the instruction decoding unit 102.

(2,2) r命令デコード部」 命令デコード部102では、基本的には16ビフト(ハ
ーフワード)単位で命令コードをデコードする。このブ
ロックには第】ハーフワードに含まれるオペレーション
コードをデコードするFH−デコーダ、第2+第3ハー
フワードに含まれるオペレーションコードをデコードす
るNFHWデコーダ、アドレッシングモードをデコード
するアドレッシングモードデコーダが含まれる。これら
FIIWデコーダ、NFHWデコーダ、アドレッシング
モードデコーダを纏めて第1デコーダ303という。
(2, 2) r Instruction Decode Unit” The instruction decode unit 102 basically decodes instruction codes in units of 16 bytes (halfwords). This block includes an FH-decoder that decodes the operation code included in the []th halfword, an NFHW decoder that decodes the operation code included in the second + third halfwords, and an addressing mode decoder that decodes the addressing mode. These FIIW decoder, NFHW decoder, and addressing mode decoder are collectively referred to as a first decoder 303.

FH−デコーダあるいはNFH−デコーダの出力を更に
デコードして、マイクロROMのエントリアドレスを計
算する第2デコーダ305、条件分岐命令の分岐予測を
行う分岐予測機構、オペランドアドレス計算の際のパイ
プラインコンフリクトをチエツクするアドレス計算コン
フリクトチエツク機構も含まれる。
A second decoder 305 further decodes the output of the FH-decoder or NFH-decoder to calculate the entry address of the micro ROM, a branch prediction mechanism that predicts the branch of a conditional branch instruction, and a pipeline conflict prevention mechanism when calculating the operand address. Also included is an address calculation conflict checking mechanism.

命令デコード部102は命令フェッチ部101から入力
された命令コードを2クロツク(1ステツプ)につきO
〜6バイトずつデコードする。デコード結果の内、デー
タ演算部106での演算に関する情報がマイクロROM
部105に、オペランドアドレス計算に関係する情報が
オペランドアドレス計算部104に、pc計算に関係す
る情報がPC計算部103にそれぞれ出力される。
The instruction decode unit 102 reads the instruction code input from the instruction fetch unit 101 every two clocks (one step).
~Decode 6 bytes at a time. Among the decoding results, information regarding the calculation in the data calculation unit 106 is stored in the micro ROM.
Information related to the operand address calculation is output to the operand address calculation section 104, and information related to the PC calculation is output to the PC calculation section 103.

(2,3) rマイクロROM部」 マイクロROM部105には、主にデータ演算部106
を制御するマイクロプログラムが格納されているマイク
ロROM、マイクロシーケンサ、マイクロ命令デコーダ
等が含まれる。マイクロ命令はマイクロROMから2ク
ロツク(lステップ)に1度読出される。マイクロシー
ケンサはマイクロプログラムで示されるシーケンス処理
の他に、例外、割込及びトラップ(この3つを合わせて
61丁と称する)の処理をハードウェア的に受付ける。
(2, 3) ``Micro ROM section'' The micro ROM section 105 mainly includes a data calculation section 106.
It includes a micro ROM, a micro sequencer, a micro instruction decoder, etc. in which a micro program for controlling the micro program is stored. A microinstruction is read from the microROM once every two clocks (l step). In addition to the sequence processing indicated by the microprogram, the microsequencer accepts processing of exceptions, interrupts, and traps (these three are collectively referred to as 61 pieces) using hardware.

またマイク口ROM部105はストアバ、ファの管理も
行う。マイクロROM部105には命令コードに依存し
ない割込みあるいは演算実行結果によるフラッグ情報と
、第2デコーダ305の出力等の命令デコード部の出力
が入力される。マイクロデコーダの出力は主にデータ演
算部106に対して出力されるが、ジャンプ命令の実行
による他の先行処理中止情報等の一部の情報は他のブロ
ックへも出力される。
The microphone port ROM section 105 also manages the store server and file manager. The micro ROM unit 105 receives flag information based on interrupts or operation results that do not depend on instruction codes, and outputs from the instruction decoding unit such as the output from the second decoder 305. The output of the micro-decoder is mainly output to the data calculation unit 106, but some information, such as other preceding processing stop information due to execution of a jump instruction, is also output to other blocks.

(2,4) rオペランドアドレス計算部」オペランド
アドレス計算部104は命令デコード部102のアドレ
スデコーダ等から出力されたオペランドアドレス計算に
関係する情報によりハードワイヤード制御される。この
ブロックではオペランドのアドレス計算に関するほとん
どの処理が行われる。メモリ間接アドレシングのための
メモリアクセスのアドレス及びオペランドアドレスがメ
モリにマツプされたI10領域に入るか否かのチエツク
も行われる。
(2, 4) r Operand Address Calculation Unit The operand address calculation unit 104 is hard-wired controlled by information related to operand address calculation output from the address decoder of the instruction decoding unit 102, etc. This block performs most of the processing related to operand address calculation. A check is also made to see if the memory access address and operand address for memory indirect addressing fall into the memory mapped I10 area.

アドレス計算結果は外部バスインターフェイス部107
に送られる。アドレス計算に必要な汎用レジスタ及びプ
ログラムカウンタの値はデータ演算部より入力される。
The address calculation result is sent to the external bus interface section 107.
sent to. The general purpose register and program counter values necessary for address calculation are input from the data calculation section.

メモリ間接アドレノソングを行う際は夕(部バスインタ
ーフェイス部107を通してアドレス出力回路108か
らCPu外部へ参照すべきメモリアドレスを出力し、デ
ータ入出力部109から入力された間接アドレス値を命
令デコード部102を通してフェッチする。
When performing a memory indirect adreno song, the address output circuit 108 outputs the memory address to be referenced to the outside of the CPU through the bus interface section 107, and the indirect address value input from the data input/output section 109 is sent through the instruction decoding section 102. fetch

(2,5)  rPC計算部」 PC計算部103は命令デコード結果102から出ツノ
されるPC計算に関係する情報によりハードワイヤドに
制御され、命令のpc値を計算する。本発明のデータ処
理装置は可変長命令上ノ(・を有しており、命令をデコ
ー1なければその命令の長さが判らない。このため、P
C計算部103は命令テコ−1部102から出力される
命令長をデコード中の命令のpc値に加算することによ
り次の命令のpc値を作り出す、また、命令デコード部
102が分岐命令をデコードしてデコード段階での分岐
を指示した場合は、命令長の代わりに分岐変位を分岐命
令のpc値に加算することにより分岐先命令のpc値を
計算する8分岐命令に対して命令デコード段階で分岐を
行うことを本発明のデータ処理装置ではブリブランチと
称する。
(2, 5) rPC Calculation Unit” The PC calculation unit 103 is hard-wired controlled by information related to PC calculation output from the instruction decoding result 102, and calculates the pc value of the instruction. The data processing device of the present invention has a variable length instruction (), and the length of the instruction cannot be known unless the instruction is decoded.
The C calculation unit 103 creates the pc value of the next instruction by adding the instruction length output from the instruction lever 1 unit 102 to the pc value of the instruction being decoded, and the instruction decoding unit 102 decodes the branch instruction. When instructing a branch at the decode stage, the pc value of the branch destination instruction is calculated by adding the branch displacement to the pc value of the branch instruction instead of the instruction length. In the data processing apparatus of the present invention, branching is referred to as branching.

このブリブランチの手法については特開昭635963
0 号及び特開昭63−55639号に詳しく開示され
ている。
This Bribranch method is described in Japanese Patent Application Laid-Open No. 635963.
0 and JP-A-63-55639.

P(J算部103の計算結果は各命令のpc値として命
令のデコード結果と共に出力される他、ブリブランチ時
には、次にデコーFずべき命令のアドレスとして命令フ
ェッチ部101へ出力される。また、次に命令デコード
部102でデコードされる命令の分岐予測のためのアド
レスにも使用される。
The calculation result of the P(J calculation unit 103 is output as the pc value of each instruction together with the decoding result of the instruction, and at the time of branching, it is output to the instruction fetch unit 101 as the address of the next instruction to be decoded. , is also used as an address for branch prediction of the instruction to be decoded next by the instruction decoding unit 102.

分岐予測の手法については特開昭63−175934号
に詳しく開示されている。
The branch prediction method is disclosed in detail in Japanese Patent Laid-Open No. 175934/1983.

(2,6) rデータi’!¥部」 データ演算部106はマイクロプログラムにより制御さ
れ、マイクロROM部105の出力情報に従って各命令
の機能を実現するに必要な演算をレジスタと演W、器で
実行する。演算対象となるオペランドがアドレスあるい
は即値である場合は、オペランドアドレス計算部オペラ
ンドアドレス計算部104で計算されたアドレスあるい
は即値を外部バスインクフェイス部107を通過させて
得る。また、演算対象となるオペラン1′がCPU外部
のメモリにある場合は、アドレス計算部+04で計算さ
れたアドレスをバスインクフェイス部がアドレス出力回
路108から出力して、CPu外部のメモリからフェッ
チしたオペランドをデータ入出力回路109から得る。
(2,6) r data i'! The data calculation unit 106 is controlled by a microprogram, and uses registers and processors to execute operations necessary to realize the functions of each instruction according to the output information of the microROM unit 105. When the operand to be operated on is an address or an immediate value, the address or immediate value calculated by the operand address calculation unit 104 is passed through the external bus ink face unit 107 and obtained. In addition, when the operan 1' to be calculated is in the memory outside the CPU, the bus ink face unit outputs the address calculated by the address calculation unit +04 from the address output circuit 108 and fetches it from the memory outside the CPU. The operand is obtained from the data input/output circuit 109.

演′JT、器としてはALU3+3、バレルシフタ、プ
ライオリティエンコーダあるいはカウンタ、シフトレン
スタなどがある。レジスタと主な演算器の間は3バスで
結合されており、1つのレジスタ間演算を指示する1マ
イクロ命令を2クロツク(lステップ)で処理する。
The equipment includes an ALU3+3, a barrel shifter, a priority encoder or counter, and a shift lane star. The registers and the main arithmetic unit are connected by three buses, and one microinstruction instructing one register-to-register operation is processed in two clocks (l steps).

データ演算時にCPu外部のメモリをアクセスする必要
がある場合は、マイクロプログラムの指示により外部バ
スインターフェイス部1.07を通してアドレス出力回
路108からアドレスをCPU外部に出力し、データ人
出力回路109を通して目的のデータをフェッチする。
When it is necessary to access memory outside the CPU during data calculation, the address is output from the address output circuit 108 to the outside of the CPU through the external bus interface section 1.07 according to instructions from the microprogram, and the address is output to the outside of the CPU through the data output circuit 109. Fetch data.

CPu外部のメモリにデータをストアする場合は、外部
バスインターフェイス部107を通してアドレス出力回
路108よりアドレスを出力すると同時に、データ人出
力回路109からデータをCPU外部に出力する。オペ
ランドストアを効率的に行うため、データ演算部106
には4バイトのストアバンファが備えられている。
When storing data in a memory external to the CPU, an address is output from the address output circuit 108 through the external bus interface section 107, and at the same time, data is output from the data output circuit 109 to the outside of the CPU. In order to efficiently store operands, the data calculation unit 106
is equipped with a 4-byte store buffer.

ジャンプ命令の処理あるいは例外処理等を行って新たな
命令アドレスをデータ演算部106が得た場合は、これ
を命令フェッチ部101とPC計算部103(2,7)
 r外部バスインターフェイス部」外部バスインターフ
ェイス部107は本発明のデータ処理装置の外部バスで
の通信を制御する。メモリのアクセスはすべてクロック
同期で行われ、最小2クロックサイクル(1ステツプ)
で行うことができる。
When the data calculation unit 106 obtains a new instruction address by processing a jump instruction or exception handling, etc., this is transferred to the instruction fetch unit 101 and the PC calculation unit 103 (2, 7).
r External Bus Interface Unit The external bus interface unit 107 controls communication on the external bus of the data processing apparatus of the present invention. All memory accesses are performed in clock synchronization, with a minimum of 2 clock cycles (1 step)
It can be done with

メモリに対するアクセス要求は命令フ・エッチ部101
、オペランドアドレス計算部104及びデータ演算部1
06から独立に生じる。外部バスインターフェイス部1
07はこれらのメモリアクセス要求を調停する。更にメ
モリとCPUとを結ぶデータバスサイズである32ビツ
ト(1ワード)の整置境界を跨ぐメモリ番地にあるデー
タのアクセスは、このブロック内で自動的にワード境界
を跨ぐことを検知して2回のメモリアクセスに分解して
行う。
Access requests to memory are made by the instruction file etch section 101.
, operand address calculation unit 104 and data calculation unit 1
Occurs independently from 06. External bus interface section 1
07 arbitrates these memory access requests. Furthermore, when accessing data at a memory address that straddles a 32-bit (1 word) aligned boundary, which is the data bus size that connects the memory and the CPU, it is automatically detected within this block that it straddles a word boundary. This is done by breaking it down into multiple memory accesses.

ブリフェッチするオペランドとストアするオペランドと
が重なる場合のコンフリクト防止処理及びストアオペラ
ンドからフェッチオペランドへのバイパス処理も行う。
It also performs conflict prevention processing when the pre-fetch operand and store operand overlap, and bypass processing from the store operand to the fetch operand.

(3)「パイプライン機構」 本発明のデータ処理装置のパイプライン処理機能は第2
図に模式的に示される如くである。
(3) “Pipeline mechanism” The pipeline processing function of the data processing device of the present invention is
As schematically shown in the figure.

命令のブリフェッチを行う命令フェッチステージ(IF
ステージ)201.命令のデコードを行うデコードステ
ージ(Dステージ)202.オペランドのアドレス計算
を行うオペランドアドレス計算ステージ(^ステージ)
203.マイクロROMアクセス(特にRステージ20
6と呼ぶ)を行う部分とオペランドのブリフェッチ(特
にOFステージ207と称す)を行う部分とからなるオ
ペランドフェッチステージ(Fステージ)204.命令
を実行する実行ステージ(Eステージ)205の5段構
成をパイプライン処理の基本とする。
The instruction fetch stage (IF
Stage) 201. Decode stage (D stage) 202 for decoding instructions. Operand address calculation stage (^ stage) that calculates the address of the operand
203. Micro ROM access (especially R stage 20
Operand fetch stage (F stage) 204 . A five-stage configuration of an execution stage (E stage) 205 for executing instructions is the basis of pipeline processing.

Eステージ205では1段のストアバンファがある他、
高機能命令の一部は命令の実行自体をパイプライン化す
るため、実際には5段以上のパイプライン処理効果があ
る。
E stage 205 has a 1-stage store buffer,
Some of the high-performance instructions pipeline the instruction execution itself, so there is actually a pipeline processing effect of five or more stages.

各ステージは他のステージとは独立に動作し、理論上は
5つのステージが完全に独立動作する。
Each stage operates independently of the other stages, and in theory the five stages operate completely independently.

各ステージは1回の処理を最小2クロフク(1ステンブ
)で行うことができる。従って理想的には2クロンク(
1ステツプ)毎に次々とパイプライン処理が進行する。
Each stage can perform one process with a minimum of two clocks (one step). Therefore, ideally 2 clonks (
Pipeline processing progresses one after another for each step (1 step).

本発明のデータ処理装置には、メモリーメモリ間演算あ
るいはメモリ間接アドレッシング等の如く1回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数の
パイプライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。
The data processing device of the present invention has some instructions that cannot be processed with just one basic pipeline process, such as memory-to-memory operations or memory indirect addressing, but the data processing device of the present invention can handle these processes. It is designed to perform pipeline processing as balanced as possible. An instruction having a plurality of memory operands is decomposed into a plurality of pipeline processing units (step codes) at the decoding stage based on the number of memory operands, and pipeline processing is performed.

パイプライン処理単位の分解方法に関しては特開昭63
−89932号に詳しく開示されている。
For information on how to decompose pipeline processing units, see Japanese Patent Application Laid-open No. 1983.
It is disclosed in detail in No.-89932.

IPステージ201からDステージ202に渡される情
報は、命令コード211そのものである。Dステージ2
02からAステージ203に渡される情報は、命令で指
定された演算に関するもの(0コード212と称す)と
、オペランドのアドレス計算に関係するもの(Aコード
213と称す)との2つがある。
The information passed from the IP stage 201 to the D stage 202 is the instruction code 211 itself. D stage 2
There are two types of information passed from 02 to the A stage 203: information related to the operation specified by the instruction (referred to as 0 code 212), and information related to operand address calculation (referred to as A code 213).

Aステージ203からFステージ204に渡される情報
はマイクロプログラムのエントリアドレスあるいはマイ
クロプログラムのパラメータ等を含むRコード214と
、オペランドのアドレスとアクセス方法指示情報等を含
むFコード215との2つである。
The information passed from the A stage 203 to the F stage 204 is an R code 214 that includes the microprogram entry address or microprogram parameters, and an F code 215 that includes the operand address and access method instruction information. .

Fステージ204からEステージ205に渡される情報
は、演算制御情報とリテラル等を含むEコード216と
、オペランドあるいはオペランドアドレス等を含むSコ
ード217との2つである。
The information passed from the F stage 204 to the E stage 205 is two types: an E code 216 including arithmetic control information and literals, and an S code 217 including operands or operand addresses.

Eステージ205以外のステージで検出されたEITは
、そのコードがEステージ205に到達する迄はBIT
処理を起動しない、Eステージ205で処理されている
命令のみが実行段階の命令であり、IFステージ203
からFステージ204までの間で処理されている命令は
まだ実行段階に至っていないからである。従って、Eス
テージ205以外で検出されたEITは、それが検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるのみである。
An EIT detected at a stage other than the E stage 205 is a BIT until the code reaches the E stage 205.
Only instructions processed in the E stage 205 that do not start processing are instructions in the execution stage, and are not executed in the IF stage 203.
This is because the instructions being processed between F stage 204 and F stage 204 have not yet reached the execution stage. Therefore, when an EIT is detected at a stage other than the E stage 205, the fact that it has been detected is recorded in the step code and only transmitted to the next stage.

(3,1)rパイプライン処理単位」 (3,1,1) r命令コードフィールドの分類」本発
明のデータ処理装置のパイプライン処理単位は命令セッ
トのフォーマントの特徴を利用して決定されている。
(3,1) r Pipeline Processing Unit" (3,1,1) r Instruction Code Field Classification" The pipeline processing unit of the data processing device of the present invention is determined using the formant characteristics of the instruction set. ing.

(1)節で述べた如く、本発明のデータ処理装置の命令
は2バイト単位の可変長命令であり、基本的には゛2バ
イトの命令基本部子0〜4バイトのアドレシング拡張部
°を1〜3回反復することにより命令が構成されている
As described in section (1), the instructions of the data processing device of the present invention are variable length instructions in 2-byte units, and basically consist of a 2-byte instruction basic part and 0 to 4-byte addressing extension part. An instruction is constructed by repeating ~3 times.

命令基本部には多くの場合、オペレーションコード部と
アドレッシングモード指定部とがあり、インデソクスア
ドレシソングあるいはメモリ間接アトルフシングが必要
な場合にはアドレッシング拡張部の代わりに“2バイト
の多段間接モード指定部+0〜4バイトのアドレッシン
グ拡張部”が任意個付く、また、命令により2または4
バイトの命令固有の拡張部が最後に付く。
In most cases, the basic instruction part has an operation code part and an addressing mode specification part, and if an index address song or memory indirect attlefsing is required, a "2-byte multi-stage indirect mode specification part" is used instead of the addressing extension part. Addressing extension section + 0 to 4 bytes of addressing extension are optionally added, and 2 or 4 byte
An instruction-specific extension of bytes is appended at the end.

命令基本部には命令のオペレーションコード、基本アド
レッシングモード、リテラルなどが含まれる。アドレッ
シング拡張部はディスプレースメント、絶対アドレス、
即値、分岐命令の変位のいずれかである。命令固有の拡
張部にはレジスタマツプ、I−forsaL命令の即値
指定等がある。第35図は、本発明のデータ処理装置の
基本的命令フォーマントの特徴を示す模式図である。
The instruction basic part includes the instruction operation code, basic addressing mode, literal, etc. Addressing extensions include displacement, absolute address,
Either an immediate value or a displacement of a branch instruction. Instruction-specific extensions include a register map, immediate value specification for I-forsaL instructions, and the like. FIG. 35 is a schematic diagram showing the characteristics of the basic instruction formant of the data processing device of the present invention.

(3,1,2) rステップコードへの命令の分解」本
発明のデータ処理装置では、上記の命令フォーマントの
特徴を生かしたパイプライン処理を行う。
(3, 1, 2) Decomposition of instructions into r-step codes The data processing device of the present invention performs pipeline processing that takes advantage of the characteristics of the above-mentioned instruction formants.

Dステージ202では″2バイトの命令基本部子〇〜4
バイトのアトレンジング拡張部″、“多段間接モード指
定部子アトレンジング拡張部′又は命令固有の拡張部を
1つのデコード単位として処理する。各回のデコード結
果をステップコードと称し、Aステージ203以降では
このステップコードをパイプライン処理の単位としてい
る。ステップコードの数は命令毎に固有であり、多段間
接モード指定を行わない場合は、1つの命令は最小1個
、最大3個のステップコードに分かれる。多段間接モー
ド指定が行われた場合はそれだけステップコードが増加
する。但し、これは後で述べる様にデコード段階のみで
ある。
In the D stage 202, ``2-byte instruction basic parts 〇 to 4
A byte atranging extension", "multi-stage indirect mode specification section atranging extension", or an instruction-specific extension are processed as one decoding unit. The decoding result of each time is called a step code, and from the A stage 203 onwards, this step code is used as a unit of pipeline processing. The number of step codes is unique for each instruction, and if the multi-stage indirect mode is not specified, one instruction is divided into a minimum of 1 step code and a maximum of 3 step codes. When the multi-stage indirect mode is specified, the step code increases accordingly. However, as will be described later, this is only the decoding stage.

(3,1,3) rプログラムカウンタの管理J本発明
のデータ処理装置のパイプライン上に存在するステップ
コードは全て別命令に対するものである可能性があり、
このためプログラムカウンタの値はステップコード毎に
管理される。全てのステップコードは、そのステップコ
ードのもとになった命令のプログラムカウンタ値を有す
る。ステップコードに付属してパイプラインの各ステー
ジを流れるプログラムカウンタ値はステ、ブブログラム
カウンタ(SPC)と称する。 SPCはパイプライン
ステージ間を次々と受は渡されていく。
(3, 1, 3) r Program counter management J There is a possibility that all the step codes existing on the pipeline of the data processing device of the present invention are for different instructions,
Therefore, the value of the program counter is managed for each step code. Every step code has the program counter value of the instruction that the step code is based on. The program counter value that is attached to the step code and flows through each stage of the pipeline is called a program counter (SPC). The SPC is passed between pipeline stages one after another.

(3,2) r各パイプラインステージの処理J各パイ
プラインステージの入出カステップコードには第2図に
示したように便宜上名前が付けられている。また、ステ
ップコードはオペレーションコードに関する処理を行い
、マイクロプログラムのエントリアドレス及びEステー
ジ205に対するパラメータなどになる系列とEステー
ジ205のマイクロ命令に対するオペランドになる系列
との2系列がある。
(3, 2) r Processing of each pipeline stage The input/output step codes of each pipeline stage are named for convenience as shown in FIG. Further, the step code performs processing related to the operation code, and there are two series: a series that becomes the entry address of the microprogram and parameters for the E stage 205, and a series that becomes the operand for the microinstruction of the E stage 205.

(3,2,1) r命令フェッチステージ」命令フェッ
チステージ(11’ステージ)201は命令をメモリあ
るいはブランチバッファからフェッチして命令キュー3
01に入力し、Dステージ202に対して命令コードを
出力する。命令キュー301の入力は整置された4バイ
!・単位で行う。メモリから命令をフェッチする場合は
、整置された4バイトにつき最小2クロック(lステッ
プ)を要する。
(3, 2, 1) r Instruction fetch stage The instruction fetch stage (11' stage) 201 fetches instructions from the memory or branch buffer and stores them in the instruction queue 3.
01 and outputs the instruction code to the D stage 202. The input of the instruction queue 301 is an aligned 4-bye!・Do it in units. Fetching an instruction from memory requires a minimum of 2 clocks (l steps) per 4 aligned bytes.

ブランチバッファがヒツトした場合は、整置された4バ
イトにつきlクロックでフェッチ可能である。命令キュ
ー301の出力単位は2バイト毎に可変であり、2クロ
ツクの間に最大6バイトまで出力できる。また、分岐の
直後には命令キュー301をバイパスして命令基本部2
バイトを直接命令デコーダに転送することも可能である
If the branch buffer is hit, it can be fetched in 1 clock per aligned 4 bytes. The output unit of the instruction queue 301 is variable every 2 bytes, and up to 6 bytes can be output during 2 clocks. Immediately after a branch, the instruction queue 301 is bypassed and the instruction basic unit 2
It is also possible to transfer the bytes directly to the instruction decoder.

ブランチバッファへの命令の登録及びクリア等の制御、
ブリフェッチ先の命令のアドレスの管理や命令キューの
制御もIFステージ201で行う。
Control of registering and clearing instructions in the branch buffer,
The IF stage 201 also manages the address of the pre-fetch destination instruction and controls the instruction queue.

IFステージ201で検出するBITには、命令をメモ
リからフェッチする際のバスアクセス例外あるいはメモ
リ保護違反などによるアドレス変換例外がある。
BITs detected in the IF stage 201 include bus access exceptions when fetching instructions from memory, address translation exceptions due to memory protection violations, and the like.

(3,2,2) r命令デコードステージ」命令デコー
ドステージ(Dステージ)202はIFステージ201
から入力された命令コードをデコードする。デコードは
命令デコード部102のFIIWデコーダ、NFHWデ
コーダ及びアドレッシングモードデコーダを合わせた第
1デコーダ303を使用して、2クロフク(1ステツプ
)単位に1度行ない、1回のデコード処理で、0〜6バ
イトの命令コードを消費する(RET命令の復帰先アド
レスを含むステップコードの出力処理などでは命令コー
ドを消費シない)、1回のデコードでAステージ203
に対してアドレス計算情報としてのAコード213であ
る制御コードとアドレス修飾情報と、オペレーションコ
ードの中間デコード結果としてのDコード212である
制御コードと8ビツトのリテラル情報とを出力する。
(3, 2, 2) r instruction decode stage” The instruction decode stage (D stage) 202 is the IF stage 201
Decodes the instruction code input from. Decoding is performed once every two clocks (one step) using the first decoder 303, which is a combination of the FIIW decoder, NFHW decoder, and addressing mode decoder of the instruction decoding unit 102. Byte of instruction code is consumed (instruction code is not consumed in output processing of step code including the return destination address of RET instruction, etc.), A stage 203 is consumed with one decoding.
A control code and address modification information, which are A code 213 as address calculation information, and a control code and 8-bit literal information, which are D code 212 as the intermediate decoding result of the operation code, are outputted.

Dステージ202では、各命令のPC計算部103の制
御、分岐予測処理、プリブランチ命令に対するプリブラ
ンチ処理、命令キュー301からの命令コード出力処理
をも行う。
The D stage 202 also performs control of the PC calculation unit 103 for each instruction, branch prediction processing, prebranch processing for prebranch instructions, and instruction code output processing from the instruction queue 301.

Dステージ202で検出するEITには、予約命令例外
及びプリブランチ時の奇数アドレスジャンプトラップが
ある。また、IFステージ201より転送されてきた各
種BITはステップコード内にエンコードする処理をし
てAステージ203に転送する。
EITs detected at the D stage 202 include reserved instruction exceptions and odd address jump traps during pre-branch. Further, various BITs transferred from the IF stage 201 are encoded into step codes and transferred to the A stage 203.

(3,2,3) rオペランドアドレス計算ステージ」
オペランドアドレス計算ステージ(Aステージ)203
は処理機能が大きく2つに分かれる。1つは命令デコー
ド部102の第2デコーダ305を使用してオペレーシ
ョンコードの後段デコードを行う処理で、他方はオペラ
ンドアドレス計算部104でオペランドアドレスの計算
を行う処理である。
(3, 2, 3) r operand address calculation stage”
Operand address calculation stage (A stage) 203
The processing functions are broadly divided into two. One is a process in which the second decoder 305 of the instruction decoding unit 102 is used to decode the operation code at a later stage, and the other is a process in which the operand address calculation unit 104 calculates an operand address.

オペレーションコードの後段デコード処flはDコード
212を入力とし、レジスタ、メモリの書込み予約及び
マイクロプログラムのエントリアドレスとマイクロプロ
グラムに対するパラメータなどを含むRコード214の
出力を行う。なお、レジスタあるいばメモリの書込み予
約は、アドレス計算で参照したレジスタやメモリの内容
がパイプライン上を先行する命令で書換えられることに
より誤ったアドレス計算が行われるのを防ぐためのもの
である。レジスタあるいはイモリの書込み予約はデッド
ロックを避けるため、ステップコード毎ではなく命令毎
に行う、レジスタ及びメモリへの書込み予約については
特願昭62−144394号で詳しく述べられている。
The subsequent decoding process fl of the operation code receives the D code 212 and outputs the R code 214, which includes register and memory write reservations, the entry address of the microprogram, and parameters for the microprogram. Note that writing reservations for registers or memory are used to prevent incorrect address calculations due to the contents of registers or memory referenced in address calculations being rewritten by instructions that precede them on the pipeline. . In order to avoid deadlock, write reservations for registers and newts are made for each instruction rather than for each step code.Reservations for writing to registers and newts are described in detail in Japanese Patent Application No. 144394/1982.

オペランドアドレス計算処理はA:1−F213を入力
とし、Aコード213に従いオペランドアドレス計算部
104で加算あるいはメモリ間接参照を組合わせてアド
レス計算を行い、その計算結果をFコード215として
出力する。この際、アドレス計算に伴うレジスタ及びメ
モリの読出し時にコンフリクトチエツクを行い、先行命
令がレジスタあるいはメモリに書込み処理を終了してい
ないためコンフリクトが指示されれば、先行命令がEス
テージ205で書込み処理を終了するまで待つ。また、
オペランドアドレス及びメモリ間接参照のアドレスがメ
モリにマツプされたI10領域に入るか否かのチエツク
も行う。
The operand address calculation process takes A:1-F213 as input, performs address calculation in the operand address calculation unit 104 in accordance with the A code 213 by combining addition or memory indirect reference, and outputs the calculation result as the F code 215. At this time, a conflict check is performed when reading registers and memory during address calculation, and if a conflict is indicated because the preceding instruction has not finished writing to the register or memory, the preceding instruction executes the writing process at E stage 205. Wait until it finishes. Also,
It is also checked whether the operand address and the memory indirect reference address fall into the I10 area mapped to memory.

Aステージ203で検出するEITには予約命令例外、
特1ヶ命令例外、バスアクセス例外、アドレス変換例外
、メモリ間接アドレッシングの時のオペランドブレイク
ポイントヒントによるデバッグトラノフ″がある。Dコ
ード212又はAコード213自体がEITを起こした
ことを示していれば、Aステージ203はそのコードに
対してアドレス計算処理をせず、そのEITをRコード
2】4及びFコード215に伝える。
The EIT detected in the A stage 203 includes a reserved instruction exception,
In particular, there is a ``debug tranov'' using operand breakpoint hints during single instruction exceptions, bus access exceptions, address conversion exceptions, and memory indirect addressing.Please indicate that the D code 212 or A code 213 itself caused an EIT. For example, the A stage 203 does not perform address calculation processing on the code, but transmits the EIT to the R code 2]4 and the F code 215.

(3,2,4) rマイクロROMアクセスステージ」
オペランドフェッチステージ(Fステージ)204も処
理が大きく2つに分かれる。一方はマイクロI?OMの
アクセス処理であり、特にRステージ206と称する。
(3, 2, 4) r Micro ROM access stage
The operand fetch stage (F stage) 204 is also roughly divided into two processes. Is one Micro I? This is OM access processing, and is particularly referred to as R stage 206.

他方はオペランドプリフェッチ処理であり、特にOFス
テージ207と称する。Rステージ206とOFステー
ジ207とは必ずしも同時に動作するわけではなく、メ
モリアクセス権が獲得できるか否か等に依存して独立に
動作する。
The other is operand prefetch processing, particularly referred to as OF stage 207. The R stage 206 and the OF stage 207 do not necessarily operate simultaneously, but operate independently depending on whether memory access rights can be acquired or not.

Rステージ206の処理であるマイクロROMアクセス
処理は、Rコード214に対して次のEステジ205で
の実行に使用する実行制御コードであるEコード216
を生成するためのマイクロROMアクセスとマイクロ命
令デコード処理である。1つのRコード214に対する
処理が2つ以上のマイクロプログラムステノブに分解さ
れる場合、マイクロ命令旧よEステージ205で使用さ
れ、次のRコード214はマイクロROMアクセス待ち
になる。Rコード214に対するマイクロROMアクセ
スが行われるのは、その前のEステージ205での最後
のマイクロ命令実行の時である。本発明のデータ処理装
置では、はとんどの基本命令は1マイクロプログラムス
テツプで行われるため、実際にはRコード214に対す
るマイクロROMアクセスが次々と行われることが多い
Micro ROM access processing, which is the processing of the R stage 206, is performed by sending the E code 216, which is an execution control code used for execution in the next E stage 205, to the R code 214.
These are micro ROM access and micro instruction decoding processing to generate the . When processing for one R code 214 is decomposed into two or more microprogram steps, the old microinstruction is used in the E stage 205, and the next R code 214 waits for access to the micro ROM. Micro ROM access to R code 214 occurs during the last micro instruction execution in the previous E stage 205. In the data processing device of the present invention, most basic instructions are executed in one microprogram step, so in reality, micro ROM accesses to the R code 214 are often executed one after another.

Rステージ206で新たに検出するEITはない。There is no new EIT detected in the R stage 206.

Rコード214が命令処理再実行型のBITを示してい
る時は、そのEIT処理に対するマイクロプログラムが
実行されるので、Rステージ206はそのRコード21
4に従ったマイクロ命令をフェッチする。
When the R code 214 indicates an instruction processing re-execution type BIT, the microprogram for that EIT processing is executed, so the R stage 206
Fetch the microinstruction according to 4.

Rコード214が奇数アドレスジャンプトラップを示し
ている場合、Rステージ206はそれをEコード216
によって伝える。これはブリブランチに対するもので、
Eステージ205ではそのEコード216で分岐が生し
なければそのブリブランチをを効として奇数アドレスジ
ャンプトラップを発生する。
If R code 214 indicates an odd address jump trap, R stage 206 sends it to E code 216.
convey by. This is for Bribranch,
In the E stage 205, if a branch does not occur in the E code 216, the branch is used to generate an odd address jump trap.

(3,2,5) rオペランドフェッチステージ」オペ
ランドフェッチステージ(OFステージ)207はFス
テージ204で行う上記の2つの処理の内のオペランド
プリフェッチ処理を行う。
(3, 2, 5) r Operand Fetch Stage The operand fetch stage (OF stage) 207 performs operand prefetch processing of the above two processes performed in the F stage 204.

オペランドブリフェッチはFコード215を入力とし、
フェッチしたオペランドとそのアドレスをSコード21
7として出力する。1つのFコード215ではワード境
界を跨いでも良いが4バイト以下のオペランドフェッチ
を指定する。Fコード215にはオペランドのアクセス
を行うか否かの指定も含まれており、Aステージ203
で計算したオペランドアドレス自体あるいは即値をEス
テージ205に転送する場合にはオペランドブリフェッ
チは行わず、Fコード215の内容をSコード217と
して転送する。ブリフェッチしようとするオペランドと
、Eステージ205が書き込み処理を行おうとするオペ
ランドとが一致する場合は、オペランドブリフェッチは
メモリから行わずバイパスして行う。また、■70領域
に対してはオペランドブリフェッチを遅延させ、先行命
令がすべて完了するまで待ってオペランドフェッチを行
う。
Operand briefetch takes F code 215 as input,
The fetched operand and its address are sent to S code 21.
Output as 7. One F code 215 specifies operand fetch of 4 bytes or less, although it may span word boundaries. The F code 215 also includes a designation as to whether or not to access the operand, and the A stage 203
When transferring the operand address itself or the immediate value calculated in , to the E stage 205, the operand prefetch is not performed, and the contents of the F code 215 are transferred as the S code 217. If the operand to be pre-fetched matches the operand to be written by the E stage 205, the operand pre-fetch is not performed from memory but is bypassed. Also, operand pre-fetch is delayed for the 70 area, and operand fetch is performed after waiting until all preceding instructions are completed.

OFステージ207で1食出されるEITには、バスア
クセス例外、アドレス変換例外、オペランドブリフェッ
チに対するブレイクポイントヒツトによるデバッグトラ
ップがある。Fコード215がデバッグトランプ以外の
BITを示している時は、それをSコード217に転送
し、オペランドブリフエッヂは行わない、Fコード21
5がデバッグトラ、プを示している時は、そのFコード
215に対してEITを示していない場合と同し処理を
すると共にデバ7グトラツプをSコード217に伝える
EITs issued once in the OF stage 207 include bus access exceptions, address translation exceptions, and debug traps caused by breakpoint hits for operand briefetches. When F code 215 indicates a BIT other than debug tramp, transfer it to S code 217 and do not perform operand brief edge, F code 21
When 5 indicates a debug trap, the F code 215 is processed in the same way as if it does not indicate an EIT, and a debug trap is transmitted to the S code 217.

(3,2,6) r実行ステージ」 実行ステージ(Eステージ)205はEコード216及
びSコード217を入力として動作する。このEステー
ジ205が命令を実行するステージであり、Fステージ
204以前のステージで行われた処理は全てEステージ
205のための前処理である。Eステージ205でジャ
ンプ命令が実行されたり、あるいはεIT処理が起動さ
れたりした場合は、!Fステージ201からFステージ
204までの処理は全て無効化される。Eステージ20
5はマイクロプログラムにより制御され、Rコード21
4に示されたマイクロプログラムのエントリアドレスか
らの一連のマイクロプログラムを実行することにより命
令を実行する。
(3, 2, 6) r Execution Stage” The execution stage (E stage) 205 operates with the E code 216 and the S code 217 as input. This E stage 205 is a stage for executing instructions, and all processing performed in stages before the F stage 204 is preprocessing for the E stage 205. If a jump instruction is executed at E stage 205 or εIT processing is started,! All processes from F stage 201 to F stage 204 are invalidated. E stage 20
5 is controlled by a microprogram, R code 21
The instructions are executed by executing a series of microprograms starting from the microprogram entry address shown in 4.

マイクロROMの読み出しとマイクロ命令の実行とはパ
イプライン化されて行われる。従ってマイクロプログラ
ムで分岐が起きた場合は、1マイクロステツプの空きが
できる。また、Eステージ205はデータ演算部106
にあるストアバッファを利用して、4バイト以内のオペ
ランドストアと次のマイクロ命令実行をパイプライン処
理することもできる。
Reading of the micro ROM and execution of micro instructions are performed in a pipelined manner. Therefore, when a branch occurs in a microprogram, one microstep becomes available. In addition, the E stage 205 includes the data calculation section 106
It is also possible to perform pipeline processing of operand store within 4 bytes and execution of the next microinstruction using the store buffer located in the .

Eステージ205では、Aステージ203で行ったレジ
スタ及びメモリに対する書込み予約をオペランドの書き
込み後に解除する。
In the E stage 205, the write reservation for registers and memory made in the A stage 203 is canceled after the operand is written.

また、条件分岐命令がEステージ205で分岐を発した
場合は、その条件分岐命令に対する分岐予測が誤ってい
たのであるから、分岐層層の書換えを行う。
Furthermore, if a conditional branch instruction issues a branch at the E stage 205, the branch prediction for that conditional branch instruction was incorrect, so the branch layer is rewritten.

Eステージ205で検出されるEITには、バスアクセ
ス例外、アドレス変換例外、デバッグトラップ、奇数ア
ドレスジャンプトラップ、予約機能例外、不正オペラン
ド例外、予約スタックフォーマット例外、ゼロ除算トラ
ップ、無条件トラップ、条件トラップ、遅延コンテキス
トトラップ、外部割込、遅延割込、リセット割込、シス
テム障害がある。
EITs detected in the E stage 205 include bus access exceptions, address translation exceptions, debug traps, odd address jump traps, reserved function exceptions, illegal operand exceptions, reserved stack format exceptions, divide-by-zero traps, unconditional traps, and conditional traps. There are , delayed context traps, external interrupts, delayed interrupts, reset interrupts, and system failures.

Eステージ205で検出されたBITは全て!!IT処
理されるが、Eステージ以前のIPステージ201から
Fステージ204の間で検出され、Rコード214ある
いはSコード217に反映されている81丁は必ずしも
BIT処理されるとは限らない、 IFステージ201
からFステージ204の間で検出されたが、先行の命令
がEステージ205でジャンプ命令が実行されたなどの
原因でEステージ205まで到達しなかったEITは全
てキャンセルされる。そのBITを起こした命令はそも
そも実行されなかったことになる。
All BITs detected in E stage 205! ! The 81 guns detected between IP stage 201 and F stage 204 before the E stage and reflected in the R code 214 or S code 217 are not necessarily subjected to the BIT process, although they are subjected to the IT process. 201
All EITs that are detected between F stage 204 and F stage 204 but do not reach E stage 205 due to reasons such as a jump instruction being executed at E stage 205 are canceled. This means that the instruction that caused the BIT was never executed in the first place.

外部割込及び遅延割込は命令の切れ目でEステージ20
5に直接受は付けられ、マイクロプログラムにより必要
な処理が実行される。その他の各種EITの処理はマイ
クロプログラムにより行われる。
External interrupts and delayed interrupts are processed at E stage 20 at the end of instructions.
5 is directly accepted, and the necessary processing is executed by the microprogram. Other various EIT processes are performed by microprograms.

(3,3) r各パイプラインステージの状態制御」パ
イプラインの各ステージは入力ランチと出力ラッチとを
有し、他のステージとは独立に動作することを基本とす
る。各ステージは1つ前に行った処理が終わり、その処
理結果を出力ランチから次のステージの入力ランチに転
送し、自分のステージの入力ランチに次の処理に必要な
入力信号がすべて揃えば次の処理を開始する。
(3, 3) rState control of each pipeline stage Each stage of the pipeline has an input launch and an output latch, and basically operates independently of other stages. Each stage finishes the previous processing and transfers the processing result from the output lunch to the input lunch of the next stage, and when all the input signals necessary for the next processing are available at the input lunch of the stage, the next start processing.

つまり各ステージは、1つ前段のステージから出力され
てくる次の処理に対する入力信号が全て有効となり、今
の処理結果を後段のステージの入力ランチに転送して出
力ラッチが空になると次の処理を開始する。
In other words, in each stage, all input signals for the next process output from the previous stage are valid, the current processing result is transferred to the input lunch of the next stage, and when the output latch becomes empty, the next process starts. Start.

各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が全て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち伏B(入力待ち
)になる。出力ランチから次のステージの入力ラッチへ
の転送を行う場合には次のステージの入力ラッチが空き
状態になっている必要があり、次のステージの入力ラッ
チが空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる、必要なメモリアクセス権が獲得で
きなかったり、処理しているメモリアクセスにウェイト
が挿入されたり、その他のパイプラインコンフリクトが
生じると各ステージの処理自体が遅延する。
All input signals must be available at the clock timing immediately before each stage starts operating. If the input signals are not ready, the stage becomes ambush B (waiting for input). When transferring from the output launch to the input latch of the next stage, the input latch of the next stage must be free, and even if the input latch of the next stage is not free, the pipeline stage will wait. The processing itself at each stage will be delayed if the pipeline enters the state (waiting for output), cannot acquire the necessary memory access rights, inserts a wait into the memory access being processed, or if other pipeline conflicts occur.

(4)  r POP命令の処理シーケ〉′ス」上述の
如きデータ処理装置において、pop命令がパイプライ
ン上で如何に処理されるかについて、デスティネーショ
ンがメモリ指定である場合とレジスフ指定である場合と
に分けて、図面を参照し7て更に詳しく説明する。
(4) Processing sequence of POP instruction: In the data processing device as described above, how the POP instruction is processed on the pipeline, when the destination is memory specified and when the destination is specified by Regisf. This will be explained in more detail separately with reference to the drawings.

本発明のデータ処理装置の更に詳しい構成を第3図のブ
ロック図に示す。
A more detailed configuration of the data processing apparatus of the present invention is shown in the block diagram of FIG.

命令キュー301は、命令フェッチ部101中にあり、
IFステージ201の処理に関与する。
The instruction queue 301 is located in the instruction fetch unit 101,
Involved in the processing of the IF stage 201.

第1デコーダ303は、命令デコード部102中にあり
、Dステージ202の処理に関与する。
The first decoder 303 is located in the instruction decoding unit 102 and is involved in the processing of the D stage 202.

第2デコーダ304と^TMPレジスタ310は、命令
デコード部102中にあり、Aステージ203の処理に
関与する。ATMPレジスタ310は、メモリ間接参照
時にメモリアクセスでリードしたデータを保持するため
に使用される。
The second decoder 304 and the TMP register 310 are located in the instruction decoding unit 102 and are involved in the processing of the A stage 203. The ATMP register 310 is used to hold data read by memory access during memory indirection.

アドレス加算器305.AOIITレジスタ306.B
ASEレジスタ307. INDEXレジスタ308及
びDISPI、ジスタ309はオペランドアドレス計算
部104中にあり、Aステージ203の処理に関与する
。BASEレジスタ307゜INDEX L、ジスタ3
08. lll5P L、ジスタ309は、それぞれベ
ース値、インデックス値、ディスプレースメント値を保
持するためのレジスタである。RASEレジス9301
. INDEXレジスタ308.DISP L、ジスタ
309の値を同時に加算するのがアドレス加3114i
i305である。AOUTレジスタ306は、アドレス
加算器305の出力保持のためのレジスタである。
Address adder 305. AOIIT register 306. B
ASE register 307. The INDEX register 308, DISPI, and register 309 are located in the operand address calculation unit 104 and are involved in the processing of the A stage 203. BASE register 307°INDEX L, register 3
08. Ill5P L and register 309 are registers for holding a base value, an index value, and a displacement value, respectively. RASE Regis 9301
.. INDEX register 308. Adding the values of DISP L and register 309 at the same time is address addition 3114i.
It is i305. AOUT register 306 is a register for holding the output of address adder 305.

^SPレジスタ311は、スタックポインタ計算部中に
あり、Aステージ203の処理に関与する。
The ^SP register 311 is located in the stack pointer calculation unit and is involved in the processing of the A stage 203.

スタックからのポツプ操作、スタックへのブツシュ操作
等によるSP値のコンフリクトを防ぐため、Aステージ
203では、Eステージ205のsp値に先行してAス
テージのSP値であるASP値を管理している。ポツプ
操作及びブツシュ操作に伴うSP値の更新は、Aステー
ジ203においてA S P (!!を制御することに
よって行われる。従って、ASP4fiを参照すること
により、通常のポツプ操作及びブツシュ操作の直後でも
SP値のコンフリクトに起因するステンブコードの処理
の遅れを生じることなく処理を進めることが出来る。こ
のASP値を保持するのがASPレジスタ311である
。なお、SP値の管理方法に関しては特願昭62−14
5852号で詳しく開示されている。
In order to prevent SP value conflicts due to pop operations from the stack, push operations to the stack, etc., the A stage 203 manages the ASP value, which is the SP value of the A stage, prior to the sp value of the E stage 205. . SP values accompanying pop and bush operations are updated by controlling A S P (!!) in the A stage 203. Therefore, by referring to ASP4fi, SP values can be updated even immediately after normal pop and bush operations. Processing can proceed without delay in stem code processing due to SP value conflicts.The ASP register 311 holds this ASP value.The method for managing SP values is disclosed in a patent application. 1986-14
It is disclosed in detail in No. 5852.

マイクロl?OM、マイクロシーケンサ、マイクロ命令
デコーダ等を含むマイクロll0M部105は、Rステ
ージ206の処理に関与する。
Micro l? A micro 10M unit 105 including an OM, a micro sequencer, a micro instruction decoder, etc. is involved in the processing of the R stage 206.

汎用レジスタファイル312.ALU313. SOレ
ジスタ314、Doレジスタ315は、データ演算部1
06中にあり、OFステージ207とEステージ205
の処理に関与する。SDレジスタ314は、オペランド
フェッチ時にメモリアクセスでリードしたデータを保持
するためのレジスタである。DOレジスク315は、E
ステージ205がメモリアクセスでデータのリードある
いはストアを行う際に対象となるデータを保持するため
のレジスタである。
General-purpose register file 312. ALU313. The SO register 314 and the Do register 315 are
Located in 06, OF stage 207 and E stage 205
involved in the processing of The SD register 314 is a register for holding data read by memory access during operand fetching. DO Regisc 315 is E
This is a register for holding target data when the stage 205 reads or stores data in memory access.

IAレジスタ316.FAレジスタ317.SAレジス
タ318゜AAレジスタ319は外部バスインターフェ
ース部107の一部分である。 IAレジスタ316は
、Aステージ208がメモリ間接参照時にメモリアクセ
スを行う際にアドレスをセントするレジスタである。 
FAレジスタ317は、OFステージ207がオペラン
ドのフェッチ時にメモリアクセスを行う際にアドレスを
セントするレジスタである。 AAレジスク319は、
Eステージ205がメモリアクセスでデータのリードあ
るいはストアを行う際にアドレスをセットするレジスタ
である。
IA register 316. FA register 317. The SA register 318 and the AA register 319 are part of the external bus interface section 107. The IA register 316 is a register that stores an address when the A stage 208 performs memory access during memory indirection.
The FA register 317 is a register that stores an address when the OF stage 207 performs memory access when fetching an operand. AA Regisc 319 is
The E stage 205 is a register that sets an address when reading or storing data in memory access.

OFステージ207はオペランドフェッチしたデータと
共にそのアドレスをEステージ205に送るが、その際
に送るアドレスを保持するためのレジスタがSAレジス
タ318である。このSAレジスタ318は、アドレス
を送るだけでなく、即値を送る場合にも使用される。
The OF stage 207 sends the address together with the data fetched by the operand to the E stage 205, and the SA register 318 is a register for holding the address to be sent at this time. This SA register 318 is used not only to send an address but also to send an immediate value.

なお本発明のデータ処理装置のバスには、DDババス2
0.DISPバス321. Aバス322.^0バス3
23.^Aバス324、Slバス325. S2バス3
26.Doババス27がある。
Note that the bus of the data processing device of the present invention includes a DD bus 2.
0. DISP bus 321. A bus 322. ^0 bus 3
23. ^A bus 324, Sl bus 325. S2 bus 3
26. There is Do Babasu 27.

Dステージ202の華純化した構成を第4図のブロック
図に示す。
The simplified configuration of the D stage 202 is shown in the block diagram of FIG.

Dステージ202は、既に述べた如く主として第1デコ
ーダ303にて構成されている。この第1デコーグ30
3はPLA(Programsable Logic 
Array)にて構成されている。Dステージ202に
命令コード211が入力されると、第1デコーダ303
によりデコードされてDコード212及びAコード21
3が生成され、出力される。
The D stage 202 mainly includes the first decoder 303, as described above. This first decoding 30
3 is PLA (Programsable Logic
Array). When the instruction code 211 is input to the D stage 202, the first decoder 303
decoded by D code 212 and A code 21
3 is generated and output.

Dコード212は命令デコード部102中のAステージ
203の処理を行う部分に、またAコード213はオペ
ランドアドレス計算部104中のAステージ203の処
理を行う部分にそれぞれ与えられる。
The D code 212 is given to a portion of the instruction decoding section 102 that performs the processing of the A stage 203, and the A code 213 is given to the portion of the operand address calculation section 104 that performs the processing of the A stage 203.

なお、401は内部状態保持ラッチである。Note that 401 is an internal state holding latch.

命令デコード部102中でAステージ203の処理を行
う部分の構成を第5図のブロック図に示す。
The configuration of the portion of the instruction decoding unit 102 that performs the processing of the A stage 203 is shown in the block diagram of FIG.

この部分は、第2デコーダ304.右レジスタ番号生成
部501.左レジスタ番号生成部502.レジスタ番号
生成部503.サイズ住成部504等にて構成されてい
る。なお第2デコーダ304は第1デコーダ303と同
様にPLAにて構成されている。
This part is processed by the second decoder 304. Right register number generation unit 501. Left register number generation unit 502. Register number generation unit 503. It is composed of a size adjustment section 504 and the like. Note that the second decoder 304 is constructed of PLA similarly to the first decoder 303.

入力されるDコード212は、オペコードの中間デコー
ド結果、右しジスタ番号情報、左しジスク番号情報、右
レジスタサイズ−1,左レジスタサイズ−5等にて構成
されている。
The input D code 212 is composed of the intermediate decoding result of the operation code, right register number information, left register number information, right register size -1, left register size -5, and the like.

右レジスタ番号情報及び左レジスタ番号情報は、それぞ
れ右レジスタ番号生成部501及び左レジスタ番号生成
部502に入力され、右レジスタ番号R1と左レジスタ
番号R4とをそれぞれ生成する。右レジスタ番号情報に
は、オペランドがレジスタ上の値1 リテラル1メモリ
上の値あるいはm(Itのいずれであるかを示す情報が
含まれる。左レジスタ番号情報には、オペランドがレジ
スタ上の値あるいはリテラルのいずれであるかを示す情
報が含まれる。
The right register number information and the left register number information are input to a right register number generation unit 501 and a left register number generation unit 502, respectively, to generate a right register number R1 and a left register number R4, respectively. The right register number information includes information indicating whether the operand is the value on the register 1, the literal 1 value on the memory, or m (It).The left register number information includes information indicating whether the operand is the value on the register or Contains information indicating whether it is a literal.

右レジスタ番号R8及び左レジスタ番号RLはそれぞれ
命令フォーマット中の第1のレジスタ指定部及び第2の
レジスタ指定部とに対応付けられるものであり、そのレ
ジスタ番号によってそれぞれ第1のオペランド及び第2
オペランドの格納先が指定される。−例として第14図
に示すR−FORMAT命令を挙げると、Rnは第1の
レジスタ指定部であって右レジスタ番号りに対応し、R
s+は第2のレジスタ指定部であって左レジスタ番号れ
に対応する。
The right register number R8 and the left register number RL are respectively associated with the first register specification part and the second register specification part in the instruction format, and the register numbers are used to specify the first and second operands, respectively.
Specifies the storage location of the operand. - Taking the R-FORMAT instruction shown in FIG. 14 as an example, Rn is the first register specification part and corresponds to the right register number;
s+ is the second register designation part and corresponds to the left register number.

命令フォーマント上では、第1のオペランド指定部及び
第2のオペランド指定部のいずれがソースでありまたデ
スティネーションであるかは一意的には決っていない、
このため、右レジスタ番号R5と左レジスタ番号RLと
のいずれがソースレジスタ番号Rsになり、デスティネ
ーンッンレジスタ番号R0になるかは、第2デコーダ3
04の出力であるレジスタ番号制御信号によってレジス
タ番号生成部503において決定される。
On the instruction formant, it is not uniquely determined which of the first operand specification part and the second operand specification part is the source or destination.
Therefore, the second decoder 3 determines which of the right register number R5 and the left register number RL will be the source register number Rs and which will be the destination register number R0.
The register number generation unit 503 determines the register number control signal that is the output of the register number control signal 04.

また、第2デコーダ304の出力であるサイズ制御信号
が与えられたサイズ生成部504では、右レジスタ番号
R1が示すレジスタのデータサイズである右レジスタ番
号情報、と左レジスタ番号RLが示すレジスタのデータ
サイズである左レジスタサイズ−Lとがそれぞれソース
サイズ−8、デスティネーションサイズ6にて定められ
る。
In addition, the size generation unit 504 to which the size control signal that is the output of the second decoder 304 is applied, generates right register number information, which is the data size of the register indicated by the right register number R1, and data of the register indicated by the left register number RL. The left register size -L, which is the size, is determined by the source size -8 and the destination size 6, respectively.

Fステージ204では、第2デコーダ304の出力であ
るRコード・Fコード有効信号によって、Rコード21
4とFコード215とがFステージ204に送られたこ
とを認識する。
In the F stage 204, the R code 21
4 and the F code 215 are sent to the F stage 204.

第6図及び第7図はそれぞれレジスタ番号生成部503
及びサイズ生成部504の構成を示す回路図である。
FIG. 6 and FIG. 7 show the register number generation unit 503, respectively.
and a circuit diagram showing the configuration of a size generation unit 504.

第6図における入力信号RCI、1lc2.RC3,R
C4は第2デコーダ304が出力するレジスタ番号′I
4I+1信号である。また、第7図における入力信号S
CI、 SC2゜SC3,SC4は第2デコーダ304
が出力するサイズ制御信号である。
Input signals RCI, 1lc2 . RC3,R
C4 is the register number 'I output by the second decoder 304
This is a 4I+1 signal. In addition, the input signal S in FIG.
CI, SC2° SC3, SC4 are the second decoder 304
This is the size control signal output by

601.602,603,604,701,702,7
03,704はそれぞれNチャネルトランスミッション
ゲート(TG) 、 605はPチャネル丁G、606
,607はインバータ、608はORゲートを示す、そ
れぞれの回路は入力ゲートがセレクタになっているラン
チで構成されている。また、回路610はPチャネル↑
G605.インバータ606.インバータ607及びO
Rゲート608にて構成されている。
601.602,603,604,701,702,7
03 and 704 are N-channel transmission gates (TG), 605 are P-channel transmission gates (TG), and 606 are respectively
, 607 is an inverter, and 608 is an OR gate. Each circuit is composed of a launch whose input gate is a selector. Also, the circuit 610 has a P channel ↑
G605. Inverter 606. Inverter 607 and O
It is composed of an R gate 608.

そして、回路611,710,711は共に回路610
と同等の構成である。
The circuits 611, 710, and 711 are all connected to the circuit 610.
The configuration is equivalent to .

なお、第6図及び第7図では簡略化のため1ビット分の
回路を示している。しかし、レジスタ番号を示す信号及
びサイズを示す信号はそれぞれ5ビット及び2ビツトで
あるので、実際はそれぞれ対応するビット数の回路で構
成されている。
Note that in FIGS. 6 and 7, a circuit for one bit is shown for simplification. However, since the signal indicating the register number and the signal indicating the size are 5 bits and 2 bits, respectively, they are actually composed of circuits each having the corresponding number of bits.

第8図は第5図に示した第2デコーダ304の出力であ
るRコード・Fコード出力制御信号、レジスタ番号制御
信号及びザイズ制m信号のPOP命令の際の内容を示す
表である。
FIG. 8 is a table showing the contents of the R code/F code output control signal, the register number control signal, and the size m signal output from the second decoder 304 shown in FIG. 5 at the time of the POP command.

第9図Ta1. fblはパイプライン上におけるPO
P命令の処理シーケンスを示すフローチャートである。
Figure 9 Ta1. fbl is PO on the pipeline
3 is a flowchart showing a processing sequence of a P instruction.

第9図(a)に示されているのはデスティ不−ソヨンが
メモリ指定時のフローチャートである。また第9図Ta
1に示されているのはデスティネーションがレジスタ指
定時のフローチャートである。
FIG. 9(a) shows a flowchart when the destination memory designates memory. Also, Figure 9 Ta
1 is a flowchart when the destination is specified as a register.

第10図fal、lb1. fcl、 fdlは、po
p命令を処理する際のDステージ以降のステージにおけ
るステップコートの処理の流れを示す模式図である。図
において、縦軸は時間を表しており、1目盛りが2クロ
ツク(1ステップ)に相当する。
Figure 10 fal, lb1. fcl, fdl, po
FIG. 7 is a schematic diagram showing the flow of step code processing in stages after the D stage when processing a p instruction. In the figure, the vertical axis represents time, and one scale corresponds to two clocks (one step).

第10図cat、 (blはそれぞれデスティネーショ
ンがメモリ指定時とレジスタ指定時であり、且つパイプ
ライン上で待ち状態のない場合のステップコードの処理
の流れを示している。
Figures 10 (cat) and (bl) show the flow of step code processing when the destination is memory specified and register specified, and there is no wait state on the pipeline.

第1O図tc+、 fdlはそれぞれデスティネーショ
ンがメモリ指定時とレジスタ指定時であり、且つPOP
命令の直前のステップコードの処理にEステージ205
において6クロフク(3ステツプ)要し、そのためPO
P命令のステップコードに待ち状態が生じた場合のステ
ップコードの処理の流れを示している。
In Figure 1O, tc+ and fdl indicate that the destination is memory specified and register specified, respectively, and POP
E stage 205 is used to process the step code immediately before the instruction.
It takes 6 clofuku (3 steps) in
It shows the flow of step code processing when a wait state occurs in the step code of a P instruction.

第9図Ta1 、 (blはPOP命令の命令フォーマ
ットを示す模式図である。  I)OP命令の命令フォ
ーマントは第17図に示したGl−FORMATである
。そして、第37図(5)はレジスタ間接アドレッシン
グの場合を示す。ここで指定する汎用レジスタ番号Rn
は参照先の汎用レジスタを示す。また第37図fblは
レジスタ直接アドレッシングの場合を示す。ここで指定
する汎用レジスタ番号りはデスティネーションとなる汎
用レジスタを示す。
FIG. 9 Ta1, (bl is a schematic diagram showing the instruction format of the POP instruction. I) The instruction format of the OP instruction is Gl-FORMAT shown in FIG. 17. FIG. 37(5) shows the case of register indirect addressing. General-purpose register number Rn specified here
indicates the referenced general-purpose register. Further, FIG. 37 fbl shows the case of register direct addressing. The general-purpose register number specified here indicates the destination general-purpose register.

POP命令は、スタックトップ上のデータをメモリある
いはレジスタに転送する命令であるので、メモリーレジ
スタ間、またはメモリーメモリ間の転送命令と実質的に
同等である。そこで、本発明のデータ処理装置では、ソ
ースオペランド指定部がないにもかかわらずソースオペ
ランド部の処理のためのステップコートを生成し、Eス
テージ以前においてl・要な前処理の全てを行うように
構成されている。
The POP instruction is an instruction for transferring data on the top of the stack to a memory or register, and is therefore substantially equivalent to a transfer instruction between memory registers or between memory and memory. Therefore, the data processing device of the present invention generates a step code for processing the source operand section even though there is no source operand specification section, and performs all necessary preprocessing before the E stage. It is configured.

以下、第9図Ta1. fblのフローチャートを参照
して説明する。
Below, Fig. 9 Ta1. This will be explained with reference to the fbl flowchart.

(4,1)rデスティネーションがメモリ指定時」先ず
、IFステージ201はPOP命令をメモリ上よりフェ
ッチして命令キュー301に入力し、Dステージ202
に対してPOP命令の命令コード2+1を出力する。
(4, 1) When the r destination specifies memory” First, the IF stage 201 fetches a POP instruction from memory and inputs it to the instruction queue 301, and the D stage 202
The instruction code 2+1 of the POP instruction is output for the POP instruction.

Dステージ202は、IFステージ201によってフェ
ッチされたPOP命令を第1デコーダ303によりデコ
ードする。
In the D stage 202, the POP instruction fetched by the IF stage 201 is decoded by the first decoder 303.

pop命令の命令コード211は第1デコーダ303に
入力されてデコードされ、POP命令の第1のステップ
コード(1−1)が生成される。デコード結果の一部は
内部状態信号として内部状態保持ラッチ401に保持さ
れる。
The instruction code 211 of the POP instruction is input to the first decoder 303 and decoded, and the first step code (1-1) of the POP instruction is generated. A part of the decoded result is held in internal state holding latch 401 as an internal state signal.

次のデコードのサイクルでは、内部状態保持ランチ40
1からの内部状態信号に応答して、第1デコーダ303
はIPステージ201からの命令コード211を取り込
まずにPOP命令の第2のステップコード(1−2)を
生成する。このようにして、第9図(alに示す如く2
つのステップコードが生成される。
In the next decoding cycle, the internal state holding lunch 40
1, the first decoder 303
generates the second step code (1-2) of the POP instruction without taking in the instruction code 211 from the IP stage 201. In this way, as shown in FIG.
Two step codes are generated.

POP命令中にはソースオづランド指定部はないが、命
令の機能としてソースオペランドがスタックトップであ
ることが暗に示されている。従って、本発明によるデー
タ処理装置では、POP命令をデコードした段階で、ソ
ースオペランドに関する処理を予め行うためのステップ
コード<1−2)を生成する。
Although there is no source operand specification part in the POP instruction, it is implied that the source operand is the top of the stack as a function of the instruction. Therefore, in the data processing apparatus according to the present invention, a step code <1-2) for pre-processing a source operand is generated at the stage of decoding a POP instruction.

Dステージ202が出力するそれぞれのステップコード
は、Aコード21.3とDコード212とから構成され
ている。同一のステップコード中にあるAコード213
とDコード212とは同時にAステージ203に送られ
る。  pop命令から生成されたステップコードはA
ステージ203に対して、ステップフ−ド(11)、ス
テップコード(1−2)の順序で送られる。
Each step code output by the D stage 202 is composed of an A code 21.3 and a D code 212. A code 213 in the same step code
and the D code 212 are sent to the A stage 203 at the same time. The step code generated from the pop instruction is A
The steps are sent to stage 203 in the order of step food (11) and step code (1-2).

以降のステージにおける処理は、各ステップコードに関
して説明する。
Processing in subsequent stages will be explained for each step code.

(4,1,1)  r POP命令の第1ステツプコー
ド(1−1)の処理」 Aステージ203はAコード213とDコード212と
を入力する。
(4, 1, 1) r Processing of the first step code (1-1) of the POP instruction” The A stage 203 inputs the A code 213 and the D code 212.

Aコード213がAステージ203に入力されると、A
ステージ203ではAコード213の制御信号の制御に
よってアドレス計算が行われる。参照先レジスタ情報に
より汎用レジスタファイル312の参照先の汎用レジス
タ中の値がAバス322上からBASEレジスタ307
に格納される。ステップコード(1−1)のAコード2
13中に含まれる制御信号によりrNI)EXレジスタ
308とDISPレジスタ309がクリアされる。
When the A code 213 is input to the A stage 203, the A
At stage 203, address calculation is performed under the control of the control signal of A code 213. The value in the referenced general-purpose register of the general-purpose register file 312 is transferred from the A bus 322 to the BASE register 307 based on the referenced register information.
is stored in A code 2 of step code (1-1)
The rNI)EX register 308 and the DISP register 309 are cleared by the control signal contained in the register 13.

この3つのレジスタの値がアドレス加算器305により
加算され、その結果はAOUTレジスタ306に格納さ
れる。更に、AOuTレジスタ306中の値は^Oババ
ス23を介してFAレジスタ317に送られる。 FA
レジスタ317中にある参照先の汎用レジスタからの値
は第2デコーダ304の出力の一部と共にFコード21
5となる。
The values of these three registers are added by address adder 305 and the result is stored in AOUT register 306. Further, the value in the AOut register 306 is sent to the FA register 317 via the ^O bus 23. F.A.
The value from the referenced general-purpose register in the register 317 is added to the F code 21 along with a portion of the output of the second decoder 304.
It becomes 5.

第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果を入力すると、マイクロプログラ
ムのエントリアドレスあるいは種々の制御情報を生成す
る。
As shown in FIG. 8, the second decoder 304
When the intermediate decoding result of step 2 is input, a microprogram entry address or various control information is generated.

また、Dコード212中の右レジスタ番号情報及び左し
ジスタ番号情軸はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号生成部502に入力され、右レジス
タ番号R9及び左しジスク番号RLを生成する。  p
op命令のステップコード(1−1)では、右レジスタ
番号R1のみが意味を有していてSロレジスタ318を
示す、また、右レジスタサイズhはワードを示す。
Further, the right register number information and the left register number information axis in the D code 212 are respectively stored in the right register number generation unit 501.
and is input to the left register number generation unit 502, which generates the right register number R9 and the left disc number RL. p
In the step code (1-1) of the op instruction, only the right register number R1 has meaning and indicates the S register 318, and the right register size h indicates a word.

第2デコーダ304が出力する制御情報にはレジスタ番
号制御信号とサイズ制御信号とが含まれる。
The control information output by the second decoder 304 includes a register number control signal and a size control signal.

レジスタ制御信号は、右レジスタ番号りがデスティネー
ションレジスタ番号R11に対応することを示す、また
、サイズ制御信号は、右レジスタサイズ6がデスティネ
ーションレジスタサイズW、に対応することを示す。
The register control signal indicates that the right register number corresponds to the destination register number R11, and the size control signal indicates that the right register size 6 corresponds to the destination register size W.

レジスタ番号制御信号RCL、RC2,RC3,RC4
の中でRC3のみがイネーブルとなり、NチャネルTG
603のみがONL、右レジスタ番号R11がデスティ
ネーションレジスタ番号11+として保持される。また
、サイズ制御信号SCI、SC2,SC3,SC4の中
でSC3のみがイネーフ゛ルとなり、NチャネルτG7
03のみが01、右レジスタサイズ6がデスティネーシ
ョンレジスタサイズW0として保持される。
Register number control signals RCL, RC2, RC3, RC4
Among them, only RC3 is enabled, and N-channel TG
Only 603 is held as ONL, and right register number R11 is held as destination register number 11+. Also, among the size control signals SCI, SC2, SC3, and SC4, only SC3 is enabled, and N channel τG7
Only 03 is held as 01, and right register size 6 is held as destination register size W0.

この様にステップコード(1−1)中では、デスティネ
ーションレジスタ番号Rob!SDレジスタ318を示
し、またデスティネーションレジスタサイズW。
In this way, in step code (1-1), destination register number Rob! SD register 318 and destination register size W.

はワードを示す。indicates a word.

これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
An R code 214 is generated from the entry address and register number of these microprograms.

この様にして生成されたRコード214とFコード21
5とは同時にFステージ204に送られる。
R code 214 and F code 21 generated in this way
5 is sent to the F stage 204 at the same time.

Rステージ206は、Rコード・Fコード有効1ε号が
イネーブルになると、Rコード214を入力し、Rコー
ド214中に含まれるマイクロプログラムのエントリア
ドレスにてマイクロROM105をアクセスする。マイ
ク0RQF1105の出力はデコードされ、レジスタ番
号等と共にEコード216となる。このEコード216
のデスティネーションレジスタ番号R。
When the R code/F code valid 1ε is enabled, the R stage 206 inputs the R code 214 and accesses the micro ROM 105 using the entry address of the micro program included in the R code 214. The output of the microphone 0RQF 1105 is decoded and becomes an E code 216 along with the register number and the like. This E code 216
destination register number R.

が示すレジスタはSDレジスタ314であり、またデス
ティネーションレジスタサイズ−9はワードである。
The register indicated by is the SD register 314, and the destination register size -9 is a word.

OFステージ207は、Rコード・Fコード有効信号が
イネーブルになると、Fコード215を入力し、Fコー
ド215の一部であるFAレジスク317中の値はSA
レジスタ31Bに転送される。S^レジスタ318中の
値はSコード217としてEステージ205に送られる
When the R code/F code valid signal is enabled, the OF stage 207 inputs the F code 215, and the value in the FA register 317, which is a part of the F code 215, is SA.
It is transferred to register 31B. The value in S^register 318 is sent to E stage 205 as S code 217.

Eステージ205にEコード216とSコード217が
入力されると、SAレジスタ318中の値をAAレジス
タ219に格納せよ、という処理が行われる。この場合
、デスティネーションレジスタ番号R,が示すレジスタ
はSDレジスタ314であるが、書き込みオペランドで
あるのでこの値は意味が無い。このため、SAレジスタ
318中の値が^Aレジスタ3+9に転送されるのみで
ある。
When the E code 216 and S code 217 are input to the E stage 205, a process is performed in which the value in the SA register 318 is stored in the AA register 219. In this case, the register indicated by the destination register number R is the SD register 314, but this value has no meaning since it is a write operand. Therefore, the value in SA register 318 is only transferred to ^A register 3+9.

以上の如く、ステップコード(1−1)はパイプライン
上を順次処理されていく。
As described above, the step code (1-1) is sequentially processed on the pipeline.

(4,1,2)  r POP命令の第2ステンプコー
ド(1−2)の処理」 Aステージ203はAコード213とDコード212と
を入力する。
(4, 1, 2) r Processing of second step code (1-2) of POP instruction” The A stage 203 inputs the A code 213 and the D code 212.

Aコード213がAステージ203に入力されると、へ
ステージ203ではAコード213中の制御信号の制御
によってアドレス計算が行われる。Aステージ203の
スタックポインタである^SPレジスタ311から値が
Aバス322上に出力され、BASEレジスタ307に
格納される。  INDEXレジスタ308及びDIS
Pレジスタ309はクリアされる。RASεレジスタ3
07゜INDEX レジスタ308及びDISPI、ジ
スタ309の値がアドレス加算器305で加算され、そ
の結果はAOUTレジスタ306に格納される。この動
作によって、ASPレジスタ311の内容がへ00丁レ
ジスタ306に転送される。同時にASPレジスタ31
1は+4インクリメントされる。更に、AO[JTレジ
スタ306中の値は^0バス323を介してFAレジス
タ31.7に送られる。
When the A code 213 is input to the A stage 203, the address calculation is performed in the forward stage 203 under the control of the control signal in the A code 213. A value is output from the SP register 311, which is the stack pointer of the A stage 203, onto the A bus 322 and stored in the BASE register 307. INDEX register 308 and DIS
P register 309 is cleared. RASε register 3
The values of the 07° INDEX register 308 and DISPI register 309 are added by the address adder 305, and the result is stored in the AOUT register 306. By this operation, the contents of the ASP register 311 are transferred to the 00 register 306. At the same time, ASP register 31
1 is incremented by +4. Additionally, the value in the AO[JT register 306 is sent via the ^0 bus 323 to the FA register 31.7.

FAレジスタ317中にあるASP値は第2デコーダ3
04の出力の一部と共にFコード215となる。
The ASP value in the FA register 317 is sent to the second decoder 3.
It becomes F code 215 along with a part of the output of 04.

第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果が入力されると、マイクロプログ
ラムのエントリアドレス及び種々の制jB情報を生成す
る。
As shown in FIG. 8, the second decoder 304
When the intermediate decoding results of step 2 are input, the entry address of the microprogram and various control jB information are generated.

また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報は、それぞれ右レジスタ番号生成部50
1及び左レジスタ番号生成部502に入力され、右しジ
スタ番号R1,左しジスク番号RLが生成される。  
POP命令の第2のステップコード(12)では、右レ
ジスタ番号りのみが意味を有していてSDレジスタ51
4を示す、右レジスタサイズ6はワードを示す。
Further, the right register number information and the left register number information in the D code 212 are respectively generated by the right register number generation unit 50.
1 and left register number generation unit 502, and a right register number R1 and a left register number RL are generated.
In the second step code (12) of the POP instruction, only the right register number has meaning, and the SD register 51
4, right register size 6 indicates word.

この右レジスタ番号情報は、命令フォーマント中で指定
されるものではなく、このステップコード(1,−2)
生成時にDステージ202で生成されたものである。
This right register number information is not specified in the instruction formant, but in this step code (1, -2).
It is generated in the D stage 202 at the time of generation.

第2デコーダ304が出力する制御情報の中には、レジ
スタ番号制御情報とサイズ制御情報が含まれる。レジス
タ番号制f:Jl信号は右レジスタ番号R,がソースレ
ジスタ番号R,に対応することを示す。またサイズ制御
信号は、右レジスタサイズhがソースレジスタサイズh
に対応することを示す。
The control information output by the second decoder 304 includes register number control information and size control information. Register number system f: The Jl signal indicates that the right register number R, corresponds to the source register number R. In addition, the size control signal is such that the right register size h is the source register size h
Indicates that it corresponds to

レノスタ番号制i卸信号RC1,RC2,RC3,RC
4の中でRCIのみがイネーブルとなり、NチャネルT
G601のみがONシ、右レジスタ番号+1.がソース
レジスタ番号R3として保持される。デスティネーンヨ
ンレジスタ番号Roは、ステップコード(1−1)で処
理時に保持した番号のままである。また、サイズ制御信
号SCI、SC2,SC3,SC4の中でSCIのみが
イネーブルとなり、NチャネルTG701のみがONL
、右レジスタサイズ6がソースレジスタサイズ6として
保持される。
Renostar number system wholesale signal RC1, RC2, RC3, RC
4, only RCI is enabled, and N channel T
Only G601 is ON, right register number +1. is held as source register number R3. The destination register number Ro remains the number held during processing with step code (1-1). Also, among the size control signals SCI, SC2, SC3, and SC4, only SCI is enabled, and only N channel TG701 is ONL.
, right register size 6 is held as source register size 6.

このようにステップコード(+−2)中では、ソースレ
ジスタ番号RsはSDレジスタ314を示し、ソースレ
ジスタサイズ−3はワードを示す。
Thus, in the step code (+-2), the source register number Rs indicates the SD register 314, and the source register size -3 indicates a word.

これらのマイクロプログラムのエントリアドレス及びレ
ジスタ番号等からRコード21.4が生成される。
R code 21.4 is generated from the entry address and register number of these microprograms.

このようにして生成されたRコード214及びFコード
215は同時にFステージ204に送られる。
The R code 214 and F code 215 generated in this way are simultaneously sent to the F stage 204.

Rステージ206は、Rコード・Fコード有効信号がイ
ネーブルとなると、Rコード214を入力し、Rコード
214中に含まれるマイクロプログラムのエントリアド
レスにてマイクロROM105をアクセスする。マイク
ロRO旧05の出力はデコードされ、レジスタ番号等と
共にEコード216となる。このステップコード(1−
2)のソースレジスタ番号R8が示すレジスタはSDレ
ジスタ314であり、またソースレジスタサイズイ、は
ワードである。
When the R code/F code enable signal is enabled, the R stage 206 inputs the R code 214 and accesses the micro ROM 105 using the entry address of the micro program included in the R code 214. The output of micro RO old 05 is decoded and becomes E code 216 along with the register number etc. This step code (1-
The register indicated by the source register number R8 in 2) is the SD register 314, and the source register size is a word.

OFステージ207は、Rコード・Fコード有効信号が
イネーブルとなると、Fコード215を入力する。Fコ
ード215の一部であるFAレジスタ3+7の値はこの
命令のSP値である。そして、FAレジスタ317の値
をアドレス値として、外部ハスインターフェース部10
7を介してスタックトップに対してオペランドのブリフ
ェッチが行われる。このスタックトップに対するアクセ
スにおいて、ブリフェッチされた値は外部バスインター
フェース部107を介して本発明のデータ処理装置内に
読み込まれ、DOババス20上よりSDレジスタ314
に保持される。
OF stage 207 inputs F code 215 when the R code/F code enable signal is enabled. The value of FA register 3+7, which is part of the F code 215, is the SP value of this instruction. Then, using the value of the FA register 317 as an address value, the external lotus interface unit 10
7 to the top of the stack. In this access to the top of the stack, the briefetched value is read into the data processing device of the present invention via the external bus interface section 107 and transferred from the DO bus 20 to the SD register 314.
is maintained.

Sロレジスタ314中の値はSコード217の一部とし
てEステージ205に送られる。
The value in the S register 314 is sent to the E stage 205 as part of the S code 217.

Eステージ205は、Eコード216及びSコード21
7を入力すると、A^レジスタ319の値をデスティネ
ーションアドレスとしてソースレジスタ番号R1が示す
レジスタ中の値を転送せよ、という処理が行われる。こ
の場合、ソースレジスタ番号R5が示すレジスタはSD
レジスタ314である。従って、初めの2クロツク(l
ステップ)でスタックトップからプリフェッチされたS
Dレジスタ314中の値は、Slバス325上からAL
υ313へ送られ、演算されることなく00バス327
上からDOレジスタ315に転送される。
E stage 205 has E code 216 and S code 21
When 7 is input, processing is performed to transfer the value in the register indicated by the source register number R1 using the value of the A^ register 319 as the destination address. In this case, the register indicated by source register number R5 is SD
This is a register 314. Therefore, the first two clocks (l
S prefetched from the top of the stack at step)
The value in the D register 314 is transferred from the AL bus 325 to the
Sent to υ313 and sent to 00 bus 327 without being calculated.
It is transferred to the DO register 315 from above.

次の2クロツク(1ステツプ)でDOレジスタ315に
送られたデータは、ステップコード(1−1)の処理で
保持した^Aレジスタ319中の値をデスティネーショ
ンアドレスとして、外部バスインターフェース部107
を介して格納される。
The data sent to the DO register 315 in the next two clocks (1 step) is sent to the external bus interface unit 107 using the value in the ^A register 319 held by the processing of step code (1-1) as the destination address.
stored via.

Eステージ205において、基本的にASP命令の第2
ステツプコード(1−2)は処理に4クロツク(2ステ
ツプ)を要する。しかし、データの演算と格納とはパイ
プライン化されているので、データの格納処理中に次の
命令の処理を始める場合もあり、この場合は処理に2ク
ロツク(lステップ)を要するのみである。
At E stage 205, basically the second ASP instruction
Step code (1-2) requires 4 clocks (2 steps) to process. However, since data calculation and storage are pipelined, processing of the next instruction may start during the data storage process, and in this case, only two clocks (l steps) are required for processing. .

以上の如くして、ステップコード(1−2)はパイプラ
イン機構上を順次処理されていく。
As described above, step codes (1-2) are sequentially processed on the pipeline mechanism.

本発明のデータ処理装置においては、第10図fatに
示す如<  pop命令のステップコード(1−1)及
びステップコード(1−2)はパイプラインの各ステー
ジ上で順次処理されていく、従って、POP命令の処理
時における各ステージの負荷分散が十分に行(4,2)
 rデスティネーションがレジスタ指定時」アトレジ7
シングモードがレジスタ直接モードである場合、デステ
ィネーションが汎用レジスタになったことによりデステ
ィネーションオペランドに関する処理の簡略化が可能に
なる。
In the data processing device of the present invention, as shown in FIG. , the load distribution of each stage is sufficient when processing a POP instruction (4, 2)
r When destination is specified as a register” Atregi 7
When the sing mode is the register direct mode, processing regarding the destination operand can be simplified because the destination is a general-purpose register.

以下に、POP命令のアトレジ7シングモードがレジス
タ直接モードである場合に、デスティネーションオペラ
ンドに関する処理を如何に簡略化するかを詳細に説明す
る。
In the following, it will be explained in detail how the processing regarding the destination operand is simplified when the registering mode of the POP instruction is the register direct mode.

なお、ここでデスティネーションとなる汎用レジスタの
レジスタ番号はR3であるとする。従って、第37図(
blの汎用レジスタ番号RnはR1である。
It is assumed here that the register number of the general-purpose register serving as the destination is R3. Therefore, Fig. 37 (
The general-purpose register number Rn of bl is R1.

先ず、IFステージ201はPOP命令をメモリからフ
ェッチして命令キュー211に入力し、Dステージ20
2に対してPOP命令の命令コード211を出力する。
First, the IF stage 201 fetches a POP instruction from memory and inputs it into the instruction queue 211, and then the D stage 20
2, the instruction code 211 of the POP instruction is output.

Dステージ202は、IFステージ201によってフェ
ッチされたPOP命令を、第1デコーダ303によりデ
コードする。
In the D stage 202, the POP instruction fetched by the IF stage 201 is decoded by the first decoder 303.

POP命令の命令コード211は第1デコーダ303に
入力され、デコードされてPOP命令の第1のステップ
コード(2−1)が生成される。デコード結果の一部は
内部状態信号として内部状態保持ラッチ401に保持さ
れる。
The instruction code 211 of the POP instruction is input to the first decoder 303 and decoded to generate the first step code (2-1) of the POP instruction. A part of the decoded result is held in internal state holding latch 401 as an internal state signal.

次のデコードのサイクルでは、内部状態保持ラッチ40
1からの内部状態信号に応答して第1デコーダ303は
IFステージ201からの命令コード211を取り込ま
ず、POP命令の第2のステップコード(2−2)を生
成する。この様にして、第9図tb)に示す如く2つの
ステップコードが生成される。
In the next decoding cycle, the internal state holding latch 40
In response to the internal state signal from IF stage 201, first decoder 303 does not take in the instruction code 211 from IF stage 201 and generates the second step code (2-2) of the POP instruction. In this way, two step codes are generated as shown in FIG. 9tb).

命令中にはソースオペランド指定部はないが、命令の機
能としてソースオペランドがスタックトップであること
が暗に示されている。本発明のデータ処理装置では、P
OP命令をデコードした段階で、ソースオペランドに関
する処理を予め行うためのステップコード(2−2)を
生成する。
Although there is no source operand specification part in the instruction, it is implied that the source operand is the top of the stack as a function of the instruction. In the data processing device of the present invention, P
At the stage of decoding the OP instruction, a step code (2-2) is generated to perform processing related to the source operand in advance.

Dステージ202から出力されるそれぞれのステップコ
ードはAコード213とDコード212とから構成され
ている。同一のステップコード中にあるAコード213
とDコード212とは同時にAステージ203に送られ
る。  pop命令から生成されたステップコードはA
ステージ203に対してステップコード(2−1>、ス
テップコード(2−2)の順序で送られる。
Each step code output from the D stage 202 is composed of an A code 213 and a D code 212. A code 213 in the same step code
and the D code 212 are sent to the A stage 203 at the same time. The step code generated from the pop instruction is A
The step code (2-1>) is sent to the stage 203 in the order of step code (2-2).

以降のステージにおける処理は、各ステップコードに関
して説明する。
Processing in subsequent stages will be explained for each step code.

(4,2,1)  r POP命令の第1ステツプコー
ド(2−1)の処理」 Aステージ203はAコード213とDコード212と
を入力する。しかし、Aコード213がAステージ20
3に入力されても、レジスタ直接モードであることから
アドレス計算の処理は行わない。
(4, 2, 1) r Processing of the first step code (2-1) of the POP instruction” The A stage 203 inputs the A code 213 and the D code 212. However, A code 213 is A stage 20
3, address calculation processing is not performed because it is in register direct mode.

第8図に示す如く、第2デコーダ304はDコード21
2の中間デコード結果を入力すると、マイクロプログラ
ムのエントリアドレス及び種々の制御情報を生成する。
As shown in FIG. 8, the second decoder 304
When the intermediate decoding results of step 2 are input, the microprogram entry address and various control information are generated.

また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号生成部502に入力され、右レジス
タ番号R11及び左レジスタ番号RLが生成される。 
 pop命令のステップコード(2−1)では、右レジ
スタ番号Rえのみが意味を有していて汎用レジスタファ
イル中にある汎用レジスタR1を示し、また右レジスタ
サイズhはワードを示す。
Further, the right register number information and the left register number information in the D code 212 are respectively generated by the right register number generation unit 501.
and is input to the left register number generation unit 502, and a right register number R11 and a left register number RL are generated.
In the step code (2-1) of the pop instruction, only the right register number Re has meaning and indicates general-purpose register R1 in the general-purpose register file, and the right register size h indicates a word.

第2デコーダ304が出力する制御情報には、レジスタ
番号制御悄仰とサイズ制御情報とが含まれている。レジ
スタ番号制御信号は、右レジスタ番号R8がデスティネ
ーションレジスタ番号R,に対応することを示す、また
、サイズ制御信号は、右レジスタサイズもがデスティネ
ーションレジスタサイズ−8に対応することを示す。
The control information output by the second decoder 304 includes register number control information and size control information. The register number control signal indicates that the right register number R8 corresponds to the destination register number R, and the size control signal indicates that the right register size also corresponds to the destination register size -8.

レジスタ番号制御信号RCI、RC2,l?C3,RC
Iの中でRC3のみがイネーブルとなり、NチャネルT
G603のみがONL、右レジスタ番号りがデスティネ
ーションレジスタ番号R,とじて保持される。また、サ
イズ制御信号SCI、SC2,SC3,SC4の中でS
C3のみがイネーブルとなり、NチャネルTG703の
みがONL、右レジスタサイズW8がデスティネーショ
ンレジスタサイズもとして保持される。
Register number control signals RCI, RC2, l? C3,RC
Only RC3 is enabled in I, and N channel T
Only G603 is held as ONL, and the right register number is held as destination register number R. Also, among the size control signals SCI, SC2, SC3, and SC4, S
Only C3 is enabled, only N channel TG 703 is ONL, and right register size W8 is held as destination register size.

以上の如く、ステップコード(2−1)中では、デステ
ィネーションレジスタ番号R0は汎用レジスタR4を示
し、またデスティネーションレジスタサイズ6はワード
を示す。
As described above, in the step code (2-1), the destination register number R0 indicates the general-purpose register R4, and the destination register size 6 indicates a word.

第2デコーダ304は、アドレッシングモードがレジス
タ直接アドレッシングであることから、Rコード・Fコ
ード有効信号をイネーブルにしない。
Since the addressing mode is register direct addressing, the second decoder 304 does not enable the R code/F code enable signal.

従って、Fステージ204はステップコード(2〜l)
を入力しない、つまり、ステップコード(2−1)はA
ステージ203において消滅する。
Therefore, the F stage 204 is a step code (2 to l)
In other words, step code (2-1) is A
It disappears at stage 203.

デスティネーションレジスタ番号R,とデスティネーシ
ョンレジスタサイズ賀。はステップコード(22)に渡
されるために保持され続ける。
Destination register number R, and destination register size G. continues to be retained to be passed to the step code (22).

もし、レジスタ直接モード以外のアドレッシングモード
であるならば、デスティネーションオペランドに関する
処理を行うステップコード(2−1)は、Eステージ2
05においてデスティネーションアドレス値をA^レジ
スタ219に退避するという処理を行う、しかし、レジ
スタ直接モードであるためその処理を行う必要がない、
従って、本発明のデータ処理装置においては、アドレッ
シングモードがレジスタ直接モードであるPOP命令を
処理する場合にはステップコード(2−1)を消滅させ
る。
If the addressing mode is other than register direct mode, the step code (2-1) that performs processing regarding the destination operand is E stage 2.
05, the destination address value is saved in the A^ register 219. However, since it is in register direct mode, there is no need to perform this process.
Therefore, in the data processing apparatus of the present invention, when processing a POP instruction whose addressing mode is register direct mode, the step code (2-1) is deleted.

(4,2,2)  r POP命令の第2ステ、デコー
ド(2−2)の処理」 Aステージ203はAコード213とDコード212と
を入力する。Aコード213がAステージ203に入力
されると、Aステージ203ではAコード213中の制
御信号の制御によりアドレス計算を行う。
(4, 2, 2) r Second step of POP instruction, processing of decoding (2-2)” The A stage 203 inputs the A code 213 and the D code 212. When the A code 213 is input to the A stage 203, the A stage 203 performs address calculation under the control of the control signal in the A code 213.

Aステージ203のスタックポインタであるASPレジ
スタ311からその値がAバス322上に出力され、B
ASEレジスタ307に格納される。 INDEXレジ
スタ308及び旧SPレジスタ309はクリアされる。
The value is output from the ASP register 311, which is the stack pointer of the A stage 203, onto the A bus 322, and
It is stored in the ASE register 307. INDEX register 308 and old SP register 309 are cleared.

BASEレジスタ307. INDEXレジスタ308
及びDISPレジスタ309の値がアドレス加算器30
5で加算され、その結果はAOIJTレジスタ306に
格納される。この動作により、ASPレジスタ311の
内容がへ〇〇Tレジスタ306に転送される。同時にA
SPレジスタ311は+4インクリメントされる。更に
、AOtlTレジスタ306中の値はAOババス23を
介してFAレジスク317に送られる。FAレジスタ3
1.7中にあるasP(aは第2デコーダ304の出力
の一部と共にFコード215となる。
BASE register 307. INDEX register 308
and the value of the DISP register 309 is the address adder 30
5 and the result is stored in the AOIJT register 306. By this operation, the contents of the ASP register 311 are transferred to the 〇〇T register 306. At the same time A
SP register 311 is incremented by +4. Further, the value in the AOtlT register 306 is sent to the FA register 317 via the AO bus 23. FA register 3
asP(a in 1.7 becomes the F code 215 together with a part of the output of the second decoder 304.

第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果を入力すると、マイクロプログラ
ムのエントリアドレス及び種々の制御情報を生成する。
As shown in FIG. 8, the second decoder 304
When the intermediate decoding results of step 2 are input, the microprogram entry address and various control information are generated.

また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号情報部502に入力され、右レジス
タ番号り及び左レジスタ番号1.が生成される。POP
命令のステップコード(2−2)では、右レジスタ番号
R6のみが意味を有していてSOレジスタ314を示す
、また、右レジスタサイズhはワードを示す、このステ
ップコード(2−2)の右レジスタ番号情報は命令フォ
ーマント中で指定されるものではなく、このステップコ
ード(2−2)生成時にDステージ202で生成された
ものである。
Further, the right register number information and the left register number information in the D code 212 are respectively generated by the right register number generation unit 501.
and is input to the left register number information section 502, and the right register number and left register number 1. is generated. POP
In the step code (2-2) of the instruction, only the right register number R6 has meaning and indicates the SO register 314, and the right register size h indicates a word. The register number information is not specified in the instruction formant, but is generated at the D stage 202 when this step code (2-2) is generated.

第2デコーダ304が出力する制御情報の中には、レジ
スタ番号制御情報とサイズ制御情報とが含まれる。レジ
スタ番号1til制御信号は右レジスタ番号R#がソー
スレジスタ番号R5に対応することを示し、サイズ制御
信号は右レジスタサイズhがソースレジスタサイズ6に
対応することを示す。
The control information output by the second decoder 304 includes register number control information and size control information. The register number 1til control signal indicates that the right register number R# corresponds to the source register number R5, and the size control signal indicates that the right register size h corresponds to the source register size 6.

レジスタ番号制御信号1?cl 、 l?c2. RC
3,RC4の中でRClのみがイネーブルとなり、Nチ
ャネルTG601のみがONL、右レジスタ番号R1が
ソースレジスタ番号R8として保持される。デスティネ
ーションレジスタ番号札は、ステップコード(2−3)
で処理時に保持した番号のままである。また、サイズ制
御信号SCI 、 SC2,SC3,SC4の中でSC
Iのみがイネーブルとなり、NチャネルTG701のみ
がONシ、右レジスタサイズ6がソースレジスタサイズ
−3として保持される。デスティネーションレジスタサ
イズj1mは、ステップコード(2−1)で処理時に保
持したサイズのままである。
Register number control signal 1? cl, l? c2. R.C.
3. Among RC4, only RCl is enabled, only N channel TG 601 is held as ONL, and right register number R1 is held as source register number R8. The destination register number plate is the step code (2-3)
The number retained during processing remains the same. Also, among the size control signals SCI, SC2, SC3, and SC4, SC
Only I is enabled, only N channel TG 701 is ON, and right register size 6 is held as source register size -3. The destination register size j1m remains the size held during processing in step code (2-1).

この様にステップコード(2−2)中では、デスティネ
ーションレジスタ番号R,は汎用レジスタR1を示し、
ソースレジスタ番号R8はSDレジスタ3!4を示し、
またデスティネーションレジスタサイズ−Dはワードを
示し、ソースレジスタサイズU、はワードを示す、従っ
て、ステップコード(2−1)の情報の一部をステップ
コード(2−2)に吸収したことになる。
In this way, in the step code (2-2), the destination register number R, indicates general-purpose register R1,
Source register number R8 indicates SD register 3!4,
Also, the destination register size -D indicates a word, and the source register size U indicates a word. Therefore, part of the information in the step code (2-1) is absorbed into the step code (2-2). .

また、レジスタ直接モード時は、第2デコーダ304で
はマイクロプログラムのエントリアドレスの下位1ピン
トが反転されて出力される。従って、デスティネーシッ
ンアドレスがレジスタである場合とそれ以外の場合とで
は、マイクロ命令での処理が異なる。
Further, in the register direct mode, the second decoder 304 inverts and outputs the lower one pin of the entry address of the microprogram. Therefore, the microinstruction processing is different depending on whether the destination address is a register or not.

これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
An R code 214 is generated from the entry address and register number of these microprograms.

このようにして生成されたRコード214及びFコード
215は同時にFステージ204に送られる。
The R code 214 and F code 215 generated in this way are simultaneously sent to the F stage 204.

Rステージ206は、Rコード・Fコード有効信号がイ
ネーブルとなると、Rコード214を入力してそれに含
まれるマイクロプログラムのエントリアドレスにてマイ
クロROMI(15をアクセスする。マイクロl?0M
105の出力はデコードされ、レジスタ番号等と共にE
コード216となる。このステップコード(2−2)の
ソースレジスタ番号R3が示すレジスタはSDレジスタ
314であり、デスティネーションレジスタ番号R,が
示すレジスタは汎用レジスタR1である。また、ソース
レジスタサイズもとデスティネーションレジスタサイズ
ー。は共にワードである。
When the R code/F code enable signal is enabled, the R stage 206 inputs the R code 214 and accesses the micro ROMI (15) at the entry address of the micro program contained therein.
The output of 105 is decoded and sent to E along with the register number etc.
The code becomes 216. The register indicated by the source register number R3 of this step code (2-2) is the SD register 314, and the register indicated by the destination register number R is the general-purpose register R1. Also, the source register size and the destination register size. are both words.

OFステージ207は、Rコード・Fコード有効信号が
イネーブルになると、Fコード215を入力する。Fコ
ード215の一部であるFAレジスク317中の値はこ
の命令のSP値である。 FAレジスタ317中の値を
アドレスとして、外部バスインターフェース部107を
介し、スタックトップにオペランドのブリフェッチを行
う、このスタックトップに対するアクセスによって、ブ
リフェッチした値は外部バスインターフェース部107
を介して本発明のデータ処理装置内に読み込まれ、DO
ババス20上よりSDレジスタ314に保持される。S
Dレジスタ314中の値はSコード217の一部として
Eステージ205に送られる。
OF stage 207 inputs F code 215 when the R code/F code enable signal is enabled. The value in FA register 317, which is part of F code 215, is the SP value of this instruction. Using the value in the FA register 317 as an address, an operand is prefetched to the top of the stack via the external bus interface unit 107. By accessing this stack top, the value briefetched is transferred to the external bus interface unit 107.
is read into the data processing device of the present invention via the DO
It is held in the SD register 314 from the bus 20. S
The value in D register 314 is sent to E stage 205 as part of S code 217.

Eステージ205がEコード216とSコード217と
を入力すると、ソースレジスタ番号P、が示ずレジスタ
中の値をデスティネーションレジスタ番号R,が示すレ
ジスタに転送せよ、という処理が行われる。
When the E stage 205 receives the E code 216 and the S code 217, processing is performed to transfer the value in the register whose source register number P is not indicated to the register indicated by the destination register number R.

この場合、デスティネーション1/ジスタ番号R8が示
すレジスタは汎用レジスタしてあり、ソースレジスタ番
号Rgが示すレジスタはSDレジスタ314である。よ
って、スタックトップからブリフェッチしたSOレジス
タ314中の値はSlバス325上からALU313へ
送られ、演算されることなくDOババス27上から汎用
レジスタR5に転送される。
In this case, the register indicated by destination 1/register number R8 is a general-purpose register, and the register indicated by source register number Rg is the SD register 314. Therefore, the value in the SO register 314 briefetched from the top of the stack is sent from the Sl bus 325 to the ALU 313, and transferred from the DO bus 27 to the general-purpose register R5 without being operated.

以上の如く、ステップコード(2−2)はパイプライン
機構上を順次処理されていく。
As described above, the step code (2-2) is sequentially processed on the pipeline mechanism.

本発明のデータ処理’JAWにおいては、パイプライン
機構上で待ち状態のない場合は、第1O図fblに示す
如(POP命令のステップコード(2−1)及びステッ
プコード(2−2)はパイプラインの各ステージ上で順
次処理されていく、この間に、Aステージ203におい
てステップコード(2−1))ま消滅し、必要な情報の
みがステップコード(2−2)に吸収され第10図(a
l及びfblに示す如く、パイプライン機構上で待ち状
態のない状態で、POP命令のステップコードの1つが
吸収処理される場合とステップコードが吸収されない場
合とでは、Eステージ205でのデータの格納動作を除
くと、処理に要するステップ数は同じである。
In the data processing 'JAW' of the present invention, if there is no waiting state on the pipeline mechanism, the step code (2-1) and step code (2-2) of the POP instruction are During this time, the step code (2-1)) disappears at the A stage 203, and only the necessary information is absorbed into the step code (2-2), as shown in FIG. a
As shown in l and fbl, there is no waiting state on the pipeline mechanism, and data storage in the E stage 205 is different between when one of the step codes of the POP instruction is absorbed and when no step code is absorbed. Except for the motion, the number of steps required for the process is the same.

ここで、POP命令の1つ前の命令のステップコード(
4−1)がEステージ205において処理に3ステツプ
要するため、POP命令のステップコードがFステージ
204において2ステップ待ち状態になった場合につい
て考える。
Here, the step code (
4-1) requires three steps to process at the E stage 205, so consider a case where the step code of the POP instruction enters a two-step wait state at the F stage 204.

第1O図(C1はPOP命令のステップコードが吸収さ
れない場合を示し、第1O図(d+はPOP命令のステ
ップコードの1つが吸収される場合を示している。
Figure 1O (C1 shows the case where the step code of the POP instruction is not absorbed, and Figure 1O (d+ shows the case where one of the step codes of the POP instruction is absorbed).

第1O図fd+から理解される如く、ステップコード(
2−1>が吸収されたことによりEステージ205にお
いて処理すべきステップコードの数が城少し、結果とし
て処理全体に要するステップ数が減少する。
As understood from Fig. 1Ofd+, the step code (
2-1> has been absorbed, the number of step codes to be processed in the E stage 205 is reduced, and as a result, the number of steps required for the entire process is reduced.

このように、不必要なステップコード(2−1)をパイ
プライン機構上で吸収してしまうということは、パイプ
ライン機構上で待ち状態が生した場合に、処理に必要な
ステップ数が減少する可能性が大いにあり、データ処理
装置の処理速度は改善される。
In this way, absorbing unnecessary step code (2-1) on the pipeline mechanism reduces the number of steps required for processing when a wait state occurs on the pipeline mechanism. There is great potential to improve the processing speed of data processing devices.

[発明の効果1 以上に詳述した如く、本発明のデータ処理装置によれば
、POP命令が暗に示しているソースオペランドに関す
る処理単位が生成され、その処理単位がパイプライン処
理されるので、POP命令処理時に非常に均衡のとれた
パイプライン処理が可能となり、全体としての処理速度
の向上が実現される。
[Effects of the Invention 1] As detailed above, according to the data processing device of the present invention, a processing unit related to the source operand implied by the POP instruction is generated, and that processing unit is subjected to pipeline processing. Very balanced pipeline processing is possible when processing POP instructions, and the overall processing speed is improved.

また、レジスタ直接アドレンンングモードであるPOP
命令の処理に際して実行ステージで行う必要のない処理
の処理単位を消滅させる様に構成したので、パイプライ
ン機構上で待ち状態が生した場合はレジスタ直接モード
であるP叶命令の実行時に要する処理ステップ数が減少
し、その処理に対する実行ステージの占有時間が削減さ
れ、データ処理装置の処理速度の向上が可能になる。
In addition, POP, which is a register direct addressing mode,
Since the configuration is configured to eliminate processing units that do not need to be performed in the execution stage when processing instructions, if a wait state occurs on the pipeline mechanism, the processing steps required when executing a P-order instruction in register direct mode are The number of execution stages is reduced, the time occupied by the execution stage for the processing is reduced, and the processing speed of the data processing device can be improved.

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

第1図は本発明のデータ処理装置の構成を示すブロック
図、第2図は本発明のデータ処理装置のパイプラインi
能の構成を示すブロック図、第3図は本発明のデータ処
理装置の更に詳しい構成を示すブロック図、第4図は本
発明のデータ処理装置のデコード(0)ステージの構成
を示すブロック図、第5図は本発明のデータ処理装置の
オペランドアドレス計算(A)ステージで命令テコ−1
′部に含まれる部分の構成を示すプロ、り図、第6図は
第5図におけるレジスタ番号生成部の構成を示す回路図
、第7図は第5図におけるサイズ生成部の構成を示す回
路図、第8図は第5図における第2デコーダの出力であ
るRコード・Fコード有効信号、レジスタ番号制?11
信号及びサイズ制御Tg信号のω 内容を示す、(、第9図fat、 (blはパイプライ
ン機構上におけるPOP命令の処理シーケンスを示すフ
ローチャート、第10図(al、 ibl、 (cl、
 ((11は、pop命令のDステージ以降のステージ
におけるステップコードの処理の流れを示す模式図、第
11図は従来のデータ処理装置におけるパイプライン機
構の構成を示すブロック図、第12図は本発明のデータ
処理装置の命令フォーマットの代表的な形式を示す模式
図、第13図はメモリーレジスタ間演算命令の短縮形フ
ォーマントを示す模式図、第14図はレジスターレジス
タ間演算命令の短縮形フォーマットを示す模式図、第1
5図はリテラル−メモリ間演算命令の短縮形フォーマッ
トを示す模式図、第16図は即値〜メそり間演算命令の
短縮形フォーマットを示す模式図、第17図はlオペラ
ンド命令の一船形フオーマットを示す模式図、第18図
は2オペランド命令の第1オペランドがメモリ読み出し
を必要とする命令の一船形フオーマットを示す模式図、
第19図は2オペランド命令の第1オペランドが8ビツ
ト即値の命令である一船形フオーマットを示す模式図、
第20図は2オペランド命令の第1オペランドがアドレ
ス計算のみの命令である一船形フオーマットを示す模式
図、第21図はショートブランチの命令フォーマットを
示す模式図、第22図はアドレシッシングモード指定部
がレジスタ直接モードであるフォーマットを示す模式図
、第23図はアトレジ7シングモード指定部がレジスタ
間接モードであるフォーマントを示す模式図、第24図
はアドレシンシングモード指定部がレジスタ相対間接モ
ードであるフォーマットを示す模式図、第25図はアド
レシンシングモード指定部が即値モードであるフォーマ
ットを示す模式図、第26図はアドレッシングモード指
定部が絶対モードであるフォーマットを示す模式図、第
27図はアドレシッシングモード指定部がPC相対間接
モードであるフォーマットを示す模式図、第28図はア
ドレシッシングモード指定部がスタンクボップモードで
あるフォーマットを示す模式図、第29図はアドレッシ
ングモード指定部がスタックブツシュモードであるフォ
ーマットを示す模式図、第30図はレジスタペース多段
間接モードのフォーマントを示す模式図、第31図はP
Cベース多段間接モードのフォーマントを示す模式図、
第32図は絶対ベース多段間接モードのフォーマットを
示す模式図、第33図は1段の多段間接モードのフォー
マント中のディスプレースメントIItの加算、インデ
ックスイ直のスケーリングと加算、メモリの間接参照の
指定フィールドを示す模式図、第34図は多段間接モー
ドが継続か否かのバリエーションを示す模式図、第35
図はディスプレースメントI戸のサイズのバリエーショ
ンを示す模式図、第36図は本発明のデータ処理装置の
基本的命令フォーマントを示す模式図、第37図(8)
、(blはPOP命令の命令フォー77トを示す模式図
である。 201・・・命令フェッチステージ 202・・・メモ
リデコードステージ 203・・・オペランドアドレス
計算ステージ 204・・・オペランドフエンチステー
ジ205・・・実行ステージ 211・・・命令コード
 212・・・Dコード 213・・・Aコード 30
3・・・第17コーダ304・・・第2デコーダ なお、各図中同一符号は同−又は相当部分を示す。 用 図
FIG. 1 is a block diagram showing the configuration of a data processing device of the present invention, and FIG. 2 is a pipeline i of the data processing device of the present invention.
FIG. 3 is a block diagram showing a more detailed structure of the data processing device of the present invention, and FIG. 4 is a block diagram showing the structure of the decoding (0) stage of the data processing device of the present invention. FIG. 5 shows instruction lever 1 at the operand address calculation (A) stage of the data processing device of the present invention.
Figure 6 is a circuit diagram showing the configuration of the register number generation unit in Figure 5, and Figure 7 is a circuit diagram showing the configuration of the size generation unit in Figure 5. 8 shows the R code/F code valid signal which is the output of the second decoder in FIG. 5, and the register number system? 11
The contents of the signal and size control Tg signal are shown (, Figure 9 fat, (bl is a flowchart showing the processing sequence of the POP instruction on the pipeline mechanism, Figure 10 (al, ibl, (cl,
((11 is a schematic diagram showing the flow of step code processing in stages after the D stage of the pop instruction, FIG. 11 is a block diagram showing the configuration of the pipeline mechanism in a conventional data processing device, and FIG. A schematic diagram showing a typical format of the instruction format of the data processing device of the invention, FIG. 13 is a schematic diagram showing the abbreviated format of an inter-memory-register operation instruction, and FIG. 14 is an abbreviated format of an inter-register operation instruction. Schematic diagram showing 1st
Figure 5 is a schematic diagram showing the shortened format of a literal-to-memory operation instruction, Figure 16 is a schematic diagram showing the shortened format of an immediate-memory operation instruction, and Figure 17 is a schematic diagram of the one-ship format of an l-operand instruction. FIG. 18 is a schematic diagram showing a single-ship format of an instruction in which the first operand of a two-operand instruction requires a memory read,
FIG. 19 is a schematic diagram showing a one-ship format in which the first operand of a two-operand instruction is an 8-bit immediate value instruction.
Figure 20 is a schematic diagram showing the single-ship format in which the first operand of a two-operand instruction is an instruction that only performs address calculation, Figure 21 is a schematic diagram showing the short branch instruction format, and Figure 22 is addressing mode specification. Figure 23 is a schematic diagram showing a format in which the addressing mode designation part is in register direct mode, Figure 24 is a schematic diagram showing a format in which the addressing mode designation part is in register relative indirect mode. FIG. 25 is a schematic diagram showing a format in which the addressing mode specification section is the immediate value mode. FIG. 26 is a schematic diagram showing a format in which the addressing mode specification section is in the absolute mode. Figure 27 is a schematic diagram showing a format in which the addressing mode designation part is PC relative indirect mode, Figure 28 is a schematic diagram showing a format in which the addressing mode designation part is Stankbop mode, and Figure 29 is an addressing mode. A schematic diagram showing a format in which the designation part is in stacked bush mode, FIG. 30 is a schematic diagram showing a format in register pace multi-stage indirect mode, and FIG.
A schematic diagram showing a C-based multi-stage indirect mode formant,
Figure 32 is a schematic diagram showing the format of the absolute base multi-stage indirect mode, and Figure 33 is a schematic diagram showing the format of the one-stage multi-stage indirect mode, including addition of displacement IIt, direct scaling and addition of index I, and memory indirect reference. FIG. 34 is a schematic diagram showing the designation field; FIG. 34 is a schematic diagram showing variations on whether or not the multi-stage indirect mode continues; FIG.
The figure is a schematic diagram showing variations in the size of the displacement unit I, FIG. 36 is a schematic diagram showing the basic command format of the data processing device of the present invention, and FIG. 37 (8)
, (bl is a schematic diagram showing the instruction format 77 of the POP instruction. 201... Instruction fetch stage 202... Memory decode stage 203... Operand address calculation stage 204... Operand fetch stage 205. ...Execution stage 211...Instruction code 212...D code 213...A code 30
3...Seventeenth coder 304...Second decoder Note that the same reference numerals in each figure indicate the same or corresponding parts. diagram

Claims (1)

【特許請求の範囲】 1、命令をデコードする第1のステージと前記第1のス
テージに引き続いて処理を行う第2のステージを含む複
数のステージとにより命令をパイプライン処理する機構
を備え、メモリ上の所定領域から読出した第1のオペラ
ンドの値を任意に指定可能な第2のオペランドに書込む
ポップ命令を有するデータ処理装置において、 前記第1のステージに前記ポップ命令が入力された場合
にこれをデコードして、前記第2のオペランドを処理す
るための情報を含む第1の単位処理コードと、前記第1
のオペランドを処理するための情報を含む第2の単位処
理コードとを生成し、前記第2のステージへ出力するデ
コード手段を備えたことを特徴とするデータ処理装置。 2、命令をデコードする第1のステージと前記第1のス
テージに引き続いて処理を行う第2のステージと前記第
2のステージに引き続いて処理を行う第3のステージを
含む複数のステージとにより命令をパイプライン処理す
る機構を備え、メモリ上の所定領域から読出した第1の
オペランドの値を任意に指定可能な第2のオペランドに
書込むポップ命令を有するデータ処理装置において、 前記第1のステージに前記ポップ命令が入力された場合
にこれをデコードして、前記第2のオペランドを処理す
るための情報を含む第1の単位処理コードと、前記第1
のオペランドを処理するための情報を含む第2の単位処
理コードとを生成し、前記第2のステージへ出力する第
1のデコード手段と、 前記第2のオペランドが特定のレジスタである場合に、
前記第2のステージに入力された前記第1及び第2の単
位処理コードを処理して1つの単位処理コードを生成し
、前記第3のステージへ出力する第2のデコード手段を
備えたことを特徴とするデータ処理装置。
[Scope of Claims] 1. A memory system comprising a mechanism for pipeline processing of instructions through a plurality of stages including a first stage for decoding the instructions and a second stage for processing subsequent to the first stage; In a data processing device having a pop instruction that writes the value of a first operand read from a predetermined area above to an arbitrarily specifiable second operand, when the pop instruction is input to the first stage. a first unit processing code including information for decoding this and processing the second operand;
1. A data processing device comprising decoding means for generating a second unit processing code including information for processing an operand of and outputting the generated second unit processing code to the second stage. 2. A plurality of stages including a first stage for decoding an instruction, a second stage for processing following the first stage, and a third stage for processing following the second stage; In the data processing device, the first stage is equipped with a mechanism for pipeline processing, and has a pop instruction that writes the value of a first operand read from a predetermined area on memory to an arbitrarily specifiable second operand. a first unit processing code including information for decoding the pop instruction and processing the second operand when the pop instruction is input;
a first decoding means for generating a second unit processing code including information for processing an operand and outputting it to the second stage; when the second operand is a specific register;
The present invention further includes a second decoding means for processing the first and second unit processing codes inputted to the second stage to generate one unit processing code and outputting the same to the third stage. Characteristic data processing device.
JP63251076A 1988-10-04 1988-10-04 Data processing device Expired - Fee Related JPH0769805B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63251076A JPH0769805B2 (en) 1988-10-04 1988-10-04 Data processing device
US07/754,285 US5269008A (en) 1988-10-04 1991-08-30 Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63251076A JPH0769805B2 (en) 1988-10-04 1988-10-04 Data processing device

Publications (2)

Publication Number Publication Date
JPH0298734A true JPH0298734A (en) 1990-04-11
JPH0769805B2 JPH0769805B2 (en) 1995-07-31

Family

ID=17217276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63251076A Expired - Fee Related JPH0769805B2 (en) 1988-10-04 1988-10-04 Data processing device

Country Status (1)

Country Link
JP (1) JPH0769805B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992008190A1 (en) * 1990-10-29 1992-05-14 Fujitsu Limited Device for processing information

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62226231A (en) * 1986-03-27 1987-10-05 Toshiba Corp Processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62226231A (en) * 1986-03-27 1987-10-05 Toshiba Corp Processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992008190A1 (en) * 1990-10-29 1992-05-14 Fujitsu Limited Device for processing information

Also Published As

Publication number Publication date
JPH0769805B2 (en) 1995-07-31

Similar Documents

Publication Publication Date Title
JPH02173823A (en) Data processor
JPH0766324B2 (en) Data processing device
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
JPH07114469A (en) Data processing unit
JPH081599B2 (en) Data processing device
JPH0215331A (en) Data processor
JPH01214932A (en) Data processor
JPH0338725A (en) Data processor and microprocessor
JPH03158928A (en) Data processor
JPH0391029A (en) Data processor
JPH02105937A (en) Data processor
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JPH0298734A (en) Data processor
JPH04109338A (en) Priority encoder and data processor provided with the encoder
JP2532560B2 (en) Data processing device for high-performance exception handling
JP2522048B2 (en) Microprocessor and data processing device using the same
JPH0225932A (en) Data processor
JPH0290325A (en) Data processor
JPH01214933A (en) Data processor
JPH01258032A (en) Data processor having pipe-line processing mechanism
JPH0218621A (en) Data processor
JPH0769802B2 (en) Data processing device
JPH0254336A (en) Data processor
JPH01281534A (en) Data processor

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees