JP3102399B2 - Data processing apparatus and method - Google Patents

Data processing apparatus and method

Info

Publication number
JP3102399B2
JP3102399B2 JP09352657A JP35265797A JP3102399B2 JP 3102399 B2 JP3102399 B2 JP 3102399B2 JP 09352657 A JP09352657 A JP 09352657A JP 35265797 A JP35265797 A JP 35265797A JP 3102399 B2 JP3102399 B2 JP 3102399B2
Authority
JP
Japan
Prior art keywords
data
register
instruction
storing
instructions
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 - Fee Related
Application number
JP09352657A
Other languages
Japanese (ja)
Other versions
JPH10187444A (en
Inventor
多加志 堀田
成弥 田中
英雄 前島
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 JP09352657A priority Critical patent/JP3102399B2/en
Publication of JPH10187444A publication Critical patent/JPH10187444A/en
Application granted granted Critical
Publication of JP3102399B2 publication Critical patent/JP3102399B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

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 data processing apparatus and 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 devices have been devised 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 In this method, processing is performed in a bucket-relay 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 Compute
r) とRISC (Reduced Instruction Computer) に分
けられる。CISCでは複雑な命令をマイクロ命令を使
って処理する。これに対して、RISCでは、命令を簡
単なものに絞る代わりに、マイクロ命令を用いずに、ハ
ードワイヤド論理による制御で高速化を計っている。以
下、従来のCISC,RISCの両者について、ハード
ウエア概要とそのパイプライン動作について述べる。
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.
r) and RISC (Reduced Instruction Computer). In CISC, complicated instructions are processed using microinstructions. On the other hand, in RISC, instead of narrowing down instructions to simple ones, the speed is increased by control using hard-wired logic without using micro-instructions. Hereinafter, the hardware outline and the pipeline operation of both the conventional CISC and RISC will be described.

【0004】図2はCISC型計算機の一般的構成を説
明する図である。200はメモリインタフェース、20
1はプログラムカウンタ(PC)、202は命令キャッ
シュ、203は命令レジスタ、204は命令デコーダ、
205はアドレス計算制御回路、206はマイクロ命令
を格納しておくControl Storage(CS)、207はマイ
クロ命令カウンタ、208はマイクロ命令レジスタ、2
09はデコーダ、210はメモリとデータをやり取りする
レジスタMDR (Memory Dtata Register)、211はメ
モリ上のオペランドアドレスを示すレジスタMAR(Mem
ory AddressRegister) 、212はアドレス加算器、2
13はレジスタファイル、214はALU (Arithmetic
Logical 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 Dtata Register) for exchanging data with the memory, and 211 is a register MAR (Mem) indicating an operand address on the memory.
ory AddressRegister), 212 is an address adder, 2
13 is a register file, 214 is an ALU (Arithmetic
Logical Unit).

【0005】動作の概要を説明する。PC201によっ
て示された命令が、命令キャッシュより取り出され、信
号217を通して、命令レジスタ203にセットされ
る。命令デコーダ204は命令を信号218を通して受
けとり、マイクロ命令の先頭アドレスを信号220を通
して、マイクロプログラムカウンタ207にセットす
る。また、アドレス計算方法を信号219を通してアド
レス計算制御回路205に指示する。アドレス計算制御
回路205は、アドレス計算に必要なレジスタの読み出
し、アドレス加算器212の制御等を行う。アドレス計
算に必要なレジスタは、レジスタファイル213よりバ
ス226,227を通してアドレス加算器212に送出
される。一方、マイクロ令令は1マシンサイクルごとに
CS206より読み出され、デコーダ209によりデコ
ードされ、ALU214,レジスタファイル213を制御する
のに使われる。224は、これらの制御信号である。AL
U214は、レジスタよりバス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 a signal 218 and sets the start address of the microinstruction via a signal 220 to the microprogram 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 performs reading of registers necessary for address calculation, control of the address adder 212, and the like. The registers required for the address calculation are sent from the register file 213 to the address adder 212 through the buses 226 and 227. On the other hand, the micro instruction is read from the CS 206 every machine cycle, decoded by the decoder 209, and used for controlling the ALU 214 and the register file 213. Reference numeral 224 denotes these control signals. AL
The U 214 calculates the data sent from the register 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.

【0006】次に、図2で示した計算機のパイプライン
動作を図3,図4,図5を用いて説明する。パイプライ
ンは6段である。IF(Instruction Fetch) ステージで
は、命令キャッシュ202より命令が読み出され、命令
レジスタ203にセットされる。D (Decode) ステージ
では、命令デコーダ204により、命令のデコードが行
われる。A(Address) ステージでは、アドレス加算器2
12により、オペランドのアドレス計算が行われる。O
F(Operand Fetch) ステージでは、メモリインタフェー
ス200を通して、MAR211で指されたアドレスのオペラ
ンドがフェッチされ、MDR210にセットされる。次に、E
X(Execution) ステージでは、レジスタファイル21
3、及び、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. At 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 2
12, the address of the operand is calculated. O
In the F (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, E
In the X (Execution) stage, register file 21
3, and data is read 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.

【0007】さて、図3は、基本命令の1つである加算
命令ADDを連続して処理する様子を示したものであ
る。1マシンサイクルごとに、1命令処理されており、
ALU214,アドレス加算器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,
The ALU 214 and the address adder 212 operate in parallel every cycle.

【0008】図4は、条件付分岐命令BRACCの処理の
様子を示したものである。TEST命令でフラグが生成
される。図4は条件成立時のフローを示したものであ
る。フラグ生成がEXステージで行われるため、ジャン
プ先命令のフェッチまでに3サイクルの待サイクルが生
じる。パイプライン段数を増やせば増やす程、この待サ
イクルは増え、性能向上のネツクとなる。
[0008] Figure 4 is a diagram showing the state of a process of conditional branch instruction BRA CC. 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 before the jump destination instruction is fetched. As the number of pipeline stages increases, the number of waiting cycles increases, and this is a net for performance improvement.

【0009】図5は、複雑な命令の実行フローを示した
ものである。命令1が複雑な命令である。複雑な命令と
はストリングコピーの様に多数のメモリアクセスがある
命令等で、通常EXステージを多数回延長することによ
り処理される。EXステージはマイクロプログラムによ
り制御される。マイクロプログラムは1マシンサイクル
に1回アクセスされる。即、複雑な命令は、マイクロプ
ログラムを複数回読み出すことにより処理する。この
時、EXステージには1つの命令しか入らないので、次
の命令(図5命令2)は待たされる。このような時に
は、ALU214は常に動いているが、アドレス加算器212
には遊びが生じてしまう。
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 program. The microprogram is accessed once in one machine cycle. Immediately, 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, the ALU 214 is always running, but the address adder 212
Will have play.

【0010】次にRISC型計算機について説明する。
図6はRISC型計算機の一般的構成を説明する図であ
る。601はメモリインタフェース、602はプログラ
ムカウンタ、603は命令キャッシュ、604はシーケ
ンサ、605は命令レジスタ、606はデコーダ、60
7はレジスタファイル、608はALU、609はMD
R、610はMARである。
Next, the RISC 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, 60
7 is a register file, 608 is ALU, 609 is MD
R and 610 are MARs.

【0011】図7に基本命令の処理フローを示す。IF
(instruction Fetch)ステージでは、プログラムカウン
タ602で指される命令が、命令キャッシュより読み出
され、命令レジスタ605にセットされる。また、シー
ケンサ604は命令信号615,ALU608よりのフラグ信号6
16より、プログラムカウンタ602を制御する。
FIG. 7 shows a processing flow of the basic instruction. IF
In the (instruction Fetch) stage, the instruction pointed to 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.

【0012】R(Read)ステージでは、レジスタファイル
607より、命令で示されたレジスタが、バス618,
619を通して、ALU608に転送される。また、E(Execu
tion)ステージでは、ALU608により、演算が行われる。
最後にW(Write)ステージでは、演算された結果がレジ
スタファイル607に、バス620を通して格納され
る。
In the R (Read) stage, the register indicated by the instruction is transferred from the register file 607 to the bus 618,
Through 619, it is transferred to ALU 608. Also, E (Execu
In the stage), an operation is performed by the ALU 608.
Finally, in the W (Write) stage, the calculated result is stored in the register file 607 via the bus 620.

【0013】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.

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

【0015】図8は条件分岐時の処理フローを示してい
る。CISC型計算機に比して、パイプライン段数が少
ないため、待サイクルが少ない。図8の例では、待サイ
クルは1サイクルのみである。ただし、必ずしも、レジ
スタ間演算ばかりではなく、メモリからのオペランドの
ロードや、メモリへのオペランドのストアが必要であ
る。CISC型計算機では、アドレス加算器があるた
め、メモリからのオペランドのロードが1マシンサイク
ルで実行可能だが、図6に示したRISC型計算機で
は、ロード命令は、アドレス計算命令とロード命令に分
解されるため、2マシンサイクルを要してしまう。
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 waiting cycles is small. In the example of FIG. 8, there is only one waiting cycle. However, it is not always necessary to load operands from a memory and store operands in a memory, in addition to operations between registers. In the CISC type computer, the load of the operand from the memory can be executed in one machine cycle because of the presence of the address adder. However, in the RISC type computer shown in FIG. 6, the load instruction is decomposed into the address calculation instruction and the load instruction. Therefore, two machine cycles are required.

【0016】[0016]

【発明が解決しようとする課題】上記従来技術の問題点
について整理して述ベる。CISC型計算機では、アド
レス加算器があるためメモリ,レジスタ間命令を1マシ
ンサイクルで実行できるが、パイプライン段数が多いた
め、分岐時のオーバヘッドが大きい。また、複雑な命令
を実行する時にはEステージのみが動くので、アドレス
加算器に遊びが生じてしまうという問題点があった。
The problems of the prior art described above will be summarized and described. In the CISC type computer, an instruction between a memory and a register can be executed in one machine cycle because of the presence of an address adder, but the overhead at the time of branching is large because the number of pipeline stages is large. Further, when executing a complicated instruction, only the E stage moves, so that there is a problem that play occurs in the address adder.

【0017】また、RISC型計算機では、パイプライ
ン段数が少ないため分岐時のオーバヘッドが小さい。と
ころが、アドレス加算器がなく、メモリ,レジスタ間演
算のためには、ロード命令,レジスタ間演算命令の2命
令を要するという問題点があった。
In the RISC type computer, the overhead at the time of branching is small because the number of pipeline stages is small. However, there is no address adder, and there is a problem that two instructions, a load instruction and an instruction for operation between registers, are required for the operation between the memory and the register.

【0018】本発明の第1の目的は、複数の演算器を無
駄なく動作させて処理能力を高めることにある。
A first object of the present invention is to increase the processing capacity by operating a plurality of arithmetic units without waste.

【0019】本発明の第2の目的は、分岐時のオーバヘ
ッドを小さくすることにある。
A second object of the present invention is to reduce the overhead at the time of branching.

【0020】また本発明の第3の目的は、メモリ,レジ
スタ間演算等の複雑な命令の処理時間を短縮することに
ある。
A third object of the present invention is to reduce the processing time of complicated instructions such as operations between memories and registers.

【0021】[0021]

【課題を解決するための手段】上記目的を達成するため
に本発明は、複数の命令を記憶する命令ユニットと、命
令ユニットに格納された命令をデコードするデコード手
段と、データを格納するレジスタファイルと、レジスタ
ファイルと接続され、デコードされた命令に基づいて演
算を実行する複数の演算器とを有するデータ処理装置に
おいて、レジスタファイルは複数のレジスタと、各レジ
スタと接続され各演算器にデータを送るための第1の信
号線と、レジスタと接続され各演算器からのデータを受
けるための第2の信号線と、第1の信号群と上記第2の
信号線群とを接続するためのスイッチとから構成されて
いることを特徴とする。
In order to achieve the above object, the present invention provides an instruction unit for storing a plurality of instructions, decoding means for decoding instructions stored in the instruction unit, and a register file for storing data. And a data processing device having a plurality of arithmetic units connected to the register file and executing an operation based on the decoded instruction, wherein the register file is connected to the plurality of registers and each register, and stores data in each of the arithmetic units. A first signal line for sending, a second signal line connected to the register for receiving data from each arithmetic unit, and a second signal line for connecting the first signal group and the second signal line group. And a switch.

【0022】[0022]

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

【0023】図9は、本実施例で述ベるプロセツサの命
令一覧である。基本命令は全てレジスタ間演算である。
分岐命令には、無条件分岐命令BRA,条件付分岐命令
BRACC(ccは分岐条件を示す。)、サブルーチンへ
の分岐命令CALL、サブルーチンからの戻り命令RT
Nの4つがある。他に、ロード命令LOAD、とストア
命令STORがある。説明の都合上、データ型は32ビ
ット整数のみとしたがこれに限定されるものではない。
またアドレスは32ビット(4バイト)毎にふられてい
るものとした。簡単のために、上記の如く命令数を制限
しているが、これは、本発明を制限するものではなく、
1マシンサイクルで処理できる内容であれば、さらに命
令を増やしてもよい。
FIG. 9 is a list of instructions of the processor described in this embodiment. All basic instructions are register-to-register operations.
The branch instructions include an unconditional branch instruction BRA, a conditional branch instruction BRA CC (cc indicates a branch condition), a branch instruction CALL to a subroutine, and a return instruction RT from the subroutine.
There are four of N. In addition, there are a load instruction LOAD and a store instruction STOR. For convenience of explanation, the data type is limited to a 32-bit integer, but is not limited to this.
The address is assigned every 32 bits (4 bytes). For simplicity, the number of instructions is limited as described above, but this does not limit the invention,
If the contents can be processed in one machine cycle, the number of instructions may be further increased.

【0024】図10に命令フオーマットを示す。命令は
全て32ビットの固定長である。基本命令中の下、S
1,S2,Dフィールドは、それぞれ、演算結果をフラ
グに反映するかどうかを指示するビット,第1ソースレ
ジスタを指示するフィールド,第2ソースレジスタを指
示するフィールド,ディスティネーションレジスタを指
示するフィールドである。
FIG. 10 shows the instruction format. All instructions have a fixed length of 32 bits. Under the basic instruction, S
The 1, 1, and 2 fields are 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 field for indicating the destination register, respectively. is there.

【0025】本実施例の構成を示したのが、図1であ
る。100はメモリインタフェース、101は32ビッ
トのプログラムカウンタ、102はシーケンサ、103
は命令ユニット、104は32ビットの第1命令レジス
タ、105は32ビットの第2命令レジスタ、106は
第1デコーダ、107は第2デコーダ、108はMD
R、109はMAR、110は第1演算ユニット、11
1はレジスタファイル、112は第2演算ユニットであ
る。
FIG. 1 shows the configuration of this embodiment. 100 is a memory interface, 101 is a 32-bit program counter, 102 is a sequencer, 103
Is an instruction unit, 104 is a 32-bit first instruction register, 105 is a 32-bit second instruction register, 106 is a first decoder, 107 is a second decoder, and 108 is MD
R, 109 are MAR, 110 is the first arithmetic unit, 11
1 is a register file, and 112 is a second operation unit.

【0026】本実施例では、1マシンサイクルの間に2
つの命令が並列して読み出され実行される。本実施例で
のパイプライン処理の様子を示したのが、図11〜図1
4である。パイプラインはIF(Instruction Fetch),
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. FIGS. 11 to 1 show the state of the pipeline processing in this embodiment.
4. The pipeline is IF (Instruction Fetch),
There are four stages: R (Read), EX (Execution), and W (Write).

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

【0028】IFステージでは、プログラムカウンタに
よって指される2つの命令が読み出され、バス115,
117を通して、それぞれ第1命令レジスタ104,第
2命令レジスタ105にセットされる。PCが偶数の時
には、PC番地の命令が第1命令レジスタに、PC+1
番地の命令が第2命令レジスタに格納される。また、P
Cが奇数の時には、第1命令レジスタにはNOP命令
が、第1命令レジスタにはPC番地の命令がセットされ
る。シーケンサ102はプログラムカウンタを制御する
回路である。第1命令レジスタ,第2命令レジスタ共
に、分岐命令でない時には、プログラムカウンタには、
前プログラムカウンタ値+2の値をセットする。分岐時
には、分岐アドレスを計算してプログラムカウンタにセ
ットする。条件分岐時には、第1演算ユニットよりのフ
ラグ情報123、及び、第2演算ユニットよりのフラグ
情報124より、分岐の成否を判定する。また、命令ユ
ニットより送出される信号116は、第1命令,第2命
令間の各種の競合を示す競合信号である。競合信号がア
サートされた場合には、競合を避けるようにハードウエ
アで制御する。競合回避方法については、後に詳しく述
ベる。
In the IF stage, two instructions pointed to by the program counter are read, and the bus 115,
Through the steps 117, 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 in the PC + 1.
The instruction at the address is stored in the second instruction register. Also, P
When C 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 first instruction register. The sequencer 102 is a circuit that controls a program counter. When neither the first instruction register nor the second instruction register is a branch instruction, the program counter includes:
The value of the previous program counter value + 2 is set. At the time of branching, the branch address is calculated and set in the program counter. At the time of the conditional branch, the success or failure of the branch is determined based on the flag information 123 from the first arithmetic unit and the flag information 124 from the second arithmetic unit. The signal 116 sent from the instruction unit is a competition signal indicating various kinds of competition between the first instruction and the second instruction. When a conflict signal is asserted, hardware control is performed to avoid the conflict. The conflict avoidance method will be described later in detail.

【0029】次に基本命令処理時のRステージの動作に
ついて説明する。Rステージでは、第1命令レジスタ1
04の内容が第1デコーダ106でデコードされ、ま
た、第2命令レジスタ105の内容が第2デコーダ10
7でデコードされる。その結果、第1命令レジスタ10
4の第1ソースレジスタフィールドS1で指されるレジ
スタの内容がバス125を通して、第2ソースレジスタ
フィールドS2で指されるレジスタの内容がバス126
を通して、第1演算ユット110へ送出される。また、
第2命令レジスタの第1ソースレジスタS1で指される
レジスタの内容がバス127を通して、第2ソースレジ
スタフィールドS2で指されるレジスタの内容がバス1
28を通して、第2演算ユニット112に送出される。
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 decoder 106, and the contents of the second instruction register 105 are
7 is decoded. As a result, the first instruction register 10
4, the contents of the register pointed to by the first source register field S1 are transmitted through the bus 125, and the contents of the register pointed to by the second source register field S2 are transmitted to the bus 126.
To the first operation unit 110 through Also,
The contents of the register pointed to by the first source register S1 of the second instruction register are transferred via the bus 127, and the contents of the register pointed to by the second source register field S2 are transferred to the bus 1
The data is sent to the second arithmetic unit 112 through 28.

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

【0031】EXステージでは、第1命令レジスタのオ
ペコードの内容に従って、第1演算ユニット110にお
いて、バス125,126により送られてきたデータ間
の演算を行う。並列して、第2命令レジスタ105のオ
ペコードの内容に従って、第2演算ユニット112にお
いて、バス127,128により送られてきたデータ間
の演算を行う。
In the EX stage, the first operation unit 110 performs an operation between the data transmitted by the buses 125 and 126 in accordance with the contents of the operation code of the first instruction register. In parallel, according to the contents of the operation code of the second instruction register 105, the second arithmetic unit 112 performs an arithmetic operation between the data transmitted by the buses 127 and 128.

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

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

【0034】図12は第1命令としてロード命令、また
は、ストア命令,第2命令として基本命令を連続して処
理するフローを示したものである。ロード命令実行時に
は、Rステージで、第1命令レジスタのS2フィールド
で指されるレジスタの内容が、バス126を通して、MA
R109に転送される。
FIG. 12 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 126 at the R stage.
Forwarded to R109.

【0035】次に、EXステージで、メモリインタフェ
ース100を通して、オペランドをフェッチする。最後
に、Wステージでフェッチされたオペランドが、バス1
29を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。EX
ステージ,1マシンサイクルでオペランドをフェッチす
ることは、メモリインタフェースに高速キャッシュを備
えていれば、可能である。特に、図1に示す、計算機全
体が半導体基板上に集積され、命令キャッシュ,データ
キャッシュ共にオンチップ化されている場合などは容易
である。もちろん、キャッシュがミスヒットした場合に
は、1マシンサイクルでオペランドフェッチを終了する
ことができない。このような時は、システムクロックを
止めて、EXステージを延長すればよい。これは、従来
の計算機でも行われていることである。
Next, in the EX stage, the operand is fetched through the memory interface 100. Finally, the operand fetched in the W stage is
Through 29, it is stored in the register pointed to by the destination field D of the first instruction register. EX
Fetching an operand in one stage, one machine cycle, is possible if the memory interface has a high-speed cache. 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. 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.

【0036】次にストア命令実行時には、Rステージに
おいて、第1命令レジスタの第1ソースレジスタフィー
ルドS1で指されるレジスタの内容がデータとして、バ
ス125を通してMDR108に転送される。また同時に、第
1命令レジスタの第2リースレジスタフィールドS2で
指されるレジスタの内容がアドレスとして、バス126
を通してMAR109に転送される。次にEXステージで、MA
R109で指される番地に、MDR108内のデータが書き込まれ
る。図12に示すように、ロード命令,ストア命令が第
1命令にある場合についても、1マシンサイクルに2命
令ずつ処理することができる。ロード命令,ストア命令
が第2命令に出現した時の処理については後に詳しく述
ベる。
Next, when a 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 to the MDR 108 through the bus 125 as data in the R stage. At the same time, the content of the register pointed to by the second lease register field S2 of the first instruction register is used as an address as the bus 126
Through to the MAR109. Next, on the EX stage, MA
The data in the MDR 108 is written to the address indicated by R109. As shown in FIG. 12, even when a load instruction and a store instruction are included in the first instruction, two instructions can be processed in one machine cycle. The processing when a load instruction and a store instruction appear in the second instruction will be described later in detail.

【0037】図13は、第2命令として無条件ジャンプ
BRA命令実行時の処理フローを示したものである。B
RA命令が読み出されると、Rステージにおいてシーケ
ンサ102はディスプレースメントフィールドdとプロ
グラムカウンタとの加算を行い、プログラムカウンタ1
01にセットする。この間にBRA命令の次の番地の命
令、と、その次の番地の命令(図13命令1と命令2)
が読み出される。その次のサイクルに、ジャンプ先の2
命令が読み出される。本実施例では、命令1,2とも実
行可能なハードウエアとしている。即ち、ジャンプ命令
処理時も、待サイクルが発生しない。この手法は、遅延
分岐と呼ばれるもので、RISC型の従来計算機でも行
われているものである。ただし、従来のRISC型計算
機では、ジャンプ命令のアドレス計算中に、1命令しか
実行できなかったが、本実施例では、ジャンプ命令のア
ドレス計算中にも、2命令同時処理されるため、より処
理能力を高めることができる。CALL命令,RTN命
令の処理フローも同様である。コンパイラにより、分岐
命令のアドレス計算中にできるかぎり有効な命令を実行
できるようにコード生成するが、何もすることがない時
には図13命令1,2をNOP命令としておく。この時
には、実質的に1マシンサイクルの待ちが生ずる。しか
しながら、パイプライン段数が浅いので、従来例で述べ
たCISC型の計算機に比して、分岐時のオーバヘッド
を小さくできるという利点がある。
FIG. 13 shows a processing flow when the unconditional jump BRA instruction is executed as the second instruction. B
When the RA instruction is read, in the R stage, the sequencer 102 adds the displacement field d and the program counter, and the program counter 1
Set to 01. During this time, the instruction at the address next to the BRA instruction and the instruction at the next address (instruction 1 and instruction 2 in FIG. 13)
Is read. In the next cycle, jump 2
The instruction is read. In the present embodiment, hardware capable of executing both the instructions 1 and 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 type computer. However, in the conventional RISC type computer, only one instruction can be executed during the address calculation of the jump instruction. However, in the present embodiment, two instructions are simultaneously processed during the address calculation of the jump instruction. You can improve your ability. The same applies to the processing flow of the CALL instruction and the RTN instruction. A code is generated by a compiler so as to be able to execute a valid instruction as much as possible during the calculation of the address of the branch instruction, but when there is nothing to do, the instructions 1 and 2 in FIG. At this time, a wait of substantially one machine cycle occurs. However, since the number of pipeline stages is small, there is an advantage that overhead at the time of branching can be reduced as compared with the CISC type computer described in the conventional example.

【0038】図14は条件分岐命令BRACCの処理フロ
ーを示したものである。ADD1Fと示した命令で、フ
ラグのセットが行われ、その結果に従い分岐の成否が決
められる。この時も、図13を用いて説明した無条件分
岐命令処理時と同様にBRACC命令のおかれている番地の
次の命令、図14命令1と、その次の命令、図142が
読み出され処理される。ただし、この2命令の処理フロ
ー中Wステージにおいては、BRACC命令の分岐条件不
成立時のみ演算結果のレジスタファイルへの書き込みが
行われる。即ち、分岐命令成立時には、演算結果の書き
込みが抑制される。
[0038] FIG. 14 shows a processing flow of the conditional branch instruction BRA CC. The instruction ADD 1 F sets a flag, and determines the success or failure of the branch according to the result. In this case also, the next instruction address which is likewise placed the BRA CC instruction and when an unconditional branch instruction processing described with reference to FIG. 13, and FIG. 14 instructions 1, the next instruction, read out in FIG. 142 And processed. However, in the processing flow in the W stage of the two instructions, write to BRA CC instruction at the branch condition is not satisfied only when the operation result register file is performed. That is, when the branch instruction is taken, the writing of the operation result is suppressed.

【0039】以上、図11〜図14を用いて説明したよ
うに、本実施例では、1マシンサイクルに2命令ずつ処
理するので、その処理能力が最大2倍に向上されるとい
う利点がある。また、命令が簡単で、ワイヤドロジック
による制御でパイプライン段数が4段と少ないため、分
岐時のオーバヘッドを最大1マシンサイクルと小さくす
ることができる。さらにコンパイラによる遅延分岐の最
適化が成功すれば、上記オーバヘッドをなくすことがで
きる。
As described above with reference to FIGS. 11 to 14, in this embodiment, since two instructions are processed in one machine cycle, there is an advantage that the processing capacity is doubled at the maximum. Further, since the instructions are simple and the number of pipeline stages is as small as four under the control of wired logic, the overhead at the time of branching can be reduced to a maximum of one machine cycle. If the compiler succeeds in optimizing the delayed branch, the overhead can be eliminated.

【0040】また、複雑な処理も、簡単な命令の組み合
わせで実行するため、従来のCISC型計算機におけるパイ
プライン並列によるアドレス加算器とALUの並列動作
に比して、図1第1演算ユニット110と第2演算ユニ
ット112の並列動作をより遊びなく行うことができる
という利点がある。この点について、もう少し説明す
る。メモリからレジスタへのロードを繰り返す場合、従
来CISC型計算機では図15に示すように、1マシン
サイクルに1つずつデータをロードすることができる。
これに対して本実施例においては、1つのデータのロー
ドに、アドレス計算用ADD命令と、そのアドレスを用
いたLOAD命令の2命令かかるが、図16に示すよう
に1マシンサイクルに2命令ずつ実行できるので、やは
り、1マシンサイクルに1つずつデータをロードでき
る。演算器の並列動作という意味では、両者とも2つの
演算器が同時に並列して動いており、この例では同じで
ある。
Further, since complicated processing is executed by a combination of simple instructions, the first arithmetic unit 110 shown in FIG. 1 is compared with the parallel operation of the address adder and the ALU by the pipeline parallel in the conventional CISC type computer. And the parallel operation of the second arithmetic unit 112 can be performed without play. This point will be explained a little more. When loading data from a memory to a register is repeated, the conventional CISC computer can load data one by one in one machine cycle as shown in FIG.
On the other hand, in the present embodiment, two instructions of the ADD instruction for calculating the address and the LOAD instruction using the address are required to load one data. However, as shown in FIG. Since it can be executed, data can be loaded one by one in one machine cycle. In the sense of the parallel operation of the arithmetic units, in both cases, two arithmetic units are operating in parallel at the same time, which is the same in this example.

【0041】さらに複雑な処理について比較したのが、
図17と図18である。従来のCISC型計算機で6サイク
ルのEXステージでの処理を要していた図17に示す命
令1は、図18に示すように、本実施例では3サイクル
で終了することができる。これは従来のCISC型計算
機では、命令1の実行中、アドレス加算器の動作がとま
ってしまうが、本実施例では、2つの演算器が毎サイク
ル並列して動くことが可能となるためである。
The more complicated processing was compared.
17 and 18. The instruction 1 shown in FIG. 17 which required six cycles of processing in the EX stage in the conventional CISC type computer can be completed in three cycles in this embodiment as shown in FIG. This is because the operation of the address adder stops during the execution of the instruction 1 in the conventional CISC computer, but in this embodiment, the two arithmetic units can operate in parallel every cycle. .

【0042】図1第1演算ユニット110の中を説明し
たのが図19である。1500はALU、1501はバ
レルシフタ、1502はフラグ生成回路である。バス12
5,126より転送されてきたデータは、加減算,論理演
算の時にはALU1500 で、SFT命令の時にはバレルシフ
タで処理される。処理結果はバス130に送出される。
演算結果によりフラグがフラグ生成回路1502により
生成され、信号123として送出される。
FIG. 1 illustrates the inside of the first arithmetic unit 110 in FIG. 1500 is an ALU, 1501 is a barrel shifter, and 1502 is a flag generation circuit. Bus 12
The data transferred from 5,126 is processed by the ALU 1500 at the time of addition / subtraction and logical operation, and processed by the barrel shifter at the time of SFT instruction. The processing result is sent to the bus 130.
A flag is generated by the flag generation circuit 1502 based on the operation result, and is transmitted as a signal 123.

【0043】図1第2演算ユニット112の中を一例と
して説明したのが図20である。
FIG. 20 shows an example of the inside of the second arithmetic unit 112 as shown in FIG.

【0044】1600はALU、1601はフラグ生成
回路である。第1演算ユニットとの相違点はバレルシフ
タがない点である。これは、SFT命令は算術論理演算
命令に比して出現ひん度が低いため、省略したのであ
る。こうすることにより、1マシンサイクルに、2つの
SFT命令を実行することができなくなるが、ハードウ
エア量を削減できるという利点がある。2つのSFT命
令が出現した時の制御方法については後述する。
Reference numeral 1600 denotes an ALU, and 1601 denotes a flag generation circuit. The difference from the first arithmetic unit is that there is no barrel shifter. This is omitted because the SFT instruction has a lower frequency of occurrence than the arithmetic and logic operation instruction. This makes it impossible to execute two SFT instructions in one machine cycle, but has the advantage of reducing the amount of hardware. A control method when two SFT instructions appear will be described later.

【0045】図21は図1レジスタファイル111の中
を示したものである。1708はレジスタ、1700〜
1709はバススイッチである。各レジスタは、4つの
リードポード、2つの書込みポートを持つ。バススイッ
チは、前命令のディスティネーションフィールドで指さ
れたレジスタを、次命令で直ちに使う時に、レジスタフ
ァイルをバイパスするために用いられる。例えば、バス
スイッチ1702は、バス129から127へのバイパ
ススイッチであり、第1命令のディスティネーションレ
ジスタフィールドDと第2命令の第1ソースレジスタフ
ィールドS1が一致した時に開けるようにすればよい。
FIG. 21 shows the contents of the register file 111 of FIG. 1708 is a register, 1700 to 1700
Reference numeral 1709 denotes a bus switch. Each register has four read ports and two write ports. The bus switch is used to bypass the register file when the register pointed to by the destination field of the previous instruction is used immediately in the next instruction. For example, the bus switch 1702 is a bypass switch from the bus 129 to the bus 127, and may be opened when the destination register field D of the first instruction matches the first source register field S1 of the second instruction.

【0046】次に第1命令と第2命令の競合解消方法に
ついて図22から図29を用いて説明する。第1命令と
第2命令の組み合せによっては、両命令を同時に実行で
きないことがある。これを競合と呼ぶことにする。以下
の場合に競合がおこる。
Next, a method for resolving conflict between the first instruction and the second instruction will be described with reference to FIGS. Depending on the combination of the first instruction and the second instruction, both instructions may not be executed simultaneously. This is called a conflict. Conflicts occur in the following cases:

【0047】1.ロード,ストア命令が第2命令として
出現した場合。
1. When a load or store instruction appears as a second instruction.

【0048】2.SFT命令が第2命令として出現した
場合。
2. When the SFT instruction appears as the second instruction.

【0049】3.第1命令のディスティネーションレジ
スタフィールドDで指されるレジスタと、第2命令の第
1ソースレジスタフィールドS1で指されるレジスタ、
または、第2命令の第2ソースレジスタフィールドS2
で指されるレジスタが一致する時。
3. A register pointed by the destination register field D of the first instruction, a register pointed by the first source register field S1 of the second instruction,
Or, the second source register field S2 of the second instruction
When the register pointed to by matches.

【0050】上記、競合の内、1と2は、第2演算ユニ
ットで、ロード,ストア命令、及び、SFT命令が処理
できないことにより生ずる本実施例特有の問題である。
図1において、バス127に第2MDR、バス128に
第2MARを追加し、メモリインタフェースにて、1マ
シンサイクルに2つのデータをアクセスできるようにす
れば、第1の競合条件は解消できる。また、第2演算ユ
ニットにもバレルシフタを設ければ、第2の競合条件も
解消できる。本実施例では、ハードウエア削減のため、
上記競合条件が生じたのである。この様な場合も、後に
述べるように、容易に競合を解消できるので、必要性能
と、許されるハードウエア量に応じて、同時処理大の命
令に対応するハードウエアのみ2重化することは、実質
的に性能を落とさずに、ハードウエアを削減できるとい
う利点がある。
Among the above-mentioned conflicts, 1 and 2 are problems peculiar to the present embodiment caused by the inability of the second arithmetic unit to process the load, store and SFT instructions.
In FIG. 1, if the second MDR is added to the bus 127 and the second MAR is added to the bus 128 so that two data can be accessed in one machine cycle by the memory interface, the first race condition can be solved. In addition, if the barrel shifter is also provided in the second arithmetic unit, the second competition condition can be solved. In this embodiment, in order to reduce hardware,
The above race condition has arisen. In such a case, as will be described later, the conflict can be easily resolved. Therefore, according to the required performance and the allowable hardware amount, it is difficult to duplicate only the hardware corresponding to the instruction of the large simultaneous processing. There is an advantage that hardware can be reduced without substantially reducing performance.

【0051】図22を用いてSFT命令が第2命令とし
て出現した時の制御方法について述べる。図22上部で
は、第2命令となるアドレス“3”にSFT命令がある
場合である。図22下部は、実行時の第1命令レジス
タ,第2命令レジスタに入る命令を示している。プログ
ラムカウンタ2の時、第2命令がSFT命令であること
をハードウエアで検出し、第1命令レジスタには2番地
の命令を、第2命令レジスタにはNOP命令をセットす
る。さらに、次のマシンサイクルでは、プログラムカウ
ンタを“1”だけインクリメントし、3番地をセットす
る。そして、第1命令レジスタには、3番地のSFT命
令を第2命令レジスタにはNOP命令をセットする。こ
のように2マシンサイクルに分けて処理することによ
り、正しく処理することができる。もちろん、コンパイ
ラによる最適化を行い、できるだけ第2命令にSFT命
令が出現しないようにすることが好ましい。
A control method when the SFT instruction appears as the second instruction will be described with reference to FIG. In the upper part of FIG. 22, there is a case where the SFT instruction is at the address “3” serving as the second instruction. The lower part of FIG. 22 shows instructions entering the first instruction register and the second instruction register during execution. At the time of the program counter 2, it is detected by hardware that the second instruction is an SFT instruction, and the instruction at address 2 is set in the first instruction register and the NOP instruction is set in the second instruction register. Further, in the next machine cycle, the program counter is incremented by "1" and address 3 is set. Then, the SFT instruction at address 3 is set in the first instruction register, and the NOP instruction is set in the second instruction register. By performing processing in two machine cycles in this way, correct processing can be performed. Of course, it is preferable to perform optimization by a compiler so that the SFT instruction does not appear in the second instruction as much as possible.

【0052】別の競合解消方式について図23を用いて
述べる。即ち、第2命令となる奇数アドレスには、SF
T命令をおくことを禁止し、他に実行する命令のない時
にはNOP命令を入れておく。こうすれば、プログラム
サイズは若干増加するが、競合解消のためのハードウエ
アを省略できるよい利点がある。
Another conflict resolution method will be described with reference to FIG. That is, the odd address serving as the second instruction includes SF
The T instruction is prohibited, and the NOP instruction is inserted when there is no other instruction to execute. In this case, although the program size is slightly increased, there is a good advantage that hardware for resolving conflicts can be omitted.

【0053】図24は、ロード命令が第2命令として出
現した時の処理方法を示している。3番地にロード命令
がある。処理方法は、SFT命令の時と同じである。
FIG. 24 shows a processing method when a load instruction appears as a second instruction. There is a load instruction at address 3. The processing method is the same as that for the SFT instruction.

【0054】図25は、レジスタ競合時の処理方式を示
している。2番地の命令が8番レジスタに書き込んでお
り、同じ8番レジスタを3番地の命令が読み出してい
る。この場合も、SFT命令同様、2マシンサイクルに
分けて実行する。
FIG. 25 shows a processing method at the time of register contention. The instruction at address 2 is writing to register 8, and the instruction at address 3 is reading the same register 8. Also in this case, similarly to the SFT instruction, the instruction is executed in two machine cycles.

【0055】ロード,ストア命令,レジスタ競合につい
ても、奇数番地におくことを禁止して、競合を解消して
もよい。効果はSFT命令のところで述ベたのと同じで
ある。
Load and store instructions and register conflicts may be prevented from being placed at odd addresses to eliminate the conflict. The effect is the same as described above for the SFT instruction.

【0056】次に、図22〜図25で説明した処理方式
を実現するハードウエア方式について説明する。図26
はこのための、図1命令ユニット103の構成を示した
図である。2300は競合検出回路、2301はキャッ
シュメモリ、2302は第1マスク回路、2303は第
2マスク回路である。バス113からは、通常プログラ
ムカウンタの値が入力され、プログラムカウンタで指さ
れる命令とその次の番地の命令が、バス2305,バス
2306に送出される。キャッシュミスヒット時にはメ
モリインタフェース100により命令のフェッチが行わ
れ、バス113を通して、キャッシュ2301に書き込
まれる。この時競合検出回路が第1命令と第2命令の間
の競合をチェックし、競合があれば、競合信号2304
をアサートする。キャッシュには2命令に1ビットずつ
両命令の競合状態を示すビットが設けられており、キャ
ッシュミス時に競合信号2304を格納する。第1マス
ク回路は、入力として第1命令,第2命令,競合ビッ
ト,プログラムカウンタの最下位ビットを受け、図27
に示すように、第1命令レジスタ104への信号115を
制御する。また、第2マスク回路は、入力として第2命
令,競合ビット,プログラムカウンタの最下位ビットを
受け、やはり、図27に示すように、第2命令レジスタ
105への信号117を送出する。
Next, a description will be given of a hardware method for realizing the processing method described with reference to FIGS. FIG.
FIG. 3 is a diagram showing the configuration of the instruction unit 103 for this purpose. 2300 is a conflict detection circuit, 2301 is a cache memory, 2302 is a first mask circuit, and 2303 is a second mask circuit. The value of the normal program counter is input from the bus 113, and the instruction indicated by the program counter and the instruction at the next address are sent to the bus 2305 and the bus 2306. At the time of a cache mishit, an instruction is fetched by the memory interface 100 and written to the cache 2301 via the bus 113. At this time, the conflict detection circuit checks the conflict between the first instruction and the second instruction, and if there is a conflict, a conflict signal 2304
Assert The cache is provided with a bit indicating a conflict state between the two instructions, one bit at a time for every two instructions, and stores a conflict signal 2304 upon a cache miss. The first mask circuit receives, as inputs, a first instruction, a second instruction, a conflict bit, and the least significant bit of a program counter.
As shown in (1), a signal 115 to the first instruction register 104 is controlled. The second mask circuit receives the second instruction, the conflict bit, and the least significant bit of the program counter as inputs, and also sends out a signal 117 to the second instruction register 105 as shown in FIG.

【0057】図27に示すように、競合ビット,PC最
下位ともに0の時には第1命令レジスタに第1命令が、
第2命令レジスタに第2命令が送出される。これは通常
ケースである。競合ビットが1、PC最下位が0の時に
は、第1命令レジスタに第1命令が、第2命令レジスタ
にNOP命令が送出される。これは、競合命令処理時の
第1マシンサイクル時の処理である。次に、競合ビット
が1でPC最下位も1の時には、第1命令レジスタに第
2命令を、第2命令レジスタにNOPを送出する。これ
は、競合命令処理時の第2マシンサイクル時の処理であ
る。上記処理により、図22,図23,図25で説明し
た競合命令の処理フローが実現される。分岐命令が奇数
番地に分岐した時には、図27に示すように、競合ビッ
トの値によらず、第2命令のみ実効されるので正しい処
理が可能である。キャッシュ読出しは毎サイクル行われ
るが、キャッシュへの書き込みは、キャッシュがミスヒ
ットした時のみ、しかも、数マシンサイクルかけて行わ
れる。従って、競合検出回路を、キャッシュ書込み時に
動作させ、キャッシュに競合ビットを保持しておくこと
は、マシンサイクルを短縮する上で有効である。
As shown in FIG. 27, when both the conflict bit and the least significant bit of the PC are 0, the first instruction is stored in the first instruction register.
The second instruction is sent to the second instruction register. This is usually the case. When the conflict bit is 1 and the PC least significant bit is 0, the first instruction is sent to the first instruction register and the NOP instruction is sent to the second instruction register. This is a process in the first machine cycle at the time of competing instruction processing. Next, when the contention bit is 1 and the PC least significant bit is 1, the second instruction is sent to the first instruction register and the NOP is sent to the second instruction register. This is a process in the second machine cycle at the time of competing instruction processing. By the above processing, the processing flow of the conflicting instruction described in FIGS. 22, 23, and 25 is realized. When the branch instruction branches to an odd address, as shown in FIG. 27, only the second instruction is executed irrespective of the value of the conflict bit, so that correct processing can be performed. The cache read is performed every cycle, but the write to the cache is performed only when the cache has a mishit and over several machine cycles. Therefore, it is effective to operate the conflict detection circuit at the time of cache writing and to hold the conflict bit in the cache in order to reduce the machine cycle.

【0058】図28は、第26命令キャッシュ2301
の構成を示したものである。2500はディレクトリ、25
01はデータメモリ、2502はセレクタ、2503は
アドレスレジスタ、2504は書込みレジスタ、250
5はコンパレータ、2506はキャッシュ制御回路であ
る。図28のキャッシュは通常のキャッシュの構成とほ
ぼ同じであるが、データメモリ2501に、2命令分8
バイトに1つずつ、競合ビット保持用のフィールドがあ
ること、キャッシュ読出し時に、PC最下位を無視し、
常に第1命令2305と第2命令2306と競合信号1
16を送出する点が異なっている。
FIG. 28 shows an instruction cache 2301 for the 26th instruction.
This is a diagram showing the configuration of FIG. 2500 is a directory, 25
01 is a data memory, 2502 is a selector, 2503 is an address register, 2504 is a write register, 250
Reference numeral 5 denotes a comparator, and reference numeral 2506 denotes a cache control circuit. The cache shown in FIG. 28 has almost the same configuration as that of a normal cache.
Each byte has a contention bit holding field. When reading the cache, the PC bottom is ignored.
Always the first instruction 2305, the second instruction 2306 and the conflict signal 1
16 is different.

【0059】図28では、データメモリ8K語分、ブロ
ックサイズ32バイトとしてある。プログラムカウンタ
より送出された信号113はアドレスレジスタ2503
にセットされる。アドレスの3〜12ビットで、ディレ
クトリ2500とデータメモリ2501が引かれる。コ
ンパレータ2505は、ディレクトリ出力とアドレスレ
ジスタの13〜32ビットを比較する。不一致であれ
ば、信号2508により、キャッシュ制御回路2506
にそれを知らせる。キャッシュ制御回路2506は、主
メモリよりミスヒットした命令を含むブロックを読み出
し、データメモリ2501にセットする。一方、セレク
タ2502は、アドレスレジスタの第1,2ビットを用
いて、ブロックの中から必要な2命令を選択する。第1
命令と第2命令は必ず同一ブロック内にあり、片方のみ
ミスヒットすることはない。
In FIG. 28, the data memory has 8K words and the block size is 32 bytes. The signal 113 sent from the program counter is stored in the address register 2503.
Is set to The directory 2500 and the data memory 2501 are looked up with 3 to 12 bits of the address. The comparator 2505 compares the directory output with bits 13 to 32 of the address register. If they do not match, a signal 2508 causes the cache control circuit 2506 to
Let it know. The cache control circuit 2506 reads the block containing the missed instruction from the main memory, and sets the read block in the data memory 2501. On the other hand, the selector 2502 uses the first and second bits of the address register to select necessary two instructions from the block. First
The instruction and the second instruction are always in the same block, and only one of them does not miss.

【0060】図29は、図1命令ユニット103の他の
構成例を示したものである。2600はキャッシュメモリ、
2601は競合検出回路、2302は第1マスク回路、
2303は第2マスク回路である。図26の構成との違い
は、シャッシュに競合ビット保持のフィールドがなく、
キャッシュ出力の第1命令2601と第2命令2602
を、毎サイクル競合検出回路2601が監視しているこ
とである。第1マスク回路2302,第2マスク回路2
303の動作は、図26のものと同じである。本実施例
によれば、キャッシュ読み出し後に毎サイクル競合検出
回路が働くので、マシンサイクルが伸びるという欠点が
あるが、キャッシュ内の競合ビットフィールドがなくて
よいという利点がある。
FIG. 29 shows another example of the configuration of the instruction unit 103 in FIG. 2600 is cache memory,
2601 is a conflict detection circuit, 2302 is a first mask circuit,
2303 is a second mask circuit. The difference from the configuration of FIG. 26 is that there is no conflict bit holding field in the hash,
First instruction 2601 and second instruction 2602 of cache output
Is monitored by the conflict detection circuit 2601 every cycle. First mask circuit 2302, second mask circuit 2
The operation of 303 is the same as that of FIG. According to this embodiment, since the conflict detection circuit operates every cycle after the cache is read, there is a disadvantage that the machine cycle is extended, but there is an advantage that there is no need for a conflict bit field in the cache.

【0061】さらに、本実施例では、1マシンサイクル
に2命令ずつ処理されることを生かして、図30に示す
ように特殊な場合に条件付分岐命令をさらに高速化する
ことができる。即ち、条件付分岐命令において、条件成
立時の分岐先が次の次の命令(図30命令2)である
時、条件の成否にかかわらず、命令2,命令3を実行
し、条件の成否により、命令1のWステージを抑止する
かどうかを制御することにより、条件成立時の待サイク
ルをなくすことができる。ただし、この場合、条件分岐
命令は必ず第1命令側におくこととする。通常の条件付
分岐では、図14を用いて説明したように、分岐成立時
には、1サイクルの待サイクルが生じる。言葉を換えて
説明すれば、本発明では1マシンサイクルに2命令ずつ
処理するので、2命令単位での命令処理フローに影響を
与えずに、第1命令側の条件付分岐命令の条件の成否に
より、第2命令側の命令の実行を制御することができ
る。
Furthermore, in the present embodiment, by taking advantage of the fact that two instructions are processed in one machine cycle, it is possible to further speed up conditional branch instructions in special cases as shown in FIG. That is, in the conditional branch instruction, when the branch destination at the time when the condition is satisfied is the next instruction (instruction 2 in FIG. 30), the instructions 2 and 3 are executed regardless of whether or not the condition is satisfied. By controlling whether the W stage of instruction 1 is suppressed, it is possible to eliminate a waiting cycle when the condition is satisfied. However, in this case, the conditional branch instruction is always placed on the first instruction side. In the ordinary conditional branch, as described with reference to FIG. 14, when the branch is taken, one wait cycle occurs. In other words, in the present invention, two instructions are processed in one machine cycle, so that the condition of the conditional branch instruction on the first instruction side is satisfied without affecting the instruction processing flow in units of two instructions. Thus, the execution of the instruction on the second instruction side can be controlled.

【0062】さらに、本実施例では、1マシンサイクル
に2命令ずつ処理されることを生かして、“アトミッ
ク”な処理を容易に実現することができる。アトミック
処理とは、必ず一続きに行われる処理のことで、プロセ
ス間の同期等に使用される。図31(a)は従来の計算
機の場合であり、(b)は本実施例について説明してい
る。(a)では各命令の間に割込みが入る可能性がある
が、(b)では、命令1と命令2の間、及び、命令3と
命令4の間には決して割込みが入らない。このため、
(a)では、任意の命令のすき間に、他のプロセスを処
理するプログラムが入る可能性があるが、(b)では、
命令1と命令2,命令3と命令4は必ず一続きに実行さ
れることが保証されているという利点がある。
Further, in this embodiment, "atomic" processing can be easily realized by taking advantage of processing two instructions in one machine cycle. Atomic processing is processing that is always performed continuously, and is used for synchronization between processes. FIG. 31A illustrates the case of a conventional computer, and FIG. 31B illustrates the present embodiment. In (a), there is a possibility that an interrupt occurs between the instructions, but in (b), no interrupt occurs between the instructions 1 and 2 and between the instructions 3 and 4. For this reason,
In (a), there is a possibility that a program for processing another process may be inserted in the space between arbitrary instructions, but in (b),
There is an advantage that instructions 1 and 2 and instructions 3 and 4 are guaranteed to be executed in succession.

【0063】図32は、本発明の他の実施例の構成を示
した図である。本実施例では、1マシンサイクルに4命
令ずつ処理することができる。3200はメモリインタ
フェース、3201はプログラムカウンタ、3202は
シーケンサ、3203は命令ユニット、3204〜32
07は、第1〜4命令レジスタ、3208〜3211
は、第1〜4デコーダ、3212はMDR、3213は
MAR、3214,3215,3217,3218は、第1
〜4演算ユニット,3216はレジスタファイルであ
る。各演算ユニットはレジスタファイル3216を共有
している。各部の動作説明は、図1で示した実施例と同
じなので省略する。
FIG. 32 is a diagram showing the configuration of another embodiment of the present invention. In this embodiment, four instructions can be processed in one machine cycle. 3200 is a memory interface, 3201 is a program counter, 3202 is a sequencer, 3203 is an instruction unit, 3204 to 32
07 is the first to fourth instruction registers, 3208 to 3211
Are first to fourth decoders, 3212 is MDR, 3213 is MAR, 3214, 3215, 3217, and 3218 are first decoders.
4 operation units and 3216 are register files. Each operation unit shares the register file 3216. The description of the operation of each unit is the same as that of the embodiment shown in FIG.

【0064】同様に、さらに並列度をあげることは可能
であるが、数命令に1つの割合で分岐命令が存在するよ
うなプログラムもあり、そのようなプログラムでは、極
端に並列度をあげても、あまり効果が得られない。2〜
4命令同時処理程度が至当である。分岐が少なく、競合
も少ないプログラムでは、さらに並列度をあげれば、効
果的に性能が高まる。また、並列度を2n(nは自然数)
とすることにより、命令ユニットの制御を容易にするこ
とができる。
Similarly, although it is possible to further increase the degree of parallelism, there are also programs in which a branch instruction is present at a rate of one in several instructions. In such a program, even if the degree of parallelism is extremely increased, , Not very effective. Two
About four instructions simultaneous processing is reasonable. For programs with fewer branches and less contention, increasing the degree of parallelism will effectively improve performance. In addition, the degree of parallelism is 2 n (n is a natural number)
Thus, control of the instruction unit can be facilitated.

【0065】さらに、本発明の他実施例について述ベ
る。これまでの実施例では、常に複数命令同時処理を行
っていた。通常は1マシンサイクルに1命令ずつ処理
し、部分的に複数命令同時処理を行うことによっても利
益を得ることができる。図33に3つの例を示す。図3
3(a)では、第1命令は主メモリ、第2命令はアドレ
ス空間の先頭部分のみにあり、かつ、ROM化されてい
る。(b)では、第1命令,第2命令ともに、アドレス
空間の先頭部分でROM化されている。他の部分は第1
命令のみで、主メモリにある。(c)では、(a)とほ
ぼ同じであるが、第2命令のROM化部分がアドレス空
間の中間にある。計算機全体の構成は図1と同じであ
り、ただ命令ユニット103を変更すればよい。ROM
部分には、使用ひん度が高く、並列度の高いプログラム
を書いておき、主ルーチンよりサブルーチンコールによ
って利用する。ROM部分は小容量でよいので、コンパ
イラがなくても、アセンブラにより最適なプログラムを
作成することができる。
Further, another embodiment of the present invention will be described. In the above embodiments, simultaneous processing of a plurality of instructions has always been performed. Normally, one instruction is processed in one machine cycle, and a benefit can also be obtained by partially processing a plurality of instructions simultaneously. FIG. 33 shows three examples. FIG.
In 3 (a), the first instruction is in the main memory, the second instruction is only at the head of the address space, and is stored in ROM. In (b), both the first instruction and the second instruction are ROMized at the head of the address space. Other parts are first
Only the instructions are in main memory. (C) is almost the same as (a), except that the ROMized part of the second instruction is in the middle of the address space. The configuration of the entire computer is the same as that of FIG. 1, and the instruction unit 103 may be changed. ROM
In the part, a program with high use frequency and high parallelism is written and used by a subroutine call from the main routine. Since the ROM portion may have a small capacity, an optimum program can be created by an assembler without a compiler.

【0066】図34は、図33(a)を実現するための、
図1命令ユニット103の構成を示したものである。2
900はキャッシュ,2901は4K語のROM、29
03はマスク回路、2902はマスク回路制御回路であ
る。マスク回路制御回路はアドレス113を常に監視し
ておりアドレスの上位12〜31ビットがオールゼロの
時のみ、有効信号2904をアサートする。マスク回路
2903は、有効信号2904がアサートされた時の
み、ROM出力2905を第2命令レジスタへの出力1
17として送出する。他の時はNOP命令を送出する。
FIG. 34 is a diagram for explaining FIG. 33 (a).
FIG. 1 shows the configuration of the instruction unit 103. 2
900 is a cache, 2901 is a 4K ROM, 29
03 is a mask circuit, and 2902 is a mask circuit control circuit. The mask circuit control circuit constantly monitors the address 113, and asserts the valid signal 2904 only when the upper 12 to 31 bits of the address are all zero. The mask circuit 2903 outputs the ROM output 2905 to the second instruction register 1 only when the valid signal 2904 is asserted.
It is transmitted as 17. At other times, a NOP command is sent.

【0067】図33(c)を実現するためには、図34
マスク回路制御回路2902を図35のようにすればよ
い。3000はコンパレータ、3001はベースレジス
タである。ベースレジスタの上位12〜31ビットと、
アドレス113の上位12〜31ビットが一致した時
に、コンパレータ3000は、有効信号2904をアサ
ートする。
In order to realize FIG. 33 (c), FIG.
The mask circuit control circuit 2902 may be as shown in FIG. 3000 is a comparator and 3001 is a base register. The upper 12 to 31 bits of the base register;
When the upper 12 to 31 bits of the address 113 match, the comparator 3000 asserts a valid signal 2904.

【0068】図33(b)を実現するためには、図1命
令ユニット103を図36のように構成すればよい。2
901,2902,2903の機能は図29で説明した
同一番号のものと同じである。3100はキャッシュ、
3101は4K語のROM、3102はセレクタ制御回
路、3107はセレクタである。セレクタ制御回路31
02は、アドレス113の上位12〜31ビットを常に
監視し、それらがオールゼロの時のみROM選択信号3
105をアサートする。セレクタ3107は、ROM選
択信号3105がアサートされた時のみROM出力信号
3104を、第1命令レジスタへの出力115として送
出する。他の時には、キャッシュ出力3103を送出す
る。
In order to realize FIG. 33 (b), the instruction unit 103 in FIG. 1 may be configured as shown in FIG. 2
The functions 901, 902, and 2903 are the same as those of the same numbers described in FIG. 3100 is a cache,
3101 is a 4K word ROM, 3102 is a selector control circuit, and 3107 is a selector. Selector control circuit 31
02 always monitors the upper 12 to 31 bits of the address 113, and only when they are all zero, the ROM selection signal 3
Assert 105. The selector 3107 sends out the ROM output signal 3104 as the output 115 to the first instruction register only when the ROM selection signal 3105 is asserted. At other times, the cache output 3103 is sent.

【0069】図33〜図36を用いて述べたように、部
分的に複数命令同時処理を行い、その部分をROM化す
ることによりハードウエアを削減できる。また、ROM
部分のみであればアセンブラによって最適設計できるの
で、複数命令同時処理を意識したコンパイラを開発しな
くてもよいという利点がある。さらに、ROM部分を書
き換えることにより、アプリケーションごとに、アプリ
ケーションに適した高速化が実現できる。
As described with reference to FIG. 33 to FIG. 36, hardware can be reduced by partially performing simultaneous processing of a plurality of instructions and converting the part to a ROM. Also, ROM
Since only the part can be optimally designed by the assembler, there is an advantage that it is not necessary to develop a compiler that is aware of simultaneous processing of a plurality of instructions. Further, by rewriting the ROM portion, it is possible to realize a high speed suitable for each application.

【0070】[0070]

【発明の効果】本発明によれば、複雑な命令は基本命令
に分解され、かつ、1マシンサイクルで複数の命令が同
時に読み出され、実行されるために、複数の演算器が同
時に動き、処理能力を高めることができる。また、命令
の機能が簡単で、パイプライン段数を短くできるので、
分岐時のオーバヘッドを小さくできる。
According to the present invention, a complicated instruction is decomposed into basic instructions, and a plurality of instructions are simultaneously read and executed in one machine cycle. Processing capacity can be increased. Also, since the function of the instruction is simple and the number of pipeline stages can be shortened,
The overhead at the time of branching can be reduced.

【0071】また、複数演算器が並列して動くため、複
雑な処理の処理時間を短縮することができる。
Further, since a plurality of arithmetic units operate in parallel, the processing time of complicated processing can be reduced.

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

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

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

【図3】図2の動作を説明するタイミングチャートを示
した図である。
FIG. 3 is a timing chart illustrating the operation of FIG. 2;

【図4】図2の動作を説明するタイミングチャートを示
した図である。
FIG. 4 is a diagram showing a timing chart for explaining the operation of FIG. 2;

【図5】図2の動作を説明するタイミングチャートを示
した図である。
FIG. 5 is a diagram showing a timing chart for explaining the operation of FIG. 2;

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

【図7】図6の動作を説明するタイミングチャートを示
した図である。
FIG. 7 is a timing chart illustrating the operation of FIG. 6;

【図8】図6の動作を説明するタイミングチャートを示
した図である。
FIG. 8 is a diagram showing a timing chart for explaining the operation of FIG. 6;

【図9】本発明の一実施例の命令一覧を示した図であ
る。
FIG. 9 is a diagram showing a list of instructions according to an embodiment of the present invention.

【図10】本発明の一実施例にかかる命令フオーマット
を示した図である。
FIG. 10 is a diagram showing an instruction format according to an embodiment of the present invention.

【図11】本発明の一実施例の動作を説明するタイミン
グチャートを示した図である。
FIG. 11 is a diagram showing a timing chart for explaining the operation of one embodiment of the present invention.

【図12】本発明の一実施例の動作を説明するタイミン
グチャートを示した図である。
FIG. 12 is a diagram showing a timing chart for explaining the operation of one embodiment of the present invention.

【図13】本発明の一実施例の動作を説明するタイミン
グチャートを示した図である。
FIG. 13 is a diagram showing a timing chart for explaining the operation of one embodiment of the present invention.

【図14】本発明の一実施例の動作を説明するタイミン
グチャートを示した図である。
FIG. 14 is a diagram showing a timing chart for explaining the operation of one embodiment of the present invention.

【図15】従来例の動作を説明するタイミングチャート
を示した図である。
FIG. 15 is a diagram showing a timing chart for explaining the operation of the conventional example.

【図16】本発明の一実施例の動作を説明するタイミン
グチャートを示した図である。
FIG. 16 is a timing chart illustrating the operation of one embodiment of the present invention.

【図17】本発明の一実施例の動作を説明するタイミン
グチャートを示した図である。
FIG. 17 is a timing chart for explaining the operation of one embodiment of the present invention.

【図18】本発明の一実施例の動作を説明するタイミン
グチャートを示した図である。
FIG. 18 is a diagram showing a timing chart for explaining the operation of one embodiment of the present invention.

【図19】図1の第1演算ユニット110の構成を示し
た図である。
FIG. 19 is a diagram illustrating a configuration of a first arithmetic unit 110 of FIG. 1;

【図20】図1の第2演算ユニット112の構成を示し
た図である。
FIG. 20 is a diagram showing a configuration of a second arithmetic unit 112 in FIG. 1;

【図21】図1のレジスタファイル111の構成を示し
た図である。
FIG. 21 is a diagram showing a configuration of a register file 111 of FIG. 1;

【図22】図1に示した本発明の一実施例の動作を説明
するための図である。
FIG. 22 is a diagram for explaining the operation of the embodiment of the present invention shown in FIG. 1;

【図23】図1に示した本発明の一実施例の動作を説明
するための図である。
FIG. 23 is a diagram for explaining the operation of the embodiment of the present invention shown in FIG. 1;

【図24】図1に示した本発明の一実施例の動作を説明
するための図である。
FIG. 24 is a diagram for explaining the operation of the embodiment of the present invention shown in FIG. 1;

【図25】図1に示した本発明の一実施例の動作を説明
するための図である。
FIG. 25 is a diagram for explaining the operation of the embodiment of the present invention shown in FIG. 1;

【図26】図1の命令ユニット103の構成を示した図
である。
FIG. 26 is a diagram showing a configuration of an instruction unit 103 of FIG. 1;

【図27】その動作を説明するための図である。FIG. 27 is a diagram for explaining the operation.

【図28】図26のキャッシュ2301の構成を示した
図である。
FIG. 28 is a diagram showing a configuration of a cache 2301 in FIG. 26;

【図29】図1の命令ユニット103の他の構成を示し
た図である。
FIG. 29 is a diagram showing another configuration of the instruction unit 103 of FIG. 1;

【図30】本発明の一実施例の動作を説明するタイミン
グチャートを示した図である。
FIG. 30 is a diagram showing a timing chart for explaining the operation of one embodiment of the present invention.

【図31】命令構成を示した図である。FIG. 31 is a diagram showing an instruction configuration.

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

【図33】部分的に複数命令同時処理を行う本発明の他
の実施例を説明するための図である。
FIG. 33 is a diagram illustrating another embodiment of the present invention in which a plurality of instructions are simultaneously processed.

【図34】部分的に複数命令同時処理を行う本発明の他
の実施例を説明するための図である。
FIG. 34 is a diagram for explaining another embodiment of the present invention in which a plurality of instructions are simultaneously processed.

【図35】部分的に複数命令同時処理を行う本発明の他
の実施例を説明するための図である。
FIG. 35 is a diagram for explaining another embodiment of the present invention in which a plurality of instructions are simultaneously processed.

【図36】部分的に複数命令同時処理を行う本発明の他
の実施例を説明するための図である。
FIG. 36 is a diagram for explaining another embodiment of the present invention in which a plurality of instructions are simultaneously processed.

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

103…命令ユニット、104…第1命令レジスタ、1
05…第2命令レジスタ、110…第1演算ユニット、
111…レジスタファイル、112…第2演算ユニッ
ト。
103: instruction unit, 104: first instruction register, 1
05: second instruction register, 110: first arithmetic unit,
111: register file, 112: second operation unit.

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−70938(JP,A) 特開 平2−127731(JP,A) 特開 昭63−136138(JP,A) 特開 昭63−86033(JP,A) 特開 昭63−47834(JP,A) 特開 昭63−148330(JP,A) 特開 平2−128223(JP,A) 入江直彦(外3名)”SIMP(単一 命令流/多重命令パイプライン)方式に 基づく『新風』プロセッサの高速化技法 および性能予測”,情報処理学会研究報 告,Vol.88,No.79(ARC− 73),昭和63年10月31日,p.77−84 (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 ──────────────────────────────────────────────────続 き Continuation of front page (56) References JP-A-62-70938 (JP, A) JP-A-2-127773 (JP, A) JP-A-63-136138 (JP, A) JP-A-63-136138 86033 (JP, A) JP-A-63-47834 (JP, A) JP-A-63-148330 (JP, A) JP-A-2-128223 (JP, A) Naohiko Irie (three outsiders) 1 High-speed Technique and Performance Prediction of “Shinpu” Processor Based on Instruction Flow / Multiple Instruction Pipeline) ”, Information Processing Society of Japan, Vol. 88, No. 79 (ARC-73), October 31, 1988, p. 77-84 (58) Field surveyed (Int. Cl. 7 , DB name) G06F 9/38

Claims (20)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】複数の命令を記憶するメモリと、 データを格納するレジスタと、 上記メモリに記憶された複数の命令を並列に実行可能な
複数の演算器と、 上記レジスタに格納されたデータをそれぞれの上記演算
器に送るための複数の第1の信号線と、 それぞれの上記演算器の演算結果であるデータを上記レ
ジスタに格納するための複数の第2の信号線と、 上記演算器で演算された結果であるデータを次のサイク
ルの演算で使うために複数の上記第1の信号線と複数の
上記第2の信号線とを接続するためのバイパス回路とを
し、 上記バイパス回路は複数の上記演算器で実行される命令
によって制御される データ処理装置。
A memory for storing a plurality of instructions; a register for storing data; a plurality of arithmetic units capable of executing the plurality of instructions stored in the memory in parallel; A plurality of first signal lines for sending the obtained data to each of the computing units; a plurality of second signal lines for storing data, which is the computation result of each of the computing units, in the register; possess a bypass circuit for connecting the plurality of the first signal lines and a plurality of said second signal line in order to use the data is a result calculated by the arithmetic unit in the calculation of the next cycle , The bypass circuit executes instructions executed by the plurality of arithmetic units.
Data processing device controlled by .
【請求項2】複数の命令を記憶するメモリと、 データを格納する複数のレジスタと、 上記メモリに記憶された異なった命令を並列に実行可能
複数の演算器と、 それぞれの上記レジスタの出力部とそれぞれの上記演算
器の入力部に接続された複数の第1の信号線と、 それぞれの上記演算器の出力部とそれぞれの上記レジス
タの入力部に接続された複数の第2の信号線と、 上記演算器で演算された結果であるデータを次のサイク
ルの演算で使うために複数の上記第1の信号線と複数の
上記第2の信号線とを接続するためのバイパス回路とを
し、 上記バイパス回路は複数の上記演算器で実行される命令
によって制御される データ処理装置。
2. A memory for storing a plurality of instructions, a plurality of registers for storing data, and different instructions stored in the memory can be executed in parallel.
A plurality of computing units, an output unit of each of the registers, a plurality of first signal lines connected to an input unit of each of the computing units, an output unit of each of the computing units, and a A plurality of second signal lines connected to the input unit; a plurality of the first signal lines and a plurality of the second signal lines in order to use data obtained as a result of the operation in the operation in the next cycle; instruction possess a bypass circuit for connecting the signal line, the bypass circuit is to be executed by a plurality of said arithmetic unit
Data processing device controlled by .
【請求項3】請求項1又は2において、上記バイパス回
路は上記第1の信号線と上記第2の信号線とを接続する
スイッチで構成されたデータ処理装置。
3. The data processing device according to claim 1, wherein said bypass circuit is constituted by a switch for connecting said first signal line and said second signal line.
【請求項4】複数の命令を格納するメモリと、 データを格納するレジスタと、 上記メモリに格納された複数の命令を並列に実行可能な
複数の演算器と、 上記レジスタに格納されたデータを上記演算器に送るた
めの複数の第1の信号線と、 上記演算器で演算された結果であるデータを上記レジス
タに格納するための複数の第2の信号線と、一の演算器の 演算結果を、他の演算器の演算で使うため
に複数の上記第1の信号線と複数の上記第2の信号線と
を接続する複数のスイッチとを有するデータ処理装置。
4. A memory for storing a plurality of instructions; a register for storing data; a plurality of arithmetic units capable of executing a plurality of instructions stored in the memory in parallel; has been a plurality of first signal lines for sending the data to the arithmetic unit, a plurality of second signal lines for storing data in the register is a result calculated by the arithmetic unit, one A data processing device comprising: a plurality of switches for connecting a plurality of the first signal lines and a plurality of the second signal lines so that an operation result of an operation unit is used in an operation of another operation unit.
【請求項5】複数の命令を格納するメモリと、 データを格納する複数のレジスタと、 上記メモリに格納された異なった命令を並列に実行可能
複数の演算器と、 上記レジスタから上記演算器にデータを転送するため
に、それぞれの上記レジスタとそれぞれの上記演算器に
接続された複数の第1の信号線と、 上記演算器から上記レジスタにデータを転送するため
に、それぞれの上記演算器とそれぞれの上記レジスタに
接続された複数の第2の信号線と、一の演算器 の演算結果を、他の演算器の演算で使うため
に複数の上記第1の信号線と複数の上記第2の信号線と
を接続する複数のスイッチとを有するデータ処理装置。
5. A memory for storing a plurality of instructions, a plurality of registers for storing data, and different instructions stored in the memory can be executed in parallel.
A plurality of arithmetic units; a plurality of first signal lines connected to each of the registers and each of the arithmetic units for transferring data from the register to the arithmetic units; In order to transfer data to the above, the plurality of second signal lines connected to each of the arithmetic units and the respective registers, and the operation result of one of the arithmetic units is used for the operation of another arithmetic unit. A data processing device having a plurality of switches for connecting the plurality of first signal lines and the plurality of second signal lines.
【請求項6】命令を格納するメモリと、 データを格納するレジスタファイルと、 上記メモリに格納された命令に基づいて演算を実行する
複数の演算器とを有し、 上記レジスタファイルは、連続して実行される第1の演
算と第2の演算において、上記第1の演算による演算結
果を上記第2の演算で使えるように上記第1の演算器か
ら出力されたデータを上記第2の演算器の入力へ転送す
るバイパス回路を有するデータ処理装置。
6. A memory for storing instructions, a register file for storing data, and a plurality of arithmetic units for executing operations based on the instructions stored in the memory. In the first operation and the second operation executed by the first operation unit, the data output from the first operation unit is converted into the second operation so that the operation result of the first operation can be used in the second operation. A data processing device having a bypass circuit for transferring to an input of a device.
【請求項7】請求項6において、上記レジスタファイル
は複数のレジスタを有するデータ処理装置。
7. A data processing apparatus according to claim 6, wherein said register file has a plurality of registers.
【請求項8】請求項7において、上記複数のレジスタと
上記複数の演算器とはレジスタに格納されたデータを演
算器へ送るための複数の第1の信号線と、演算器の演算
結果であるデータを上記レジスタに格納するための複数
の第2の信号線によって接続され、上記バイパス回路は
上記複数の第1の信号線と上記複数の第2の信号線とを
接続するスイッチであるデータ処理装置。
8. The arithmetic unit according to claim 7, wherein the plurality of registers and the plurality of arithmetic units are a plurality of first signal lines for transmitting data stored in the registers to the arithmetic unit, and a plurality of arithmetic units. A plurality of second signal lines for storing certain data in the register, wherein the bypass circuit is a switch for connecting the plurality of first signal lines and the plurality of second signal lines; Processing equipment.
【請求項9】請求項6,7又は8において、上記第1の
演算と上記第2の演算は異なる演算器で実行されるデー
タ処理装置。
9. A data processing apparatus according to claim 6, wherein said first operation and said second operation are executed by different arithmetic units.
【請求項10】複数の命令を記憶するメモリと、データ
を格納するレジスタと、上記メモリに記憶された命令に
基づいて演算を実行する複数の演算器と、上記レジスタ
に格納されたデータを複数の上記演算器に送るための複
数の第1の信号線と、それぞれの上記演算器の演算結果
であるデータを上記レジスタに格納するための複数の第
2の信号線と、異なった演算器で実行される命令が示す
レジスタの番地が一致したときに、レジスタの番地が一
致した演算器間でデータの転送が可能なバイパス回路と
を有するデータ処理装置。
10. A memory for storing a plurality of instructions, a register for storing data, a plurality of arithmetic units for executing an operation based on the instructions stored in the memory, and a plurality of data for storing the data stored in the register. A plurality of first signal lines for sending to the above-mentioned computing units, a plurality of second signal lines for storing the data as the computation results of the respective computing units in the above-mentioned registers , When the address of the register indicated by the instruction to be executed matches, the address of the register is
A data processing device having a bypass circuit capable of transferring data between the specified computing units .
【請求項11】複数の命令を記憶するメモリと、データ
を格納する複数のレジスタと、上記メモリに記憶された
命令に基づいて演算を実行する複数の演算器と、 上記レジスタから上記演算器にデータを送るために、そ
れぞれの上記レジスタとそれぞれの上記演算器に接続さ
れた複数の第1の信号線と、 上記演算器から上記レジスタにデータを送るために、そ
れぞれの上記演算器とそれぞれの上記レジスタに接続さ
れた複数の第2の信号線と、異なった演算器間で実行される 命令が示すレジスタの番
地が一致したときに、レジスタの番地が一致した演算器
間でデータの転送が可能なバイパス回路とを有するデー
タ処理装置。
11. A memory for storing a plurality of instructions, a plurality of registers for storing data, a plurality of arithmetic units for executing operations based on the instructions stored in the memory, and A plurality of first signal lines connected to the respective registers and the respective arithmetic units for transmitting data; and the respective arithmetic units and respective respective first and second lines for transmitting data from the arithmetic units to the registers. When the plurality of second signal lines connected to the register and the address of the register indicated by the instruction executed between different arithmetic units match, the arithmetic unit whose register address matches
And a bypass circuit capable of transferring data between the data processing devices.
【請求項12】請求項10又は11において、 上記連続する命令は、異なる演算器で実行されるデータ
処理装置。
12. The data processing device according to claim 10, wherein the continuous instructions are executed by different arithmetic units.
【請求項13】複数の命令を格納するメモリと、 データを格納するレジスタと、 上記メモリに格納された命令によって演算を実行する複
数の演算器と、 上記レジスタに格納されたデータを演算器に送るための
複数の第1の信号線と、 上記演算器で演算された結果であるデータを上記レジス
タに格納するための複数の第2の信号線と、異なった演算器間で実行される 命令が示すレジスタの番
地が一致するときに、レジスタの番地が一致した演算器
間でデータの転送を可能とするために上記第1の信号線
と上記第2の信号線とを接続するためのスイッチを有す
るデータ処理装置。
13. A memory for storing a plurality of instructions, a register for storing data, a plurality of arithmetic units for performing operations in accordance with the instructions stored in the memory, and a plurality of arithmetic units for storing the data stored in the registers. A plurality of first signal lines for sending, a plurality of second signal lines for storing data obtained as a result of the arithmetic operation in the register, and an instruction executed between different arithmetic units The arithmetic unit whose register address matches when the register address indicated by
A data processing device having a switch for connecting the first signal line and the second signal line so that data can be transferred between the first signal line and the second signal line.
【請求項14】複数の命令を格納するメモリと、 データを格納する複数のレジスタと、 上記メモリに格納された命令によって演算を実行する複
数の演算器と、 上記レジスタから上記演算器にデータを送る複数の第1
の信号線と、 上記演算器から上記レジスタにデータを送る複数の第2
の信号線と、異なった演算器間で実行される 命令が示すレジスタの番
地が一致するときに、レジスタの番地が一致した演算器
間でデータの転送を可能とするために上記第1の信号線
と上記第2の信号線とを接続するためのスイッチを有す
るデータ処理装置。
14. A memory for storing a plurality of instructions, a plurality of registers for storing data, a plurality of arithmetic units for executing operations according to the instructions stored in the memory, and data from the registers to the arithmetic unit. Send multiple first
And a plurality of second lines for transmitting data from the arithmetic unit to the register.
And a signal line, when the address of the register indicated by the instruction to be executed between different calculator match, computing unit address register matches
A data processing device having a switch for connecting the first signal line and the second signal line so that data can be transferred between the first signal line and the second signal line.
【請求項15】請求項13又は14において、上記連続
する2つの命令は、それぞれ異なった演算器で実行され
るデータ処理装置。
15. A data processing apparatus according to claim 13, wherein said two consecutive instructions are executed by different arithmetic units.
【請求項16】複数の命令を記憶するメモリと、 データを格納するレジスタと、 上記メモリに記憶された命令を並列に実行可能な複数の
演算器と、 上記レジスタに格納されたデータを複数の上記演算器に
送るための第1の信号線群と、 それぞれの上記演算器の演算結果であるデータを上記レ
ジスタに格納するための第2の信号線群と、 上記第1の信号線群と上記第2の信号線群とを接続する
バイパス回路とを有し、 上記演算器の演算結果であるデータを上記レジスタに格
納すると共に、上記バイパス回路を通して他の上記演算
器へ送るデータ処理装置。
16. A memory for storing a plurality of instructions, a register for storing data, a plurality of arithmetic units capable of executing the instructions stored in the memory in parallel, and a plurality of arithmetic units for storing the data stored in the register. A first signal line group for sending to the arithmetic unit, a second signal line group for storing data as an operation result of each arithmetic unit in the register, and a first signal line group. A data processing device comprising: a bypass circuit for connecting to the second signal line group; storing data as a calculation result of the arithmetic unit in the register; and transmitting the data to another arithmetic unit through the bypass circuit.
【請求項17】複数の命令を記憶するメモリと、 データを格納する複数のレジスタと、 上記メモリに記憶された命令を並列に実行可能な複数の
演算器と、 上記レジスタから上記演算器にデータを転送するため
に、それぞれの上記レジスタとそれぞれの上記演算器に
接続された複数の第1の信号線と、 上記演算器から上記レジスタにデータを転送するため
に、それぞれの上記演算器とそれぞれの上記レジスタに
接続された複数の第2の信号線と、 上記第2の信号線から上記第1の信号線にデータを転送
するためのバイパス回路とを有し、 演算器の演算結果であるデータの上記レジスタへの格納
と、他の演算器への転送とを同じサイクルで行うデータ
処理装置。
17. A memory for storing a plurality of instructions, a plurality of registers for storing data, a plurality of arithmetic units capable of executing the instructions stored in the memory in parallel, and data from the registers to the arithmetic unit. And a plurality of first signal lines connected to each of the registers and each of the arithmetic units, and each of the arithmetic units to transfer data from the arithmetic unit to the registers. A plurality of second signal lines connected to the register, and a bypass circuit for transferring data from the second signal line to the first signal line. A data processing device for storing data in the register and transferring the data to another arithmetic unit in the same cycle.
【請求項18】複数の命令を記憶するメモリと、 データを格納する複数のレジスタと、 上記メモリに記憶された命令に基づいて演算を実行する
第1,第2の演算器と、 上記レジスタから上記第1の演算器にデータを転送する
ための第1の信号線と、 上記レジスタから上記第2の演算器にデータを転送する
ための第2の信号線と、 上記第1の演算器から上記レジスタにデータを転送する
ための第3の信号線と、 上記第2の演算器から上記レジスタにデータを転送する
ための第4の信号線と、 上記第3の信号線から上記第2の信号線へデータを転送
するための第1のバイパス回路と、 上記第4の信号線から上記第1の信号線へデータを転送
するための第2のバイパス回路とを有するデータ処理装
置。
18. A memory for storing a plurality of instructions, a plurality of registers for storing data, and executing an operation based on the instructions stored in the memory.
Transferring data from the first and second arithmetic units and the register to the first arithmetic unit
Signal line for transferring data from the register to the second computing unit
Signal line for transferring data from the first arithmetic unit to the register
Signal line for transferring data from the second arithmetic unit to the register
A fourth signal line, a data the third signal line to said second signal line transfers for
A first bypass circuit for transferring data from the fourth signal line to the first signal line
Data processing apparatus having a second bypass circuit for
Place.
【請求項19】請求項16,17又は18において、上
記バイパス回路はスイッチで構成されているデータ処理
装置。
19. A data processing apparatus according to claim 16, 17 or 18, wherein said bypass circuit is constituted by a switch.
【請求項20】請求項1,2,3,4,5,6,7,
8,9,10,11,12,13,14,15,16,
17,18,19のいずれかにおいて、上記データ処理
装置は上記メモリに記憶されている命令をデコードする
デコーダを有し、上記演算器は上記デコーダによってデ
コードされた命令によって演算を行うデータ処理装置。
20. The method of claim 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16,
In any one of 17, 18, and 19, the data processing device has a decoder for decoding an instruction stored in the memory, and the arithmetic unit performs an operation based on the instruction decoded by the decoder.
JP09352657A 1997-12-22 1997-12-22 Data processing apparatus and method Expired - Fee Related JP3102399B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09352657A JP3102399B2 (en) 1997-12-22 1997-12-22 Data processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09352657A JP3102399B2 (en) 1997-12-22 1997-12-22 Data processing apparatus and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP63283673A Division JP2810068B2 (en) 1988-11-11 1988-11-11 Processor system, computer system, and instruction processing method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP00881899A Division JP3147884B2 (en) 1999-01-18 1999-01-18 Storage device and information processing device

Publications (2)

Publication Number Publication Date
JPH10187444A JPH10187444A (en) 1998-07-21
JP3102399B2 true JP3102399B2 (en) 2000-10-23

Family

ID=18425552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09352657A Expired - Fee Related JP3102399B2 (en) 1997-12-22 1997-12-22 Data processing apparatus and method

Country Status (1)

Country Link
JP (1) JP3102399B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150589A (en) * 2011-01-18 2012-08-09 Toshiba Corp Arithmetic unit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
入江直彦(外3名)"SIMP(単一命令流/多重命令パイプライン)方式に基づく『新風』プロセッサの高速化技法および性能予測",情報処理学会研究報告,Vol.88,No.79(ARC−73),昭和63年10月31日,p.77−84

Also Published As

Publication number Publication date
JPH10187444A (en) 1998-07-21

Similar Documents

Publication Publication Date Title
JP2810068B2 (en) Processor system, computer system, and instruction processing method
JP2834837B2 (en) Programmable controller
JP2550213B2 (en) Parallel processing device and parallel processing method
JP3842474B2 (en) Data processing device
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JPH04309131A (en) Microcode generating apparatus for instruction group and combining apparatus in computer
US5041968A (en) Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location
JPH07120284B2 (en) Data processing device
JP4502532B2 (en) Data processing device
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
US6829700B2 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
JP3102399B2 (en) Data processing apparatus and method
US5983344A (en) Combining ALU and memory storage micro instructions by using an address latch to maintain an address calculated by a first micro instruction
JP3147884B2 (en) Storage device and information processing device
EP1235139B1 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
JP2636821B2 (en) Parallel processing unit
JPH02211534A (en) Parallel processor
JP2927281B2 (en) Parallel processing unit
JP2785820B2 (en) Parallel processing unit
JP2696578B2 (en) Data processing device
JPH04264954A (en) Compound instruction computer
JPS58129553A (en) Pipeline computer

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees