Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2834289B2 - Microprocessor - Google Patents
[go: Go Back, main page]

JP2834289B2 - Microprocessor - Google Patents

Microprocessor

Info

Publication number
JP2834289B2
JP2834289B2 JP2190661A JP19066190A JP2834289B2 JP 2834289 B2 JP2834289 B2 JP 2834289B2 JP 2190661 A JP2190661 A JP 2190661A JP 19066190 A JP19066190 A JP 19066190A JP 2834289 B2 JP2834289 B2 JP 2834289B2
Authority
JP
Japan
Prior art keywords
instruction
decoder
unit
output
length
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
JP2190661A
Other languages
Japanese (ja)
Other versions
JPH0477925A (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 JP2190661A priority Critical patent/JP2834289B2/en
Priority to DE69133134T priority patent/DE69133134D1/en
Priority to EP91111044A priority patent/EP0467152B1/en
Priority to KR1019910012236A priority patent/KR100233897B1/en
Publication of JPH0477925A publication Critical patent/JPH0477925A/en
Priority to US08/169,728 priority patent/US5408625A/en
Application granted granted Critical
Publication of JP2834289B2 publication Critical patent/JP2834289B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、可変長命令セットを処理可能であるととも
に、複数命令の並列デコードを行うマイクロプロセッサ
に関する。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a microprocessor capable of processing a variable length instruction set and performing parallel decoding of a plurality of instructions.

〔従来の技術〕[Conventional technology]

可変長命令セットを処理可能である従来のマイクロプ
ロセッサにおいては、命令の並列デコードは行われてい
ない。
In a conventional microprocessor capable of processing a variable-length instruction set, parallel decoding of instructions is not performed.

本発明に最も近い公知例としては、1989年9月11日発
刊の日経エレクトロニクス・ブックス「新世代マイクロ
プロセッサRISC,CISC,TRON」の第195頁から第206頁まで
の文献「キャッシュと分岐予測機構の内蔵などでパイプ
ラインの乱れを抑えて性能を挙げた32ビット・マイクロ
プロセッサV80」に記載された命令デコード方式があげ
られる。
As a known example closest to the present invention, a document "Cache and Branch Prediction Mechanism" on pages 195 to 206 of Nikkei Electronics Books "New Generation Microprocessor RISC, CISC, TRON" published on September 11, 1989 is given. The instruction decoding method described in "32-bit Microprocessor V80, which has improved performance by suppressing pipeline turbulence with the built-in CPU".

上記公知のマイクロプロセッサでは、並列に複数の命
令をデコードこそしないが、2段階に分けて命令をデコ
ードすることで、デコード能力のスループットを向上さ
せている。この公知のマイクロプロセッサの1段目のデ
コード回路は、プリデコード・ユニットとよばれ、可変
長命令を固定長の要素に分割する機能を有している。こ
のように固定長の要素に分解された命令はひとまずプリ
デコード・ユニット内のバッファ(レジスタ)に格納さ
れ、命令デコード・ユニットの要求に応じてプリデコー
ド・ユニットから命令デコード・ユニットへの固定長の
要素に分解された命令の転送が行われる。
The known microprocessor does not decode a plurality of instructions in parallel, but decodes the instructions in two stages to improve the throughput of decoding capability. The first-stage decode circuit of this known microprocessor is called a predecode unit, and has a function of dividing a variable-length instruction into fixed-length elements. The instructions thus decomposed into fixed length elements are temporarily stored in a buffer (register) in the predecode unit, and the fixed length from the predecode unit to the instruction decode unit is requested according to the instruction decode unit request. The transfer of the instruction decomposed into the elements is performed.

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

しかしながら本発明者等の検討によれば、上記従来技
術ではマイクロプロセッサの処理を更に高速化する場合
に二つの問題点が生ずると言うことが明らかとされた。
However, according to the studies made by the present inventors, it has been clarified that the above-described conventional technique has two problems when the processing speed of the microprocessor is further increased.

その第1の問題は、命令デコードがパイプラインのう
ち二つのステージを用いるため、それだけ分岐処理が遅
くなることである。
The first problem is that branch processing becomes slower because instruction decoding uses two stages of the pipeline.

すなわち、分岐処理が起動されてから、分岐先命令の
フェッチ、プリデコードと処理が進む場合、デコード処
理に1段しか要しないマイクロプロセッサに比べて、ス
テージ1段分だけ分岐に要する時間が増える。
That is, when the fetch and predecode of the branch destination instruction proceed after the start of the branch process, the time required for the branch is increased by one stage compared to a microprocessor that requires only one stage for the decode process.

また第2の問題は、複数命令の並列実行するマイクロ
プロセッサにおいて、上記従来技術のような2段階に分
けて命令をデコードするデコード方式を採った場合、プ
リデコード・ユニットがマイクロプロセッサ全体の性能
を律速することである。それは、処理すべき命令は可変
長の状態であるので、プリデコード・ユニットが先行す
る命令のプリデコードを行わなければ、後続の命令のプ
リデコードを行えないためである。すなわち、プリデコ
ード・ユニットが、一度に一つの命令しかプリデコード
できないからである。
A second problem is that in a microprocessor that executes a plurality of instructions in parallel, if a decoding method of decoding the instructions in two stages as in the above-described conventional technique is adopted, the predecode unit can reduce the performance of the entire microprocessor. It is rate-limiting. This is because the instruction to be processed has a variable length, so that the predecode unit cannot predecode the following instruction unless it predecodes the preceding instruction. That is, the predecode unit can only predecode one instruction at a time.

この第2の問題点については、三つの解決法があるこ
とも、本発明者等の検討により明らかとされた。
The present inventor and others have also clarified that there are three solutions to this second problem.

第1の解決策は、複数の命令をプリデコードする複数
のプリデコード回路を直列に接続するものである。すな
わち、後続のプリデコード回路は、先行するプリデコー
ド回路の出力を参照するようにする。その上で、これら
複数のプリデコード回路を1サイクル内に動作できるよ
うに設計すれば、この問題は解決できる。但しこの場合
には、直列に接続したプリデコード回路の遅延時間が問
題になる。
A first solution is to connect a plurality of predecode circuits for predecoding a plurality of instructions in series. That is, the succeeding predecode circuit refers to the output of the preceding predecode circuit. This problem can be solved by designing the plurality of predecode circuits so that they can operate within one cycle. However, in this case, the delay time of the pre-decoding circuit connected in series becomes a problem.

第2の解決策は、プリデコード部の性能を1サイクル
に1命令をプリデコード可能にしたうえで、その性能差
をバッファで吸収する方法である。但しこの方法では、
最大スループットが1命令/サイクルとなるため、せっ
かく他のステージでは複数命令を実行できるようにした
のに、性能があまり向上しない。
A second solution is a method in which the performance of the pre-decoding unit is made pre-decodable for one instruction in one cycle, and the performance difference is absorbed by a buffer. However, in this method,
Since the maximum throughput is one instruction / cycle, a plurality of instructions can be executed in other stages, but the performance is not significantly improved.

第3の解決策は、本発明のように先行する命令のフォ
ーマットに何らかの仮定をおいて、後続命令をデコード
することである。
A third solution is to decode the subsequent instruction with some assumptions on the format of the preceding instruction as in the present invention.

本発明はこの第3の解決策を具体的に実現するに際し
てなされたものであり、その目的とするところは、可変
長命令セットを処理するに際して複数命令を高速にかつ
並列にデコードできるマイクロプロセッサを提供するこ
とにある。
The present invention has been made to realize the third solution specifically, and an object of the present invention is to provide a microprocessor which can decode a plurality of instructions at high speed and in parallel when processing a variable length instruction set. To provide.

〔課題を解決するための手段〕[Means for solving the problem]

上記目的を達成するために、同時にデコードする命令
のうち、後続の命令については、先行命令の命令長を仮
定してデコードを行う。
In order to achieve the above object, of the instructions to be decoded simultaneously, the subsequent instruction is decoded on the assumption of the instruction length of the preceding instruction.

そして先行命令のデコードにより仮定が正しいと判っ
たときには後続の命令のデコード結果も正しいと判断
し、逆に仮定が誤っていたと判ったときには後続の命令
のデコード結果は誤っていたと判断し、そのデコード結
果を無効化する。
If the assumption is found correct by the decoding of the preceding instruction, the decoding result of the following instruction is also determined to be correct. Conversely, if the assumption is determined to be incorrect, the decoding result of the subsequent instruction is determined to be incorrect. Invalidate the result.

更に、仮定する命令長を、命令セット中の最短の命令
フォーマットの長さとするのが望ましい。なぜならば、
可変長命令セットにおいて最短の命令フォーマットは、
使用頻度が高い命令に対応し、それ故に仮定が成立する
確率が高いからである。
Further, it is desirable that the assumed instruction length is the length of the shortest instruction format in the instruction set. because,
The shortest instruction format in the variable length instruction set is
This is because it corresponds to a frequently used instruction, and therefore the probability that the assumption is satisfied is high.

また複数命令を並列にデコードするため、命令プリフ
ェッチ・ユニットは、少なくとも最短の命令フォーマッ
トの2倍の長さの命令コードを、命令デコード・ユニッ
トへ転送する。
In order to decode a plurality of instructions in parallel, the instruction prefetch unit transfers an instruction code having at least twice the length of the shortest instruction format to the instruction decode unit.

命令デコード・ユニットではその命令コードを、最短
の命令フォーマットの長さ毎に、別々の命令デコードに
入力する。各命令デコードは、少なくとも最短の命令フ
ォーマットを持つ命令をデコードする能力をもち、かつ
少なくとも一つの命令デコーダは命令セットのすべての
命令をデコードする能力を有する。各々の命令デコーダ
の出力は、それぞれ異なる出力ラッチに保持されること
もできる。
The instruction decode unit inputs the instruction code to separate instruction decodes for each length of the shortest instruction format. Each instruction decode has the ability to decode at least the instruction with the shortest instruction format, and at least one instruction decoder has the ability to decode all instructions in the instruction set. The output of each instruction decoder can be held in a different output latch.

本願において開示される発明のうち、代表的な実施例
によるマイクロプロセッサの概要は下記の通りである。
Among the inventions disclosed in the present application, an outline of a microprocessor according to a typical embodiment is as follows.

すなわち、 (1)所定のビット幅(16ビット)の命令長の第1及び
第2の命令をマイクロプロセッサの外部からフェッチ
し、少なくとも上記所定のビット幅の2倍のビット幅
(32ビット)を有する出力線に上記第1及び第2の命令
を並行に出力するフェッチユニット(IU)と、 (2)その入力に上記フェッチユニット(IU)の上記出
力線の上記第1の命令が供給される第1の命令デコーダ
(ID0)と、 (3)その入力に上記フェッチユニット(IU)の上記出
力線の上記第2の命令が供給される第2の命令デコーダ
(ID1)と、 (4)上記第1の命令デコーダのデコード結果(id0_ou
t)と上記第2の命令デコーダのデコード結果(id1_ou
t)とが供給される制御部(PCNT)と、 (5)上記制御部(PCNT)からの出力に応答する命令実
行部(EU)とを具備し、 上記所定のビット幅の2倍のビット幅を少なくとも有
する出力線から上記所定の命令長の上記第1の命令が出
力される条件では、上記制御部(PCNT)は第1の命令デ
コーダ(ID0)のデコード結果(id0_out)中のこの条件
成立の情報に応答して、上記第2の命令デコーダ(ID
1)のデコード結果(id1_out)を有効とし、その結果上
記命令実行部(EU)は上記制御部の出力に伝達される上
記第1と第2の命令デコーダのデコード結果(id0_out,
id1_out)に応答して上記第1の命令と上記第2の命令
を並列に実行し、 一方上記フェッチユニット(IU)の上記出力線から上
記所定のビット幅と異なる命令長の命令が出力される他
の条件では、上記制御部(PCNT)は第1のデコーダ(ID
0)のデコード結果(id0_out)中のこの他の条件成立の
情報に応答して、上記第2のデコーダ(ID1)のデコー
ド結果(id1_out)を無効化し、その結果上記命令実行
部(EU)は上記制御部(PCNT)の出力に伝達される上記
第1の命令デコーダ(ID0)の上記デコード結果(id0_o
ut)に応答して上記第1の命令を実行することを特徴と
する。
That is, (1) First and second instructions having an instruction length of a predetermined bit width (16 bits) are fetched from outside the microprocessor, and a bit width (32 bits) of at least twice the predetermined bit width is fetched. A fetch unit (IU) that outputs the first and second instructions in parallel to an output line of the fetch unit (IU); and (2) the first instruction of the output line of the fetch unit (IU) is supplied to its input. (3) a second instruction decoder (ID1) whose input is supplied with the second instruction of the output line of the fetch unit (IU); Decoding result of the first instruction decoder (id0_ou
t) and the decoding result of the second instruction decoder (id1_ou
and (5) an instruction execution unit (EU) that responds to an output from the control unit (PCNT), the number of bits being twice the predetermined bit width. Under the condition that the first instruction having the predetermined instruction length is output from the output line having at least the width, the control unit (PCNT) determines the condition in the decoding result (id0_out) of the first instruction decoder (ID0). In response to the establishment information, the second instruction decoder (ID
The decoding result (id1_out) of (1) is made valid, and as a result, the instruction execution unit (EU) decodes the decoding results (id0_out, id0_out,
id1_out), the first instruction and the second instruction are executed in parallel, and an instruction having an instruction length different from the predetermined bit width is output from the output line of the fetch unit (IU). Under other conditions, the control unit (PCNT) operates in the first decoder (ID
In response to the information on the satisfaction of the other condition in the decoding result (id0_out) of (0), the decoding result (id1_out) of the second decoder (ID1) is invalidated. As a result, the instruction execution unit (EU) The decoding result (id0_o) of the first instruction decoder (ID0) transmitted to the output of the control unit (PCNT)
ut), the first instruction is executed in response to the first instruction.

〔作用〕[Action]

各命令デコーダが処理した命令コーダが、各命令デコ
ーダでデコード可能な命令(すなわち最短の命令フォー
マットを持つ命令)であるかどうかの判定が行われる。
判定の結果、そうでない命令フォーマットをもつ命令の
デコードを行った命令デコーダであった場合、その命令
に後続する命令コードのデコード結果は全て無効化され
る。無効化は制御回路を用いて容易に実現できる。逆
に、判定の結果、全ての命令デコーダが最短命令フォー
マットを持つ命令をデコードした場合には、全デコード
結果が有効である。この時命令デコードのスループット
は最大であり、命令デコーダ数に等しい数の命令が1サ
イクルで処理される。
It is determined whether the instruction coder processed by each instruction decoder is an instruction that can be decoded by each instruction decoder (that is, an instruction having the shortest instruction format).
If the result of the determination is that the instruction decoder has decoded an instruction having an instruction format that is not otherwise, the decoding result of the instruction code following the instruction is all invalidated. Invalidation can be easily realized using a control circuit. Conversely, if the result of the determination is that all instruction decoders have decoded instructions having the shortest instruction format, all decoded results are valid. At this time, the throughput of instruction decoding is maximum, and the number of instructions equal to the number of instruction decoders is processed in one cycle.

こうすることで、仮定が正しかった場合に限定されは
するが、命令デコードの最大スループットは2命令/サ
イクル以上にすることができ、上記第2の問題点が解決
できる。また、先行命令の命令長を仮定するため、プリ
デコード回路によって可変長命令を固定長要素に分解す
る必要がなくなり、上記第1の問題点が解決できる。
By doing so, although it is limited to the case where the assumption is correct, the maximum throughput of instruction decoding can be made 2 instructions / cycle or more, and the second problem can be solved. Further, since the instruction length of the preceding instruction is assumed, it is not necessary to decompose the variable length instruction into fixed length elements by the predecode circuit, and the first problem can be solved.

本発明の命令デコード方式は、従来より公知のプリデ
コード方式とは異なり、命令を誤った仮定のもとにデコ
ードする場合がある。その場合には上記のように、その
デコード結果を無効とすることになり、その場合のスル
ープットは1命令/サイクルとなってしまう。このよう
に、本方式ではプリデコード方式に比べて、命令フォー
マットへの処理性能の依存度が高くなる。この点に関し
ては、できるだけ上記の仮定が成立するフォーマットを
持つ命令をプログラム中で使用することで対処できる。
The instruction decoding method according to the present invention may be different from the conventionally known pre-decoding method in that an instruction may be decoded under an incorrect assumption. In that case, as described above, the decoding result is invalidated, and the throughput in that case is one instruction / cycle. As described above, in the present method, the dependence of the processing performance on the instruction format is higher than in the predecode method. This point can be dealt with by using an instruction having a format that satisfies the above assumption as much as possible in the program.

本発明のその他の目的と特徴は、以下の実施例の説明
から明らかとなろう。
Other objects and features of the present invention will become apparent from the following description of the embodiments.

〔実施例〕〔Example〕

第1図は、本発明を適用したマイクロプロセッサのブ
ロック図である。本発明は、複数の命令の並列デコード
を可能とする。ここではその内で最も簡単な、2命令を
並列にデコードするマイクロプロセッサの内部構造とそ
の動作を説明する。
FIG. 1 is a block diagram of a microprocessor to which the present invention is applied. The present invention enables parallel decoding of multiple instructions. Here, the simplest internal structure of a microprocessor that decodes two instructions in parallel and its operation will be described.

マイクロプロセッサの内部構造 まず、第1図により、マイクロプロセッサの内部構造
を説明する。第1図のマイクロプロセッサは、基本的
に、インターフェースユニットIOU,命令プリフェッチユ
ニットIU,命令デコードユニットDU,演算ユニットEUから
構成される。これらのユニットは並列動作可能であり、
命令デコードユニットDUの制御のもとに、パイプライン
処理を行う。
First, the internal structure of the microprocessor will be described with reference to FIG. The microprocessor shown in FIG. 1 basically includes an interface unit IOU, an instruction prefetch unit IU, an instruction decode unit DU, and an arithmetic unit EU. These units can operate in parallel,
Pipeline processing is performed under the control of the instruction decode unit DU.

インターフェースユニットIOU マイクロプロセッサは、インターフェースユニットIO
Uを通して外部のデバイス(例えばメイン・メモリ)と
接続されている、このインターフェースユニットIOU
は、命令とデータの両方について、マイクロプロセッサ
とメイン・メモリとの間の転送を行う。
Interface unit IOU The microprocessor is
This interface unit IOU connected to external devices (for example, main memory) through U
Performs transfers between the microprocessor and main memory for both instructions and data.

すなわち、メイン・メモリから読み出された命令は、
64ビット幅の信号線を介して、インターフェースユニッ
トIOUから命令プリフェッチユニットIUに転送される。
That is, the instruction read from the main memory is
The data is transferred from the interface unit IOU to the instruction prefetch unit IU via a 64-bit width signal line.

これに対して、32ビットの信号線2組を通して、演算
ユニットEUによって演算されたデータは演算ユニットEU
からインターフェースユニットIOUへ転送され、または
メイン・メモリから読み出されたデータはインターフェ
ースユニットIOUから命令デコードユニットDUへ転送さ
れる。
On the other hand, the data calculated by the arithmetic unit EU through two sets of 32-bit signal lines is transmitted to the arithmetic unit EU.
Is transferred to the interface unit IOU or data read from the main memory is transferred from the interface unit IOU to the instruction decode unit DU.

命令プリフェッチユニットIU 命令プリフェッチユニットIUはプリフェッチキューPF
Qを持つ。インターフェースユニットIOUから転送された
命令は、一度プリフェッチキューPFQにラッチされ、16
ビット単位にアラインメントされてから、命令デコード
ユニットDUに出力される。プリフェッチキューPFQはFIF
O(First−In First−Out)のキューである。
Instruction prefetch unit IU Instruction prefetch unit IU is a prefetch queue PF
Have a Q. The instruction transferred from the interface unit IOU is once latched in the prefetch queue PFQ, and
After being aligned in bit units, it is output to the instruction decode unit DU. Prefetch queue PFQ is FIF
This is an O (First-In First-Out) queue.

6組の16ビット信号線i0からi5を介して、アラインメ
ント後の命令が、命令プリフェッチユニットIUから命令
デコードユニットUDへ転送される。ここに、信号線i0は
次のマシンサイクルでデコードすべき命令の先頭コード
であり、信号線i1からi5は号線i0の命令に続く命令の並
びである。信号線i0は第1の命令デコーダID0に入力さ
れる。同様に、信号線i1は第2の命令デコーダID1に入
力される。第2の命令デコーダID1の入力が信号線i1に
一意に決定されており、信号線i1からi5の中から選択す
るようにはなっていないのが、本発明の実施例の特徴で
ある。また、第1の命令デコーダID0は、本マイクロプ
ロセッサで処理し得る全ての命令をデコードできる機能
を有している。これに対して第2の命令デコーダID1
は、本マイクロプロセッサが実行可能な命令のうち、16
ビットまたは32ビットの長さの命令フォーマットを持つ
命令のみをデコード可能である。第1の命令デコーダID
0と第2の命令デコーダID1の命令のデコード結果はそれ
ぞれ信号線id0_outとid1_outに出力され、パイプライン
制御部PCNTに送られる。
The aligned instruction is transferred from the instruction prefetch unit IU to the instruction decode unit UD via six sets of 16-bit signal lines i0 to i5. Here, the signal line i0 is a head code of an instruction to be decoded in the next machine cycle, and the signal lines i1 to i5 are a sequence of instructions following the instruction of the line i0. The signal line i0 is input to the first instruction decoder ID0. Similarly, the signal line i1 is input to the second instruction decoder ID1. The feature of the embodiment of the present invention is that the input of the second instruction decoder ID1 is uniquely determined to the signal line i1 and is not selected from the signal lines i1 to i5. The first instruction decoder ID0 has a function of decoding all instructions that can be processed by the microprocessor. On the other hand, the second instruction decoder ID1
Of instructions that can be executed by this microprocessor
Only instructions having an instruction format of length 32 or 32 bits can be decoded. First instruction decoder ID
The decoding results of the instructions 0 and the instruction of the second instruction decoder ID1 are output to signal lines id0_out and id1_out, respectively, and sent to the pipeline control unit PCNT.

パイプライン制御部PCNT パイプライン制御部PCNTは、信号線id0_outとid1_ou
t、及び各ユニットI0U,IU,EUの状態を示す信号(図中で
は省略した)をもとに、各ユニットIOU,IU,EUのため制
御信号を生成する。
Pipeline control unit PCNT The pipeline control unit PCNT has signal lines id0_out and id1_ou
A control signal is generated for each unit IOU, IU, EU based on t and a signal indicating the state of each unit I0U, IU, EU (omitted in the figure).

拡張部生成回路EG また命令デコードユニットDUには、拡張部生成回路EG
があり、拡張部生成回路EGは命令中のイミディエイトデ
ータまたはディスプレースメントデータを32ビットに拡
張して出力する。命令中のイミディエイトデータやディ
スプレースメントデータの位置とその長さは、命令のオ
ペコードにおいて指定されており、オペコードをデコー
ドすることで得られる。拡張部生成回路EGでは、その指
定に基づいて、データを加工し、バスd0またはd1に出力
する。拡張部生成回路EGの32ビット出力線が2組あるの
は、第1の命令デコーダID0と第2の命令デコーダID1の
それぞれの制御のもとに独立にデータの転送を行うため
である。
Extension generating circuit EG The instruction decoding unit DU includes an extension generating circuit EG.
The extension part generation circuit EG expands immediate data or displacement data in the instruction to 32 bits and outputs the result. The position and the length of the immediate data or displacement data in the instruction are specified in the operation code of the instruction, and can be obtained by decoding the operation code. The extension part generation circuit EG processes the data based on the designation and outputs the data to the bus d0 or d1. The reason why there are two sets of 32-bit output lines of the extension part generating circuit EG is to transfer data independently under the control of the first instruction decoder ID0 and the second instruction decoder ID1.

演算ユニットEU 演算ユニットEU内の整数論理演算路ALUについても同
様に、第1の命令デコーダID0と第2の命令デコーダID1
のそれぞれに対応して2組ある。
Arithmetic unit EU Similarly, the first instruction decoder ID0 and the second instruction decoder ID1 for the integer logical operation path ALU in the arithmetic unit EU.
There are two sets corresponding to each of.

レジスタファイルRF 命令デコードユニットDU内のレジスタファイルRFはレ
ジスタR0からR15までの16本の32ビットレジスタで構成
されており、各レジスタは4つの読み出しポートと2つ
の書き込みポートの計6ポートを持つ。そのポートの内
半分(二つの読み出しポートと一つの書込みポート)が
第1の命令デコーダID0の側に対応しており、第1の論
理演算器ALU0に接続されている。残りの半分のポートも
同様に第2の命令デコーダID1の側に対応しており、第
2の論理演算器ALU1に接続されている。
Register File RF The register file RF in the instruction decode unit DU is composed of 16 32-bit registers R0 to R15, and each register has a total of six ports, four read ports and two write ports. Half of the ports (two read ports and one write port) correspond to the first instruction decoder ID0, and are connected to the first logical operation unit ALU0. Similarly, the other half of the ports correspond to the second instruction decoder ID1, and are connected to the second logical operation unit ALU1.

32ビット幅の信号線 命令デコードユニットDUと演算ユニットEUは、6組の
32ビット幅の信号塩d0,d1,d2,d3,e0,e1で接続される。
その内4組(d0,d1,d2,d3)は命令デコードユニットDU
から演算ユニットEUへの、一方残り2組(e0,e1)は演
算ユニットEUから命令デコードユニットUDへのデータの
転送に用いられる。
32-bit signal line Instruction decode unit DU and arithmetic unit EU
They are connected by signal salts d0, d1, d2, d3, e0, e1 having a 32-bit width.
Four of them (d0, d1, d2, d3) are instruction decode units DU
And the other two sets (e0, e1) are used to transfer data from the arithmetic unit EU to the instruction decode unit UD.

例えば、レジスタR0とレジスタR1の値を加算してレジ
スタR1にセットする命令を第1の論理演算器ALU0が処理
する場合、まずレジスタファイルRFからレジスタR0とR1
の値が読み出され、それぞれ32ビット信号線d0とd1に出
力される。パイプラインにおける命令デコードユニット
DUの次の実行ステージすなわち演算ユニットEUにおい
て、第1の論理演算器ALU0は信号線d0とd1から値を入力
して、これらの加算を行う。そして加算結果が信号塩e0
に出力される。更に次の処理であるレジスタストアのス
テージでは、再び命令デコードユニットDU内の処理に戻
り、信号線e0上の値がレジスタファイルRF内のレジスタ
R1にセットされる。以上は第1の命令デコーダID0側を
用いた動作である。第2の命令デコーダID1側を用いた
場合、それぞれ信号線d2,d3,e1それに第2の論理演算器
ALU1が用いられる。すなわち、レジスタR0とR1の値は信
号線d2とd3にそれぞれ出力され、第2の論理演算器ALU1
で加算が行われたあと、信号線e1を用いて加算結果がレ
ジスタR1に転送される。
For example, when the first logical operation unit ALU0 processes an instruction to add the values of the register R0 and the register R1 and set the result in the register R1, first, the registers R0 and R1 are read from the register file RF.
Are read and output to the 32-bit signal lines d0 and d1, respectively. Instruction decode unit in pipeline
In the next execution stage of the DU, that is, the operation unit EU, the first logical operation unit ALU0 inputs values from the signal lines d0 and d1, and adds them. And the addition result is signal salt e0
Is output to In the register store stage, which is the next process, the process returns to the process in the instruction decode unit DU again, and the value on the signal line e0 is changed to the register in the register file RF.
Set to R1. The above is the operation using the first instruction decoder ID0 side. When the second instruction decoder ID1 is used, the signal lines d2, d3, e1 and the second logical operator
ALU1 is used. That is, the values of the registers R0 and R1 are output to the signal lines d2 and d3, respectively, and the second logical operation unit ALU1
After the addition is performed, the addition result is transferred to the register R1 using the signal line e1.

マイクロプロセッサとメモリ間でデータの転送を行う
場合、信号線e0,e1とIOUとの間の2組の32ビット幅の信
号線が用いられる。この部分の動作は本発明とあまり関
係が無いので、説明は省略する。
When data is transferred between the microprocessor and the memory, two sets of 32-bit wide signal lines between the signal lines e0 and e1 and the IOU are used. The operation of this part is not so related to the present invention, and the description is omitted.

本発明の効果は、複数の命令の並列デコードが可能に
なることである。本実施例では、可変長命令の命令セッ
トを持つマイクロプロセッサを例に説明する。そこでま
ず、可変長命令とはどのようなものであるかを簡単に説
明する。
An advantage of the present invention is that a plurality of instructions can be decoded in parallel. In this embodiment, a microprocessor having an instruction set of a variable-length instruction will be described as an example. First, a brief description of what a variable length instruction is like will be given.

可変長命令 可変長命令とは、一口に言えば、複数の命令フォーマ
ットを持ち、異なる命令フォーマットを取った時に長さ
が変化する命令を言う。すなわち、長さのことなる命令
を一つでも持つ命令セットは、可変長の命令を持つと言
える。
Variable-length instruction A variable-length instruction is an instruction that has a plurality of instruction formats and changes in length when a different instruction format is used. That is, it can be said that an instruction set having at least one instruction having a different length has a variable-length instruction.

固定長命令 これに対して、全ての命令の長さが一定である場合
は、固定長の命令セットと一般に呼んでいる。
Fixed Length Instructions On the other hand, when the length of all instructions is constant, it is generally called a fixed length instruction set.

本実施例の命令セット 本実施例では第2図に示すように、16ビットを単位と
して、16ビットから96ビットまでの6種類の長さを持つ
命令セットを仮定する。これらの命令はメモリ上では、
16ビト境界に置かれる。すなわち命令の各16ビット単位
は全て偶数バイトアドレスに置かれる。この様子を示し
たのが第3図である。
Instruction Set of the Present Embodiment In this embodiment, as shown in FIG. 2, an instruction set having six lengths from 16 bits to 96 bits is assumed in units of 16 bits. These instructions are in memory
It is placed on the 16-bit boundary. That is, each 16-bit unit of the instruction is all located at an even byte address. FIG. 3 shows this state.

続いて、本実施例における命令の並列デコードの動作
を説明する。
Next, the operation of parallel decoding of instructions in the present embodiment will be described.

第3図はメモリ上における命令の並びの一つの例を示
している。各命令は例えばinst0,tnst1という具合に示
した。16ビットを超える長さを持つ命令には更にハイフ
ンと数字を付加して、inst2_0,inst2_1という具合に示
した。すなわち、16ビットを超える長さを持つ命令は複
数個に分割される。また、各命令においてデコード処理
を行わなければならないコードは、該命令の先頭のコー
ドに限定されると仮定する。すなわち命令の先頭以外の
コードはイミディエイトデータまたはディスプレースメ
ントデータであるとする。例えばinst2の場合、最初の
コードinst2_0はデコードが必要であるが、後続のコー
ドinst2_1はデコード不要である。
FIG. 3 shows one example of a sequence of instructions on the memory. Each instruction is shown as, for example, inst0, tnst1. Instructions with a length of more than 16 bits are further indicated by a hyphen and a number, such as inst2_0 and inst2_1. That is, an instruction having a length exceeding 16 bits is divided into a plurality of instructions. It is also assumed that the code that must be decoded in each instruction is limited to the code at the head of the instruction. That is, it is assumed that codes other than the head of the instruction are immediate data or displacement data. For example, in the case of inst2, the first code inst2_0 needs to be decoded, but the subsequent code inst2_1 does not need to be decoded.

以上の前提のもとに、命令プリフェッチユニットIUか
ら命令デコードユニットDUへの転送パスである16ビット
信号線i0−5の、ある2つの時点での状態を第4図に示
す。第4図(a)は、第3図の命令列が既に命令プリフ
ェッチユニットIUのプリフェッチキューPFQに取り込ま
れ、最初の命令inst0がデコードされようとしている状
態を示している。次のマシンサイクルの前半では、最初
の命令inst0のデコードが第1の命令デコーダID0で行わ
れ、後続の命令inst1のデコードが第2のデコーダID1で
行われる。このデコードの結果、二つの命令inst0、ins
t1が共に最短の長さを持つ命令フォーマットであること
が判り、命令デコードユニットDUから命令プリフェッチ
ユニットIUへ、32ビットだけ命令のポインタを進めるよ
うに指示が出される。その結果、更に半マシンサイクル
後の命令プリフェッチユニットIUと命令デコードユニッ
トDUとの間の信号線i0−5の状態は、二つの命令inst0,
inst1が取り去られ、その代りに命令inst5,inst6が追加
されて第4図(b)のようになる。この時には、命令コ
ードinst2_0のデコードが第1のデコーダID0で行われ、
命令コードinst2_1の第2のデコードがID1で行われる。
第1のデコーダID0での命令コードinst2_0のデコードの
結果、命令inst2は最短の長さを持つ命令フォーマット
ではないことが判る。
Based on the above premise, the state of the 16-bit signal line i0-5, which is a transfer path from the instruction prefetch unit IU to the instruction decode unit DU, at two points in time is shown in FIG. FIG. 4A shows a state in which the instruction sequence of FIG. 3 has already been taken into the prefetch queue PFQ of the instruction prefetch unit IU, and the first instruction inst0 is about to be decoded. In the first half of the next machine cycle, the first instruction inst0 is decoded by the first instruction decoder ID0, and the subsequent instruction inst1 is decoded by the second decoder ID1. As a result of this decoding, two instructions inst0 and ins
It is found that both t1 are the instruction formats having the shortest length, and the instruction is issued from the instruction decode unit DU to the instruction prefetch unit IU to advance the instruction pointer by 32 bits. As a result, the state of the signal line i0-5 between the instruction prefetch unit IU and the instruction decode unit DU after a further half machine cycle becomes two instructions inst0,
Inst1 is removed, and instructions inst5 and inst6 are added instead, as shown in FIG. 4 (b). At this time, the instruction code inst2_0 is decoded by the first decoder ID0,
The second decoding of the instruction code inst2_1 is performed with ID1.
As a result of decoding the instruction code inst2_0 by the first decoder ID0, it is found that the instruction inst2 is not an instruction format having the shortest length.

第1の命令デコーダID0には最短命令が入力された場
合には、第2の命令デコーダID1には次の命令の先頭オ
ペコードが入力される。第2の命令デコーダID1はこの
ような次の命令の先頭オペコードの入力を仮定して、命
令デコードを行っている。そのため、第1の命令デコー
ダID0においてデコードした命令が非最短命令であった
場合、第2の命令デコーダID1で行われた命令デコード
は誤っていたと判断され、その誤りの判断結果は第1の
命令デコーダID0の出力id0_outに反映されており、この
判断結果に応答して、無効化処理がパイプライン制御部
PCNTにおいて行われる。第1図に示したように、第1と
第2の命令デコーダID0、ID1からパイプライン制御部PC
NTへは、デコード結果すなわちid0_outとid1_outの出力
が送られる。出力id0_outには、第1のデコーダID0にお
いてデコードした命令が、最短の長さの命令フォーマッ
トであるか否かを示す情報が含まれている。また、出力
id1_outには第2のデコーダID1がデコードできない命令
が入力されたことを示す情報を含んでいても良い。但し
本実施例の場合には出力id1_outにそのような情報は含
まれていないものとする。
When the shortest instruction is input to the first instruction decoder ID0, the first operation code of the next instruction is input to the second instruction decoder ID1. The second instruction decoder ID1 performs instruction decoding on the assumption that such a head instruction code of the next instruction is input. Therefore, if the instruction decoded by the first instruction decoder ID0 is a non-shortest instruction, it is determined that the instruction decoding performed by the second instruction decoder ID1 is erroneous, and the result of the error determination is the first instruction. This is reflected in the output id0_out of the decoder ID0, and in response to this determination result, invalidation processing is performed by the pipeline control unit.
Performed in PCNT. As shown in FIG. 1, the first and second instruction decoders ID0 and ID1
The decoding result, that is, the output of id0_out and id1_out is sent to NT. The output id0_out includes information indicating whether or not the instruction decoded by the first decoder ID0 has the shortest instruction format. Also output
id1_out may include information indicating that an instruction that cannot be decoded by the second decoder ID1 has been input. However, in the case of this embodiment, it is assumed that such information is not included in the output id1_out.

第1の命令デコーダID0に入力された命令の長さが最
短すなわち16ビットで無いという出力id0_outに含まれ
た情報によっては、第2の命令デコーダID1のデコード
結果を無効化しなければならない。その無効化処理は、
前述のようにパイプライン制御部PCNTで行われる。
Depending on the information included in the output id0_out that the length of the instruction input to the first instruction decoder ID0 is shortest, that is, not 16 bits, the decoding result of the second instruction decoder ID1 must be invalidated. The invalidation process is
This is performed by the pipeline control unit PCNT as described above.

パイプライン制御部PCNTの詳細なブロック図 第5図に、パイプライン制御部PCNTの詳細なブロック
図を示す。
Detailed Block Diagram of Pipeline Control Unit PCNT FIG. 5 shows a detailed block diagram of the pipeline control unit PCNT.

パイプライン制御部PCNTはパイプラインのステージ制
御部Pipe_CNTLとセレクタSEL,ノーオペレーション指示
部NOPとから構成されており、id0_out,id1_outおよび各
ユニット(IU,DU,EU,IOU)の状態をもとに、マイクロプ
ロセッサ全体のパイプライン動作を制御する。このパイ
プライン処理における各処理ステージの制御は、第5図
のパイプ制御部PCNT内のパイプラインステージ制御部Pi
pe_CNTLにおいて行われる。また、第2の命令デコーダI
D1の出力情報の無効化処理は、このパイプラインステー
ジ制御部Pipe_CNTLの手前で行われる。
The pipeline control unit PCNT is composed of a pipeline stage control unit Pipe_CNTL, a selector SEL, and a no-operation instruction unit NOP, based on the status of id0_out, id1_out and each unit (IU, DU, EU, IOU). , And controls the pipeline operation of the entire microprocessor. The control of each processing stage in this pipeline processing is performed by the pipeline stage control unit Pi in the pipe control unit PCNT in FIG.
Performed in pe_CNTL. Also, the second instruction decoder I
The process of invalidating the output information of D1 is performed before this pipeline stage control unit Pipe_CNTL.

すなわち、第2の命令デコーダID1の出力id1_outの無
効化は次のように行われる。まず、第2の命令デコーダ
ID1の出力id1_outはセレクタSELの一方の入力に供給さ
れる。セレクタSELの他方の入力の一方は、特に限定さ
れないが本実施例では、固定値NOPが供給される。この
固定値NOPは、id1_outと全く同一のフィールドを持ち、
いわゆるno operationと呼ばれる不実行指示命令を指示
する。NOPはno operationを指示する命令として一般に
用いられるnop命令のデコード情報と同じであっても良
いし、異なっていても良い。必要なのは、NOPがno oper
ationを指示することであり、例えば扱うデータのサイ
ズ指定などは、どのような地であっても構わない。セレ
クタSELにおけるNOPとid1_outの選択は、第1の命令デ
コーダID0のデコード結果であるid0_outに含まれる、第
1の命令デコーダID0でデコードした命令の全体の長さ
が16ビットであるか否かという情報id1_validによって
行われる。命令長が16ビットであった場合にはid1_out
が選択される。逆に命令長が16ビットを超えていた場合
にはNOPが選択される。こうして、パイプライン制御信
号pcnt0,pcnt1が得られる。
That is, the invalidation of the output id1_out of the second instruction decoder ID1 is performed as follows. First, the second instruction decoder
The output id1_out of ID1 is supplied to one input of the selector SEL. Although one of the other inputs of the selector SEL is not particularly limited, in the present embodiment, a fixed value NOP is supplied. This fixed value NOP has exactly the same fields as id1_out,
Instructs a non-execution instruction instruction called a so-called no operation. The NOP may be the same as or different from the decode information of a nop instruction generally used as an instruction for instructing no operation. All you need is NO operator no oper
The designation of the size of the data to be handled may be in any place. The selection of NOP and id1_out in the selector SEL is based on whether or not the entire length of the instruction decoded by the first instruction decoder ID0 included in id0_out which is the decoding result of the first instruction decoder ID0 is 16 bits. This is performed according to the information id1_valid. Id1_out if the instruction length is 16 bits
Is selected. Conversely, if the instruction length exceeds 16 bits, NOP is selected. Thus, pipeline control signals pcnt0 and pcnt1 are obtained.

再び、第3図の命令列の実行を想定する。この時のパ
イプライン制御信号pcnt0,pcnt1の変化を、第6図
(a)に示す。第6図(a)は第3図とは異なり、縦軸
が時間になっていることに注意されたい。例えば第4図
(a)から第4図(b)の状態に移る際には、命令inst
0,inst1のデコードが行われる。これが第6図では、一
番上のラインで示されている。そして次のマシンサイク
ルではinst2_0及びinst2_1がデコードされ、pcnt0,pcnt
1にはinst2_0のデコード結果とNOPが出力される。以下
同様にして、inst0からinst6までは4マシンサイクルで
デコード処理が行われる。
Assume again the execution of the instruction sequence shown in FIG. FIG. 6A shows changes in the pipeline control signals pcnt0 and pcnt1 at this time. Note that FIG. 6 (a) differs from FIG. 3 in that the vertical axis represents time. For example, when shifting from the state shown in FIG. 4A to the state shown in FIG.
0, inst1 is decoded. This is indicated by the top line in FIG. Then, in the next machine cycle, inst2_0 and inst2_1 are decoded and pcnt0, pcnt
In 1 the decoding result of inst2_0 and the NOP are output. Similarly, the decoding process is performed in four machine cycles from inst0 to inst6.

これと同様の処理を第1の命令デコーダID0のみを用
いて行った従来の処理の場合のpcnt0の変化を第6図
(b)に示す。この従来の場合、inst0からinst6までの
命令のデコード処理には、第6図(b)に示すように、
7マシンサイクルを要する。
FIG. 6B shows a change in pcnt0 in the case of the conventional processing in which the same processing is performed using only the first instruction decoder ID0. In this conventional case, the decoding of the instructions from inst0 to inst6 is performed as shown in FIG.
It takes 7 machine cycles.

このように、本実施例では、命令デコード性能はピー
ク時に2倍、最悪の場合でも単一の命令デコーダを用い
た場合に等しい性能が得られる。
As described above, in the present embodiment, the instruction decoding performance is doubled at the peak, and at the worst case, the same performance as when a single instruction decoder is used can be obtained.

次に、上記命令inst0,inst1,inst2_0,inst2_1の処理
をより具体的な例を用いて説明する。例えば、命令inst
0がレジスタR0とレジスタR1の値を加算してレジスタR1
にその結果をセットする固定長命令、命令inst1がレジ
スタR2とレジスタR3の値を加算してレジスタR3にその結
果をセットする固定長命令とし、さらに命令inst2はレ
ジスタR4の値にディスプレースメントデータを加算して
アドレスとし、そのアドレスのデータをメイン・メモリ
からフェッチしてレジスタR5にセットする可変長命令で
あるとする。ここに命令inst2_0はオペコードであり、i
nst2_1はディスプレースメントである。
Next, the processing of the instructions inst0, inst1, inst2_0, and inst2_1 will be described using a more specific example. For example, the instruction inst
0 adds the values of register R0 and register R1 to register R1
The instruction inst1 is a fixed-length instruction that adds the values of the registers R2 and R3 and sets the result in the register R3, and the instruction inst2 stores the displacement data in the value of the register R4. It is assumed that the instruction is a variable-length instruction that adds the data to an address, fetches the data at the address from the main memory, and sets the data in the register R5. Where the instruction inst2_0 is the opcode, i
nst2_1 is a displacement.

まず、命令inst0とinst1の処理について説明する。 First, the processing of the instructions inst0 and inst1 will be described.

二つの命令inst0とinst1は、第4図(a)のようにし
て、フリフェッチキューPFQからの96ビットの信号線に
出力される。そして第1の命令デコーダID0ではinst0が
デコードされ、第2の命令デコーダID1ではinst1がデコ
ードがされる。
The two instructions inst0 and inst1 are output to the 96-bit signal line from the prefetch queue PFQ as shown in FIG. Then, inst0 is decoded by the first instruction decoder ID0, and inst1 is decoded by the second instruction decoder ID1.

この場合、inst0のデコードの結果、命令inst0が最短
命令であることが判り、その判定結果はデコード結果の
id0_out中の信号id1_validをアサートすることで示され
る。id0_outとid1_outは前述のパイプライン制御部PCNT
を通して、制御信号pcnt0,pcnt1として出力される。そ
してこれらの制御信号の指示によって以下の動作が行わ
れる。
In this case, the result of decoding of inst0 indicates that instruction inst0 is the shortest instruction, and the determination result is
It is indicated by asserting the signal id1_valid in id0_out. id0_out and id1_out are the pipeline control unit PCNT described above.
Are output as control signals pcnt0 and pcnt1. The following operations are performed according to the instructions of these control signals.

まず、制御信号pcnt0の指示によって、レジスタRの
値が信号線d0に、レジスタR1の値が信号線d1にそれぞれ
出力される。また同時に、制御信号pcnt1の指示によっ
て、レジスタR2の値が信号線d2に、レジスタR3の値が信
号線d3に出力される。続いて論理演算器ALU0では信号線
d0とd1の値を加算して信号線e0に出力し、論理演算器AL
U1では信号線d2とd3の値を加算して信号線e1に出力す
る。更にそれに続くレジスタストアのステージでは、信
号線e0の値がレジスタR1にセットされ、信号線e1の値が
レジスタR3にセットされる。
First, according to the instruction of the control signal pcnt0, the value of the register R is output to the signal line d0, and the value of the register R1 is output to the signal line d1. At the same time, according to the instruction of the control signal pcnt1, the value of the register R2 is output to the signal line d2, and the value of the register R3 is output to the signal line d3. Then, in the logical operation unit ALU0, the signal line
The values of d0 and d1 are added and output to the signal line e0, and the logical operation unit AL
U1 adds the values of the signal lines d2 and d3 and outputs the result to the signal line e1. In the subsequent register store stage, the value of the signal line e0 is set in the register R1, and the value of the signal line e1 is set in the register R3.

次に、命令inst2の処理動作を説明する。 Next, the processing operation of the instruction inst2 will be described.

命令inst2は、第4図(b)のようにして、プリフェ
ツチキューPFQからの96ビットの信号線に出力される。
そして第1の命令デコーダID0ではinst2_0がデコードさ
れ、第2の命令デコーダID1ではinst2_1が次の命令の先
頭コードであると仮定してデコードされる。
The instruction inst2 is output to the 96-bit signal line from the prefetch queue PFQ as shown in FIG. 4 (b).
In the first instruction decoder ID0, inst2_0 is decoded, and in the second instruction decoder ID1, inst2_1 is decoded on the assumption that inst2_1 is the head code of the next instruction.

この場合には、inst2_0のデコードの結果、命令inst2
が非最短命令であることが判り、その判定結果はデコー
ド結果のid0_out中の信号id1_validをネゲートすること
で示される。id0_outは前述のパイプライン制御部PCNT
を通して、制御信号pcnt0として出力される。同時に、i
d1_validがネゲートされているために、パイプライン制
御部PCNT内のセレクタSELにおいてno operation指示で
あるNOPが選択され、pcnt1として出力される。そしてこ
れらの制御信号の指示によって以下の動作が行われる。
In this case, as a result of decoding of inst2_0, the instruction inst2_0
Is a non-shortest instruction, and the determination result is indicated by negating the signal id1_valid in id0_out of the decoding result. id0_out is the pipeline control unit PCNT described above
Is output as a control signal pcnt0. At the same time, i
Since d1_valid is negated, NOP, which is a no operation instruction, is selected in the selector SEL in the pipeline control unit PCNT, and is output as pcnt1. The following operations are performed according to the instructions of these control signals.

まず、制御信号pcnt0の指示によって、レジスタR4の
値が信号線d0に出力され、また16ビットのディスプレー
スメントinst2_1が拡張部生成部EGで32ビットに拡張さ
れて信号線d1に出力される。
First, according to the instruction of the control signal pcnt0, the value of the register R4 is output to the signal line d0, and the 16-bit displacement inst2_1 is expanded to 32 bits by the expansion unit generation unit EG and output to the signal line d1.

また、制御信号pcnt1の指示はNOPであるため、信号線
d2と信号線d3にはとくに出力が指示されない。続いて整
数論理演算器ALU0では信号線d0とd1の値を加算(アドレ
ス計算)して信号線e0に出力する。論理演算器ALU1に対
する指示はやはりNOPであり、信号線e1への出力は特に
指示されない。
Since the instruction of the control signal pcnt1 is NOP, the signal line
No particular output is specified for d2 and signal line d3. Subsequently, the integer logical operation unit ALU0 adds (address calculation) the values of the signal lines d0 and d1 and outputs the result to the signal line e0. The instruction to the logical operation unit ALU1 is also NOP, and the output to the signal line e1 is not particularly instructed.

更にそれに続くステージでは、制御信号pcnt0の指示
により、信号線e0の値をアドレスとしたメイン・メモリ
のアクセスによりオペランドのフェッチが行われ、さら
にフェッチ・データがレジスタR5にセットされる。制御
信号pcnt1中のにおけるインターフェースユニットIOUと
命令デコードユニットDU(レジスタストア)への指示は
NOPであるので、メイン・メモリアクセスや信号線e1か
らレジスタへの値の伝送・設定は行わない。
In the subsequent stages, operands are fetched by accessing the main memory using the value of the signal line e0 as an address in accordance with the instruction of the control signal pcnt0, and the fetch data is set in the register R5. The instruction to the interface unit IOU and the instruction decode unit DU (register store) in the control signal pcnt1 is
Since this is a NOP, the main memory access and the transmission and setting of the value from the signal line e1 to the register are not performed.

本実施例によれば、マイクロプロセッサ全体の処理の
スループットが向上し、CPI(1命令当りの実行に要す
るマシンサイクル数)を1以下にできる。
According to this embodiment, the processing throughput of the entire microprocessor is improved, and the CPI (the number of machine cycles required for execution per instruction) can be made 1 or less.

また、複数の命令デコーダのうち、全ての命令フォー
マットをデコードできる命令デコーダはたった一つでよ
い。残りの命令デコーダは最短の命令フォーマットをデ
コードする機能だけがあれば良いから、少ないハードウ
ェアで複数命令デコードを実現できる。これはまた、マ
イクロプロセッサのテスト、診断時の処理量とその時間
を削減することになる。
Further, among the plurality of instruction decoders, only one instruction decoder can decode all instruction formats. Since the remaining instruction decoders only need to have the function of decoding the shortest instruction format, decoding of a plurality of instructions can be realized with a small amount of hardware. This also reduces the amount of processing and time required for microprocessor testing and diagnostics.

また、複数の命令デコーダに入力する命令コードは、
最短の命令フォーマットの長さで一意に分割され、各々
の命令デコーダに入力される。すなわち全ての命令デコ
ーダの入力のセレクトが容易である。これは、ハードウ
ェア量の抑制とともに、高速性の実現に役立つ。
The instruction code input to the plurality of instruction decoders is as follows:
It is uniquely divided by the length of the shortest instruction format and input to each instruction decoder. That is, it is easy to select the inputs of all the instruction decoders. This is useful for suppressing the amount of hardware and realizing high speed.

また、本発明の実施例は、固定長命令セットを有する
マイクロプロセッサにも適用できる。すなわち、複数の
命令デコーダのうち大多数を、頻度の高い命令のみをデ
コード可能としておくことにより、少ないハードウェア
でかつ高速な、複数命令を並列に処理する命令デコーダ
が実現できる。
Further, the embodiments of the present invention can be applied to a microprocessor having a fixed-length instruction set. That is, by making it possible to decode the majority of the instruction decoders and only the frequent instructions, an instruction decoder that processes a plurality of instructions in parallel with a small amount of hardware can be realized.

また、固定長命令セット,可変長命令セットに関わら
ず、各命令デコーダがデコード可能な命令を、その命令
デコーダが制御する回路に対応して定めることが可能で
ある。例えば、論理演算器を制御する命令デコーダは、
論理演算命令のみデコード可能であり、その他の命令
は、デコーダできなかったことを示す結果を出力する。
このようにすると、命令デコーダから被制御回路への信
号線数が少なくなるという効果が生じる。
Further, regardless of the fixed-length instruction set and the variable-length instruction set, it is possible to determine the instructions that can be decoded by each instruction decoder in accordance with the circuit controlled by the instruction decoder. For example, an instruction decoder that controls a logical operation unit
Only the logical operation instruction can be decoded, and other instructions output a result indicating that the decoding could not be performed.
This has the effect of reducing the number of signal lines from the instruction decoder to the controlled circuit.

〔発明の効果〕〔The invention's effect〕

本発明により、可変長命令セットにおいて複数の固定
長命令の並列デコードが可能になる。従って、従来の方
法と比較して、命令デコード性能の最大スループットが
向上する。
According to the present invention, a plurality of fixed-length instructions can be decoded in parallel in a variable-length instruction set. Therefore, the maximum instruction decoding performance is improved as compared with the conventional method.

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

第1図は本発明の一実施例のマイクロプロセッサのブロ
ック図を示し、第2図は本実施例のマイクロプロセッサ
の有する可変長命令セットの6種類の命令長を示し、第
3図は本実施例の命令セットにおけるメモリ上の命令の
並びの一例を示し、第4図は第1図に示したマイクロプ
ロセッサが第3図の命令列を実行する際の信号線i0−5
の値をある二つの時点について示しし、第5図は第1図
のマイクロプロセッサの構成要素の一つである制御回路
PCNTの詳細な構成図を示し、第6図(a)は第1図のマ
イクロプロセッサにおいて第3図の命令列を実行した際
に命令デコードによって生成される制御信号の変化を示
し、第6図(b)は第1図のマイクロプロセッサにおい
て命令デコーダが一つしかない構成を採った場合の制御
信号の変化を示している。
FIG. 1 is a block diagram of a microprocessor according to an embodiment of the present invention, FIG. 2 is a diagram showing six types of instruction lengths of a variable-length instruction set of the microprocessor of the embodiment, and FIG. FIG. 4 shows an example of a sequence of instructions on a memory in the example instruction set. FIG. 4 shows signal lines i0-5 when the microprocessor shown in FIG. 1 executes the instruction sequence shown in FIG.
FIG. 5 shows the values of the control circuit which is one of the components of the microprocessor of FIG.
FIG. 6 (a) shows a detailed configuration diagram of the PCNT, and FIG. 6 (a) shows a change in a control signal generated by instruction decoding when the instruction sequence of FIG. 3 is executed in the microprocessor of FIG. (B) shows a change in the control signal when the microprocessor of FIG. 1 has a configuration having only one instruction decoder.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 内山 邦男 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 G06F 9/30 G06F 9/32────────────────────────────────────────────────── ─── of the front page continued (72) inventor Kunio Uchiyama Tokyo Kokubunji Higashikoigakubo 1-chome 280 address Hitachi, Ltd. center within the Institute (58) investigated the field (Int.Cl. 6, DB name) G06F 9/38 G06F 9/30 G06F 9/32

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】所定のビット幅の命令長の第1及び第2の
命令をマイクロプロセッサの外部からフェッチし、少な
くとも上記所定のビット幅の2倍のビット幅を有する出
力線に上記第1及び第2の命令を並行に出力するフェッ
チユニットと、 その入力に上記フェッチユニットの上記出力線の上記第
1の命令が供給される第1の命令デコーダと、 その入力に上記フェッチユニットの上記出力線の上記第
2の命令が供給される第2の命令デコーダと、 上記第1の命令デコーダの第1のデコード結果と上記第
2の命令デコードの第2のデコード結果とが供給される
制御部と、 上記制御部からの出力に応答する命令実行部とを具備
し、 上記制御部はセレクタを含み、該セレクタの一方の入力
には上記第2の命令デコーダの第2のデコード結果と不
実行指令命令とがそれぞれ供給され、上記第2のデコー
ド結果と不実行指令命令のいずれかを選択して出力する
ために該セレクタの制御入力には第1の命令の所定の命
令長を示す情報が供給され、上記情報が上記所定の命令
長が所定のビット長であることを示している有効条件で
は、上記セレクタは上記第2のデコード結果を選択し、
上記制御部は上記第1の命令デコーダの第1のデコード
結果と上記第2の命令デコーダの第2のデコード結果と
を該制御部の出力に伝達し、その結果上記第2のデコー
ド結果を無効にするために上記制御部は上記第1の命令
デコーダの第1のデコード結果と上記不実行指令命令と
を該制御部の出力に伝達するマイクロプロセッサ。
1. A first and a second instruction having an instruction length of a predetermined bit width are fetched from outside a microprocessor, and the first and second instructions are output to an output line having a bit width at least twice the predetermined bit width. A fetch unit that outputs a second instruction in parallel; a first instruction decoder whose input is supplied with the first instruction of the output line of the fetch unit; and an output line of the fetch unit that has an input. A second instruction decoder to which the second instruction is supplied; a control unit to which a first decoding result of the first instruction decoder and a second decoding result of the second instruction decoding are supplied; An instruction execution unit responsive to an output from the control unit, wherein the control unit includes a selector, and one input of the selector includes a second decoding result of the second instruction decoder and an error. In order to select and output one of the second decoding result and the non-executable command instruction, the control input of the selector includes information indicating a predetermined instruction length of the first instruction. In a valid condition provided and the information indicates that the predetermined instruction length is a predetermined bit length, the selector selects the second decoding result,
The control unit transmits a first decoding result of the first instruction decoder and a second decoding result of the second instruction decoder to an output of the control unit, and as a result, invalidates the second decoding result. A microprocessor configured to transmit a first decoding result of the first instruction decoder and the non-executable instruction instruction to an output of the control unit.
【請求項2】特許請求の範囲第1項記載のマイクロプロ
セッサにおいて、上記制御部が上記第2のデコーダの第
2のデコード結果を無効化する際に、この無効化された
上記第2のデコーダの第2のデコード結果のビット位置
に対応した上記フェッチユニットの上記出力線のビット
情報に応答して上記命令実行部はオペランドのアドレス
を決定するマイクロプロセッサ。
2. The microprocessor according to claim 1, wherein when the control unit invalidates a second decoding result of the second decoder, the invalidated second decoder is invalidated. A microprocessor for determining an address of an operand in response to bit information of the output line of the fetch unit corresponding to a bit position of the second decoded result of the above.
【請求項3】特許請求の範囲第1項記載のマイクロプロ
セッサにおいて、上記所定のビット幅が最短命令長であ
るマイクロプロセッサ。
3. The microprocessor according to claim 1, wherein said predetermined bit width is a shortest instruction length.
JP2190661A 1990-07-20 1990-07-20 Microprocessor Expired - Fee Related JP2834289B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2190661A JP2834289B2 (en) 1990-07-20 1990-07-20 Microprocessor
DE69133134T DE69133134D1 (en) 1990-07-20 1991-07-03 Microprocessor with the ability to decode two instructions in parallel
EP91111044A EP0467152B1 (en) 1990-07-20 1991-07-03 Microprocessor capable of decoding two instructions in parallel
KR1019910012236A KR100233897B1 (en) 1990-07-20 1991-07-18 Microprocessor capable of parallel decoding two instructions
US08/169,728 US5408625A (en) 1990-07-20 1993-12-17 Microprocessor capable of decoding two instructions in parallel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2190661A JP2834289B2 (en) 1990-07-20 1990-07-20 Microprocessor

Publications (2)

Publication Number Publication Date
JPH0477925A JPH0477925A (en) 1992-03-12
JP2834289B2 true JP2834289B2 (en) 1998-12-09

Family

ID=16261802

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2190661A Expired - Fee Related JP2834289B2 (en) 1990-07-20 1990-07-20 Microprocessor

Country Status (5)

Country Link
US (1) US5408625A (en)
EP (1) EP0467152B1 (en)
JP (1) JP2834289B2 (en)
KR (1) KR100233897B1 (en)
DE (1) DE69133134D1 (en)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651984A (en) * 1992-06-05 1994-02-25 Hitachi Ltd Microprocessor
US5859994A (en) * 1992-08-10 1999-01-12 Intel Corporation Apparatus and method for modifying instruction length decoding in a computer processor
JP3644959B2 (en) * 1992-09-29 2005-05-11 セイコーエプソン株式会社 Microprocessor system
US5485629A (en) * 1993-01-22 1996-01-16 Intel Corporation Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
US5825921A (en) * 1993-03-19 1998-10-20 Intel Corporation Memory transfer apparatus and method useful within a pattern recognition system
US5819057A (en) * 1995-01-25 1998-10-06 Advanced Micro Devices, Inc. Superscalar microprocessor including an instruction alignment unit with limited dispatch to decode units
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
US5822778A (en) * 1995-06-07 1998-10-13 Advanced Micro Devices, Inc. Microprocessor and method of using a segment override prefix instruction field to expand the register file
US5680578A (en) * 1995-06-07 1997-10-21 Advanced Micro Devices, Inc. Microprocessor using an instruction field to specify expanded functionality and a computer system employing same
US5768574A (en) * 1995-06-07 1998-06-16 Advanced Micro Devices, Inc. Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor
US5845323A (en) * 1995-08-31 1998-12-01 Advanced Micro Devices, Inc. Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time
DE69629484D1 (en) * 1995-10-06 2003-09-18 Advanced Micro Devices Inc COMMAND PRECODING AND DECODING MULTIPLE COMMANDS
US5809273A (en) * 1996-01-26 1998-09-15 Advanced Micro Devices, Inc. Instruction predecode and multiple instruction decode
US5819056A (en) * 1995-10-06 1998-10-06 Advanced Micro Devices, Inc. Instruction buffer organization method and system
US5864704A (en) * 1995-10-10 1999-01-26 Chromatic Research, Inc. Multimedia processor using variable length instructions with opcode specification of source operand as result of prior instruction
US5768553A (en) * 1995-10-30 1998-06-16 Advanced Micro Devices, Inc. Microprocessor using an instruction field to define DSP instructions
US5819080A (en) * 1996-01-02 1998-10-06 Advanced Micro Devices, Inc. Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor
EP0896700A1 (en) * 1996-05-01 1999-02-17 Advanced Micro Devices, Inc. Superscalar microprocessor including a high performance instruction alignment unit
JPH1011289A (en) * 1996-06-19 1998-01-16 Mitsubishi Electric Corp Instruction number extension method for parallel processing processor and parallel processing processor
JP2000515275A (en) * 1996-07-16 2000-11-14 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Superscalar microprocessor including high-speed instruction alignment unit
WO1998020421A1 (en) * 1996-11-04 1998-05-14 Advanced Micro Devices, Inc. A way prediction structure
US6230259B1 (en) 1997-10-31 2001-05-08 Advanced Micro Devices, Inc. Transparent extended state save
US6157996A (en) * 1997-11-13 2000-12-05 Advanced Micro Devices, Inc. Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space
US6016533A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
US6324639B1 (en) 1998-03-30 2001-11-27 Matsushita Electric Industrial Co., Ltd. Instruction converting apparatus using parallel execution code
EP0992893B1 (en) * 1998-10-06 2008-12-31 Texas Instruments Inc. Verifying instruction parallelism
US6742110B2 (en) 1998-10-06 2004-05-25 Texas Instruments Incorporated Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
US6178496B1 (en) 1999-02-17 2001-01-23 Motorola, Inc. System for converting instructions, and method therefore
US6820189B1 (en) * 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US6981132B2 (en) 2000-08-09 2005-12-27 Advanced Micro Devices, Inc. Uniform register addressing using prefix byte
US6877084B1 (en) 2000-08-09 2005-04-05 Advanced Micro Devices, Inc. Central processing unit (CPU) accessing an extended register set in an extended register mode
US7500240B2 (en) * 2002-01-15 2009-03-03 Intel Corporation Apparatus and method for scheduling threads in multi-threading processors
US7227994B2 (en) * 2003-03-20 2007-06-05 International Business Machines Corporation Method and apparatus for imbedded pattern recognition using dual alternating pointers
US7366352B2 (en) * 2003-03-20 2008-04-29 International Business Machines Corporation Method and apparatus for performing fast closest match in pattern recognition
US7117290B2 (en) 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US7707389B2 (en) * 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
US7587579B2 (en) * 2004-12-28 2009-09-08 Ceva D.S.P. Ltd. Processor core interface for providing external hardware modules with access to registers of the core and methods thereof
CN100543669C (en) * 2005-04-22 2009-09-23 Mips技术公司 Method and apparatus for recoding instructions
US9304773B2 (en) * 2006-03-21 2016-04-05 Freescale Semiconductor, Inc. Data processor having dynamic control of instruction prefetch buffer depth and method therefor
US9710277B2 (en) * 2010-09-24 2017-07-18 Intel Corporation Processor power management based on class and content of instructions

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL149925C (en) * 1968-10-25 1976-06-15
USRE32493E (en) * 1980-05-19 1987-09-01 Hitachi, Ltd. Data processing unit with pipelined operands
JPS6224326A (en) * 1985-07-24 1987-02-02 Hitachi Ltd data processing equipment
JPH0760383B2 (en) * 1987-03-31 1995-06-28 株式会社東芝 Processor
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
EP0354740B1 (en) * 1988-08-09 1996-06-19 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
US5148528A (en) * 1989-02-03 1992-09-15 Digital Equipment Corporation Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length

Also Published As

Publication number Publication date
KR920003153A (en) 1992-02-29
DE69133134D1 (en) 2002-11-21
US5408625A (en) 1995-04-18
EP0467152A2 (en) 1992-01-22
JPH0477925A (en) 1992-03-12
EP0467152B1 (en) 2002-10-16
KR100233897B1 (en) 1999-12-15
EP0467152A3 (en) 1993-05-05

Similar Documents

Publication Publication Date Title
JP2834289B2 (en) Microprocessor
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
US5337415A (en) Predecoding instructions for supercalar dependency indicating simultaneous execution for increased operating frequency
US4740893A (en) Method for reducing the time for switching between programs
US5233694A (en) Pipelined data processor capable of performing instruction fetch stages of a plurality of instructions simultaneously
EP0427245B1 (en) Data processor capable of simultaneously executing two instructions
USH1291H (en) Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions
US5638526A (en) Apparatus for operand data bypassing having previous operand storage register connected between arithmetic input selector and arithmetic unit
JP3842474B2 (en) Data processing device
US5398321A (en) Microcode generation for a scalable compound instruction set machine
KR100254007B1 (en) Data processor capable of executing two instructions simultaneously
US6112289A (en) Data processor
JP3497516B2 (en) Data processor
JPS63273134A (en) Method and apparatus for altering microinstruction using microinstruction pipeline
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
JPH10222368A (en) Data processing device
US6115730A (en) Reloadable floating point unit
JP4613168B2 (en) Instruction alignment method and apparatus
EP0375883A2 (en) Cache storage system
JPS6314239A (en) Instruction generating unit for computer system
GB2230116A (en) Pipelined instruction decoding apparatus
EP0573071A2 (en) A microprocessor
US5187782A (en) Data processing system
JP2581565B2 (en) Data processing device that executes guarded instructions
JPH0150934B2 (en)

Legal Events

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

Free format text: PAYMENT UNTIL: 20071002

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees