JPH1083301A - Parallel processor - Google Patents

Parallel processor

Info

Publication number
JPH1083301A
JPH1083301A JP29204097A JP29204097A JPH1083301A JP H1083301 A JPH1083301 A JP H1083301A JP 29204097 A JP29204097 A JP 29204097A JP 29204097 A JP29204097 A JP 29204097A JP H1083301 A JPH1083301 A JP H1083301A
Authority
JP
Japan
Prior art keywords
instruction
register
processing
instructions
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP29204097A
Other languages
Japanese (ja)
Other versions
JP2927281B2 (en
Inventor
Kenichi Kurosawa
憲一 黒沢
Shigeya Tanaka
成弥 田中
Yasuhiro Nakatsuka
康弘 中塚
Tadaaki Bando
忠秋 坂東
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP29204097A priority Critical patent/JP2927281B2/en
Publication of JPH1083301A publication Critical patent/JPH1083301A/en
Application granted granted Critical
Publication of JP2927281B2 publication Critical patent/JP2927281B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To give compatibility between parallel processing and sequential processing and improve processing capability by invalidating the contents of an instruction register by a decoder by decoding an instruction. SOLUTION: A control means which executes only one instruction following a delayed branch instruction is provided to make the majority of software compatible. Namely, when a 2nd decoder 107 decodes the delayed branch instruction, the following delay slot instruction is present in a 1st instruction register 104. In this case, an instruction held in a 2nd instruction register 105, however, is an instruction which should not be executed. For the purpose, the 2nd instruction decoder 107 invalidates the contents of the 2nd instruction register 105 through a control signal line when detecting the delayed branch instruction to execute only the 1st instruction following the delayed branch instruction. When a 1st instruction decoder 106 is decoding the delayed branch instruction, the following delay slot instruction is being decoded by the 2nd instruction decoder 107 and there is no problem even at the time of parallel execution.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明はミニコン,マイコン
等のCPUに係り、特に高速動作に好適な並列処理装置
および並列処理方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a CPU such as a minicomputer or a microcomputer, and more particularly to a parallel processing device and a parallel processing method suitable for high-speed operation.

【0002】[0002]

【従来の技術】従来より、計算機の高速化の為に、種々
の工夫が行われている。代表的な手法にパイプラインが
ある。パイプラインとは、1つの命令の処理を完全に終
えてから次の命令を始めるのではなくて、1つの命令を
複数ステージに分け、最初の命令が2番目のステージに
さしかかったところで、次の命令の最初のステージの処
理を始めるというようにバケツリレー式に処理する方法
である。このような方法については、富田眞治著「並列
計算機構成論」昭晃堂p.25〜68に詳しく論じられ
ている。n段パイプライン方式を用いれば、それぞれの
パイプラインステージにて処理されている命令は1つで
あるが、全体としてn個の命令を同時に処理することが
でき、パイプラインピッチごとに、1つの命令の処理を
終えることができる。
2. Description of the Related Art Conventionally, various measures have been taken to increase the speed of a computer. A typical approach is a pipeline. The pipeline is not to start the next instruction after completely processing one instruction, but to divide one instruction into multiple stages, and when the first instruction reaches the second stage, the next This is a method in which processing is performed in a bucket brigade manner, such as starting processing of the first stage of an instruction. For such a method, see Shinji Tomita, "Parallel Computer Configuration Theory", Shokodo, p. 25-68. When the n-stage pipeline method is used, one instruction is processed in each pipeline stage. However, n instructions can be simultaneously processed as a whole, and one instruction is provided for each pipeline pitch. Processing of the instruction can be completed.

【0003】さて、計算機の命令アーキテクチャが、そ
の処理方式,処理性能におよぼす影響が大であることは
周知である。命令アーキテクチャの観点から計算機を分
類すると、CISC(Complex Instruction Set Comput
er)とRISC(Reduced Instruction Set Computer)
とに分けられる。
It is well known that the instruction architecture of a computer has a great effect on its processing method and processing performance. Computers are classified from the viewpoint of instruction architecture.
er) and RISC (Reduced Instruction Set Computer)
And divided into

【0004】CISCでは複雑な命令をマイクロ命令を
使って処理する。これに対して、RISCでは、命令を
簡単なものに絞る代わりに、マイクロ命令を用いずに、
ハードワイヤド論理による制御で高速化を図っている。
以下、従来のCISC,RISCの両者について、ハー
ドウエア概要と、そのパイプライン動作について述べ
る。
In the CISC, a complicated instruction is processed by using a micro instruction. In RISC, on the other hand, instead of narrowing down instructions to simple ones, instead of using microinstructions,
High speed is achieved by control using hard-wired logic.
The hardware outline and the pipeline operation of both conventional CISC and RISC will be described below.

【0005】図2はCISC型計算機の一般的構成を説
明する図である。200はメモリインタフェース、20
1はプログラムカウンタ(PC)、202は命令キャッ
シュ、203は命令レジスタ、204は命令デコーダ、
205はアドレス計算制御回路、206はマイクロ命令
を格納しておくControl Storage(CS)、207はマイ
クロ命令カウンタ、208はマイクロ命令レジスタ、2
09はデコーダ、210はメモリとデータをやり取りする
レジスタMDR(Memory Data Register)、211はメ
モリ上のオペランドアドレスを示すレジスタMAR(Me
mory AddressRegister)、212はアドレス加算器、2
13はレジスタファイル、214はALU(Arithmetic
and Logic Unit)である。
FIG. 2 is a diagram for explaining a general configuration of a CISC type computer. 200 is a memory interface, 20
1 is a program counter (PC), 202 is an instruction cache, 203 is an instruction register, 204 is an instruction decoder,
205, an address calculation control circuit; 206, a control storage (CS) for storing microinstructions; 207, a microinstruction counter; 208, a microinstruction register;
09 is a decoder, 210 is a register MDR (Memory Data Register) for exchanging data with the memory, and 211 is a register MAR (Me) indicating an operand address on the memory.
mory AddressRegister), 212 is an address adder, 2
13 is a register file, 214 is an ALU (Arithmetic
and Logic Unit).

【0006】動作の概要を説明する。PC201によっ
て示された命令が、命令キャッシュより取り出され、信
号217を通して、命令レジスタ203にセットされ
る。命令デコーダ204は命令を信号218を通して受
け取り、マイクロ命令の先頭アドレスを信号220を通
して、マイクロ命令カウンタ207にセットする。ま
た、アドレス計算方法を信号219を通して、アドレス
計算制御回路205に指示する。アドレス計算制御回路
205は、アドレス計算に必要なレジスタの読み出し、
アドレス加算器212の制御等を行う。アドレス計算に
必要なレジスタは、レジスタファイル213よりバス2
26,227を通してアドレス加算器212に送出され
る。一方、マイクロ命令は1マシンサイクルごとにCS
206より読み出され、デコーダ209によりデコード
され、ALU214,レジスタファイル213を制御するのに使
われる。224はこれらの制御信号である。ALU214はレ
ジスタよりバス228,229を通して送られるデータ
を演算し、再びレジスタファイル213に格納する。メ
モリインタフェース200は、命令のフェッチ,オペラ
ンドのフェッチ等、メモリとのやり取りを行う回路であ
る。
An outline of the operation will be described. The instruction indicated by the PC 201 is fetched from the instruction cache and set in the instruction register 203 through a signal 217. The instruction decoder 204 receives the instruction via signal 218 and sets the start address of the microinstruction via signal 220 to the microinstruction counter 207. Further, an address calculation method is instructed to the address calculation control circuit 205 through a signal 219. The address calculation control circuit 205 reads a register necessary for address calculation,
It controls the address adder 212 and the like. Registers required for address calculation are stored in the bus 2 from the register file 213.
26 and 227 to the address adder 212. On the other hand, the microinstruction is CS every machine cycle.
The ALU 214 and the register file 213 are used to control the ALU 214 and the register file 213. Reference numeral 224 denotes these control signals. The ALU 214 calculates data sent from the registers through the buses 228 and 229 and stores the data in the register file 213 again. The memory interface 200 is a circuit that exchanges data with the memory, such as fetching instructions and fetching operands.

【0007】次に、図2で示した計算機のパイプライン
動作を図3,図4,図5を用いて説明する。パイプライ
ンは6段である。IF(Instruction Fetch)ステージで
は、命令キャッシュ202より命令が読み出され、命令
レジスタ203にセットされる。D(Decode)ステージ
では、命令デコーダ204により、命令のデコードが行
われる。A(Address)ステージではアドレス加算器21
2により、オペランドのアドレス計算が行われる。OF
(Operand Fetch)ステージでは、メモリインタフェース
200を通して、MAR211で指されたアドレスのオペラン
ドがフェッチされ、MDR210にセットされる。次に、EX
(Execution)ステージでは、レジスタファイル213、
及び、MDR210より、データが呼び出され、ALU214に送ら
れ、演算される。最後に、W(Write)ステージでは、演
算結果がレジスタファイル213の中の1つのレジスタ
にバス230を通して格納される。
Next, the pipeline operation of the computer shown in FIG. 2 will be described with reference to FIGS. 3, 4, and 5. The pipeline has six stages. In the IF (Instruction Fetch) stage, an instruction is read from the instruction cache 202 and set in the instruction register 203. In the D (Decode) stage, the instruction decoder 204 decodes the instruction. In the A (Address) stage, the address adder 21
2, the address of the operand is calculated. OF
In the (Operand Fetch) stage, the operand at the address pointed to by the MAR 211 is fetched through the memory interface 200 and set in the MDR 210. Next, EX
In the (Execution) stage, register file 213,
The data is called from the MDR 210, sent to the ALU 214, and calculated. Finally, in the W (Write) stage, the operation result is stored in one register in the register file 213 via the bus 230.

【0008】さて、図3は基本命令の1つである加算命
令ADDを連続して処理する様子を示したものである。
1マシンサイクルごとに1命令処理されており、ALU21
4,アドレス加算器212共に毎サイクル並列して動い
ている。
FIG. 3 shows a state in which an addition instruction ADD, which is one of the basic instructions, is continuously processed.
One instruction is processed for each machine cycle, and ALU21
4. Both address adders 212 operate in parallel every cycle.

【0009】図4は、条件つき分岐命令BRAccの処
理の様子を示したものである。TEST命令でフラグが生成
される。図4は条件成立時のフローを示したものであ
る。フラグ生成がEXステージで行われるため、ジャン
プ先命令のフェッチまでに3サイクルの待ちサイクルが
生じる。パイプライン段数を増やせば増やすほど、この
待ちサイクルは増え、性能向上のネックと成る。図5は
複雑な命令の実行フローを示したものである。命令1が
複雑な命令である。複雑な命令とはストリングコピーの
様に多数のメモリアクセスがある命令等で、通常EXス
テージを多数回延長することにより処理される。EXス
テージはマイクロ命令により制御される。マイクロ命令
は、1マシンサイクルに1回アクセスされる。即ち、複
雑な命令は、マイクロプログラムを複数回読み出すこと
により処理する。この時、EXステージには1つの命令
しか入らないので、次の命令(図5命令2)は待たされ
る。このようなときには、ALU214は常に動いているが、
アドレス加算器212には遊びが生じてしまう。
FIG. 4 shows the processing of a conditional branch instruction BRAcc. A flag is generated by the TEST instruction. FIG. 4 shows a flow when the condition is satisfied. Since the flag is generated in the EX stage, three wait cycles occur until the jump destination instruction is fetched. As the number of pipeline stages increases, the number of wait cycles increases, and this becomes a bottleneck in performance improvement. FIG. 5 shows an execution flow of a complicated instruction. Instruction 1 is a complicated instruction. A complicated instruction is an instruction having a large number of memory accesses, such as a string copy, and is usually processed by extending the EX stage many times. The EX stage is controlled by a micro instruction. Microinstructions are accessed once per machine cycle. That is, complicated instructions are processed by reading the microprogram a plurality of times. At this time, since only one instruction enters the EX stage, the next instruction (instruction 2 in FIG. 5) is awaited. In such a case, ALU214 is always moving,
Play occurs in the address adder 212.

【0010】次に、RISC型計算機について説明す
る。図6はRISC型計算機の一般的構成を説明する図
である。601はメモリインタフェース、602はプロ
グラムカウンタ、603は命令キャッシュ、604はシ
ーケンサ、605は命令レジスタ、606はデコーダ、
607はレジスタファイル、608はALU、609は
MDR、610はMARである。
Next, the RISC type computer will be described. FIG. 6 is a diagram illustrating a general configuration of a RISC-type computer. 601 is a memory interface, 602 is a program counter, 603 is an instruction cache, 604 is a sequencer, 605 is an instruction register, 606 is a decoder,
607 is a register file, 608 is an ALU, 609 is an MDR, and 610 is a MAR.

【0011】図7に基本命令の処理フローを示す。IF
(Instruction Fetch)ステージでは、プログラムカウン
タ602で指される命令が、命令キャッシュより読み出
され、命令レジスタ605にセットされる。また、シー
ケンサ604は命令信号615,ALU608よりのフラグ信号6
16より、プログラムカウンタ602を制御する。R
(Read)ステージでは、レジスタファイル607より、
命令で示されたレジスタが、バス618,619を通し
てALU608に転送される。また、E(Execution)ステージ
では、ALU608により、演算が行われる。さいごに、W(W
rite)ステージでは、演算された結果がレジスタファイ
ル607に、バス620を通して格納される。
FIG. 7 shows a processing flow of the basic instruction. IF
In the (Instruction Fetch) stage, the instruction indicated by the program counter 602 is read from the instruction cache and set in the instruction register 605. In addition, the sequencer 604 receives the flag signal 6 from the instruction signal 615 and ALU608.
16, the program counter 602 is controlled. R
In the (Read) stage, from the register file 607,
The register indicated by the instruction is transferred to ALU 608 via buses 618 and 619. In the E (Execution) stage, the ALU 608 performs calculations. Finally, W (W
In the (rite) stage, the calculated result is stored in the register file 607 via the bus 620.

【0012】RISC型計算機では、命令を基本的な命
令のみに限定している。演算はレジスタ−レジスタ間に
限られており、オペランドフェッチを伴う命令はロード
命令とストア命令のみである。複雑な命令は基本命令を
組合せることによって実現する。また、マイクロ命令は
使用されず、命令レジスタ605の内容が直接デコーダ
606でデコードされ、ALU608等を制御する。
In the RISC type computer, instructions are limited to only basic instructions. The operation is limited between the registers, and instructions involving operand fetch are only load instructions and store instructions. Complex instructions are realized by combining basic instructions. Further, the micro instruction is not used, and the contents of the instruction register 605 are directly decoded by the decoder 606 to control the ALU 608 and the like.

【0013】図7はレジスタ−レジスタ間演算の処理フ
ローを示している。パイプラインは命令が簡単なため4
段ですんでいる。
FIG. 7 shows a processing flow of a register-to-register operation. The pipeline has 4 simple instructions.
It is stepped.

【0014】図8は条件分岐時の処理フローを示してい
る。CISC型計算機に比して、パイプライン段数が少
ないため、待ちサイクルが少ない。図8の例では、待ち
サイクルは1サイクルのみである。しかもRISC型計
算機では、この1サイクルの待ちサイクルも有効に利用
するデイレイド分岐方式が採用されているのが普通であ
る。この方式は、図9に示すごとくBRAcc命令に引
き続くADD命令を待ちサイクルの間に実行する方式で
ある。このようにコンパイラが分岐命令の次に命令を埋
め込むことにより、ムダとなる待ちサイクルを全く無く
すことができる。
FIG. 8 shows a processing flow at the time of a conditional branch. Since the number of pipeline stages is smaller than that of the CISC type computer, the number of wait cycles is small. In the example of FIG. 8, there is only one waiting cycle. In addition, the RISC type computer generally adopts a delayed branching method which effectively utilizes the one waiting cycle. In this method, as shown in FIG. 9, an ADD instruction following a BRAcc instruction is executed during a wait cycle. By embedding the instruction next to the branch instruction by the compiler in this way, a wasteful wait cycle can be completely eliminated.

【0015】しかし、このように効率良く実行できるR
ISC型計算機も1マシンサイクルで1命令しか実行で
きないという欠点がある。
However, R which can be efficiently executed in this way
The ISC type computer also has a disadvantage that it can execute only one instruction in one machine cycle.

【0016】このため最近のRISC型計算機では、公
開特許公報昭63−49843 号「縮小命令セットコンピユー
タ」のごとく、レジスタファイルを共用する複数の演算
ユニットを設け、命令を簡単にしてパイプライン段数を
少なくし、かつ、1マシンサイクルに複数の命令を読み
出し、複数演算ユニットを制御する方式が考案されてい
る。
For this reason, a recent RISC-type computer is provided with a plurality of operation units sharing a register file, as disclosed in Japanese Patent Application Laid-Open No. 63-49843, "Reduced instruction set computer", to simplify instructions and reduce the number of pipeline stages. A method has been devised in which a plurality of instructions are read in one machine cycle to control a plurality of arithmetic units.

【0017】しかしながら、実際のRISC型計算機
は、単一の演算ユニットを用いて逐次的に命令を処理し
ているため、複数の演算ユニットを用いて複数の命令を
並列実行してしまうと同一の動作を保証できない。例え
ば、割込み処理ではm個の命令が同時に処理されるため
m個の命令単位に割込みを受け付けることになり、従来
の逐次処理の動作と異なってしまう。また、1命令単位
に命令を実行する機能を有するデバッガなどのソフトウ
エアは、使用できなくなるなどの欠点がある。
However, in an actual RISC-type computer, instructions are sequentially processed using a single operation unit. Therefore, when a plurality of instructions are executed in parallel using a plurality of operation units, the same Operation cannot be guaranteed. For example, in the interrupt processing, m instructions are processed simultaneously, so that an interrupt is accepted in units of m instructions, which is different from the operation of the conventional sequential processing. In addition, software such as a debugger having a function of executing instructions in units of one instruction has a disadvantage that it cannot be used.

【0018】一方、上記特殊なソフトウエアは使用でき
なくなるが、大部分の従来のソフトウエアを使用可能に
し、かつ高速に実行できる方式は、十分有用である。こ
のような方式で最も重要な点は図9を用いて述べたデイ
レイド分岐命令を含んだm個の命令を、どのように並列
実行すれば逐次実行した場合と同じ実行結果を得ること
ができるのかという問題を解決する点にある。
On the other hand, the above-mentioned special software can no longer be used, but a method which enables most conventional software to be used and can be executed at high speed is sufficiently useful. The most important point in such a method is how to execute m instructions including the delayed branch instruction described with reference to FIG. 9 in parallel and obtain the same execution result as in the case of sequential execution. The point is to solve the problem.

【0019】[0019]

【発明が解決しようとする課題】本発明の目的は、並列
処理と逐次処理との互換性を持たせて処理能力を高める
機能を両立させることにある。
SUMMARY OF THE INVENTION It is an object of the present invention to achieve both functions of increasing the processing capability by making the parallel processing compatible with the sequential processing.

【0020】本発明の他の目的は、並列動作において、
特殊な従来のソフトウエアは正常動作できなくても、大
部分の従来のソフトウエアを正常動作させ、かつ、高速
実行できることにある。
Another object of the present invention is to provide, in a parallel operation,
Even if special conventional software cannot operate normally, most conventional software can operate normally and can be executed at high speed.

【0021】[0021]

【課題を解決するための手段】上記目的を達成するため
本発明は、メモリから読み出すべき命令を指示するプロ
グラムカウンタと、プログラムカウンタによって指示さ
れた命令をそれぞれ格納するための複数の命令レジスタ
と、命令レジスタに格納された命令をデコードする複数
のデコーダと、演算を実行するための複数の演算ユニッ
トとを有し、少なくとも1つの上記デコーダは、命令の
デコードによって上記命令レジスタの内容を無効化する
ことを特徴とする。
In order to achieve the above object, the present invention comprises a program counter for indicating an instruction to be read from a memory, a plurality of instruction registers for respectively storing the instructions indicated by the program counter, A plurality of decoders for decoding an instruction stored in an instruction register, and a plurality of operation units for executing an operation, wherein at least one of the decoders invalidates the contents of the instruction register by decoding the instruction. It is characterized by the following.

【0022】[0022]

【発明の実施の形態】以下、本発明の一実施例を説明す
る。
DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described below.

【0023】図10は、本実施例で述べるプロセッサの
命令一覧である。基本命令は全てレジスタ間演算であ
る。分岐命令には、無条件分岐命令BRA,条件付分岐
命令BRAcc(ccは分岐条件を示す。),サブルー
チンの分岐命令CALL,サブルーチンからの戻り命令
RTNの4つがある。他に、ロード命令LOADと、ス
トア命令STORがある。説明の都合上、データ型は3
2ビット整数のみとしたがこれに限定されるものではな
い。またアドレスは32ビット(4バイト)毎にふられ
ているものとした。また、処理状態フラグ変更命令に
は、分岐先命令から複数命令の同時読み出しを開始し
て、複数の演算ユニットを活性化させると共に、処理状
態フラグをONにする並列化分岐命令PEXBと分岐先
命令から1個の命令の読み出しを開始して、第1演算ユ
ニットを活性化させると共に処理状態フラグをOFFに
する逐次化分岐命令SEXB命令である。簡単のため
に、上記の如く命令数を制限しているが、これは本発明
を制限するものではなく、1マシンサイクル処理できる
内容であれば、さらに命令を増やしても良い。図11に
命令フオーマットを示す。命令は全て32ビットの固定
長である。基本命令中のF,S1,S2,Dフィールド
は、それぞれ演算結果をフラグに反映するかどうかを指
示するビット、第1ソースレジスタを指示するフィール
ド,第2ソースレジスタを指示するフィールド,ディス
ティネーションレジスタを指示するフィールドである。
本実施例の構成を示したのが図1Aである。100は命
令キャッシュ、101は32ビットのプログラムカウン
タを生成するプログラムカウンタ演算器、102はプロ
グラムカウンタ値を保持するラッチ、103は処理状態
フラグPE(116)を保持するプロセッサステイタス
レジスタ、143はプログラムカウンタを“1”または
“2”だけ加算するセレクタ、104は32ビットの第
1命令レジスタ、105は32ビットの第2命令レジス
タ、106は第1命令デコーダ、107は第2命令デコ
ーダ、108は第1演算ユニット、109は第2演算ユ
ニット、110はレジスタファイル、111はシーケン
サ、112はメモリアドレスレジスタMAR、113は
メモリデータレジスタMDR、114はメモリライトレ
ジスタMWR、115はデータキャッシュである。
FIG. 10 is a list of instructions of the processor described in this embodiment. All basic instructions are register-to-register operations. There are four branch instructions: an unconditional branch instruction BRA, a conditional branch instruction BRAcc (cc indicates a branch condition), a subroutine branch instruction CALL, and a return instruction RTN from the subroutine. In addition, there are a load instruction LOAD and a store instruction STOR. Data type is 3 for convenience of explanation
Although only a 2-bit integer is used, the present invention is not limited to this. The address is assigned every 32 bits (4 bytes). Further, the processing state flag change instruction includes a parallelized branch instruction PEXB and a branch destination instruction which start simultaneous reading of a plurality of instructions from the branch destination instruction, activate a plurality of arithmetic units, and turn on the processing state flag. , A serialized branch instruction SEXB instruction that starts reading one instruction, activates the first arithmetic unit, and turns off the processing state flag. For simplicity, the number of instructions is limited as described above. However, this does not limit the present invention, and the number of instructions may be further increased as long as it can process one machine cycle. FIG. 11 shows the instruction format. All instructions have a fixed length of 32 bits. The F, S1, S2, and D fields in the basic instruction each include a bit for indicating whether or not the operation result is reflected in the flag, a field for indicating the first source register, a field for indicating the second source register, and a destination register. Field.
FIG. 1A shows the configuration of this embodiment. 100 is an instruction cache, 101 is a program counter calculator that generates a 32-bit program counter, 102 is a latch that holds a program counter value, 103 is a processor status register that holds a processing state flag PE (116), and 143 is a program counter. Is a selector for adding 1 to “2”, 104 is a 32-bit first instruction register, 105 is a 32-bit second instruction register, 106 is a first instruction decoder, 107 is a second instruction decoder, and 108 is a second instruction decoder. One operation unit, 109 is a second operation unit, 110 is a register file, 111 is a sequencer, 112 is a memory address register MAR, 113 is a memory data register MDR, 114 is a memory write register MWR, and 115 is a data cache.

【0024】本実施例では、1マシンサイクルの間に2
つの命令が並列して読み出され実行される。本実施例で
の基本パイプライン処理の動作を示したのが図12〜図
15である。パイプラインはIF(Instruction Fetc
h),R(Read),EX(Execution),W(Write)の4段で
ある。
In this embodiment, two cycles are performed during one machine cycle.
Two instructions are read and executed in parallel. 12 to 15 show the operation of the basic pipeline processing in this embodiment. The pipeline is IF (Instruction Fetc)
h), R (Read), EX (Execution), and W (Write).

