JPH11272463A - Storage device and information processor - Google Patents

Storage device and information processor

Info

Publication number
JPH11272463A
JPH11272463A JP11008818A JP881899A JPH11272463A JP H11272463 A JPH11272463 A JP H11272463A JP 11008818 A JP11008818 A JP 11008818A JP 881899 A JP881899 A JP 881899A JP H11272463 A JPH11272463 A JP H11272463A
Authority
JP
Japan
Prior art keywords
instruction
instructions
area
information
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11008818A
Other languages
Japanese (ja)
Other versions
JP3147884B2 (en
Inventor
Takashi Hotta
多加志 堀田
Shigeya Tanaka
成弥 田中
Hideo Maejima
英雄 前島
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 JP00881899A priority Critical patent/JP3147884B2/en
Publication of JPH11272463A publication Critical patent/JPH11272463A/en
Application granted granted Critical
Publication of JP3147884B2 publication Critical patent/JP3147884B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To efficiently operate an arithmetic unit without any waste. SOLUTION: Plural instructions and information indicating a competing state for those plural instructions are stored in a cache 2301. A first mask circuit 2302 and a second mask circuit 2303 input the instructions and the information from the cache, and decides the instruction to be outputted according to this information. An arithmetic unit executes the decided instruction. Thus, the instruction is applied to the arithmetic unit based on the information outputted from the memory so that plural arithmetic units can be operated without any waste, and processing efficiency can be improved.

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. Such a method is discussed in detail in Shinji Tomita, "Parallel Computer Configuration Theory", Shokodo, pp. 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 large 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. In RISC, on the other hand, instead of narrowing down instructions to simple ones, instead of using microinstructions,
Speeding up is controlled by hard wired logic.
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は命令デコーダ、2
05はアドレス計算制御回路、206はマイクロ命令を
格納しておくControl Storage(CS)、207はマイク
ロ命令カウンタ、208はマイクロ命令レジスタ、20
9はデコーダ、210はメモリとデータをやり取りする
レジスタMDR(Memory Dtata Register)、211は
メモリ上のオペランドアドレスを示すレジスタMAR
(Memory AddressRegister)、212はアドレス加算
器、213はレジスタファイル、214はALU(Arit
hmetic 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, 2
05 is an address calculation control circuit, 206 is a Control Storage (CS) for storing microinstructions, 207 is a microinstruction counter, 208 is a microinstruction register, 20
9 is a decoder, 210 is a register MDR (Memory Dtata Register) for exchanging data with the memory, and 211 is a register MAR indicating an operand address on the memory.
(Memory Address Register), 212 is an address adder, 213 is a register file, 214 is an ALU (Arit
hmetic 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. 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 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, which becomes a bottleneck in 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を制御する。R
(Read)ステージでは、レジスタファイル607より、
命令で示されたレジスタが、バス618,619を通し
て、ALU608に転送される。また、E(Execution)ステー
ジでは、ALU608により、演算が行われる。最後にW(Wri
te)ステージでは、演算された結果がレジスタファイル
607に、バス620を通して格納される。
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. 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 (Wri
In the te) 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 simple instructions,
It has 4 steps.

【0014】図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.

【0015】[0015]

【発明が解決しようとする課題】上記従来技術の問題点
について整理して述ベる。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. Further, when executing a complicated instruction, only the E stage moves, so that there is a problem that play occurs in the address adder.

【0016】また、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.

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

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

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

【0020】[0020]

【課題を解決するための手段】上記目的を達成するため
に本発明は、演算器で実行する複数の命令と、この命令
を並列に処理するか否かを示す情報とを記憶させ、複数
の命令と情報とを出力するメモリを特徴としている。
In order to achieve the above object, the present invention provides a method for storing a plurality of instructions to be executed by an arithmetic unit and information indicating whether or not the instructions are to be processed in parallel. It features a memory that outputs instructions and information.

【0021】これにより、メモリから出力される情報に
基づいて演算器に命令を与えることにより、複数の演算
器を無駄なく動作させて処理効率を高めることができ
る。
Thus, by giving instructions to the arithmetic units based on the information output from the memory, the plurality of arithmetic units can be operated without waste and the processing efficiency can be improved.

【0022】また、上記目的を達成するために、演算器
で実行する複数の命令と、この命令を並列に処理するか
否かを示す情報とを記憶させたメモリと、このメモリか
ら出力された情報に基づいて演算器へ出力する命令を決
定する制御部を有することを特徴としている。
Further, in order to achieve the above object, a memory for storing a plurality of instructions to be executed by an arithmetic unit and information indicating whether or not to execute the instructions in parallel, and a memory for outputting the instructions. It is characterized by having a control unit that determines a command to be output to the arithmetic unit based on the information.

【0023】これにより、複数の演算器を無駄なく動作
させて処理効率を高めることができる。
As a result, a plurality of arithmetic units can be operated without waste and the processing efficiency can be improved.

【0024】[0024]

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

【0025】図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, but
If the content can be processed in a machine cycle, the number of instructions may be further increased.

【0026】図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.

【0027】本実施例の構成を示したのが、図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.

【0028】本実施例では、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 of R (Read), EX (Execution), and W (Write).

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

【0030】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命
令間の各種の競合を示す競合信号である。競合信号がア
サートされた場合には、競合を避けるようにハードウエ
アで制御する。競合回避方法については、後に詳しく述
ベる。
At the IF stage, two instructions pointed to by the program counter are read out, 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.

【0031】次に基本命令処理時の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.

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

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

【0034】最後に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.

【0035】図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.

【0036】図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.

【0037】次に、EXステージで、メモリインタフェ
ース100を通して、オペランドをフェッチする。最後
に、Wステージでフェッチされたオペランドが、バス1
29を通して、第1命令レジスタのディスティネーショ
ンフィールドDで指されるレジスタに格納される。EX
ステージ,1マシンサイクルでオペランドをフェッチす
ることは、メモリインタフェースに高速キャッシュを備
えていれば可能である。特に図1に示す、計算機全体が
半導体基板上に集積され、命令キャッシュ,データキャ
ッシュ共にオンチップ化されている場合などは容易であ
る。もちろん、キャッシュがミスヒットした場合には、
1マシンサイクルでオペランドフェッチを終了すること
ができない。このような時は、システムクロックを止め
て、EXステージを延長すればよい。これは、従来の計
算機でも行われていることである。
Next, the operands are fetched through the memory interface 100 in the EX stage. 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 and one machine cycle is possible if the memory interface has a high-speed cache. This is particularly easy when the entire computer is integrated on a semiconductor substrate as shown in FIG. 1 and both the instruction cache and the data cache are on-chip. Of course, if the cache misses,
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.

【0038】次にストア命令実行時には、Rステージに
おいて、第1命令レジスタの第1ソースレジスタフィー
ルドS1で指されるレジスタの内容がデータとして、バ
ス125を通してMDR108に転送される。また同時に、第
1命令レジスタの第2リースレジスタフィールドS2で
指されるレジスタの内容がアドレスとして、バス126
を通してMAR109に転送される。次にEXステージで、MA
R109で指される番地に、MDR108内のデータが書き込まれ
る。図12に示すように、ロード命令,ストア命令が第
1命令にある場合についても、1マシンサイクルに2命
令ずつ処理することができる。ロード命令,ストア命令
が第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 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.

【0039】図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) 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 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.

【0040】図14は条件分岐命令BRACC の処理フ
ローを示したものである。ADD1Fと示した命令で、
フラグのセットが行われ、その結果に従い分岐の成否が
決められる。この時も、図13を用いて説明した無条件
分岐命令処理時と同様にBRACC命令のおかれている番地
の次の命令、図14命令1と、その次の命令、図14命
令2が読み出され処理される。ただし、この2命令の処
理フロー中Wステージにおいては、BRACC命令の分岐
条件不成立時のみ演算結果のレジスタファイルへの書き
込みが行われる。即ち、分岐命令成立時には、演算結果
の書き込みが抑制される。
[0040] FIG. 14 shows a processing flow of the conditional branch instruction BRA CC. In the instruction labeled ADD 1 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 processing of the unconditional branch instruction described with reference to FIG. 13, the instruction next to the address where the BRAC CC instruction is placed, FIG. 14 instruction 1, the next instruction, and FIG. Read 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.

【0041】以上、図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 can be 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.

【0042】また、複雑な処理も、簡単な命令の組み合
わせで実行するため、従来のCISC型計算機におけるパイ
プライン並列によるアドレス加算器とALUの並列動作
に比して、図1第1演算ユニット110と第2演算ユニ
ット112の並列動作をより遊びなく行うことができる
という利点がある。この点について、もう少し説明す
る。メモリからレジスタへのロードを繰り返す場合、従
来CISC型計算機では図15に示すように、1マシン
サイクルに1つずつデータをロードすることができる。
これに対して本実施例においては、1つのデータのロー
ドに、アドレス計算用ADD命令と、そのアドレスを用
いたLOAD命令の2命令かかるが、図16に示すよう
に1マシンサイクルに2命令ずつ実行できるので、やは
り、1マシンサイクルに1つずつデータをロードでき
る。演算器の並列動作という意味では、両者とも2つの
演算器が同時に並列して動いており、この例では同じで
ある。
Also, since complicated processing is executed by a combination of simple instructions, the first arithmetic unit 110 in FIG. 1 is compared with the parallel operation of the address adder and the ALU by 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.

【0043】さらに複雑な処理について比較したのが、
図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. .

【0044】図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.

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

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

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

【0048】次に第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:

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

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

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

【0052】上記、競合の内、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 to process the load / store instruction and the SFT instruction in the second arithmetic unit.
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.

【0053】図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.

【0054】別の競合解消方式について図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.

【0055】図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.

【0056】図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.

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

【0058】次に、図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.

【0059】図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 the contention bit and the least significant bit of the PC are both 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.

【0060】図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 a 26th instruction cache 2301.
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.

【0061】図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.

【0062】図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 field for retaining contention bits in the cache,
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.

【0063】さらに、本実施例では、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.

【0064】さらに、本実施例では、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 the fact that two instructions are processed 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.

【0065】図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.

【0066】同様に、さらに並列度をあげることは可能
であるが、数命令に1つの割合で分岐命令が存在するよ
うなプログラムもあり、そのようなプログラムでは、極
端に並列度をあげても、あまり効果が得られない。2〜
4命令同時処理程度が至当である。分岐が少なく、競合
も少ないプログラムでは、さらに並列度をあげれば、効
果的に性能が高まる。また、並列度を2n(nは自然数)
とすることにより、命令ユニットの制御を容易にするこ
とができる。
Similarly, it is possible to further increase the degree of parallelism, but there are also programs in which a branch instruction is present at a rate of one in several instructions, and 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.

【0067】さらに、本発明の他実施例について述ベ
る。これまでの実施例では、常に複数命令同時処理を行
っていた。通常は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.

【0068】図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 cache, 2901 is 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.

【0069】図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.

【0070】図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.

【0071】図33〜図36を用いて述べたように、部
分的に複数命令同時処理を行い、その部分をROM化す
ることによりハードウエアを削減できる。また、ROM
部分のみであればアセンブラによって最適設計できるの
で、複数命令同時処理を意識したコンパイラを開発しな
くてもよいという利点がある。さらに、ROM部分を書
き換えることにより、アプリケーションごとに、アプリ
ケーションに適した高速化が実現できる。
As described with reference to FIGS. 33 to 36, the hardware can be reduced by partially performing simultaneous processing of a plurality of instructions and converting the part into 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.

【0072】[0072]

【発明の効果】本発明によれば、複雑な命令は基本命令
に分解され、かつ、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.

【0073】また、複数演算器が並列して動くため、複
雑な処理の処理時間を短縮することができる。
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.

Claims (16)

【特許請求の範囲】[Claims] 【請求項1】複数の命令を記憶する第1の領域と複数の
上記命令を並列に処理するか否かを決定するための情報
を記憶する第2の領域とを有し、複数の上記命令と上記
情報とを出力する記憶装置。
A first area for storing a plurality of instructions and a second area for storing information for determining whether to execute the plurality of instructions in parallel; And a storage device for outputting the above information.
【請求項2】演算部で実行される命令を記憶する第1の
領域と、上記第1の領域に記憶された1の命令が他の命
令と並列に処理できるか否かを示す情報を記憶する第2
の領域とを有し、上記第1の領域に記憶された命令とと
もに上記情報を出力する記憶装置。
2. A first area for storing an instruction to be executed by an arithmetic unit, and information indicating whether one instruction stored in the first area can be processed in parallel with another instruction. Second
And outputting the information together with the instructions stored in the first area.
【請求項3】演算部で実行される命令を記憶する第1の
領域と、上記第1の領域に記憶された複数の命令を逐次
処理する情報を記憶する第2の領域とを有し、上記第1
の領域に記憶された命令とともに上記情報を出力する記
憶装置。
A first area for storing instructions to be executed by the arithmetic unit, and a second area for storing information for sequentially processing a plurality of instructions stored in the first area; The first
A storage device that outputs the information together with the instructions stored in the area.
【請求項4】演算部で実行される命令を記憶する第1の
領域と、上記第1の領域に記憶された1の命令が他の命
令と並列に処理できるか否かを示す情報を記憶する第2
の領域とを有し、上記第1の領域に記憶された少なくと
も2つの命令とともに同じマシンサイクルで上記情報を
出力する記憶装置。
4. A first area for storing an instruction to be executed by an arithmetic unit, and information indicating whether one instruction stored in the first area can be processed in parallel with another instruction. Second
And outputting the information in the same machine cycle together with at least two instructions stored in the first area.
【請求項5】演算部で実行される命令を記憶する第1の
領域と、上記第1の領域に記憶された複数の命令を逐次
処理する情報を記憶する第2の領域とを有し、上記第1
の領域に記憶された少なくとも2つの命令とともに同じ
マシンサイクルで上記情報を出力する記憶装置。
A first area for storing instructions to be executed by the arithmetic unit, and a second area for storing information for sequentially processing a plurality of instructions stored in the first area; The first
A storage device that outputs the above information in the same machine cycle together with at least two instructions stored in the area.
【請求項6】複数の命令を記憶する第1の領域と複数の
上記命令を並列に処理するか否かを決定するための情報
を記憶する第2の領域とを有するメモリと、 上記複数の命令を実行する複数の演算ユニットとを有
し、 上記複数の演算ユニットは、上記メモリから読み出され
た複数の命令を上記情報に基づいて処理する情報処理装
置。
6. A memory having a first area for storing a plurality of instructions and a second area for storing information for determining whether to execute the plurality of instructions in parallel, An information processing device, comprising: a plurality of operation units that execute instructions; wherein the plurality of operation units process a plurality of instructions read from the memory based on the information.
【請求項7】複数の命令を並列に処理できる演算部とメ
モリとを有し、 上記メモリは、上記演算部で実行される命令を記憶する
第1の領域と、上記第1の領域に記憶された1の命令が
他の命令と並列に処理できるか否かを示す情報を記憶す
る第2の領域とを有し、上記第1の領域に記憶された命
令とともに上記情報を出力する情報処理装置。
7. An arithmetic unit capable of processing a plurality of instructions in parallel, and a memory, wherein the memory has a first area for storing instructions to be executed by the arithmetic unit, and a memory for storing the instructions in the first area. And a second area for storing information indicating whether or not the one instruction can be processed in parallel with another instruction, and outputting the information together with the instruction stored in the first area. apparatus.
【請求項8】複数の命令を並列に処理できる演算部とメ
モリとを有し、 上記メモリは、上記演算部で実行される命令を記憶する
第1の領域と、上記第1の領域に記憶された複数の命令
を逐次処理する情報を記憶する第2の領域とを有し、上
記第1の領域に記憶された命令とともに上記情報を出力
する情報処理装置。
8. An arithmetic unit capable of processing a plurality of instructions in parallel, and a memory, wherein the memory has a first area for storing instructions to be executed by the arithmetic unit, and a memory for storing the instructions in the first area. And a second area for storing information for sequentially processing the plurality of instructions, and outputting the information together with the instructions stored in the first area.
【請求項9】複数の命令を並列に処理できる演算部とメ
モリとを有し、 上記メモリは、上記演算部で実行される命令を記憶する
第1の領域と、上記第1の領域に記憶された1の命令が
他の命令と並列に処理できるか否かを示す情報を記憶す
る第2の領域とを有し、上記第1の領域に記憶された少
なくとも2つの命令とともに同じマシンサイクルで上記
情報を出力する情報処理装置。
9. An arithmetic unit which can process a plurality of instructions in parallel, and a memory, wherein the memory has a first area for storing instructions executed by the arithmetic unit, and a memory for storing the instructions in the first area. A second area for storing information indicating whether or not the one instruction can be processed in parallel with another instruction, and in the same machine cycle together with at least two instructions stored in the first area. An information processing device that outputs the information.
【請求項10】複数の命令を並列に処理できる演算部と
メモリとを有し、 上記メモリは、上記演算部で実行される命令を記憶する
第1の領域と、上記第1の領域に記憶された複数の命令
を逐次処理する情報を記憶する第2の領域とを有し、上
記第1の領域に記憶された少なくとも2つの命令ととも
に同じマシンサイクルで上記情報を出力する情報処理装
置。
10. An arithmetic unit which can process a plurality of instructions in parallel, and a memory, wherein the memory has a first area for storing instructions executed by the arithmetic unit, and a memory for storing the instructions in the first area. And a second area for storing information for sequentially processing the plurality of instructions, and outputting the information in the same machine cycle together with at least two instructions stored in the first area.
【請求項11】複数の命令を並列に処理できる演算部
と、 上記演算部で実行される命令を記憶する第1の領域と、
上記第1の領域に記憶された複数の命令を逐次処理する
情報を記憶する第2の領域とを有するメモリと、 上記メモリから上記命令と共に同じマシンサイクルで上
記情報を読み出し、読み出された上記情報に基づいて上
記演算部で実行する命令を決定する制御部とを有する情
報処理装置。
11. An arithmetic unit capable of processing a plurality of instructions in parallel, a first area for storing instructions executed by the arithmetic unit,
A memory having a second area for storing information for sequentially processing a plurality of instructions stored in the first area; and reading the information from the memory together with the instructions in the same machine cycle. An information processing apparatus comprising: a control unit that determines an instruction to be executed by the arithmetic unit based on information.
【請求項12】請求項8又は11において、 上記演算部は複数の演算ユニットを有し、上記第1の領
域に記憶された命令は同じ演算ユニットで処理される情
報処理装置。
12. The information processing apparatus according to claim 8, wherein the operation unit has a plurality of operation units, and instructions stored in the first area are processed by the same operation unit.
【請求項13】請求項11において、 上記制御部は上記メモリから上記第1の命令,上記第2
の命令及び上記情報を入力し、上記情報に基づいて上記
第1の命令又は上記第2の命令を出力する第1の制御部
と、上記メモリから上記第2の命令及び上記情報を入力
し、上記情報に基づいて第2の命令を出力する第2の制
御部とを有する情報処理装置。
13. The method according to claim 11, wherein the control unit is configured to execute the first command and the second command from the memory.
And a first control unit that outputs the first command or the second command based on the information, and inputs the second command and the information from the memory, An information processing apparatus comprising: a second control unit that outputs a second command based on the information.
【請求項14】複数の演算ユニットと、 上記演算ユニットで実行される複数の命令と、上記命令
を同時に実行できるか否かを示す情報とを記憶するメモ
リと、 上記演算ユニット毎に設けられ、上記メモリに記憶され
た上記命令と上記情報とを入力し、上記情報に基づいて
出力する命令を決定する複数の制御部とを有する情報処
理装置。
14. A memory for storing a plurality of operation units, a plurality of instructions to be executed by the operation units, and information indicating whether or not the instructions can be simultaneously executed, provided for each of the operation units; An information processing apparatus comprising: a plurality of control units that input the command and the information stored in the memory and determine a command to be output based on the information.
【請求項15】請求項14において、 上記制御部は、上記情報に基づいて演算ユニットが処理
を実行しない命令を出力する情報処理装置。
15. The information processing apparatus according to claim 14, wherein the control unit outputs an instruction that the arithmetic unit does not execute a process based on the information.
【請求項16】複数の命令と上記命令を並列に実行する
か否かを示す情報を記憶するメモリと、 上記メモリに記憶された命令を処理する複数の演算ユニ
ットとを有する情報処理装置。
16. An information processing apparatus comprising: a memory for storing a plurality of instructions and information indicating whether or not to execute the instructions in parallel; and a plurality of operation units for processing the instructions stored in the memory.
JP00881899A 1999-01-18 1999-01-18 Storage device and information processing device Expired - Fee Related JP3147884B2 (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JPH11272463A true JPH11272463A (en) 1999-10-08
JP3147884B2 JP3147884B2 (en) 2001-03-19

Family

ID=11703402

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP3147884B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009093662A (en) * 2002-12-27 2009-04-30 Arm Ltd Data processing apparatus and method for converting number between fixed-point and floating-point representations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009093662A (en) * 2002-12-27 2009-04-30 Arm Ltd Data processing apparatus and method for converting number between fixed-point and floating-point representations

Also Published As

Publication number Publication date
JP3147884B2 (en) 2001-03-19

Similar Documents

Publication Publication Date Title
JP2810068B2 (en) Processor system, computer system, and instruction processing method
JP2550213B2 (en) Parallel processing device and parallel processing method
JP2834837B2 (en) Programmable controller
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US7487338B2 (en) Data processor for modifying and executing operation of instruction code according to the indication of other instruction code
JPH04309131A (en) Microcode generating apparatus for instruction group and combining apparatus in computer
JPH07120284B2 (en) Data processing device
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
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
JP3182591B2 (en) Microprocessor
JP3102399B2 (en) Data processing apparatus and method
JP2636821B2 (en) Parallel processing unit
JP2785820B2 (en) Parallel processing unit
JP2927281B2 (en) Parallel processing unit
JP4702004B2 (en) Microcomputer
US7281121B2 (en) Pipeline processing device and interrupt processing method
JP2696578B2 (en) Data processing device
JP2005242457A (en) Programmable controller
JPH04264954A (en) Compound instruction computer
JPH0425937A (en) Information processor
JPH041821A (en) Pipeline type microinstruction control system
JPS58129553A (en) Pipeline computer
JPH03291724A (en) Microprogram control system

Legal Events

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