JPH0242533A - レジスタ・ハザード制御回路 - Google Patents

レジスタ・ハザード制御回路

Info

Publication number
JPH0242533A
JPH0242533A JP9402389A JP9402389A JPH0242533A JP H0242533 A JPH0242533 A JP H0242533A JP 9402389 A JP9402389 A JP 9402389A JP 9402389 A JP9402389 A JP 9402389A JP H0242533 A JPH0242533 A JP H0242533A
Authority
JP
Japan
Prior art keywords
register
instruction
hazard
address calculation
signal
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.)
Pending
Application number
JP9402389A
Other languages
English (en)
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
Priority to JP9402389A priority Critical patent/JPH0242533A/ja
Publication of JPH0242533A publication Critical patent/JPH0242533A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、パイプライン処理を行うマイクロプロセッサ
のレジスタハザード制御に関し、特にレジスタハザード
の回避制御に関する。
〔従来の技術〕
従来のハザード制御回路の説明に入る前に、本発明のハ
ザード制御回路が適用されるマイクロプロセッサの機能
および構成について説明する。
まず、前記マイクロプロセッサの構成を第5図に示す、
501は、バスからデータのリード/ライドを行なうバ
スインターフェース部(以後、ECUと呼ぶ。)である
。502は、先取りされた命令コードを保持するブリフ
ェッチ部(以後PFUと呼ぶ。)である。503は、ブ
リフェッチ部の命令を解読(以後、デコードと呼ぶ)す
るデコード部(以後IDUと呼ぶ。)である。504は
、命令デコード部の指示によりアドレス計算を行なうア
ドレス計算部(以後EAGと呼ぶ。)である、505は
、命令実行部(以後EXUと呼ぶ。)である。
各ユニットは、パイプラインで動作する。命令の実行の
流れに従って、各ユニットの関係を説明する。
まず、命令はPFUによって先取りされ(以後ブリフェ
ッチと呼ぶ)、IDUの要求に従ってIDUに送られる
。IDUは、その命令をデコードし、EXUとEAGに
必要な情報を渡す、EAGにはメモリ・オペランドのア
ドレス計算に必要な情報を渡し、EXUには命令の処理
に関する情報を渡す。情報を受は取ったEAGは、メモ
リ・オペランドのアドレス計算を行ない、BCUに対し
てメモリ・アクセス要求を出力する。ECUが、そのア
ドレスのデータ・アクセスを終了し、オペランド・デー
タがそろった時点で、EXUは命令の実行を開始する。
上述したマイクロプロセッサの各ユニットのうち、本発
明と関連のあるユニットであるIDU。
EAG、EXUの内部構成図を第6図に示す。
IDUは、PFUによって先取りした命令コードをデコ
ードする601のデコーダと、その結果を格納する60
2の命令デコードキューを有している。デコード結果の
情報は、2つの目的量こ使う。
1つは、メモリ・オペランドのアドレス計算に用いる情
報であり、EAGに渡して実際のオペランド・アドレス
の計算のために用いる。もう1つは、データの処理に関
する情報であり、EXUに渡して、EXU内のALUな
どでのデータの処理に用いる。情報内容は、その命令が
処理するデータの位置(汎用レジスタやメモリ・オペラ
ンドの指定)や、加算、減算、論理和などの演算タイプ
を指定している。この情報は、前記命令デコードキュー
に格納され、順次EXUに渡される。
EAGは、複数のアドレス計算情報を蓄えるアドレス計
算レジスタ(E A T R)を有している。
アドレス計算情報として、ベース・アドレスを格納する
103のレジスタ(gATRo)、デスティネーション
・データを格納する606のレジスタ(EATRI)、
インデックス・データを格納スる607のレジスタ(E
ATR2)がある。
EATROへのデータ転送は、IDUとEAG間を結ぶ
105のBAババスよって行われる。EATRにアドレ
ス情報が転送された後、アドレス計算の開始がIDUの
指示によって行われる。このアドレス計算開始信号は、
第6図の116の信号であり、5TEA信号と呼ぶ。
EXUは、汎用レジスタ、ALU、いくつかの制御レジ
スタで構成されている。EXU全体の制御は、603の
マイクロROMに存在するマイクロプログラムで行って
いる。EXUの基本的な命令処理シーケンスは、IDU
の命令デコードキューの情報を受は取り、汎用レジスタ
からのデータのリード、実行、汎用レジスタへのデータ
のライトでひとつの命令の実行シーケンスを終了する。
データの流れを説明すると、102の汎用レジスタ(以
後GRと呼ぶ)からリードしたデータは、104のMD
ババス介して101のALUに転送され、ALUから出
力される演算結果は、MDババス介して1020GRに
転送される。
EXUは、命令の実行が終了すると608の命令実行終
了信号(ENDM)をIDUに発行する。
しかし、最近のマイクロプロセッサの命令体系は、高級
言語の命令をサポートするようになり、この場合には、
先に示した基本シーケンス処理ではなく、複雑にマイク
ロプログラム処理を行っている。
また、上述の処理を行う各ユニ、)はパイプラインで動
作するため、次のような矛盾が発生する可能性がある。
IDUが現在デコードしている命令がメモリ・オペラン
ド・アクセスのある命令では、GRの内容をベース・ア
ドレスとして使用する。そのとき、先行する命令(命令
デコードキューにある、または現在EXUで処理中であ
る)によって、IDUが読み出したいGRが変更される
場合がある。この矛盾をレジスタ・ハザードと呼ぶ。こ
のとき、IDUは、EXUで処理が終了するまで命令の
デコードを待ち合わせて、レジスタ・ハザードを回避す
る。レジスタ・ハザードの回避処理は、まずIDUのデ
コーダによってレジスタ・ハザードが検出され、EXU
の処理終了が通知されるまでそのレジスタの読み出しを
待ち合わせることによって行われる。
レジスタ・ハザードの回避処理における各ユニットの動
作を第4図を参照して説明する。
第4図は命令■■■■の処理を行う例である。
命令■は、デスティネーション・オペランドにレジスタ
が指定されている。命令■は、メモリ・オペランドが指
定されていて、そのベース・レジスタが命令■のレジス
タと同一である。命令■■のIDUの処理は、先行する
命令に依存しない。
IDUは、命令■の処理においてレジスタ・ハザードを
検出し、命令■がEXUで処理が終了するまで待ち合わ
せを行う。EXUでの処理が終了するとIDUは、命令
■の処理を再開する。
では、本発明に関連した上述のレジスタ・ノーザード回
避処理において、従来のレジスタ・ハザード回避回路を
第1図に示す、101は32ビツトのALU、102は
32個の32ビツトのGR,103は32ビツトのEA
TROである。
従来例で示したアドレス計算レジスタのうち、本実施例
では、本発明に関連するEATROのみを取り上げて説
明する。104は32ビツトのMDババス105は32
ビツトのBAババスある。また、112はIDUが発行
するアドレス計算のための汎用レジスタの読み出し信号
(BASERD)、113はBASERD信号で読み出
すレジスタ番号を指定する5ビツトの信号(GRNUM
(4−0))であり、BASERD信号がアクティブな
期間有効である。608はENDM信号である。
また、701は、レジスタハザード検出制御回路であり
、IDUのデコーダからレジスタ・ノ\ザードが検出さ
れたときアクティブになる120(’)RHz信号と、
BASERD信号と、ENDM信号を入力として、EX
UのGRに対して702のGRRD信号を出力する。G
RRD信号は、RHz信号がインアクティブなときは、
BASERD信号をそのまま出力し、RHz信号がアク
ティブなときは、RH2信号がインアクティブになるま
で、つまりGRの値が確定するまでGRRD信号をアク
ティブにしてGRの内容を読み出し続ける。
IDUは、デコード処理においてアドレス計算に使用す
るGRの読み出しを行う場合、GRNUM(4−0)信
号で指定されたレジスタが先行する命令によってその内
容が書き換えられる可能性がある場合にレジスタ・ハザ
ードを検出する。IDUは、EXUに対してGRRD信
号をアクティブにして、読み出しの待ち合わせを行う。
EXUは、命令デコードキューから命令を取り出して実
行を開始し、命令実行終了でENDM信号を発行する。
IDUは、待ち合わせを行っている命令、つまり、今後
先行する命令によって読み出したいレジスタの内容が変
更される可能性がなくなる命令の実行終了のENDM信
号が通知されると、ある一定期間後にRHz信号をイン
アクティブにしてレジスタ・ハザードを解除する。そし
て、指定されたGRの内容を読み出し、BAババス介し
てEATROへ転送する。一定期間後とは、ENDM信
号が出力されてから確実にGRへのデータの書き込みが
行われるまでの期間である。
この処理を第8図のタイミング・チャートに示す。
〔発明が解決しようとする課題〕
第4図で示したように、レジスタ・ハザードが発生する
と、IDUのデコードは停止し、EXU。
EAGのIDLE状態を招き、マイクロプロセッサのパ
イプライン処理が大きく乱れる。そのためレジスタ・ハ
ザードの解除は、より速く行われることが望まれる。
しかし、上述した従来例のように、レジスタ・ハザード
が発生すると、レジスタ・ハザードの発生を招いている
命令がEXUにおいて処理が終了してからレジスタ・ハ
ザードが解除される。特に最近のマイクロプロセッサの
命令体系は、高級言語をサポートするようになり、EX
Uでの処理が複雑になってきている。そのため、EXU
の処理において、演算結果がGRに書き込まれても処理
が継続するような場合がある。また1つの命令で複数゛
のレジスタを書き換える命令などもある。この場合には
、演算結果によって、レジスタ・ハザードの対象となる
GRの内容が確定してもEXUの実行が終了するまでの
レジスタ・ハザードは解除されない。
レジスタ・ハザードの処理は、ユニット間に渡る待ち合
わせであり、IDUはEXUの処理が終了するまでのレ
ジスタ・ノ・ザードを解除できず、次のデコード処理に
移ることができない。また、EAGもそのE A T 
ROの内容が確定するまでオペランドのアドレス計算を
開始することができない。
このように、レジスタ・ハザードは、マイクロプロセッ
サのパイプライン処理を乱す最大の要因として挙げられ
、ハザードの発生は、より高速化が要求されているマイ
クロプロセッサのスピード・ネックにつながる。
〔課題を解決するための手段〕
パイプライン処理を行うマイクロプロセッサにおいて、 命令のオペランド・データを処理する演算器と、前記演
算器からの演算結果を保持する複数のレジスタと、 命令解読時に、オペランド・アドレス計算に使用する前
記レジスタの内容が先行する命令の実行結果に依存する
ことを検出するレジスタ・ハザード検出回路と、 前記演算器からの演算結果が書き込まれる前記レジスタ
のレジスタ番号とオペランドのアドレス計算に使用され
る前記レジスタのレジスタ番号とが一致しているか否か
を比較する比較器と、前記演算器からの演算結果または
前記レジスタが保持している内容とを選択する選択回路
と、前記選択回路から選択されたデータを保持する実効
アドレス計算レジスタとを具備し、前記命令解読時に、
前記レジスタ・ハザード検出回路において、オペランド
のアドレス計算に使用するレジスタをレジスタ・ハザー
ドとして検出し、前記比較器から一致が検出された場合
、前記選択回路によって前記演算器からの演算結果を前
記実効アドレス計算レジスタへ転送することを特徴とす
るレジスタ・ハザード制御回路を有している。さらに、
前記演算器および前記レジスタを用いてオペランド・デ
ータを処理する場合に、前記演算器から前記レジスタに
書き込まれる内容が無効なオペランドのアドレス計算用
データであることを検出する検出部を有し、前記コンパ
レータから一致が検出されても、前記検出部の指示によ
って、前記実効アドレス計算レジスタへの転送を待ち合
わせるように制御することを特徴とするレジスタ・ハザ
ード制御回路を構成することもできる。
このように、命令のデコード処理中アドレス計算のため
の汎用レジスタの読み出し時にレジスタ・ハザードが検
出された場合、先行する命令の実行がその処理時におい
てその汎用レジスタへの書き込みが行われると同時に、
アドレス計算レジスタへの書き込みが行われる。
〔実施例〕
次に、本発明を図面に基づいて説明する。
本発明が適用されるマイクロプロセッサの基本構成は、
すでに従来例のなかで説明したマイクロプロセッサと同
様である。
第1図は前記マイクロプロセッサの基本構成のうち本発
明の一実施例として用いられたレジスタ・ハザード制御
回路である。
101は32ビツトのALU、102は32個の32ビ
ットGR,103は32ビットEATRO,104は3
2ビツトMDバス、105は32ビツトBAバス、10
6はALUとBAバス間に置かれ、BAババス駆動する
ALU用BAバスドライバ、107はORとBAバス間
に置かれ、BAババス駆動するGR用BAバスドライバ
 108は、レジスタ・ハザード検出制御回路である。
