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
Links
- 230000004044 response Effects 0.000 claims description 2
- 238000006073 displacement reaction Methods 0.000 description 29
- 238000000034 method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 102100033400 4F2 cell-surface antigen heavy chain Human genes 0.000 description 1
- 101000800023 Homo sapiens 4F2 cell-surface antigen heavy chain Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3875—Pipelining 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)を有する。
これら各ユニットは所定のパイプライン処理に従って並
列に動作している。
動し命令のフェッチやオペランドデータのリード/ライ
トを実行するバス制御ユニット(BCU)、BCUに対し命令
の先取りを要求し命令プリフェッチを実行する命令プリ
フェッチユニット(PEU)、プリフェッチされた命令を
デコードし命令実行に必要なデータ処理情報およびオペ
ランドアクセスに必要なオペランドアクセス情報を発生
する命令デコードユニット(IDU)、IDUからのオペラン
ドアクセス情報にもとづきオペランドアクセスのための
実効アドレスを計算する実効アドレス発生ユニット(EA
G)、計算された実効アドレスを実アドレスに変換しBU
に対しオペランドアクセスを要求するメモリ管理ユニッ
ト(MMU)、ならびにIDUからのデータ処理情報にもとづ
き命令を実行する命令実行ユニット(EXU)を有する。
これら各ユニットは所定のパイプライン処理に従って並
列に動作している。
ところで、近年のマイクロプロセッサは、プログラム
作成の容易さを重視した高機能化を目指している。すな
わち、1オペランド命令,2オペランド命令等の各種命令
に対して豊富な命令フォーマットを提供し、かつそれぞ
れのオペランドに対して独立なアドレシングモードを指
定可能とする機能をサポートしている。アドレシングモ
ードに対しても直接/間接モード,ディスプレースメン
トモード,インデックス付モード等の豊富なアドレシン
グモードをサポートしている。
作成の容易さを重視した高機能化を目指している。すな
わち、1オペランド命令,2オペランド命令等の各種命令
に対して豊富な命令フォーマットを提供し、かつそれぞ
れのオペランドに対して独立なアドレシングモードを指
定可能とする機能をサポートしている。アドレシングモ
ードに対しても直接/間接モード,ディスプレースメン
トモード,インデックス付モード等の豊富なアドレシン
グモードをサポートしている。
このように、多くの命令フォーマットおよびアドレシ
ングモードをサポートすると、それらの解読のための負
荷が重くなり、デコード処理時間が長くなる。すなわ
り、IDUは、PFUからの命令が有する命令フォーマットお
よび各オペランドのアドレシングモードを解読検出し、
その結果にもとづくデコードシーケンスに従ってデコー
ド処理を実行してデータ処理情報およびオペランドアク
セス情報を発生している。このため、命令フォーマット
および各オペラント毎のアドレシングモードの種類が多
くなるほどこれらを解読検出して命令デコードシーケン
スを決定するに要する時間が無視できなくなり、この分
データ処理情報およびアドレス生成情報の発生が遅れる
のである。これは、命令のパイプライン処理に乱れをも
たらし、マイクロプロセッサの性能を低下を招いてしま
うことになる。
ングモードをサポートすると、それらの解読のための負
荷が重くなり、デコード処理時間が長くなる。すなわ
り、IDUは、PFUからの命令が有する命令フォーマットお
よび各オペランドのアドレシングモードを解読検出し、
その結果にもとづくデコードシーケンスに従ってデコー
ド処理を実行してデータ処理情報およびオペランドアク
セス情報を発生している。このため、命令フォーマット
および各オペラント毎のアドレシングモードの種類が多
くなるほどこれらを解読検出して命令デコードシーケン
スを決定するに要する時間が無視できなくなり、この分
データ処理情報およびアドレス生成情報の発生が遅れる
のである。これは、命令のパイプライン処理に乱れをも
たらし、マイクロプロセッサの性能を低下を招いてしま
うことになる。
したがって、本発明の目的は、改良された命令デコー
ド処理機能を有するマイクロプロセッサを提供すること
になる。
ド処理機能を有するマイクロプロセッサを提供すること
になる。
本発明の他の目的は、豊富な命令フォーマットおよび
アドレシングモードをサポートしつつ命令デコード処理
時間を短縮した高性能のマイクロプロセッサを提供する
ことにある。
アドレシングモードをサポートしつつ命令デコード処理
時間を短縮した高性能のマイクロプロセッサを提供する
ことにある。
本発明によるマイクロプロセッサは、PFUからの命令
に対するデコード処理をプリデコーダユニットとメイン
デコーダユニットで実行し、これらの間にプリデコーダ
ユニットからの情報を一時ストアしてメインデコーダユ
ニットを与えるバッファを設けてこれら両デコーダユニ
ットをパイプライン方式で動作させたことを特徴として
いる。
に対するデコード処理をプリデコーダユニットとメイン
デコーダユニットで実行し、これらの間にプリデコーダ
ユニットからの情報を一時ストアしてメインデコーダユ
ニットを与えるバッファを設けてこれら両デコーダユニ
ットをパイプライン方式で動作させたことを特徴として
いる。
プリデコーダユニットは、PFUからの命令が有するオ
ペコードフィールドおよびアドレシングモードフィール
ドをそれぞれ受ける第1および第2のプリデコーダを有
している。第1のプリデコーダはオペコードフィールド
をデコードし、オペコードフィールドのバイト数および
オペランドの数を示すオペコード情報を生成し、第2の
プリデコーダはアドレシングフィールドをデコードし、
各オペランドのバイト数およびアドレシングモードを示
すアドレシングモード情報を生成する。これらオペコー
ド情報およびアドレシングモード情報はバッファに一時
ストアされる。バッファはPFUからの命令のオペコード
フィールドおよびアドレシングモードフィールドの情報
も一時ストアし、さらにPFUからの命令が有するディス
プレースメントやイミディエートデータも一時ストアす
る。メインデコーダユニットは、バッファから供給され
るオペコード情報およびアドレシングモード情報にもと
づきデコードシーケンスを決定し、この決定されたデコ
ードシーケンスにもとづきバッファからの他の情報に対
するデコード処理を実行してデータ処理情報およびオペ
ラントアクセス情報を生成する。メインデコーダユニッ
トによるかかる処理の実行中、プリデコーダユニット
は、第2オペランドのためのアドレシングモードのプリ
デコーダ処理又は次の命令に対するプリデコーダを実行
している。
ペコードフィールドおよびアドレシングモードフィール
ドをそれぞれ受ける第1および第2のプリデコーダを有
している。第1のプリデコーダはオペコードフィールド
をデコードし、オペコードフィールドのバイト数および
オペランドの数を示すオペコード情報を生成し、第2の
プリデコーダはアドレシングフィールドをデコードし、
各オペランドのバイト数およびアドレシングモードを示
すアドレシングモード情報を生成する。これらオペコー
ド情報およびアドレシングモード情報はバッファに一時
ストアされる。バッファはPFUからの命令のオペコード
フィールドおよびアドレシングモードフィールドの情報
も一時ストアし、さらにPFUからの命令が有するディス
プレースメントやイミディエートデータも一時ストアす
る。メインデコーダユニットは、バッファから供給され
るオペコード情報およびアドレシングモード情報にもと
づきデコードシーケンスを決定し、この決定されたデコ
ードシーケンスにもとづきバッファからの他の情報に対
するデコード処理を実行してデータ処理情報およびオペ
ラントアクセス情報を生成する。メインデコーダユニッ
トによるかかる処理の実行中、プリデコーダユニット
は、第2オペランドのためのアドレシングモードのプリ
デコーダ処理又は次の命令に対するプリデコーダを実行
している。
すなわち、本発明は命令に対するデコード処理が、命
令を有する命令フォーマットおよびアドレシングモード
を解読検出するという第1の処理とその結果により決定
されるデコードシーケンスに従ってデコード処理を実行
しデコード情報を生成するという第2の処理とからなる
ことに着目し、第1および第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は所定
のパイプライン処理に従って並列に動作する。
マイクロプロセッサ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に対応す
る。
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に対応する。
びアドレシングフィールドデータは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に供給する。
報およびアドレシングモード情報は、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バイト長の命令であ
る。
れる処理およびオペランドに対するアドレシングモード
に依存して変化する。第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にスト
アされていない。
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を制御する。
らの指示によって、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を
制御する。
およびフィールドデータ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を生成する。
は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のオペランドアクセス情報の生成が終了
する。
のアクセス情報を生成し始め、命令アライナ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による処理を全体の命令デコー
ド処理の長で見かけ上なくすことが可能となり、高速な
デコード処理が実現されている。
オペランドに対するアドレシングモードによってデコー
ドシーケンスおよび命令アライナに対する制御が変化す
るが、PDU140によって命令フォーマットおよびアドレシ
ングモードの解読,検出ならびに命令アライナの制御情
報を得ることによりこれらの制御情報の生成をMDU150か
ら解放しており、かつPDU140とMDD150とを両者の間にBF
F140を設けることでパイプライン処理で動作させてい
る。したがって、PDU140による処理を全体の命令デコー
ド処理の長で見かけ上なくすことが可能となり、高速な
デコード処理が実現されている。
上述の実施例において、クロックおよびの期間に
間連して説明したように、命令550におけるフィールド5
11,512は2度命令アライナ123から出力されている。こ
れを1度で済ますことができればデコード処理スピード
はさらに改善する。そのための構成を他の実施例として
第4図に示す。なお、第2図と同一機能部は同一番号で
符してその説明は省略する。
間連して説明したように、命令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からのデータをそれぞれ選択出力する。
の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に対するデータ処理情報およびオペランドアクセス情
報の生成はクロックで終了する。
施例のもとの対比して示されている。クロックで命令
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はそれ
ぞれ命令フォーマットの例を示す図である。
第1図で示したPFU,PDU,BFFおよびMDUの構成を示すブロ
ック図、第3図AおよびBはデコード処理動作を示すタ
イミングチャート、第4図は本発明の他の実施例による
PFUの構成を示すブロック図、第5図AおよびBはそれ
ぞれ命令フォーマットの例を示す図である。
Claims (3)
- 【請求項1】実行すべき命令をデコードし命令実行に必
要なデータ処理情報およびオペランドアクセス情報を生
成する命令デコードユニットを有するマイクロプロセッ
サにおいて、前記命令デコードユニットは、前記実行す
べき命令が有するオペコードフォーマットおよびオペラ
ンドに対するアドレシングモードを解読してオペコード
情報およびアドレシングモード情報を発生するプリデコ
ーダユニットと、これらオペコード情報およびアドレシ
ングモード情報とともに前記実行すべき命令内の前記デ
ータ処理情報およびオペランドアクセス情報の生成に必
要な情報を一時ストアするバッファと、このバッファか
らの情報にもとづき前記データ処理情報および前記オペ
ランドアクセス情報を生成するメインデコーダユニット
とを有し、前記プリデコーダユニットおよび前記メイン
デコーダユニットはパイプラインステージを構成してい
ることを特徴とするマイクロプロセッサ。 - 【請求項2】第1,第2および第3のバスを有し実行すべ
き命令が有するオペコードフィールド,アドレシングフ
ィールドおよび定数フィールドを前記第1,第2および第
3のバスにそれぞれ出力する命令アライナと、前記第1
のバスに結合され前記オペコードフィールドをデコード
する第1のデコーダと、前記第2のバスに結合され前記
アドレシングフィールドをデコードする第2のデコーダ
と、前記第1乃至第3のバスおよび前記第1,第2のデコ
ーダに結合されこれらの情報を一時ストアするバッファ
と、このバッファからの情報にもとづき前記命令を実行
するためのデータ処理情報およびオペランドアクセス情
報を生成する第3のデコーダとを備え、前記第1,第2の
デコーダによる処理と前記第3のデコーダによる処理と
をパイプライン化したことを特徴とするマイクロプロセ
ッサ。 - 【請求項3】前記オペコードフィールドのバイト長を検
出する手段と、この手段からの検出情報に応答して前記
第1のバスに出力された情報を前記第2のバスに転送す
る手段とをさらに有することを特徴とする請求項2記載
のマイクロプロセッサ。
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)
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)
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 | 株式会社日立製作所 | 複数命令同時処理方式 |
-
1990
- 1990-08-28 US US07/573,746 patent/US5233696A/en not_active Expired - Fee Related
- 1990-08-28 DE DE69030905T patent/DE69030905T2/de not_active Expired - Fee Related
- 1990-08-28 JP JP2226134A patent/JP2725450B2/ja not_active Expired - Lifetime
- 1990-08-28 EP EP90116506A patent/EP0415366B1/en not_active Expired - Lifetime
- 1990-08-28 KR KR1019900013277A patent/KR940003383B1/ko not_active IP Right Cessation
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) | データ処理装置 |