【0025】再び図1Aを用いて、本実施例の動作につ
いて説明する。
The operation of this embodiment will be described with reference to FIG. 1A again.

【0026】IFステージでは、プロセッサステータス
レジスタ103の処理状態フラグPE116の値がON
の時、プログラムカウンタによって指される2つの命令
が読み出され、バス117,118を通して、それぞれ
第1命令レジスタ104と第2命令レジスタ105にセ
ットされる。PCが偶数のときには、PC番地の命令が
第1命令レジスタにPC+1番地の命令が第2命令レジ
スタに格納される。また、PCが奇数のときには、第1
命令レジスタにはNOP命令が、第2命令レジスタには
PC番地の命令がセットされる。つまり、シーケンサ1
11はプログラムカウンタを制御する回路である。第1
命令レジスタ,第2命令レジスタ共に分岐命令でないと
きには、プログラムカウンタには前プログラムカウンタ
値+2の値をラッチ102へセットする。分岐時には、
分岐アドレスを計算してプログラムカウンタにセットす
る。条件分岐時には、第1演算ユニット108よりのフ
ラグ情報120、及び、第2演算ユニット109よりの
フラグ情報119より、分岐の成否を判定し、分岐先ア
ドレス情報121と分岐制御情報122を用いてプログ
ラムカウンタ演算器101を制御する。
In the IF stage, the value of the processing state flag PE116 of the processor status register 103 is ON.
At this time, two instructions pointed to by the program counter are read out and set in the first instruction register 104 and the second instruction register 105 via the buses 117 and 118, respectively. When the PC is an even number, the instruction at the address PC is stored in the first instruction register and the instruction at the address PC + 1 is stored in the second instruction register. When the PC is an odd number, the first
The NOP instruction is set in the instruction register, and the instruction at the PC address is set in the second instruction register. That is, sequencer 1
Reference numeral 11 denotes a circuit for controlling the program counter. First
When neither the instruction register nor the second instruction register is a branch instruction, the value of the previous program counter value + 2 is set in the latch 102 in the program counter. At the time of branch,
Calculate the branch address and set it in the program counter. At the time of a conditional branch, the success or failure of the branch is determined from the flag information 120 from the first arithmetic unit 108 and the flag information 119 from the second arithmetic unit 109, and the program is executed using the branch destination address information 121 and the branch control information 122. The counter operation unit 101 is controlled.

【0027】次に基本命令処理時のRステージの動作に
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ、
また、第2命令レジスタ105の内容が第2命令デコー
ダ107でデコードされる。その結果、第1命令レジス
タ104の第1ソースレジスタフィールドS1で指され
るレジスタの内容がバス127を通して、第2ソースレ
ジスタフィールドS2で指されるレジスタの内容がバス
128を通して、第1演算ユニット108へ送出され
る。また、第2命令レジスタ105の第1ソースレジス
タフィールドS1で指されるレジスタの内容がバス12
9を通して、第2ソースレジスタフィールドS2で指さ
れるレジスタの内容がバス130を通して、第2演算ユ
ニット109へ送出される。次にEXステージの動作につ
いて説明する。
Next, the operation of the R stage during basic instruction processing will be described. In the R stage, the first instruction register 1
04 is decoded by the first instruction decoder 106,
The contents of the second instruction register 105 are decoded by the second instruction decoder 107. As a result, the contents of the register pointed to by the first source register field S1 of the first instruction register 104 are transferred via the bus 127, and the contents of the register pointed to by the second source register field S2 are transferred via the bus 128 to the first operation unit 108. Sent to The contents of the register pointed to by the first source register field S1 of the second instruction
9, the contents of the register pointed to by the second source register field S2 are sent to the second arithmetic unit 109 via the bus 130. Next, the operation of the EX stage will be described.

【0028】EXステージでは、第1命令レジスタ10
4のオペコードの内容に従って第1演算ユニット108
において、バス127,128により送られてきたデー
タ間の実行を行う。並列して、第2命令レジスタ105
のオペコードの内容に従って第2演算ユニット109に
おいて、バス129,130により送られてきたデータ
間の演算を行う。
In the EX stage, the first instruction register 10
4 according to the contents of the operation code of the first operation unit 108
, Execution between the data sent by the buses 127 and 128 is performed. In parallel, the second instruction register 105
In the second operation unit 109, the operation between the data transmitted by the buses 129 and 130 is performed according to the content of the operation code.

【0029】最後にWステージの動作を説明する。Wス
テージでは第1演算ユニット108の演算結果がバス1
31を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。ま
た、第2演算ユニット109の演算結果がバス132を
通して、第2命令レジスタのディスティネーションフィ
ールドDで指されるレジスタに格納される。
Finally, the operation of the W stage will be described. In the W stage, the operation result of the first operation unit 108 is
Through 31, it is stored in the register pointed to by the destination field D of the first instruction register. The operation result of the second operation unit 109 is stored in the register pointed to by the destination field D of the second instruction register via the bus 132.

【0030】図1Bは、図1Aの処理状態フラグ変更手
段を加えたものである。即ち、144,145はそれぞれ第
1演算ユニット、第2演算ユニットで、PEXBおよび
SEXB命令が実行されたときに、フラグ値のデータを処理
状態フラッグPE116へ伝えるデータ線である。14
6は処理状態フラグPE116へデータを書き込む時に
必要なセレクタである。
FIG. 1B is obtained by adding the processing state flag changing means of FIG. 1A. That is, 144 and 145 are a first operation unit and a second operation unit, respectively, and PEXB and
This data line transmits flag value data to the processing state flag PE 116 when the SEXB instruction is executed. 14
Reference numeral 6 denotes a selector required when writing data to the processing state flag PE116.

【0031】図12は、基本命令を連続して処理するフ
ローを示したものである。1マシンサイクルに2命令ず
つ処理される。ここで図12で2命令ずつ処理される内
の上の方が第1演算ユニットの処理を、下の方が第2演
算ユニットの処理を示している。また、この例では、第
1演算ユニットと第2演算ユニットは常に並列して動作
している。
FIG. 12 shows a flow of processing basic instructions continuously. Two instructions are processed in one machine cycle. Here, the upper one of the two instructions processed in FIG. 12 shows the processing of the first arithmetic unit, and the lower one shows the processing of the second arithmetic unit. In this example, the first operation unit and the second operation unit always operate in parallel.

【0032】図13は第1命令としてロード命令、また
は、ストア命令、第2命令として基本命令を連続して処
理するフローを示したものである。ロード命令実行時に
は、Rステージで、第1命令レジスタのS2フィールド
で指されるレジスタの内容が、バス128を通して、MA
R112に転送される。次に、EXステージで、データキャ
ッシュからバス133を通して、オペランドをフェッチ
する。最後に、Wステージでフェッチされたオペランド
が、バス134を通して、第1命令レジスタのディステ
ィネーションフィールドDで指されるレジスタに格納さ
れる。EXステージで1マシンサイクルでオペランドを
フェッチすることは、図1Aの如く高速データキャッシ
ュ115を備えていれば、可能である。特に、図1Aに
示す、計算機全体が半導体基盤上に集積され、命令キャ
ッシュ,データキャッシュ共にオンチップ化されている
場合などは容易である。勿論、キャッシュがミスヒット
した場合には、1マシンサイクルでオペランドフェッチ
を終了することはできない。このような時は、システム
クロックを止めて、EXステージを延長すれば良い。こ
れは、従来の計算機でも行われていることである。
FIG. 13 shows a flow for processing a load instruction or a store instruction as the first instruction and a basic instruction as the second instruction in succession. When the load instruction is executed, the contents of the register pointed to by the S2 field of the first instruction register are transferred to the MA through the bus 128 at the R stage.
Forwarded to R112. Next, in the EX stage, the operand is fetched from the data cache through the bus 133. Finally, the operand fetched at the W stage is stored in the register pointed to by the destination field D of the first instruction register via the bus 134. Fetching an operand in one machine cycle in the EX stage is possible if the high-speed data cache 115 is provided as shown in FIG. 1A. In particular, it is easy when the entire computer is integrated on a semiconductor substrate and both the instruction cache and the data cache are on-chip as shown in FIG. 1A. Of course, if the cache misses, the operand fetch cannot be completed in one machine cycle. In such a case, the EX stage may be extended by stopping the system clock. This is what is done with conventional computers.

【0033】次にストア命令実行時には、Rステージに
おいて、第1命令レジスタの第1ソースレジスタフィー
ルドS1で指されるレジスタの内容がデータとして、バ
ス135を通してMWR114に転送される。また同時に、第
1命令レジスタの第2ソースレジスタフィールドS2で
指されるレジスタの内容がアドレスとして、バス128
を通して、MAR112に転送される。次にEXステージで、
MAR112で指される番地に、MWR114内のデータが書き込ま
れる。図13に示すように、ロード命令,ストア命令、
その命令、例えば図中のADD命令と共に1マシンサイ
クルに2命令ずつ処理することができる。
Next, when the store instruction is executed, the contents of the register pointed to by the first source register field S1 of the first instruction register are transferred as data to the MWR 114 through the bus 135 in the R stage. At the same time, the contents of the register pointed to by the second source register field S2 of the first instruction register are used as an address as the bus 128
Through to the MAR 112. Next, at the EX stage,
The data in the MWR 114 is written to the address pointed to by the MAR 112. As shown in FIG. 13, a load instruction, a store instruction,
Two instructions can be processed in one machine cycle together with the instruction, for example, the ADD instruction in the figure.

【0034】図14Bは、第2命令として無条件ジャン
プBRA命令実行時の処理フローを示したものである。
なお、この図は後述する他の実施例の説明にも使用す
る。
FIG. 14B shows a processing flow when the unconditional jump BRA instruction is executed as the second instruction.
This drawing is also used for the description of another embodiment described later.

【0035】BRA命令が読み出されると、Rステージ
においてシーケンサ111はディスプレースメントフィ
ールドdとプログラムカウンタとの加算を行い、プログ
ラムカウンタのラッチ102にセットする。この間にB
RA命令の次の番地の命令と、その次の番地の命令(図
14B命令1と命令2)が読み出される。その次のサイ
クルに、ジャンプ先の2命令が読み出される。本実施例
では、命令1,命令2とも実行可能なハードウエアとし
ている。即ち、ジャンプ命令処理時も、待ちサイクルが
発生しない。この手法は、ディレイド分岐と呼ばれるも
ので、RISC型の従来計算機でも行われているもので
ある。ただし、従来のRISC型計算機では、ジャンプ
命令のアドレス計算中に1命令しか実行できなかった
が、本実施例では、ジャンプ命令のアドレス計算中に
も、2命令同時処理されるため、より処理能力を高める
ことができる。CALL命令,RTN命令の処理フロー
も同様である。コンパイラにより、分岐命令のアドレス
計算中にできる限り有効な命令を実行できるようにコー
ド生成するが、何もすることが無い時には図14B命令
1,2をNOP命令としておく。このときには、実質的
には1マシンサイクルの待ちが生ずる。しかしながら、
パイプライン段数が浅いので、従来例で述べられたCI
SC型の計算機に比して、分岐時のオーバヘッドを小さ
くできるという利点がある。
When the BRA instruction is read, the sequencer 111 adds the displacement field d and the program counter in the R stage, and sets the result in the latch 102 of the program counter. During this time B
The instruction at the address next to the RA instruction and the instruction at the next address (instruction 1 and instruction 2 in FIG. 14B) are read. In the next cycle, the two instructions at the jump destination are read. In the present embodiment, hardware capable of executing both the instruction 1 and the instruction 2 is used. That is, a wait cycle does not occur during the jump instruction processing. This method is called a delayed branch, and is also used in a conventional RISC computer. However, in the conventional RISC type computer, only one instruction can be executed during the calculation of the address of the jump instruction. However, in the present embodiment, two instructions are simultaneously processed during the calculation of the address of the jump instruction. Can be increased. The same applies to the processing flow of the CALL instruction and the RTN instruction. The compiler generates a code so that a valid instruction can be executed as much as possible during the calculation of the address of the branch instruction. However, when there is no operation, the instructions 1 and 2 in FIG. 14B are set as NOP instructions. At this time, a wait of substantially one machine cycle occurs. However,
Since the number of pipeline stages is shallow, the CI described in the conventional example
There is an advantage that the overhead at the time of branching can be reduced as compared with the SC type computer.