109は、従来例と同じENDM信号である。110は
、ALU用BAバスドライバを駆動するよう指示するA
LURDSEL信号であり、111は、OR用BAバス
ドライバを駆動するよう指示するGRRDSEL信号で
ある。両者ともレジスタ・ハザード検出制御回路から出
力される信号である。
112は、従来例と同じBASERD信号であり、11
3は、従来例と同じGRの番号を示すGRNUM信号で
ある。またレジスタ・ハザード検出制御回路に対する入
力信号として、従来例と同じIDUのデコーダでレジス
タ・ハザードが検出されたことを通知する120のRH
2信号と、RH2信号がアクティブとなった命令がEX
Uで実行を開始されたことを通知する114のRH2F
信号と、ENDM信号およびBASERD信号がある。
レジスタ・ハザード検出制御回路は、GRの読み出しで
BASERD信号をEXUに通知するとき、RH2信号
がアクティブな場合には、RH2F信号がアクティブに
なったところでALURDSEL信号をアクティブにす
る。RHZ 1.q号がインアクティブな場合には、G
RRDSEL信号をアクティブにする。また、115は
、アドレス計算のための加算器であり、IDUから通知
される従来例と同じ116の5TEA信号によってアド
レス計算が開始される。
次に、第1図のレジスタ・ハザード制御回路の動作説明
を行う。
まずは、通常の処理、つまり、レジスタ・ハザードが発
生していない場合について説明する。
IDUが一つの命令のデコード処理で、アドレス計算に
GRを使用する場合、EXUのGRの読み出しを行う。
このとき、IDUは、GRNUM信号と一緒にEXUに
対してGRRDSEL信号を発行する。EXUは、指定
されたGRの内容なりAバスに出力し、EATROにて
転送する。IDUは、EATROの内容がそろったとこ
ろで5TEA信号を発行する。
一方、本発明のレジスタ・ハザード制御回路を採用して
のレジスタ・ハザード発生時の制御を説明する。
IDUは、GRの読み出しでレジスタ・ハザードを検出
するとEXUに対してBASERD信号をアクティブに
して、読み出しの待ち合わせを行う。EXUは、命令デ
コードキューから命令を取り出し実行を開始し、命令実
行終了でENDM信号を発行する。IDUは、待ち合わ
せ、を行っている命令、つまり、今後先行する命令によ
って読み出したいレジスタの内容が変更される可能性が
なくなる命令の実行が開始されると、RH2F信号をセ
ットする。これによって、ALURDSEL信号がアク
ティブになる。EXUからのENDM信号が通知される
と、ALUからの出力データがBAババス乗り、EAT
ROに転送される。同時にレジスタ・ハザードを解除し
て、IDUは、デコード処理を再開する。
第2図に、本実施例のレジスタ・ハザード制御回路のタ
イミングチャートを示す。
以上説明したように、レジスタ・ハザードが検出された
場合、EATROへの書き込みデータは、GRから読み
出すのではなく、ALUから出力されるデータを直接書
き込んでいる。
上記実施例では、EXUの処理は、データのリード、実
行、データのライトの基本シーケンスで処理が終了する
命令に関する例であった。
−力木発明の第2実施例では、前実施例で説明した第1
図のレジスタ・ハザード制御回路を用いてEXUの基本
シーケンスでは処理できない命令の処理について説明す
る。
1命令で64ビツトのデータ処理を行う演算命令の場合
、EXUの処理シーケンスは、データのリード、実行、
下位のデータのライト、上位のデータのライトの4クロ
ツクで処理が終了する。
ライト・オペランドがレジスタの場合、2回に渡って出
力さり、2つのレジスタの書き込みが行われる。ALU
から2回に渡って2つのレジスタのデータが出力される
この64ビツト命令の実行によって書き換えられるレジ
スタのためにレジスタ・ハザードが検出された場合は、
実施例1のようにENDM信号だけでレジスタ・ハザー
ドを解除しては、ALUから出力さhたどちらのデータ
においてショートパスの駆動を行うかを判定できない、
つまり、ENDM信号は、実行の終了、つまりライト・
オペランドの書き込み動作の1クロツク前に出力される
ためである。
そこで、実施例2で、64ビツト処理の命令に対する本
発明のレジスタ・ハザード制御回路の動作を説明する。
まfIDUは、デコーダによる命令デコード処理におい
て64ビツト処理命令であることを検出する。この情報
は64ビツト処理命令がEXUで実行が終了するまでデ
コーダ内に保持している。
IDUは、2つのGRを書き換える64ビツト処理命令
をデコードした後、次の命令のデコードで64ビツト処
理命令とのレジスタ・ハザードを検出する。
例えば、32個のGRのうちGRIとGR2を書き換え
る命令であるとし、レジスタ・ハザードとなるレジスタ
をGR2であるとする。ここでIDUのデコーダから発
行するRHz信号は、64ビツト処理命令によって書き
換えられるGR2のレジスタ・ハザードが発生している
ことを認知している。IDUは、BASERD信号をア
クティブにした状態で待ち合わせを行い、EXUで64
ビツト処理命令の実行が開始されると、RH2F信号を
セットする。これによって、ALURDSEL信号がア
クティブになる。EXUからENDM信号が通知される
とALUは、まずGRIのデータ、次にGR2のデータ
のを出力する。IDUはENDM信号に対してGR2の
データが出力されるままでRHz信号の解除を遅らせて
、ALUからGR2のデータが出力されたときにRHz
信号を解除してBAババスそので一夕を乗せて、EAT
ROに転送する。つまり、’RHz信号をいつ解除する
かによって、ALUの出力データのEATROへの書き
込みの制御を行う。
第3図に、上述した実施例2のショートパス回路のタイ
ミングチャートを示す。
以上説明したように、BXUの本発明のショートパス回
路は、EXUの基本処理の命令だけでなく、基本シーケ
ンスでは処理が終了しない命令であることをIDUのデ
コーダで検出し、レジスタ・ハザードの解除を制御する
ことによって実現することかできる。
第9図は前記マイクロプロセッサの基本構成のうち本発
明の第3の実施例として用いられたレジスタ・ハザード
制御回路である。
1101は32ビ、トのALU、1102は32個の3
2ビ、トのGR,1103は32ピツ)EATRO11
104は32ビツトのMDババス1105は32ビツト
BAバス、1106はALUとBAバス間に置かれ、B
Aババス駆動するALU用BAバスドライバ、1107
はGRとEAバス間に置かれ、BAババス駆動するGR
用BAバスドライバである。1108は、ALU用BA
バスドライバを駆動するかGR用BAバスドライバを駆
動するかを制御するバス制御回路である。また、110
9は汎用レジスタ番号のコンパレータであり、1117
のEXUから出力されるGR3EL(4−0)信号と、
1113のIDUから出力されるGRNUM(4−0)
信号とを比較して一致した場合に1118のGRMAT
CH信号をアクティブにする。1119は、EXUの処
理で出力されるGR3EL信号で示す汎用レジスタへの
書き込み信号(G RW R)である。1112は、従
来例と同じBASERD信号であり、GRNUM信号で
示す汎用レジスタの読み出し信号である。また、112
0は、従来例で述べたように、IDUのデコーダでレジ
スタ・ハザードが検出されたことを示すRH2信号であ
り、1114は、RH2信号がアクティブになり、先行
する命令がEXUで実行を開始したことを示すRH2F
信号である。上述したGRMATCH信号、GRWR信
号、BASERD信号、RH2信号およびRHzF信号
は、バス制御回路への入力信号である。111Oは、A
LU用BAバスドライバを駆動するよう指示するALU
RDSEL信号であり、1111は、GR用BAバスド
ライバを駆動するよう指示するGRRDSEL信号であ
る。両者ともバス制御回路から出力される信号である。
バス制御回路は、BASE’RD信号がアクティブでか
つ、RH2信号およびRHzF’信号がアクティブな場
合、つまり、よりUが読み出したいレジスタ番号がレジ
スタハザードの発生で読み出しを待ち合わせている場合
、EXUのGRWR信号が発行された時の書き込みのレ
ジスタ番号が一致していると、ALURDSEL信号を
出力する。これ以外の場合、例えば、レジスタハザード
が発生していない場合や発生していてもレジスタ番号が
一致していない場合等では、G’RRDSEL信号を出
力する。また、1115は、アドレス計算のための加算
器であり、IDUから通知される従来例と同じ1116
の5TEA信号によってアドレス計算が開始される。
次に、本しジス°り・ハザード制御回路の動作説明を行
う。
まずは、通常の処理、つまり、レジスタ・ノ1ザードが
発生していない場合について説明する。
IDUが、一つの命令のデコード処理で、アドレス計算
にGRを使用する場合には、EXUのGRを読み出す。
このとき、IDUは、GRNUM信号と一緒にバス制御
回路に対してBASERD信号を出力する。バス制御回
路は、レジスタノ・ザードが発生していないため、GR
RDSEL信号を出力し、GRNUM信号で指定したG
Rの内容がBAババス出力され、EATROに転送さh
る。
IDUは、EATROの内容がそろったところで5TE
A信号を発行する。
一方、本発明のレジスタ・ハザード制御回路を採用して
のレジスタ・ハザード発生時の制御を説明する。
IDUは、GRの読み出しでレジスタ・ハザードを検出
するとRH2信号をアクティブにして、EXUに対して
BASERD信号を出力し、読み出しの待ち合わせを行
う。IDUは、EXUにおいて、待ち合わせを行ってい
る命令、つまり、今後先行する命令によって読み出した
いレジスタの内容が変更される可能性がなくなる命令の
実行が開始されると、RHzF信号をセットする。EX
Uは、その命令処理を開始し、ALUからの出力データ
をMDババス由でGR8EL信号で指定したGRに書き
込む時に、GRWR信号をアクティブにする。同時に、
コンパレータに入力さhているレジスタ番号が一致して
いると、ALURDSEL信号がアクティブになる。こ
れで、ALUからの出力データがBAババス乗り、EA
TROに転送される。同時にレジスタ・ハザードを解除
して、IDUは、デコード処理を再開する。
第10図に、本実施例のレジスタ・)Sザード制御回路
のタイミングチャートを示す。
以上説明したように、レジスタ・ハザードが検出された
場合、EATROへの書き込みデータは、GRから読み
出すのではなく、ALUから出力されるデータが直接書
き込まれる。またその書き込みはGRに書き込まれるの
と同時に行われる。
第9図の実施例で採用した命令は、命令実行処理におい
て1つのGRへの書かれるデータは常に求められるデー
タが書き込まれる例であった。
一方、第4の実施例では、第9図の実施例で説明したレ
ジスタ・ハザード制御回路を用いて、1つの命令処理内
でデスティネーションとなるGRがテンポラリ・レジス
タとして使用され、後に演算結果が書き込まれる場合の
処理について説明する。
このような命令の実行で書き換えられるレジスタによっ
てレジスタ・ハザードが検出された場合は、正しい演算
結果が揃ったところで実施例1で示したバス制御回路に
それを通知してALU用バスドライバを駆動するよう制
御する。
では、本実施例として、このような命令処理に対する本
発明のレジスタ・ハザード制御回路の動作を説明する。
IDUは、この演算命令がGRを書き換えることをデコ
ードした後、次の命令のデコードでレジスタ・ハザード
を検出したとする。
IDUは、BASERD信号をアクティブにした状態で
待ち合わせを行い、EXUで除算命令の実行が開始され
ると、RHzF信号をセットする。
EXUは、命令処理上必要なテンポラリ・データをGR
に書き込む。このとき、コンパレータのGRMATCH
信号はアクティブになるが、EXUは、ALURDSE
L信号をマスクするSELMASK信号をバス制御回路
に対して出力し、ALU用BAバスドライバの駆動が行
われないようにする。その後、GRに求めるALUから
の結果データが書き込まれると、それと同時にSELM
ASK信号をインアクティブにしてALU’RDSEL
信号を出力し、ALUの出力データをBAババス乗せて
、EATROに転送する。
第11図に、上述した実施例2のタイミングチャートを
示す。
以上説明したように、本発明のレジスタ・ハザード制御
回路は、EXUの命令処理中であってもレジスタ・ハザ
ードとなっているGRの内容の書換えがおこなわれた時
点で、IDUにおいてGRが読み出されレジスタ・ノ1
ザードが解除される。
さらに実施例2で示した命令のように、命令実行処理内
でGRがテンポラリ・レジスタとして使用され、同一な
GRの書き込みが複数回行われる場合でもバス制御回路
に対して1つのマスク信号を通知することによって実現
することができる。
〔発明の効果〕
以上説明したように本発明は、レジスタ・ノ・ザードが
検出した場合、ALUからの演算結果をMDババス出力
すると同時に、BAババスも出力することによって、汎
用レジスタへの書き込みと同時に実行アドレス計算レジ
スタの書き込みを行うことができる。さらに、書き込み
レジスタ番号とレジスタ・ハザードによる読み出し待ち
合わせレジスタ番号の比較を行うことによって、そのレ
ジスタに書き込まれた時点でBAババス出力することが
できる。つまり、EXUの処理において複数のGRを書
き換える命令でも、EXUの処理が終了するのを待たず
に書き込みが行われた時点でレジスタ・ハザードを解除
することができる。これによって、IDUのデコードの
再開やEAGにおけるアドレス計算の開始も速くなり、
さらに、各ユニットのIDLE状態となる時間を削減す
ることになる。
最近では、マイクロプロセッサの命令体系が高級言語サ
ポート指向にあり、1つの命令処理が複雑になってきて
いる。そのため、1命令の実行時間も長くなり、命令の
実行終了を待たずにレジスタの内容が確定したところで
レジスタ・ノーザードを解除することができる本発明が
より効果的である。
以上のことから、本発明は、パイプライン処理を行うマ
イクロプロセッサにおいてパイプライン動作を乱すレジ
スタ・ハザードをより速く解除することができ、マイク
ロプロセッサの性能向上を図ることができる。
【図面の簡単な説明】
第1図は本発明の第1実施例のブロック図、第2図は本
実施例のタイミング・チャート、第3図は第2実施例の
タイミング・チャート、第4図はレジスタ・ハザード回
避処理における各ユニットの動作、第5図はマイクロ・
プロセッサの構成図、第6図はIDU、EXU、EXU
の構成図、第7図は従来のレジスタ・ハザード解除回路
のブロック図、第8図は従来のタイミングチャート、第
9図は第3実施例のブロック図、第10図は本実施例の
タイミングチャート、第11図は第4実施例のブロック
図である。 代理人 弁理士  内 原   晋 第 図 茅 図 半7 圓

