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

マイクロプロセッサ

Info

Publication number
JP2725450B2
JP2725450B2 JP2226134A JP22613490A JP2725450B2 JP 2725450 B2 JP2725450 B2 JP 2725450B2 JP 2226134 A JP2226134 A JP 2226134A JP 22613490 A JP22613490 A JP 22613490A JP 2725450 B2 JP2725450 B2 JP 2725450B2
Authority
JP
Japan
Prior art keywords
information
instruction
bus
operand
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.)
Expired - Lifetime
Application number
JP2226134A
Other languages
English (en)
Other versions
JPH03156533A (ja
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.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
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)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプロセッサに関し、特にパイプライ
ン方式のマイクロプロセッサにおける命令デコードユニ
ットの改良に関する。
マイクロプロセッサは、基本的に、バスサイクルを起
動し命令のフェッチやオペランドデータのリード/ライ
トを実行するバス制御ユニット(BCU)、BCUに対し命令
の先取りを要求し命令プリフェッチを実行する命令プリ
フェッチユニット(PEU)、プリフェッチされた命令を
デコードし命令実行に必要なデータ処理情報およびオペ
ランドアクセスに必要なオペランドアクセス情報を発生
する命令デコードユニット(IDU)、IDUからのオペラン
ドアクセス情報にもとづきオペランドアクセスのための
実効アドレスを計算する実効アドレス発生ユニット(EA
G)、計算された実効アドレスを実アドレスに変換しBU
に対しオペランドアクセスを要求するメモリ管理ユニッ
ト(MMU)、ならびにIDUからのデータ処理情報にもとづ
き命令を実行する命令実行ユニット(EXU)を有する。
これら各ユニットは所定のパイプライン処理に従って並
列に動作している。
ところで、近年のマイクロプロセッサは、プログラム
作成の容易さを重視した高機能化を目指している。すな
わち、1オペランド命令,2オペランド命令等の各種命令
に対して豊富な命令フォーマットを提供し、かつそれぞ
れのオペランドに対して独立なアドレシングモードを指
定可能とする機能をサポートしている。アドレシングモ
ードに対しても直接/間接モード,ディスプレースメン
トモード,インデックス付モード等の豊富なアドレシン
グモードをサポートしている。
〔発明が解決しようとする課題〕
このように、多くの命令フォーマットおよびアドレシ
ングモードをサポートすると、それらの解読のための負
荷が重くなり、デコード処理時間が長くなる。すなわ
り、IDUは、PFUからの命令が有する命令フォーマットお
よび各オペランドのアドレシングモードを解読検出し、
その結果にもとづくデコードシーケンスに従ってデコー
ド処理を実行してデータ処理情報およびオペランドアク
セス情報を発生している。このため、命令フォーマット
および各オペラント毎のアドレシングモードの種類が多
くなるほどこれらを解読検出して命令デコードシーケン
スを決定するに要する時間が無視できなくなり、この分
データ処理情報およびアドレス生成情報の発生が遅れる
のである。これは、命令のパイプライン処理に乱れをも
たらし、マイクロプロセッサの性能を低下を招いてしま
うことになる。
したがって、本発明の目的は、改良された命令デコー
ド処理機能を有するマイクロプロセッサを提供すること
になる。
本発明の他の目的は、豊富な命令フォーマットおよび
アドレシングモードをサポートしつつ命令デコード処理
時間を短縮した高性能のマイクロプロセッサを提供する
ことにある。
〔課題を解決するための手段〕
本発明によるマイクロプロセッサは、PFUからの命令
に対するデコード処理をプリデコーダユニットとメイン
デコーダユニットで実行し、これらの間にプリデコーダ
ユニットからの情報を一時ストアしてメインデコーダユ
ニットを与えるバッファを設けてこれら両デコーダユニ
ットをパイプライン方式で動作させたことを特徴として
いる。
プリデコーダユニットは、PFUからの命令が有するオ
ペコードフィールドおよびアドレシングモードフィール
ドをそれぞれ受ける第1および第2のプリデコーダを有
している。第1のプリデコーダはオペコードフィールド
をデコードし、オペコードフィールドのバイト数および
オペランドの数を示すオペコード情報を生成し、第2の
プリデコーダはアドレシングフィールドをデコードし、
各オペランドのバイト数およびアドレシングモードを示
すアドレシングモード情報を生成する。これらオペコー
ド情報およびアドレシングモード情報はバッファに一時
ストアされる。バッファはPFUからの命令のオペコード
フィールドおよびアドレシングモードフィールドの情報
も一時ストアし、さらにPFUからの命令が有するディス
プレースメントやイミディエートデータも一時ストアす
る。メインデコーダユニットは、バッファから供給され
るオペコード情報およびアドレシングモード情報にもと
づきデコードシーケンスを決定し、この決定されたデコ
ードシーケンスにもとづきバッファからの他の情報に対
するデコード処理を実行してデータ処理情報およびオペ
ラントアクセス情報を生成する。メインデコーダユニッ
トによるかかる処理の実行中、プリデコーダユニット
は、第2オペランドのためのアドレシングモードのプリ
デコーダ処理又は次の命令に対するプリデコーダを実行
している。
すなわち、本発明は命令に対するデコード処理が、命
令を有する命令フォーマットおよびアドレシングモード
を解読検出するという第1の処理とその結果により決定
されるデコードシーケンスに従ってデコード処理を実行
しデコード情報を生成するという第2の処理とからなる
ことに着目し、第1および第2の処理をそれぞれプリデ
コーダユニットおよびメインデコーダユニットで分担さ
せ、かつこれらユニットをパイプライン構成としたもの
である。したがって、本発明によればサポートする命令
フォーマットおよびアドレシングモードを豊富に揃えて
も、それらの解読検出時間を見かけ上なくすことが出来
る。かくして、パイプライン処理の乱れはほとんど生じ
ず、パイプライン方式のマイクロプロセッサの性能をフ
ルに発揮させることができる。
〔実施例〕
以下、図面を用いて本発明の実施例を詳細に説明す
る。
第1図は本発明の一実施例によるパイプライン方式の
マイクロプロセッサ100のブロック図である。バス制御
ユニット(BCU)110は、図示しないメモリや周辺I/Oユ
ニットが接続されたシステムバス190に対するバスサイ
クルを起動し、命令をフェッチしたり、オペランドデー
タのリード/ライトを実行する。命令プリフェッチユニ
ット(PFU)120はプリフェッチポインタ(図示せず)を
有し、このポインタの内容と共にBCU110に対し命令のプ
リフェッチ要求をバス1201を介して行なう。BUC110から
のプリフェッチされた命令は命令バス1101を介してPFU1
20に供給され一時ストアされる。PFU120は先取りした命
令をオペコードおよびオペランドに整列してバス1202に
出力する。バス1202上に出力された情報は本発明に従っ
てプリデコーダユニット(PDU)130に供給される。PDU1
30はオペコードにもとづきオペコードのバイト長および
オペランドの数をデコード検出しオペコード情報を発生
し、またオペコードにもとづきオペランドのバイト長お
よびアドレシングモードをデコード検出しアドレシング
モード情報を発生する。これら情報はバス1202上の他の
情報とともにバス1302を介してバッファ(BFF)140に一
時ストアされる。BFF140の出力はバス1401を介してメイ
ンデコーダユニット(MDU)150に供給される。MDU150は
上位オペコード情報およびアドレシングモード情報にも
とづきデコードシーケンスを決定し、所定のデコード処
理を実行してオペランドアクセスのためのオペランドア
クセス情報1502および命令実行のためのデータ処理情報
1501を生成する。オペランドアクセス情報1502は実効ア
ドレス発生ユニット(EAG)160に供給され、オペランド
アクセスのための実効アドレス1601が計算される。この
実効アドレス1601はメモリ管理ユニット170に供給さ
れ、実アドレスに変換される。変換の終了は信号1702に
よってMDU150に通知される。MMU170は変換した実アドレ
スとともにBCU110に対してオペランドアクセス要求を発
行する。MDU150からのデータ処理情報1501は実行制御ユ
ニット(EXU)180に供給され、EXU180はバス1801を介し
てBCU110との間でオペランドデータのやり取りを制御し
て要求されたデータ処理を実行する。これらBCU110,PFU
120,PDC130,MPU150,EAG160,MMU170およびEXU180は所定
のパイプライン処理に従って並列に動作する。
第2図を参照すると、PFU120,PDU130,BFF140およびMP
U150のより詳細なブロックが示されている。なお、図面
を簡単化するために、本発明と関係する部分のみが示さ
れている。BCU110からの命令バス1101は32ビット幅(す
なわち、4バイト幅)であり、したがって4バイト幅の
命令情報が一度のプリフェッチでバス1101上に転送され
る。バス1101は4ブロックの命令キュー(INSQ0−3)1
21−1乃至121−4に共通に接続されている。各命令キ
ューINSQ121は4バイトの記憶容量を有する。バス1101
からの4バイト幅の命令情報は、キューコントローラ12
4からのキューポインタ情報1241によって、命令キューI
NSQ0−3にこの順に一時ストアされる。例えばNISQ0(1
21−1)に未処理の命令情報がストアされているとき
は、バス1101からの次の命令情報は第2のINSQ1(121−
2)にストアされることになる。INSQ0−3(121−1乃
至121−4)からの各出力は16バイト幅の命令情報122と
して一つにまとめられ命令アライナ123に供給される。
命令アライナは2バイト幅のオペコードフィールド出力
バス126,2バイト幅のアドレシングフィールドバス127お
よび4バイト幅のデータ出力バス128を有する。命令の
オペコードフィールドおよびオペランドフィールドを含
めた全バイト数は固定でなく、その要求される処理およ
びアドレシングモードに依存して数バイトから十数バイ
トまで変化する。そこで、命令アライナ123はアライナ
コントロール125からのアラインポインタ情報1251にも
とづき、実行すべき命令のオペコードフィールドがバス
126上に、オペランドのアドレシングフィールドがバス1
27上に、オペランドのディスプレースメントやイミディ
エートデータがバス128上にそれぞれ処理されるよう
に、バス122からの命令に対する情報の整列を実行す
る。バス126,127および128が第1図のバス1202に対応す
る。
バス126および127に出力されたオペコードデータおよ
びアドレシングフィールドデータはPDU130内のオペコー
ドフィールド(OPF)プリデコーダ131およびアドレシン
グフィールド(AF)プリデコーダ132にそれぞれ供給さ
れる。OPFプリデコーダ131はオペコードデータにもとづ
きオペコードのバイト長およびオペランドの数を示すオ
ペコード情報133を生成し、AFプリデコーダ132はアドレ
シングフィールドにもとづきオペランドのバイト長およ
びアドレシングモードを示すアドレシングモード情報13
4を発生する。これら情報133,134はPFU120内のアライナ
コントローラ125およびキューコントローラ124に供給さ
れる。これによって、アライナコントローラ125は命令
アライナ123が出力すべきバイトの位置および数を制御
するアライナポインタ情報1251を生成し、キューコント
ローラ124はバス1101からの命令をストアすべきキューI
NSQの位置を制御する。キューポインタ情報1241を生成
する。情報133および134はBFF140のバッファレジスタ
(BFFR1およびBFFR3)141,143にそれぞれ一時ストアさ
れる。命令アライナ123からのオペコードデータおよび
アドレシングフィールドデータはさらに分岐バス1261,1
271を介してBFF140に供給されBFFR2,BFFR4にそれぞれ一
時ストアされる。命令アライナ123からのディスプレー
スメントやイミディエートデータはバス128を介してBFF
140に供給され、BFFR5に一時ストアされる。情報バス13
3,134、分岐バス1261,1271およびバス128が第1図のバ
ス1302に対応する。
BFF140のBFFR1,BFFR2の情報、すなわちオペコード情
報およびアドレシングモード情報は、MDU150内のデコー
ドシーケンスコントローラ151に供給され、これによっ
てコントローラ151は実行すべきデコードシーケンスを
直ちに決定しそのシーケンス情報1511,1512を発生す
る。シーケンス情報1511はOPFメインデコーダ152に供給
され、同デコーダにはBFFR2からオペコードデータも供
給されている。この結果、OPFメインデコーダは命令実
行に必要なデータ処理情報1501を生成し、EXU180に供給
する。BFFR4からのアドレシングフィールドデータはAF
メインデコーダ153に供給され、ディスプレースメント
やイミディエートデータはオペランドアクセス情報発生
器154に供給される。これらユニット153,154はシーケン
ス情報1512によって決定されたアドレシングシーケンス
に従って動作し、オペランドアクセス情報1502を生成し
EAG160に供給する。
前述したように、実行すべき命令のバイト数は要求さ
れる処理およびオペランドに対するアドレシングモード
に依存して変化する。第5図に命令フォーマットの例を
示す。同図(A)は2オペランド命令500であり、第1
オペランドのアドレシングモードはディスプレースメン
トモード、第2オペランドのアドレシングモードはディ
スプレースメント・インデックス付モードとなってい
る。より詳細には、この命令500は、2バイト長のオペ
コード(OP)フィールド501,1バイト長の第1オペラン
ド(OPND1)アドレシングモード(AM)フィールド502,4
バイト長のディスプレースメント503,1バイト長の第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に示すタイミングチャートを用いて説明する。説
明の便宜上、命令キューINSQ121に第5図Aの2オペラ
ンド命令500と第5図Bの1オペランド命令550がストア
されている。ただし、命令キューINSQは全16バイト幅で
あるので、1オペランド命令550の内ディスプレースメ
ント513の下位側2バイトはまだ命令キューINSQにスト
アされていない。
まず、命令アライナ123はアライナコントローラ125か
らの指示によって、16バイト幅のバス122上の情報のう
ち第1および第2バイトをバス126に第3および第4バ
イトをバス127上にそれぞれ出力する。すなわち、命令5
00のOPコードフィールド501がバス126に、OPND1・AMフ
ィールド502とディスプレースメント503の第1バイトが
バス127上に、システムクロックの1クロック期間そ
れぞれ出力される。これによって、OPFプリデコーダ131
はオペコード情報133を発生し、AFプリデコーダ132はア
ドレシングモード情報134を発生する。オペコード情報1
33はこの命令が2バイトのオペコードをもち、2つのオ
ペランドに対する命令であることを示す。アドレシング
モード情報134は第1オペランドがディスプレースメン
トモードのアドレシングが指定されており、そのディス
プレースメントが4バイト長であることを示す。なお、
AFプリデコーダ132に供給されたディスプレースメント
の第1バイトは無視される。これら情報133,134によ
り、アライナコントローラ125は、命令アライナ123が次
のクロックの期間でバス122上の情報の第4乃至第7
バイトをバス128上に出力するようにアライナポインタ
情報1251を制御し、キィーコントローラ124はINSQ0の第
1乃至第3バイトに次の命令がストアされることを許可
するようにキューポインタ情報1241を制御する。
次のクロックの始まり、PDU130からの情報133,134
およびフィールドデータ501,502はBFF140の対応するレ
ジスタにストアされ、一方、命令アライナ123はディス
プレースメント503をバス128上に出力する。このクロッ
ク期間、MDU150はBFF140からの情報にもとづき、デコー
ド処理を開始する。すなわち、OPFメインデコーダ152は
2つのオペランドに対する要求された処理を示すデータ
処理情報1501を生成し、AFメインデコーダ153は、第1
オペランドのためのディスプレースメント503の待ち状
態となるまでアクセス情報の生成処理を進める。また、
アライナコントローラ125は次のクロックで命令アラ
イナ123がバス122上の情報のうち第9,第10バイトをバス
127上に出力するように、アライナポインタ情報1251を
制御する。
次のクロックになると、ディスプレースメント503
はBFF140のBFFR5(145)にストアされ、一方OPND2イン
デックスフィールド504およびAMフィールド505が命令ア
ライナ123からバス127上に出力される。かくして、MDU1
50は第1オペランドのためのアクセス情報1502を生成し
終え、同情報をEAG160に供給する。一方、AFプリデコー
ダ132は、第2オペランドがディスプレースメント,イ
ンデックス付モードでありかつディスプレースメントの
バイト数が2であることを示すアドレシングモード情報
134を生成する。
次のクロックでは、MDU150は第2オペランドのため
のアクセス情報を生成し始め、命令アライナ123はディ
スプレースメント506を出力する。その次のクロック
でディスプレースメント506はBFFR5(145)を介してMDU
150に供給されるので、第2オペランドのアクセス情報1
502が生成されEAG160に供給される。命令アライナ123が
ディスプレースメント506を出力した時点で命令500に対
するデコード処理は完了する。したがって、アライナコ
ントローラ125は、クロックの期間で命令アライナ123
がバス122上の情報のうち第12,第13バイトをバス126上
に、第14,第15バイトをバス127上にそれぞれ出力するよ
うに、制御する。かくして、命令550のOPコードフィー
ルド510とインデックスフィールド511がOPFプリデコー
ダ131に供給され、AMフィールド512とディスプレースメ
ント513の第1バイトがAFプリデコーダ132に供給され
る。OPFプリデコーダ131からの情報はOPコードフィール
ドが1バイト長であり、かつオペランド数が1であるこ
とを示しており、これはアライナコントローラ125に供
給される。したがって、コントローラ125はインデック
スフィールド511がAFプリデコーダ132に転送されていな
いことを判別し、クロックでフィールド511と512がバ
ス127上に出力されるように命令アライナ123を制御す
る。一方、クロックの期間では、OPFメインデコーダ1
52による処理が実行され、オペランドに対する要求され
た処理を示すデータ処理情報が生成される。クロック
の期間でAFプリデコーダ132からのアドレシングモード
情報134およびフィールド511,512がMDU150に転送され
る。アドレシングモード情報134はディスプレースメン
ト513が4バイト長であることを示している。また、ク
ロック乃至の期間のうち、PFU120による命令の先取
りは実行されており、したがって、ディスプレース153
の残りの2バイトはINSQ0の第1および第2バイトにす
でにストアされている。したがって、クロックでディ
スプレース513が命令アライナ123から出力され、クロッ
クで命令550のオペランドアクセス情報の生成が終了
する。
このように、実行すべき命令のフォーマットおよび各
オペランドに対するアドレシングモードによってデコー
ドシーケンスおよび命令アライナに対する制御が変化す
るが、PDU140によって命令フォーマットおよびアドレシ
ングモードの解読,検出ならびに命令アライナの制御情
報を得ることによりこれらの制御情報の生成をMDU150か
ら解放しており、かつPDU140とMDD150とを両者の間にBF
F140を設けることでパイプライン処理で動作させてい
る。したがって、PDU140による処理を全体の命令デコー
ド処理の長で見かけ上なくすことが可能となり、高速な
デコード処理が実現されている。
上述の実施例において、クロックおよびの期間に
間連して説明したように、命令550におけるフィールド5
11,512は2度命令アライナ123から出力されている。こ
れを1度で済ますことができればデコード処理スピード
はさらに改善する。そのための構成を他の実施例として
第4図に示す。なお、第2図と同一機能部は同一番号で
符してその説明は省略する。
本実施例によるマイクロプロセッサでは、1バイト長
のOPコードをもつ命令はそのOPコードの最初の3ビット
がすべて“1"であることを利用している。すなわち、パ
ターン検出器400がバス1101に対して設けられており、
この検出器400は、バス1101上の4バイトのデータ夫々
の最初の3ビットがすべて“1"かどうかを検出し、“1"
ならばパターン検出フラグレジスタ401の対応するビッ
トをセットし、少なくとも一つが“0"ならばフラグレジ
スタ401の対応するビットをリセットしている。パター
ン検出フラグレジスタ401はしたがって16ビット構成で
ある。フラグレジスタ401の内容はフラグアライナ402に
供給され、命令アライナ1251に対するポインタ情報1251
に応答して出力すべきフラグデータ403を制御してい
る。すなわち、命令アライナ1251が2バイト幅のバス12
6の内の第1バイトバス126−1に出力するバス122のバ
イト位置に対応したフラグレジスタ401のビットデータ
が出力される。例えば、命令アライナ123がバス122上の
第12番目のバイトデータをバス126−1に出力する時
に、フラグレジスタ401の12番目のビットデータが出力
される。バス126の第2バイトバス126−2とバス127の
第1バイトバス127−1はマルチプレクサ(MPX)404に
供給され、また第1バイトバス127−1および第2バイ
トバス127−2はマイクロプロセッサ(MPX)405に供給
されており、これらMPX404,405の出力がバス127としてP
DU130に供給されている。フラグアライナ402からの出力
データ403が“1"のとき、MPX404,405はそれぞれバス126
−2,127−1からのデータを選択出力し、“0"のとき127
−1,127−2からのデータをそれぞれ選択出力する。
第3図Bに本実施例によるタイミングチャートが前実
施例のもとの対比して示されている。クロックで命令
500のOPコードフィールド501がバス126に出力されると
き、フラグアライナ402は“0"のデータ403を出力する。
したがって、バス127上にはAMフィールド502とディスプ
レースメント503の第1バイトが出力される。すなわ
ち、命令500に対する処理は第3図Aと同一である。ク
ロックで命令550のOPコードフィールド510がバス126
−1の出力されるとき、フラグアライナ402は“1"のデ
ータを出力する。したがって、バス126−2上のインデ
ックスフィールド511はMPX404を介してバス127上に、バ
ス127−1上のAMフィールド512はMPX405を介してバス12
7上にそれぞれ出力され、AFプリデコーダ132に供給され
る。すなわち、クロックでOPコードおよびアドレシン
グモードを指定するフィールド511,512はそれぞれ対応
するプリデコーダ131,132に供給される。この結果、ク
ロックでディスプレースメント513が出力され、命令5
50に対するデータ処理情報およびオペランドアクセス情
報の生成はクロックで終了する。
〔発明の効果〕 以上のように、本発明によれば命令フォーマットおよ
びアドレシングモードを解読・検出するデコーダ処理と
実行すべき処理を示すデータ処理情報およびオペランド
アクセス情報の生成を実行するデコーダ処理とをパイプ
ライン処理化することにより、デコード処理スピードを
低下させることなく豊富な命令フォーッマットおよびア
ドレシングモードをサポートする高性能のマイクロプロ
セッサが提供される。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図は
第1図で示したPFU,PDU,BFFおよびMDUの構成を示すブロ
ック図、第3図AおよびBはデコード処理動作を示すタ
イミングチャート、第4図は本発明の他の実施例による
PFUの構成を示すブロック図、第5図AおよびBはそれ
ぞれ命令フォーマットの例を示す図である。

