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

マイクロプロセッサ

Info

Publication number
JP2682217B2
JP2682217B2 JP2226135A JP22613590A JP2682217B2 JP 2682217 B2 JP2682217 B2 JP 2682217B2 JP 2226135 A JP2226135 A JP 2226135A JP 22613590 A JP22613590 A JP 22613590A JP 2682217 B2 JP2682217 B2 JP 2682217B2
Authority
JP
Japan
Prior art keywords
instruction
branch
information
branch destination
aligner
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
JP2226135A
Other languages
English (en)
Other versions
JPH03156534A (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
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 JPH03156534A publication Critical patent/JPH03156534A/ja
Application granted granted Critical
Publication of JP2682217B2 publication Critical patent/JP2682217B2/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
    • 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/3804Instruction prefetching for branches, e.g. hedging, branch folding

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプロセッサに関し、特にパイプライ
ン方式のマイクロプロセッサにおける条件分岐命令の処
理に関する。
〔従来の技術〕
命令の先取りおよびパイプライン処理はマイクロプロ
セッサの処理効率の向上手段として多用されている。し
かしながら、マイクロプロセッサが条件分岐命令に出く
わすと、その処理効率は格段に低下する。条件分岐命令
は、同命令の前に実行される命令によって変更され得る
プロセッサ実行状態が条件分岐命令が指定する分岐条件
と一致するかどうかでプログラムの流れを変えるかどう
かを制御するものである。したがって、プロセッサ実行
状態が確定するまでは分岐するかしないかの情報は確定
されない。
分岐するかしないかの情報が確定する間も条件分岐命
令の次にある一つ又は複数の命令は先取りされる。これ
ら命令は、分岐しないことが確定した場合は、有効な命
令として処理されるか、分岐することが確定すると全く
無効なのもとなり、新ためて分岐先の命令からフェッチ
し直さなければならない。この間、パイプラインの流れ
は完全に停止してしまうことになる。
そこで、分岐するかしないかが確定する間に、条件分
岐命令の次にある命令だけでなく分岐先の命令もフェッ
チしておき、分岐するかしないかの確定に応じて一方の
命令を選択してデコードすることが提案されている。か
かる構成によれば、分岐することが確定しても、分岐先
の命令はすでにフェッチされており、パイプライン処理
の停止を最小限に止めることができる。
〔発明が解決しようとする課題〕
しかしながら、ここで問題となるのが、プロセッサに
よる1度の命令フェッチがワード単位で実行されるのに
対し、分岐先の命令を含め各命令のビット長は一定でな
くその命令による処理機能および各オペランドに対する
アドレシングモードに依存していることである。例えば
32ビットを1ワードとして処理するマイクロプロセッサ
では1回の命令プリフェッチで4バイトの命令データを
フェッチする。したがって、分岐先の命令のプリフェッ
チは分岐先アドレスを含む4バイト単位で実行される。
一方、各命令は前述した理由により数バイトから十数バ
イトまでの幅を取り得る。このため、分岐先の命令の先
頭バイト目が分岐先アドレスに対する命令フェッチで取
り込まれた4バイト命令データの第1バイト目に位置す
るとは限らない。
命令は通常オペコードフィールドとアペランドフィー
ルドを有し、オペコードフィールドは命令デコードユニ
ットのオペコードフィールドデコーダで解読されて命令
実行ユニットに渡され、一方、オペランドフィールドは
上記ユニットのアドレシングフィールドデコーダで解読
されてオペランドアクセス部に渡される。前述のよう
に、分岐先命令の先頭バイトがプリフェッチされた4バ
イトデータの第1バイト目に位置するとは限らないた
め、分岐先命令のオペコードフィードおよびオペランド
フィールドがそれぞれ対応するデコーダに供給されるか
どうか検出する必要が生じ、その結果、分岐確定による
分岐先命令のデコード開始が遅れることになる。
したがって、本発明の目的は、分岐先命令のデコード
開始を早めたマイクロプロセッサを提供することにあ
る。
〔課題を解決するための手段〕
条件分岐命令の分岐条件が確定する前に分岐先命令に
対する命令フェッチサイクルを起動し複数バイトの命令
情報を分岐先アドレスの下位ビットを無視してフェッチ
する手段と、フェッチされた複数バイトの命令情報を一
時ストアするバッファ手段と、分岐先アドレスの下位ビ
ットの情報に応答して、バッファ手段にストアされてい
る情報の中から出力すべきバイト情報を選択する手段
と、当該選択されたバイト情報を分岐確定に応答して命
令デコーダに転送する手段とを備えることを特徴とす
る。
すなわち、本発明は分岐先アドレスを利用して、命令
デコーダに転送すべきブランチバッファ内のバイトデー
タを選択し、当該選択したバイトデータを命令デコーダ
に供給している。したがって、分岐することが確定した
時点ではブランチバッファ内の命令デコーダに転送すべ
きバイトはすでに選択しており、分岐先命令のデコード
処理は分岐確定により直ちに開始される。
〔実施例〕
以下、図面を参照して本発明の実施例を詳細に説明す
る。
第1図は本発明の一実施例によるマイクロプロセッサ
100のブロック図である。バス制御ユニット(BCU)110
は、メモリや周辺I/O装置(図示せず)が接続されたシ
ステムバス170に対してバスサイクルを起動し、命令を
フェッチしたりデータのリード/ライトを実行する。BC
U110によってフェッチされた命令は命令バス1101を介し
てプリフェッチ(PFU)120に供給され一時ストアされ
る。PFU120およびBCU110はコントロール信号線1201を介
して命令プリフェッチ要求および同要求に対するアクノ
レッジ信号等をやり取りする。PFU120からの命令はバス
1202を介して命令デコードユニット(IDU)130に供給さ
れる。IDU130は命令をデコードし、命令実行のためのデ
ータ処理情報をバス1302を介して命令実行ユニット(EX
U)160に供給し、またオペランドアクセスに必要なアク
セス情報をバス1301を介して実行アドレス発生ユニット
(EAG)140に供給する。EAG140はオペランドアクセス情
報1301にもとづきオペランドデータの実効アドレスを計
算生成し、バス1401を介してメモリ管理ユニット(MM
U)150に供給する。MMU150は実効アドレスを実アドレス
に変換し、バス1501を介してBCU110に対しオペランドア
クセス要求を発行する。MMU150はまた信号1502によって
実アドレスへの変換終了をIDU130に通知する。EXU160は
IDU130からのデータ処理情報にもとづき、BCU110との間
でデータをやり取りしながら命令を実行する。条件分岐
命令の実行に際しては、同命令によって指定された分岐
条件が成立する。すなわち、分岐することが確定する
と、分岐成立信号(VTAKEN)1601をアクティブレベルに
し、一方、分岐条件が不成立のとき(分岐しないことが
確定したときは分岐不成立信号(UTAKEN)1602をアクテ
ィブレベルとする。これら信号1601,1602はPFU120,IDU1
30に供給される。MMU150は、さらにアクセスすべきデー
タが条件分岐命令による分岐先命令のときは、分岐先ア
ドレスの下位2ビットの情報を制御線1503を介してPFU1
20に供給する。上記各ユニットはパイプライン処理に従
って動作する。
本実施例によるマイクロプロセッサ100では、1ワー
ドが32ビット、すなわち4バイト構成とされている。し
たがって、1回の命令プリフェッチで4バイトの命令情
報が同時にアクセスされ、4バイト幅の命令バス1101を
介してPFU120に供給される。一方、命令やデータをスト
アしているメモリ側では、1バイトのデータに対し1つ
のアドレスが割り付けられている。したがって、1回の
命令プリフェッチで4バイトの命令情報がアクセスされ
ることは、メモリへのアクセスアドレスの下位2ビット
(最下位ビットとその次のビット)のデータを無視して
メモリへのアクセスが実行されることを意味している。
第2図を参照すると、PFU120は4ポケット分の命令の
キュー(INSQ0−INSQ3)203を有する。各ポケット当り
のキューINSQは4バイト分の容量を有する。命令キュー
INSQ1−3はバス1101に共通に接続されている。一方、
命令キューINSQ0はマルチプレクサ(MPX)204の出力に
接続されている。MPX204の一方の入力はバス1101に接続
され、他の入力はブランチバッファ201に接続されてい
る。MPX204は分岐確定信号2021が“1"のときブランチバ
ッファ2201を選択し、“0"のときはバス1101選択する。
信号2021は分岐検出器202によって制御されるが、この
検出器202はVTAKEN1601およびUTAKEN1602が共にインア
クティブのとき又はUTAKEN1602がアクティブのとき信号
2021を“0"とし、VTAKEN1601がアクティブのときは“1"
とする。したがって、通常の処理状態ではMPX204はバス
1101を選択しており、条件分岐命令の実行にもとづき分
岐確定時のみブランチバッファ201を選択する。このバ
ッファ201は4バイト容量(1ポケット)である。バス1
101上の命令のキューINSQ0−3へのストア位置はキュー
コントローラ205からのキューポインタ情報2051によっ
て制御される。プリフェッチコントローラ200はPFU120
の全体の制御を司り、またBCU110との情報のやり取りを
する。特に、BCU110が分岐先命令に対する命令フェッチ
にもとづく命令情報をバス1101上に転送したことを制御
線1201を介して通知すると、プリフェッチコントローラ
200は信号線2001をアクティブにして、転送されてきた
命令情報をブランチバッファにストアさせる。分岐先命
令以外の命令フェッチ通知については、コントローラ20
0は信号線2002をアクティブにし、これに応答してキュ
ーコントローラ205は命令キューINSQ0−3をこの順で選
択するようにポインタ情報2051を制御する。
命令キューINSQ0−3にストアされた命令情報(全16
バイト)はバス2031として一つにまとめられ、命令アラ
イナ207に供給される。命令アライナ207はアライナコン
トローラ206からのアライナポインタ情報2061に応答し
て所定位置にある1つ以上のバイトデータを選択して出
力する。すなわち、実行すべき命令には1オペランドを
対象とするものがあれば2オペランドを対象とするもの
もある。また、各オペランドに対しても豊富なアドレシ
ングモードをサポートとしている。一方、IDU130はEXU1
60へのデータ処理情報1302を生成するオペコードフィー
ルドデコーダ部とEAG140へのオペランドアクセス情報13
01を生成するオペランドフィールドデコーダ部とを有し
ており、各デコー部に、それぞれ所望のフィールドデー
タを供給する必要がある。それ故、命令アライナ207は
ポインタ情報2061にもとづきバス2031上の16バイトデー
タからオペランドフィールドデータをバス2071,1202−
1を介してIDU130のオペランドフィールドデコーダ部
へ、オペコードフィールドデータをバス2072,1202−2
を介してIDU130のオペコード,フィールドデータ部へ供
給する。IDU130からはアライナコントローラ206に対し
バス2031上のどのバイトデータを選択すべきかの情報13
03が与えられており、これによってポインタ情報2061が
制御される。情報1303はキューコントローラ205にも与
えられ、これによってIDUに引き取られたデータの位置
をコントローラ205は検出し、次の命令を同位置にスト
アする。
ブランチバッファ201にストアされた4バイトの命令
情報はバス2011を介してブランチアライナ208に供給さ
れる。アライナ208もオペランドフィールド出力バス208
2とオペランドフィールド出力バス2081を有しており、
ブランチアライナコントローラ209からのポインタ情報2
09によって各バス2082,2081に出力すべきバス2011上の
データ位置を制御する。ポインタ情報2091は、MMU150か
らの情報1503にもとづきコントローラ209によって生成
させる。
IDU120はさらに二つのマルチプレクサ(MPX)210,211
を有する。分岐確定信号2021が“0"のとき、MPX210,211
はバス2071,2072をバス1202−1,1202−2にそれぞれ接
続し、“1"のときバス2081,2082をバス1202−1,1202−
2にそれぞれ接続する。
以下、第3図も参照して条件分岐命令をIDU130が受け
た後の動作について詳述する。PFU120からの条件分岐命
令をIDU130がデコードすると、IDU130はEXU160に対し分
岐条件を示す情報1302を供給し、EAG140に対し分岐先ア
ドレス生成のための情報1301を供給する。このとき、EX
U160は条件分岐命令の前の命令が乗算命令や除算命令の
ように処理に時間を要する命令であったためにビジー状
態であるとすると、分岐条件の判別処理は保留されるこ
とになる。各ユニットがパイプライン処理で動作してい
ることから、条件分岐命令の後に続く命令はプリフェッ
チされ命令キュー(INSQ)203にストアされることにな
る。
一方、MMU150が分岐先アドレスを生成すると、BCU110
に対し分岐先命令のフェッチ要求を発生し、またPFU120
のブランチアライナコントローラ209に分岐先アドレス
の下位2ビットの情報1053を供給する。分岐先アドレス
が“××…×001B"(Bは2進数を示す)とすると、“0
1B"が情報1503としてコントローラ209に供給する。BCU1
10は分岐先命令のフェッチ要求に応答してそのためのバ
スサイクルを起動するわけであるが、前述のとおり、BC
U110はアクセスアドレスの下位2ビットを無視した命令
フェッチサイクルを起動する。すなわち、第3図に示す
ように、“××…××000B"から“××…××011B"の4
バイトがフェッチされる。この4バイトデータはバス11
01を介してPFU120に転送され、このとき、信号2001がア
クティブとなるので、ブランチバッファ201にストアさ
れる。この結果、ブランチバッファ201にストアされる
4バイトのデータは、第3図に示すように分岐先命令30
1の前の命令300のイミディエートデータの一部(1バイ
ト)と分岐先命令301のオペコードフィールド301−1
(2バイト)およびアドレシングモードフィールド301
−2(1バイト)である。ブランチアライナコントロー
ラ209は“01B"の情報1503を受けるので、ブランチバッ
ファ201のストアデータのうち第1バイトは無効ないも
のであることを判定する。これによって、ポインタ情報
2091を制御し、ブランチアライナ208に分岐先命令301の
オペコードフィールド301−1およびアドレシングモー
ドフィールド301−2をバス2082−2,2081にそれぞれ出
力させる。勿論、アライナ208によって出力させるバッ
ファ201のバイト位置は情報1503によって変化される。
EXU160は実行中の処理を完了とすると、分岐条件が成
立するかどうかの処理を開始する。その処理の結果、分
岐成立が検出されたとすると、EXU160はVTAKEN1601をア
クティブレベルとする。これに応答して分岐検出器202
は信号2021を“1"とする。したがって、MPX211,210はブ
ランチアライナ208の出力バス2082,2081をIDU130へのバ
ス1202−2,1202−1にそれぞれ接続する。かくして、分
岐先命令301のオペコードフィールド301−1およびアド
レシングモードフィールド301−2がIDU130の対応する
デコード部に供給され、命令301のデコード処理が開始
する。“1"の信号2021によってMPX204はブランチバッフ
ァ201を選択し、又はキューコントローラ205はINSQ0に
バッファ201の出力をストアさせ、残りの命令キューINS
Q1−3にすでにストアされている命令を無効とする。ア
クティブレベルのVTAKEN信号1601はPFU120にも供給され
ているので、PFU120はBCU110に対し分岐先アドレス後の
アドレスにストアされている命令のプリフェッチを要求
する。これによって、アドレス“××…××100B"から
“××…×11B"の4バイトデータが命令キューINSQ1に
ストアされる。かかるストアデータの第1,第2バイト
は、分岐先命令301のオペランドアクセスに用いられる
ディスプレースメント301−3であり、第3,第4バイト
は分岐先命令301の次の命令302のオペコードフィールド
302−1である。IDU130は分岐先命令301のオペコードフ
ィールド301−1およびアドレシングモードフィールド3
01−2をデコードすることにより、この命令301は1オ
ペランドで命令であってオペランドアドレシングが2バ
イトのディスプレースメントモードであることを知るの
で、アライナコントローラ206に命令キューINSQ1から第
1,第2バイトを選択するよう指示する。分岐確定後は信
号2021は“0"に戻るので、分岐先命令301のディスプレ
ースメント301−3がバス2071,1202−1を介してIDU130
に供給される。この結果、IDU130は分岐先命令301の実
行に必要な情報1301,1302を生成し対応するユニットに
渡す。この後、命令301の次の命令302のオペコードフィ
ールド302−1がバス2072,1202−2を介してIDU130に供
給される。なお、命令キューINSQ0にブランチバッファ2
01の内容を転送するのは、同バッファに分岐先命令301
の次の命令302の一部がストアされる場合もあり得るか
らである。このような場合、ブランチアライナ208を介
してIDU130に供給された302の一部は無効とされるの
で、その一部をINSQ0にストアさせておいて次のデコー
ド処理サイクルで使用している。
一方、分岐不成立が検出されてUTAKEN1602がアクティ
ブとされると、命令キュー203にすでにストアされてい
る条件分岐命令の後の命令のデコードが開始されること
になる。
このように、本実施例によれば、分岐することが確定
した後の分岐先命令のデコードが直ちに開始され、しか
も、分岐先アドレスを何ら気にすることなく自由に設定
することができる。
命令の中にはそのオペコードフィールドが1バイト長
のものもある。もし、このような命令が分岐先命令とし
てプログラムされると、そのオペランドフィールドの一
部が第2図の構成ではブランチアライナ205からの経路
ではバス1202−1側に転送されなくなり、命令キューIN
SQ0を使用せざるを得なくなる。その結果、その分、デ
コード処理が遅くなる。かかる問題点を解決した構成を
他の実施例として第4図に示す。第4図では第2図と同
一機能部は同じ番号で示されており、また第2図の相違
点をおもに示している。
本実施例は、命令のオペコードフィールドが1バイト
長である場合、その上位3ビットがすべて“1"であるこ
とを利用したものである。パターン検出器400は、ブラ
ンチバッファ201への命令書込指令線2001が発生された
とき活性化され、バス1101上の各バイトの上位3ビット
を判別する。上位3ビットがすべて“1"のときは4ビッ
ト構成のフラグレジスタ401の対応するビットを“1"に
セットし、1つでも“0"のときはレジスタ401の対応す
るビットを“0"にセットする。レジスタ401の内容はフ
ラグレジスタアライナ402に供給され、これはブランチ
アライナ208へのポインタ情報2091に応答して、アライ
ナ208から出力されるバイトのうちの最下位のバイトに
対応するレジスタ401のビットの内容をデータ403として
出力する。ブランチアライナ208は4バイト分の出力バ
スを有しており、第4図は各バイト毎にバス2085−1,20
85−3,2085−4が示されている。このうち、バス2085−
1,2085−2はまとめられてオペコードフィールド出力バ
ス2082となる。一方、バス2085−2と2085−3はマプチ
プレクサ(MPX)404に供給され、バス2085−3と2085−
4はマルチプレクサ(MPX)405に供給され、MPX404,405
の出力がまとめられてオペランドフィールド出力バス20
81として導出されている。MPX404,405はデータ403が
“1"のとき2085−2,2085−3をそれぞれ選択し、“0"の
とき2085−3,2085−4をそれぞれ選択する。
第5図に示すように分岐先命令501のオペコードフィ
ールド501−1が1バイト長であって、そのアドレスが
“××…××01B"とすると、前述したように、ブランチ
バッファには命令501の前の命令の一部と命令501の3つ
のフィールド501−1乃至−3がストアされる。このと
き、パターン検出器400によって、フラグレジスタ401の
内容は、少なくとも第2ビット401−2が“1"である
“××1×”となる。分岐成立が確定してVTAKEN1601が
アクティブレベルとなると、ブランチアライナ208の出
力バス2085−1,−2,−3にはそれぞれフィールド501]
−1,−2,−3が現われ、フラグレジスタアライナ402に
はレジスタ401の第2ビット401−2のデータ“1"が現わ
れる。したがって、MPX404,405が働き、バス2082にはフ
ィールド501−1,−2が出力され、バス2081にはフィー
ルド501−2,−3が出力される。かくして、分岐先命令5
01のオペランドフィールドとしてのインデックスフィー
ルド501−2,アドレシングモードフィールド501−3はID
U130のオペランドフィールドデコーダ部に同時に転送さ
れる。なお、IDUのオペランドフィールドデコーダ部に
転送されるフィールド501−2は無効なものとして扱わ
れる。
本発明は上記実施例に限定されないことは無論であ
る。例えば、ブランチバッファ201を2ポケット以上の
容量とすることにより、分岐確定後の命令プリフェッチ
開始をその分遅らせることができる。また、16ビットを
1ワードとするときは、分岐先アドレスの最下位ビット
が情報1503として使用される。
〔発明の効果〕
以上のとおり、本発明によれば、分岐することが確定
したと同時に分岐先命令のデコード処理を開始すること
ができ、より高速高性能のマイクロプロセッサが提供さ
れる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図は
第1図に示したPFUの内部ブロック図、第3図は本実施
例による条件分岐命令デコードの動作を示す図、第4図
は本発明の他の実施例によるPFUの一部を示すブロック
図、第5図は第4図の動作を示す図である。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】条件分岐命令の分岐条件が確定する前に分
    岐先命令に対する命令フェッチサイクルを起動し複数バ
    イトの命令情報を分岐先アドレスの下位ビットを無視し
    てフェッチする手段と、フェッチされた複数バイトの命
    令情報を一時ストアするバッファ手段と、前記分岐先ア
    ドレスの前記下位ビットの情報に応答して、前記バッフ
    ァ手段にストアされている情報の中から出力すべきバイ
    ト情報を選択する手段と、当該選択されたバイト情報を
    分岐確定に応答して命令デコーダに転送する手段とを備
    え、更に前記バッファ手段にストアされている情報が所
    定長のオペコードフィールドであるとき、その状態を示
    すフラグと前記分岐先アドレスの前記下位ビット情報に
    より前記出力すべきバイト情報のオペコードフィールド
    とオペランドフィールドを整列する手段を備えることを
    特徴とするマイクロプロセッサ。
  2. 【請求項2】条件分岐命令をプリフェッチした後にプリ
    フェッチした命令を一時ストアする第1のストア手段
    と、前記条件分岐命令の分岐条件が確定する前に分岐先
    アドレスの下位ビットを無視してプリフェッチした複数
    バイトの分岐先命令を一時ストアする第2のストア手段
    と、前記第1のストア手段に結合され前記第1のストア
    手段にストアされている命令のオペコードフィールドと
    オペランドフィールドを整列して出力する第1のアライ
    ナと、前記第2のストア手段に結合され、前記分岐先ア
    ドレスの下位ビットの情報に応答して、前記前記第2の
    ストア手段にストアされている前記分岐先命令のオペコ
    ードフィールドとオペランドフィールドに仮整列して出
    力する第2のアライナと、前記第2のアライナにストア
    されている情報が所定長のオペコードフィールドである
    とき、その状態を示すフラグと前記分岐先アドレスの前
    記下位ビット情報により前記第2のアライナの出力をオ
    ペコードフィールドとオペランドフィールドに再整理し
    て出力する整理手段と、前記条件分岐命令の実行により
    分岐するときは前記整理手段の出力を命令デコーダに供
    給し、分岐しないときは前記第1のアライナの出力を前
    記命令デコーダに供給する選択手段とを備えることを特
    徴とするマイクロプロセッサ。
  3. 【請求項3】前記第2のストア手段の内容を分岐すると
    き前記第1のストア手段に書き込む手段を更に備えるこ
    とを特徴とする請求項1記載のマイクロプロセッサ。
JP2226135A 1989-08-28 1990-08-28 マイクロプロセッサ Expired - Lifetime JP2682217B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-222058 1989-08-28
JP22205889 1989-08-28

Publications (2)

Publication Number Publication Date
JPH03156534A JPH03156534A (ja) 1991-07-04
JP2682217B2 true JP2682217B2 (ja) 1997-11-26

Family

ID=16776444

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US5381532A (ja)
EP (1) EP0471888B1 (ja)
JP (1) JP2682217B2 (ja)
KR (1) KR940000968B1 (ja)
DE (1) DE69032897T2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
JP2536726B2 (ja) * 1993-07-07 1996-09-18 日本電気株式会社 マイクロプロセッサ
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
US5590358A (en) * 1994-09-16 1996-12-31 Philips Electronics North America Corporation Processor with word-aligned branch target in a byte-oriented instruction set
US5732235A (en) * 1996-01-25 1998-03-24 International Business Machines Corporation Method and system for minimizing the number of cycles required to execute semantic routines
US5898888A (en) * 1996-12-13 1999-04-27 International Business Machines Corporation Method and system for translating peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a computer system
US5881260A (en) * 1998-02-09 1999-03-09 Hewlett-Packard Company Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction
US6598154B1 (en) * 1998-12-29 2003-07-22 Intel Corporation Precoding branch instructions to reduce branch-penalty in pipelined processors
EP1050811A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Branching in a computer system
US7647486B2 (en) 2006-05-02 2010-01-12 Atmel Corporation Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5282149A (en) * 1975-12-29 1977-07-09 Fujitsu Ltd Instruction address control system
JPS55118170A (en) * 1979-03-06 1980-09-10 Mitsubishi Electric Corp Memory access device
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
JPS5729152A (en) * 1980-07-28 1982-02-17 Fujitsu Ltd Information processor prefetching instruction
EP0109655B1 (en) * 1982-11-17 1991-07-24 Nec Corporation Instruction prefetching device with prediction of a branch destination address
JPS6051948A (ja) * 1983-08-31 1985-03-23 Hitachi Ltd 情報処理装置
US4742451A (en) * 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
CA1233270A (en) * 1985-03-18 1988-02-23 Vojin G. Oklobdzija Register selection mechanism and organization of an instruction prefetch buffer
JPS61262849A (ja) * 1985-05-17 1986-11-20 Hitachi Ltd 情報処理装置
DE3752100T2 (de) * 1986-01-07 1997-12-11 Nippon Electric Co Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung
EP0258453B1 (en) * 1986-02-28 1993-05-19 Nec Corporation Instruction prefetch control apparatus
JPS6393041A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
US4893234A (en) * 1987-01-15 1990-01-09 United States Department Of Energy Multi-processor including data flow accelerator module
JPS6473423A (en) * 1987-09-14 1989-03-17 Matsushita Electric Ind Co Ltd Instruction look-ahead controller
JPH0769812B2 (ja) * 1987-12-29 1995-07-31 富士通株式会社 データ処理装置
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
US5113515A (en) * 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer

Also Published As

Publication number Publication date
KR940000968B1 (ko) 1994-02-07
EP0471888A2 (en) 1992-02-26
EP0471888B1 (en) 1999-01-13
KR910005155A (ko) 1991-03-30
JPH03156534A (ja) 1991-07-04
US5381532A (en) 1995-01-10
DE69032897D1 (de) 1999-02-25
EP0471888A3 (en) 1992-03-11
DE69032897T2 (de) 1999-08-26

Similar Documents

Publication Publication Date Title
JP2864421B2 (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
EP0380859B1 (en) Method of preprocessing multiple instructions
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
US5737590A (en) Branch prediction system using limited branch target buffer updates
KR100267097B1 (ko) 슈퍼스칼라 프로세서에서 간단한 비의존성 파이프라인 인터록 제어로서 판독되는 지연된 저장 데이터
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
US4701844A (en) Dual cache for independent prefetch and execution units
JP2834837B2 (ja) プログラマブルコントローラ
JP2550213B2 (ja) 並列処理装置および並列処理方法
CA1256216A (en) Program switching with vector registers
US5845323A (en) Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time
US6434689B2 (en) Data processing unit with interface for sharing registers by a processor and a coprocessor
US6088781A (en) Stride instruction for fetching data separated by a stride amount
JPH03191461A (ja) データ処理システム
KR100266424B1 (ko) 롬(rom)용량을 저감한 데이타 프로세서
US6003126A (en) Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
JPH0496825A (ja) データ・プロセッサ
EP0772819B1 (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
US6460132B1 (en) Massively parallel instruction predecoding
JP2682217B2 (ja) マイクロプロセッサ
US6470444B1 (en) Method and apparatus for dividing a store operation into pre-fetch and store micro-operations
JP2003525476A (ja) プログラムの命令を実行するための装置及び方法
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
US5897654A (en) Method and system for efficiently fetching from cache during a cache fill operation