JPH03156533A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH03156533A
JPH03156533A JP2226134A JP22613490A JPH03156533A JP H03156533 A JPH03156533 A JP H03156533A JP 2226134 A JP2226134 A JP 2226134A JP 22613490 A JP22613490 A JP 22613490A JP H03156533 A JPH03156533 A JP H03156533A
Authority
JP
Japan
Prior art keywords
information
instruction
bus
unit
field
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
JP2226134A
Other languages
English (en)
Other versions
JP2725450B2 (ja
Inventor
Nariko Suzuki
鈴木 奈利子
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPH03156533A publication Critical patent/JPH03156533A/ja
Application granted granted Critical
Publication of JP2725450B2 publication Critical patent/JP2725450B2/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 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • 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/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining

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)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロフロセッサに関し、特にパイプライン
方式のマイクロプロセッサにおける命令テコードユニッ
トの改良に関する。
マイクロプロセッサは、基本的に、バスサイクルを起動
し命令のフェッチやオペランドデータのリード/ライト
を実行するバス制御ユニット (BCU)、BCUに対
し命令の先取りを要求し命令ブリフェッチを実行する命
令ブリフェッチユニット(PFU)、ブリフェッチされ
た命令をデコードし命令実行に必要なデータ処理情報お
よびオペランドアクセスに必要なオペランドアクセス情
報を発生する命令デコード処理ツ) (IDU)、ID
Uからのオペランドアクセス情報にもとづきオペランド
アクセスのための実効アドレスを計算スる実効アドレス
発生ユニット (EAG)、計算された実効アドレスを
実アドレスに変換しECUに対しオペランドアクセスを
要求するメモリ管理ユニッ) (MMU)、ならびにI
DUからのデータ処理情報にもとづき命令を実行する命
令実行ユニット(EXU)を有する。これら各ユニット
は所定のパイプライン処理に従って並列に動作している
ところで、近年のマイクロフロセッサは、プログラム作
成の容易さを重視した高機能化を1指している。すなわ
ち、lオペランド命令、2オペランド命令等の各種命令
に対して豊富な命令フォーマットを提供し、かつそれぞ
れのオペランドに対して独立なアドレシングモードを指
定可能とする機能をサポートしている。アドレシングモ
ードに対しても直接/間接モード、ディスプレースメン
トモード、インデックス付モード等の豊富なアドレシン
グモードをサポートしている。
〔発明が解決しようとする課題〕
このように、多くの命令フォーマットおよびアドレシン
グモードをサポートすると、それらの解読のための負荷
が重くなり、デコード処・理時間が長くなる。すなわち
、IDUは、PFUからの命令が有する命令フォーマッ
トおよび各オペランドのアドレシングモードを解読検出
し、その結果にもとづくデコードシーケンスに従ってデ
コード処理を実行してデータ処理情報およびオペランド
アクセス情報を発生している。このため、命令フォーマ
ットおよび各オペランド毎の7ドレシングモードの種類
が多くなるほどこれらを解読検出して命令デコードシー
ケンスを決定するに要する時間が無視できなくなり、こ
の分データ処理情報およびアドレス生成情報の発生が遅
れるのである。
これは、命令のパイプライン処理に乱れをもたらし、マ
イクロプロセッサの性能の低下を招いてしまうことにな
る。
したがって、本発明の目的は、改良された命令デコード
処理機能を有するマイクロプロセッサを提供することに
なる。
本発明の他の目的は、豊富な命令フォーマットおよびア
ドレシングモードをサポートしつつ命令デコード処理時
間を短縮した高性能のマイクロフロセッサを提供するこ
とにある。
〔課題を解決するための手段〕
本発明によるマイクロプロセッサは、PFUからの命令
に対するデコード処理をプリデコーダユニットとメイン
デコーダユニットで実行し、これらの間にプリデコーダ
ユニットからの情報を一時ストアしてメインデコーダユ
ニットに与えるバッファを設けてこれら両デコーダユニ
ットをパイプライン方式で動作させたことを特徴として
いる。
プリデコーダユニツ)は、PFUからの命令が有するオ
ペコードフィールドおよびアドレシングモードフィール
ドをそれぞれ受ける第1および第2のプリデコーダを有
している。第1のプリデコーダはオペコードフィールド
をデコードし、オペコードフィールドのバイト数および
オペランドの数を示すオペコード情報を生成し、第2の
プリデコーダはアドレシングフィールドをデコードし、
各オペランドのハイド数およびアドレシングモードを示
すアドレシングモード情報を生成する。これらオペコー
ド情報およびアドレシングモード情報はバッファに一時
ストアされる。バッファはPFUからの命令のオペコー
ドフィールドおよびアドレンングモードフィールドの情
報も一時ストアし、さらにPFUからの命令が有するデ
ィスプレースメントやイミディエートデータも一時スト
アする。メインデコーダユニットは、バッファから供給
されるオペコード情報およびアドレシングモード情報に
もとづきデコードシーケンスを決定し、この決定された
デコードシーケンスにもとづきバッファからの他の情報
に対するデコード処理を実行してデータ処理情報および
オペランドアクセス情報を生成する。メインデコーダユ
ニットによるかかる処理の実行中、プリデコーダユニー
/ )は、第2オペランドのための7ドレシングモード
のプリデコーダ処理又は次の命令に対するプリデコーダ
を実行している。
すなわち、本発明は命令に対するデコード処理が、命令
が有する命令フォーマットおよびアドレシングモードを
解読検出するという第1の処理とその結果により決定さ
れるデコードシーケンスに従ってデコード処理を実行し
デコード情報を生成するという第2の処理とからなるこ
とに着目し、第1および第2の処理をそれぞれプリデコ
ーダユニットおよびメインデコーダユニットで分担させ
、かつこれらユニットをパイプライン構成としたもので
ある。したがって、本発明によればサポートする命令フ
ォーマットおよびアドレシングモードを豊富に揃えても
、それらの解読検出時間を見かけ上なくすことが出来る
。かくして、パイプライン処理の乱れはほとんど生じず
、パイプライン方式のマイクロプロセッサの性能をフル
に発揮させることができる。
〔実施例〕
以下、図面を用いて本発明の実施例を詳細に説明する。
第1図は本発明の一実施例によるパイプライン方式のマ
イクロプロセッサ100のブロック図である。バス制御
ユニット(ECU)110は、図示しないメモリや周辺
I10ユニットが接続されたシステムバス190に対す
るバスサイクルを起動し、命令をフェッチしたり、オペ
ランドデータのリード/ライトを実行する。命令ブリフ
ェッチユニット(PFU)120はブリフェッチポイン
タ(図示せず)を有し、このポインタの内容と共にEC
UIIOに対し命令のブリフェッチ要求をバス1201
を介して行なう。BCUIIOからのブリフェッチされ
た命令は命令バス1101を介してPFU l 20に
供給され一時ストアされる。
PFU l 20は先取りした命令をオペコードおよび
オペランドに整列してバス1202に出力する。
バス1202上に出力された情報は本発明に従ってブリ
デコーダユニッ) (PDU)130に供給される。P
DU 130はオペコードにもとづきオペコードのバイ
ト長およびオペランドの数をデコード検出しオペコード
情報を発生し、またオペコードにもとづきオペランドの
バイト長およびアドレシングモードをデコード検出しア
ドレシングモード情報を発生する。これら情報はバス1
202上の他の情報とともにバス1302を介してバ1
ツファ(BFF)140に一時ストアされる。EFF1
40の出力はバス1401を介してメインデコーダユニ
ット(MDU)l 50に供給される。
MDU l 50は上位オペコード情報およびアドレシ
ングモード情報にもとづきデコードシーケンスを決定し
、所定のデコード処理を実行してオペランドアクセスの
ためのオペランドアクセス情報1502および命令実行
のためのデータ処理情報1501を生成する。オペラン
ドアクセス情報1502は実効アドレス発生ユニッ) 
(EAG)160に供給され、オペランドアクセスのた
めの実効アドレス1601が計算される。この実効アド
レス1601はメモリ管理ユニット170に供給され、
実アドレスに変換される。変換の終了は信号1702に
よってMDU150に通知される。
MMU 170は変換した実アドレスとともにBCUl
lOに対してオペランドアクセス要求を発行する。MD
U 150からのデータ処理情報1501は実行制御ユ
ニツ) (EXU)180に供給され、EXU 180
はバス1801を介してBCUlloとの間でオペラン
ドデータのやり取りを制御して要求されたデータ処理を
実行する。これらBCUIIO,P、FU120.PD
U130.MPU150.EA、G160.MMUI7
0およびEXU 180は所定のパイプライン処理に従
って並列に動作する。
第2図を参照すると、PFUI 20.PDU130、
BFF140およびMPU150のより詳細なブロック
が示されて(・る。なお、図面を簡単化するために、本
発明と関係する部分のみが示されている。BCUIIO
からの命令バス1101は32ビット幅(すなわち、4
バイト幅)であり、したがって4バイト幅の命令情報が
一度のブリフェッチでバス1101上に転送される。バ
ス1101は4ブロツクの命令キュー(INSQO−3
)121−1乃至121−4に共通に接続されている。
各命令キューlN5QI 21は4バイトの記憶容量を
有する。バス1101からの4バイト幅の命令情報は、
キューコントローラ124からのキューポインタ情報1
241によって、命令キューlN5QO−3にこの順に
一時ストアされる。例えばlN5QO(121−1)に
未処理の命令情報がストアされているときは、バス11
01からの次の命令情報は第2のlN5QI (121
−2)にストアされることになる。lN5QO−3(1
21−1乃至121−4)からの各出力は16バイト幅
の命令情報122として一つにまとめられ命令アライナ
123に供給さ九る。命令アライナは2バイト幅のオペ
コードフィールド出力バス126,2バイト幅の7ドレ
シングフイールドバス127および4バイト幅のデータ
出力バス128を有する。命令のオペコードフィールド
およびオペランドフィールドを含めた全バイト数は固定
でなく、その要求される処理、およびアドレシングモー
ドに依存して数バイトから十数バイトまで変化する。そ
こで、命令アライナ123はアライナコントローラ12
5からの7ラインポインタ情報1251にもとづき、実
行すべき命令のオペコードフィールドがバス126上に
、オペランドのアドレシングフィールドがバス127上
に、オペ−1+7ドのディスプレースメントやイミディ
エートデータがバス128上にそれぞれ出力されるよう
に、バス122からの命令に対する情報の整列を実行す
る。バス126,127および128が第1図のバス1
202に対応する。
バス126および127に出力されたオペコードデータ
およびアドレシングフィールドデータはPDU130内
のオペコードフィールド(OFF)プリデコーダ131
およびアドレシングフィールド(AF)プリデコーダ1
32にそれぞれ供給される。OFFプリデコーダ131
はオペコードデータにもとづきオペコードのバイト長お
よびオペランドの数を示すオペコード情報133を生成
し、AFプリデコーダ132はアドレシングフィールド
にもとづきオペランドのバイト長およびアドレシングモ
ードを示すアドレシングモード情報134を発生する。
これら情報133゜134はPFU120内のアライナ
コントローラ125およびキューコントローラ124に
供給される。これによって、アライナコントローラ12
5は命令アライナ123が出力すべきバイトの位置およ
び数を制御するアライナポインタ情報1251を生成し
、キューコントローラ124はバス1101からの命令
をストアすべきキューlN5Qの位置を制御する。キュ
ーポインタ情報1241を生成する。情報133および
134はBFF 140のバッファレジスタ(BFFR
IおよびBFFR3)141,143にそれぞれ一時ス
トアされる。
命令アライナ123からのオペコードデータおよびアド
レシングフィールドデータはさらに分岐バス1261.
1271を介してBFF 140に供給されBFFR2
,BFFR4にそれぞれ一時ストアされる。命令アライ
ナ123からのディスプレースメントやイミディエート
データはバス128を介してBFF 140に供給され
、BFFR5に−時ストアされる。情報バス133,1
34.分岐バス1261.1271およびバス128が
第1図のバス1302に対応する。
BFF 140のBFFRI、BFFR2の情報、すな
わちオペコード情報およびアドレシングモード情報は、
MDU 150内のデコードシーケンスコントローラ1
51に供給され、これによってコントローラ151は実
行すべきデコードシーケンスを直ちに決定しそのシーケ
ンス情報1511゜1512を発生する。シーケンス情
報1511はOPFメインデコーダ152に供給され、
同デコーダにはBFFR2からオペコードデータも供給
されている。この結果、OFFメインデコーダは命令実
行に必要なデータ処理情報1501を生成し、EXU 
180に供給する。BFFR4からのアドレシングフィ
ールドデータはAFメインデコーダ153に供給され、
ディスプレースメントやイミディエートデータはオペラ
ンドアクセス情報発生器154に供給される。これらユ
ニット153.154はシーケンス情報1512によっ
て決定されたアドレシングシーケンスに従って動作し、
オペランドアクセス情報1502を生成しEAG160
に供給する。
前述したように、実行すべき命令のバイト数は要求され
る処理およびオペランドに対するアドレシングモードに
依存して変化する。第5図に命令フォーマットの例を示
す。同図(A)は2オペランド命令500であり、第1
オペランドのアドレシングモードはディスプレースメン
トモード、第2オペランドの7ドレシングモードはディ
スプレースメント・インデックス付モードとなっている
より詳細には、この命令500は、2バイト長のオペコ
ード(OP)フィールド501.1バイト長の第1オペ
ランド(OPMDI)アドレシングモード(AM)フィ
ールド502.4バイト長のディスプレースメント50
3.lバイ)長(7p第2オペランド(OPND2)イ
ンデックスフィールド504.1バイト長のアドレシン
グモードフィールド505.および2バイト長のディス
フレースメント506からなり、全11バイト長となっ
ている。第5図(B)は1オペランド命令550であり
、そのオペランドのアドレシングモードはディスプレー
スメントインデックス付モードである。夫々が1バイト
長のOPコードフィールド510、インデックスフィー
ルド511およびAMフィールド512と4バイト長の
ディスプレースメント513とからなり、全7バイト長
の命令である。
以下、動作において第1図、第2図、第5図および第3
図Aに示すタイミングチャートを用いて説明する。説明
の便宜上、命令キューlN5Q121に第5図Aの2オ
ペランド命令500と第5図Bの1オペランド命令55
0がストアされている。ただし、命令キューlN5Qは
全16バイト幅であるので、■オペランド命令550の
内ディスプレースメント513の下位側2バイトはまだ
命令キューlN5Qにストアされていない。
まず、命令7ライナ123はアライナコントローラ12
5からの指示によって、16バイト幅のバス122上の
情報のうち第1および第2バイトをバス126に第3お
よび第4バイトをバス127上にそれぞれ出力する。す
なわち、命令500のOPコードフィールド501がバ
ス126に、0PND 1・AMフィールド502とデ
ィスプレースメント503の第1バイトがバス127上
に、システムクロック■の1クロック期間それぞれ出力
される。これによって、OFFプリデコーダ131はオ
ペコード情報133を発生し、APプリデコーダ132
はアドレシングモード情報134を発生する。オペコー
ド情報133はこの命令が2バイトのオペコードをもち
、2つのオペランドに対する命令であることを示す。ア
ドレシングモード情報134は第1オペランドがディス
プレースメントモードのアドレシングが指定されており
、そのディスプレースメントが4バイト長であることを
示す。なお、AFプリデコーダ132に供給されたディ
スプレースメントの第1バイトは無視される。これら情
報133,134により、アライナコントローラ125
は、命令アライナ123が次のクロック■の期間でバス
122上の情報の第4乃至第7バイトをバス12g上に
出力するようにアライナポインタ情報1251を制御し
、キューコントローラ124はlN5QOの第1乃至第
3バイトに次の命令がストアされることを許可するよう
にキューポインタ情報1241を制御する。
次のクロック■の始まり、PDU 130からの情報1
33,134およびフィールドデータ501゜502は
BFF 140の対応するレジスタにストアされ、一方
、命令アライナ123はティスフレースメント503を
バス128上に出力する。
このクロック期間、MDU150はBF’F140から
の情報にもとづき、デコード処理を開始する。
すなわち、OFFメインデコーダ152は2つのオペラ
ンドに対する要求された処理を示すデータ処理情報15
01を生成し、AFメインデコーダ153は、第1オペ
ランドのためのディスプレースメント503の待ち状態
となるまでアクセス情報の生成処理を進める。また、ア
ライナコントローラ125は次のクロック■で命令アラ
イナ123がバス122上の情報のうち第9.第10バ
イトをバス127上に出力するように、アライナポイン
タ情報1251を制御する。
次のクロック■になると、ディスプレースメント503
はBFF 140のBFFR5(145)にストアされ
、一方0PND2インデックスフィールド504および
AMフィールド505が命令アライナ123からバス1
27上に出力される。かくして、MDU 150は第1
オペランドのためのアクセス情報1502を生成し終え
、同情報をEAG160に供給する。一方、AFプリデ
コーダ132は、第2オペランドがディスプレースメン
ト、インデックス付モードでありかつディスプレースメ
ントのバイト数が2であることを示すアドレシングモー
ド情報134を生成する。
次のクロック■では、MDU150は第2オペランドの
ためのアクセス情報を生成し始め、命令アライナ123
はティスブレースメント506を出力する。その次のク
ロック■でディスプレースメント506はBFFR5(
145)を介してMDU150に供給されるので、第2
オペランドのアクセス情報1502が生成されEAG 
160に供給される。命令アライナ123がディスプレ
ースメント506を出力した時点で命令500に対する
デコード処理は完了する。したがって、アライナコント
ローラ125は、クロック■の期間で命令アライナ12
3がバス122上の情報のうち第12.第13バイトを
バス126上に、第14.第15バイトをバス127上
にそれぞれ出力するように、制御する。かくして、命令
550のOPコードフィールド510とインデックスフ
ィールド511がOFFブリデコータ131に供給され
、AMフィールド512とディスプレースメント513
の第1バイトがAFプリデコーダ132に供給される。
OFFプリデコーダ131からの情報):!OFコード
フィールドが1バイト長であり、かつオペランド数が1
であることを示しており、これはアライナコントローラ
125に供給される。
したがって、コントローラ125はインテックスフィー
ルド511がAFプリデコータ132に転送されていな
いことを判別し、クロック■でフィールF’511と5
12がバス127上に出力されるように命令アライナ1
23を制御する。
方、クロック■の期間では、OFFメインデコーダ15
2による処理が実行され、オペランドに対する要求され
た処理を示すデータ処理情報が生成される。クロック■
の期間でAFプリデコーダ132からのアドレシングモ
ード情報134およびフィールド511,512がMD
U 150に転送される。アドレシングモード情報13
4はディスブレースメン)513が4バイト長であるこ
とを示している。また、クロック■乃至■の期間のうち
、PFUI20による命令の先取りは実行されており、
したがって、ディスブレース513の残りの2バイトは
lN5QOの第1および第2バイトにすでにストアされ
ている。したがって、クロック■でディスブレース51
3が命令アライナ123から出力され、クロック■で命
令550のオペランドアクセス情報の生成が終了する。
このように、実行すべき命令のフォーマットおよび各オ
ペランドに対するアドレシングモードによってデコード
シーケンスおよび命令アライナに対する制御が変化する
が、PDU 140によって命令フォーマットおよびア
ドレシングモードの解読、検出ならびに命令アライナの
制御情報を得ることによりこれらの制御情報の生成をM
DUI50から解放しており、かつPDU 140とM
DD150とを両者の間にBFF 140を設けること
でパイプライン処理で動作させている。したがって、P
DU 140による処理を全体の命令テコード処理の長
で見かけ上なくすことが可能となり、高速なテコード処
理が実現されている。
上述の実施例において、クロック■および■の期間に関
連して説明したように、命令550におけるフィールド
511,512は2度命令アライナ123から出力され
ている。これを1度で済ますことができればデコード処
理スピードはさらに改善する。そのための構成を他の実
施例として第4図に示す。なお、第2図と同−機能部は
同一番号で符してその説明は省略する。
本実施例によるマイクロプロセッサでは、1バイト長の
OPコードをもつ命令はそのOPコードの最初の3ビツ
トがすべてl″であることを利用している。すなわち、
パターン検出器400がバス1101に対して設けられ
ており、この検出器400は、バス1101上の4バイ
トのデータ夫々の最初の3ビツトがすべて“1′”かど
うかを検出し、“l”ならばパターン検出フラグレジス
タ401の対応するビットをセットし、少なくとも一つ
が°゛0”ならばフラグレジスタ401の対応するビッ
トをリセットしている。パターン検出フラグレジスタ4
01はしたがって16ビツト構成である。フラグレジス
タ401の内容はフラグアライナ402に供給され、命
令アライナ1251に対するポインタ情報1251に応
答して出力すべきフラグデータ403を制御している。
すなわち、命令アライナ1251が2バイト幅のバス1
26の内の第1バイトバス126〜lに出力するバス1
22のバイト位置に対応したフラグレジスタ401のビ
ットデータが出力さhる。例えば、命令アライナ123
がバス122上の第12番目のバイトデータをバス12
6−1に出力する時に、フラグレジスタ401の12番
目のビットデータが出力される。バス126の第2バイ
トバス126−2とバス127の第1バイトバス127
−1はマルチプレクサ(MPX)404に供給され、ま
たmlバイトバス127−1およびM2バイトバス12
7−2はマイクロプロセッサ(MPX)405に供給さ
れており、これらMPX404゜405の出力がバス1
27としてPDU 130に供給されている。フラグア
ライナ402からの出力データ403が“1”のとき、
MPX404゜405はそれぞれバス126−2.12
7−1からのデータを選択出力し、′0”のとき127
−1.127−2からのデータをそれぞれ選択出力する
第3図Bに本実施例によるタイミングチャートが前実施
例のもとの対比して示されている。クロック■で命令5
00のOPコードフィールド501がバス126に出力
されるとき、フラグ7ライナ402は“0”のデータ4
03を出力する。
したがって、バス127上にはAMフィールド502と
ディスプレースメント503の第1バイトが出力される
。すなわち、命令500に対する処理は第3図Aと同一
である。クロック■で命令550のOP:ff−ドフィ
ールド510がバス126−1の出力されるとき、フラ
グアライナ402は°“l”のデータを出力する。した
がって、バス126−2上のインデックスフィールド5
11はMPX404を介してバス127上に、バス12
7−1上のAMフィールド512はMPX405を介し
てバス127上にそれぞれ出力され、AFプリデコーダ
132に供給される。すなわち、クロック■でOPコー
ドおよびアドレシングモードを指定するフィールド51
1,512はそれぞれ対応するプリデコーダ131,1
32に供給される。この結果、クロック■でディスプレ
ースメント513が出力され、命令550に対するデー
タ処理情報およびオペランドアクセス情報の生成はクロ
ック■で終了する。
〔発明の効果〕
以上のように、本発明によれば命令フォーマットおよび
アドレシングモードを解読・検出するデコーダ処理と実
行すべき処理を示すデータ処理情報およびオペランドア
クセス情報の生成を実行するテコード処理とをパイプラ
イン処理化することにより、デコード処理スピードを低
下させることなく豊富な命令フォーラマットおよびアド
レシングモードをサポートする高性能のマイクロプロセ
ッサが提供される。
【図面の簡単な説明】
第1図は本発明の一実旅例な示すブロック図、第2図は
第1図で示したPFU、PDU、BFFおよびMDUの
構成を示すブロック図、第3図AおよびBはデ−タ処理
情報を示すタイミングチャート、第4図は本発明の他の
実施例によるPFUの構成を示すブロック図、第5図A
およびBはそれぞれ命令フォーマットの例を示す図であ
る。

Claims (3)

    【特許請求の範囲】
  1. (1)実行すべき命令をデコードし命令実行に必要なデ
    ータ処理情報およびオペランドアクセス情報を生成する
    命令デコードユニットを有するマイクロプロセッサにお
    いて、前記命令デコードユニットは、前記実行すべき命
    令が有するオペコードフォーマットおよびオペランドに
    対するアドレシングモードを解読してオペコード情報お
    よびアドレシングモード情報を発生するプリデコーダユ
    ニットと、これらオペコード情報およびアドレシングモ
    ード情報とともに前記実行すべき命令内の前記データ処
    理情報およびオペランドアクセス情報の生成に必要な情
    報を一時ストアするバッファと、このバッファからの情
    報にもとづき前記データ処理情報および前記オペランド
    アクセス情報を生成するメインデコーダユニットとを有
    し、前記プリデコーダユニットおよび前記メインデコー
    ダユニットはパイプラインステージを構成していること
    を特徴とするマイクロプロセッサ。
  2. (2)第1、第2および第3のバスを有し実行すべき命
    令が有するオペコードフィールド、アドレシングフィー
    ルドおよび定数フィールドを前記第1、第2および第3
    のバスにそれぞれ出力する命令アライナと、前記第1の
    バスに結合され前記オペコードフィールドをデコードす
    る第1のデコーダと、前記第2のバスに結合され前記ア
    ドレシングフィールドをデコードする第2のデコーダと
    、前記第1乃至第3のバスおよび前記第1、第2のデコ
    ーダに結合されこれらの情報を一時ストアするバッファ
    と、このバッファからの情報にもとづき前記命令を実行
    するためのデータ処理情報およびオペランドアクセス情
    報を生成する第3のデコーダとを備え、前記第1、第2
    のデコーダによる処理と前記第3のデコーダによる処理
    とをパイプライン化したことを特徴とするマイクロプロ
    セッサ。
  3. (3)前記オペコードフィールドのバイト長を検出する
    手段と、この手段からの検出情報に応答して前記第1の
    バスに出力された情報を前記第2のバスに転送する手段
    とをさらに有することを特徴とする請求項2記載のマイ
    クロプロセッサ。
JP2226134A 1989-08-28 1990-08-28 マイクロプロセッサ Expired - Lifetime JP2725450B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP22205789 1989-08-28
JP1-222057 1989-08-28

Publications (2)

Publication Number Publication Date
JPH03156533A true JPH03156533A (ja) 1991-07-04
JP2725450B2 JP2725450B2 (ja) 1998-03-11

Family

ID=16776428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2226134A Expired - Lifetime JP2725450B2 (ja) 1989-08-28 1990-08-28 マイクロプロセッサ

Country Status (5)

Country Link
US (1) US5233696A (ja)
EP (1) EP0415366B1 (ja)
JP (1) JP2725450B2 (ja)
KR (1) KR940003383B1 (ja)
DE (1) DE69030905T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019169046A (ja) * 2018-03-26 2019-10-03 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
EP0498654B1 (en) * 1991-02-08 2000-05-10 Fujitsu Limited Cache memory processing instruction data and data processor including the same
US5452423A (en) * 1991-06-13 1995-09-19 Chips And Technologies, Inc. Two-ROM multibyte microcode address selection method and apparatus
WO1993019416A1 (en) * 1992-03-25 1993-09-30 Zilog, Inc. Fast instruction decoding in a pipeline processor
US5371864A (en) * 1992-04-09 1994-12-06 International Business Machines Corporation Apparatus for concurrent multiple instruction decode in variable length instruction set computer
US5542058A (en) * 1992-07-06 1996-07-30 Digital Equipment Corporation Pipelined computer with operand context queue to simplify context-dependent execution flow
US5859994A (en) * 1992-08-10 1999-01-12 Intel Corporation Apparatus and method for modifying instruction length decoding in a computer processor
US5603037A (en) * 1993-04-23 1997-02-11 Intel Corporation Clock disable circuit for translation buffer
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
EP0651320B1 (en) 1993-10-29 2001-05-23 Advanced Micro Devices, Inc. Superscalar instruction decoder
DE69427734T2 (de) 1993-10-29 2002-05-23 Advanced Micro Devices Inc Linearadressierter Mikroprozessorcachespeicher
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
EP0651324B1 (en) * 1993-10-29 2006-03-22 Advanced Micro Devices, Inc. Speculative instruction queue for variable byte length instructions
US5878245A (en) 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
EP1186995B1 (en) * 1993-11-05 2003-09-03 Intergraph Corporation Instruction memory with associative cross-bar switch
EP1338957A3 (en) * 1993-11-05 2003-10-29 Intergraph Corporation Software scheduled superscalar computer architecture
US5974534A (en) * 1994-02-14 1999-10-26 Hewlett-Packard Company Predecoding and steering mechanism for instructions in a superscalar processor
US5608885A (en) * 1994-03-01 1997-03-04 Intel Corporation Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions
US5673427A (en) * 1994-03-01 1997-09-30 Intel Corporation Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue
JP2982618B2 (ja) * 1994-06-28 1999-11-29 日本電気株式会社 メモリ選択回路
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof
US5822558A (en) * 1995-04-12 1998-10-13 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte-length instructions within a superscalar microprocessor
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
US5859991A (en) * 1995-06-07 1999-01-12 Advanced Micro Devices, Inc. Parallel and scalable method for identifying valid instructions and a superscalar microprocessor including an instruction scanning unit employing the method
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
US5920713A (en) * 1995-10-06 1999-07-06 Advanced Micro Devices, Inc. Instruction decoder including two-way emulation code branching
US5926642A (en) * 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
US5872947A (en) * 1995-10-24 1999-02-16 Advanced Micro Devices, Inc. Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions
US5892936A (en) * 1995-10-30 1999-04-06 Advanced Micro Devices, Inc. Speculative register file for storing speculative register states and removing dependencies between instructions utilizing the register
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5822559A (en) * 1996-01-02 1998-10-13 Advanced Micro Devices, Inc. Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US5961632A (en) * 1996-07-25 1999-10-05 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
US5852727A (en) * 1997-03-10 1998-12-22 Advanced Micro Devices, Inc. Instruction scanning unit for locating instructions via parallel scanning of start and end byte information
US5859992A (en) * 1997-03-12 1999-01-12 Advanced Micro Devices, Inc. Instruction alignment using a dispatch list and a latch list
US5940602A (en) * 1997-06-11 1999-08-17 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte length instructions for scanning of a number of RISC operations
US6105125A (en) * 1997-11-12 2000-08-15 National Semiconductor Corporation High speed, scalable microcode based instruction decoder for processors using split microROM access, dynamic generic microinstructions, and microcode with predecoded instruction information
US6134649A (en) * 1997-11-17 2000-10-17 Advanced Micro Devices, Inc. Control transfer indication in predecode which identifies control transfer instruction and an alternate feature of an instruction
US6167506A (en) 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location
EP0942357A3 (en) 1998-03-11 2000-03-22 Matsushita Electric Industrial Co., Ltd. Data processor compatible with a plurality of instruction formats
US6061786A (en) * 1998-04-23 2000-05-09 Advanced Micro Devices, Inc. Processor configured to select a next fetch address by partially decoding a byte of a control transfer instruction
US6094716A (en) * 1998-07-14 2000-07-25 Advanced Micro Devices, Inc. Register renaming in which moves are accomplished by swapping rename tags
US6240503B1 (en) 1998-11-12 2001-05-29 Advanced Micro Devices, Inc. Cumulative lookahead to eliminate chained dependencies
US6425069B1 (en) 1999-03-05 2002-07-23 International Business Machines Corporation Optimization of instruction stream execution that includes a VLIW dispatch group
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US6816962B2 (en) * 2002-02-25 2004-11-09 International Business Machines Corporation Re-encoding illegal OP codes into a single illegal OP code to accommodate the extra bits associated with pre-decoded instructions
US7484075B2 (en) * 2002-12-16 2009-01-27 International Business Machines Corporation Method and apparatus for providing fast remote register access in a clustered VLIW processor using partitioned register files
US7043626B1 (en) 2003-10-01 2006-05-09 Advanced Micro Devices, Inc. Retaining flag value associated with dead result data in freed rename physical register with an indicator to select set-aside register instead for renaming
KR102184099B1 (ko) * 2019-03-22 2020-11-27 노윤호 프리폼용 냉각 보조장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5788587A (en) * 1980-11-17 1982-06-02 Ibm Information processing system
JPS60129837A (ja) * 1983-12-19 1985-07-11 Matsushita Electric Ind Co Ltd 信号処理演算プロセツサ
JPS6391739A (ja) * 1986-10-06 1988-04-22 Matsushita Electric Ind Co Ltd 可変長命令解読装置
JPH02130635A (ja) * 1988-11-11 1990-05-18 Hitachi Ltd 複数命令同時処理方式

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4685080A (en) * 1982-02-22 1987-08-04 International Business Machines Corp. Microword generation mechanism utilizing separate programmable logic arrays for first and second microwords
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
JPH01255036A (ja) * 1988-04-04 1989-10-11 Toshiba Corp マイクロプロセッサ
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5788587A (en) * 1980-11-17 1982-06-02 Ibm Information processing system
JPS60129837A (ja) * 1983-12-19 1985-07-11 Matsushita Electric Ind Co Ltd 信号処理演算プロセツサ
JPS6391739A (ja) * 1986-10-06 1988-04-22 Matsushita Electric Ind Co Ltd 可変長命令解読装置
JPH02130635A (ja) * 1988-11-11 1990-05-18 Hitachi Ltd 複数命令同時処理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019169046A (ja) * 2018-03-26 2019-10-03 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
KR940003383B1 (ko) 1994-04-21
EP0415366A3 (en) 1992-03-11
DE69030905D1 (de) 1997-07-17
EP0415366A2 (en) 1991-03-06
JP2725450B2 (ja) 1998-03-11
KR910005156A (ko) 1991-03-30
EP0415366B1 (en) 1997-06-11
DE69030905T2 (de) 1998-01-29
US5233696A (en) 1993-08-03

Similar Documents

Publication Publication Date Title
JPH03156533A (ja) マイクロプロセッサ
US5465376A (en) Microprocessor, coprocessor and data processing system using them
JP2864421B2 (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
JP2679363B2 (ja) マイクロプロセッサ
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
JP2834837B2 (ja) プログラマブルコントローラ
JP2616182B2 (ja) データ処理装置
US11474944B2 (en) Zero latency prefetching in caches
JPH0128415B2 (ja)
JP2002149442A (ja) データプロセッサ
US5581774A (en) Data processor decoding and executing a train of instructions of variable length at increased speed
CN108139911B (zh) 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格
JPH07120278B2 (ja) データ処理装置
JP3510729B2 (ja) 命令実行方法および命令実行装置
JP2682217B2 (ja) マイクロプロセッサ
JP2847316B2 (ja) プロセッサ
JPH0769806B2 (ja) データ処理装置
JPS6217773B2 (ja)
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JPH03158929A (ja) データ処理装置
US20230015163A1 (en) Method of storing register data elements to interleave with data elements of a different register, a processor thereof, and a system thereof
JPH0524537B2 (ja)
JPH11338735A (ja) システムlsi
JP2696578B2 (ja) データ処理装置
JP2000105701A (ja) データ処理装置