JPH0769804B2 - Data processing device - Google Patents
Data processing deviceInfo
- Publication number
- JPH0769804B2 JPH0769804B2 JP63243483A JP24348388A JPH0769804B2 JP H0769804 B2 JPH0769804 B2 JP H0769804B2 JP 63243483 A JP63243483 A JP 63243483A JP 24348388 A JP24348388 A JP 24348388A JP H0769804 B2 JPH0769804 B2 JP H0769804B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stage
- operand
- code
- memory
- 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.)
- Expired - Lifetime
Links
Landscapes
- Advance Control (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、高度なパイプライン処理機構により高い処
理能力を実現したデータ処理装置に関するものである。Description: TECHNICAL FIELD The present invention relates to a data processing device which realizes high processing capability by an advanced pipeline processing mechanism.
特願昭61-236456号に詳しく述べられている従来のデー
タ処理装置においては、デコードステージにおいて1つ
の命令を1つ以上複数個のパイプライン処理単位(以
後、ステップコードと呼ぶ)に分割し、以後のステージ
では処理が1ステップコードに対して行なわれるように
構成されている。In the conventional data processing device described in detail in Japanese Patent Application No. 61-236456, one instruction is divided into a plurality of pipeline processing units (hereinafter referred to as step codes) in the decoding stage, In the subsequent stages, the processing is performed on the one-step code.
第10図は、従来のパイプライン処理機構を備えたデータ
処理装置におけるデータの流れを示す。図において、10
0は命令フェッチステージ、101はデコードステージ、10
2はアドレス計算ステージ、103はオペランドフェッチス
テージ、104は実行ステージである。デコードステージ
は1つの命令を1つ以上複数個のステップコードに分割
する操作を行なう。FIG. 10 shows a data flow in a data processing device having a conventional pipeline processing mechanism. In the figure, 10
0 is the instruction fetch stage, 101 is the decode stage, 10
2 is an address calculation stage, 103 is an operand fetch stage, and 104 is an execution stage. The decode stage performs an operation of dividing one instruction into one or more step codes.
第11図は従来のデータ処理装置における命令フォーマッ
トを示す図である。図において、(a)はオペコードの
次にソースオペランドが入り、デスティネーションオペ
ランドが続く場合のフォーマット(第1フォーマット)
であり、(b)はオペコードの次にデスティネーション
オペランドが入り、即値が続く場合(第2フォーマッ
ト)である。ここで、105a,106aはオペレーションコー
ド指定フィールド、105bはソースオペランド指定フィー
ルド、105c,106bはデスティネーションオペランド指定
フィールドを示す。また、106cは即値データを示す。FIG. 11 is a diagram showing an instruction format in a conventional data processing device. In the figure, (a) is a format in which a source operand follows the opcode and a destination operand follows (first format).
(B) is the case where the destination operand follows the operation code and the immediate value follows (second format). Here, 105a and 106a are operation code designation fields, 105b is a source operand designation field, and 105c and 106b are destination operand designation fields. Also, 106c indicates immediate data.
第12図は、従来のデータ処理装置において第1フォーマ
ットの命令を処理する場合のパイプラインの流れを示す
図である。図において、1Sはソースオペランドの情報を
含むステップコードであり、1Dはデスティネーションオ
ペランドの情報を含むステップコードである。デコード
ステージ101において1つの命令がSステップコードと
Dステップコードに分割される。FIG. 12 is a diagram showing a flow of a pipeline in the case of processing an instruction of the first format in a conventional data processing device. In the figure, 1S is a step code containing the information of the source operand, and 1D is a step code containing the information of the destination operand. In the decode stage 101, one instruction is divided into an S step code and a D step code.
次に、ソースオペランドがベースアドレスを示すレジス
タ1と変位1との和から求まるアドレスにあり、デステ
ィネーションオペランドがベースアドレスを示すレジス
タ2と変位2との和から求まるアドレスにある加算命令
を例にとって本従来例におけるパイプライン処理の流れ
を示す。まず、この命令が命令フェッチステージ100で
メモリより取り込まれる。デコードステージ101では、
この命令が命令フェッチステージ100より取り込まれる
と、オペレーションコード105aとソースオペランド指定
フィールド105bからステップコード1Sが作成され、オペ
レーションコード105aとデスティネーションオペランド
指定フィールド105cとからステップコード1Dが作成され
る。このステップコード1Sがアドレス計算ステージ102
に入ると、レジスタ1の値と変位1とが加算されオペラ
ンドをフェッチするためのアドレスが求められオペラン
ドフェッチステージ103に送られる。Next, taking an addition instruction as an example, the source operand is at the address obtained from the sum of register 1 indicating the base address and displacement 1, and the destination operand is the address obtained from the sum of register 2 indicating the base address and displacement 2. The flow of the pipeline processing in this conventional example is shown. First, this instruction is fetched from the memory in the instruction fetch stage 100. In decode stage 101,
When this instruction is fetched from the instruction fetch stage 100, the step code 1S is created from the operation code 105a and the source operand specification field 105b, and the step code 1D is created from the operation code 105a and the destination operand specification field 105c. This step code 1S is the address calculation stage 102.
Upon entry, the value of register 1 and displacement 1 are added, the address for fetching the operand is obtained, and the address is sent to the operand fetch stage 103.
オペランドフェッチステージ103では、ソースオペラン
ドの値がメモリから取り込まれる。実行ステージ104で
は、メモリからフェッチされたソースオペランドの値が
ワーキングレジスタに退避される。Dステップコードは
Sステップコードに続いて各ステージを流れる。Dステ
ップコードがアドレス計算ステージ102に入ると、レジ
スタ2の値と変位2とが加算されオペランドをフェッチ
するためのアドレスが求められ、オペランドフェッチス
テージ103に送られる。オペランドフェッチステージ103
では、デスティネーションオペランドの値がメモリから
取り込まれる。In the operand fetch stage 103, the value of the source operand is fetched from the memory. In the execution stage 104, the value of the source operand fetched from the memory is saved in the working register. The D step code flows through each stage following the S step code. When the D step code enters the address calculation stage 102, the value of the register 2 and the displacement 2 are added to obtain the address for fetching the operand, and the address is sent to the operand fetch stage 103. Operand fetch stage 103
In, the value of the destination operand is fetched from memory.
Dステップコードが実行ステージ104に入ると、前もっ
てワーキングレジスタに退避されていたソースオペラン
ドの値とデスティネーションオペランドの値が加算さ
れ、その結果がデスティネーションで指定された場所に
ストアされる。1つの命令は各ステージにおいて2基本
クロックで処理されることになり、第1フォーマットの
命令はすべて5基本クロックで処理される。しかし、上
記の例のようにメモリへの書き込みを行なう場合は、1
基本クロック余分に必要となり、6基本クロックで処理
される。When the D step code enters the execution stage 104, the value of the source operand previously saved in the working register and the value of the destination operand are added, and the result is stored in the location designated by the destination. One instruction is processed in 2 basic clocks in each stage, and all instructions in the first format are processed in 5 basic clocks. However, when writing to the memory as in the above example, 1
An extra base clock is required and is processed with 6 base clocks.
また、従来のデータ処理装置で、汎用アドレッシングモ
ードで指示されるデスティネーションオペランドがレジ
スタ上にあるかメモリ上にあるかをパラメータとしてマ
イクロプログラムに渡し、レジスタへのオペランド書き
込みもメモリへのオペランド書き込みも、同一のマイク
ロ命令により処理するようにして、マイクロROMサイズ
の削減を図っている。Also, in the conventional data processing device, whether the destination operand instructed in the general-purpose addressing mode is in the register or in the memory is passed as a parameter to the microprogram to write the operand to the register and the operand to the memory. , The same micro-instruction is used for processing to reduce the micro ROM size.
しかしながら従来のデータ処理装置では、第11図(b)
の第2フォーマットのようにソースオペランドが命令コ
ード中で指定される即値データに限定された2オペラン
ド命令を処理する場合、最初にデスティネーションオペ
ランドが指定されソースオペランドである即値データが
後続するため、データ処理装置内ではデスティネーショ
ンオペランドに対応する処理単位、即値データに対する
処理単位の順にパイプライン処理される。この場合、デ
スティネーションオペランドに関する処理を行なう処理
単位とマイクロ命令が書き込みを行なう処理単位とが対
応していないため、デスティネーションオペランドがレ
ジスタ上にあるかメモリ上にあるかの情報を、マイクロ
プログラムが書き込みを行なう処理単位に対応づけて渡
すことができないという問題点があった。However, in the conventional data processing device, FIG.
When processing a two-operand instruction in which the source operand is limited to the immediate data specified in the instruction code as in the second format, the destination operand is specified first, and the immediate data that is the source operand follows. In the data processing device, pipeline processing is performed in the order of the processing unit corresponding to the destination operand and the processing unit for immediate data. In this case, since the processing unit for processing the destination operand and the processing unit for writing the micro instruction do not correspond to each other, the micro program provides information about whether the destination operand is in the register or in the memory. There is a problem that it cannot be passed in association with the processing unit for writing.
また、従来のデータ処理装置では、デスティネーション
オペランドがレジスタのみに限定された命令を処理する
場合、デスティネーションオペランドが汎用アドレッシ
ングモードで指定されないので、パレメータが設定され
ないという問題点があった。Further, in the conventional data processing device, when the instruction whose destination operand is limited to the register is processed, the destination operand is not designated in the general-purpose addressing mode, so that the parameter is not set.
本発明は上記のような従来のものの問題点を解決するた
めになされたもので、デスティネーションオペランドが
レジスタ上にあるかメモリ上にあるかの情報を、実行ス
テージでオペランドの書き込みを行なう処理単位にうま
く対応させることにより、マイクロROMの占める面積を
一層削減することのできるデータ処理装置を得ることを
目的とする。The present invention has been made in order to solve the problems of the conventional ones described above, and a processing unit for writing the information whether the destination operand is in the register or in the memory at the execution stage. It is an object of the present invention to provide a data processing device capable of further reducing the area occupied by a micro ROM by making it compatible with the above.
この発明に係るデータ処理装置は、上記のような従来の
ものの問題点を解決するため、デスティネーションオペ
ランドに関する処理情報を送る処理単位が、実行ステー
ジでデスティネーションオペランドへの書き込みを行な
う処理単位と異なる場合にも、書き込みオペランドがレ
ジスタ上にあるかメモリ上にあるかを実行ステージで書
き込みを行なう処理単位に対応させて指示するようにし
たものである。In the data processing device according to the present invention, in order to solve the above-mentioned problems of the conventional device, the processing unit for sending the processing information regarding the destination operand is different from the processing unit for writing to the destination operand in the execution stage. Also in this case, whether the write operand is in the register or in the memory is instructed in correspondence with the processing unit for writing in the execution stage.
また、デスティネーションオペランドがレジスタのみに
限定された命令を処理する場合、オペランドがレジスタ
上にあることを指示するようにしたものである。Further, when the instruction whose destination operand is limited to the register is processed, it is designed to indicate that the operand is on the register.
この発明におけるデータ処理装置は、デスティネーショ
ンオペランドがメモリ上にあるか、レジスタ上にあるか
を実行ステージで書き込みが行なわれる処理単位に対応
させて指示し、オペランドの位置によらず同一のマイク
ロ命令でオペランドの書き込み処理を行なうようにした
ので、マイクロ命令の共用化を図ることができ、マイク
ロROMの面積を一層削減できる。The data processing device according to the present invention indicates whether the destination operand is on the memory or on the register in correspondence with the processing unit in which writing is performed in the execution stage, and the same microinstruction is set regardless of the position of the operand. Since the write processing of the operand is carried out, the microinstruction can be shared and the area of the micro ROM can be further reduced.
以下、本発明の実施例を図について説明する。 Embodiments of the present invention will be described below with reference to the drawings.
(1)機能ブロックの構成 第1図に本発明の一実施例によるデータ処理装置のブロ
ック図を示す。本実施例のデータ処理装置の内部を機能
的に大きく分けると、命令フェッチ部51,命令デコード
部52,PC計算部53,オペランドアドレス計算部54,マイク
ロROM部55,データ演算部56,外部バスインターフェイス
部57に分かれる。第1図では、その他にCPU外部にアド
レスを出力するアドレス出力回路58とCPU外部とデータ
の入出力を行なうデータ入出力回路59を他の機能ブロッ
ク部と区別して示した。(1) Functional Block Configuration FIG. 1 shows a block diagram of a data processing apparatus according to an embodiment of the present invention. Functionally, the inside of the data processing device of this embodiment is roughly divided into an instruction fetch unit 51, an instruction decoding unit 52, a PC calculation unit 53, an operand address calculation unit 54, a micro ROM unit 55, a data calculation unit 56, and an external bus. Divided into interface section 57. In FIG. 1, an address output circuit 58 for outputting an address to the outside of the CPU and a data input / output circuit 59 for inputting / outputting data to / from the outside of the CPU are shown separately from the other functional block portions.
(1.1)命令フェッチ部 命令フェッチ部51にはブランチバッファ,命令キューと
その制御部などがあり、次にフェッチすべき命令のアド
レスを決定して、ブランチバッファやCPU外部のメモリ
から命令をフェッチするブランチバッファへの命令登録
も行なう。(1.1) Instruction fetch unit The instruction fetch unit 51 has a branch buffer, an instruction queue and its control unit, determines the address of the instruction to be fetched next, and fetches the instruction from the branch buffer or a memory outside the CPU. It also registers instructions in the branch buffer.
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特願昭61-202041号で詳しく述べられている。Since the branch buffer is small, it operates as a selective cache. Details of the operation of the branch buffer are described in detail in Japanese Patent Application No. 61-202041.
次にフェッチすべき命令のアドレスは命令キューに入力
すべき命令のアドレスとして専用のカウンタで計算され
る。分岐やジャンプが起きたときには新たな命令のアド
レスがPC計算部53やデータ演算部56より転送されてく
る。The address of the instruction to be fetched next is calculated by a dedicated counter as the address of the instruction to be input to the instruction queue. When a branch or jump occurs, the address of the new instruction is transferred from the PC calculation unit 53 or the data calculation unit 56.
CPU外部のメモリから命令をフェッチするときは、外部
バスインターフェイス部57を通して、フェッチすべき命
令のアドレスをアドレス出力回路58からCPU外部に出力
し、データ入出力回路59から命令コードをフェッチす
る。When fetching an instruction from the memory outside the CPU, the address of the instruction to be fetched is output from the address output circuit 58 to the outside of the CPU through the external bus interface unit 57, and the instruction code is fetched from the data input / output circuit 59.
バッファリングした命令コードのうち、命令デコード部
52で次にデコードすべき命令コードを命令デコード部52
に出力する。Of the buffered instruction codes, the instruction decode section
The instruction decoding unit 52 determines the instruction code to be decoded next at 52.
Output to.
(1.2)命令デコード部 命令デコード部52では基本的に16ビット(ハーフワー
ド)単位に命令コードをデコードするほか、汎用アドレ
ッシングモードによって指定されるオペランドがレジス
タ上またはメモリ上のいずれにあるかを指示する。この
ブロックには第1ハーフワードに含まれるオペコードを
デコードするFHWデコーダ、第2,第3ハーフワードに含
まれるオペコードをデコードするNFHWデコーダ、アドレ
ッシングモードをデコードするアドレッシングモードデ
コーダが含まれる。(1.2) Instruction decode unit The instruction decode unit 52 basically decodes the instruction code in 16-bit (halfword) units, and indicates whether the operand specified by the general-purpose addressing mode is on a register or in memory. To do. This block includes an FHW decoder that decodes the operation code included in the first halfword, an NFHW decoder that decodes the operation code included in the second and third halfwords, and an addressing mode decoder that decodes the addressing mode.
さらにFHWデコーダやNFHWデコーダの出力をさらにデコ
ードして、マイクロROMのエントリアドレスを計算する
第2のデコーダ、条件分岐命令の分岐予測を行なう分岐
予測機構,オペランドアドレス計算のときのパイプライ
ンコンフリクトをチェックするアドレス計算コンフリク
トチェック機構も含まれる。A second decoder that further decodes the output of the FHW decoder and NFHW decoder to calculate the entry address of the micro ROM, a branch prediction mechanism that predicts the branch of conditional branch instructions, and a pipeline conflict when calculating the operand address An address calculation conflict check mechanism is also included.
命令フェッチ部より入力された命令コードを2クロック
につき0〜6バイトにデコードする。デコード結果のう
ち、データ演算ブロック56での演算に関する情報がマイ
クロROM部55にオペランドアドレス計算に関係する情報
がオペランドアドレス計算部54に、PC計算に関係する情
報がPC計算部53にそれぞれ出力される。The instruction code input from the instruction fetch unit is decoded into 0 to 6 bytes every 2 clocks. Among the decoding results, the information related to the operation in the data operation block 56 is output to the micro ROM unit 55, the information related to the operand address calculation is output to the operand address calculation unit 54, and the information related to the PC calculation is output to the PC calculation unit 53. It
(1.3)マイクロROM部 マイクロROM部55には主にデータ演算部56を制御するマ
イクロプログラムが格納されているマイクロROM,マイク
ロシーケンサ,マイクロ命令デコーダなどが含まれ、さ
らにマイクロ命令の一部のフィールドが特定のビットパ
ターンであるとき前記命令デコード部52に含まれる指示
手段がオペランドがレジスタ上にあることを指示してい
る場合には実行結果をレジスタに書き込み、指示手段が
オペランドがメモリ上にあることを指示している場合に
は実行結果をメモリに書き込むオペランド書き込み手段
が含まれる。マイクロ命令はマイクロROMから2クロッ
クにつき1度ずつ読み出される。マイクロシーケンサは
マイクロプログラムで示されるシーケンス処理の他に、
例外,割込,トラップ(この3つをあわせてEITと呼
ぶ)の処理をハードウエア的に受付ける。またマイクロ
ROM部はストアバッファの管理も行なう。マイクロROM部
には命令コードに依存しない割込や演算実行結果による
フラッグ情報と、第2のデコーダの出力など命令デコー
ド部の出力が入力される。マイクロデコーダの出力は主
にデータ演算部56に対して出力されるが、ジャンプ命令
の実行による他の先行処理,中止情報など一部の情報は
他のブロックへも出力される。(1.3) Micro ROM unit The micro ROM unit 55 mainly includes a micro ROM storing a micro program for controlling the data operation unit 56, a micro sequencer, a micro instruction decoder, and a part of the field of the micro instruction. Is a specific bit pattern, the instruction means included in the instruction decoding unit 52 writes the execution result to the register when the instruction means indicates that the operand is on the register, and the instruction means stores the operand on the memory. When the instruction is given, an operand writing means for writing the execution result in the memory is included. Micro instructions are read from the micro ROM once every two clocks. In addition to the sequence processing shown by the micro program, the micro sequencer
Accepts exception, interrupt, and trap (all three are collectively called EIT) processing by hardware. Also micro
The ROM section also manages the store buffer. Flag information based on an interrupt that does not depend on an instruction code and a result of operation execution, and an output of the instruction decoding unit such as an output of the second decoder are input to the micro ROM unit. The output of the microdecoder is mainly output to the data operation unit 56, but some information such as other preceding processing by the execution of the jump instruction and stop information is also output to other blocks.
(1.4)オペランドアドレス計算部 オペランドアドレス計算部54は命令デコード部52のアド
レスデコーダなどから出力されたオペランドアドレス計
算に関係する情報によりハードワイヤード制御される。
このブロックではオペランドのアドレス計算に関するほ
とんどの処理が行なわれる。メモリ間接アドレッシング
のためのメモリアクセスのアドレスやオペランドアドレ
スがメモリにマップされたI/O領域に入るかどうかのチ
ェックも行なわれる。(1.4) Operand Address Calculation Unit The operand address calculation unit 54 is hard-wired controlled by the information related to the operand address calculation output from the address decoder of the instruction decoding unit 52.
In this block, most of the address calculation of operands is performed. It is also checked whether the memory access address or operand address for memory indirect addressing falls within the I / O area mapped in the memory.
アドレス計算結果は外部バスインターフェイス部57に送
られる。アドレス計算に必要な汎用レジスタやプログラ
ムカウンタの値はデータ演算部より入力される。The address calculation result is sent to the external bus interface unit 57. The values of general-purpose registers and program counters required for address calculation are input from the data calculation unit.
メモリ間接アドレッシングを行なうときは外部バスイン
ターフェイス部57を通してアドレス出力回路58からCPU
外部に参照すべきメモリアドレスを出力し、データ入出
力部59から入力された間接アドレス値を命令デコード部
52を通してフェッチする。When indirect memory addressing is performed, the address output circuit 58 to the CPU through the external bus interface 57
The memory address to be referenced is output to the outside, and the indirect address value input from the data input / output unit 59 is output to the instruction decoding unit.
Fetch through 52.
(1.5)PC計算部 PC計算部53は命令デコード部52から出力されるPC計算に
関係する情報でハードワイヤードに制御され、命令のPC
値を計算する。本実施例のデータ処理装置は可変長命令
セットを持っており、命令をデコードしてみないとその
命令の長さが判らない。PC計算部53は命令デコード部52
から出力される命令長をデコード中の命令のPC値に加算
することにより次の命令のPC値を作り出す。また、命令
デコード部52が分岐命令をデコードしてデコード段階で
の分岐を指示したときは命令長の代わりに分岐変位を分
岐命令のPC値に加算することにより分岐先命令のPC値を
計算する。分岐命令に対して命令デコード段階で分岐を
行なうことを本実施例のデータ処理装置ではプリブラン
チと呼ぶ。プリブランチの方法については特願昭61-204
500号と特願昭61-200557号で詳しく述べられている。(1.5) PC calculation unit The PC calculation unit 53 is hard-wired controlled by the information related to the PC calculation output from the instruction decoding unit 52, and the PC of the instruction
Calculate the value. The data processing apparatus of this embodiment has a variable length instruction set, and the length of the instruction cannot be known unless the instruction is decoded. PC calculator 53 is instruction decoder 52
The PC value of the next instruction is created by adding the instruction length output from the to the PC value of the instruction being decoded. Further, when the instruction decoding unit 52 decodes a branch instruction and instructs branching at the decoding stage, the PC value of the branch destination instruction is calculated by adding the branch displacement instead of the instruction length to the PC value of the branch instruction. . The branching of a branch instruction at the instruction decoding stage is called a pre-branch in the data processor of this embodiment. Japanese Patent Application No. 61-204
It is described in detail in Japanese Patent No. 500 and Japanese Patent Application No. 61-200557.
PC計算部53の計算結果は各命令のPC値として命令のデコ
ード結果とともに出力されるほか、プリブランチ時には
次にデコードすべき命令のアドレスとして命令フェッチ
部に出力される。The calculation result of the PC calculation unit 53 is output as the PC value of each instruction together with the instruction decode result, and is output to the instruction fetch unit as the address of the next instruction to be decoded at the pre-branch.
また、次に命令デコード部52でデコードされる命令の分
岐予測のためのアドレスにも使用される。分岐予測の方
法については特願昭62-8394号で詳しく述べられてい
る。Further, it is also used as an address for branch prediction of an instruction decoded next by the instruction decoding unit 52. The branch prediction method is described in detail in Japanese Patent Application No. 62-8394.
(1.6)データ演算部 データ演算部56はマイクロプログラムにより制御され、
マイクロROM部55の出力情報に従い、各命令の機能を実
現するに必要な演算をレジスタと演算器で実行する。オ
ペランドアドレス計算部54で計算されたアドレスを外部
バスインターフェイス部57を通して得る場合や、そのア
ドレスでフェッチを行ったオペランドをデータ入出力回
路59から得る場合もある。(1.6) Data operation unit The data operation unit 56 is controlled by a micro program,
According to the output information of the micro ROM unit 55, the operations necessary for realizing the function of each instruction are executed by the register and the arithmetic unit. The address calculated by the operand address calculation unit 54 may be obtained through the external bus interface unit 57, or the operand fetched at that address may be obtained from the data input / output circuit 59.
演算器としてはALU,バレルシフタ,プライオリティエン
コーダやカウンタ,シフトレジスタなどがある。レジス
タと主な演算器の間は3つのバスで結合されており、1
つのレジスタ間演算を指示する1マイクロ命令を2クロ
ックサイクルで処理する。The arithmetic unit includes ALU, barrel shifter, priority encoder, counter, shift register and so on. Three buses are connected between the register and the main arithmetic unit.
One microinstruction for instructing an operation between two registers is processed in two clock cycles.
データ演算のときCPU外部のメモリをアクセスする必要
がある時はマイクロプログラムの指示により外部バスイ
ンターフェイス部57を通してアドレス出力回路58からア
ドレスをCPU外部に出力し、データ入出力回路59を通し
て目的のデータをフェッチする。When it is necessary to access the memory outside the CPU during data operation, the address is output from the address output circuit 58 to the outside of the CPU through the external bus interface 57 according to the instructions of the microprogram, and the target data is output through the data input / output circuit 59. To fetch.
CPU外部のメモリにデータをストアするときは外部バス
インターフェイス部57を通してアドレス出力回路58より
アドレスを出力すると同時に、データ入出力回路59から
データをCPU外部に出力する。オペランドストアを効率
的に行なうため、データ演算部56には4バイトのストア
バッファがある。When storing data in a memory outside the CPU, the address is output from the address output circuit 58 through the external bus interface unit 57, and at the same time, the data is output from the data input / output circuit 59 to the outside of the CPU. In order to perform the operand store efficiently, the data operation unit 56 has a 4-byte store buffer.
ジャンプ命令の処理や例外処理などを行なって新たな命
令アドレスをデータ演算部56が得たときはこれを命令フ
ェッチ部51とPC計算部53に出力する。When the data operation unit 56 obtains a new instruction address by performing a jump instruction process or an exception process, the data operation unit 56 outputs it to the instruction fetch unit 51 and the PC calculation unit 53.
(1.7)外部バスインターフェイス部 外部バスインターフェイス部57は本実施例のデータ処理
装置の外部バスでの通信を制御する。メモリのアクセス
はすべてクロック同期で行なわれ、最小2クロックサイ
クルで行なうことができる。(1.7) External Bus Interface Unit The external bus interface unit 57 controls communication on the external bus of the data processing apparatus of this embodiment. All memory accesses are clock-synchronized and can be performed in a minimum of two clock cycles.
メモリに対するアクセス要求は命令フェッチ部51,アド
レス計算部54,データ演算部56から独立に生じる。外部
バスインターフェイス部57はこれらのメモリアドレス要
求を調停する。さらにメモリとCPUを結ぶデータバスサ
イズである32ビット(ワード)の整置境界をまたぐメモ
リ番地についてはこのブロック内で自動的にワード境界
をまたぐことを検知して2回のメモリアクセスに分解し
てアクセスを行なう。The access request to the memory is generated independently from the instruction fetch unit 51, the address calculation unit 54, and the data calculation unit 56. The external bus interface unit 57 arbitrates these memory address requests. Furthermore, for memory addresses that cross a 32 bit (word) alignment boundary that is the size of the data bus connecting the memory and the CPU, it is automatically detected that the word boundary is crossed within this block, and it is decomposed into two memory accesses. Access.
また、プリフェッチするオペランドとストアするオペラ
ンドが重なる場合のコンフリクト防止処理やストアオペ
ランドからフェッチオペランドへのバイパス処理もこの
ブロック内で行なう。In addition, conflict prevention processing when the prefetched operand and the stored operand overlap and bypass processing from the store operand to the fetch operand are also performed in this block.
(2)本実施例のデータ処理装置の命令フォーマット 本実施例のデータ処理装置の命令は16ビット単位で可変
長となっており、奇数バイト長の命令はない。(2) Instruction format of the data processing apparatus of this embodiment The instruction of the data processing apparatus of this embodiment has a variable length in 16-bit units, and there is no instruction of odd byte length.
本実施例のデータ処理装置では高頻度命令を短いフォー
マットとするため、特に工夫された命令フォーマット体
系をもつ。例えば、2オペランド命令に対して、基本的
に4バイト+拡張部の構成をもちすべてのアドレッシン
グモードが利用できる一般形フォーマットと、頻度の高
い命令とアドレッシングモードのみを使用できる短縮形
フォーマットの2つのフォーマットがある。The data processing device of this embodiment has a specially devised instruction format system in order to make a high-frequency instruction into a short format. For example, for a two-operand instruction, there are two formats: a general format that basically has a structure of 4 bytes + an extension and can use all addressing modes, and a short format that can use only frequently used instructions and addressing modes. There is a format.
本実施例のデータ処理装置の命令フォーマット中に現れ
る記号の意味は次の通りである。The meanings of the symbols appearing in the instruction format of the data processing apparatus of this embodiment are as follows.
−:オペコードの入る部分 #:リテラル、または即値の入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定する
部分 フォーマットは、第3図に示すように右側がLSB側で、
かつ高いアドレスになっている。そしてアドレスNとア
ドレスN+1の2バイトを見ないと命令フォーマットが
判別できないようになっているが、これは命令が必ず16
ビット(2バイト)単位でフェッチ,デコードされるこ
とを前提としたためである。-: Part containing opcode #: Part containing literal or immediate value Ea: Part specifying operand in 8-bit general addressing mode Sh: Part specifying operand in 6-bit short addressing mode Rn: Register The partial format that specifies the above operand by register number is the LSB side on the right side as shown in Fig. 3,
And the address is high. The instruction format cannot be discriminated unless the two bytes at address N and address N + 1 are seen.
This is because it is premised that the data is fetched and decoded in bit (2 bytes) units.
本実施例のデータ処理装置ではいずれのフォーマットの
場合も、各オペランドのEaまたはShの拡張部は、必ずそ
のEaまたはShの基本部を含むハーフワードの直後に置か
れる。これは命令により暗黙に指定される即値データ
や、命令の拡張部に優先する。したがって、4バイト以
上の命令ではEaの拡張部によって命令のオペコードが分
断される場合がある。In any of the formats in the data processing apparatus of this embodiment, the extension part of Ea or Sh of each operand is always placed immediately after the halfword including the basic part of the Ea or Sh. This takes precedence over immediate data implicitly specified by the instruction and the extension of the instruction. Therefore, in the case of an instruction of 4 bytes or more, the operation code of the instruction may be divided by the extension part of Ea.
また、後でも述べるように、多段間接モードによって、
Eaの拡張部にさらに拡張部が付く場合にも、次の命令オ
ペコードよりもそちらの方が優先される。例えば、第1
ハーフワードにEa1を含み、第2ハーフワードにEa2を含
み、第3ハーフワードまである6バイト命令の場合を考
える。Ea1に多段間接モードを使用したため、普通の拡
張部のほかに多段間接モードの拡張部も付くものとす
る。この時、実際の命令ビットパターンは、命令の第1
ハーフワード(Ea1の基本部を含む)、Ea1の拡張部、Ea
1の多段間接モード拡張部、命令の第2ハーフワード(E
a2の基本部を含む)、Ea1の拡張部、命令の第3ハーフ
ワードの順となる。Also, as will be described later, the multi-stage indirect mode
Even if the extension part of Ea has an extension part, that part has priority over the next instruction opcode. For example, the first
Consider the case of a 6-byte instruction that includes Ea1 in the halfword, Ea2 in the second halfword, and up to the third halfword. Since the multistage indirect mode is used for Ea1, the extension part of the multistage indirect mode shall be attached in addition to the ordinary extension part. At this time, the actual instruction bit pattern is the first instruction
Halfword (including Ea1 base), Ea1 extension, Ea
Multistage indirect mode extension of 1, second halfword of instruction (E
(including the basic part of a2), the extension part of Ea1, and the third halfword of the instruction.
(2.1)短縮形2オペランド命令 第4図(a)から第4図(d)に示す、2オペランド命
令の短縮形フォーマットである。(2.1) Short two-operand instruction This is the short two-operand instruction format shown in FIGS. 4 (a) to 4 (d).
第4図(a)はメモリ−レジスタ間演算命令のフォーマ
ットである。このフォーマットにはソースオペランド側
がメモリとなるLフォーマットとデスティネーションオ
ペランド側がメモリとなるSフォーマットがある。FIG. 4A shows the format of the memory-register arithmetic instruction. This format includes an L format in which the source operand side is a memory and an S format in which the destination operand side is a memory.
Lフォーマットでは、Shはソースオペランドの指定フィ
ールド、Rnはデスティネーションオペランドのレジスタ
の指定フィールド、RRはShのオペランドサイズの指定を
あらわす。レジスタ上に置かれたデスティネーションオ
ペランドのサイズは32ビットに固定されている。レジス
タ側とメモリのサイズが異なり、ソース側のサイズが小
さい場合に符号拡張が行なわれる。In the L format, Sh represents a source operand designation field, Rn represents a destination operand register designation field, and RR represents a Sh operand size designation. The size of the destination operand placed in the register is fixed at 32 bits. Sign extension is performed when the size of the register and that of the memory are different and the size of the source is small.
SフォーマットではShはデスティネーションオペランド
の指定フィールド、Rnはソースオペランドのレジスタ指
定フィールド、RRはShのオペランドサイズの指定をあら
わす。レジスタ上に置かれたソースオペランドのサイズ
は32ビットに固定されている。レジスタ側とメモリのサ
イズが異なり、ソース側のサイズが大きい場合にあふれ
た部分の切り捨てとオーバーフローチェックが行なわれ
る。In the S format, Sh represents a destination operand designation field, Rn represents a source operand register designation field, and RR represents a Sh operand size designation. The size of the source operand placed on the register is fixed to 32 bits. When the size of the register and the size of the memory are different, and the size of the source is large, the overflow portion is truncated and the overflow check is performed.
第4図(b)はレジスタ−レジスタ間演算命令のフォー
マット(Rフォーマット)である。Rnはデスティネーシ
ョンオペランドレジスタの指定フィールド、Rmはソース
レジスタの指定フィールドである。オペランドサイズは
32ビットのみである。FIG. 4B shows the format (R format) of the register-register arithmetic instruction. Rn is a designation field of the destination operand register, and Rm is a designation field of the source register. Operand size is
Only 32 bits.
第4図(c)はリテラル−メモリ間演算命令のフォーマ
ット(Qフォーマット)である。MMはデスティネーショ
ンオペランドサイズの指定フィールド、#はリテラルに
よるソースオペランドの指定フィールド、Shはデスティ
ネーションオペランドの指定フィールドである。FIG. 4 (c) shows the format (Q format) of the literal-memory operation instruction. MM is a destination operand size specification field, # is a literal source operand specification field, and Sh is a destination operand specification field.
第4図(d)は即値−メモリ間演算命令のフォーマット
(Iフォーマット)である。MMはオペランドサイズの指
定フィールド(ソース,デスティネーションで共通)、
Shはデスティネーションオペランドの指定フィールドで
ある。Iフォーマットの即値のサイズはデスティネーシ
ョン側のオペランドのサイズと共通に8,16,32ビットと
なり、ゼロ拡張,符号拡張は行われない。FIG. 4D shows the format (I format) of the immediate-memory operation instruction. MM is an operand size specification field (common to source and destination),
Sh is a designated field of the destination operand. The size of the immediate value of the I format is 8, 16, 32 bits in common with the size of the operand on the destination side, and zero extension and sign extension are not performed.
(2.2)一般形1オペランド命令 第4図(e)は1オペランド命令の一般形フォーマット
(G1フォーマット)である。MMはオペランドサイズの指
定フィールドである。一部のG1フォーマット命令では、
Eaの拡張部以外にも拡張部がある。また、MMを使用しな
い命令もある。(2.2) General-purpose 1-operand instruction FIG. 4 (e) shows the general-purpose format (G1 format) of the 1-operand instruction. MM is a field for specifying the operand size. Some G1 format instructions
There is an extension part other than the extension part of Ea. Also, some instructions do not use MM.
(2.3)一般形2オペランド命令 第4図(f)から第4図(h)は2オペランド命令の一
般形フォーマットである。このフォーマットに含まれる
のは8ビットで指定する一般形アドレッシングモードの
オペランドが最大2つ存在する命令である。オペランド
の総数自体は3つ以上になる場合がある。(2.3) General-purpose two-operand instruction FIGS. 4 (f) to 4 (h) are general-purpose formats of the two-operand instruction. Included in this format are instructions that have a maximum of two operands in the general addressing mode specified by 8 bits. The total number of operands themselves may be three or more.
第4図(f)は第1オペランドがメモリ読出しを必要と
する命令のフォーマット(Gフォーマット)である。Ea
Mはデスティネーションオペランドの指定フィールド、M
Mはデスティネーションオペランドサイズの指定フィー
ルド、EaRはソースオペランド指定フィールド、RRはソ
ースオペランドサイズの指定フィールドである。FIG. 4 (f) shows the format (G format) of the instruction in which the first operand requires memory reading. Ea
M is the designated field of the destination operand, M
M is a destination operand size specification field, EaR is a source operand specification field, and RR is a source operand size specification field.
第4図(g)は第1オペランドが8ビット即値の命令の
フォーマット(Eフォーマット)である。EaMはデステ
ィネーションオペランドの指定フィールド、MMはデステ
ィネーションオペランドサイズの指定フィールド、#は
ソースオペランド値である。FIG. 4 (g) shows an instruction format (E format) in which the first operand is an 8-bit immediate value. EaM is the destination operand specification field, MM is the destination operand size specification field, and # is the source operand value.
EフォーマットとIフォーマットとは機能的には似たも
のであるが、考え方の点では大きく違っている。Eフォ
ーマットはあくまでも2オペランド一般形(Gフォーマ
ット)の派生形であり、ソースオペランドのサイズが8
ビット固定、デスティネーションオペランドのサイズが
8/16/32ビットから選択となっている。つまり、異種サ
イズ間の演算を前提とし、デスティネーションオペラン
ドのサイズに合わせて8ビットのソースオペランドがゼ
ロ拡張または符号拡張される。一方、Iフォーマット
は、特に転送命令,比較命令で頻度の多い即値のパター
ンを短縮形にしたものであり、ソースオペランドのデス
ティネーションオペランドのサイズは等しい。Although the E format and the I format are functionally similar to each other, they are significantly different from each other in the point of view. The E format is a derivative of the 2-operand general type (G format), and the size of the source operand is 8
Bit fixed, destination operand size is
It is selected from 8/16/32 bits. In other words, the 8-bit source operand is zero-extended or sign-extended according to the size of the destination operand on the premise of the operation between different sizes. On the other hand, the I format is a shortened form of an immediate value pattern that is frequently used especially for transfer instructions and comparison instructions, and the source operand and the destination operand have the same size.
第4図(h)は第1オペランドがアドレス計算のみの命
令のフォーマット(GAフォーマット)である。EaWはデ
スティネーションオペランドの指定フィールド、WWはデ
スティネーションオペランドサイズの指定フィールド、
EaAはソースオペランドの指定フィールドである。ソー
スオペランドとしては実行アドレスの計算結果自体が使
用される。FIG. 4H shows a format (GA format) of an instruction whose first operand is only address calculation. EaW is the destination operand specification field, WW is the destination operand size specification field,
EaA is a designated field of the source operand. The execution address calculation result itself is used as the source operand.
第4図(i)はショートブランチ命令のフォーマットで
ある。CCCCはブランチ条件指定フィールド、disp:8はジ
ャンプ先との変位指定フィールドであり、本実施例のデ
ータ処理装置では8ビットで変位を指定する場合には、
ビットパターンでの指定値を2倍して変位値とする。FIG. 4 (i) shows the format of the short branch instruction. CCCC is a branch condition designation field, and disp: 8 is a displacement designation field with a jump destination. In the data processing device of this embodiment, when the displacement is designated by 8 bits,
The specified value in the bit pattern is doubled to obtain the displacement value.
(2.4)アドレッシングモード 本実施例のデータ処理装置のアドレッシングモード指定
方法には、レジスタを含めて6ビットで指定する短縮形
と、8ビットで指定する一般形がある。(2.4) Addressing Mode The addressing mode designating method of the data processing device of this embodiment includes a short form designating with 6 bits including a register and a general form designating with 8 bits.
未定義のアドレッシングモードを指定した場合や、意味
的に考えて明らかにおかしなアドレッシングモードの組
み合わせを指定した場合には、未定義命令を実行した場
合と同じく予約命令例外を発生し、例外処理を起動す
る。If an undefined addressing mode is specified, or if a combination of addressing modes that is obviously strange in terms of meaning is specified, a reserved instruction exception is generated and exception processing is started, as when an undefined instruction is executed. To do.
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合などであ
る。This corresponds to the case where the destination is the immediate mode, the case where the immediate mode is used in the addressing mode designation field which should accompany the address calculation, and the like.
フォーマットの図中で使われる記号は次の通りである。The symbols used in the format diagrams are as follows.
Rn レジスタ指定 mem〔EA〕 EAで示されるアドレスのメモリ内容 Sh 6ビットの短縮形アドレッシングモード での指定方法 Ea 8ビットの一般形アドレッシングモード での指定方法 フォーマットの図で点線で囲まれた部分は拡張部を示
す。Rn register specification mem [EA] Memory content of the address indicated by EA Sh Specification method in 6-bit short addressing mode Ea Specification method in 8-bit general addressing mode The part enclosed by the dotted line in the format diagram is The extension is shown.
(2.4.1)基本アドレッシングモード 本実施例のデータ処理装置は様々なアドレッシングモー
ドをサポートする。そのうち、本実施例のデータ処理装
置でサポートする基本アドレッシングモードには、レジ
スタ直接モード,レジスタ間接モード,レジスタ相対間
接モード,即値モード,絶対モード,PC相対間接モー
ド,スタックポップモード,スタックプッシュモードが
ある。(2.4.1) Basic Addressing Mode The data processing device of this embodiment supports various addressing modes. Among them, the basic addressing modes supported by the data processor of the present embodiment include register direct mode, register indirect mode, register relative indirect mode, immediate value mode, absolute mode, PC relative indirect mode, stack pop mode, and stack push mode. is there.
レジスタ直接モードはレジスタの内容をそのままオペラ
ンドとする。フォーマットは第5図(a)に示す。Rnは
汎用レジスタの番号を示す。In the register direct mode, the contents of the register are directly used as the operand. The format is shown in Fig. 5 (a). Rn indicates the general register number.
レジスタ間接モードはレジスタの内容をアドレスとする
メモリの内容をオペランドとする。そのフォーマットを
第5図(b)に示す。Rnは汎用レジスタの番号を示す。In the register indirect mode, the contents of the memory whose address is the contents of the register are the operands. The format is shown in FIG. Rn indicates the general register number.
レジスタ相対間接モードはディスプレースメント値が16
ビットか32ビットかにより、2種類ある。それぞれ、レ
ジスタの内容に16ビットまたは32ビットのディスプレー
スメント値を加えた値をアドレスとするメモリの内容を
オペランドとする。そのフォーマットを第5図(c)に
示す。Rnは汎用レジスタの番号を示す。disp:16とdisp:
32はそれぞれ、16ビットのディスプレースメント値、32
ビットのディスプレースメント値を示す。ディスプレー
スメント値は符号付きとして扱う。In the register relative indirect mode, the displacement value is 16
There are two types depending on whether it is bit or 32-bit. Each of them uses the contents of the memory whose address is a value obtained by adding a displacement value of 16 bits or 32 bits to the contents of the register as an operand. The format is shown in FIG. 5 (c). Rn indicates the general register number. disp: 16 and disp:
32 is the displacement value of 16 bits, 32 respectively
Indicates the displacement value of the bit. The displacement value is treated as signed.
即値モードは命令コード中で指定されるビットパターン
をそのまま2進数と見なしてオペランドする。そのフォ
ーマットを第5図(d)に示す。imm-dataは即値を示
す。imm-dataのサイズはオペランドサイズとして命令中
で指定される。In the immediate mode, the bit pattern specified in the instruction code is regarded as a binary number as it is and is used as an operand. The format is shown in FIG. imm-data indicates an immediate value. The size of imm-data is specified in the instruction as the operand size.
絶対モードはアドレス値が16ビットで示されるか32ビッ
トで示されるかにより2種類ある。それぞれ、命令コー
ド中で指定される16ビットまたは32ビットのビットパタ
ーンをアドレスとしたメモリの内容をオペランドとす
る。そのフォーマットを第5図(e)に示す。abs:16と
abs:32はそれぞれ、16ビット,32ビットのアドレス値を
示す。abs:16でアドレスが示されるときは指定されたア
ドレス値を32ビットに符号拡張する。There are two types of absolute modes depending on whether the address value is indicated by 16 bits or 32 bits. The contents of the memory with the 16-bit or 32-bit bit pattern specified in the instruction code as an address are used as operands. The format is shown in FIG. abs: 16 and
abs: 32 indicates 16-bit and 32-bit address values, respectively. When the address is indicated by abs: 16, the specified address value is sign-extended to 32 bits.
PC相対間接モードはディスプレースメント値が16ビット
か32ビットかにより、2種類ある。それぞれプログラム
カウンタの内容に16ビットまたは32ビットのディスプレ
ースメント値を加えた値をアドレスとするメモリの内容
をオペランドとする。そのフォーマットを第5図(f)
に示す。disp:16とdisp:32はそれぞれ、16ビットのディ
スプレースメント値、32ビットのディスプレースメント
値を示す。ディスプレースメント値は符号付きとして扱
う。PC相対間接モードにおいて参照されるプログラムカ
ウンタの値は、そのオペランドを含む命令の先頭アドレ
スである。多段間接アドレッシングモードにおいてプロ
グラムカウンタの値が参照される場合にも、同じように
命令先頭のアドレスをPC相対の基準値として使用する。There are two types of PC relative indirect mode depending on whether the displacement value is 16 bits or 32 bits. Each of the program counter contents has a 16-bit or 32-bit displacement value added as an address, and the memory contents as an address are used as operands. The format is shown in Fig. 5 (f).
Shown in. disp: 16 and disp: 32 represent a 16-bit displacement value and a 32-bit displacement value, respectively. The displacement value is treated as signed. The value of the program counter referred to in the PC relative indirect mode is the start address of the instruction including the operand. Even when the value of the program counter is referenced in the multi-stage indirect addressing mode, the address at the beginning of the instruction is used as the PC-relative reference value in the same manner.
スタックポップモードはスタックポインタSPの内容をア
ドレスとするメモリの内容をオペランドとする。オペラ
ンドアクセス後、SPをオペランドサイズだけインクリメ
ントする。例えば、32ビットデータを扱う時には、オペ
ランドアクセス後にSPが+4だけ更新される。B,Hのサ
イズのオペランドに対するスタックポップモードの指定
も可能であり、それぞれSPが+1,+2だけ更新される。
そのフォーマットを第5図(g)に示す。オペランドに
対しスタックポップモードが意味を持たないものに対し
ては、予約命令例外を発生する。具体的に予約命令例外
となるのは、writeオペランド,read-modify-writeオペ
ランドに対するスタックポップモード指定である。In the stack pop mode, the content of the memory whose address is the content of the stack pointer SP is the operand. After the operand is accessed, SP is incremented by the operand size. For example, when handling 32-bit data, SP is updated by +4 after operand access. It is also possible to specify the stack pop mode for operands of sizes B and H, and SP is updated by +1 and +2 respectively.
The format is shown in FIG. If the stack pop mode has no meaning for the operand, a reserved instruction exception is generated. Specifically, the reserved instruction exception is the stack pop mode specification for the write operand and the read-modify-write operand.
スタックプッシュモードはSPの内容をオペランドサイズ
だけデクリメントした内容をアドレスとするメモリの内
容をオペランドとする。スタックプッシュモードではオ
ペランドアクセス前にSPがデクリメントされる。例え
ば、32ビットデータを扱う時には、オペランドアクセス
前にSPが−4だけ更新される。B,Hのサイズのオペラン
ドに対するスタックプッシュモードの指定も可能であ
り、それぞれSPが−1,−2だけ更新される。そのフォー
マットを第5図(h)に示す。オペランドに対してスタ
ックプッシュモードが意味を持たないものに対しては予
約命令例外を発生する。具体的に予約命令例外となるの
は、readオペランド、read-modify-writeオペランドに
対するスタックプッシュモード指定である。In the stack push mode, the contents of the memory whose address is the contents of SP decremented by the operand size are the operands. In stack push mode, SP is decremented before operand access. For example, when handling 32-bit data, SP is updated by -4 before operand access. It is also possible to specify the stack push mode for operands of sizes B and H, and SP is updated by -1 and -2, respectively. The format is shown in FIG. If the stack push mode has no meaning for the operand, a reserved instruction exception is generated. Specifically, the reserved instruction exception is the stack push mode specification for the read operand and the read-modify-write operand.
(2.4.2)多段間接アドレッシングモード どのような複雑なアドレッシングも、基本的には加算と
間接参照の組み合わせに分解することができる。したが
って、加算と間接参照のオペレーションをアドレッシン
グのプリミティブとして与えておき、それを任意に組み
合わせることができれば、どんな複雑なアドレッシング
モードをも実現することができる。本実施例のデータ処
理装置の多段間接アドレッシングモードはこのような考
え方にたったアドレッシングモードである。複雑なアド
レッシングモードは、モジュール間のデータ参照やAI言
語の処理系に特に有用である。(2.4.2) Multistage indirect addressing mode Basically, any complicated addressing can be decomposed into a combination of addition and indirect reference. Therefore, if complicated addition and indirect reference operations are given as addressing primitives and they can be arbitrarily combined, any complicated addressing mode can be realized. The multi-stage indirect addressing mode of the data processing apparatus of this embodiment is an addressing mode based on such a concept. Complex addressing modes are especially useful for data references between modules and AI language implementations.
多段間接アドレッシングモードを指定するとき、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード,PCベース多段間接モード,絶対ベー
ス多段間接モードの3種類の指定方法のうちいずれか1
つを指定する。When designating the multi-stage indirect addressing mode, in the basic addressing mode designation field, one of the three designation methods of register-based multi-stage indirect mode, PC-based multi-stage indirect mode, and absolute base multi-stage indirect mode.
Specify one.
レジスタベース多段間接モードはレジスタの値を、拡張
する多段間接アドレッシングのベース値とするアドレッ
シングモードである。そのフォーマットを第5図(i)
に示す。Rnは汎用レジスタの番号を示す。The register-based multistage indirect mode is an addressing mode in which a register value is used as a base value for expanding multistage indirect addressing. The format is shown in Fig. 5 (i).
Shown in. Rn indicates the general register number.
PCベース多段間接モードはプログラムカウンタの値を、
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。そのフォーマットを第5図
(j)に示す。In the PC-based multi-stage indirect mode, the value of the program counter is
This is an addressing mode that is used as a base value for expanding multistage indirect addressing. The format is shown in FIG. 5 (j).
絶対ベース多段間接モードはゼロを、拡張する多段間接
アドレッシングのベース値とするアドレッシングモード
である。そのフォーマットを第5図(k)に示す。The absolute base multi-stage indirect mode is an addressing mode in which zero is used as a base value for expanding multi-stage indirect addressing. The format is shown in FIG.
拡張する多段間接モード指定フィールドは、16ビットを
単位としており、これを任意回繰り返す。1段の多段間
接モードにより、ディスプレースメントの加算,インデ
クスレジスタのスケーリング(×1,×2,×4,×8)と加
算、メモリの間接参照を行なう。多段間接モードのフォ
ーマットを第5図(1)に示す。そのフィールドは以下
に示す意味をもつ。The multistage indirect mode specification field to be expanded has 16 bits as a unit, and this is repeated any number of times. Addition of displacement, scaling (× 1, × 2, × 4, × 8) of index register and addition, and indirect reference of memory are performed by the one-stage multi-stage indirect mode. The format of the multistage indirect mode is shown in FIG. The fields have the following meanings.
E=0:多段間接モード継続 E=1:アドレス計算終了 tmp→address of operand I=0:メモリ間接参照なし tmp+disp+Rx*Scale→tmp I=1:メモリ間接参照あり mem[tmp+disp+Rx*Scale]→tmp M=0:〈Rx〉をインデクスとして使用 M=1:特殊なインデクス 〈Rx〉=0 インデクス値を加算しない (Rx=0) 〈Rx〉=1 プログラムカウンタをインデクス値と
して使用 (Rx=PC) 〈Rx〉=2〜reserved D=0:多段間接モード中の4ビットフィールドd4の値を
4倍してディスプレースメント値とし、これを加算す
る。d4は符号付きとして扱い、オペランドのサイズとは
関係なく必ず4倍して使用する。E = 0: Multi-stage indirect mode continued E = 1: Address calculation end tmp → address of operand I = 0: No memory indirect reference tmp + disp + Rx * Scale → tmp I = 1: Memory indirect reference mem [tmp + disp + Rx * Scale] → tmp M = 0: Use <Rx> as index M = 1: Special index <Rx> = 0 Do not add index value (Rx = 0) <Rx> = 1 Use program counter as index value (Rx = PC) <Rx> = 2 to reserved D = 0: The value of the 4-bit field d4 in the multi-stage indirect mode is multiplied by 4 to be a displacement value, which is added. d4 is treated as signed, and it is always multiplied by 4 regardless of the operand size.
D=1:多段間接モードの拡張部で指定されたdispx(16/
32ビット)をディスプレースメント値とし、これを加算
する。拡張部のサイズはd4フィールドで指定する。D = 1: dispx (16 /
(32 bits) is used as the displacement value and this is added. The size of the extension is specified in the d4 field.
d4=0001 dispxは16ビット d4=0010 dispxは32ビット XX:インデクスのスケール(scale=1/2/4/8) プログラムカウンタに対して×2,×4,×8のスケーリン
グを行った場合には、その段の処理終了後の中間値(tm
p)として、不定値が入る。この多段間接モードによっ
て得られる実効アドレスは予測できない値となるが、例
外は発生しない。プログラムカウンタに対するスケーリ
ングの指定は行ってはいけない。d4 = 0001 dispx is 16 bits d4 = 0010 dispx is 32 bits XX: Index scale (scale = 1/2/4/8) When the program counter is scaled by × 2, × 4, × 8 Is the intermediate value (tm
An undefined value is entered as p). The effective address obtained by this multistage indirect mode has an unpredictable value, but no exception occurs. Do not specify scaling for the program counter.
多段間接モードによる命令フォーマットのバリエーショ
ンを第5図(1),第5図(m)に示す。第5図(1)
は多段間接モードが継続するか終了するかのバリエーシ
ョンを示す。第5図(m)はディスプレースメントのサ
イズのバリエーションを示す。Variations of the instruction format in the multistage indirect mode are shown in FIGS. 5 (1) and 5 (m). Fig. 5 (1)
Indicates a variation of whether the multistage indirect mode continues or ends. FIG. 5 (m) shows variations in displacement size.
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上任意の段数が可能に
なっている。If the multi-stage indirect mode with an arbitrary number of stages can be used, it is not necessary to divide the case depending on the number of stages in the compiler, which has the advantage of reducing the load on the compiler. This is because the compiler must be able to generate correct code even if the frequency of multiple indirect references is extremely low. Therefore, an arbitrary number of stages is possible in the format.
(2.5)例外処理 本実施例のデータ処理装置ではソフトウエア負荷の軽減
のため、豊富な例外処理機能をもつ。本実施例のデータ
処理装置では例外処理は命令処理を再実行するもの(例
外),命令処理を完了するもの(トラップ),割込の3
種類に分けて名称をつけている。また本実施例のデータ
処理装置では、この3種の例外処理とシステム障害とを
総称してEITと呼ぶ。(2.5) Exception processing The data processing device of this embodiment has a variety of exception processing functions to reduce the software load. In the data processor of the present embodiment, the exception processing is one in which instruction processing is re-executed (exception), one in which instruction processing is completed (trap), and interrupt.
The names are given separately for each type. Further, in the data processing apparatus of this embodiment, these three types of exception processing and system failure are collectively referred to as EIT.
(3)パイプライン情報 本実施例のデータ処理装置のパイプライン処理は第2図
に示すような構成となる。即ち、命令のプリフェッチを
行なう命令フェッチステージ(IFステージ)31,命令の
デコードを行なうデコードステージ(Dステージ)32,
オペランドのアドレス計算を行なうオペランドアドレス
計算ステージ(Aステージ)33,マイクロROMのアクセス
(特にRステージ36と呼ぶ)とオペランドのプリフェッ
チ(特にOFステージ37と呼ぶ)を行なうオペランドフェ
ッチステージ(Fステージ)34,命令の実行を行なう実
行ステージ(Eステージ)35の5段構成をパイプライン
処理の基本とする。Eステージ35では1段のストアバッ
ファがあるほか、高機能命令の一部は命令自体をパイプ
ライン化するため、実際には5段以上のパイプライン処
理効果がある。(3) Pipeline information The pipeline processing of the data processing apparatus of this embodiment has a configuration as shown in FIG. That is, an instruction fetch stage (IF stage) 31 for prefetching instructions, a decode stage (D stage) 32 for decoding instructions,
Operand address calculation stage (A stage) 33 that performs operand address calculation, operand fetch stage (F stage) that performs micro ROM access (specifically called R stage 36) and operand prefetch (specifically called OF stage 37) 34 The five-stage configuration of the execution stage (E stage) 35 for executing instructions is the basis of pipeline processing. In the E stage 35, there is a one-stage store buffer, and since some high-performance instructions pipeline the instruction itself, there is actually a pipeline processing effect of five or more stages.
各ステージは他のステージとは独立して動作し、理論上
は5つのステージが完全に独立動作する。各ステージは
1回の処理を最小2クロックで行なうことができる。従
って理想的には2クロックごとに次々とパイプライン処
理が進行する。Each stage operates independently of the other stages, and theoretically five stages operate completely independently. Each stage can perform one processing in a minimum of 2 clocks. Therefore, ideally, pipeline processing proceeds every two clocks.
本実施例のデータ処理装置にはメモリ−メモリ間演算
や、メモリ間接アドレッシングなど基本パイプライン処
理1回だけでは処理が行えない命令があるが、本実施例
のデータ処理装置はこれらの処理に対してもなるべく均
衡したパイプライン処理が行えるように設計されてい
る。即ち、複数のメモリオペランドを持つ命令に対して
はメモリオペランドの数をもとにデコード段階で複数の
パイプライン処理単位(ステップコード)に分解してパ
イプライン処理を行なうのである。パイプライン処理単
位の分解方法に関しては特願昭61-236456号で詳しく述
べられている。In the data processing device of this embodiment, there are instructions that cannot be processed by only one basic pipeline process, such as memory-memory operations and memory indirect addressing. However, the data processing device of this embodiment deals with these processes. However, it is designed to perform balanced pipeline processing as much as possible. That is, 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. The method of disassembling the pipeline processing unit is described in detail in Japanese Patent Application No. 61-236456.
IFステージ31からDステージ32に渡される情報は命令コ
ード40そのものである。Dステージ32からAステージに
渡される情報は命令で指定された演算に関するもの(D
コード41と呼ぶ)とオペランドのアドレス計算に関係す
るもの(Aコード42と呼ぶ)との2つがある。Aステー
ジ33からFステージに渡される情報はマイクロプログラ
ムルーチンのエントリ番地やマイクロプログラムへのパ
ラメータなどを含むRコード43とオペランドのアドレス
とアクセス方法指示情報などを含むFコード44との2つ
である。Fステージ34からEステージ35に渡される情報
は演算制御情報とリテラルなどを含むEコード45とオペ
ランドやオペランドアドレスなどを含むSコード46との
2つである。The information passed from the IF stage 31 to the D stage 32 is the instruction code 40 itself. The information passed from the D stage 32 to the A stage relates to the operation specified by the instruction (D
There are two types, one called code 41) and the other related to address calculation of operands (called A code 42). Information passed from the A stage 33 to the F stage is an R code 43 including an entry address of a microprogram routine and parameters to the microprogram, and an F code 44 including an address of an operand and access method instruction information. . The information passed from the F stage 34 to the E stage 35 is an E code 45 including operation control information and literals and an S code 46 including operands and operand addresses.
Eステージ35以外のステージで検出されたEITはそのコ
ードがEステージ35に到達するまではEIT処理を起動し
ない。Eステージ35で処理されている命令のみが実行段
階の命令であり、IFステージ31〜Fステージ34で処理さ
れている命令はまだ実行段階に至っていないのである。
従ってEステージ35以外で検出されたEITはそれを検出
したことをステップコード中に記録して次のステージに
伝えられるのみである。The EIT detected in a stage other than the E stage 35 does not start the EIT processing until the code reaches the E stage 35. Only the instructions processed in the E stage 35 are in the execution stage, and the instructions processed in the IF stages 31 to F stage 34 have not yet reached the execution stage.
Therefore, the EIT detected at a stage other than the E stage 35 only records the detection of it in the step code and transmits it to the next stage.
(3.1)パイプライン処理単位 (3.1.1)命令コードフィールドの分類 本実施例のデータ処理装置のパイプライン処理単位は命
令セットのフォーマットの特徴を利用して決定されてい
る。節(2)で述べたように、本実施例のデータ処理装
置の命令は2バイト単位の可変長命令であり、基本的に
は(2バイトの命令基本部+0〜4バイトのアドレッシ
ング拡張部)を1〜3回繰り返すことにより命令が構成
されている。(3.1) Pipeline processing unit (3.1.1) Classification of instruction code field The pipeline processing unit of the data processing apparatus of this embodiment is determined by utilizing the characteristics of the format of the instruction set. As described in section (2), the instruction of the data processing device of this embodiment is a variable length instruction in units of 2 bytes, and is basically (2 byte instruction basic part + 0 to 4 byte addressing extension part). The instruction is configured by repeating 1 to 3 times.
命令基本部には多くの場合オペコード部とアドレッシン
グモード指定部があり、インデックスアドレッシングや
メモリ間接アドレッシングが必要なときにはアドレッシ
ング拡張部の代わりに(2バイトの多段間接モード指定
部+0〜4バイトのアドレッシング拡張部)が任意個付
く。また、命令により2または4バイトの命令固有の拡
張部が最後に付く。In many cases, the instruction basic part has an opcode part and addressing mode specification part. When index addressing or memory indirect addressing is required, instead of the addressing expansion part (2 bytes multi-stage indirect mode specification part + 0 to 4 bytes addressing expansion Parts) are attached arbitrarily. In addition, depending on the instruction, a 2-byte or 4-byte extension section peculiar to the instruction is added at the end.
命令基本部には命令のオペコード,基本アドレッシング
モード,リテラルなどが含まれる。アドレッシング拡張
部はディスプレースメント,絶対アドレス,即値,分岐
命令の変位のいずれかである。命令固有の拡張部にはレ
ジスタマップ,Iフォーマット命令の即値指定などがあ
る。第6図に本実施例のデータ処理装置の基本的命令フ
ォーマットの特徴を示す。The instruction basic part includes the operation code of the instruction, the basic addressing mode, and the literal. The addressing extension is one of displacement, absolute address, immediate value, and branch instruction displacement. Instruction-specific extensions include register maps and immediate value specifications for I-format instructions. FIG. 6 shows the characteristics of the basic instruction format of the data processor of this embodiment.
(3.1.2)ステップコードへの命令の分解 本実施例のデータ処理装置では上記の命令フォーマット
の特徴を活かしたパイプライン処理を行なう。Dステー
ジ32では2バイトの命令基本部+0〜4バイトのアドレ
ッシング拡張部),(多段間接モード指定部+アドレッ
シング拡張部)または命令固有の拡張部を1つのデコー
ド単位として処理する。各回のデコード結果をステップ
コードと呼び、Aステージ33以降ではこのステップコー
ドをパイプライン処理の単位としている。ステップコー
ドの数は命令ごとに固有であり、多段間接モード指定を
行わないとき、1つの命令は最小1個,最大3個のステ
ップコードに分かれる。多段間接モード指定があればそ
れだけステップコードが増える。ただし、これは後で述
べるようにデコード段階のみである。(3.1.2) Decomposition of instruction into step code In the data processing device of the present embodiment, pipeline processing is carried out by making use of the characteristics of the above instruction format. In the D stage 32, a 2-byte instruction basic part + 0 to 4-byte addressing extension part), (multi-stage indirect mode designation part + addressing extension part) or an instruction-specific extension part is processed as one decoding unit. The decoding result of each time is called a step code, and after the A stage 33, this step code is a unit of pipeline processing. The number of step codes is peculiar to each instruction, and when the multistage indirect mode is not designated, one instruction is divided into a minimum of one step code and a maximum of three step codes. If there is a multistage indirect mode specification, the step code will increase accordingly. However, this is only the decoding stage as described later.
(3.1.3)プログラムカウンタの管理 本実施例のデータ処理装置のパイプライン上に存在する
ステップコードはすべて別命令に対するものである可能
性があり、プログラムカウンタの値はステップコードご
とに管理する。すべてのステップコードはそのステップ
コードのもとになった命令のプログラムカウンタ値をも
つ。ステップコードに付属してパイプラインの各ステー
ジを流れるプログラムカウンタ値はステッププログラム
カウンタ(SPC)と呼ぶ。SPCはパイプラインステージを
次々と受け渡されていく。(3.1.3) Management of Program Counter All step codes existing on the pipeline of the data processing apparatus of this embodiment may be for different instructions, and the value of the program counter is managed for each step code. Every step code has the program counter value of the instruction that caused the step code. The program counter value attached to the step code and flowing through each stage of the pipeline is called a step program counter (SPC). SPCs are handed over to the pipeline stages one after another.
(3.2)各パイプラインステージの処理 各パイプラインのステージの入出力ステップコードには
第2図に示したように便宜上名前が付けられている。ま
たステップコードはオペコードに関する処理を行ない、
マイクロROMのエントリ番地やEステージ35に対するパ
ラメータなどになる系列とEステージ35のマイクロ命令
に対するオペランドになる系列の2系列がある。(3.2) Processing of each pipeline stage I / O step codes of each pipeline stage are named for convenience as shown in FIG. In addition, the step code performs processing related to the opcode,
There are two series, that is, an entry address of the micro ROM and a series of parameters for the E stage 35, and a series of operands for the micro instruction of the E stage 35.
(3.2.1)命令フェッチステージ 命令フェッチステージ(IFステージ)31は命令をメモリ
やブランチバッファからフェッチし、命令キューに入力
して、Dステージ32に対して命令コード40を出力する。
命令キューの入力は整置された4バイト単位で行なう。
メモリから命令をフェッチするときは整置された4バイ
トにつき最小2クロックを要する。ブランチバッファが
ヒットした時は整置された4バイトにつき1クロックで
フェッチ可能である。命令キューの出力単位は2バイト
ごとに可変であり、2クロックの間に最大6バイトまで
出力できる。また分岐の直後には命令キューをバイパス
して命令基本部2バイトを直接命令デコーダに転送する
こともできる。(3.2.1) Instruction fetch stage The instruction fetch stage (IF stage) 31 fetches an instruction from a memory or a branch buffer, inputs it to the instruction queue, and outputs an instruction code 40 to the D stage 32.
Input to the instruction queue is done in aligned 4-byte units.
Fetching instructions from memory requires a minimum of 2 clocks for every 4 bytes aligned. When the branch buffer is hit, it is possible to fetch the aligned 4 bytes in 1 clock. The output unit of the instruction queue is variable every 2 bytes, and up to 6 bytes can be output during 2 clocks. Immediately after branching, it is possible to bypass the instruction queue and directly transfer the two bytes of the basic instruction portion to the instruction decoder.
ブランチバッファへの命令の登録やクリアなどの制御,
プリフェッチ先命令アドレスの管理や命令キューの制御
もIFステージ31で行なう。Controls such as registering and clearing instructions in the branch buffer,
The IF stage 31 also manages the prefetch destination instruction address and controls the instruction queue.
IFステージ31で検出するEITには命令をメモリからフェ
ッチするときのバスアクセス例外やメモリ保護違反など
によるアドレス変換例外がある。The EIT detected in the IF stage 31 includes a bus access exception when fetching an instruction from memory and an address translation exception due to a memory protection violation.
(3.2.2)命令デコードステージ 命令デコードステージ(Dステージ)32はIFステージ31
から入力された命令コード40をデコードする。デコード
は命令デコード部52のFHWデコーダ,NFHWデコーダ,アド
レッシングモードデコーダを使用して、2クロック単位
に1度行ない、1回のデコード処理で0〜6バイトの命
令コードを消費する(RET命令の復帰先アドレスを含む
ステップコードの出力処理などでは命令コードを消費し
ない)。1回のデコードでAステージ33に対してアドレ
ス計算情報であるAコード42である約35ビットの制御コ
ードと最大32ビットアドレス修飾情報と、オペコードの
中間デコード結果であるDコード41である約50ビットの
制御コードと8ビットのリテラル情報とを出力する。(3.2.2) Instruction decode stage Instruction decode stage (D stage) 32 is IF stage 31
The instruction code 40 input from is decoded. Decoding is performed once every two clocks using the FHW decoder, NFHW decoder, and addressing mode decoder of the instruction decoding unit 52 and consumes 0 to 6 bytes of instruction code in one decoding process (return of RET instruction The instruction code is not consumed in the output processing of the step code including the destination address). About 35 bit control code which is A code 42 which is address calculation information and maximum 32 bit address modification information for A stage 33 and D code 41 which is intermediate decoding result of operation code is about 50 in one decoding. It outputs a bit control code and 8-bit literal information.
Dステージ32では各命令のPC計算部53の制御,分岐予測
処理,プリブランチ命令に対するプリブランチ処理,命
令キューからの命令コード出力処理も行なう。In the D stage 32, control of the PC calculator 53 for each instruction, branch prediction processing, pre-branch processing for pre-branch instructions, and instruction code output processing from the instruction queue are also performed.
Dステージ32で検出するEITには予約命令例外,プリブ
ランチ時の奇数アドレスジャンプトラップがある。ま
た、IFステージ31より転送されてきた各種EITはステッ
プコード内にエンコードする処理をしてAステージ33に
転送する。The EIT detected in the D stage 32 includes a reserved instruction exception and an odd address jump trap at pre-branch. The various EITs transferred from the IF stage 31 are encoded in the step code and transferred to the A stage 33.
(3.2.3)オペランドアドレス計算ステージ オペランドアドレス計算ステージ(Aステージ33)は処
理が大きく2つに分かれる。1つは命令デコード部52の
デコーダ2を使用して、オペコードの後段デコードを行
なう処理で、他方はオペランドアドレス計算部54でオペ
ランドアドレスの計算を行なう処理である。(3.2.3) Operand address calculation stage The operand address calculation stage (A stage 33) is roughly divided into two processes. One is a process of using the decoder 2 of the instruction decoding unit 52 to perform the subsequent decoding of the operation code, and the other is a process of calculating the operand address in the operand address calculation unit 54.
オペコードの後段デコード処理はDコード41を入力と
し、レジスタやメモリの書き込み予約及びマイクロプロ
グラムのエントリ番地とマイクロプログラムに対するパ
ラメータなどを含むRコード43の出力を行なう。なお、
レジスタやメモリの書き込み予約はアドレス計算で参照
したレジスタやメモリの内容がパイプライン上を先行す
る命令で書き換えられ、誤ったアドレス計算が行なわれ
るのを防ぐためのものである。レジスタやメモリの書き
込み予約はデッドロックを避けるため、ステップコード
ごとに行なうのではなく命令ごとに行なう。レジスタや
メモリの書き込み予約については特願昭62-144394号で
詳しく述べられている。In the subsequent decoding process of the operation code, the D code 41 is input, and the R code 43 including the write reservation of the register and the memory and the entry address of the microprogram and the parameters for the microprogram is output. In addition,
The write reservation of the register or memory is for preventing the contents of the register or memory referred to in the address calculation from being rewritten by the preceding instruction on the pipeline and erroneous address calculation being performed. In order to avoid deadlock, write reservation of registers and memory is performed not for each step code but for each instruction. The write reservation of registers and memory is described in detail in Japanese Patent Application No. 62-144394.
オペランドアドレス計算処理はAコード42を入力とし、
Aコード42に従い、オペランドアドレス計算部54で加算
やメモリ間接参照を組み合わせてアドレス計算を行な
い、その計算結果をFコード44として出力する。この
際、アドレス計算に伴うレジスタやメモリの読み出し時
にコンフリクトチェックを行ない、先行命令がレジスタ
やメモリに書き込み処理を終了していないためコンフリ
クトが指示されれば、先行命令がEステージ35で書き込
み処理を終了するまで待つ。また、オペランドアドレス
やメモリ間接参照のアドレスがメモリにマップされたI/
O領域に入るかどうかのチェックも行なう。Operand address calculation processing uses A code 42 as input,
According to the A code 42, the operand address calculation unit 54 performs address calculation by combining addition and memory indirect reference, and outputs the calculation result as an F code 44. At this time, a conflict check is performed at the time of reading the register or memory associated with the address calculation, and if the conflict is instructed because the preceding instruction has not completed the writing process to the register or memory, the preceding instruction performs the writing process at the E stage 35. Wait until it finishes. In addition, the operand address and the address of the memory indirect reference are I / O mapped to the memory.
It also checks whether it enters the O area.
Aステージ33で検出するEITには予約命令例外,特権命
令例外,バスアクセス例外,アドレス変換例外,メモリ
間接アドレッシングのときのオペランドブレイクポイン
トヒットによるデバッグトラップがある。Dコード41,A
コード42自体がEITを起こしたことを示しておれば、A
ステージ33はそのコードに対してアドレス計算処理をせ
ず、そのEITをRコード43やFコード44に伝える。The EIT detected at the A stage 33 includes a reserved instruction exception, a privileged instruction exception, a bus access exception, an address translation exception, and a debug trap due to an operand breakpoint hit at the time of memory indirect addressing. D code 41, A
If code 42 itself indicates that it caused an EIT, then A
The stage 33 transmits the EIT to the R code 43 and the F code 44 without performing address calculation processing on the code.
(3.2.4)マイクロROMアクセスステージ オペランドフェッチステージ(Fステージ)34も処理が
大きく2つに分かれる。1つはマイクロROMのアクセス
処理であり、特にRステージ36と呼ぶ。他方はオペラン
ドプリフェッチ処理であり、特にOFステージ37と呼ぶ。
Rステージ36とOFステージ37は必ずしも同時に動作する
わけではなく、メモリアクセス権が獲得できるかどうか
などに依存して独立に動作する。(3.2.4) Micro ROM access stage The operand fetch stage (F stage) 34 is also roughly divided into two processes. One is the access processing of the micro ROM, which is particularly called the R stage 36. The other is an operand prefetch process, which is particularly called an OF stage 37.
The R stage 36 and the OF stage 37 do not always operate at the same time, but operate independently depending on whether or not a memory access right can be acquired.
Rステージ36の処理であるマイクロROMアクセス処理は
Rコードに対して次のEステージでの実行に使用する実
行制御コードであるEコードを作り出すためのマイクロ
ROMアクセスとマイクロ命令デコード処理である。1つ
のRコードに対する処理が2つ以上のマイクロプログラ
ムステップに分解される場合、マイクロROMはEステー
ジ35で使用され、次のRコード43はマイクロROMアクセ
ス待ちになる。Rコード43に対するマイクロROMアクセ
スが行なわれるのはその前のEステージ35での最後のマ
イクロ命令実行の時である。本実施例のデータ処理装置
ではほとんどの基本命令は1マイクロプログラムステッ
プで行なわれるため実際にはRコード43に対するマイク
ロROMアクセスが次々と行なわれることが多い。The micro ROM access process, which is the process of the R stage 36, is a micro process for producing an E code, which is an execution control code used for execution in the next E stage for the R code.
ROM access and micro instruction decoding processing. If the processing for one R code is broken down into more than one microprogram step, the micro ROM is used in the E stage 35 and the next R code 43 waits for the micro ROM access. The micro ROM access to the R code 43 is made at the last micro instruction execution in the E stage 35 before that. In the data processor of this embodiment, most of the basic instructions are executed in one microprogram step, so in practice, micro ROM access to the R code 43 is often made one after another.
Rステージ36で新たに検出するEITはない。Rコード43
が命令処理再実行型のEITを示しているときはそのEIT処
理に対するマイクロプログラムが実行されるので、Rス
テージ36はそのRコード43に従ったマイクロ命令をフェ
ッチする。Rコード43が奇数アドレスジャップトラップ
を示しているときRステージ36はそれをEコード45に伝
える。これはプリブランチに対するもので、Eステージ
35ではそのEコード45で分岐が生じなければそのプリブ
ランチを有効として奇数アドレスジャンプトラップを発
生する。There is no new EIT detected in R stage 36. R code 43
Indicates an instruction processing re-execution type EIT, the microprogram corresponding to the EIT processing is executed, so the R stage 36 fetches the microinstruction according to the R code 43. When the R code 43 indicates an odd address Jap trap, the R stage 36 conveys it to the E code 45. This is for pre-branch, E stage
At 35, if no branch occurs at the E code 45, the pre-branch is validated and an odd address jump trap is generated.
(3.2.5)オペランドフェッチステージ オペランドフェッチステージ(OFステージ)37はFステ
ージ34で行なう上記2つの処理のうちオペランドプリフ
ェッチ処理を行なう。(3.2.5) Operand Fetch Stage The operand fetch stage (OF stage) 37 performs the operand prefetch process of the above two processes performed in the F stage 34.
オペランドプリフェッチはFコード44を入力とし、フェ
ッチしたオペランドとそのアドレスをSコード46として
出力する。1つのFコード44ではワード境界をまたいで
もよいが、4バイト以下のオペランドフェッチを指定す
る。Fコード44にはオペランドのアクセスを行なうかど
うかの指定も含まれており、Aステージ33で計算したオ
ペランドアドレス自体や即値データをEステージ35に転
送する場合にはオペランドプリフェッチは行わず、Fコ
ード44の内容をSコード46として転送する。プリフェッ
チしようとするオペランドとEステージ35が書き込み処
理を行おうとするオペランドが一致するときはオペラン
ドプリフェッチはメモリから行わず、バイパスして行な
う。またI/O領域に対してはオペランドプリフェッチを
遅延させ、先行命令がすべて完了するまで待ってオペラ
ンドフェッチを行なう。In the operand prefetch, the F code 44 is input, and the fetched operand and its address are output as the S code 46. One F code 44 may cross word boundaries, but specifies an operand fetch of 4 bytes or less. The F code 44 also includes designation of whether or not to access the operand. When the operand address itself calculated in the A stage 33 or the immediate data is transferred to the E stage 35, the operand prefetch is not performed and the F code The contents of 44 are transferred as S code 46. When the operand to be prefetched matches the operand to be written by the E stage 35, the operand prefetch is not performed from the memory but bypassed. For the I / O area, the operand prefetch is delayed, and the operand fetch is performed after waiting for all the preceding instructions.
OFステージ37で検出するEITはバスアクセス例外,アド
レス変換例外,オペランドプリフェッチに対するブレイ
クポイントヒットによるデバッグトラップがある。Fコ
ード44がデバッグトラップ以外のEITを示しているとき
はそれをSコード46に転送し、オペランドプリフェッチ
は行わない。Fコード44がデバッグトラップを示してい
るときはそのFコード44に対してEITを示していないと
きと同じ処理をすると共にデバッグトラップをSコード
46に伝える。The EIT detected in the OF stage 37 includes a bus access exception, an address translation exception, and a debug trap due to a breakpoint hit for operand prefetch. When the F code 44 indicates an EIT other than the debug trap, it is transferred to the S code 46 and operand prefetch is not performed. When the F code 44 indicates a debug trap, the same processing as when the F code 44 does not indicate EIT is performed and the debug trap is set to the S code.
Tell 46.
(3.2.6)実行ステージ 実行ステージ(Eステージ)35ではEコード45,Sコード
46を入力として動作する。このEステージ35が命令を実
行するステージであり、Fステージ34以前にステージで
行われた処理はすべてEステージ35のための前処理であ
る。Eステージ35でジャンプ命令が実行されたり、EIT
処理が起動されたりしたときは、IFステージ31〜Fステ
ージ34までの処理はすべて無効化される。Eステージ35
はマイクロプログラムにより制御され、Rコード45に示
されたマイクロプログラムのエントリ番地からの一連の
マイクロプログラムを実行することにより命令を実行す
る。(3.2.6) Execution stage E code 45, S code in execution stage (E stage) 35
Operates with 46 as input. The E stage 35 is a stage for executing instructions, and all the processes performed in the stages before the F stage 34 are pre-processes for the E stage 35. Jump instruction is executed at E stage 35, or EIT
When the process is activated, all the processes from the IF stage 31 to the F stage 34 are invalidated. E stage 35
Is controlled by the microprogram, and executes an instruction by executing a series of microprograms from the entry address of the microprogram indicated by the R code 45.
マイクロROMの読み出しとマイクロ命令の実行はパイプ
ライン化されて行なわれる。従って、マイクロプログラ
ムで分岐が起きたときは1マイクロステップの空きがで
きる。また、Eステージ35はデータ演算部56にあるスト
アバッファを利用して、4バイト以内のオペランドスト
アと次のマイクロ命令実行をパイプライン処理すること
もできる。The reading of the micro ROM and the execution of the micro instructions are pipelined. Therefore, when a branch occurs in the microprogram, there is a space of 1 microstep. Further, the E stage 35 can use the store buffer in the data operation unit 56 to pipeline the operand store within 4 bytes and the next microinstruction execution.
Eステージ35ではAステージ33で行ったレジスタやメモ
リに対する書き込み予約をオペランドの書き込みの後、
解除する。In the E stage 35, the write reservation for the register and memory made in the A stage 33 is performed after writing the operand,
To release.
また条件分岐命令がEステージ35で分岐を起こしたとき
はその条件分岐命令に対する分岐予測が誤っていたので
あるから分岐履歴の書き換えを行なう。When the conditional branch instruction causes a branch at the E stage 35, the branch prediction for the conditional branch instruction was incorrect, so the branch history is rewritten.
Eステージ35で検出されるEITにはバスアクセス例外,
アドレス変換例外,デバッグトラップ,奇数アドレスジ
ャンプトラップ,予約機能例外,不正オペランド例外,
予約スタックフォーマット例外,ゼロ除算トラップ,無
条件トラップ,条件トラップ,遅延コンテキストトラッ
プ,外部割込,遅延割込,リセット割込,システム障害
がある。A bus access exception is added to the EIT detected in E stage 35,
Address translation exception, debug trap, odd address jump trap, reserved function exception, invalid operand exception,
Reserved stack format exception, divide by zero trap, unconditional trap, condition trap, delayed context trap, external interrupt, delayed interrupt, reset interrupt, system failure.
Eステージ35で検出されるEITはすべてEIT処理されるが
Eステージ以前のIFステージ31〜Fステージ34の間で検
出され、Rコード43やSコード46に反映されているEIT
は必ずEIT処理されるとは限らない。IFステージ31〜F
ステージ34の間でEITを検出したが、先行の命令がEス
テージ35でジャンプ命令が実効されたなどの原因でEス
テージ35まで到達しなかったEITはすべてキャンセルさ
れる。そのEITを起こした命令はそもそも実行されなか
ったことになる。All EITs detected in E stage 35 are processed by EIT, but detected between IF stage 31 to F stage 34 before E stage and reflected in R code 43 and S code 46.
Is not always EIT processed. IF stage 31-F
Although an EIT is detected during stage 34, all EITs that did not reach E stage 35 due to the preceding instruction having executed a jump instruction at E stage 35 are canceled. The instruction that caused the EIT was not executed in the first place.
外部割込や遅延割込は命令の切れ目でEステージ35で直
接受け付けられ、マイクロプログラムにより必要な処理
が実行される。その他の各種EITも処理はマイクロプロ
グラムにより行なわれる。External interrupts and delayed interrupts are directly accepted by the E stage 35 at instruction breaks, and the necessary processing is executed by the microprogram. Other various EITs are also processed by microprograms.
(3.3)各パイプラインステージの状態制御 パイプラインの各ステージは入力ラッチと出力ラッチを
持ち、他のステージとは独立に動作することを基本とす
る。各ステージは1つ前に行った処理が終わり、その処
理結果を出力ラッチから次のステージの入力ラッチに転
送し、自分のステージの入力ラッチに次の処理に必要な
入力信号がすべてそろえば次の処理を開始する。(3.3) State control of each pipeline stage Each stage of the pipeline basically has an input latch and an output latch and operates independently of other stages. Each stage completes the previous processing, transfers the processing result from the output latch to the input latch of the next stage, and when the input latch of the own stage has all the input signals necessary for the next processing, The process of is started.
つまり、各ステージは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 latch of the subsequent stage, and when the output latch becomes empty, the next processing is started.
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号がすべてそろっている必要がある。入力信
号がそろっていないと、そのステージは待ち状態(入力
待ち)になる。出力ラッチから次のステージの入力ラッ
チへの転送を行なうときは次のステージの入力ラッチが
空き状態になっている必要があり、次のステージの入力
ラッチが空きでない場合もパイプラインステージは待ち
状態(出力待ち)になる。必要なメモリアクセス権が獲
得できなかったり、処理しているメモリアクセスにウエ
イトが挿入されたり、その他のパイプラインコンフリク
トが生じると、各ステージの処理自体が遅延する。All input signals must be available at the clock timing one clock before the operation of each stage. If the input signals are not complete, the stage enters the waiting state (waiting for input). When transferring from the output latch to the input latch of the next stage, the input latch of the next stage must be empty, and even if the input latch of the next stage is not empty, the pipeline stage is in the waiting state. (Waiting for output). If the necessary memory access right cannot be acquired, a wait is inserted in the memory access being processed, or other pipeline conflict occurs, the processing itself of each stage is delayed.
(4)メモリ書き込みの詳細 以上、本データ処理装置の概要を述べてきた。ここで
は、本実施例のメモリ書き込みの制御方法及び構成につ
いて述べる。(4) Details of Memory Writing The outline of the data processing device has been described above. Here, the control method and configuration of the memory writing of this embodiment will be described.
(4.1)メモリ書き込み制御部分の動作説明 第8図に本実施例のメモリ書き込み制御部の構成を示
す。まず、第8図の構成について説明する。21はDステ
ージ32の第1の命令デコーダ,22はAステージ33の第2
の命令デコーダ,27はマイクロROMである。4は第1の命
令デコーダ21から第2の命令デコーダ22に渡される中間
コードであり、5は第1の命令デコーダ21から第2の命
令デコーダ22に渡されるパラメータである。EAFLAG1は
デコーダ22からのデコード結果であり、かつアドレッシ
ング情報の選択信号でもある。MEMWCNT2もデコーダ22か
らのデコード結果であり、かつ書き込み制御信号でもあ
る。MEM-D6、PUSH-D8、ADDM-D9はデコーダ21のデコード
結果でアドレッシング情報を示し、AステージでCMEM12
を生成する。PMEM11はラッチ24に記憶されていた1つ前
のステップコードのアドレッシング情報である。MEMW-R
14はFステージに送られる書き込み信号である。3は命
令デコーダ22からの出力で、マイクロROMのエントリア
ドレスを示す。28はマイクロROM27より読み出されたマ
イクロ命令を格納するマイクロ命令レジスタであり、マ
イクロ命令中にはバスアクセスを制御するためのバスア
クセス制御フィールド29が含まれる。条件書き込み指示
信号26はMEMW-R信号14により、オペランドがメモリ上に
あるときメモリライト指示を行なう信号で、MEMW-R信号
14との論理積がとられて、Eステージ35におけるメモリ
書き込み信号15が生成される。実際は、バスアクセス制
御フィールド29により無条件書き込み指示や実行結果を
反映した条件書き込み指示も行なわれるが、説明では省
略する。(4.1) Description of Operation of Memory Write Control Section FIG. 8 shows the configuration of the memory write control section of this embodiment. First, the configuration of FIG. 8 will be described. 21 is the first instruction decoder of the D stage 32, 22 is the second instruction of the A stage 33
The instruction decoder, 27 is a micro ROM. Reference numeral 4 is an intermediate code passed from the first instruction decoder 21 to the second instruction decoder 22, and 5 is a parameter passed from the first instruction decoder 21 to the second instruction decoder 22. EAFLAG1 is the decoding result from the decoder 22 and is also a selection signal for addressing information. MEMWCNT2 is also the decoding result from the decoder 22 and is also a write control signal. MEM-D6, PUSH-D8, and ADDM-D9 show addressing information by the decoding result of the decoder 21, and CMEM12 at the A stage.
To generate. PMEM11 is addressing information of the previous step code stored in the latch 24. MEMW-R
Reference numeral 14 is a write signal sent to the F stage. Reference numeral 3 is an output from the instruction decoder 22 and indicates an entry address of the micro ROM. A microinstruction register 28 stores the microinstruction read from the microROM 27, and the microinstruction includes a bus access control field 29 for controlling bus access. The condition write instruction signal 26 is a signal for giving a memory write instruction when the operand is on the memory by the MEMW-R signal 14.
A logical product with 14 is taken to generate the memory write signal 15 in the E stage 35. In reality, the bus access control field 29 gives an unconditional write instruction and a conditional write instruction that reflects the execution result, but the description thereof is omitted.
以下、第8図の動作説明を行なう。Dステージ32ではフ
ェッチしたデータをデコーダ21で解析し、デコーダ22の
入力となる中間コード4,パラメータ5をAステージ33に
渡す。同時に、プッシュモード,ポップモード,多段間
接モード以外のアドレッシングモードにより、オペラン
ドがメモリ上にあることが指定されたことを示すMEM-D
信号6,プッシュモードが指定されたことを示すPUSH-D信
号8,多段間接モードが指定されたことを示すADDM-D信号
9をDコード41としてAステージ33に送る。The operation of FIG. 8 will be described below. In the D stage 32, the fetched data is analyzed by the decoder 21, and the intermediate code 4 and parameter 5 which are input to the decoder 22 are passed to the A stage 33. At the same time, MEM-D that indicates that the operand is specified in memory by an addressing mode other than push mode, pop mode, or multistage indirect mode
The signal 6, the PUSH-D signal 8 indicating that the push mode is designated, and the ADDM-D signal 9 indicating that the multistage indirect mode is designated are sent to the A stage 33 as the D code 41.
Aステージ33ではDステージ32より送られた中間コード
4,パラメータ5を第2の命令デコーダのPLA22に入力し
て、マイクロエントリアドレスやEAFLAG信号1,MEMWCNT
信号2等の制御信号を生成させる。Intermediate code sent from D stage 32 at A stage 33
4, parameter 5 is input to PLA22 of the second instruction decoder, and microentry address and EAFLAG signal 1, MEMWCNT
A control signal such as signal 2 is generated.
有効アドレッシングモードフラグとして1ビットのEAFL
AG1を生成し、これでメモリ書き込み信号MEMW-R信号14
生成の際、同じステップコードのアドレッシングモード
信号を用いるか、1つ前のステップコードのアドレッシ
ングモード信号を用いるかを選択する。EAFLAG信号1の
値が“0"の時、同じステップコードのアドレッシングモ
ードが有効となり、“1"の時1つ前のステップコードの
アドレッシングモードが有効となる。すなわち、Gフォ
ーマットの命令のようにデスティネーションオペランド
情報を含むステップコードをEステージ35で処理すると
きオペランド書き込みを行なう場合には、“0"となり、
Iフォーマットの命令のようにデスティネーションオペ
ランド情報を含むステップコードの次にEステージ35で
オペランドの書き込み処理を行なうステップコードが続
く場合には“1"となる。1-bit EAFL as an effective addressing mode flag
Generate AG1 and write memory write signal MEMW-R signal 14
At the time of generation, it is selected whether to use the addressing mode signal of the same step code or the addressing mode signal of the immediately preceding step code. When the value of the EAFLAG signal 1 is "0", the addressing mode of the same step code is valid, and when it is "1", the addressing mode of the previous step code is valid. That is, when a step code including destination operand information, such as a G format instruction, is processed by the E stage 35 and an operand write is performed, it becomes "0".
It becomes "1" when the step code including the destination operand information is followed by the step code for writing the operand in the E stage 35 as in the I format instruction.
また、メモリ書き込み制御信号として1ビットのMEMWCN
T信号2を設定する。MEMWCNT信号2の値が“0"の時、メ
モリ書き込み信号MEMW-R14は強制的に“0"にセットさ
れ、デスティネーションオペランドがレジスタ上にある
ことを示す。また、MEMCNT信号2の値が“1"の時、アド
レッシングモードによってメモリ書き込み信号MEMW-R14
がセットされる。In addition, 1-bit MEMWCN as a memory write control signal
Set T signal 2. When the value of the MEMWCNT signal 2 is "0", the memory write signal MEMW-R14 is forcibly set to "0", indicating that the destination operand is on the register. In addition, when the value of MEMCNT signal 2 is "1", the memory write signal MEMW-R14 depends on the addressing mode.
Is set.
RフォーマットとLフォーマットの命令は節(2)で述
べたように、デスティネーションオペランドがレジスタ
に固定されているので、これらの命令処理時にはMEMWCN
T信号2が“0"になっており、必ずMEMW-R信号14として
“0"が出力される。このようにすることにより、Rフォ
ーマット,Lフォーマットでも他のフォーマットの命令と
同一のマイクロ命令により処理を行なうことが可能とな
っている。As described in section (2), the R and L format instructions have a fixed destination operand in the register, so MEMWCN is processed when these instructions are processed.
The T signal 2 is "0", and "0" is always output as the MEMW-R signal 14. By doing so, it is possible to perform processing in the R format and the L format by the same microinstruction as the instructions in other formats.
1つ前のステップコードのMEM-D信号6,PUSH-D信号8,ADD
M-D信号9のどれか1つが“1"であればその情報がラッ
チ24に記憶されており、PMEM信号11が“1"となる。ま
た、現在のMEM-D信号6,PUSH-D信号8,ADDM-D信号9のど
れかが“1"であればCMEM12が“1"となる。すなわち、CM
EM12は自分のステップコードで処理しているオペランド
がメモリ上にあるかどうかの情報を示しており、PMEM信
号11は1つ前のステップコードで処理したオペランドが
メモリ上にあるかどうかの情報を示している。MEM-D signal 6, PUSH-D signal 8, ADD of the previous step code
If any one of the MD signals 9 is "1", the information is stored in the latch 24 and the PMEM signal 11 becomes "1". If any of the current MEM-D signal 6, PUSH-D signal 8, and ADDM-D signal 9 is "1", CMEM12 becomes "1". That is, CM
EM12 shows the information on whether the operand processed by the own step code is on the memory, and the PMEM signal 11 shows the information on whether the operand processed by the previous step code is on the memory. Shows.
EAFLAG1が“1"の場合1つ前のアドレッシングモードが
有効となり、PMEM信号11が参照され、ともに“1"であれ
ばMEMW-R信号14が“1"となる。また:EAFLAG1が“0"の場
合、現在のアドレッシングモードが有効となり、CMEM12
が参照され、共に“1"であればMEMW-R信号14が“1"とな
る。MEMW-R信号14はマイクロエントリアドレス3ととも
にRコード43としてRステージ36に送られる。When EAFLAG1 is "1", the previous addressing mode is enabled and the PMEM signal 11 is referred to. If both are "1", the MEMW-R signal 14 becomes "1". Also: When EAFLAG1 is “0”, the current addressing mode is enabled and CMEM12
Is referred to, and if both are "1", the MEMW-R signal 14 becomes "1". The MEMW-R signal 14 is sent to the R stage 36 as the R code 43 together with the micro entry address 3.
Rステージ36ではRコード43中のマイクロエントリアド
レス3によりマイクロROM27がアクセスされ、マイクロ
命令がマイクロ命令レジスタ28に読み出される。マイク
ロ命令中のバスアクセス制御フィールドにより、MEMW-R
信号を参照して条件書き込みを行なうことが指示されて
いる場合には、条件書き込み指示信号26が“1"となる。
この時、MEMW-R信号14が“1"であれば実行部に送られる
メモリ書き込み信号15は“1"となり、MEMW-R信号14が
“0"であれば実行部に送られるメモリ書き込み信号15は
“0"となる。実際はバスアクセス制御フィールド29によ
り、無条件書き込み指示や実効結果を反映した条件書き
込み指示も行なわれ、この場合にもメモリ書き込み信号
15はセットされる。In the R stage 36, the micro ROM 27 is accessed by the micro entry address 3 in the R code 43, and the micro instruction is read into the micro instruction register 28. MEMW-R by the bus access control field in the micro instruction
When it is instructed to write the condition by referring to the signal, the condition write instruction signal 26 becomes "1".
At this time, if the MEMW-R signal 14 is "1", the memory write signal 15 sent to the execution unit becomes "1", and if the MEMW-R signal 14 is "0", the memory write signal sent to the execution unit. 15 becomes “0”. Actually, the bus access control field 29 also gives an unconditional write instruction and a conditional write instruction that reflects the effective result.
15 is set.
Eステージ35ではメモリ書き込み信号15が“1"になって
いるときにはデータ演算部56で2クロックの処理が行わ
れた後にメモリ書き込み処理が行なわれる。In the E stage 35, when the memory write signal 15 is "1", the data operation unit 56 performs the process of 2 clocks and then the memory write process.
(4.2)命令実行の例 以下に、デスティネーションオペランドがレジスタ間接
モードで指定されるIフォーマットのADD命令を例に挙
げて処理の流れを説明する。この命令のビット割り付け
は第4図(d)のようになっている。ただし、レジスタ
間接モードは第5図(b)で示されるように、アドレッ
シングモードの拡張部を持たないので、2バイトの命令
基本部の直後に即値データが置かれる。この命令の処理
の流れを第9図に示す。(4.2) Example of Instruction Execution The flow of processing will be described below by taking the I-format ADD instruction in which the destination operand is designated in the register indirect mode as an example. The bit allocation of this instruction is as shown in FIG. 4 (d). However, as shown in FIG. 5B, the register indirect mode does not have an extension part of the addressing mode, so immediate data is placed immediately after the 2-byte instruction basic part. The flow of processing of this instruction is shown in FIG.
Iフォーマットの命令では命令デコード段階でデスティ
ネーションオペランド情報を含む第1ステップコード
と、即値データの情報を含む第2ステップコードの2つ
のステップコードに分解されてパイプライン処理され
る。The I format instruction is decomposed into two step codes, a first step code including the destination operand information and a second step code including the information of the immediate data, and pipelined at the instruction decoding stage.
まず、第1ステップコードのDステージ32以降での処理
について説明する。First, the processing of the first step code after the D stage 32 will be described.
Dステージ32ではIFステージ31より2バイトとの命令基
本部が取り込まれ(ステップ91)、1段目のデコード処
理が行なわれ、IフォーマットのADD命令に関する第1
ステップコードが生成される(ステップ92)。つまり、
Dコード41として中間コード4,パラメータ5,アドレッシ
ング情報であるMEM-D6,PUSH-D8,ADDM-D9が、またAコー
ド42としてデスティネーションオペランドに関するアド
レス計算情報がAステージ33に送られる。この場合、ア
ドレッシングモードとしてレジスタ間接モードが用いら
れているため、MEME-D6が“1"になっている。また、中
間コード4の一部は中間デコード結果としてラッチ24に
保持され、次のデコードサイクルでの命令デコーダ21の
入力となる。In the D stage 32, the instruction basic part of 2 bytes is fetched from the IF stage 31 (step 91), the first stage decoding processing is performed, and the first instruction concerning the I format ADD instruction is performed.
A step code is generated (step 92). That is,
Intermediate code 4, parameter 5, addressing information MEM-D6, PUSH-D8, ADDM-D9 are sent as the D code 41, and address calculation information regarding the destination operand is sent to the A stage 33 as the A code 42. In this case, since the register indirect mode is used as the addressing mode, MEME-D6 is set to "1". Further, a part of the intermediate code 4 is held in the latch 24 as an intermediate decoding result and becomes an input to the instruction decoder 21 in the next decoding cycle.
Aステージ33では中間コード4とパラメータ5が命令デ
コーダ22に入力され、2段目のデコード処理が行なわれ
る。MEM-D6が“1"になっているので、CMEM12も“1"にな
る。この値がAステージ33の処理終了時に、ラッチ24に
保持される(ステップ95,96)。一方、アドレス計算部5
4ではデスティネーションのアドレスが計算されFコー
ド44としてのアドレスを格納するFAレジスタに転送され
る(ステップ93)。Fステージ34ではFコード44中のFA
レジスタに格納されているアドレスに従いデスティネー
ションオペランドのフェッチを行ない、Sコード46とし
てのオペランドデータを格納するSDレジスタに取り込
む。また、デスティネーションのアドレスはSコード46
としてのアドレスを格納するSAレジスタに転送される
(ステップ94)。また、マイクロROM27のアクセスを行
ない(ステップ97)、マイクロ命令をデコードして(ス
テップ98)、Eステージ35での実行制御信号群であるE
コード45を生成する(ステップ99)。At the A stage 33, the intermediate code 4 and the parameter 5 are input to the instruction decoder 22 and the second decoding process is performed. Since MEM-D6 is “1”, CMEM12 is also “1”. This value is held in the latch 24 when the processing of the A stage 33 is completed (steps 95 and 96). On the other hand, the address calculator 5
At 4, the destination address is calculated and transferred to the FA register that stores the address as the F code 44 (step 93). FA in F code 44 at F stage 34
The destination operand is fetched according to the address stored in the register, and is fetched into the SD register that stores the operand data as the S code 46. The destination address is S code 46.
Is transferred to the SA register that stores the address (step 94). Also, the micro ROM 27 is accessed (step 97), the micro instruction is decoded (step 98), and the E control signal group E in the E stage 35 is accessed.
Generate code 45 (step 99).
Eステージ35ではデスティネーションアドレスの入って
いるSAレジスタの内容をEステージ35が管理しているア
ドレスレジスタであるAAレジスタに転送する。また、デ
スティネーションのデータが入っているSDレジスタの内
容をワーキングレジスタに退避しておく(ステップ10
0)。The E stage 35 transfers the contents of the SA register containing the destination address to the AA register which is an address register managed by the E stage 35. Also, save the contents of the SD register that contains the destination data to the working register (step 10
0).
次に、第2ステップコードについて説明する。Next, the second step code will be described.
Dステージ32ではラッチ24に保持されている値を入力と
して、1段目のデコード処理が行なわれ、Iフォーマッ
トのADD命令に関する第2ステップコードが生成される
(ステップ113)。このとき、命令コード中の即値デー
タが取り込まれる(ステップ112)。Dコード41として
中間コード4,パラメータ5,アドレッシング情報であるME
M-D6,PUSH-D8,ADDM-D9が、また、Aコード42としてソー
スオペランドとなる即値データを転送するためのアドレ
ス計算情報がAステージ33に送られる。In the D stage 32, the value held in the latch 24 is input, the first stage decoding process is performed, and the second step code for the I-format ADD instruction is generated (step 113). At this time, the immediate data in the instruction code is fetched (step 112). Intermediate code 4, parameter 5, and ME as addressing information as D code 41
Address calculation information for the M-D6, PUSH-D8, and ADDM-D9 to transfer the immediate data serving as the source operand as the A code 42 is sent to the A stage 33.
Aステージ33では2段目のデコードが行なわれる。この
場合、EAFLAG1が“1"になっており、ラッチ24の出力で
ある第1ステップコード処理時のアドレッシング情報PM
EM11を参照することを示す。また、MEMWCNT2も“1"にセ
ットされており、アドレッシングモードによりMEMW-R信
号14をセットすることを示す。At the A stage 33, the second stage decoding is performed. In this case, EAFLAG1 is "1", and the addressing information PM at the time of processing the first step code which is the output of the latch 24 is processed.
Refers to EM11. MEMWCNT2 is also set to "1", indicating that the MEMW-R signal 14 is set in the addressing mode.
PMEM11にはデスティネーションオペランドのアドレッシ
ングモードを反映して“1"がラッチされているので、ME
MW-R14にはメモリへの書き込みを示す“1"がセットされ
る(ステップ114,115)。また、アドレス計算部54では
即値がFAレジスタに転送される(ステップ118)。Since "1" is latched in PMEM11 reflecting the addressing mode of the destination operand, ME
"1" indicating writing to the memory is set in the MW-R14 (steps 114 and 115). Further, the address calculator 54 transfers the immediate value to the FA register (step 118).
Fステージ34では、即値がFAレジスタよりSAレジスタに
転送される(ステップ119)。また、マイクロROM27のア
クセス(ステップ116)及びマイクロ命令のデコードが
行なわれ(ステップ117)、ALUにより加算処理を行なう
ための実効制御信号群であるEコード45が生成される。
このとき、マイクロ命令中のバスアクセス制御フィール
ドでは、MEMW-R14を参照して、書き込みを行なうかどう
か判断する指示がなされており(ステップ120)、条件
書き込み指示信号26が“1"になる。MEMW-R14が“1"にな
っているので、メモリ書き込み信号15は“1"となる(ス
テップ123)。In the F stage 34, the immediate value is transferred from the FA register to the SA register (step 119). Further, the micro ROM 27 is accessed (step 116) and the micro instruction is decoded (step 117), and the E code 45, which is an effective control signal group for performing addition processing by the ALU, is generated.
At this time, the bus access control field in the microinstruction refers to MEMW-R14 to give an instruction to determine whether to write (step 120), and the condition write instruction signal 26 becomes "1". Since the MEMW-R14 is "1", the memory write signal 15 is "1" (step 123).
Eステージ35ではEコード45の指示により即値の格納さ
れているSAレジスタの値と退避されているデスティネー
ションオペランドの値の格納されているワーキングレジ
スタとの加算処理が行なわれ、加算結果がメモリへの書
き込みデータを格納するDDレジスタに書き込まれる(ス
テップ124)。MEMW-R14が“1"になっているので、AAレ
ジスタに格納されているデスティネーションオペランド
のアドレスにDDレジスタの値がストアされる(ステップ
125)。In the E stage 35, an addition process of the value of the SA register that stores the immediate value and the working register that stores the value of the saved destination operand is performed according to the instruction of the E code 45, and the addition result is stored in the memory. The data is written in the DD register that stores the write data (step 124). Since MEMW-R14 is set to "1", the value of the DD register is stored at the address of the destination operand stored in the AA register (step
125).
以上ではデスティネーションオペランドがメモリ上にあ
る例を述べてきた。デスティネーションオペランドがレ
ジスタ上にある場合には第1ステップコードがAステー
ジ33で処理されるときに、レジスタ直接モードであるこ
とを反映して、ラッチ24に“0"が格納される。また、E
ステージ35ではデスティネーションオペランドとして指
定されているレジスタの値がワーキングレジスタに退避
される。第2ステップコード処理時にはMEMW-R信号14が
“0"となって、メモリ書き込み信号15も“0"になるた
め、加算結果はデスティネーションオペランドとして指
定されるレジスタに格納される。ストア処理は行われな
い。The example in which the destination operand is in memory has been described above. When the destination operand is on the register, when the first step code is processed in the A stage 33, "0" is stored in the latch 24, reflecting the register direct mode. Also, E
At stage 35, the value of the register designated as the destination operand is saved in the working register. At the time of the second step code processing, the MEMW-R signal 14 becomes "0" and the memory write signal 15 also becomes "0", so the addition result is stored in the register designated as the destination operand. No store processing is performed.
デスティネーションオペランドのアドレッシングモード
として多段間接モードが用いられた場合には、第1ステ
ップコードと第2ステップコードの間に指定された段数
分のステップコードが生成されるが、これらのステップ
コードはAステージ33で吸収されるので、Fステージ34
以降の処理はまったく同じである。このような場合でも
Aステージでは多段間接モード処理中はラッチ24の値を
保持しておけるようになっているので、デスティネーシ
ョンオペランドがレジスタ上にあるか、メモリ上にある
かの情報は第2ステップコードに対応付けられて送られ
る。When the multi-stage indirect mode is used as the addressing mode of the destination operand, the step code for the designated number of stages is generated between the first step code and the second step code. As it is absorbed on stage 33, it is F stage 34
The subsequent processing is exactly the same. Even in such a case, since the value of the latch 24 can be held during the multi-stage indirect mode processing in the A stage, the information as to whether the destination operand is in the register or in the memory is the second information. It is sent in association with the step code.
また、ビットフィールド挿入を行なうBFINS命令のビッ
ト割り付けを第7図(b)に示す。BFINS命令は3つの
ステップコードに分解されて処理される。デスティネー
ション情報は第2ステップコードに存在するが、実際オ
ペランドへの書き込みは第3ステップコードで行なわれ
る。この場合、第2ステップコードのデスティネーショ
ンオペランドのアドレッシング情報を第3ステップコー
ドに対応させることにより上述と同様の処理が可能であ
る。The bit allocation of the BFINS instruction for inserting bit fields is shown in FIG. 7 (b). The BFINS instruction is decomposed into 3 step codes and processed. Although the destination information exists in the second step code, writing to the actual operand is performed in the third step code. In this case, the same processing as described above can be performed by associating the addressing information of the destination operand of the second step code with the third step code.
また、POP命令のビット割り付けを第7図(c)に示
す。POP命令は命令基本部が2バイトであり、見かけ上
は1オペランド命令であるが、実際は命令自体の機能と
してソースオペランドがスタックトップ(メモリ)であ
ることが指定されている。従ってこの命令はメモリ−メ
モリ転送が可能な命令である。本実施例のデータ処理装
置でメモリ−メモリ演算を行なう命令は2つのステップ
コードに分解してパイプラインを流すことを基本として
おり、POP命令もDステージ32で2つのステップコード
に分解される。第1ステップコードでデスティネーショ
ンオペランドに関する処理が行なわれ、オペランドへの
書き込みは第2ステップコードで行なわれる。即ち、PO
P命令はIフォーマットと同じであり全く同様の処理が
可能である。そのほか、他のメモリライトを伴う命令に
対しても上述の処理が適用できる。The bit allocation of the POP instruction is shown in FIG. 7 (c). The POP instruction has an instruction basic part of 2 bytes and is apparently a 1-operand instruction, but in reality, the source operand is specified to be the stack top (memory) as a function of the instruction itself. Therefore, this instruction is a memory-memory transferable instruction. An instruction for performing a memory-memory operation in the data processing apparatus of this embodiment is basically decomposed into two step codes and a pipeline is flowed, and a POP instruction is also decomposed into two step codes in the D stage 32. The processing for the destination operand is performed by the first step code, and the writing to the operand is performed by the second step code. That is, PO
The P instruction is the same as the I format, and the same processing can be performed. In addition, the above-described processing can be applied to other instructions involving memory write.
第4図(a),(b)に示すようにレジスタ−レジスタ
間演算を行なうRフォーマットの命令及びメモリ−レジ
スタ間の演算を行なうLフォーマットの命令ではデステ
ィネーションオペランドがレジスタに固定されている。
特に、Lフォーマットの命令では汎用アドレッシングモ
ードで指定されるオペランドはソースオペランドであ
る。従って、これらの命令ではデスティネーションオペ
ランドの情報がDコード41中のMEM-D信号6,PUSH-D信号
8、ADDM-D信号9に反映されていない。これらの命令処
理時には、MEMWCNT2が“0"になっており、必ずMEMW-R信
号14として“0"が出力される。このように処理すること
により、Rフォーマット,Lフォーマットの命令に関して
も、他のフォーマットの命令と同一のマイクロ命令によ
り処理を行なうことが可能となっている。例えば、Lフ
ォーマットのADD命令はGフォーマットやEフォーマッ
トのADD命令の第2ステップコードに対するマイクロ命
令と同じマイクロ命令で処理される。なお、上述のデス
ティネーションオペランドがレジスタに固定されている
処理の場合、マイクロプログラム制御方式のデータ処理
装置であれば、パイプライン処理を行なうものでなくて
も本発明を適用できる。As shown in FIGS. 4 (a) and 4 (b), the destination operand is fixed to the register in the R format instruction for performing the register-register operation and the L format instruction for performing the memory-register operation.
In particular, in the L format instruction, the operand specified in the general addressing mode is the source operand. Therefore, in these instructions, the information of the destination operand is not reflected in the MEM-D signal 6, PUSH-D signal 8 and ADDM-D signal 9 in the D code 41. During processing of these instructions, MEMWCNT2 is "0", and "0" is always output as the MEMW-R signal 14. By processing in this way, it is possible to process the R format and L format instructions by the same microinstruction as the instructions of other formats. For example, the L-format ADD instruction is processed by the same micro-instruction as the micro-instruction for the second step code of the G-format or E-format ADD instruction. In the case of the above-mentioned processing in which the destination operand is fixed to the register, the present invention can be applied to any data processing apparatus of the microprogram control system even if pipeline processing is not performed.
このように、本実施例によれば、マイクロ命令に、オペ
ランドがレジスタ上にあるかメモリ上にあるかを示すフ
ラグを参照してそのフラグの値によってEステージ35で
演算終了後ストア処理を行なうかどうかを指定する機能
があるので、デスティネーションオペランドがレジスタ
上にあるかメモリ上にあるかにかかわらず、同一のマイ
クロ命令で処理を行なうことができる。また、1つ前の
アドレッシング情報を次のステップコードに反映させる
機能を備えているので、Iフォーマットの命令のように
書き込みオペランドに関する処理の情報を送るステップ
コードと、実行ステージで書き込みが行なわれるステッ
プコードが異なる場合にもうまく対応できる。また、デ
スティネーションオペランドがレジスタのみに制限され
ている命令ではオペランドがレジスタ上にあることを指
示することにより、他のフォーマットの命令と同一のマ
イクロ命令により処理を行なうことができる。As described above, according to the present embodiment, the microinstruction is referred to the flag indicating whether the operand is in the register or the memory, and the store processing is performed after the operation is completed in the E stage 35 according to the value of the flag. Since it has a function to specify whether or not the destination operand is in a register or in memory, processing can be performed by the same microinstruction. Further, since it has a function of reflecting the previous addressing information in the next step code, the step code for transmitting the processing information regarding the write operand like the I format instruction and the step in which the writing is performed in the execution stage It can handle different codes well. Further, in the case of an instruction in which the destination operand is limited to the register, by instructing that the operand is on the register, the processing can be performed by the same micro instruction as the instruction of the other format.
以上のように、この発明によれば、デスティネーション
オペランドに関する処理の情報を送る処理単位が実行ス
テージで書き込みが行なわれる処理単位と異なる場合に
も書き込みオペランドがレジスタ上にあるかメモリ上に
あるかを実行ステージで書き込みが行なわれる処理単位
に対応させて指示するようにしたので、オペランドの位
置によらず同一のマイクロ命令でオペランドへの書き込
み処理を行なうことができる。また、デスティネーショ
ンオペランドがレジスタのみに限定されている命令を処
理する場合にもオペランドがレジスタ上にあることを指
示するようにしたので、他の命令と同一のマイクロ命令
で処理できる。従って、マイクロ命令の共有化を図るこ
とができ、マイクロROMの面積を小さくできるため、安
価なデータ処理装置が得られるという効果がある。As described above, according to the present invention, whether the write operand is on the register or in the memory even when the processing unit for sending the information on the processing regarding the destination operand is different from the processing unit for writing in the execution stage. Since the instruction is given in correspondence with the processing unit in which the writing is performed in the execution stage, the writing processing to the operand can be performed by the same microinstruction regardless of the position of the operand. Further, even when an instruction whose destination operand is limited to a register is processed, since the operand is instructed to be on the register, the same microinstruction as other instructions can be processed. Therefore, micro-instructions can be shared and the area of the micro ROM can be reduced, so that an inexpensive data processing device can be obtained.
第1図は本発明の一実施例によるデータ処理装置の全体
ブロック図、第2図は本発明の一実施例によるデータ処
理装置のパイプライン概要図、第3図は本発明の一実施
例によるデータ処理装置の命令フォーマットの概要図、
第4図は本発明の一実施例によるデータ処理装置の命令
フォーマットを示す図、第5図は本発明の一実施例によ
るデータ処理装置のアドレッシングモードのフォーマッ
トを示す図、第6図は本発明の一実施例によるデータ処
理装置の命令フォーマットの特徴を示す図、第7図はI
フォーマットのADD命令,BFINS命令,POP命令のビット割
り付けを示す図、第8図は本発明の一実施例によるデー
タ処理装置のメモリ書き込み制御ブロックの構成図、第
9図はIフォーマットのADD命令実行時のフローチャー
ト図、第10図は従来のデータ処理装置のパイプラインの
概要を示す図、第11図は従来のデータ処理装置の命令フ
ォーマットを示す図、第12図は従来のデータ処理装置に
おけるパイプライン処理の様子を示す図である。 図において、51は命令フェッチ部、52は命令デコード部
(指示手段)、53はPC計算部、54はオペランドアドレス
計算部、55はマイクロROM部(オペランド書き込み手
段)、56はデータ演算部、57は外部バスインターフェイ
ス部、58はアドレス出力回路、59はデータ入出力回路で
ある。1 is an overall block diagram of a data processing apparatus according to an embodiment of the present invention, FIG. 2 is a schematic diagram of a pipeline of a data processing apparatus according to an embodiment of the present invention, and FIG. 3 is according to an embodiment of the present invention. A schematic diagram of the instruction format of the data processing device,
4 is a diagram showing an instruction format of a data processing device according to an embodiment of the present invention, FIG. 5 is a diagram showing a format of an addressing mode of a data processing device according to an embodiment of the present invention, and FIG. 6 is a diagram showing the present invention. FIG. 7 is a diagram showing the characteristics of the instruction format of the data processing device according to one embodiment, and FIG.
FIG. 8 is a diagram showing bit allocation of ADD instruction, BFINS instruction, and POP instruction of format. FIG. 8 is a block diagram of a memory write control block of a data processor according to an embodiment of the present invention. FIG. 9 is execution of ADD instruction of I format. Fig. 10 is a flowchart showing the time, Fig. 10 is a diagram showing an outline of the pipeline of the conventional data processing device, Fig. 11 is a diagram showing the instruction format of the conventional data processing device, and Fig. 12 is a pipe in the conventional data processing device. It is a figure which shows the mode of line processing. In the figure, 51 is an instruction fetch section, 52 is an instruction decoding section (instructing means), 53 is a PC calculating section, 54 is an operand address calculating section, 55 is a micro ROM section (operand writing section), 56 is a data operation section, 57 Is an external bus interface unit, 58 is an address output circuit, and 59 is a data input / output circuit.
Claims (1)
ンドの指定が可能なオペランド命令を備え、 命令のデコードを行ない1つの命令を1つもしくは複数
個の、パイプライン中での処理単位に分解する第1のス
テージと、マイクロ命令の指示によって命令の実行を行
なう第2のステージを含む複数のステージにより命令を
パイプライン処理するデータ処理装置において、 前記汎用アドレッシングモードによって指定されるオペ
ランドがレジスタ上またはメモリ上のいずれにあるかを
指示する指示手段と、 前記マイクロ命令の一部のフィールドが特定ビットパタ
ーンであるとき、前記指示手段がオペランドがレジスタ
上にあることを指示している場合には、実行結果をレジ
スタに書き込み、前記指示手段がオペランドがメモリ上
にあることを指示している場合には、実行結果をメモリ
に書き込むオペランド書き込み手段とを備え、 前記第1のステージが、前記汎用アドレッシングモード
によって指定されるデスティネーションオペランドへの
書き込み処理を伴う命令をデコードして、前記デスティ
ネーションオペランドに関する処理情報を含む第1の前
記処理単位と前記第2のステージにおいて前記デスティ
ネーションオペランドの書き込みを行なう第2の前記処
理単位を含む複数の前記処理単位を生成するとき、 前記指示手段は前記デスティネーションオペランドがレ
ジスタ上にあるかメモリ上にあるかを前記第2の処理単
位に対応させて指示することを特徴とするデータ処理装
置。1. A first stage comprising an operand instruction whose operand can be designated by a general-purpose addressing mode, decoding the instruction, and decomposing one instruction into one or a plurality of processing units in a pipeline. And a data processing device for pipeline processing an instruction by a plurality of stages including a second stage for executing an instruction according to an instruction of a microinstruction, wherein an operand specified by the general addressing mode is on a register or a memory. And a part of the microinstruction has a specific bit pattern, and when the indicating means indicates that the operand is on a register, the execution result is registered. Write to, the instruction means that the operand is in the memory And an operand writing unit that writes the execution result to the memory when instructing, and the first stage decodes an instruction that involves a writing process to a destination operand specified by the general-purpose addressing mode. When generating a plurality of the processing units including a first processing unit including processing information regarding the destination operand and a second processing unit that writes the destination operand in the second stage, The data processing device, wherein the instructing means indicates whether the destination operand is on a register or on a memory in association with the second processing unit.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63243483A JPH0769804B2 (en) | 1988-09-28 | 1988-09-28 | Data processing device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63243483A JPH0769804B2 (en) | 1988-09-28 | 1988-09-28 | Data processing device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0290325A JPH0290325A (en) | 1990-03-29 |
| JPH0769804B2 true JPH0769804B2 (en) | 1995-07-31 |
Family
ID=17104562
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63243483A Expired - Lifetime JPH0769804B2 (en) | 1988-09-28 | 1988-09-28 | Data processing device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0769804B2 (en) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS57756A (en) * | 1980-06-04 | 1982-01-05 | Hitachi Ltd | Data processor |
-
1988
- 1988-09-28 JP JP63243483A patent/JPH0769804B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0290325A (en) | 1990-03-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5091853A (en) | Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction | |
| JP2616182B2 (en) | Data processing device | |
| US5465376A (en) | Microprocessor, coprocessor and data processing system using them | |
| US5321821A (en) | System for processing parameters in instructions of different format to execute the instructions using same microinstructions | |
| JP2507638B2 (en) | Data processing device | |
| JP2581236B2 (en) | Data processing device | |
| US4945511A (en) | Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions | |
| JPH081599B2 (en) | Data processing device | |
| JPH081602B2 (en) | Data processing device | |
| JPH07120284B2 (en) | Data processing device | |
| JP2668456B2 (en) | Bit search circuit and data processing device having the same | |
| US5269008A (en) | Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer | |
| JPH0769806B2 (en) | Data processing device | |
| US5212779A (en) | System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction | |
| JP2504235B2 (en) | Data processing device | |
| JP2522048B2 (en) | Microprocessor and data processing device using the same | |
| JPH0769804B2 (en) | Data processing device | |
| JP2532560B2 (en) | Data processing device for high-performance exception handling | |
| JPH0769801B2 (en) | Data processing device | |
| JPH0769805B2 (en) | Data processing device | |
| JPH0218621A (en) | Data processor | |
| JPH0769802B2 (en) | Data processing device | |
| JPH0769808B2 (en) | Data processing device | |
| JPH0769803B2 (en) | Data processing device | |
| JPH0573294A (en) | Micro Processor |