Claims (3)

    【特許請求の範囲】
  1. (1)命令を解読し、オペランドのアドレス計算に用い
    る情報とオペランド・データの処理に関する情報をつく
    り、また命令解読時に、オペランド・アドレス計算に使
    用する汎用レジスタの内容が先行する命令の実行結果に
    依存することをレジスタ・ハザードとして検出する命令
    デコーダと、前記命令デコーダの情報を用いて命令のオ
    ペランド・データを処理する演算器と、前記演算器から
    の出力データ等を保持する前記汎用レジスタを含む汎用
    レジスタ群と、オペランド・アドレスの計算を行うため
    の情報を保持する実効アドレス計算レジスタと、前記演
    算器に接続され、前記演算器からの出力データを前記実
    効アドレス計算レジスタに転送するための制御を行うア
    ドレス計算バスドライバと、前記アドレス計算バスドラ
    イバから前記実効アドレス計算レジスタへのデータ転送
    に用いるアドレス計算用バスと、前記レジスタ・ハザー
    ドが検出されたか否かによって前記アドレス計算バスド
    ライバの駆動を制御するレジスタ・ハザード検出制御回
    路とを具備し、前記命令デコーダの処理時に前記レジス
    タ・ハザードが検出された場合、命令の実行が終了して
    前記演算器から結果データが出力されると同時に、前記
    レジスタ・ハザード検出制御回路によって前記バスドラ
    イバを駆動し、前記アドレス計算用バスに転送し、前記
    実効アドレス計算レジスタへ書き込みを行うことを特徴
    とするレジスタ・ハザード制御回路。
  2. (2)命令のオペランド・データを処理する演算器と、
    前記演算器からの演算結果を保持する複数のレジスタと
    、命令解読時に、オペランド・アドレス計算に使用する
    前記レジスタの内容が先行する命令の実行結果に依存す
    ることを検出するレジスタ・ハザード検出回路と、前記
    演算器からの演算結果が書き込まれる前記レジスタのレ
    ジスタ番号とオペランドとアドレス計算に使用される前
    記レジスタのレジスタ番号とが一致しているか否かを比
    較する比較器と、前記演算器からの演算結果または前記
    レジスタが保持している内容とを選択する選択回路と、
    前記選択回路から選択されたデータを保持する実効アド
    レス計算レジスタとを具備し、前記命令解読時に、前記
    レジスタ・ハザード検出回路において、オペランドのア
    ドレス計算に使用するレジスタをレジスタ・ハザードと
    して検出し、前記比較器から一致が検出された場合、前
    記選択回路によって前記演算器からの演算結果を前記実
    効アドレス計算レジスタへ転送することを特徴とするレ
    ジスタ・ハザード制御回路。
  3. (3)特許請求の範囲第2項記載のレジスタ・ハザード
    制御回路を含むマイクロプロセッサにおいて、前記演算
    器および前記レジスタを用いてオペランド・データを処
    理する場合に、前記演算器から前記レジスタに書き込ま
    れる内容が無効なオペランドのアドレス計算用データで
    あることを検出する検出部を有し、前記コンパレータか
    ら一致が検出されても、前記検出部の指示によって、前
    記実効アドレス計算レジスタへの転送を待ち合わせるよ
    うに制御することを特徴とするレジスタ・ハザード制御
    回路。
JP9402389A 1988-04-12 1989-04-12 レジスタ・ハザード制御回路 Pending JPH0242533A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9402389A JPH0242533A (ja) 1988-04-12 1989-04-12 レジスタ・ハザード制御回路

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9051588 1988-04-12
JP63-90515 1988-04-12
JP9402389A JPH0242533A (ja) 1988-04-12 1989-04-12 レジスタ・ハザード制御回路

Publications (1)

Publication Number Publication Date
JPH0242533A true JPH0242533A (ja) 1990-02-13

Family

ID=26431992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9402389A Pending JPH0242533A (ja) 1988-04-12 1989-04-12 レジスタ・ハザード制御回路

Country Status (1)

Country Link
JP (1) JPH0242533A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426094A (en) * 1991-01-16 1995-06-20 Arch Development Corporation High temperature superconductor current leads

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426094A (en) * 1991-01-16 1995-06-20 Arch Development Corporation High temperature superconductor current leads

Similar Documents

Publication Publication Date Title
JP2858140B2 (ja) パイプラインプロセッサ装置および方法
JP3176093B2 (ja) マイクロプロセッサの割込み制御装置
EP0495165B1 (en) Overlapped serialization
US5694617A (en) System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation
JPS63131230A (ja) 情報処理装置
US5488728A (en) Microprocessor having a run/stop pin for accessing an idle mode
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
JPS6250934A (ja) 処理装置の割込制御方式
JP3088129B2 (ja) マイクロプロセッサ
JP2680899B2 (ja) 情報処理装置及びその制御方法
JPH0242533A (ja) レジスタ・ハザード制御回路
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
JPH0769825B2 (ja) 並列処理装置
JPH0384632A (ja) データ処理装置
JP3158107B2 (ja) 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置
JP2572821B2 (ja) 命令再実行による演算処理方式
JP3199035B2 (ja) プロセッサ及びその実行制御方法
JP5012562B2 (ja) マイクロコンピュータ
JPS6122818B2 (ja)
JP3206394B2 (ja) 5段パイプライン構造のプログラマブルコントローラ
JP2762441B2 (ja) コプロセッサ
JPS6134188B2 (ja)