[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2847316B2 - Processor - Google Patents

Processor

Info

Publication number
JP2847316B2
JP2847316B2 JP2089297A JP8929790A JP2847316B2 JP 2847316 B2 JP2847316 B2 JP 2847316B2 JP 2089297 A JP2089297 A JP 2089297A JP 8929790 A JP8929790 A JP 8929790A JP 2847316 B2 JP2847316 B2 JP 2847316B2
Authority
JP
Japan
Prior art keywords
instructions
instruction
section
field
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2089297A
Other languages
Japanese (ja)
Other versions
JPH03201030A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JPH03201030A publication Critical patent/JPH03201030A/en
Application granted granted Critical
Publication of JP2847316B2 publication Critical patent/JP2847316B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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

Landscapes

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、マイクロプロセッサにおいて使用される命
令デコーディング装置に関する。
Description: FIELD OF THE INVENTION The present invention relates to an instruction decoding device used in a microprocessor.

〔発明の背景〕[Background of the Invention]

マイクロプロセッサや他のコンピュータは、マクロ・
レベルの命令をデコードするデコーダを使用しなければ
ならない場合がよくある。実際には、命令はデコーダに
より翻訳され、かつデコーダは、命令を実行するためプ
ロセッサにおいて何を行うべきかを決定する。多くの場
合、マイクロプロセッサは、マイクロ・レベルの命令
(マイクロコード)を記憶するメモリを含み、デコーダ
は、マイクロコードにルックアップ機能を供給する。
Microprocessors and other computers use macros
Often, a decoder must be used to decode the level instructions. In effect, the instructions are translated by a decoder, and the decoder determines what to do in the processor to execute the instructions. Often, a microprocessor includes a memory for storing micro-level instructions (microcode), and a decoder provides the microcode with a look-up function.

あるマイクロプロセッサでは、マクロ・レベルの命令
は、固定長(たとえば、32ビット)で、他のマイクロプ
ロセッサでは、命令は異なる長さである。たとえば、デ
コーダには、命令中の所定のフィールドの所在が分かっ
ている固定長の命令をデコードする方が、はるかに簡単
な作業である。これに対して、可変長の命令の場合、た
とえば、直接データ・フィールドがあるかもしれない
し、またはないかもしれないし、さらに命令の開始点が
変化してしまう。
In some microprocessors, macro-level instructions are of fixed length (eg, 32 bits), while in other microprocessors, instructions are of different lengths. For example, it is much easier for a decoder to decode fixed length instructions where the location of a given field in the instruction is known. In contrast, for a variable length instruction, for example, there may or may not be a direct data field, and the starting point of the instruction will change.

インテル386マイクロプロセッサ(インテルおよび386
は、インテル・コーポレーションの登録商標である)
は、可変長命令を有するマイクロプロセッサの一例であ
る。命令の幅は、いくつかのMOVE命令のような場合は1
バイトでよいが、最高8バイト(プレフィックスなし)
まで可能である。さらに、命令プレフィックスまたオー
バライドでは、命令の長さは、実質的にはさらに長くし
てもよい(たとえば、15バイト)。単一のパスにおいて
これら可変長の命令をデコードする単一のデコーダー
は、比較的複雑で、その上比較的大きな基板面積を消費
してしまう。
Intel 386 microprocessor (Intel and 386
Is a registered trademark of Intel Corporation)
Is an example of a microprocessor having a variable length instruction. The instruction width is 1 for some MOVE instructions
Can be bytes, up to 8 bytes (no prefix)
Is possible up to. Further, with an instruction prefix or override, the length of the instruction may be substantially longer (eg, 15 bytes). A single decoder that decodes these variable length instructions in a single pass is relatively complex and consumes relatively large board area.

インテル386では、可変長の命令は、いくつかのコン
ピュータ・サイクルを費やしてデコードされる。他のフ
ィールドが続いている命令プレフィックスが最初に調べ
られる。命令の実行は、デコーディングが終了した後開
始する。多くの命令に関し、インテル386は、デコーデ
ィングするのにいくつかのサイクルを必要としている。
たとえば、LOADは、デコードされるべき命令に対して4
つのサイクルを必要とし、STOREは、2つのサイクルが
必要で、JUMPは3サイクルから4.25サイクルを必要とし
ている。命令を完全にデコードする前に、平均して約3
サイクルが必要である。しかし、後述するように、本発
明では、命令をデコードするやり方およびパイプライン
とにより、これらの時間は大幅に低減され、デコーディ
ング時間は、平均約1.8サイクルに低下する。
On the Intel 386, variable-length instructions are decoded over several computer cycles. Instruction prefixes followed by other fields are examined first. Instruction execution begins after decoding is complete. For many instructions, the Intel 386 requires several cycles to decode.
For example, LOAD is 4 for the instruction to be decoded.
STORE requires two cycles, STORE requires two cycles, and JUMP requires three to 4.25 cycles. Before decoding the instruction completely, on average about 3
A cycle is needed. However, as described below, in the present invention, due to the manner in which the instructions are decoded and the pipeline, these times are greatly reduced and the decoding time is reduced to an average of about 1.8 cycles.

本発明は、インテル386マイクロプロセッサのバージ
ョンを改善したマイクロプロセッサにおいて使用され
る。インテル386マイクロプロセッサについては、多く
の印刷物において述べられている。また、このマイクロ
プロセッサのプログラミングについては、1987年SYBEX
により発表された、クロフォードおよびゲルシンガによ
る「80386のプログラミング」に述べられている。
The invention is used in microprocessors that have improved versions of the Intel 386 microprocessor. Intel 386 microprocessors have been described in many printed publications. The programming of this microprocessor was described in SYBEX in 1987.
In "Programming the 80386" by Crawford and Gersinga.

〔発明の概要〕[Summary of the Invention]

プリフェッチされた命令を記憶する記憶装置と、異な
る長さの命令をデコードするデコーディング装置とを有
する改善されたマイクロプロセッサについて説明する。
改善されたマイクロプロセッサは、2つのステージすな
わちセクションを含んでいるデコーディング手段を使用
している。第1セクションは、第2セクションが前の命
令の第2フィールドに基づいて実行をセットアップして
いる間に同時に1つの命令の第1フィールドをデコード
する。すなわち、第1および第2セックションは、命令
をパイプラインし、それを並列に操作する。
An improved microprocessor having a storage device for storing prefetched instructions and a decoding device for decoding instructions of different lengths is described.
The improved microprocessor uses a decoding means that includes two stages or sections. The first section decodes the first field of one instruction simultaneously while the second section sets up execution based on the second field of the previous instruction. That is, the first and second sessions pipeline the instruction and operate it in parallel.

本実施例では、第1セクションは、Opコードと、アド
レス・モード、スケーリング・ファクタおよび基底(ベ
ース)および指標レジスタを表しているビットのデコー
ドする。第2セクションは、アドレス変位および直接デ
ータ・フィールドの使用を制御する。第1セクション
は、前記装置に関するポインタを発生し、各セクション
が命令の正しいフィールドを受信することができるよう
にする。各セクションは、記憶装置からのどんなバイト
も受信できる。
In this embodiment, the first section decodes the Op code and the bits representing the address mode, scaling factor and base and index registers. The second section controls the use of address displacement and direct data fields. The first section generates a pointer for the device so that each section can receive the correct fields of the instruction. Each section can receive any bytes from storage.

本発明の他の特徴は、本発明の詳細な説明から明らか
にされるであろう。
Other features of the present invention will be apparent from the detailed description of the invention.

以下、添付の図面に基づいて、本発明の実施例に関し
説明する。
Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

〔実施例〕〔Example〕

プリフェッチされた命令に関して特に有用なマイクロ
プロセッサの命令デコーディング装置について説明す
る。以下の記載において、特定のビット数など多くの特
定の詳細な記載は、本発明の理解を助けるためのもので
あって、本発明はこれら詳細な記載に限定されるもので
はないことは当業者には明白であろう。また、周知の処
理技術、デコーディング技術、および回路についての詳
細な記載は、本発明の説明を不明瞭にしないよう省略す
る。
A microprocessor instruction decoding apparatus that is particularly useful for prefetched instructions is described. In the following description, many specific details, such as a specific number of bits, are for assisting an understanding of the present invention, and it is understood by those skilled in the art that the present invention is not limited to these detailed descriptions. Will be obvious to you. In addition, detailed descriptions of well-known processing techniques, decoding techniques, and circuits are omitted so as not to obscure the description of the present invention.

本発明は、インテル286および386ファミリーのマイク
ロプロセッサの次のマイクロプロセッサを設計している
際に得られたものである。このため、インテル386マイ
クロプロセッサを理解することにより、本発明の意図を
十分に認識することができる。この動作は、このマイク
ロプロセッサに関する多くの出版物の他、1987年SYBEX
により発表された、クロフォードおよびゲルシンガによ
る「80386のプログラミング」に述べられている。
The present invention was derived during the design of the next microprocessor after the Intel 286 and 386 family of microprocessors. Therefore, by understanding the Intel 386 microprocessor, the intention of the present invention can be fully recognized. This behavior has been documented in many publications on this microprocessor, as well as in 1987 SYBEX
In "Programming the 80386" by Crawford and Gersinga.

《本発明が実施されるマイクロプロセッサの概要》 本発明が実施されるマイクロプロセッサは、相補形金
属酸化膜半導体(CMOS)技術で製造された32ビット・マ
イクロプロセッサである。これは、単一基板に中央処理
装置(CPU)に関連した装置だけでなく、キャッシュ・
メモリおよび浮動小数点装置を有している。改善された
本発明の命令デコーディング装置により、多くの命令に
対して単一サイクルの命令実行を実現することができ
る。
<< Outline of Microprocessor Implementing the Present Invention >> The microprocessor embodying the present invention is a 32-bit microprocessor manufactured by complementary metal oxide semiconductor (CMOS) technology. This means that on a single board, not only the equipment associated with the central processing unit (CPU) but also the cache
It has memory and floating point units. With the improved instruction decoding apparatus of the present invention, single cycle instruction execution can be realized for many instructions.

第1図において、マイクロプロセッサの主装置とし
て、バス・インタフェイス装置10が示されている。この
装置は、マイクロプロセッサの内部バス、たとえばキャ
ッシュ・メモリ11およびプリフェッチャ12と、外部デー
タ・メモリ装置からデータをフェッチするための応答可
能な外部バスとの間で必要なインタフェイスを行う。外
部32ビット・アドレス・バスと32ビット・データ・バス
が使用される。ここに示されているマイクロプロセッサ
において使用される特定のインタフェイス装置10は、本
発明ではあまり重要ではない。この装置は、本発明の出
願人に譲渡された1988年8月1日出願の特許願第227,07
8号(米国特許第5,073,969号)発明の名称「マイクロプ
ロセッサ・バス・インタフェイス装置」に示されてい
る。なお、プリフェッチャ12に記憶されたプリフェッチ
された命令は、バス・インタフェイス装置10またはキャ
ッシュ・メモリ11からこのプリフェッチャに伝達するこ
とができる。
In FIG. 1, a bus interface device 10 is shown as a main device of the microprocessor. This device provides the necessary interface between the microprocessor's internal buses, such as cache memory 11 and prefetcher 12, and a responsive external bus for fetching data from an external data memory device. An external 32-bit address bus and 32-bit data bus are used. The particular interface device 10 used in the microprocessor shown here is not critical to the present invention. This device is disclosed in Japanese Patent Application No. 227,07, filed August 1, 1988, assigned to the assignee of the present invention.
No. 8 (U.S. Pat. No. 5,073,969) is shown under the title "Microprocessor Bus Interface Device". The prefetched instruction stored in the prefetcher 12 can be transmitted from the bus interface device 10 or the cache memory 11 to the prefetcher.

ペーシング装置13とセグメンテーション装置15は、イ
ンテル386に使用されている装置とほとんど同じであ
る。しかし、1クロック実行をサポートするため、タイ
ミングが変えられている。セグメンテーション装置とプ
リフェッチャ12の相互接続と命令デコーダ装置14との他
の関係については、第2図に示されている。
The pacing device 13 and the segmentation device 15 are almost the same as those used for the Intel 386. However, the timing has been changed to support one clock execution. Another relationship between the interconnection of the segmentation device and the prefetcher 12 and the instruction decoder device 14 is shown in FIG.

命令デコーディング装置は、入力命令をデコードする
ものであり、後述するように、並列にデコーディングし
かつパイプライン化する点において、インテル386の命
令でデコーディング装置とは異なっている。命令デコー
ディング装置は、2つのステージすなわちセクションを
有しており、大抵の命令に対してコンピュータ・クロッ
ク・サイクル当たり1つのデコードした命令を生じる。
第1セクションは、基本的には、Opコード、およびアド
レス・モード、スケーリング・ファクタ、および基底
(ベース)および指標レジスタ・ビット(まとめて、レ
ジスタおよびアドレス・モード・スペシファイヤ(spec
ifier)と呼ばれることもある)をデコードし、第2セ
クションは、主に、アドレス変位または直接データ・フ
ィールドの使用を管理している。
The instruction decoding device decodes an input instruction, and differs from the decoding device with an Intel 386 instruction in that decoding and pipelining are performed in parallel as described later. The instruction decoding unit has two stages or sections, producing one decoded instruction per computer clock cycle for most instructions.
The first section basically consists of the Op code and address mode, scaling factor, and base and index register bits (collectively, the register and address mode specifier (spec
), and the second section mainly manages the use of address displacement or direct data fields.

制御装置19は、マイクロコンピュータのマイクロコー
ド命令(マイクロコード)を記憶するメモリを有してい
る。これは、後述するように。マイクロコードの第1ラ
インが、命令デコーディング装置14により供給されるの
で、マイクロプロセッサの制御を命令デコーディング装
置と共用する。制御装置19は、必要に応じて、割り込み
/例外仲裁(arbitration)のような命令バウンダリ処
理や、命令デコーディング装置14の休止に関して応答可
能である。制御装置19は、キャッシュ・メモリのミスな
どのような大抵の凍結状態を処理する。
The control device 19 has a memory for storing microcode instructions (microcode) of the microcomputer. This will be described later. Since the first line of microcode is provided by the instruction decoding unit 14, control of the microprocessor is shared with the instruction decoding unit. The controller 19 is responsive to instruction boundary processing, such as interrupt / exception arbitration, or to halting the instruction decoding device 14, as needed. The controller 19 handles most frozen states, such as cache memory misses.

データパス(経路)装置17は、マイクロプロセッサの
主実行データパスである。これは、算術論理装置、レジ
スタ・ファイル、バレル・シフタ、定数ROM、フラグを
含んでいる。
The data path (path) device 17 is a main execution data path of the microprocessor. This includes arithmetic logic units, register files, barrel shifters, constant ROMs, and flags.

マイクロプロセッサは、浮動少数点装置18をさらに有
している。この装置は、浮動小数点命令を実行する論理
装置を有している。
The microprocessor further has a floating point unit 18. The device has logic for executing floating point instructions.

《本発明の実施例の説明》 第1図の命令デコーディング装置14は、第2図の点数
46,47の間に示されている。この装置およびプリフェッ
チャ12の所定の回路は、相互に動作して、本発明の利点
を提供する。
<< Description of Embodiment of the Present Invention >> The instruction decoding device 14 shown in FIG.
Shown between 46,47. This device and certain circuits of the prefetcher 12 work together to provide the benefits of the present invention.

プリフェッチャ12は、3つの主なセクション、すなわ
ちレジスタ26、マルチプレクサ27、関連論理装置28を有
している。レジスタすなわちラッチ26は、キャッシュ・
メモリまたはバス・インタフェイス装置のいずれかから
のプリフェッチされた命令を受信する。これは、第2図
のバス48で示されている。レジスタ26の幅は、本実施例
においては32バイトである。レジスタ26に記憶された命
令は、バス29(K1Q)またはバス30(K2Q)のいずれかに
送ることができる。これら命令は、マルチプレクサ27を
介してこれらバスに送られる。レジスタ26における任意
の隣接する(連続した)3バイトは、バス29に供給する
ことができる。また、任意の隣接する(連続した)4バ
イトは、バス30に供給することができる。
The prefetcher 12 has three main sections: a register 26, a multiplexer 27, and associated logic 28. The register or latch 26 is
Receive prefetched instructions from either memory or bus interface devices. This is indicated by bus 48 in FIG. The width of the register 26 is 32 bytes in this embodiment. The instruction stored in register 26 can be sent to either bus 29 (K1Q) or bus 30 (K2Q). These instructions are sent to these buses via multiplexer 27. Any three adjacent (consecutive) bytes in register 26 can be provided on bus 29. Also, any adjacent (consecutive) 4 bytes can be supplied to the bus 30.

コード制御装置36からライン44における信号は、バス
29に連続した24ビット・フィールドの第1バイトにポイ
ンタ(K1P)を供給する。“K1P"の後の“(5)”は、
このポインタを示すのに5ビットが使用されるというこ
とを示しており、これは、レジスタ29に記憶された32バ
イトの単一バイトを示すのに必要である。ライン43でプ
リフェッチャ12に接続した第2ポインタ(K2P)は、バ
ス30に接続した32ビット・フィールドの第1バイトを示
す。後述するように、バス29、30に接続したフィールド
は、オーバラップしてもよい。すなわち1クロック・サ
イクルにおいてバス29に最初に接続したバイトは、その
後のクロック・サイクルにおいてバス30に接続すること
ができる。
The signal on line 44 from code controller 36 is
Provides a pointer (K1P) to the first byte of a 24-bit field that is continuous with 29. “(5)” after “K1P”
It indicates that 5 bits are used to indicate this pointer, which is necessary to indicate a single byte of 32 bytes stored in register 29. A second pointer (K2P) connected to the prefetcher 12 on line 43 points to the first byte of a 32-bit field connected to the bus 30. As described below, the fields connected to buses 29 and 30 may overlap. That is, the first byte connected to bus 29 in one clock cycle can be connected to bus 30 in a subsequent clock cycle.

ライン41(K1PJ)のプリフェッチャ12に接続した5ビ
ットは、コード制御回路36に飛び越しポインタを与え
る。これは、(JUMPコマンドの後の)新しい命令がレジ
スタ26にロードされた後に生じる。このポインタは、新
しい命令の開始バイトを制御回路36に表示する。ライン
42(K1VおよびK2V)における信号は、K1QデータおよびK
2Qのデータが妥当であるかどうかを表示する。ライン40
における信号(isx8およびizx16)は、直接データ・フ
ィールードの接続を制御する制御信号である。
The five bits connected to the prefetcher 12 on line 41 (K1PJ) provide a jump pointer to the code control circuit 36. This occurs after a new instruction has been loaded into register 26 (after the JUMP command). This pointer indicates to the control circuit 36 the start byte of the new instruction. line
The signal at 42 (K1V and K2V) is
Shows whether 2Q data is valid. Line 40
(Isx8 and izx16) are control signals for directly controlling the connection of the data field.

デコーダ31は、普通のデコーディングを行うようプロ
グラムされた(論理ゲートを含んでいる)普通のプログ
ラム論理アレイ(PLA)回路である。後に示すように、O
pコードおよびレジスタおよびアドレス・モード・スペ
シファイヤは、レジスタ26からデコーダ31に(命令プレ
フィックスを含んでいる場合を除いて)接続されてい
る。このデータから、コード制御装置36を介してデコー
ダ31は、デコーダ31が実際に必要なフィールドの長さ
と、K2Qバスに関するポインタがレジスタ26において示
すべき点を決定する。デコーダは、8ビットの命令がレ
ジスタ26に存在している場合でも、常に24ビットを受信
する。デコーダ31は、命令を履行するのに必要とされる
アドレスの種類を識別する実行セットアップ・ステージ
34に信号を供給する。後述するように、デコーダ31と実
行セットアップ・ステージ34に並列に動作するが、デコ
ーダ31は、ステージ34が前の命令で動作している間、1
つの命令に関して動作する。
Decoder 31 is a conventional programmed logic array (PLA) circuit (including logic gates) programmed to perform conventional decoding. As shown below, O
The p-code and registers and address mode specifier are connected from register 26 to decoder 31 (unless it includes an instruction prefix). From this data, the decoder 31 via the code controller 36 determines the length of the field actually required by the decoder 31 and the point at which the pointer on the K2Q bus should point in the register 26. The decoder always receives 24 bits, even if an 8-bit instruction is present in register 26. Decoder 31 performs an execution setup stage that identifies the type of address required to execute the instruction.
Supply signal to 34. As described below, the decoder 31 and the execution set-up stage 34 operate in parallel, but the decoder 31 operates while the stage 34 operates on the previous instruction.
Operate on one instruction.

デコーダ31の出力に接続したラッチ35により、デコー
ディングから得られた信号はラッチ35を介してクロック
され、ステージ34により行われるその後の“デコーディ
ング”とタイミングを合わすことができる。ラッチ出力
は、特殊なALU制御信号とソース/デステイネーション
・レジスタのエネーブル信号を含んでいる。ラッチの出
力は、装置19のマイクロコード・メモリにおけるマイク
ロコードの“第1"ラインの入口点(ルック・アップ)を
含んでいる。
By means of a latch 35 connected to the output of the decoder 31, the signal obtained from the decoding is clocked via the latch 35 and can be timed with the subsequent "decoding" performed by the stage 34. The latch output includes a special ALU control signal and an enable signal for the source / destination register. The output of the latch includes the entry point (lookup) of the "first" line of microcode in the microcode memory of device 19.

しかし、実際には、デコーダ31はラッチ35とともにマ
イクロコードの最初の2つのラインを供給するので、入
口点は、マイクロコードの第3有効ラインを示す。たと
えば、これは、記憶命令において、またはデコーダ31が
1サイクルにおいてアドレス計算をセットアップする時
に生じる。続くクロック・サイクルにおいて、マイクロ
コードの第2ラインは、バス・サイクルを開始する(メ
モリから受信する)ようラッチ35により供給される。次
のクロック・サイクルに関して、コードの第3ライン
は、マイクロコード・メモリ(第1図の制御装置19)に
より供給される。コードの第3ラインは、ラッチ35がマ
イクロコードの第1ラインを供給している時、ラッチ35
により供給される入口点に基づいて選択される。
However, in practice, since the decoder 31 supplies the first two lines of microcode with the latch 35, the entry point indicates the third valid line of microcode. For example, this occurs in a store instruction or when the decoder 31 sets up the address calculation in one cycle. In the following clock cycle, a second line of microcode is provided by latch 35 to begin a bus cycle (received from memory). For the next clock cycle, the third line of code is provided by the microcode memory (controller 19 of FIG. 1). The third line of code is latched when latch 35 is supplying the first line of microcode.
Is selected based on the entry point provided by.

全ての命令は、制御装置19からのマイクロコードの少
なくとも1つのラインを使用する。場合により、このマ
イクロコードは、命令サイルクの完了を単に示すだけの
こともある。多くの場合では、デコーダ31からのマイク
ロコードの第1ラインは、“NOOP"である。
All instructions use at least one line of microcode from controller 19. In some cases, this microcode may simply indicate the completion of an instruction cycle. In many cases, the first line of microcode from decoder 31 is "NOOP".

前述したように、デコーディングの第2ステージとし
て見ることができる実行セットアップ・ステージ34は、
主にアドレス発生、すなわちアドレス発生に関するシー
ケンシングを制御する。このため、これは、主にステー
ト・マシンとして実現される。実際のアドレス計算は、
セグメンテーション装置15にて行われる。デコーダ31
は、ステージ34へおよびこのステージ34からの線形アド
レス要件を供給し、かつ命令についていくつのサイクル
が必要であるかを決定する。一般に、基底および変位し
かない場合には1つのサイクルが必要で、基底、基準化
指標アドレスのファクタ、および変位がある場合には2
サイクル必要である。ロード信号およびフィールド・サ
イジング信号は、制御回路36を介してセグメンテーショ
ン装置15に供給される。
As described above, the execution setup stage 34, which can be viewed as the second stage of decoding,
It mainly controls address generation, that is, sequencing related to address generation. Thus, it is implemented primarily as a state machine. The actual address calculation is
This is performed by the segmentation device 15. Decoder 31
Supplies the linear address requirements to and from stage 34 and determines how many cycles are required for the instruction. In general, one cycle is required if there is only a basis and displacement, and 2 if there is a basis, a scaled index address factor, and a displacement.
Cycle required. The load signal and the field sizing signal are supplied to the segmentation device 15 via the control circuit 36.

コード制御装置36は、ステート・マシン、アダーおよ
びカウンタ、および関連論理装置を含んでいる。信号
は、デコーダ31からコード制御装置36に供給され、デコ
ードされた命令の種類を示す。この情報から、コード制
御装置36は、アダーおよびカウンタにより、ポインタK1
P,K2Pがどこを示すべきかを決定する。コード制御装置3
6により行われる制御は、第6図におけるポインタに関
する説明で明らかにされる。
Code controller 36 includes a state machine, adders and counters, and associated logic. The signal is supplied from the decoder 31 to the code controller 36 and indicates the type of the decoded instruction. From this information, the code control device 36 uses the adder and the counter to
Determine where P, K2P should indicate. Code control device 3
The control performed by 6 will be apparent from the description of the pointer in FIG.

コード制御装置36は、本実施例においては他の機能も
行う。たとえば、セグメンテーション・バイオレーショ
ンや、または他のバイオレーションを示すバイオレーシ
ョン・ビットは、プリフェッチャ12により検出され、コ
ード制御装置36に送られる。コード制御装置36は、いく
つかの例では、バイオレーションの特性も決定する。
The code control device 36 also performs other functions in this embodiment. For example, a violation bit indicating a segmentation violation or other violation is detected by the prefetcher 12 and sent to the code controller 36. The code controller 36 also determines the properties of the violation in some examples.

パイプライン制御回路37は、命令デコーディング装置
のパイプラインの全制御を行うステート・マシンでもあ
る。この回路は、デコーダ31からそれに送られる信号か
ら、命令がプレフィックスを含んでいる場合を認識し、
特定の命令を処理するのに要する追加サイクルの数を決
定する。たとえば、第5図に関して後述するように、い
くつかのサイクルが必要である。実行セットアップ・ス
テージ34は、これら追加サイクルを制御する。パイプラ
イン制御回路37は、ライン49でデコーダ31および実行セ
ットアップ・ステージ34への“アドバンス信号”と、
“フラッシュ・パイプライン”すなわちリセット信号
と、特定のステージが命令に関する演算を完了した時を
示す信号とを供給する。
The pipeline control circuit 37 is also a state machine that controls the entire pipeline of the instruction decoding device. This circuit recognizes from the signal sent to it from the decoder 31 that the instruction contains a prefix,
Determine the number of extra cycles required to process a particular instruction. For example, several cycles are required, as described below with respect to FIG. Execution setup stage 34 controls these additional cycles. The pipeline control circuit 37 sends an "advance signal" to the decoder 31 and execution setup stage 34 on line 49,
It provides a "flash pipeline" or reset signal and a signal that indicates when a particular stage has completed an operation on an instruction.

第2図の全回路は、普通の回路で構成することができ
る。本発明を理解する上であまり重要でない制御信号
は、第2図においては省略している。さらに、本発明を
理解する上であまり必要のない機能(たとえば、テスト
機能)は、本発明を理解しやすくするため示されていな
い。
The entire circuit shown in FIG. 2 can be constituted by an ordinary circuit. Control signals which are not so important for understanding the present invention are omitted in FIG. In addition, functions that are less necessary for understanding the present invention (eg, test functions) are not shown to facilitate understanding of the present invention.

《本発明の装置により操作される命令》 第3図は、インテル386に関する一般的な形式の命令
を示している。これらは、本発明例のデコーディング装
置においてデコードされる命令である。命令は、Opコー
ドと、場合によっては別のアドレス・フィールド50と、
変位フィールド51と、直接フィールド52を含んでいる。
これらフィールドの長さは、第4図において述べている
ように異なっている。場合によっては、付加プレフィッ
クス55が使用されている。
<< Instructions Operated by the Device of the Present Invention >> FIG. 3 shows general types of instructions relating to the Intel 386. These are instructions that are decoded in the decoding device of the example of the present invention. The instruction consists of an Op code, possibly another address field 50,
It includes a displacement field 51 and a direct field 52.
The lengths of these fields are different as described in FIG. In some cases, an additional prefix 55 is used.

第4図は、代表的な命令を示している。Opコード・フ
ィールドは、1または2バイトの長さである。たとえ
ば、最初の5ビットがMOVEを示しかつ最後の3ビットが
レジスタ表示を示している1つのバイトでしか全命令が
構成されていない場合もある。代表的なOpコードは、第
4図においては2つのバイト57,58を有している。アド
レス・モード・バイト59は、アドレス・モードおよび
“レジスタ/メモリ”を示し、バイト60は、基準化指標
アドレシング・モード(SS)に関するスケール・ファク
タ、指標レジスタ(指標)として使用される一般的なレ
ジスタ、および基底(ベース)レジスタとして使用され
る一般的なレジスタとを含んでいる。バイト59,60は、
レジスタおよびアドレス・モード・スペシファイヤとし
て示されている。フィールド61は、アドレス変位で、こ
のフィールドは、全命令には存在していない場合もあ
り、そうでなければ1,2または4バイトの長さである。
同様に、直接データ・フィールド62は、全命令には存在
していない場合もあり、そうでなければ1,2または4バ
イトの長さである。また、他の変化が生じることがあ
る。たとえば、あるレジスタに関するセグメント・レジ
スタ・スペシファイヤがOpコード・フィールドにおいて
生じたり、またはアサートされる条件または否定される
条件を指定するため、条件付き命令にビットが使用され
る場合もある。
FIG. 4 shows typical instructions. The Op code field is one or two bytes long. For example, the entire instruction may consist of only one byte where the first five bits indicate MOVE and the last three bits indicate register indication. A typical Op code has two bytes 57,58 in FIG. Address mode byte 59 indicates address mode and "register / memory" and byte 60 is a scale factor for the scaled index addressing mode (SS), a general factor used as an index register (index). Registers, and general registers used as base registers. Bytes 59 and 60 are
Shown as Register and Address Mode Specifier. Field 61 is the address displacement, which may not be present in all instructions, and is otherwise 1, 2 or 4 bytes long.
Similarly, the direct data field 62 may not be present in all instructions, and is otherwise 1, 2 or 4 bytes long. Other changes may also occur. For example, bits may be used in conditional instructions to specify a condition to be asserted or negated when the segment register specifier for a register occurs in the Op code field.

第4図において重要なことは、全命令(プレフィック
スを有している命令を除く)の最初の3つのバイトは、
要求されている命令および命令の全長を決定するのに十
分な情報を含んでいる。どの場合も、これら3つのバイ
トは、デコーダ31に供給される。各命令の残りのバイト
から、第2図のセグメンテーション装置15により、アド
レスを計算することができる。最初の3つのバイトは、
アドレスを計算するのに必要とされるサイクルの数およ
びアドレス・モードを決定するため、デコーダ31に必要
な情報を含んでいる。たとえば、基底、指標および変位
がある場合、通常、2サイクルが必要である。
What is important in FIG. 4 is that the first three bytes of all instructions (except those that have a prefix) are:
It contains sufficient information to determine the required instruction and the total length of the instruction. In each case, these three bytes are supplied to the decoder 31. From the remaining bytes of each instruction, the address can be calculated by the segmentation device 15 of FIG. The first three bytes are
It contains the information needed by decoder 31 to determine the number of cycles and address mode needed to calculate the address. For example, if there is a basis, index and displacement, two cycles are usually required.

《第5図および第6図のタイミング図》 第5図により、本発明の装置の一般的なパイプライニ
ングを理解することができる。表の上部には、サイクル
が示されている。各サイクルは、コンピュータ・サイク
ルに相当している。たとえば、マイクロプロセッサの内
部クロック・サイクルは25MHzの割合で生じる。左側の
欄は、パイプラインにおけるステージを示している。表
の数字は、命令番号を示している。たとえば、サイルク
1において、命令11は、プリフェッチャ12から転送され
る。すなわちそれはデコーダ31に供給される。同じサイ
クルにおいて(すなわち、この転送と同時に)、デコー
ダ31は、命令11の前の命令である命令10をデコードして
いる。同様に、この期間において、第2図の実行セット
アップ・ステージ34は、命令9に関するアドレス計算の
シーケンシングを制御している。同時に、命令8に関し
て、実行が行われ、かつライト・バック(write back)
が、命令7に関して行われている。(命令の全部がライ
ト・バックを有しているのではないが、いくつかの単一
バイト命令はライト・バックを必要としている。)サイ
クル2に示すように、デコーダ31への転送は、命令12に
関して行われ、デコーダ31は、命令11をデコードしてお
り、かつ実行セットアップ装置は、命令10に関して動作
している。
<< Timing Diagram of FIGS. 5 and 6 >> From FIG. 5, the general pipelining of the apparatus of the present invention can be understood. The cycle is shown at the top of the table. Each cycle corresponds to a computer cycle. For example, microprocessor internal clock cycles occur at a rate of 25 MHz. The left column shows the stages in the pipeline. The numbers in the table indicate the instruction numbers. For example, in cycle 1, instruction 11 is transferred from prefetcher 12. That is, it is supplied to the decoder 31. In the same cycle (ie, at the same time as this transfer), decoder 31 is decoding instruction 10, which is the instruction before instruction 11. Similarly, during this period, the execution setup stage 34 of FIG. 2 controls the sequencing of address calculations for instruction 9. At the same time, execution is performed for instruction 8 and write back
Is performed for instruction 7. (Not all instructions have write-back, but some single-byte instructions require write-back.) As shown in cycle 2, the transfer to decoder 31 Performed on 12, the decoder 31 is decoding the instruction 11, and the execution set-up is operating on the instruction 10.

前述したように、プレフィックス(第3図のプレフィ
ックス55)が存在している場合がある。サイクル3にお
いて、命令13の最初の24ビットをデコーディングするこ
とにより、デコードが、プレフィックスが存在している
と決定する。と仮定する。この情報は、パイプライン制
御回路37に供給され、この回路は、全プレフィックス、
Opコード、およびレジスタおよびアドレス・モード・ス
ペシファイヤをデコーダ31に転送するのにいくつかのサ
イクルが必要かを決定する。第5図に示すように、これ
は、サイクル3,4,5において行われる。デコーディング
は、サイクル4,5,6において行われ、実行セットアップ
は、サイクル7において行われる。実行は、サイクル8
においてこの命令に関して行われる。サイクル5,6にお
いて、実行セットアップ・ステージ34は動作せず、同様
に実行ステージは、サイクル6,7において動作しない。
As described above, the prefix (the prefix 55 in FIG. 3) may exist. In cycle 3, by decoding the first 24 bits of instruction 13, decoding determines that the prefix is present. Assume that This information is supplied to a pipeline control circuit 37, which includes all prefixes,
Determines how many cycles are required to transfer the Op code and register and address mode specifier to decoder 31. This is done in cycles 3, 4, and 5, as shown in FIG. Decoding is performed in cycles 4, 5, and 6, and execution setup is performed in cycle 7. Execution is cycle 8
In this instruction. In cycles 5 and 6, the execution setup stage 34 does not operate, and similarly the execution stage does not operate in cycles 6 and 7.

命令14は、サイクル6においてデコーダ31に転送さ
れ、サイクル7でデコーダ31によりデコードされるが、
アドレス計算に関して2サイクル8,9を必要とする。前
述したように、これは、アドレスが基底、指標、および
変位を含んでいる場合に生じる。2つのサイクルが必要
とされるので、サイクル8に示したように、デコーダ31
には転送が行われないが、サイクル9においては、命令
16がデコーダに転送される。
Instruction 14 is transferred to decoder 31 in cycle 6 and decoded by decoder 31 in cycle 7,
Two cycles 8, 9 are required for address calculation. As mentioned above, this occurs when the address includes a base, index, and displacement. Since two cycles are required, as shown in cycle 8, the decoder 31
Is not transferred, but in cycle 9, the instruction
16 is transferred to the decoder.

第6図は、第2図のレジスタ26の一部を示している。
このレジスタにはいくつかの命令、たとえば命令1〜4
が記憶される。命令1は、2バイトOpコードおよびレジ
シタとアドレス・モード・スペシファイヤを有してい
る。(第6図における“Op"は、第4図の実際のOpコー
ドおよびレジスタおよびアドレス・モード・スペシファ
イヤ・フィールドを表している。)命令1は、8ビット
の直接フィールドを有している。命令2は、16ビットの
Opコードと32ビットの直接フィールドを有している。命
令3は、8ビットのOpコードだけを有している。命令4
は、24ビットのOpコードと32ビットの変位フィールドを
有している。最初に、プリフェッチャ12に供給されるK1
Pポインタ(ポインタ67)が、レジスタ26における第1
バイトを示す。したがって、レジスタの最初の24ビット
は、デコーダ31に転送される。このフィールドは、番号
68によりサイクル1の右に示されている。このフィール
ドをデコードすることにより、デコーダ31は、最初の16
ビットがOpコードであると決定し、このコードの実行を
開始するため適当な信号を(通常、ラッチ35に)供給す
る。コード制御回路26により、IK2Pポインタ69が命令1
における直接フィールドの最初を示すべきであると決定
される。このポインタにより、このフィールドの後の4
バイトが、セットアップ・ステージ34の制御の下で転送
される。このフィールドは、ブラケット70により第6図
のサイクル2の右側に示されている。コード制御回路36
は、ポインタ71を供給するので、サイクル2において、
ポインタ71の後の24ビットは、デコーダ31に転送され
る。このフィールドは、通常、番号72により示される。
命令2の直接フィールドの8ビットは、デコーダに転送
されるが、これらビットは、実際には無視される。ポイ
ンタ73がこのフィールドの最初に設定されるので、次の
サイクルにおいて、命令2に関する全直接フィールドは
転送される。(変位フィールドは、セグメンテーション
装置に転送され、直接フィールドはキャッシュ装置内に
転送される。)フィールドは、番号74でサイクル3とし
て示されている。制御回路36は、ポインタ74を供給し、
ポインタ74の後の24ビットがサイクル3においてデコー
ダ31に転送される。この命令は、直接フィールドまたは
変位フィールドを有しておらず、命令3に関する1K2Pポ
インタは必要でない。これは、通常、番号75によりサイ
クル4として示されている。このプロセスは、第6図に
示すように継続され、命令4に関して制御回路36がポイ
ンタを供給し、適当なフィールドが転送される。
FIG. 6 shows a part of the register 26 of FIG.
This register contains several instructions, such as instructions 1-4.
Is stored. Instruction 1 has a 2-byte Op code, a register, and an address mode specifier. ("Op" in FIG. 6 represents the actual Op code and register and address mode specifier fields in FIG. 4.) Instruction 1 has an 8-bit direct field. Instruction 2 is a 16-bit
It has an Op code and a 32-bit direct field. Instruction 3 has only an 8-bit Op code. Instruction 4
Has a 24-bit Op code and a 32-bit displacement field. First, K1 supplied to the prefetcher 12
The P pointer (pointer 67) is
Indicates a byte. Therefore, the first 24 bits of the register are transferred to the decoder 31. This field is a number
Shown at the right of cycle 1 by 68. By decoding this field, the decoder 31
It determines that the bit is an Op code and provides an appropriate signal (typically to latch 35) to begin execution of this code. The code control circuit 26 sets the IK2P pointer 69 to instruction 1
Should indicate the beginning of the direct field in. This pointer allows the 4
The bytes are transferred under the control of the setup stage 34. This field is indicated by bracket 70 on the right side of cycle 2 in FIG. Code control circuit 36
Supplies the pointer 71, so in cycle 2
The 24 bits after the pointer 71 are transferred to the decoder 31. This field is generally designated by the number 72.
The eight bits of the direct field of instruction 2 are transferred to the decoder, but these bits are actually ignored. Since pointer 73 is set at the beginning of this field, in the next cycle all direct fields for instruction 2 will be transferred. (The displacement field is transferred to the segmentation device and the direct field is transferred into the cache device.) The field is shown as cycle 3 at 74. The control circuit 36 supplies a pointer 74,
The 24 bits after the pointer 74 are transferred to the decoder 31 in cycle 3. This instruction has no direct or displacement fields, and no 1K2P pointer for instruction 3 is needed. This is generally indicated as cycle 4 by the number 75. This process continues as shown in FIG. 6, with the control circuit 36 providing a pointer for instruction 4 and the appropriate fields being transferred.

第6図の下の方には、命令の実行が示されている。サ
イクル3において、命令1が実行される。サイクル4に
おいて、命令4が実行され、以下、同様である。
The lower part of FIG. 6 shows the execution of the instruction. In cycle 3, instruction 1 is executed. In cycle 4, instruction 4 is executed, and so on.

以上のように、本発明の命令およびデコーディング装
置は、可変長命令を使用しているマイクロプロセッサに
関する特性を改善する。
As described above, the instruction and decoding apparatus of the present invention improves the characteristics of a microprocessor using variable length instructions.

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

第1図は、本発明が使用されているマイクロプロセッサ
の一般的なブロック図であり、 第2図は、本発明の命令デコーディング装置と、プリフ
ェッチャおよびセグメンテーション装置への接続とを示
したブロック図であり、 第3図は、本発明装置によりデコードされた命令の最も
一般的なフォーマットを示す図であり、 第4図は、命令のフォーマットをより詳細に示しかつ命
令の可変長フィールドを示す図であり、 第5図は、本発明に関連したパイプライン・フローとタ
イミングを示すのに使用される図であり、 第6図は、本発明に関連した命令フローとタイミングを
示す詳細な図である。 10……バス・インタフェイス装置、11……キャッシュ・
メモリ、 12……プリフェッチャ、13……ページング装置、 14……命令デコーダ装置、15……セグメンテーション装
置、 17……データパス装置、18……浮動小数点装置、 19……制御装置、26……レジスタ、 27……マルチプレクサ、31……デコーダ、 34……実行セットアップ・ステージ、35……ラッチ、 36……コード制御回路、37……パイプライン制御回路。
FIG. 1 is a general block diagram of a microprocessor in which the present invention is used, and FIG. 2 is a block diagram showing an instruction decoding device of the present invention and connections to a prefetcher and a segmentation device. FIG. 3 is a diagram showing the most general format of an instruction decoded by the apparatus of the present invention, and FIG. 4 is a diagram showing the format of the instruction in more detail and showing the variable length field of the instruction. FIG. 5 is a diagram used to illustrate the pipeline flow and timing associated with the present invention, and FIG. 6 is a detailed diagram illustrating the instruction flow and timing associated with the present invention. is there. 10 ... Bus interface device, 11 ... Cache
Memory 12 Prefetcher 13 Paging device 14 Instruction decoder device 15 Segmentation device 17 Data path device 18 Floating point device 19 Control device 26 Register , 27 multiplexer, 31 decoder, 34 execution setup stage, 35 latch, 36 code control circuit, 37 pipeline control circuit.

フロントページの続き (56)参考文献 特開 昭63−113634(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 G06F 9/32 G06F 9/30Continuation of the front page (56) References JP-A-63-113634 (JP, A) (58) Fields investigated (Int. Cl. 6 , DB name) G06F 9/38 G06F 9/32 G06F 9/30

Claims (11)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】プリフェッチされた複数の命令を記憶する
記憶手段を有し、前記複数の命令には少なくとも2種類
の長さがあり、前記記憶手段からの前記複数の命令をデ
コードするデコーディング手段と、前記複数の命令を実
行する実行装置とを更に有するマイクロプロセッサであ
って、 前記複数の命令それぞれは、複数バイトから構成され且
つ第1のフィールド及び第2のフィールドを有してお
り、 前記デコーディング手段には、少なくとも2つのセクシ
ョンが設けられており、 前記少なくとも2つのセクションのうち第1セクション
は、前記複数の命令からnバイトを受信するように結合
されて、このnバイトから前記複数の命令のうちの1つ
の命令の第1のフィールドをデコードし、 前記第1のフィールドは、前記第1セクションによって
使用される情報を有し、前記記憶手段からの前記複数の
命令のうちの前記1つの命令の第2のフィールドを選択
するために前記記憶手段に対する第1のポインタを提供
し、また前記複数の命令のうちの前記1つの命令に続く
命令の第1のフィールドを選択するために前記記憶手段
に対する第2のポインタを提供し、 前記第2のフィールドは、アドレス生成のために前記第
2セクションによって使用される情報を有し、 前記第1セクションは、さらに、前記複数の命令のうち
の前記1つの命令に関して行われるアドレス計算のタイ
プを前記第2セクションに対して指示する手段を含んで
おり、 前記第2セクションは、前記記憶手段から前記第1のポ
インタによる指示に従ってmバイトの命令データを受信
し、前記記憶手段からの前記第2のフィールドに関して
前記複数の命令のうちの前記1つの命令のセットアップ
を行うように結合され、前記第2セクションは前記複数
の命令のうちの前記1つの命令に関して行われるアドレ
ス計算のタイプを指示する第1セクションに応答してア
ドレス計算を制御してアドレス計算がシーケンシングさ
れるようにし、前記第2セクションが前記複数の命令の
前記1つの命令のセットアップを行う間に前記第1セク
ションが前記複数の命令の前記1つの命令に続く前記命
令の第1のフィールドをデコードするようにし、 前記第2セクションは前記第1セクション及び前記第2
セクションからの結果を同期させる手段を含んでおり、
前記1つの命令に続く前記命令に関して前記第2セクシ
ョンがアドレス計算のシーケンシングを行っている間に
前記複数の命令のうちの前記1つの命令がデコードされ
て前記実行装置へ与えられるようにし、前記第1セクシ
ョン、前記第2セクション及び前記実行装置が同期して
動作するようにされているマイクロプロセッサ。
1. Decoding means for storing a plurality of prefetched instructions, wherein said plurality of instructions have at least two types of lengths, and decoding said plurality of instructions from said storage means. And an execution device that executes the plurality of instructions, wherein each of the plurality of instructions includes a plurality of bytes and has a first field and a second field; The decoding means is provided with at least two sections, a first section of the at least two sections being coupled to receive n bytes from the plurality of instructions, and from the n bytes to the plurality of sections. Decoding the first field of one of the instructions of the first section, wherein the first field is associated with the first section. Providing a first pointer to said storage means for selecting a second field of said one of said plurality of instructions from said storage means; Providing a second pointer to the storage means for selecting a first field of an instruction following the one of the plurality of instructions, wherein the second field comprises the second field for generating an address; Having information used by a section, the first section further comprising means for indicating to the second section a type of address calculation to be performed on the one of the plurality of instructions. The second section receives m-byte instruction data from the storage unit in accordance with an instruction from the first pointer, and receives the second byte from the storage unit. Coupled to perform setup of the one of the plurality of instructions with respect to a field, wherein the second section indicates a type of address calculation to be performed with respect to the one of the plurality of instructions. Controlling the address calculation in response to the section so that the address calculation is sequenced, and wherein the first section is configured to execute the plurality of instructions while the second section performs setup of the one of the plurality of instructions. Decoding the first field of the instruction following the one instruction of the second section, wherein the second section comprises the first section and the second section.
Includes means to synchronize results from sections,
Wherein the one of the plurality of instructions is decoded and provided to the execution unit while the second section is performing address calculation sequencing for the instruction following the one instruction; A microprocessor wherein the first section, the second section, and the execution device operate in synchronization.
【請求項2】前記第1のフィールドは、Opコードと、レ
ジスタ及びアドレス・モード・スペシファイヤとを含む
特許請求の範囲第1項に記載のマイクロプロセッサ。
2. The microprocessor according to claim 1, wherein said first field includes an Op code, a register and an address mode specifier.
【請求項3】前記マイクロプロセッサはマイクロコード
を使用し、いくつかのこのマイクロコードを記憶するメ
モリを含んでおり、前記第1セクションはこのマイクロ
コードに対するルックアップ機能を提供する特許請求の
範囲第1項に記載のマイクロプロセッサ。
3. The microprocessor of claim 1 wherein said microprocessor uses microcode and includes memory for storing some of said microcode, and said first section provides a lookup function for said microcode. The microprocessor according to claim 1.
【請求項4】前記第1セクションはある種の前記命令に
対しては少なくとも1ラインのマイクロコードを提供す
る特許請求の範囲第3項に記載のマイクロプロセッサ。
4. The microprocessor of claim 3, wherein said first section provides at least one line of microcode for certain of said instructions.
【請求項5】前記第1セクションはいくつかの前記命令
に対してはマイクロコードの少なくとも第1ラインを提
供し、他のマイクロコードに対してはルックアップ機能
を提供する特許請求の範囲第1項に記載のマイクロプロ
セッサ。
5. The invention of claim 1 wherein said first section provides at least a first line of microcode for some of said instructions and provides a lookup function for other microcode. A microprocessor as described in section.
【請求項6】命令デコーディング装置と、この命令デコ
ーディング装置に供給される複数の命令を記憶するレジ
スタと、複数のバイトをそれぞれ有するこれら複数の命
令を実行する実行装置とを有し、異なった長さの命令で
動作するマイクロプロセッサであって、 前記命令デコーディング装置は第1及び第2ステージを
有し、前記第1ステージは複数の命令バイトを受信して
第1のコンピュータ・サイクル中に前記複数の命令のう
ちの1つの命令のOpコードとレジスタ及びアドレス・モ
ード・スペシファイヤ(第1のフィールド)をデコード
し、また前記第2のステージに対して前記複数の命令の
うちの前記1つの命令のアドレス変位又は直接データの
フィールドを知らせて前記複数の命令のうちの前記1つ
の命令に続く命令のOpコードとレジスタ及びアドレス・
モード・スペシファイヤ(第1のフィールド)の位置を
決定し、前記複数の命令のうちの前記1つの命令のアド
レス変位フィールド又は直接データ・フィールド内のデ
ータは前記第2ステージによって前記レジスタから直接
受信され、更に前記前記第1ステージは前記第2ステー
ジに対して前記複数の命令のうちの前記1つの命令に関
して行われるアドレス計算のタイプを指示し、 前記第2ステージは前記複数の命令のうちの前記1つの
命令の前記アドレス変位フィールド又は直接データ・フ
ィールド(第2のフィールド)の使用を制御し、前記第
1のコンピュータ・サイクルに時間的に続く第2のコン
ピュータ・サイクル中に前記複数の命令のうちの前記1
つの命令に関して行われるアドレス計算のタイプを指示
する前記第1ステージに応答して、前記第1ステージが
前記複数の命令のうち前記1つの命令に続く命令のOpコ
ードとレジスタ及びアドレス・モード・スペシファイヤ
をデコードしている間にアドレス計算がシーケンシング
され、 前記命令デコーディング装置は前記第1ステージ及び第
2ステージからの結果を同期させる手段を有し、前記複
数の命令のうちの前記1つの命令に続く前記命令に関し
て前記第2ステージがアドレス計算のシーケンシングを
行っている間に前記複数の命令のうちの前記1つの命令
がデコードされて前記実行装置へ与えられるようにし、
前記第1ステージ、前記第2ステージ及び前記実行装置
が同期して動作するようにされるマイクロプロセッサ。
6. An instruction decoding device, comprising: a register for storing a plurality of instructions supplied to the instruction decoding device; and an execution device for executing the plurality of instructions each having a plurality of bytes. A microprocessor operable with instructions of a predetermined length, the instruction decoding device having first and second stages, the first stage receiving a plurality of instruction bytes during a first computer cycle. Decodes an Op code, a register, and an address mode specifier (first field) of one of the plurality of instructions to the second instruction; and decodes the Op code of the plurality of instructions to the second stage. By notifying the address displacement or the direct data field of one instruction, the Op code and the record of the instruction following the one of the plurality of instructions are notified. Star and address
Determining a position of a mode specifier (first field), wherein data in an address displacement field or a direct data field of the one of the plurality of instructions is received directly from the register by the second stage; And wherein the first stage indicates to the second stage a type of address calculation to be performed on the one of the plurality of instructions, and wherein the second stage is of the plurality of instructions. Controlling the use of the address displacement field or the direct data field (the second field) of the one instruction, wherein the plurality of instructions are performed during a second computer cycle that is temporally subsequent to the first computer cycle. Said one of the
Responsive to the first stage indicating the type of address calculation to be performed on the one instruction, the first stage may include an Op code, a register, and an address mode specification of an instruction following the one of the plurality of instructions. The address calculation is sequenced while decoding the fire, the instruction decoding device having means for synchronizing the results from the first and second stages, wherein the one of the plurality of instructions is Wherein the one of the plurality of instructions is decoded and provided to the execution unit while the second stage is performing address calculation sequencing for the instruction following the instruction;
A microprocessor wherein the first stage, the second stage, and the execution device are operated in synchronization.
【請求項7】前記第1ステージは第1のポインタの下で
前記第1のフィールドを受信するように結合され、前記
第2のステージは第2のポインタの下で前記第2のフィ
ールドの使用をシーケンシングするように結合され、前
記第1及び第2のポインタは前記第1ステージからの信
号によって生成される特許請求の範囲第6項に記載のプ
ロセッサ。
7. The first stage is coupled to receive the first field under a first pointer, and the second stage uses the second field under a second pointer. 7. The processor according to claim 6, wherein the first and second pointers are generated by a signal from the first stage.
【請求項8】前記第1ステージは前記複数の命令のうち
のある命令の実行を起動する特許請求の範囲第7項に記
載のプロセッサ。
8. The processor according to claim 7, wherein said first stage activates execution of a certain instruction of said plurality of instructions.
【請求項9】前記マイクロプロセッサはマイクロコード
を使用し、少なくともいくつかのこのマイクロコードを
記憶するメモリを含んでおり、前記第1ステージはこの
マイクロコードに対するルックアップをラッチを通して
提供する特許請求の範囲第6項に記載のマイクロプロセ
ッサ。
9. The microprocessor of claim 1, wherein said microprocessor uses microcode and includes memory for storing at least some of said microcode, and said first stage provides a look-up for said microcode through a latch. A microprocessor according to claim 6, wherein said microprocessor is a microprocessor.
【請求項10】前記第1ステージは前記複数の命令のう
ちのある命令に対して2ラインのマイクロコードを提供
する特許請求の範囲第9項に記載のマイクロプロセッ
サ。
10. The microprocessor according to claim 9, wherein said first stage provides two lines of microcode for a certain instruction of said plurality of instructions.
【請求項11】前記第1ステージはバスサイクルの起動
を制御する特許請求の範囲第10項に記載のマイクロプロ
セッサ。
11. The microprocessor according to claim 10, wherein said first stage controls activation of a bus cycle.
JP2089297A 1989-04-07 1990-04-05 Processor Expired - Lifetime JP2847316B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33518689A 1989-04-07 1989-04-07
US335186 1989-04-07

Publications (2)

Publication Number Publication Date
JPH03201030A JPH03201030A (en) 1991-09-02
JP2847316B2 true JP2847316B2 (en) 1999-01-20

Family

ID=23310662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2089297A Expired - Lifetime JP2847316B2 (en) 1989-04-07 1990-04-05 Processor

Country Status (5)

Country Link
JP (1) JP2847316B2 (en)
DE (1) DE4010895C2 (en)
FR (1) FR2645665B1 (en)
GB (1) GB2230116B (en)
HK (1) HK56295A (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
KR100248903B1 (en) 1992-09-29 2000-03-15 야스카와 히데아키 System and method for handling load and/or store operating in a superscalar microprocessor
US5644741A (en) * 1993-10-18 1997-07-01 Cyrix Corporation Processor with single clock decode architecture employing single microROM
EP0649083B1 (en) * 1993-10-18 2000-07-19 National Semiconductor Corporation A microcontrol unit for a superpipelined, superscalar microprocessor
US5794026A (en) * 1993-10-18 1998-08-11 National Semiconductor Microprocessor having expedited execution of condition dependent instructions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3629853A (en) * 1959-06-30 1971-12-21 Ibm Data-processing element
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4573118A (en) * 1983-03-31 1986-02-25 Fairchild Camera & Instrument Corporation Microprocessor with branch control
US4574344A (en) * 1983-09-29 1986-03-04 Tandem Computers Incorporated Entry control store for enhanced CPU pipeline performance
US4812972A (en) * 1984-06-20 1989-03-14 Convex Computer Corporation Microcode computer having dispatch and main control stores for storing the first and the remaining microinstructions of machine instructions
JPH0776917B2 (en) * 1984-12-29 1995-08-16 ソニー株式会社 Micro computer
JP2554050B2 (en) * 1986-02-26 1996-11-13 株式会社日立製作所 Data processing method
JPS62226231A (en) * 1986-03-27 1987-10-05 Toshiba Corp Processor
JPH0772863B2 (en) * 1986-10-30 1995-08-02 日本電気株式会社 Program counter relative address calculation method

Also Published As

Publication number Publication date
GB9003351D0 (en) 1990-04-11
DE4010895C2 (en) 1998-09-24
JPH03201030A (en) 1991-09-02
HK56295A (en) 1995-04-21
GB2230116A (en) 1990-10-10
FR2645665B1 (en) 1994-04-15
GB2230116B (en) 1993-02-17
DE4010895A1 (en) 1990-10-11
FR2645665A1 (en) 1990-10-12

Similar Documents

Publication Publication Date Title
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
JP2796590B2 (en) Memory device and data processing device using the same
JP3072705B2 (en) Circuit and method for reducing power consumption of a superscalar processor
EP0465321B1 (en) Ensuring data integrity in multiprocessor or pipelined processor system
JP2848606B2 (en) Method and apparatus for modifying microinstructions using a macroinstruction pipeline
EP0463978A2 (en) Granularity hint for translation buffer in high performance processor
EP0463976A2 (en) Data prefetch instruction in a reduced instruction set processor
EP0463973A2 (en) Branch prediction in high performance processor
JP2678527B2 (en) Cache memory device
JPH0128415B2 (en)
JPH0827716B2 (en) Data processing device and data processing method
US5394558A (en) Data processor having an execution unit controlled by an instruction decoder and a microprogram ROM
JP2000222206A (en) Data processor
JP2507638B2 (en) Data processing device
US5469551A (en) Method and apparatus for eliminating branches using conditional move instructions
KR20000076310A (en) Eight-bit microcontroller having a risc architecture
JPH081599B2 (en) Data processing device
EP0414811A1 (en) Microprocessor having external control store.
JPH0810428B2 (en) Data processing device
JP2001525568A (en) Instruction decoder
US5581774A (en) Data processor decoding and executing a train of instructions of variable length at increased speed
Crawford The i486 CPU: Executing instructions in one clock cycle
JPH0528097A (en) Microprocessor
JP2847316B2 (en) Processor
JPH07120284B2 (en) Data processing device