【0036】図15は第2命令として条件分岐命令BR
Acc命令実行時の処理フローを示したものである。A
DD,Fと示した命令で、フラグのセットが行われ、そ
の結果に従い分岐の成否が決められる。このときも、図
14Bを用いて説明した無条件分岐命令処理時と同時に
BRAcc命令の置かれている番地の次の命令、図15
命令1と、その次の命令、図15命令2が読み出されて
処理され、この2命令の処理フロー中Wステージにおい
ては、BRAcc命令の分岐条件の成否にかかわらず演
算結果のレジスタファイルへの書き込みが行われる。
FIG. 15 shows a conditional branch instruction BR as a second instruction.
It shows a processing flow when an Acc instruction is executed. A
Flags are set by instructions DD and F, and the success or failure of the branch is determined according to the result. Also at this time, the instruction following the address where the BRAcc instruction is located, at the same time as the processing of the unconditional branch instruction described with reference to FIG.
Instruction 1 and the next instruction, Instruction 2 in FIG. 15, are read and processed. In the W stage during the processing flow of these two instructions, the operation result is stored in the register file regardless of whether the branch condition of the BRAcc instruction is satisfied or not. Writing is performed.

【0037】図16は、第1命令として無条件分岐命令
BRA命令実行時の処理フローを示したものである。B
RA命令と命令1が読み出されると、Rステージにおい
てシーケンサ111はディスプレースメントフィールド
dとプログラムカウンタとの加算を行い、プログラムカ
ウンタのラッチ102にセットするとともに命令1のオ
ペランドのリード並列処理する。この間に命令1の次の
番地の命令2とその次の番地の命令3が読み出される。
本実施例では、分岐命令と命令1を並列実行し、さらに
命令2と命令3とも実行可能なハードウエアとしてい
る。即ち、分岐命令を含む2命令を並列実行するととも
に、その次の2命令をも実行可能としている。通常のデ
ィレイド分岐命令では、分岐命令直後の1命令のみを並
列実行するが、本実施例の分岐命令は、図14Bの場合
には分岐命令直後の2命令を実行し、一方、図16の場
合には、分岐命令直後の3命令を実行しており、通常の
ディレイド分岐とは異なる。すなわち、ディレイド分岐
命令を含むm命令は並列実行され、しかも引き続くm命
令が分岐時間を利用して実行される点が異なる。これに
より、高度な並列処理が実現可能である。一方、図17
は、第1命令として条件付分岐命令BRAcc命令実行
時の処理フローを示したものである。図16の処理フロ
ーと同様に、BRAcc命令と命令1は並列実行され、
ジャンプ先命令1および2へ分岐する時間を利用して命
令2と命令3は、条件の成否にかかわらず実行される。
これにより高度な並列実行が可能となり、図15と図1
7からわかるように分岐命令直後の命令はそれぞれ2命
令と3命令が実行される。このように分岐命令が第1命
令として存在するかまたは第2命令として存在するか、
その場所によって分岐時に実行される命令数が異なる。
FIG. 16 shows a processing flow when the unconditional branch instruction BRA instruction is executed as the first instruction. B
When the RA instruction and the instruction 1 are read, in the R stage, the sequencer 111 performs addition of the displacement field d and the program counter, sets the result in the latch 102 of the program counter, and performs read parallel processing of the operand of the instruction 1. During this time, the instruction 2 at the next address of the instruction 1 and the instruction 3 at the next address are read out.
In this embodiment, the hardware is configured to execute the branch instruction and the instruction 1 in parallel, and to execute both the instruction 2 and the instruction 3. That is, two instructions including a branch instruction are executed in parallel, and the next two instructions can be executed. In a normal delayed branch instruction, only one instruction immediately after the branch instruction is executed in parallel, but in the case of FIG. 14B, the branch instruction executes two instructions immediately after the branch instruction, while in the case of FIG. Executes three instructions immediately after the branch instruction, which is different from a normal delayed branch. That is, the difference is that m instructions including a delayed branch instruction are executed in parallel, and the subsequent m instructions are executed using the branch time. Thereby, advanced parallel processing can be realized. On the other hand, FIG.
Shows a processing flow when the conditional branch instruction BRAcc instruction is executed as the first instruction. As in the processing flow of FIG. 16, the BRAcc instruction and instruction 1 are executed in parallel,
Instructions 2 and 3 are executed using the time to branch to jump destination instructions 1 and 2 regardless of whether the condition is satisfied.
This enables high-level parallel execution.
As can be seen from FIG. 7, two instructions and three instructions are executed immediately after the branch instruction. Thus, whether the branch instruction exists as the first instruction or the second instruction,
The number of instructions executed at the time of branching differs depending on the location.

【0038】以上、図12,図13,図14B,図1
5,図16,図17を用いて説明したように、プロセッ
サステータスレジスタ103の処理状態フラグPE11
6の値がONのときには、1マシンサイクルに2命令ず
つ処理するので、その処理能力が最大2倍に向上される
という利点がある。
As described above, FIG. 12, FIG. 13, FIG.
5, the processing status flag PE11 of the processor status register 103 as described with reference to FIGS.
When the value of 6 is ON, since two instructions are processed in one machine cycle, there is an advantage that the processing capacity is doubled at the maximum.

【0039】一方、プロセッサステータスレジスタ10
3の処理状態フラグPE116の値がOFFのときに
は、制御信号136を介してプログラムカウンタは+1
だけ増加するように制御すると共に、命令キャッシュ1
00は、32ビット長の1個の命令をバス117を介し
て第1命令レジスタ104へ読み出すように、制御信号
137によって制御される。また、制御信号136は、
第1命令デコーダ106と第2命令デコーダ107へ入
っており、この結果第1命令デコーダは第1命令レジス
タ104の命令を第1演算ユニット108で処理するよ
うに動作すると共に、第2命令デコーダは第2演算ユニ
ットを止めるように動作する。この結果、第1演算ユニ
ットによる逐次処理を行うことができる。
On the other hand, the processor status register 10
When the value of the processing state flag PE116 is OFF, the program counter is incremented by +1 via the control signal 136.
Instruction cache 1
00 is controlled by the control signal 137 so that one instruction having a 32-bit length is read out to the first instruction register 104 via the bus 117. The control signal 136 is
The first instruction decoder 106 and the second instruction decoder 107 are provided so that the first instruction decoder operates to process the instruction in the first instruction register 104 by the first arithmetic unit 108 and the second instruction decoder It operates to stop the second arithmetic unit. As a result, sequential processing by the first arithmetic unit can be performed.

【0040】次に、図1Bを用いて、プロセッサステー
タスレジスタ103の処理状態フラグPE116の値が
OFFの時のパイプライン動作について詳しく説明す
る。
Next, the pipeline operation when the value of the processing state flag PE116 of the processor status register 103 is OFF will be described in detail with reference to FIG. 1B.

【0041】IFステージでは、プログラムカウンタに
よって指される1つの命令が読み出され、バス117を
通して、第1命令レジスタ104にセットされる。な
お、バス118は、処理状態フラグPE116の値がO
FFの時、有効な命令は出力されない。つまり、シーケ
ンサ111はプログラムカウンタを制御する回路であ
る。第1命令レジスタが分岐命令でないときには、プロ
グラムカウンタには前プログラムカウンタ値+1の値を
ラッチ102へセットする。分岐時には、分岐アドレス
を計算してプログラムカウンタにセットする。条件分岐
時には、第1演算ユニット108よりのフラグ情報12
0より、分岐の成否を判定し、分岐先アドレス情報12
1と分岐制御情報122を用いてプログラムカウンタ演
算器101を制御する。
In the IF stage, one instruction pointed to by the program counter is read out and set in the first instruction register 104 via the bus 117. It should be noted that the bus 118 has the processing status flag
At the time of FF, no valid instruction is output. That is, the sequencer 111 is a circuit that controls the program counter. When the first instruction register is not a branch instruction, the value of the previous program counter value + 1 is set to the latch 102 in the program counter. At the time of branching, the branch address is calculated and set in the program counter. At the time of the conditional branch, the flag information 12 from the first arithmetic unit 108
From 0, the branch success / failure is determined, and the branch destination address information 12 is determined.
The program counter arithmetic unit 101 is controlled by using 1 and the branch control information 122.

【0042】次に基本命令処理時のRステージの動作に
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ
る。その結果、第1命令レジスタ104の第1ソースレ
ジスタフィールドS1で指されるレジスタの内容がバス
127を通して、第2ソースレジスタフィールドS2で
指されるレジスタの内容がバス128を通して、第1演
算ユニット108へ送出される。
Next, the operation of the R stage during basic instruction processing will be described. In the R stage, the first instruction register 1
04 is decoded by the first instruction decoder 106. As a result, the contents of the register pointed to by the first source register field S1 of the first instruction register 104 are transferred via the bus 127, and the contents of the register pointed to by the second source register field S2 are transferred via the bus 128 to the first operation unit 108. Sent to

【0043】次にEXステージの動作について説明す
る。
Next, the operation of the EX stage will be described.

【0044】EXステージでは、第1命令レジスタ10
4のオペコードの内容に従って第1演算ユニット108
において、バス127,128により送られてきたデー
タ間の演算を行う。
In the EX stage, the first instruction register 10
4 according to the contents of the operation code of the first operation unit 108
, An operation is performed between the data transmitted by the buses 127 and 128.

【0045】最後にWステージの動作を説明する。Wス
テージでは第1演算ユニット108の演算結果がバス1
31を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。
Finally, the operation of the W stage will be described. In the W stage, the operation result of the first operation unit 108 is
Through 31, it is stored in the register pointed to by the destination field D of the first instruction register.

【0046】図18は、基本命令を連続して処理するフ
ローを示したものである。1マシンサイクルに2命令ず
つ処理される能力はあるが、1命令ずつ処理される。
FIG. 18 shows a flow of processing basic instructions continuously. Although it has the ability to process two instructions in one machine cycle, it processes one instruction at a time.

【0047】図19はロード命令,ストア命令を連続し
て処理するフローを示したものである。ロード命令実行
時には、Rステージで、第1命令レジスタのS2フィー
ルドで指されるレジスタの内容が、バス128を通し
て、MAR112へ転送される。次に、EXステージで、デー
タキャッシュ115を通して、オペランドをMDR113にフ
ェッチする。最後に、Wステージでフェッチされたオペ
ランドが、バス134を通して、第1命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。
FIG. 19 shows a flow for processing a load instruction and a store instruction continuously. When the load instruction is executed, the contents of the register pointed to by the S2 field of the first instruction register are transferred to the MAR 112 via the bus 128 in the R stage. Next, in the EX stage, the operand is fetched to the MDR 113 through the data cache 115. Finally, the operand fetched at the W stage is stored in the register pointed to by the destination field D of the first instruction register via the bus 134.

【0048】次にストア命令実行時には、Rステージに
おいて、第1命令レジスタの第1ソースレジスタフィー
ルドS1で指されるレジスタの内容がデータとして、バ
ス135を通してMWR114に転送される。また同時に、第
1命令レジスタの第2ソースレジスタフィールドS2で
指されるレジスタの内容がアドレスとして、バス128
と131を通してMAR112に転送される。次にEXステー
ジで、MAR112で指される番地に、MWR114内のデータが書
き込まれる。図19に示すように、ロード命令,ストア
命令が連続しても、1マシンサイクルに2命令ずつ処理
する能力はあるが、1命令ずつ処理することができる。
Next, when the store instruction is executed, in the R stage, the contents of the register pointed to by the first source register field S1 of the first instruction register are transferred as data to the MWR 114 through the bus 135. At the same time, the contents of the register pointed to by the second source register field S2 of the first instruction register are used as an address as the bus 128
Are transferred to the MAR 112 through the steps 131 and 131. Next, in the EX stage, the data in the MWR 114 is written to the address pointed to by the MAR 112. As shown in FIG. 19, even if a load instruction and a store instruction are successive, there is a capability of processing two instructions in one machine cycle, but one instruction can be processed.

【0049】図20は、無条件ジャンプBRA命令実行
時の処理フローを示したものである。BRA命令が読み
出されると、Rステージにおいてシーケンサ111はデ
ィスプレースメントフィールドdとプログラムカウンタ
との加算を行い、プログラムカウンタのラッチ102に
セットする。この間にBRA命令の次の番地の命令が読
み出される。その次のサイクルに、ジャンプ先の命令が
読み出される。本実施例では、命令1を実行可能なハー
ドウエアとしている。即ち、ジャンプ命令処理時も、待
ちサイクルが発生しない。
FIG. 20 shows a processing flow when the unconditional jump BRA instruction is executed. When the BRA instruction is read, in the R stage, the sequencer 111 adds the displacement field d and the program counter, and sets the result in the latch 102 of the program counter. During this time, the instruction at the address next to the BRA instruction is read. In the next cycle, the instruction at the jump destination is read. In this embodiment, hardware capable of executing the instruction 1 is used. That is, a wait cycle does not occur during the jump instruction processing.

【0050】プロセッサステータスレジスタ103の処
理状態フラグPE116の値がOFFのときについて述べ
てきたが、ONのときに比べてみると、本実施例ではデ
ィレイド分岐中に行われる命令2,命令3は実行できな
くなったが、従来のRISC型計算機と同じくジャンプ
命令のアドレス計算中に1命令実行できるようになっ
た。このように、本実施例の処理状態フラグPE116
の値がOFFのとき、従来と互換を保つ効果がある。C
ALL命令,RTN命令の処理フローも同様である。コ
ンパイラにより、分岐命令のアドレス計算中にできる限
り有効な命令を実行できるようにコード生成するが、何
もすることが無い時には図20命令1をNOP命令とし
ておく。このときには、実質的には1マシンサイクルの
待ちが生ずる。
Although the case where the value of the processing state flag PE116 of the processor status register 103 is OFF has been described, in comparison with the case where the value of the processing state flag PE116 is ON, in this embodiment, the instructions 2 and 3 performed during the delayed branch are executed. Although it is no longer possible, one instruction can be executed during the address calculation of the jump instruction as in the conventional RISC type computer. As described above, the processing state flag PE116 of this embodiment is used.
When the value is OFF, there is an effect of maintaining compatibility with the related art. C
The same applies to the processing flow of the ALL instruction and the RTN instruction. The compiler generates a code so as to execute a valid instruction as much as possible during the calculation of the address of the branch instruction. However, when there is nothing to do, instruction 1 in FIG. 20 is set as a NOP instruction. At this time, a wait of substantially one machine cycle occurs.

【0051】図21は条件分岐命令BRAccの処理フ
ローを示したものである。ADD,Fと示した命令で、
フラグのセットが行われ、その結果に従い分岐の成否が
決められる。このときも、図20を用いて説明した無条
件分岐命令と同様にBRAcc 命令の置かれている番地の次
の命令、図21命令1が読み出されて処理され、この命
令の処理フロー中Wステージにおいて、BRAcc命令
の分岐条件の成否にかかわらず演算結果のレジスタファ
イルへの書き込みが行われる。
FIG. 21 shows a processing flow of the conditional branch instruction BRAcc. With the instructions shown as ADD and F,
The flag is set, and the success or failure of the branch is determined according to the result. At this time, similarly to the unconditional branch instruction described with reference to FIG. 20, the instruction next to the address where the BRAcc instruction is located, that is, instruction 1 in FIG. 21 is read and processed. In the stage, the operation result is written to the register file regardless of whether the branch condition of the BRAcc instruction is satisfied or not.

【0052】以上、図18〜図21を用いて説明したよ
うに、プロセッサステータスレジスタ103の処理状態
フラグPE116の値がOFFのときには、1命令ずつ
処理させ、従来のソフトウエアと互換性を保つという利
点がある。
As described above with reference to FIGS. 18 to 21, when the value of the processing state flag PE116 of the processor status register 103 is OFF, instructions are processed one instruction at a time to maintain compatibility with conventional software. There are advantages.

【0053】以上、高度な並列処理手段と従来のソフト
ウエア互換を保つ逐次処理手段を有し、処理状態フラグ
に基づく処理手段切換え方式の実施例を示した。本実施
例の逐次処理手段は、1命令ずつ読み出して第1演算ユ
ニットで実行する方式であったが、図1Bからわかるよ
うに、2つの命令レジスタ104,105が存在するた
め、プログラムカウンタは+2ずつ増加させるように制
御して、第1命令レジスタ104、及び、第2命令レジ
スタ105へ2個の命令を読み出して保存し、第1命令
レジスタ104の命令を第1演算ユニット108で実行
し、続いて、第2命令レジスタ105の命令を第2演算
ユニット109で実行する手段を設けることによっても
実現できる。すなわち、命令キャッシュは、分岐命令を
除き、2回に1回の割合で動作すれば良い。
As described above, the embodiment of the processing means switching method based on the processing state flag having the advanced parallel processing means and the sequential processing means for maintaining the conventional software compatibility has been described. The sequential processing means of the present embodiment reads out one instruction at a time and executes it in the first arithmetic unit. However, as can be seen from FIG. 1B, since the two instruction registers 104 and 105 exist, the program counter is +2. The two instructions are read and stored in the first instruction register 104 and the second instruction register 105, and the instructions in the first instruction register 104 are executed by the first arithmetic unit 108, Subsequently, the present invention can also be realized by providing means for executing the instruction of the second instruction register 105 by the second arithmetic unit 109. That is, the instruction cache only needs to operate once every two times except for the branch instruction.

【0054】そこで再び、図1Bを用いてプロセッサス
テータスレジスタ103の処理状態フラグPE116の
値がOFFの時の“m命令を読み出して逐次処理する手
段”の動作を説明する。
The operation of the "means for reading out and sequentially processing the m instructions" when the value of the processing state flag PE116 of the processor status register 103 is OFF will be described again with reference to FIG. 1B.

【0055】IFステージでは、プログラムカウンタに
よって指される2つの命令が読み出され、バス117,
118を通して、それぞれ第1命令レジスタ104と第
2命令レジスタ105にセットされる。PCが偶数のと
きには、PC番地の命令が第1命令レジスタに、PC+
1番地の命令が第2命令レジスタに格納される。また、
PCが奇数のときには、第1命令レジスタにはNOP命
令が、第2命令レジスタにはPC番地の命令がセットさ
れる。つまり、シーケンサ111はプログラムカウンタ
を制御する回路である。第1命令レジスタ,第2命令レ
ジスタ共に分岐命令でないときには、プログラムカウン
タには前プログラムカウンタ値+2の値をラッチ102
へセットする。分岐時には、分岐アドレスを計算してプ
ログラムカウンタにセットする。条件分岐時には、第1
演算ユニット108よりのフラグ情報120、及び、第
2演算ユニット109よりのフラグ情報119より、分
岐の成否を判定し、分岐先アドレス情報121と分岐制
御情報122を用いてプログラムカウンタ演算器101
を制御する。なお、後述するように第1命令レジスタと
第2命令レジスタに保存されたそれぞれの命令は、後の
ステージで逐次的に処理されるため、各マシンサイクル
ごとに命令キャッシュを動作させるのではなく、2マシ
ンサイクル1度動作させれば良い。
In the IF stage, two instructions pointed to by the program counter are read, and the bus 117,
Through 118, they are set in the first instruction register 104 and the second instruction register 105, respectively. When the PC is an even number, the instruction at the PC address is stored in the first instruction register by the PC +
The instruction at address 1 is stored in the second instruction register. Also,
When the PC is an odd number, the NOP instruction is set in the first instruction register, and the instruction at the PC address is set in the second instruction register. That is, the sequencer 111 is a circuit that controls the program counter. When neither the first instruction register nor the second instruction register is a branch instruction, the value of the previous program counter value + 2 is latched in the program counter.
Set to At the time of branching, the branch address is calculated and set in the program counter. At the time of conditional branch, the first
Based on the flag information 120 from the arithmetic unit 108 and the flag information 119 from the second arithmetic unit 109, the success or failure of the branch is determined, and the program counter arithmetic unit 101 is determined using the branch destination address information 121 and the branch control information 122.
Control. As will be described later, the instructions stored in the first instruction register and the second instruction register are sequentially processed in a later stage, so that the instruction cache is not operated for each machine cycle. The operation may be performed once in two machine cycles.

【0056】次に基本命令処理時のRステージの動作に
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1命令デコーダ106でデコードされ、
続いて次のステージで、第2命令レジスタ105の内容
が第2命令デコーダ107でデコードされる。その結
果、第1命令レジスタ104の第1ソースレジスタフィ
ールドS1で指されるレジスタの内容がバス127を通
して、第2ソースレジスタフィールドS2で指されるレ
ジスタの内容がバス128を通して、第1演算ユニット
108へ送出される。また、続いて次のステージで、第
2命令レジスタ105の第1ソースレジスタフィールド
S1で指されるレジスタの内容がバス129を通して、
第2ソースレジスタフィールドS2で指されるレジスタ
内容がバス130を通して、第2演算ユニット109へ
送出される。
Next, the operation of the R stage during basic instruction processing will be described. In the R stage, the first instruction register 1
04 is decoded by the first instruction decoder 106,
Subsequently, in the next stage, the contents of the second instruction register 105 are decoded by the second instruction decoder 107. As a result, the contents of the register pointed to by the first source register field S1 of the first instruction register 104 are transferred via the bus 127, and the contents of the register pointed to by the second source register field S2 are transferred via the bus 128 to the first operation unit 108. Sent to Then, in the next stage, the contents of the register pointed to by the first source register field S1 of the second instruction register 105 are transferred through the bus 129.
The contents of the register pointed to by the second source register field S2 are sent to the second arithmetic unit 109 via the bus 130.

【0057】次にEXステージの動作について説明す
る。
Next, the operation of the EX stage will be described.

【0058】EXステージでは、第1命令レジスタ10
4のオペコードの内容に従って第1演算ユニット108
において、バス127,128により送られてきたデー
タ間の演算を行う。続いて次のステージで、第2命令レ
ジスタ105のオペコードの内容に従って第2演算ユニ
ット109において、バス129,130により送られ
てきたデータ間の演算を行う。最後にWステージの動作
を説明する。Wステージでは第1演算ユニット108の
演算結果がバス131を通して、第1命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。また、続いて次のステージで、第2演算ユ
ニット109の演算結果がバス132を通して、第2命
令レジスタのディスティネーションフィールドDで指さ
れるレジスタに格納される。
In the EX stage, the first instruction register 10
4 according to the contents of the operation code of the first operation unit 108
, An operation is performed between the data transmitted by the buses 127 and 128. Subsequently, in the next stage, the operation between the data sent by the buses 129 and 130 is performed in the second operation unit 109 in accordance with the contents of the operation code of the second instruction register 105. Finally, the operation of the W stage will be described. In the W stage, the operation result of the first operation unit 108 is stored in the register pointed to by the destination field D of the first instruction register via the bus 131. In the next stage, the operation result of the second operation unit 109 is stored in the register pointed to by the destination field D of the second instruction register via the bus 132.

【0059】図22は、基本命令ADDを連続して処理
するフローを示したものである。1マシンサイクルに2
命令ずつ処理できる能力があるが、1命令ずつ処理され
る。すなわち、2つのADD命令は同時にフェッチされ
るが、最初のADD命令のみがRステージの処理を実行
する。一方、2番目のADD命令は、1マシンサイクル
待った後にRステージの処理を実行する。ここで図22
で2命令ずつ処理される内の上の方が第1演算ユニット
の処理を、下の方が第2演算ユニットの処理を示してい
る。
FIG. 22 shows a flow for continuously processing the basic instructions ADD. 2 per machine cycle
It has the ability to process instructions one by one, but it processes one instruction at a time. That is, two ADD instructions are fetched at the same time, but only the first ADD instruction executes the processing of the R stage. On the other hand, the second ADD instruction executes the processing of the R stage after waiting for one machine cycle. Here, FIG.
The upper one shows the processing of the first arithmetic unit and the lower one shows the processing of the second arithmetic unit.

【0060】図23はロード命令,ストア命令を連続し
て処理するフローを示したものである。ロード命令実行
時には、Rステージで、第1命令レジスタのS2フィー
ルドで指されるレジスタの内容が、バス128を通し
て、MAR112に転送される。次に、EXステージで、デー
タキャッシュからバス133を通して、オペランドをフ
ェッチする。最後に、Wステージでフェッチされたオペ
ランドが、バス134を通して、第1命令レジスタのデ
ィスティネーションフィールドDで指されるレジスタに
格納される。EXステージで1マシンサイクルでオペラ
ンドをフェッチすることは、図1Aの如く高速データキ
ャッシュ115を備えていれば、可能である。
FIG. 23 shows a flow for processing load instructions and store instructions successively. When the load instruction is executed, the contents of the register pointed to by the S2 field of the first instruction register are transferred to the MAR 112 via the bus 128 in the R stage. Next, in the EX stage, the operand is fetched from the data cache through the bus 133. Finally, the operand fetched at the W stage is stored in the register pointed to by the destination field D of the first instruction register via the bus 134. Fetching an operand in one machine cycle in the EX stage is possible if the high-speed data cache 115 is provided as shown in FIG. 1A.