Claims (3)

    (57)【特許請求の範囲】
  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
JP1-222057 1989-08-28
JP22205789 1989-08-28

Publications (2)

Publication Number Publication Date
JPH03156533A JPH03156533A (ja) 1991-07-04
JP2725450B2 true 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)

Families Citing this family (55)

* 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 命令バッファ装置
DE69231011T2 (de) * 1991-02-08 2000-09-28 Fujitsu Ltd., Kawasaki Cachespeicher zur Verarbeitung von Befehlsdaten und Datenprozessor mit demselben
US5452423A (en) * 1991-06-13 1995-09-19 Chips And Technologies, Inc. Two-ROM multibyte microcode address selection method and apparatus
EP0650612B1 (en) * 1992-03-25 1999-08-18 Zilog Incorporated 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
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
DE69427734T2 (de) * 1993-10-29 2002-05-23 Advanced Micro Devices, Inc. Linearadressierter Mikroprozessorcachespeicher
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
US5878245A (en) 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
DE69434669T2 (de) * 1993-10-29 2006-10-12 Advanced Micro Devices, Inc., Sunnyvale Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
DE69427265T2 (de) 1993-10-29 2002-05-02 Advanced Micro Devices, Inc. Superskalarbefehlsdekoder
EP1369775A1 (en) * 1993-11-05 2003-12-10 Intergraph Hardware Technologies Company Instruction cache associative cross-bar switch
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
DE69431998T2 (de) * 1993-11-05 2004-08-05 Intergraph Hardware Technologies Co., Las Vegas Superskalare Rechnerarchitektur mit Softwarescheduling
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
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
US5920713A (en) * 1995-10-06 1999-07-06 Advanced Micro Devices, Inc. Instruction decoder including two-way emulation code branching
US5819056A (en) * 1995-10-06 1998-10-06 Advanced Micro Devices, Inc. Instruction buffer organization method and system
US5809273A (en) * 1996-01-26 1998-09-15 Advanced Micro Devices, Inc. Instruction predecode and multiple instruction decode
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
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
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
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
JP7004905B2 (ja) * 2018-03-26 2022-01-21 富士通株式会社 演算処理装置及び演算処理装置の制御方法
KR102184099B1 (ko) * 2019-03-22 2020-11-27 노윤호 프리폼용 냉각 보조장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437149A (en) * 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
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
JPS60129837A (ja) * 1983-12-19 1985-07-11 Matsushita Electric Ind Co Ltd 信号処理演算プロセツサ
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
JPS6391739A (ja) * 1986-10-06 1988-04-22 Matsushita Electric Ind Co Ltd 可変長命令解読装置
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
JPH0769824B2 (ja) * 1988-11-11 1995-07-31 株式会社日立製作所 複数命令同時処理方式

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2725450B2 (ja) マイクロプロセッサ
JP2679363B2 (ja) マイクロプロセッサ
US5815724A (en) Method and apparatus for controlling power consumption in a microprocessor
JP2864421B2 (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
US6327647B1 (en) Method and apparatus for interfacing a processor to a coprocessor
US5218711A (en) Microprocessor having program counter registers for its coprocessors
US20090119489A1 (en) Methods and Apparatus for Transforming, Loading, and Executing Super-Set Instructions
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
JPH04260950A (ja) キャッシュメモリ装置
JPH02140830A (ja) 高速cpuにおけるマイクロ命令スタックのアドレス指定方法および装置
CN108139911B (zh) 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格
US12032961B2 (en) Vector maximum and minimum with indexing
EP0417013A2 (en) Data processor decoding and executing a train of instructions of variable length
EP1027641B1 (en) Computer processor and method for data streaming
US11789742B2 (en) Pipeline protection for CPUs with save and restore of intermediate results
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JPH03233630A (ja) 情報処理装置
JP2682217B2 (ja) マイクロプロセッサ
US6925548B2 (en) Data processor assigning the same operation code to multiple operations
US6670895B2 (en) Method and apparatus for swapping the contents of address registers
CN111813446A (zh) 一种数据加载和存储指令的处理方法和处理装置
JPH02306361A (ja) マイクロプロセッサ
CN111813447B (zh) 一种数据拼接指令的处理方法和处理装置
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JP2696578B2 (ja) データ処理装置