JPH03201030A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH03201030A
JPH03201030A JP8929790A JP8929790A JPH03201030A JP H03201030 A JPH03201030 A JP H03201030A JP 8929790 A JP8929790 A JP 8929790A JP 8929790 A JP8929790 A JP 8929790A JP H03201030 A JPH03201030 A JP H03201030A
Authority
JP
Japan
Prior art keywords
instruction
field
instructions
decoder
cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP8929790A
Other languages
English (en)
Other versions
JP2847316B2 (ja
Inventor
Beatrice Fu
ベアトリス・フュ
Patrick P Gelsinger
パトリック・ピイ・ゲルジンジヤー
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/ja
Application granted granted Critical
Publication of JP2847316B2 publication Critical patent/JP2847316B2/ja
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, 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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、マイクロプロセッサにおいて使用される命令
デコーディング装置に関する。
〔発明の背景〕
マイクロプロセッサや他のコンピュータは、マクロ・レ
ベルの命令をデコードするデコーダを使用しなければな
らない場合がよくある。実際には、命令はデコーダによ
シ翻訳され、かつデコーダは、命令を実行するためプロ
セッサにおいて何を行なうべきかを決定する。多くの場
合、マイクロプロセッサは、マイクロ・レベルの命令(
マイクロコード)を記憶するメモリを含み、デコーダは
、マイクロコードにルックアップを供給する。
あるマイクロプロセッサでは、マクロ・レベルの命令は
、固定長(たとえば、32ビツト)で、他のマイクロプ
ロセッサでは、命令は異なる長さである。たとえば、デ
コーダは、命令に訃ける所定のフィールドをどこで見つ
けたらよいのか分っているので、固定長の命令をデコー
ドする方が、はるかに簡単な作業である。これに対して
、可変長の命令の場合、たとえば、中間データ・フィー
ルドがあるかもしれないし、筐たばないかもしれ危いし
、さらに命令にかける開始点が変化する。
インテル386マイクロプロセツサ(インテルレよび3
86は、インテル・コーボレ〜ジョンの登録商標である
)は、可変長命令に関するマイクロプロセッサの一例で
ある。命令の幅は、シ<つかのMOVE命令のような1
バイトでよいが、最高8バイト(プレフィックスなしン
まで可能である。さらに、命令プレフィックスまたはオ
ーバライドでは、命令の長さは、実質的にさらに長くて
もよい(たとえば、15バイト)。単一のバスにおいて
これら可変長の命令をデコードする単一のデコーダは、
比較的複雑で、その上比較的大きな基板面積を費やして
しまう。
インテル386では、可変長の命令は、いくつかのコン
ピュータ・サイクルの進行に訃いてデコードされる。他
のフィールドが続いている命令プレフィックスが最初に
調べられる。命令の実行は、デコーディングが終了した
後開始する。多くの命令に関し、インテル386は、デ
コーディングするのにいくつかのサイクルを必要として
いる。たとえば、LOADは、デコードされるべき命令
に対して4つのサイクルを必要とし、5TOREは、2
つのサイクルが必要で、JUMPは3サイクルから4.
25サイクルを必要としている。命令を完全にデコード
する前に、平均して約3サイクルが必要である。しかし
、後述するように、本発明では、命令をデコードする方
法訃よびパイプラインとにより1これら時間は大幅に低
減され、デコーディング時間は、平均的1.8サイクル
に低下する。
本発明は、インテル386マイクロプロセツサのバージ
ョンを改善したマイクロプロセッサにおいて使用される
。インテル386マイクロプロセツサについては、多く
の印刷物に釦いて述べられている。また、このマイクロ
プロセッサのプログラミングについては、1987年5
YBEXによジ発表された、クロフォード唄よびゲルシ
ンガによる180386のプログラミング」に3いて述
べられている。
〔発明の概要〕
プリフェッチされた命令を記憶する記憶装置と、異なる
長さの命令をデコードするデコーディング装置とを有す
る改善されたマイクロプロセッサについて説明する。改
善されたマイクロプロセッサは、2つのステージす碌わ
ちセクションを含んでいるデコーディング装置を使用し
ている。第1セクションは、第2セクションが前の命令
の第2フィールドに基いて実行をセットアツプしている
間に同時に1つの命令の第1フィールドをデコードする
。すなわち、第1釦よび第2セクションは、命令をパイ
プラインし、それを並列に操作する。
本実施例では、第1セクションは、Opコードと、アド
レス・モード、スケーリング・ファクタおよび基底およ
び指標レジスタを表しているビットをデコードする。第
2セクションは、アドレス移動および中間データ・フィ
ールドの使用を制御する。第1セクションは、記憶装置
に関するポインタを発生し、各セクションが命令の正し
いフィールドを受信することができるようにする。各セ
クションは、記憶装置からのどんなバイトも受信できる
本発明の他の特徴は、本発明の詳細な説明から明らかに
されるであろう。
以下、添付の図面に基いて、本発明の実施例に関し説明
する。
〔実施例」 プリフェッチされた命令に関して特に有用なマイクロプ
ロセッサの命令デコーディング装置について説明する。
以下の記載において、特定のビット数など多くの特定の
詳細な記載は、本発明の理解を助けるためのものであっ
て、本発明はこれら詳細な記載に限定されるものではな
いことは当業者には明白であろう。筐た、周知の処理技
術、デコーディング技術、訃よび回路についての詳細な
記載は、本発明を不明瞭にしないよう省略する。
本発明は、インテル286会よび386フア□リーのマ
イクロプロセッサの次のマイクロプロセッサを設計して
いる際に得られたものである。このため、インテル38
6マイクロプロセツサを理解することによシ、本発明の
意図を十分に認識することができる。この動作は、この
マイクロプロセッサに関する多くの出版物の他、198
7年5YBKXによシ発表された、クロフォード釦よび
ゲルシンガれている。
本発明が実施されるマイクロプロセッサの概要本発明が
実施されるマイクロプロセッサは、相補形金属酸化膜半
導体(0MO8)  技術で製造された32ビツト・マ
イクロプロセッサである。これは、単一基板に中央処理
装置(CPU)に関連した装置だけでなく、キャッシュ
・メモリ訃よび浮動小数点装置をさらに有している。改
善された本発明の命令デコーディング装置により、多く
の命令に対して単一サイクルの命令実行を実現すること
ができる。
第1図において、マイクロプロセッサの主装置として、
バス・インタフェイス装置10が示されている。この装
置は、マイクロプロセッサの内部バス、たとえばキャッ
シュ・メモリ11およびプリフエツチャ12と、外部デ
ータ・メモリ装置からデータをフェッチするため応答可
能な外部バスとの間で必要なインタフェイスを行なう。
外部32ビツト・アドレス・バスと32ビツト・データ
・バスが使用される。ここに示されているマイクロプロ
セッサにおいて使用される特定のインタフェイス装置1
0は、本発明ではあまb重要ではない。
この装置は、本発明の出願人に譲渡された4988年8
月1日出願の特許願第227,078号、発明の名称「
マイクロプロセッサ・バス・インタフェイス装置」にお
いて示されている。なお、ブリフエツチャ12に記憶さ
れたプリフェッチされた命令は、バス・インタフェイス
装置10またはキャッシュ・メモリ11からこのプリフ
エツチャに伝達することができる。
ページング装[13とセグメンテーション装置15は、
インテル386において用いられている装置とほとんど
同様である。しかし、1クロック実行をサポートするた
め、タイミングが変えられている。セグメンテーション
装置とプリフエツチャ12の相互接続と命令デコーダ装
置14との他の関係については、第2図に関して示され
ている。
通常、命令デコーディング装置は、入力命令をデコード
し、後述するように、並列にデコーディングしかつパイ
プライン化するインテル386の命令デコーディング装
置とは異なっている。これは、大抵の命令に対してコン
ピュータ・クロック・サイクル当シ1つのデコード化命
令を生じる2つのステージすなわちセクションを有して
いる。第1セクションは、基本的には、Opコード、お
よびアドレス・モード、スケーリング・ファクタ、およ
び基底釦よび指標レジスタ・ビット(レジスタおよびア
ドレス・モード・スベシファイヤ(sp・−aHi@r
)と呼ばれることもある)をデコードし、第2ステージ
は、主に、アドレス移動または中間データ・フィールド
の使用を管理している。
制御装置19は、マイクロコンピュータのマイクロコー
ド命令(マイクロコード)を記憶するメモリを有してい
る。これは、後述するように、マイクロコードの第1ラ
インが、命令デコーディング装置14によう供給される
ので、マイクロプロセッサの制御を命令デコーディング
装置と共用する。制御装置19は、必要に応じて、割シ
込み/例外調停(arbitration )のような
命令バウンダリ処理や、命令デコーディング装置14の
休止に関して応答可能である。制御装置19は、キャッ
シュ・メモリのミスなどのような大抵の凍結状態を処理
する。
データ経路装置17は、マイクロプロセッサの主実行デ
ータ経路である。これは、算術論理装置、レジスタ・フ
ァイル、バレル・シフタ、定数ROM1フラグを含んで
いる。
マイクロプロセッサは、浮動小数点装置18をさらに有
している。この装置は、浮動小数点命令を実行する論理
装置を有している。
第1図の命令デコーディング装置14は、第2図の点線
46.47の間に示されている。この装置およびプリフ
エツチャ12の所定の回路は、相互に動作して、本発明
の利点を供給する。
プリ7エツチヤ12は、3つの主なセクション、すなわ
ちレジスタ26、マルチプレクサ27.関連論理装置2
8を有している。レジスタすなわちランチ26は、キャ
ッシュ・メモリまたはバス・インタフェイス装置のいず
れかからのプリフェッチされた命令を受信する。これは
、第2図のバス48で示されている。レジスタ26の幅
ハ、本実施例においては32バイトである。レジスタ2
6に記憶された命令は、バス29(KIQ)tたはバス
30(K2Q)のいずれかに送ることができる。
これら命令は、マルチプレクサ27を介してこれらバス
に送られる。レジスタ26における隣接する3バイトは
、バス29に供給することができる。
!た、隣接する4バイトは、バス30に供給することが
できる。
コード制御装置36からライン44における信号は、バ
ス29に接続した24ビツト・フィールドの第1バイト
にポインタ(KIP)を供給する。
”KIP″の後の゛(5)”は、このポインタを示すの
に5ビツトが使用されるということを示しておシ、これ
は、レジスタ26に記憶された32バイトの単一バイト
を示すのに必要である。ライン43でプリフエツチャ1
2に接続した第2ポインタ(K2P)は、バス30に接
続した32ビツト・フィールドの第1バイトを示す。後
述するように、バス29.30に接続したフィールドは
、オーバラップしてもよい。すなわち1クロツク・サイ
クルに釦いてバス29に最初に接続したバイトは、その
後のクロック・サイクルにおいてバス30に接続するこ
とができる。
ライン41 (KIPJ)でブリフエッチャ12に接続
した5ピツトは、コード制御回路36に飛越しポインタ
を供給する。これは、(JUMPコマンドの後の)新し
い命令がレジスタ26にロードされた後に起きる。この
ボイ/りは、新しい命令の開始バイトを制御回路36に
表示する。ライン42(K I Vk!びに2V)にお
ける信号は、KIQデータおよびに2Qのデータが妥当
であるかどうかを表示する。ライン40における信号C
lax 8およびizx 16 )は、中間データ・フ
ィールドの接続を制御する制御信号である。
デコーダ31は、普通のデコーディングを行なうようプ
ログラムされた(論理ゲートを含んでいる)普通のプロ
グラム論理アレイ(PLA)回路である。後に示すよう
に、Opコードおよびレジスタおよびアドレス・モード
・スペシファイヤは、レジスタ26からデコーダ31に
(命令プレフィックスを含んでいる場合を除いて)接続
している。
このデータから、コード・コントローラ36を介してデ
コーダ31は、デコーダ31が実際に必要なフィールド
の長さと、K2Qバスに関するポインタがレジスタ26
において示すべき点を決定する。デコーダは、8ビツト
の命令がレジスタ26に存在している場合でも、常に2
4ビツトを受信する。デコーダ31は、命令を履行する
のに必要とされるアドレスの種類を職別する実行セット
アツプ・ステージ34に信号を供給する。後述するよう
に、デコーダ31と実行セットアツプ・ステージ34に
並列に動作するが、デコーダ31は、ステージ34が前
の命令で動作している間、1つの命令に関して動作する
デコーダ31の出力に接続したラッチ35によ夕、デコ
ーディングから得られた信号はラッテ35を介してクロ
ックされ、ステージ34によう行なわれるその後の1デ
コーデイングとタイミングを合わすことができる。ラッ
チ出力は、特殊なALU制御信号とソース/デスティネ
ーション・レジスタのエネーブル信号を含んでいる。ラ
ッチの出力は、装置19のマイクロコード・メモリにお
けるマイクロコードの“第1″ラインの入口点(ルック
・アップ)を含んでいる。
しかし、実際には、デコーダ31はラッチ35とともに
マイクロコードの最初の2つのラインを供給するので、
入口点は、マイクロコードの第3有効ラインを示す。た
とえば、これは、記憶命令において、tたはデコーダ3
1が1サイクルにおいてアドレス計算をセットアツプす
る時に生じる。
続くクロック・サイクルにおいて、マイクロコードの第
2ラインは、バス・サイクルを開始する(メモリから受
信する)ようラッチ35によシ供給される。次のクロッ
ク・サイクルに関して、コードの第3ラインは、マイク
ロコード・メモリ(tic1図の制御装置19)によう
供給される。コードの第3ラインは、ラッチ35がマイ
クロコドの第1ラインを供給している時、ラッテ35に
より供給される入口点に基いて選択される。
全ての命令は、制御装置19からのマイクロコードの少
なくとも1つのラインを使用する。いくつかの場合では
、このマイクロコードは、命令サイクルの完了を単に示
すだけである。多くの場合では、デコーダ31からのマ
イクロコードの第1ラインは、′″N0OP″である。
前述したように、デコーディングの第2ステージとして
見ることができる実行セットアツプ・ステージ34は、
主にアドレス発生、すなわちアドレス発生に関するシー
ケンシングを制御する。
このため、これは、主にステート・マシンとして供給さ
れている。実際のアドレス計算は、セグメンテーション
装置15において行なわれる。デコーダ31は、ステー
ジ34へおよびこのステージ34からの線形アドレス要
件を供給し、かつ命令に関していくつのサイクルが必要
であるかを決定する。一般に、基底および移動しかiい
場合には1つのサイクルが必要で、基底、基準化指標ア
ドレスのファクタ、および移動がある場合には2サイク
ル必要である。ロード信号およびフィールド・サイジン
グ信号は、制御回路36を介してセグメンテーション装
置15に供給される。
コード制御装置36は、ステート・マシン、アダー卦よ
びカウンタ、pよび関連論理装mtl−含んでいる。信
号は、デコーダ31から回路36に供給され、デコード
された命令の種類を示す。この情報から、コード制御装
置31は、アダー釦よびカウンタによp1ポインタKI
P、に2Pがどこを示すべきかを決定する。回路36に
よシ行なわれる制御は、第6図におけるポインタに関す
る説明で明らかにされる。
コード制御回路36は、本実施例にかいては他の機能も
行なう。たとえば、セグメンテーション・バイオレーシ
ョン−?、tたH他のバイオレーションヲ示スバイオレ
ーション・ビットは、プリフエツチャ12によシ検出さ
れ、制御装置36に送られる。制御装置36は、いくつ
かの例では、バイオレーションの特性も決定スル。
パイプライン制御回路37は、命令デコーディング装置
のパイプラインの全制御を行なうステート・マシンでも
ある。この回路は、デコーダ31からそれに送られる信
号から、命令がプレフィックスを含んでいる場合を認識
し、特定の命令を処理するのに要する追加サイクルの数
を決定する。
たとえば、第5図に関して後述するように、いくつかの
サイクルが必要である。回路34は、これら追加サイク
ルを制御する。パイプライン制御回路3Tは、ライン4
9でデコーダ31および実行セットアツプステージ34
への”アドバンス信号”と、′フラッシュ・パイプライ
ン”すなわちリセット信号と、特定のステージが命令に
関する演算を完了した時を示す信号とを供給する。
第2図の全回路は、普通の回路で構成することができる
。本発明を理解する上であtb重要でない制御信号は、
第2図においては省略している。
さらに、本発明を理解する上であまシ必要のない機能(
たとえば、テスト機能)は、本発明を理解しやすくする
ため示されていない。
第3図は、インテル386に関する一般的な形式の命令
を示している。これらは、本発明のデコーディング装置
の本実施例においてデコードされる命令である。命令は
、Opコードと、場合によっては別のアドレス・フィー
ルド5oと、移動フィールド51と、中間フィールド5
2を含んでいる。
これらフィールドの長さは、第4図に訃いて述べている
ように異なっている。場合によっては、付加プレフィッ
クス55が使用されている。
第4図は、代表的な命令を示している。Opコード・フ
ィールドは、lまたは2バイトの長さである。たとえば
、最初の5ビツトがMOVEを示しかつ最後の3ビツト
がレジスタ表示を示している1つのバイトでしか全命令
が構成されていない場合もある。代表的なOpコードは
、第4図に釦いては2つのパイ)57.58を有してい
る。アドレス・モード・バイト58は、アドレス・モー
ドおよび“レジスタ/メモリ”を示し、バイト60は、
基準化指標アドレシング・モード(SS)に関するスケ
ール・ファクタ、指標レジスタ(指IIA)として使用
される一般的なレジスタ、および基底レジスタとして使
用される一般的Zレジスタとを含んでいる。バイト59
.60は、レジスタおよびアドレス・モード・スペシフ
ァイヤとして示されている。フィールド61は、アドレ
ス移動で、このフィールドは、全命令には存在していな
い場合もあシ、そうでなければ1.2または4バイトの
長さである。同様に、中間データ・フィールド62は、
全命令には存在していない場合もあυ、そうで女ければ
1,2または4バイトの長さである。會た、他の変化が
生じることがある。たとえば、あるレジスタに関するセ
グメント・レジスタ・スベシファイヤがOpコード・フ
ィールドにかいて生じたシ、またはアサートされる条件
咬たは否定される条件を指定するため、条件付き命令に
ビットが使用される場合もある。
第4図にかいて重11々ことは、全命令(プレフィック
スを有している命令を除く)の最初の3つのバイトは、
賛求されている命令および命令の全長を決定するのに十
分な情報を含んでいる。どの場合も、これら3つのバイ
トは、デコーダ31に供給される。各命令の残υのバイ
トから、第2図のセグメンテークヨン装置15により1
アドレスを計算することができる。最初の3つのバイト
は、アドレスを計算するのに必要とされるサイクルの数
およびアドレス・モードを決定するため、デコーダ31
に必要な情報を含んでいる。たとえば、基底、指標釦よ
び移動がある場合、通常、2サイクルが必要である。
第5図によシ、本発明の装置の一般的なバイプライニン
グを理解することができる。表の上部には、サイクルが
示されている。各サイクルは、コンピュータ・サイクル
に相当している。たとえば、マイクロプロセッサの内部
クロック・サイクルは25mHzの割合で生じる。左側
の欄は、パイプラインにおけるステージを示している。
表の数字は、命令番号を示している。たとえば、サイク
ル1において、命令11は、ブリフエツチャ12から転
送される。すなわちそれはデコーダ31に供給される。
同じサイクルにおいて(すなわち、この転送と同時に)
、デコーダ31は、命令11の前の命令である命令10
をデコードしている。同様に、この期間にシいて、第2
図の実行セットアツプ・ステージ34は、命令9に関す
るアドレス計算のシーケンシングを制御している。同時
に、命令8に関して、実行が行なわれ、かつライト・バ
ック(wrlte 1)ack )が、命令7に関して
行なわれている。(命令の全部がライト・バックを有し
ているのでは危いが、いくつかの単一バイト命令はライ
ト・バックを必要としている。)サイクル2に示すよう
に、デコーダ31への転送は、命令12に関して行なわ
れ、デコーダ31は、命令11をデコードして卦b1か
つ実行セットアツプ装置は、命令10に関して動作して
いる。
前述したように1プレフイツクス(第3図のプレフィッ
クス55)が存在している場合がある。
サイクル3Kかいて、命令13の最初の24ビツトをデ
コーディングすることによシ、デコーダが、プレフィッ
クスが存在していると決定すると仮定する。この情報は
、パイプライン制御回路37に供給され、この回路は、
全プレフィックス、Opコード、およびレジスタ釦よび
アドレス・モード・スベシファイヤをデコーダ31に転
送するのにいくつのサイクルが必要かを決定する。第5
図に示すように、これは、サイクル3,4.5に釦いて
行なわれる。デコーディングは、サイクル4,5゜6に
釦いて行なわれ、実行セットアツプは、サイクル7に釦
いて行なわれる。実行は、サイクル8に会いてこの命令
に関して行なわれる。サイクル5.6において、実行セ
ットアツプ・ステージ34は動作せず、同様に実行ステ
ージは、サイクル6゜7に釦いて動作しない。
命令14は、サイクル6に3いてデコーダ31に転送さ
れ、サイクル7でデコーダ31によシブコードされるが
、アドレス計算に関して2サイクル8.9を必要とする
。前述したように、これは、アドレスが基底、指標、お
よび移動を含んでいる場合に生じる。2つのサイクルが
必要とされるので、サイクル8に示したように、デコー
ダ31には転送が行なわれないが、サイクル9にかいて
は、命令16がデコーダに転送される。
第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に供給されるに1Pポインタ(ポインタ67)が
、レジスタ26における第1バイトを示す。したがって
、レジスタの最初の24ビツトは、デコーダ31に転送
される。このフィールドは、番号6Bによシサイクル1
の右に示されている。このフィールドをデコドすること
により1デコーダ31は、最初の16ピツトがOpコー
ドであると決定し、このコードの実行を開始するため適
当な信号を(通常、ラッチ35に)供給する。コード制
御回路26により、1に2Pポインタ69が命令1にか
ける中間フィルドの最初を示すべきであると決定される
。このポインタによジ、このフィールドの後の4バイト
が、セットアツプ・ステージ34の制御の下で転送され
る。このフィールドは、ブラケットTOによう第6図の
サイクル2の右側に示されている。
コード制御回路36は、ポインタT1を供給するので、
サイクル2において、ポインタ71の後の24ビツトは
、デコーダ31に転送される。このフィールドは、通常
、番号72によシ示される。
命令2の中間フィールドの8ビツトは、デコーダに転送
されるが、これらビットは、実際には無視される。ポイ
ンタT3がこのフィールドの最初に設定されるので、次
のサイクルにおいて、命令2に関する全中間フィールド
は転送される。(移動フィールドは、セグメンテーショ
ン装置に転送され、中間フィールドはキャッシュ装置内
に転送される。)フィールドは、番号T4でサイク/I
/3として示されている。制御回路36は、ポインタ7
4を供給し、ポインタT4の後の24ビツトがサイク/
I/3にシいてデコーダ31に転送される。この命令は
、中間フィールド!たは移動フィールドを有してからす
、命令3に関するIK2Pポインタは必要でない。これ
は、通常、番号T5にようサイクル4として示されてい
る。このプロセスは、第6図に示すように継続され、命
令4に関して制御回路36がポインタを供給し、適当な
フィールドが転送される。
第6図の下の方には、命令の実行が示されている。サイ
クル3にかいて、命令lが実行される。
サイクル41C>いて、命令4が実行され、以下、同様
である。
以上のように、本発明の命令訃よびデコーディング装置
は、可変長命令を使用しているマイクロプロセッサに関
する特性を改善する。
【図面の簡単な説明】
第1図は本発明が使用されているマイクロプロセッサの
一般的なブロック図、第2図は本発明の命令デコーディ
ング装置と、ブリフェッチヤおよびセグメンテーション
装置への接続とを示したブロック図、第3図は本発明装
置によシブコードされた命令の最も一般的なフォーマッ
トを示し、第4図は命令のフォーマットをより詳細に示
しかつ命令の可変長フィールドを示し、第5図は本発明
に関連したパイプライン・フローとタイミングを示すの
に使用される図、第6図は本発明に関連した命令フロー
とタイミングを示すのに使用される詳細な図である。 10・・・・パス・インタフェイス装置、11・・・−
キャッシュ・メモリ、12・・・・ブリフエツチャ、1
3・・・・ページング装置、14・・・・命令デコーダ
装置、15・・・・セグメンテーション装置、1T・・
・・データ経路装置、1B・・・・浮動小数点装置、1
9・・・・制御袋fl、26・・・・レジスタ、21・
・・・マルチプレクサ、31・・・・デコーダ、34・
・・・実行セットアツプ・ステージ、35・・・・ラッ
チ、36・・・・コード制御回路、3T・・・・パイプ
ライン制御回路。

Claims (2)

    【特許請求の範囲】
  1. (1)プリフエツチされた命令を記憶する記憶装置と、
    上記記憶装置からの異なる長さの命令をデコードするデ
    コーディング装置を有するマイクロプロセッサにおいて
    、上記デコーディング装置は、少なくとも2つのセクシ
    ョンを含み、第1のセクションは、第2セクションが前
    の命令の第2フィールドに基いて実行をセットアップし
    ている間に同時に1つの命令の第1フィールドをデコー
    ドし、上記第1セクションは、上記記憶装置からの命令
    の上記第1フィールドを受信するよう接続し、上記第2
    セクションは、上記記憶装置からの上記前の命令の上記
    第2フィールドに関して上記セットアップが行なわれる
    ように接続し、上記第1セクションは、上記記憶装置か
    ら上記第2フィールドを選択するため上記記憶装置に第
    1ポインタを供給することを特徴とするマイクロプロセ
    ッサ。
  2. (2)命令デコーディング装置と上記装置に供給される
    複数の命令を記憶するレジスタとを有し、かつ異なる長
    さの命令で動作するマイクロプロセッサにおいて、 上記装置は、第1および第2ステージを有し、上記第1
    ステージは、第1コンピュータ・サイクルにおいて、O
    pコード、および上記命令の1つのレジスタおよびアド
    レス・モードスペシフアイヤ(第1フィールド)をデコ
    ードし、上記第2ステージは、第2コンピュータ・サイ
    クルにおいて、上記1つの命令のアドレス移動または中
    間データ・フィールド(第2フィールド)の使用を制御
    し、上記第2サイクルは時間的に上記第1サイクルに続
    いていることを特徴とするマイクロプロセッサ。
JP2089297A 1989-04-07 1990-04-05 プロセッサ Expired - Lifetime JP2847316B2 (ja)

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 true JPH03201030A (ja) 1991-09-02
JP2847316B2 JP2847316B2 (ja) 1999-01-20

Family

ID=23310662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2089297A Expired - Lifetime JP2847316B2 (ja) 1989-04-07 1990-04-05 プロセッサ

Country Status (5)

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

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
JP3644959B2 (ja) 1992-09-29 2005-05-11 セイコーエプソン株式会社 マイクロプロセッサシステム
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
US5644741A (en) * 1993-10-18 1997-07-01 Cyrix Corporation Processor with single clock decode architecture employing single microROM
DE69425310T2 (de) * 1993-10-18 2001-06-13 Via Cyrix Inc Mikrosteuereinheit für einen superpipeline-superskalaren Mikroprozessor
US5794026A (en) * 1993-10-18 1998-08-11 National Semiconductor Microprocessor having expedited execution of condition dependent instructions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113634A (ja) * 1986-10-30 1988-05-18 Nec Corp プログラムカウンタ相対アドレス計算方式

Family Cites Families (9)

* 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 (ja) * 1984-12-29 1995-08-16 ソニー株式会社 マイクロコンピユ−タ
JP2554050B2 (ja) * 1986-02-26 1996-11-13 株式会社日立製作所 デ−タ処理方法
JPS62226231A (ja) * 1986-03-27 1987-10-05 Toshiba Corp プロセツサ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113634A (ja) * 1986-10-30 1988-05-18 Nec Corp プログラムカウンタ相対アドレス計算方式

Also Published As

Publication number Publication date
DE4010895A1 (de) 1990-10-11
JP2847316B2 (ja) 1999-01-20
DE4010895C2 (de) 1998-09-24
GB2230116A (en) 1990-10-10
HK56295A (en) 1995-04-21
FR2645665A1 (fr) 1990-10-12
GB9003351D0 (en) 1990-04-11
FR2645665B1 (fr) 1994-04-15
GB2230116B (en) 1993-02-17

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
KR100323191B1 (ko) 다중명령세트를이용한데이터프로세싱장치
CA1320275C (en) Pipeline bubble compression in a computer system
US5822555A (en) Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer
EP0415461B1 (en) Central processing unit supporting variable length instructions
JPH09512652A (ja) 多重命令セットによるデータ処理
JPH04260950A (ja) キャッシュメモリ装置
US4312034A (en) ALU and Condition code control unit for data processor
JP2507638B2 (ja) デ―タ処理装置
JPS63273134A (ja) マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
JPH0810428B2 (ja) データ処理装置
JPH04233640A (ja) メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ
US7315921B2 (en) Apparatus and method for selective memory attribute control
JPH06332695A (ja) データ処理装置及びその制御回路
JPH01214932A (ja) データ処理装置
JPH07120278B2 (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
US5034880A (en) Apparatus and method for executing a conditional branch instruction
JPH03201030A (ja) プロセッサ
US4893235A (en) Central processing unit for a digital computer
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
KR100391041B1 (ko) 마이크로코드명령에대한정보를갱신하기위한방법및장치
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
JP3599499B2 (ja) 中央処理装置