【0061】次にストア命令実行は、ロード命令のRス
テージ実行後、Rステージにおいて第2命令レジスタの
第2ソースレジスタフィールドS1で指されるレジスタ
の内容がデータとして、バス135を通してMWR114に転
送される。また同時に、第2命令レジスタの第2ソース
レジスタフィールドS2で指されるレジスタの内容がア
ドレスとして、バス129を通してMAR112に転送され
る。次にEXステージで、MAR112で指される番地に、MW
R114内のデータが書き込まれる。図23に示すように、
ロード命令,ストア命令が連続しても、1マシンサイク
ルに2命令ずつ処理することができる能力はあるが、1
命令ずつ処理することができる。
Next, in the execution of the store instruction, after the execution of the R stage of the load instruction, the contents of the register pointed to by the second source register field S1 of the second instruction register are transferred to the MWR 114 through the bus 135 as data in the R stage. You. At the same time, the contents of the register pointed to by the second source register field S2 of the second instruction register are transferred to the MAR 112 via the bus 129 as an address. Next, at the EX stage, the MW is
The data in R114 is written. As shown in FIG.
Even if load and store instructions are consecutive, it has the ability to process two instructions in one machine cycle.
Instructions can be processed one by one.

【0062】図24から図27は、無条件ジャンプBR
A命令と引き続く番地の命令1の実行時の処理フローを
示したものである。特に、図24と図25は第1命令
に、図26と図27は第2命令にそれぞれ無条件ジャン
プBRA命令が存在しているときのパイプライン処理フ
ローを示しており、さらに、図24と図26はジャンプ
先命令が第1命令に相当する番地に有るとき、図25と
図27はジャンプ先命令が第2命令に相当する番地に有
る場合である。BRA命令が命令レジスタから読み出さ
れると、Rステージにおいてシーケンサ111はディス
プレースメントフィールドdとプログラムカウンタとの
加算を行い、プログラムカウンタのラッチ102にセッ
トする。この間にBRA命令の次の番地の命令が次のサ
イクルで実行される。そして、次の次のサイクルに、ジ
ャンプ先の2命令が読み出される。ここで、無条件ジャ
ンプBRA命令が第2命令に有るとき(図26,図2
7)、BRA命令の次の番地の命令を含む2命令をIF
ステージで命令キャッシュから読み出すが、第1命令は
実行するが、第2命令は実行せずにジャンプ先命令を実
行するように制御されている。つまり、分岐命令の次の
命令より後の命令が命令レジスタに保持されていてもそ
れらは、実行されずに無効化される。
FIGS. 24 to 27 show the unconditional jump BR.
It shows a processing flow when an A instruction and an instruction 1 at a subsequent address are executed. In particular, FIGS. 24 and 25 show a pipeline processing flow when an unconditional jump BRA instruction exists in the first instruction, and FIGS. 26 and 27 show a pipeline processing flow when an unconditional jump BRA instruction exists in the second instruction. FIG. 26 shows the case where the jump destination instruction is at the address corresponding to the first instruction, and FIGS. 25 and 27 show the case where the jump destination instruction is at the address corresponding to the second instruction. When the BRA instruction is read from the instruction register, the sequencer 111 adds the displacement field d and the program counter in the R stage and sets the result in the latch 102 of the program counter. During this time, the instruction at the address next to the BRA instruction is executed in the next cycle. Then, in the next next cycle, the two instructions at the jump destination are read. Here, when the unconditional jump BRA instruction is included in the second instruction (see FIGS. 26 and 2)
7), two instructions including the instruction at the address next to the BRA instruction are IF
At the stage, the instruction is read from the instruction cache, but the first instruction is executed, but the second instruction is not executed, but the jump destination instruction is controlled to be executed. That is, even if instructions following the instruction following the branch instruction are held in the instruction register, they are invalidated without being executed.

【0063】さらに、ジャンプ先命令が第2命令に相当
する番地に有るとき(図25,図27)、ジャンプ先命
令を含む2命令をIFステージで命令キャッシュから読
み出すが、ジャンプ先の第1命令は実行せずにジャンプ
先の第2命令のみを実行するように制御されている。つ
まり、ジャンプ先命令より前の命令が命令レジスタに保
持されていてもそれらは、実行されずに無効化される。
なお、CALL命令,RTN命令の処理フローも同様で
ある。
When the jump destination instruction is at an address corresponding to the second instruction (FIGS. 25 and 27), two instructions including the jump destination instruction are read from the instruction cache at the IF stage. Is controlled so that only the second instruction at the jump destination is executed without being executed. That is, even if instructions before the jump destination instruction are held in the instruction register, they are invalidated without being executed.
The same applies to the processing flow of the CALL instruction and the RTN instruction.

【0064】図28から図31は、条件分岐命令BRA
cc命令と命令1の実行時の処理フローを示したもので
ある。ここで、図30と図31は第1命令に、図28と
図29は第2命令にそれぞれ条件分岐命令BRAcc命
令が存在しているときの処理フローであり、また、図2
8と図30はジャンプ先命令が第1命令に相当する番地
に有るとき、図29と図31はジャンプ先命令が第2命
令に相当する番地に有る場合の処理フローである。図2
8から図31はADD,Fと示した命令でフラグのセッ
トが行われ、その結果に従い分岐の成否が決められる。
このときも、図24から図27を用いて説明した無条件
分岐命令処理時と同様にBRAcc命令に置かれている
番地の次の命令1が実行され、命令1の処理フロー中W
ステージにおいては、BRAcc命令の分岐条件の成否
にかかわらず演算結果のレジスタファイルへの書き込み
が行われる。
FIGS. 28 to 31 show a conditional branch instruction BRA.
It shows a processing flow when the cc instruction and instruction 1 are executed. Here, FIGS. 30 and 31 are processing flows when a conditional branch instruction BRAcc instruction is present in the first instruction, and FIGS. 28 and 29 are processing flows when a conditional branch instruction BRAcc instruction is present in the second instruction.
8 and 30 show the processing flow when the jump destination instruction is at the address corresponding to the first instruction, and FIGS. 29 and 31 are the processing flows when the jump destination instruction is at the address corresponding to the second instruction. FIG.
In FIGS. 8 to 31, flags are set by instructions ADD and F, and the success or failure of the branch is determined according to the result.
At this time, the instruction 1 next to the address located in the BRAcc instruction is executed similarly to the processing of the unconditional branch instruction described with reference to FIGS.
In the stage, the operation result is written to the register file regardless of whether the branch condition of the BRAcc instruction is satisfied.

【0065】図30と図31のごとくBRA命令が第1
命令として存在する場合には、BRAcc命令が命令レ
ジスタから読み出されると、Rステージにおいてシーケ
ンサ111はディスプレースメントフィールドdとプロ
グラムカウンタとの加算を行い、プログラムカウンタの
ラッチ102にセットするとともに命令1のオペランド
のリードを並列処理する。この間に命令1の次の番地の
命令が次のサイクルで実行される。そして、次の次のサ
イクルに、ジャンプ先の2命令が読み出される。
As shown in FIGS. 30 and 31, the BRA instruction is
If the instruction exists, when the BRAcc instruction is read from the instruction register, the sequencer 111 adds the displacement field d and the program counter in the R stage, sets the result in the program counter latch 102, and sets the operand of the instruction 1 Is processed in parallel. During this time, the instruction at the address next to instruction 1 is executed in the next cycle. Then, in the next next cycle, the two instructions at the jump destination are read.

【0066】一方、条件分岐命令BRAcc命令が第2
命令に有るとき(図28,図29)、BRAcc命令の
次の番地の命令を含む2命令をIFステージで命令キャ
ッシュから読み出すが、第1命令は実行するが、第2命
令は実行せずにジャンプ先命令を実行するように制御さ
れている。つまり、条件分岐命令の次の命令より後の命
令が命令レジスタに保持されていても、それらは条件成
立のときは、実行されずに無効化される。
On the other hand, the conditional branch instruction BRAcc
When there is an instruction (FIGS. 28 and 29), two instructions including the instruction at the address next to the BRAcc instruction are read from the instruction cache at the IF stage, but the first instruction is executed but the second instruction is not executed. It is controlled to execute the jump destination instruction. In other words, even if instructions following the instruction following the conditional branch instruction are held in the instruction register, they are invalidated without being executed when the condition is satisfied.

【0067】さらに、条件分岐命令が実行され条件成立
したときジャンプする。ジャンプ先命令が第2命令に相
当する番地に有るとき(図29,図31)、ジャンプ先
命令を含む2命令をIFステージで命令キャッシュから
読み出すが、第1命令は実行せずに第2命令のジャンプ
先命令を実行するように制御されている。つまり、ジャ
ンプ先命令より前の命令が命令レジスタに保持されてい
てもそれらは、実行されずに無効化される。
Further, when the conditional branch instruction is executed and the condition is satisfied, a jump is made. When the jump destination instruction is at an address corresponding to the second instruction (FIGS. 29 and 31), two instructions including the jump destination instruction are read from the instruction cache at the IF stage, but the first instruction is not executed and the second instruction is not executed. Is controlled to execute the jump destination instruction. That is, even if instructions before the jump destination instruction are held in the instruction register, they are invalidated without being executed.

【0068】以上、“m命令を同時に読み出してm個の
演算ユニットで逐次処理する手段”の動作を説明した
が、結果的には、プログラムカウンタは+2ずつ増加さ
せるように制御して、第1命令レジスタ104、及び、
第2命令レジスタ105へ2個の命令を読み出して保存
し、第1命令レジスタ104の命令を第1演算ユニット
108で実行し、続いて、第2命令レジスタ105の命
令を第2演算ユニット109で実行する手段(逐次処
理)を設けるようにすることである。これによって、命
令キャッシュは、分岐命令を除き、2回に1回の割合で
動作すれば良い。以上、高速な並列処理手段と従来のソ
フトウエア互換を保つ逐次処理手段を有し、処理状態フ
ラグに基づく処理手段切換え方式の実施例を示した。し
かしながら、本実施例の並列実行処理手段は、図1Aの
プロセッサステータスレジスタ103の処理状態フラグ
PE116の値がONの時、1マシンサイクルに2命令
ずつ処理させるので、その処理能力を最大2倍に向上で
きたが、図14から図17に示すように、ディレイド分
岐命令を拡張したために、従来ソフトウエアとの互換性
を失っている。そこでディレイド分岐命令の後続の一命
令のみを実行する制御手段を設けることによって大部分
のソフトウエアの互換を保つ方法を述べる。図1Cは図
1Bに制御信号線147を加えたものである。つまり、
第2命令デコーダ107にてディレイド分岐命令を解読
している時は、後続のディレイスロット命令は第1命令
レジスタ104に存在する。しかし、第2命令レジスタ
105に保持している命令は、実行してはならない命令
である。そこで第2命令デコーダ107がディレイド分
岐命令を検出時に制御信号線147を介して第2命令レ
ジスタ105の内容を無効化することにより、ディレイ
ド分岐命令に後続する1命令のみを実行する。
The operation of "means for simultaneously reading out m instructions and sequentially processing them by m arithmetic units" has been described. As a result, the program counter is controlled to be incremented by +2, and the first Instruction register 104, and
The two instructions are read and stored in the second instruction register 105, the instruction in the first instruction register 104 is executed by the first operation unit 108, and the instruction in the second instruction register 105 is subsequently executed by the second operation unit 109. This is to provide means for executing (sequential processing). As a result, the instruction cache only needs to operate once every two times except for the branch instruction. The embodiment of the processing means switching method based on the processing state flag having the high-speed parallel processing means and the sequential processing means for maintaining the conventional software compatibility has been described. However, when the value of the processing state flag PE116 of the processor status register 103 in FIG. 1A is ON, the parallel execution processing means of this embodiment processes two instructions at a time in one machine cycle. Although improved, as shown in FIGS. 14 to 17, the compatibility with the conventional software is lost due to the extension of the delayed branch instruction. Therefore, a method for maintaining the compatibility of most software by providing a control means for executing only one instruction following the delayed branch instruction will be described. FIG. 1C is obtained by adding a control signal line 147 to FIG. 1B. That is,
When the delayed branch instruction is decoded by the second instruction decoder 107, the subsequent delay slot instruction exists in the first instruction register 104. However, the instruction held in the second instruction register 105 is an instruction that must not be executed. Therefore, when the second instruction decoder 107 detects a delayed branch instruction, it invalidates the contents of the second instruction register 105 via the control signal line 147, thereby executing only one instruction subsequent to the delayed branch instruction.

【0069】また、第1命令デコーダ106にてディレ
イド分岐命令を解読している時は、後続のディレイスロ
ット命令は第2命令デコーダ107にて解読中であり、
並列実行しても問題はない。以上のように制御信号線1
47を用いて第2命令レジスタ105の内容を無効化に
することにより大部分のソフトウエアの互換性を保つこ
とができる。
When the first instruction decoder 106 is decoding the delayed branch instruction, the subsequent delay slot instruction is being decoded by the second instruction decoder 107,
There is no problem with parallel execution. As described above, the control signal line 1
By using 47 to invalidate the contents of the second instruction register 105, compatibility of most software can be maintained.

【0070】次に、処理状態フラグを用いずに、常時並
列処理を行うことを基本にした“大部分の従来のソフト
ウエアを正しく実行できる方式”の実施例を述べる。
Next, a description will be given of an embodiment of a "method capable of correctly executing most conventional software" based on the fact that parallel processing is always performed without using a processing state flag.

【0071】本実施例は、分岐命令を除く処理について
は、基本的には2命令ずつ処理し、分岐命令は次に引き
続く1つの命令のみ(図14Bから図17の命令1だ
け)実行し、残りの命令の実行は抑止する手段を設ける
ようにすることである。
In this embodiment, the processing excluding the branch instruction is basically performed two instructions at a time, and the branch instruction executes only the next succeeding instruction (only instruction 1 in FIGS. 14B to 17). The execution of the remaining instructions is to provide means for inhibiting.

【0072】図14Aは、常に並列処理を行うことを基
本とした構成である。即ち、プログラムカウンタ演算器
101は、常に+2加算される(143)。しかし、制
御信号線147を用いて第2命令レジスタ105の内容
を無効化することによってソフトウエアの互換性を保つ
ことができる。以下に図14Bないし図17を用いて図
14Aに示す構成の動作を説明する。なお、図14B
は、前述した実施例のものを使用する。
FIG. 14A shows a configuration based on always performing parallel processing. That is, the program counter calculator 101 always adds +2 (143). However, the compatibility of software can be maintained by invalidating the contents of the second instruction register 105 using the control signal line 147. The operation of the configuration shown in FIG. 14A will be described below with reference to FIGS. 14B to 17. FIG. 14B
Is used for the embodiment described above.

【0073】図14Bは、第2命令として無条件ジャン
プBRA命令実行時の処理フローを示したものである。
BRA命令が読み出されると、Rステージにおいてシー
ケンサ111はディスプレースメントフィールドdとプ
ログラムカウンタとの加算を行い、プログラムカウンタ
のラッチ102にセットする。この間にBRA命令に引
き続く番地の命令1と命令2が読み出され、その次のサ
イクルに、ジャンプ先の2命令が読み出される。本実施
例では、命令1のみを実行し、命令2の実行を抑止す
る。すなわち、従来のソフトウエアとの互換性をとるた
めに、分岐命令BRAに引き続く1命令しか実行できな
いように制御することである。つまり、図14Bの命令
2は、図14Aの第2命令デコーダ107でNOP命令
と等価な処理になるように信号線147を介して制御す
るか、または、第2命令のレジスタファイルへの書き込
みを抑止するように制御することで可能となる。コンパ
イラにより、分岐命令のアドレス計算中にできる限り有
効な命令を実行できるようにコード生成するが、何もす
ることが無い時には図14Bの命令1をNOP命令とし
ておく。このときには、実質的には1マシンサイクルの
待ちが生ずる。
FIG. 14B shows a processing flow when the unconditional jump BRA instruction is executed as the second instruction.
When the BRA instruction is read, in the R stage, the sequencer 111 adds the displacement field d and the program counter, and sets the result in the latch 102 of the program counter. During this time, the instructions 1 and 2 at the addresses following the BRA instruction are read, and in the next cycle, the two instructions at the jump destination are read. In this embodiment, only the instruction 1 is executed, and the execution of the instruction 2 is suppressed. In other words, control is performed so that only one instruction following the branch instruction BRA can be executed in order to achieve compatibility with conventional software. That is, the instruction 2 in FIG. 14B is controlled by the second instruction decoder 107 in FIG. 14A via the signal line 147 so that processing equivalent to the NOP instruction is performed, or the writing of the second instruction to the register file is performed. It becomes possible by controlling to suppress. The compiler generates a code so that an instruction as effective as possible can be executed during the calculation of the address of the branch instruction, but when there is nothing to do, instruction 1 in FIG. 14B is set as a NOP instruction. At this time, a wait of substantially one machine cycle occurs.

【0074】図15は、第2命令として条件分岐命令B
RAcc命令実行時の処理フローを示したものである。
ADD,Fと示した命令で、フラグのセットが行われ、
その結果に従い分岐の成否が決められる。このときも、
図14Bを用いて説明した無条件分岐命令と同様にBR
Acc命令に置かれている番地の次の命令、図15の命
令1と命令2が読み出され、命令1の処理フロー中Wス
テージにおいては、BRAcc命令の分岐条件の成否に
かかわらず演算結果のレジスタファイルへの書き込みが
行われ、一方、命令2の実行は抑止する。すなわち、図
15の命令2は、図14Aの第2命令デコーダ107で
NOP命令と等価な処理になるように制御するか、また
は、第2命令のレジスタファイルへの書き込みを抑止す
るように制御することで可能となる。この時には、実質
的に1マシンサイクルの待ちが生ずる。
FIG. 15 shows a conditional branch instruction B as a second instruction.
It shows a processing flow when the RAcc instruction is executed.
Flags are set by instructions ADD and F,
The success or failure of the branch is determined according to the result. Again,
Similar to the unconditional branch instruction described with reference to FIG.
The instruction next to the address located in the Acc instruction, that is, instruction 1 and instruction 2 in FIG. 15 are read out, and in the W stage during the processing flow of instruction 1, the operation result of the BRAcc instruction is obtained regardless of whether the branch condition is satisfied or not. Writing to the register file is performed, while execution of instruction 2 is suppressed. That is, the instruction 2 in FIG. 15 is controlled by the second instruction decoder 107 in FIG. 14A so as to perform processing equivalent to the NOP instruction, or is controlled so as to suppress the writing of the second instruction to the register file. This is possible. At this time, a wait of substantially one machine cycle occurs.

【0075】さらに、図16は、第1命令として無条件
ジャンプBRA命令実行時の処理フローを示したもので
ある。BRA命令と命令1が読み出されると、Rステー
ジにおいてシーケンサ111はディスプレースメントフ
ィールドdとプログラムカウンタとの加算を行い、プロ
グラムカウンタのラッチ102にセットすると同時に、
命令1のオペランドをリードする。この間に次の命令2
と命令3が読み出される。そしてその次のサイクルに、
ジャンプ先の命令1と命令2が読み出される。しかしな
がら、従来のソフトウエアとの互換性をとるために、分
岐命令BRA命令と引き続き命令1は、並列に実行する
が命令2と命令3の実行は抑止する。つまり、図16の
命令2,命令3は、図14Aの第1命令デコーダ10
6,第2命令デコーダ107でNOP命令と等価な処理
になるように制御するか、または、第2命令,第3命令
のレジスタファイルへの書き込みを抑止するように制御
することで可能となる。コンパイラにより、分岐命令の
アドレス計算中にできる限り有効な命令を実行できるよ
うにコード生成するが、何もすることが無い時には図1
6の命令1をNOP命令としておく。このときには、実
質的には1マシンサイクルの待ちが生ずる。
FIG. 16 shows a processing flow when the unconditional jump BRA instruction is executed as the first instruction. When the BRA instruction and the instruction 1 are read, the sequencer 111 adds the displacement field d and the program counter in the R stage, sets the addition in the program counter latch 102, and
Read the operand of instruction 1. During this time, the next instruction 2
And instruction 3 are read. And in the next cycle,
Instructions 1 and 2 at the jump destination are read. However, for compatibility with the conventional software, the branch instruction BRA instruction and the instruction 1 are executed in parallel, but the execution of the instructions 2 and 3 is suppressed. That is, the instruction 2 and the instruction 3 in FIG.
6. It can be realized by controlling the second instruction decoder 107 to perform processing equivalent to the NOP instruction, or by controlling the writing of the second instruction and the third instruction to the register file. The compiler generates code so that the most effective instruction can be executed during the address calculation of the branch instruction.
The instruction 1 of No. 6 is set as a NOP instruction. At this time, a wait of substantially one machine cycle occurs.

【0076】図17は、第1命令として条件分岐命令B
RAcc命令実行時の処理フローを示したものである。
ADD,Fと示した命令で、分岐状態フラグのセットが
行われ、その結果に従い分岐の成否が決められる。この
ときも、図16を用いて説明した無条件分岐命令と同様
にBRAcc命令と引き続く番地の命令1が同時に読み
出され、命令1の処理フロー中Wステージにおいて、B
RAcc命令の分岐条件の成否にかかわらず演算結果の
レジスタファイルへの書き込みが行われる。さらに、図
17の命令2と命令3は、図14Aの第1命令デコーダ
106と第2命令デコーダ107においてNOP命令と
等価な処理になるように制御するか、または、第2命令
と第3命令のレジスタファイルへの書き込みを抑止する
ように制御するか、または、分岐命令が第1命令の場合
には、命令1を並列実行後にジャンプ先命令1へ分岐す
るように制御することで可能となる。
FIG. 17 shows a conditional branch instruction B as the first instruction.
It shows a processing flow when the RAcc instruction is executed.
Instructions indicated by ADD and F set a branch state flag, and determine the success or failure of the branch according to the result. At this time, similarly to the unconditional branch instruction described with reference to FIG. 16, the BRAcc instruction and the instruction 1 at the subsequent address are simultaneously read out.
The operation result is written to the register file regardless of whether the branch condition of the RAcc instruction is satisfied or not. Further, the instruction 2 and the instruction 3 in FIG. 17 are controlled so that the first instruction decoder 106 and the second instruction decoder 107 in FIG. 14A perform processing equivalent to the NOP instruction, or the second instruction and the third instruction Or if the branch instruction is the first instruction, control is performed such that the instruction 1 is executed in parallel and then branched to the jump destination instruction 1. .

【0077】以上、大部分のソフトウエアを正常実行可
能にし、かつ並列実行により高速化する方式の動作を図
14Aを用いて説明したが、結果的には、図14A,図
15の命令2、図16,図17の命令2,命令3の実行
を抑止することである。これによって、1サイクルの待
ちサイクルを有効に利用した従来のディレイド分岐方式
の互換性を保つことができ、且つ、それ以外の命令は基
本的には2命令並列実行可能であるため、従来ソフトウ
エアの互換性と1から2倍の間に処理性能を向上できる
両方の効果がある。
The operation of the method for enabling normal execution of most of the software and increasing the speed by parallel execution has been described with reference to FIG. 14A. As a result, the instruction 2 and the instruction 2 in FIGS. That is, the execution of the instructions 2 and 3 in FIGS. 16 and 17 is suppressed. This makes it possible to maintain the compatibility of the conventional delayed branch method that effectively uses one wait cycle, and that other instructions can be basically executed in parallel with two instructions. And the effect of improving processing performance between 1 and 2 times.

【0078】以上、分岐命令を中心に並列実行処理手段
を説明したが、当然のことながら第1命令と第2命令の
組合せによって、両命令を同時に実行できないことがあ
る。これを競合と呼ぶことにする。以下に競合を説明す
る。
Although the parallel execution processing means has been described centering on the branch instruction, it is needless to say that both instructions may not be executed at the same time depending on the combination of the first instruction and the second instruction. This is called a conflict. The conflict is described below.

【0079】1.ロード,ストア命令の組合せ。1. Combination of load and store instructions.

【0080】2.第1命令のディスティネーションレジ
スタフィールドDで指示されるレジスタと、第2命令の
第1ソースレジスタフィールドS1で指示されるレジス
タ、または、第2命令の第2ソースレジスタフィールド
S2で指示されるレジスタが一致する時。
2. The register indicated by the destination register field D of the first instruction and the register indicated by the first source register field S1 of the second instruction or the register indicated by the second source register field S2 of the second instruction are When they match.

【0081】上記競合の時、1.はデータキャッシュを
複数の命令から同時にアクセスできないことにより生ず
る本実施例特有の問題である。例えば、データキャッシ
ュを2ポート化すれば解決できる。また、2.について
は、図14Aの第1命令デコーダと第2命令デコーダに
おいて互いのソースレジスタフィールドとディスティネ
ーションレジスタフィールドの一致比較を行い、一致し
た場合には第2命令をNOP命令に変えてしまうことで
実現できる。すなわち、第1命令のディスティネーショ
ンレジスタフィールドDで指示されたレジスタと第2命
令の2つのソースレジスタフィールドで指示されるレジ
スタが一致した場合に、第2命令をNOP命令に変更して
第1命令とNOP命令を並列実行処理し、次のサイクル
では、第1命令をNOP命令に変更してNOP命令と第
2命令を並列実行することで達成できる。
At the time of the above competition, Is a problem peculiar to this embodiment caused by the inability to simultaneously access the data cache from a plurality of instructions. For example, the problem can be solved by forming the data cache into two ports. Also, 2. 14A, the first instruction decoder and the second instruction decoder of FIG. 14A compare the source register field and the destination register field with each other, and if they match, change the second instruction to a NOP instruction. it can. That is, when the register specified by the destination register field D of the first instruction matches the register specified by the two source register fields of the second instruction, the second instruction is changed to the NOP instruction and the first instruction is changed to the NOP instruction. In the next cycle, this can be achieved by changing the first instruction to a NOP instruction and executing the NOP instruction and the second instruction in parallel.

【0082】以上、並列実行時の競合問題について述べ
た。
The contention problem during parallel execution has been described above.

【0083】本発明の全ての実施例は、2つの命令デコ
ーダと2つの演算ユニットを備えた場合について述べた
が、明らかに4台8台と増やしても全く問題はない。
Although all the embodiments of the present invention have been described in the case where two instruction decoders and two arithmetic units are provided, there is no problem even if the number is increased to four or eight.

【0084】本発明の最後の実施例について述べる。そ
れは、図1Cのプロセッサステータスレジスタ103の
処理状態フラグPE116についてである。本来、処理
状態フラグPE116は、従来ソフトウエアとの互換性
を必要とするシステムにおいて、ハードウエアの切換え
を行うための情報源としての切り換え可能な手段、及
び、切り換えるための命令によりそれを切り換えるもの
であった。
The last embodiment of the present invention will be described. This is for the processing state flag PE116 of the processor status register 103 in FIG. 1C. Originally, the processing state flag PE116 is a switchable means as an information source for performing hardware switching in a system that requires compatibility with conventional software, and that is switched by an instruction for switching. Met.

【0085】しかし、専用システム、これから作成され
る新しいソフトウエアだけを実行すれば良いシステムな
どでは、システムに組むときに片方の機能しか利用しな
い場合がある。そこで、データ処理装置としては、並列
実行処理手段と逐次実行処理手段の両方の手段を備えて
おき、構築するシステムに応じて片方の手段だけを組み
込む手段が必要となる。この機能を実現する1つの手段
としては、プロセッサステータスレジスタ103の処理
状態フラグPE116を、初期化時,リセット時に命令
によりどちらかにセットする手段がある。また、マイク
ロプロセッサなどのLSIの場合、LSIと外部とで信
号をやり取りするピンを用いて、上記2つの手段を切り
換える選択手段もある。ピンは周知の通りLSIから延
びているものである。
However, in a dedicated system or a system that only needs to execute new software to be created, only one of the functions may be used when assembling the system. Therefore, it is necessary to provide a data processing device with both parallel execution processing means and sequential execution processing means, and to incorporate only one means according to the system to be built. As one means for realizing this function, there is a means for setting the processing status flag PE116 of the processor status register 103 to any one of the instructions at the time of initialization and at the time of reset. In the case of an LSI such as a microprocessor, there is also a selecting means for switching between the above two means by using a pin for exchanging signals between the LSI and the outside. The pins extend from the LSI as is well known.

【0086】[0086]

【発明の効果】本発明によれば、従来の逐次処理型計算
機上で動作する全てのソフトウエアを正常動作させ、し
かも、高度な並列処理機能を用いて、より高速実行する
ことができるため処理時間を短縮できる。
According to the present invention, all software operating on a conventional sequential processing type computer can be operated normally, and can be executed at a higher speed by using an advanced parallel processing function. You can save time.

【0087】さらに、大部分の従来のソフトウエアを正
常動作させ、かつ高度な並列処理機能を用いて、より高
速実行することができる。
Further, most conventional software can be operated normally, and can be executed at higher speed by using advanced parallel processing functions.

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

【図1】本発明の一実施例を示す全体ブロック図であ
る。
FIG. 1 is an overall block diagram showing one embodiment of the present invention.

【図2】従来例の全体ブロック図である。FIG. 2 is an overall block diagram of a conventional example.

【図3】図2に示す構成の動作を説明するタイミングチ
ャートである。
FIG. 3 is a timing chart for explaining the operation of the configuration shown in FIG. 2;

【図4】図2に示す構成の動作を説明するタイミングチ
ャートである。
FIG. 4 is a timing chart for explaining the operation of the configuration shown in FIG. 2;

【図5】図2に示す構成の動作を説明するタイミングチ
ャートである。
FIG. 5 is a timing chart for explaining the operation of the configuration shown in FIG. 2;

【図6】もう1つの従来例の全体ブロック図である。FIG. 6 is an overall block diagram of another conventional example.

【図7】図6に示す構成の動作を説明するタイミングチ
ャートである。
FIG. 7 is a timing chart for explaining the operation of the configuration shown in FIG. 6;

【図8】図6に示す構成の動作を説明するタイミングチ
ャートである。
FIG. 8 is a timing chart for explaining the operation of the configuration shown in FIG. 6;

【図9】RISC型計算機のディレイド分岐命令処理フ
ロー図である。
FIG. 9 is a flowchart of a delayed branch instruction processing of the RISC type computer.

【図10】本発明の命令一覧を示す図である。FIG. 10 is a diagram showing a list of instructions according to the present invention.

【図11】本発明の命令フォーマットを示す図である。FIG. 11 is a diagram showing an instruction format of the present invention.

【図12】本発明の並列処理における動作を説明するタ
イミングチャートである。
FIG. 12 is a timing chart illustrating an operation in parallel processing according to the present invention.

【図13】本発明の並列処理における動作を説明するタ
イミングチャートである。
FIG. 13 is a timing chart illustrating an operation in parallel processing according to the present invention.

【図14】並列処理における動作を説明するタイミング
チャートである。
FIG. 14 is a timing chart illustrating an operation in parallel processing.

【図15】並列処理における動作を説明するタイミング
チャートである。
FIG. 15 is a timing chart illustrating an operation in parallel processing.

【図16】並列処理における動作を説明するタイミング
チャートである。
FIG. 16 is a timing chart illustrating an operation in parallel processing.

【図17】並列処理における動作を説明するタイミング
チャートである。
FIG. 17 is a timing chart illustrating an operation in parallel processing.

【図18】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 18 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図19】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 19 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図20】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 20 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図21】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 21 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図22】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 22 is a timing chart illustrating an operation in the sequential processing of the present invention.

【図23】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 23 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図24】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 24 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図25】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 25 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図26】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 26 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図27】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 27 is a timing chart illustrating the operation in the sequential processing of the present invention.

【図28】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 28 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図29】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 29 is a timing chart illustrating the operation in the sequential processing of the present invention.

【図30】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 30 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図31】本発明の逐次処理における動作を説明するタ
イミングチャートである。
FIG. 31 is a timing chart for explaining the operation in the sequential processing of the present invention.

【図32】本発明の他の実施例を示す全体ブロック図で
ある。
FIG. 32 is an overall block diagram showing another embodiment of the present invention.

【図33】本発明の他の実施例を示す全体ブロック図で
ある。
FIG. 33 is an overall block diagram showing another embodiment of the present invention.

【図34】本発明の他の実施例を示す全体ブロック図で
ある。
FIG. 34 is an overall block diagram showing another embodiment of the present invention.

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

103…プロセッサステータスレジスタ、104…第1
命令レジスタ、105…第2命令レジスタ、106…第
1命令デコーダ、107…第2命令デコーダ、108…
第1演算ユニット、109…第2演算ユニット、110
…レジスタファイル。
103: processor status register, 104: first
Instruction register, 105: second instruction register, 106: first instruction decoder, 107: second instruction decoder, 108 ...
1st arithmetic unit, 109 ... 2nd arithmetic unit, 110
... Register file.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂東 忠秋 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 ──────────────────────────────────────────────────続 き Continued on front page (72) Inventor Tadaaki Bando 4026 Kuji-cho, Hitachi City, Ibaraki Prefecture Hitachi Research Laboratory, Hitachi, Ltd.

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】メモリから読み出すべき命令を指示するプ
ログラムカウンタと、 上記プログラムカウンタによって指示された命令をそれ
ぞれ格納するための複数の命令レジスタと、 上記命令レジスタに格納された命令をデコードする複数
のデコーダと、 演算を実行するための複数の演算ユニットとを有し、 少なくとも1つの上記デコーダは、命令のデコードによ
って上記命令レジスタの内容を無効化することを特徴と
する並列処理装置。
A program counter for designating an instruction to be read from a memory; a plurality of instruction registers for respectively storing instructions designated by the program counter; and a plurality of instruction registers for decoding instructions stored in the instruction register. A parallel processing device, comprising: a decoder; and a plurality of operation units for executing an operation, wherein at least one of the decoders invalidates the contents of the instruction register by decoding an instruction.
【請求項2】請求項1記載の並列処理装置において、 上記プログラムカウンタ,上記複数の命令レジスタ,上
記複数のデコーダ及び上記複数の演算ユニットが同一の
半導体基板上に形成されていることを特徴とする並列処
理装置。
2. The parallel processing device according to claim 1, wherein said program counter, said plurality of instruction registers, said plurality of decoders, and said plurality of operation units are formed on the same semiconductor substrate. Parallel processing device.
【請求項3】請求項1に記載の並列処理装置において、 上記並列処理装置は、更に複数の上記演算ユニットを並
列に動作させるか、逐次的に動作させるかの処理の状態
を制御する処理状態制御手段を有することを特徴とする
並列処理装置。
3. The parallel processing device according to claim 1, wherein said parallel processing device further controls a processing state of operating the plurality of arithmetic units in parallel or sequentially. A parallel processing device having control means.
JP29204097A 1997-10-24 1997-10-24 Parallel processing unit Expired - Fee Related JP2927281B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29204097A JP2927281B2 (en) 1997-10-24 1997-10-24 Parallel processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29204097A JP2927281B2 (en) 1997-10-24 1997-10-24 Parallel processing unit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP9012209A Division JP2785820B2 (en) 1997-01-27 1997-01-27 Parallel processing unit

Publications (2)

Publication Number Publication Date
JPH1083301A true JPH1083301A (en) 1998-03-31
JP2927281B2 JP2927281B2 (en) 1999-07-28

Family

ID=17776763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29204097A Expired - Fee Related JP2927281B2 (en) 1997-10-24 1997-10-24 Parallel processing unit

Country Status (1)

Country Link
JP (1) JP2927281B2 (en)

Also Published As

Publication number Publication date
JP2927281B2 (en) 1999-07-28

Similar Documents

Publication Publication Date Title
JP2550213B2 (en) Parallel processing device and parallel processing method
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
JP2931890B2 (en) Data processing device
JP2834837B2 (en) Programmable controller
US20050010743A1 (en) Multiple-thread processor for threaded software applications
US4897787A (en) Data processing system
JP3790626B2 (en) Method and apparatus for fetching and issuing dual word or multiple instructions
JPS6014338A (en) Branch mechanism for computer system
JP2636821B2 (en) Parallel processing unit
JP3182591B2 (en) Microprocessor
US7389405B2 (en) Digital signal processor architecture with optimized memory access for code discontinuity
JP2927281B2 (en) Parallel processing unit
JP2785820B2 (en) Parallel processing unit
US5187782A (en) Data processing system
JP3147884B2 (en) Storage device and information processing device
JP3102399B2 (en) Data processing apparatus and method
JP2636074B2 (en) Microprocessor
JP4702004B2 (en) Microcomputer
EP0365187A2 (en) Apparatus for selective execution of instructions following a branch instruction
JPS61112240A (en) Data processor
Golze et al. RISC Architectures

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080514

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees