JP3204390B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JP3204390B2
JP3204390B2 JP27607298A JP27607298A JP3204390B2 JP 3204390 B2 JP3204390 B2 JP 3204390B2 JP 27607298 A JP27607298 A JP 27607298A JP 27607298 A JP27607298 A JP 27607298A JP 3204390 B2 JP3204390 B2 JP 3204390B2
Authority
JP
Japan
Prior art keywords
hazard
stage
instruction
register
processing
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 - Fee Related
Application number
JP27607298A
Other languages
English (en)
Other versions
JP2000105698A (ja
Inventor
聡一郎 石渕
Original Assignee
エヌイーシーマイクロシステム株式会社
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 エヌイーシーマイクロシステム株式会社 filed Critical エヌイーシーマイクロシステム株式会社
Priority to JP27607298A priority Critical patent/JP3204390B2/ja
Publication of JP2000105698A publication Critical patent/JP2000105698A/ja
Application granted granted Critical
Publication of JP3204390B2 publication Critical patent/JP3204390B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はパイプライン処理を
行なうマイクロコンピュータに係わり、特に内部回路を
処理手順に沿って分割し、各々の回路規模を整えパイプ
ラインレジスタで接続することにより、各レジスタに供
給するクロック周波数を高め演算処理を高速化するパイ
プライン制御のマイクロコンピュータに関する。
【0002】
【従来の技術】この種の従来のパイプライン処理を行な
うマイクロコンピュータは、一般的に命令の高速演算処
理が可能ではあるが、近年、演算のためにデコードされ
た命令が情報やレジスタ等のハードウェア資源の競合等
により、直ちに演算が実行できない場合等に発生するハ
ザード条件の検出を行い、さらに後続する命令の演算処
理動作の停止およびハザード要因を発生させた命令の演
算動作のキャンセルを行う手段が必要である。
【0003】このハザード条件の判定からパイプライン
演算処理の停止およびキャンセル動作を、1ステージ内
で全て完了させることは処理動作が煩雑となるのでデバ
イス上のクリティカルパスとなる。そのため、命令デコ
ードを行うステージ内で動作する論理制御の規模を低減
することが要請されている。
【0004】この要請に応えるために提案された技術と
しては、例えばその一例が、特開平7−021022号
公報に記載されている。同公報記載の演算処理装置で
は、命令デコードおよびハザード処理実行用のステージ
を2段のパイプラインに分割し、1段目のパイプライン
で命令デコードおよびハザード検出を行い、2段目のパ
イプラインで他のステージに対するハザード処理の制御
動作を行うことが提案されている。
【0005】この先行技術に用いられた手法の構成を示
した図8を参照すると、この従来のパイプライン演算処
理装置は、命令フェッチステージ(IF)、レジスタフ
ェッチステージ(RF)、命令実行ステージ(EX)、
データフェッチステージ(DF)、ライトバックステー
ジ(WB)の各ステージを備える5ステージのパイプラ
イン構成である。
【0006】命令フェッチステージ(IF)では、IF
Pレジスタ100と、命令メモリ110と、IFPレジ
スタ100の出力を+1する加算器120と、加算器1
20およびIFPレジスタ100の出力信号を入力しプ
ログラムカウンタおよびハザード時の保持ループを構成
する選択器130とを備える。
【0007】レジスタフェッチステージ(RF)は、R
FPレジスタ200と、その出力を入力する処理回路2
10および命令デコーダ220と、命令メモリ110お
よびRFPレジスタ200の出力信号を入力しハザード
時の保持ループを構成する選択器230とを備える。
【0008】命令実行ステージ(EX)は、EXPレジ
スタ300と、EXCレジスタ320と、EXPレジス
タ300の出力をEXCレジスタ320出力に基づき演
算する演算器310とを備える。
【0009】データフェッチステージ(DF)は、DF
Pレジスタ400と、DFCレジスタ420と、DFC
レジスタ420の出力をDFCレジスタ420出力に基
づき格納するするデータメモリ400とを備える。
【0010】ライトバックステージ(WB)は、WBP
レジスタ500と、WBCレジスタ520と、WBPレ
ジスタ500の出力をWBCレジスタ520出力に基づ
きファイルするレジスタファイル510とを備える。
【0011】上述した構成からなる従来のパイプライン
ステージが時間毎に実行する命令群の遷移図を示した図
9を参照すると、パイプライン動作中の時間t2におい
て、レジスタフェッチステージ(RF)で命令1が処理
回路210で処理されるとともに命令デコーダ220
もデコードされる。
【0012】デコードされた結果および処理回路210
の命令1は命令実行ステージ(EX)へ進み、時間t3
において命令1はEXPレジスタ300に読み込まれ、
同時に命令デコーダ200のデコード結果もEXCレジ
スタ320に保持される。
【0013】このEXCレジスタ320の情報により、
EXPレジスタ300の命令1は演算器310で演算処
理によってフラグ操作やメモリ資源の確保等の実行を行
う。
【0014】その直後の、同じ時間t3のレジスタフェ
ッチステージ(RF)において後続する命令2によって
分岐命令等が発行された場合、命令2のデコード結果に
よって選択器130は命令3を選択し選択器230は命
令2を選択することにより命令3をIFPレジスタ10
0に確保し、かつレジスタフェッチステージ(RF)内
の命令2もRFPレジスタ200に確保する。
【0015】次の時間t4において命令1はデータフェ
ッチステージ(DF)へ進み、命令2はRFPレジスタ
200および選択器230のループにより保持された状
態でEXPレジスタ300およびEXCレジスタ320
に読み込まれるとともに、演算実行され、命令3はIF
Pレジスタ100および選択器130によるループ保持
された状態でパイプラインが停止している。
【0016】次の時刻5において、命令1がライトバッ
クステージ(WB)に進み、命令2は命令実行ステージ
(EX)で演算処理されてデータフェッチステージ(D
F)へ、命令3はレジスタフェッチステージ(RF)へ
それぞれ進み、命令フェッチステージ(IF)には命令
4がフェッチされる。
【0017】すなわち、この従来のパイプライン構成で
行われている、時間t3のサイクル内での命令フェッチ
ステージ(IF)への保持制御やレジスタフェッチステ
ージ(RF)のREPレジスタの保持制御までの回路動
作を伴なうので、回路動作時間が遅延する。
【0018】この動作を、各命令が時間毎に実行するパ
イプラインステージ群の遷移図を示した図10を参照す
ると、時間t3から時間t4へのサイクルが移る際、レ
ジスタフェッチステージ(RF)の命令2はハザード発
生により、通常状態であれば命令実行ステージ(EX)
に格納すべき情報をレジスタフェッチステージ(RF)
に確保し、後続の命令3はハザードによる実行保留が解
除される時間t5まで命令デコーダ220のデコード結
果信号S220に応答して選択器100で選択される保
持ループを経て命令フェッチステージ(IF)で保持さ
れることで、時間t6での命令3の演算処理は継続が可
能となる。
【0019】また、時間t4において命令実行ステージ
(EX)のEXPレジスタ300に格納された命令2は
キャンセルされた後、時間t5においてレジスタフェッ
チステージ(RF)のREPレジスタ200に格納され
た命令2の情報を命令実行ステージ(EX)のEXPレ
ジスタ300およびEXCレジスタ320の入力として
選択され演算が実行される。
【0020】命令実行ステージ(EX)以降の演算処理
の手順は各命令とも1サイクル毎に実行が行われてい
く。
【0021】この結果、ハザード要因を発生した命令2
に着目すると、図9において、ハザード処理を要するレ
ジスタフェッチステージ(RF)の命令2は、次の1ク
ロック周期目で命令実行ステージ(EX)での演算処理
を行うため、1クロック周期内で、ハザード判定から命
令の演算処理全てを行っている。
【0022】
【発明が解決しようとする課題】上述したパイプライン
構成を備える従来のマイクロコンピュータは、レジスタ
フェッチステージ(RF)における命令デコードの結果
として、ハザード要因が検出された場合、レジスタフェ
ッチステージ(RF)でのハザード発行の要因となった
命令の保持制御を行なうとともに、ハザード発生の同一
サイクル期間中は命令フェッチステージ(IF)の情報
を保持し、後続する命令のパイプライン演算処理装置へ
の入力を保留する制御動作をハザード発生の同一サイク
ル期間中に完了する必要がある。
【0023】また、命令実行ステージ(EX)に格納さ
れる命令の実行キャンセルの制御も、ハザード発生の同
一サイクル期間中に制御動作を完了する必要がある。
【0024】この場合、ハザード発生が無い場合と比較
すると、1クロック周期内に動作する回路規模が大き
く、他のステージを含めて全ての動作の中で、このハザ
ード処理に要する遅延時間が長く、その遅延時間がマイ
クロコンピュータ全体の演算性能を制約するという問題
がある。
【0025】また、このハザード処理の際に動作するレ
ジスタフェッチステージ(RF)の回路を2段のパイプ
ラインにする方法を用いると、1クロック周期内に動作
する回路の遅延は低減すると考えられる。
【0026】しかし、命令実行ステージ(EX)に対す
る命令発行が1クロック遅くなるため、命令実行ステー
ジ(EX)から命令フェッチステージ(IF)の動作を
制御する分岐命令の処理に影響を及ぼし、一定時間内に
処理可能な命令数を示すスループットの性能を低下させ
るという問題が発生する。
【0027】さらには、パイプラインステージ数の増大
は、各々のステージを構成するパイプラインレジスタ数
の増加、つまり、レジスタのフェッチ時にハザード判定
を行う制御回路、および2段のパイプラインステージそ
れぞれにパイプラインレジスタを有する必要があるの
で、装置全体の回路規模が大きくなり、その結果、消費
電力が大きくなるという問題も発生する。
【0028】本発明の目的は、上述した従来の欠点に鑑
みなされたものであり、連続した演算処理に影響を及ぼ
さず、ハザード発生時に必要な遅延時間を短縮し、クロ
ック周期の増大要因を改善することで、よりパイプライ
ン処理の高速化を実現するマイクロコンピュータを提供
することにある。
【0029】
【課題を解決するための手段】本発明のマイクロコンピ
ュータの特徴は、命令フェッチステージ(IF)、レジ
スタフェッチステージ(RF)、命令実行ステージ(E
X)、データフェッチステージ(DF)、ライトバック
ステージ(WB)の順で命令の演算処理を行うパイプラ
インの基本構成と、前記レジスタフェッチステージ(R
F)と前記命令実行ステージ(EX)との間に設けら
れ、かつデコードされた命令の演算が実行不能時に発生
するハザードの要因検出時に前記パイプラインの一部と
して動作するハザード処理ステージ(HE)と、前記レ
ジスタフェッチステージ(RF)内に新たに設けるハザ
ード検出器の検出結果により前記ハザード処理ステージ
(HE)および前記命令実行ステージ(EX)それぞれ
のハザード対応機能を有効にするか否かを選択するとと
もに先読みした前記命令フェッチステージ(IF)およ
び前記レジスタフェッチステージ(RF)の処理をホー
ルド状態にするか否かの選択も併せて行う機能を有す
る、前記ハザード処理ステージ(HE)内のホールド選
択手段と、1クロック周期内で動作すべき回路規模の増
加に応じて前記パイプライン処理性能が低下するのを回
避する手段として前記ホールド選択手段でパイプライン
段数を伸長させて前記レジスタフェッチステージ(R
F)から前記命令実行ステージ(EX)までをクロック
周期は一定のまま複数回のクロック周期に分けて処理す
ることにより、所定の命令群のうち最初の命令が前記命
令フェッチステージ(IF)で処理されてから最後の命
令が前記ライトバックステージ(WB)で処理されるま
での処理時間をハザード発生時には5クロック周期で、
非発生時には6クロック周期で前記パイプライン処理
行する機能をもつパイプライン制御手段とを備えるこ
とにある。
【0030】また、前記ホールド選択手段は、前記ハザ
ード検出器の検出結果によりハザード要因が回避される
まで、前記命令フェッチステージ(IF)および前記レ
ジスタフェッチステージ(RF)を含めた全パイプライ
ンの任意のホールドを行う機能を有する。
【0031】さらに、ハザード発生時には5クロック周
期で、非発生時には6クロック周期でパイプライン処理
を実行する機能を有する前記パイプライン制御手段は、
ハザード非発生時も前記ハザード処理ステージ(HE)
に命令を進めておき、ハザード発生と同時に前記ハザー
ド処理ステージ(HE)をハザード対応の選択状態にす
るだけで複数クロック周期に分けたハザード処理を実行
する機能を有することもできる。
【0032】本発明のマイクロコンピュータの他の特徴
は、命令フェッチステージ(IF)、レジスタフェッチ
ステージ(RF)、命令実行ステージ(EX)、データ
フェッチステージ(DF)、ライトバックステージ(W
B)の順で命令の演算処理を行うパイプラインの基本構
に基づき各々のパイプラインステージ毎に命令処理を
並列に実行する構成と、前記レジスタフェッチステージ
と前記命令実行ステージとの間に設けられ、かつデコー
ドされた命令の演算が実行不能時に発生するハザードの
要因検出時に前記パイプラインの一部として動作するハ
ザード処理ステージ(HE)とを備え、前記レジスタフ
ェッチステージ(RF)は、自身のステージ(RF)内
においてデコードされた命令と前記命令実行ステージ
(EX)で先行して演算処理されている命令との組み合
わせ、あるいは装置の資源確保等による動作条件の判定
を行い、自身のステージ(RF)内においてデコードさ
れた命令の正常処理を動作保証できないと判断した場合
に、ハザードとしてパイプライン演算処理の制御を
ロック周期あるいはそれ以上の期間にわたる動作状態保
要求を発生するハザード検出器を自身のステージ
(RF)内部にさらに有し、前記ハザード検出器で前記
ハザードが検出されたときに、検出結果のハザード検出
信号に応答して、デコードされた前記命令の処理と前記
命令に対応する演算処理とを、前記並列に実行する構成
に基づきそれぞれ平行して前記動作状態保持の状態とす
る保持手段を前記ハザード処理ステージに備えることに
ある。
【0033】本発明のさらに他の特徴は、命令フェッチ
ステージ(IF)、レジスタフェッチステージ(R
F)、命令実行ステージ(EX)、データフェッチステ
ージ(DF)、ライトバックステージ(WB)の順で命
令の演算処理を行うパイプラインの基本構成と、前記レ
ジスタフェッチステージ(RF)と前記命令実行ステー
ジ(EX)との間に設けられかつデコードされた命令の
演算が実行不能時に発生するハザードの要因検出時に前
記パイプラインの一部として動作するハザード処理ステ
ージ(HE)と、前記レジスタフェッチステージ(R
F)内に新たに設けるハザード検出器の検出結果により
前記ハザード処理ステージ(HE)、前記命令実行ステ
ージ(EX)それぞれのハザード対応機能を有効にする
か否かを選択するとともに先読みした前記命令フェッチ
ステージ(IF)および前記レジスタフェッチステージ
(RF)の処理をホールド状態にするか否かの選択も併
せて行う機能を有する、前記ハザード処理ステージ(H
E)内のホールド選択手段とを備え、前記ホールド選択
手段は、前記レジスタフェッチステージ(RF)の命令
デコーダで解読されたデコード情報を、ハザード発生時
にはハザードが解除されるまで保持し非発生時には次の
命令がデコードされるまで保持する第1および第2のハ
ザード処理レジスタと、前記ハザード非発生時には前記
ハザード検出器のハザード検出信号の非活性化に応答し
て前記デコード情報をそのまま選択し、前記ハザード発
生時には前記ハザード検出信号の活性化に応答して前記
第1のハザード処理レジスタの保持情報を選択し、選択
したそれぞれの情報を前記命令フェッチステージ(I
F)および前記レジスタフェッチステージ(RF)のパ
イプライン動作制御信号として出力する第1の選択器
と、前記ハザード検出信号の非活性化に応答して前記デ
コード情報をそのまま選択し、前記ハザード検出信号の
活性化に応答して前記第2のハザード処理レジスタの保
持情報を選択し、選択したそれぞれの情報を前記命令実
行ステージ(EX)の演算制御信号として出力する第2
の選択器と、前記レジスタフェッチステージ(RF)の
データ処理回路が出力する命令情報を保持する第3のハ
ザード処理レジスタと、前記ハザード検出信号の非活性
化に応答して前記データ処理回路出力の前記命令情報を
選択し、前記ハザード検出信号の活性化に応答して前記
第3のハザード処理レジスタの保持情報を選択し、選択
したそれぞれの情報を前記命令実行ステージ(EX)の
パイプラインレジスタに出力する第3の選択器とを備え
ることにある。
【0034】また、前記ハザード検出信号の活性化によ
り、前記ハザード処理ステージ(HE)内の前記第1の
ハザード処理レジスタ、前記第2のハザード処理レジス
タおよび前記第3のハザード処理レジスタにそれぞれ保
持された情報をハザード検出後に選択することによりパ
イプラインステージ段数を可変することができる。
【0035】さらに、前記ハザード処理ステージ(H
E)内の前記第1、前記第2および前記第3の選択器
は、前記ハザード発生時には前記第1のハザード処理レ
ジスタの保持情報と前記命令実行ステージ(EX)内に
も重複して保持されている情報であって前記第2のハザ
ード処理レジスタの保持情報および前記第3のハザード
処理レジスタの保持する命令情報をそれぞれ選択し、前
記ハザードが検出されなければ前記第1および前記第2
の選択器は前記デコード情報を選択し前記第3の選択器
は前記レジスタフェッチステージ(RF)からの命令情
報を選択して、前記第1、前記第2および前記第3のハ
ザード処理レジスタにそれぞれ格納した情報は選択せず
に無効とする機能を有する。
【0036】さらにまた、前記ハザード検出器は、前記
ハザード検出ステージ(HE)をハザード状態が解除さ
れるまでの必要とする連続したクロック周期の期間だけ
保持状態にすることもできる。
【0037】また、前記命令実行ステージ(EX)のパ
イプラインレジスタに格納する命令情報を前記レジスタ
フェッチステージ(RF)の演算処理結果によって選択
する場合に、前記ハザード発生後に前記命令実行ステー
ジ(EX)が前記ハザード処理ステージ(HE)の命令
を転送する手段として、前記レジスタフェッチステージ
(RF)にある、レジスタファイル構成の処理回路から
出力する2系統の情報のうち一方を選択する第の選択
器と、前記処理回路による制御信号または前記制御信号
を格納するレジスタの出力情報をハザード検出信号によ
り選択して前記第の選択器を制御するための制御信号
として出力する第の選択器を前記ハザード処理ステー
ジ(HE)内にさらに備え、前記第の選択器の出力信
号を、前記第3のハザード処理レジスタの入力信号と
し、かつ前記第3の選択器の一方の入力信号とすること
もできる。
【0038】さらに、前記ハザードの発生要因となる命
令がデコードされた時点でハザード発生を予測し、前記
ハザード処理ステージ(HE)の動作設定を行う予測手
段として、前記ハザード検出器で前記ハザードの発生要
因となる命令がデコードされた場合に、次の命令をデコ
ードすることにより前記ハザード発生の有無によらずハ
ザード予測を行い、次のクロック周期で前記第1、前記
第2および前記第3のハザード処理レジスタにそれぞれ
の対応する情報の保持要求を行う予測制御信号を前記ハ
ザード検出器がさらに有する。
【0039】さらにまた、前記ハザード検出器は、前記
ハザードの発生が無かった場合は、次のハザードの発生
要因となる命令がデコードされてハザード予測が発生す
るまで前記ハザード処理ステージ(HE)の動作を停止
させ、パイプライン動作が必要なときのみ選択的に前記
ハザード処理を動作させる機能を備える。
【0040】また、前記ホールド選択手段は、マルチサ
イクル命令の場合にも次の命令をパイプラインに取り込
まないように、前記命令フェッチステージ(IF)を含
め命令の保持処理を実行する機能を備える。
【0041】さらに、前記ホールド選択手段は、マルチ
サイクル命令実行時およびハザード発生時とも、前記命
令実行ステージ(EX)に保持すべき情報を前記命令実
行ステージ(EX)の入力に位置する前記ハザード検出
ステージ(HE)の前記第1,前記第2および前記第3
のハザード処理レジスタから供給する。
【0042】
【発明の実施の形態】まず本発明の概要を説明すると、
本発明によるマイクロコンピュータは、複数のパイプラ
インステージを有して情報の処理を行なうマイクロコン
ピュータにおいて各々のパイプラインステージ毎に命令
処理を並列に実行し、パイプラインに格納されたレジス
タフェッチステージと命令実行ステージ間の部分に、ハ
ザード処理ステージを設けたものである。
【0043】後述する図1に示した本発明によるマイク
ロコンピュータの構成からも明らかなように、レジスタ
フェッチステージ(RF)の情報を命令実行ステージ
(EX)に転送するという従来の構成に対し、本発明は
レジスタフェッチステージ(RF)の情報を保持するこ
とが出来、かつ、情報の転送および保持の選択を行う選
択器をハザード処理ステージ(HE)内に設けている。
【0044】このハザード検出ステージ(HE)は、ハ
ザードが発生しない場合にはレジスタフェッチステージ
(RF)に格納された命令や情報等を、次のサイクルで
命令実行ステージ(EX)へと転送する一方、マルチサ
イクル命令の場合は次の命令をパイプラインに取り込ま
ないように、命令フェッチステージ(IF)を含め命令
の保持処理を実行する。
【0045】ハザードが発生する場合には、ハザード要
因判定とレジスタフェッチステージ(RF)でのハザー
ド動作、および命令実行ステージ(EX)に情報が転送
されるのに対しそれを無効にするキャンセル動作で1サ
イクルを完了する。
【0046】次のサイクルで、命令フェッチステージ
(IF)におけるハザード動作、分岐命令などの条件判
定を実行する。
【0047】マルチサイクル命令実行時およびハザード
発生時には、命令実行ステージ(EX)の入力に位置す
るハザード検出ステージ(HE)に命令および情報を保
持するハザード処理レジスタによって、実行ステージに
保持すべき情報をハザード処理レジスタから供給するこ
とにより、マルチサイクル命令が実行可能になる。
【0048】従って、1サイクル期間内に、レジスタフ
ェッチステージ(IF)において判定されたハザードの
発生から命令フェッチステージ(IF)および命令実行
ステージ(EX)における情報保持の制御を、クロック
が2サイクルの期間に亘り処理することが可能になる。
これは、一定のクロック周期で動作させる場合、ネック
になる回路の処理時間がそのクロック周期以上かかると
誤動作の原因になり、その回路を含めて正常な動作をさ
せる上で有利である。したがって、1サイクルの期間で
処理する構成に対してクロック周期を長く必要とする要
因を改善することが可能となり、マイクロコンピュータ
のパイプライン処理を高速化できるという発明である。
【0049】次に、本発明の実施の形態を図面を参照し
ながらさらに詳細に説明する。図1は本発明のマイクロ
コンピュータにおける第1の実施形態を示すパイプライ
ン主要部の構成図である。図1を参照すると、本発明の
マイクロコンピュータは、命令フェッチステージ(I
F)、レジスタフェッチステージ(RF)、ハザード処
理ステージ(HE)、命令実行ステージ(EX)、デー
タフェッチステージ(DF)、およびライトバックステ
ージ(WB)を備える6ステージのパイプライン構成を
有する。
【0050】命令フェッチステージ(IF)では命令フ
ェッチ処理を行ない、命令デコードや分岐処理はレジス
タフェッチステージ(RF)で行なうものとする。
【0051】図1において、命令フェッチステージ(I
F)では、パイプラインレジスタ101(以下、IFP
レジスタ101と称す)と、命令メモリ111と、この
命令メモリ111のアドレスを1サイクル毎に1ずつ加
算し、IFPレジスタ101とのループを可能にするこ
とによりプログラムカウンタを構成する加算器121
と、IFPレジスタ101および加算器121の出力信
号を入力する選択器131とを備える。
【0052】レジスタフェッチステージ(RF)は、選
択器231と、パイプラインレジスタ201(以下、R
FPレジスタ201と称す)と、処理回路(レジスタフ
ァイル)211と、命令デコーダ221と、デコードさ
れた信号とパイプラインで実行中の演算の条件からハザ
ード発生を判定するハザード検出器241とを備える。
このハザード検出器はあるクロックサイクルでハザード
を検出し、次のクロックサイクルでハザード信号を出力
するものとする。
【0053】さらに、レジスタフェッチステージ(R
F)の次段に本発明で新たに設けたハザード処理ステー
ジ(HE)を有している。
【0054】このハザード処理ステージ(HE)は、パ
イプラインレジスタ601(以下、HOPレジスタ60
1と称す)、パイプラインレジスタ621(以下、HE
Cレジスタ621と称す)、パイプラインレジスタ63
1(以下、HRCレジスタ631と称す)と、選択器6
11、641、651とを備え、選択信号の切り換えに
より、HOPレジスタ601、HECレジスタ621、
HRCレジスタ631の格納情報の選択ができる。
【0055】命令実行ステージ(EX)は、パイプライ
ンレジスタ301(以下、EXPレジスタ301と称
す),パイプラインレジスタ321(以下、EXCレジ
スタ321と称す)と、演算器311とを備え、EXC
レジスタタ321からの制御により、EXPレジスタ3
01の情報を用いて演算器311が命令の演算処理を行
なう。
【0056】データフェッチステージ(DF)は、パイ
プラインレジスタ401(以下、DFPレジスタ401
と称す),パイプラインレジスタ421(以下、DFC
レジスタ421と称す)と、データメモリ411とを備
え、DFCレジスタ421からの制御により、DFPレ
ジスタ401の情報をデータメモリ411に記憶する。
【0057】ライトバックステージ(WB)は、パイプ
ラインレジスタ501(以下、WBPレジスタ501と
称す),パイプラインレジスタ521(以下、WBCレ
ジスタ521と称す)と、レジスタファイル511とを
備え、WBCレジスタ521からの制御により、WBP
レジスタ501の情報をレジスタファイル511に記憶
する。
【0058】上述した構成からなるマイクロコンピュー
タのパイプライン制御における動作を説明する。
【0059】再び図1を参照しながら、まず、ハザード
発生が検出されない場合について説明する。なお、以下
の説明では、信号線に付された符号(例えば命令デコー
ダ221の出力線に付されたS221)を信号名とす
る。従来のパイプラインおける演算処理と同様に、命令
フェッチステージ(IF)でIFPレジスタ101にフ
ェッチされた命令は命令メモリ111に格納された後、
次のサイクルで選択器231を介してレジスタフェッチ
ステージ(RF)のRFPレジスタ201に格納され
る。
【0060】レジスタフェッチステージ(RF)の命令
デコーダ221により、RFPレジスタ201に格納さ
れた命令S201がデコードされ、そのデコード結果S
221を基にハザード検出器241によりハザードの有
り、無しを判定する。
【0061】判定の結果、ハザードの発生が検出され
ず、マルチサイクルによる命令保持の要求等も発生しな
かった場合、その検出結果のハザード検出信号S241
が非活性化され、この信号S241に応答してハザード
処理ステージ(HE)の選択器611、641、651
は、レジスタフェッチステージ(RF)から転送される
情報S211、S221、S221をそれぞれ選択す
る。
【0062】この選択により、レジスタフェッチステー
ジ(RF)のパイプラインは、次のサイクルで情報S2
11、S221をハザード処理ステージ(HE)のHO
Pレジスタ601、HECレジスタ621、HRCレジ
スタ631に格納すると同時に、選択器611、641
で選択された情報S211,S221を命令実行ステー
ジ(EX)のEXPレジスタ301、EXCレジスタ3
21にも格納する。
【0063】従って、レジスタフェッチステージ(R
F)に格納されている命令は、次のサイクルにハザード
処理ステージ(HE)、および命令実行ステージ(E
X)に二重化して格納されることになる。
【0064】しかし、ハザードが判定されていない条件
では、ハザード処理ステージ(HE)の選択器611、
641、651はいずれもレジスタフェッチステージ
(RF)側の情報S211、S221、S221を入力
として選択するので、ハザード処理ステージ(HE)の
HOPレジスタ601、HECレジスタ621、HRC
レジスタ631に格納された情報は無効となる。
【0065】命令実行ステージ(EX)に格納された情
報は、命令に沿って制御され、演算処理された情報は、
必要に応じて次のサイクル以降、データフェッチステー
ジ(DF)、ライトバックステージ(WB)へと処理が
伝達されることになる。
【0066】その結果、ハザード発生が検出されない場
合は、従来の回路と同様のサイクルでパイプライン中の
演算処理が実行される。
【0067】次に、ハザード発生が検出された場合の動
作について説明する。ハザード発生が検出された場合の
パイプライン動作であって、各パイプラインステージが
時間毎に実行する命令群の遷移図を示した図2を参照す
ると、パイプライン動作中の時間t2において、レジス
タフェッチステージ(RF)で命令1がデコードされ
る。デコードされた命令1が、選択器611,641で
選択されて命令実行ステージ(EX)へ進み、時間t3
に命令実行ステージ(EX)の演算処理によってフラグ
操作やメモリ資源の確保等の実行が行なわれる。
【0068】その直後に、同じ時間t3のレジスタフェ
ッチステージ(RF)において後続する命令2によって
分岐命令等が発行された場合、次の時間t4でハザード
検出信号S241が出力され、この信号により命令2を
HOPレジスタ601,HECレジスタ621,HRC
レジスタ631に確保し、同時に命令2はEXPレジス
タ301,EXCレジスタ321へ確保される。
【0069】一方、ハザード検出信号S241に応答し
て選択器131およびIFPレジスタ101の保持ルー
プと選択器231およびRFPレジスタ201の保持ル
ープとでそれぞれ命令4および命令3がそれぞれIFP
レジスタ101およびRFPレジスタ201に保持さ
れ、IFPレジスタ101には命令4が、RFPレジス
タ201には命令3が保持されてパイプラインが停止す
る。
【0070】時間t5において、HOPレジスタ601
およびHECレジスタ621に前の時間で確保された命
令2が選択器611,641を介してEXPレジスタお
よびEXCレジスタ321の命令2をキャンセルして書
き換えるとともに、RFPレジスタ201に保持された
命令3をHOPレジスタ601に、命令3のデコード結
果をHECレジスタ621,HRCレジスタ631にそ
れぞれ確保する。
【0071】時間t4に命令デコーダ221でデコード
された命令3には分岐命令等が含まれていないので時間
t5でパイプライン停止のハザード検出信号S241が
非アクティブとなるので、時間t6においてIFPレジ
スタ101には命令5が、RFPレジスタ201には命
令4がそれぞれ確保される。同時に、時間t5でRFP
レジスタ201に保持されていた命令3は時間t6でH
OPレジスタ601およびEXPレジスタ301に確保
されるとともに、命令デコーダ221の命令3出力もH
ECレジスタ621およびEXCレジスタ321にそれ
ぞれ確保され、EXCレジスタ321からの制御により
EXPレジスタ301の情報を用いて演算器311が演
算を実行する。
【0072】上述したように、レジスタフェッチステー
ジ(RF)でのハザード動作および時間t4で命令実行
ステージ(EX)に格納される命令2の情報に対しての
キャンセル処理を同一サイクル内に実行して1サイクル
期間内の動作を終了する。
【0073】すなわち、従来のパイプライン構成で行わ
れていた時間t3のサイクル内での命令フェッチステー
ジ(IF)への保持制御やレジスタフェッチステージ
(RF)のREPレジスタの保持制御までの回路動作を
伴なわない分、回路動作時間が短縮することになる。
【0074】この動作を、各命令が時間毎に実行するパ
イプラインステージ群の遷移図を示して図3を参照する
と、時間t3から時間t4へのサイクルが移る際、レジ
スタフェッチステージ(RF)の命令2はハザード検出
により、通常命令実行ステージ(EX)に格納すべき情
報をハザード処理ステージ(HE)に退避し、後続の命
令3は命令フェッチステージ(IF)からレジスタフェ
ッチステージ(RF)に格納される。
【0075】ハザードによる実行保留が解除される時間
t5まで、ハザード検出により活性化されたS241に
応答して選択される命令3の制御信号S631が選択さ
れ、この選択結果の信号S651によりRFPレジスタ
201の命令3が選択器231で選択される保持ループ
を経て、レジスタフェッチステージ(RF)に保持され
ることで、命令3の演算処理は継続が可能となる。
【0076】また、時間t4において、命令実行ステー
ジ(EX)のレジスタ301に格納された命令2はキャ
ンセルされた後、時間t5においてハザード処理ステー
ジ(HE)のHOPレジスタ601に格納された命令2
の情報を命令実行ステージ(EX)の入力として選択さ
れる。
【0077】命令実行ステージ(EX)以降の演算処理
の手順は従来のパイプライン構成と同様に、各命令とも
1サイクル毎に実行が行われていく。
【0078】この結果、ハザード要因を発生した命令2
に着目すると、演算処理の増大に備えてパイプラインの
ステージ数を一つ増やすという可変長パイプライン構成
を実現することにより、1サイクル期間中のステージ内
における演算処理を分割するという機能を実現できる。
【0079】つまり、図2において、ハザード処理を要
するレジスタフェッチステージ(RF)の命令2は、次
の1クロック周期目でハザード処理ステージ(HE)に
格納され、続く2クロック周期目で命令実行ステージ
(EX)での演算処理を行うため、従来の1クロック周
期内でハザード判定から命令の演算処理全てを行う手法
に比べ、処理内容が同等でも動作周期を2倍とすること
で、処理量をそれぞれのクロック周期内に配分すること
が出来る。
【0080】以上説明したように、本願発明によれば、
通常条件では従来と同様に命令フェッチステージ(I
F)、レジスタフェッチステージ(RF)、命令実行ス
テージ(EX)、データフェッチステージ(DF)、ラ
イトバックステージ(WB)の順で命令の演算処理を行
うという基本構成に基づき、ハザード要因が判定された
場合にパイプラインの一部として機能するハザード処理
ステージ(HE)を有することによる可変長パイプライ
ン構成とした。
【0081】その結果、従来、1サイクル期間内の遅延
時間増大の要因となる動作を、2サイクルに分割して演
算処理することにより、1サイクル期間内における遅延
増大要因を改善することが可能となり、演算処理の高速
化による性能向上を実現した、パイプライン制御のマイ
クロプロセッサが提供される。
【0082】なお、本発明が上記各実施例に限定され
ず、本発明の技術思想の範囲内において、各実施例は適
宜変更され得ることは明らかである。
【0083】従って、ハザード発生が無い場合と比較す
ると、1クロック周期内に動作する回路規模を2段のパ
イプラインに分割し、他のステージを含めて全ての動作
の中で、このハザード処理に要する遅延時間が長く、そ
の遅延時間がマイクロコンピュータ全体の演算性能を制
約するという問題を排除することができる。
【0084】さらには、本実施形態では、このハザード
処理の際にのみ動作するハザード処理ステージ(HE)
を用いることによって、ハザード発生時以外の1クロッ
ク周期内に動作する回路の遅延に影響を与えず、レジス
タフェッチステージ(RF)を単純に2段のパイプライ
ン化した場合の命令実行ステージ(EX)への命令発行
を1クロック遅くする性能低下も避けることが可能とな
る。
【0085】その結果、命令実行ステージ(EX)から
命令フェッチステージ(IF)の動作を制御する分岐命
令の処理にも影響を及ぼさない。そのため、一定時間内
に処理可能な命令数を示す尺度としてのスループットの
性能を低下させるという問題は発生しない。
【0086】さらには、ハザード処理の場合以外にパイ
プライン演算処理の動作を行うパイプラインステージ数
は増大しないため、ハザード検出の予測機能を付加する
ことにより、消費電力の増大を回避することが可能にな
る。
【0087】本発明の他の実施の形態として、その基本
的構成は前述した通りであるが、ハザード処理ステージ
(HE)のHOPレジスタ、HECレジスタ、HRCレ
ジスタに格納する情報のハザード条件での入力選択制御
についてさらに工夫している。
【0088】その構成を第2の実施の形態としてその構
成図を示した図4を参照すると、図1に示したパイプラ
イン構成との相違点は、ハザード処理ステージ(HE)
内に、処理回路212による制御信号S212を格納す
るHCPレジスタ662と、制御信号S212およびH
CPレジスタ662の出力をハザード検出器242のハ
ザード検出信号S242に応答して選択し、この選択し
た信号を選択信号S682として出力する選択器682
と、レジスタフェッチステージ(RF)の処理回路21
2の出力RFDATA1およびRFDATA2からなる
2系統の情報のうち一方を、選択信号S682に応答し
て選択する選択器672とをさらに付加して備え、選択
器672の出力がハザード処理ステージ(HE)のHO
Pレジスタ602の入力となる構成を備えたことであ
る。
【0089】前述したように、レジスタフェッチステー
ジ(RF)での演算処理結果が命令実行ステージ(E
X)のEXPレジスタ302に格納されるのであるが、
命令の内容によっては、命令実行ステージ(EX)のE
XPレジスタ302に格納する情報を、レジスタフェッ
チステージ(RF)での演算処理結果によって選択して
格納する必要があり、その選択機能が要求されることが
ある。
【0090】その場合、ハザード発生後に、命令実行ス
テージ(EX)がハザード処理ステージ(HE)の命令
を転送する必要があり、選択器672はハザード発生前
のレジスタフェッチステージ(RF)の処理回路212
の出力S212を格納したハザード処理ステージ(H
E)のHCPレジスタ662の条件に基づいて、HOP
レジスタ602の入力を処理回路212の出力RFDA
TA1およびRFDATA2の中から選択することが可
能となる。
【0091】この時の動作説明用タイミングチャートを
示した図5および図4を併せて参照すると、時間t2
ハザード要因が検出されハザード検出信号S242がハ
イレベルを出力し、処理回路212の2系統出力はRF
DATA1(X0,X1,X2,‥‥‥)およびRFD
ATA2(Y0,Y1,Y2,‥‥‥)を出力し、出力
信号S212は時間t0,t1まではRFDATA1の
状態値を選択するための信号を出力し、時間t2では状
態値が変化してRFDATA1の状態値を選択するため
の信号を出力している。
【0092】ハザード発生の時間t2において、選択器
682はHCPレジスタ662の出力を選択しており、
このレジスタには直前の時間t1における処理回路21
2出力である選択信号S212の状態値が保持されてい
る。図4ではS212t2で変化してRFDATA1か
らRFDATA2選択へ変化しているにもかかわらずS
662がt3まで前のRFDATA1の状態を保持して
いることを示す。
【0093】したがって、時間t2の終了まで選択器6
72の出力であるHEDATA1はRFDATA1の状
態値であるX0,X1,X2,‥‥‥を出力し、時間t
2以降はRFDATA2の状態値であるY3,Y4,Y
5,‥‥‥を出力することを示す。
【0094】HOPレジスタ602の出力であるHED
ATA2は、次のクロックで前の状態値を出力するの
で、RFDATA1の状態値が1クロックシフトし時間
t1からX0,X1,X2,‥‥‥を出力し、時間t4
以降はRFDATA2の状態値であるY3,Y4,Y
5,‥‥‥を出力することを示す。
【0095】命令実行ステージ(EX)のEXPレジス
タ302の入力となるEXDATA入力は時間t0,t
1までは基本的な選択ルートによりX0,X1が選択さ
れ、時間t2においてハザード要因が検出されたのでH
OPレジスタ602に保持されたX1を選択し、時間t
3以降は、またハザードが解除されたので基本的な選択
ルートに戻り、信号S662に基づきHEDATA2の
Y3,Y4Y5,‥‥‥を選択して入力する。
【0096】したがって、選択信号S212が時間t2
において状態値変化をした場合でも、HCPレジスタ6
62に保持されている、時間t1の条件で選択すべき状
態値をハザード処理ステージ(HE)のHOPレジス
タ、HECレジスタ、HRCレジスタに格納することが
可能となる。
【0097】この結果、レジスタフェッチステージ(R
F)から選択器を経由して命令実行ステージ(EX)の
パイプラインレジスタに情報を転送する構成のパイプラ
イン制御装置においても、ハザード条件時のハザード処
理ステージ(HE)での保持情報は、正しいレジスタフ
ェッチステージ(RF)の処理回路出力信号を選択する
ことができる。
【0098】つまり、RFステージの制御信号RFDA
TA1またはRFDATA2を選択しEXステージに出
力する場合、ハザード発生時には、その選択信号の状態
もHEステージに保持していなければ、HEステージの
パイプラインレジスタHOPレジスタ602の内容が間
違ってしまうからである。
【0099】この手法は、レジスタフェッチステージ
(RF)から命令実行ステージ(EX)に転送される情
報が複数系統あり、その中から情報自身の状態によって
転送される情報の系統が選択される場合、その中の選択
情報全てを保持するためのパイプラインレジスタをハザ
ード処理ステージ(HE)に備え、情報選択の状態の判
定を再実行する場合に比べて、ハザード処理時の判定動
作の遅延を少なくすることができる。ここでいう状態判
定の再実行とは、ハザード発生時に、一度EXステージ
で演算された命令をキャンセルする一方、次のクロック
周期以降で再度命令を実行する必要があり、状態値によ
る情報選択の判定等の動作内容はそのときの命令になる
ということである。
【0100】さらに、上述したハザード処理時の判定動
作の遅延が少なくてすむというメリットに加え、選択信
号と選択された信号をそれぞれ保持しておくことで、レ
ジスタフェッチステージ(RF)からの出力信号全てを
保持しなくても済み、保持すべき情報量が少くすること
ができる構成となっている。したがって、レジスタフェ
ッチステージ(RF)の情報全てをハザード処理ステー
ジ(HE)に保持する場合に比べて、マイクロコンピュ
ータの小型化および低消費電力化に有利である。
【0101】上述の実施形態では、マイクロコンピュー
タのハザード処理時の判定動作の遅延が少なくてすむと
いう作用・効果を、レジスタフェッチステージ(RF)
から命令実行ステージ(EX)に転送される情報が複数
系統あり、その中から情報自身の状態によって転送され
る情報の系統が選択される場合、その中の選択情報を保
持するためのパイプラインレジスタをハザード処理ステ
ージ(HE)の選択器回路に備えることにより得てい
る。
【0102】一方、ハザードの発生が特定の命令の連続
した処理において起こることから、ハザード発生要因と
なる命令がデコードされた時点でハザード発生を予測
し、ハザード処理ステージの動作設定を行うという技
想を用いても得られる。
【0103】そのための構成を、第3の実施形態として
示す。本発明のマイクロコンピュータの第3の実施形態
の構成図を示した図6を参照すると、前述した第1の実
施形態との相違点は、ハザード検出器243から時刻t
3,t4期間ハザード予測信号S243Bを新たに生成
させ、この信号に応答して、HOPレジスタ603に処
理回路213の出力を保持させ、HECレジスタ623
に命令デコーダ223のデコード結果を保持させ、さら
にHPCレジスタ633にも命令デコーダ223のデコ
ード結果を保持させるようにしたことである。つまり、
上述した3つのレジスタをハザード予測信号S243B
により保持動作させている。
【0104】本実施形態の動作説明のための、パイプラ
インステージが時間毎に実行する命令群の遷移図を示し
た図7を参照すると、時間t1に命令1、時間t2に命
令2、時間t3に命令3、時間t4に命令4、時間t5
に命令5がそれぞれ命令フェッチステージ(IF)に順
次フェッチされているものとする。
【0105】また、ハザード処理ステージ(HE)のH
OPレジスタ603、HECレジスタ623、HRCレ
ジスタ633は通常はクロックがマスクされて停止状態
に設定され、ハザード予測信号が出力されるとマスクが
解除され次のクロックでレジスタに命令の格納が行われ
るものとする。
【0106】時間t2において命令1が命令デコーダ2
23においてデコードされるとともに、そのデコード結
果からハザード予測信号S243が発生したとすると、
次の時間t3においてこのハザード予測信号S243が
出力され、次の時刻t4でこのハザード予測信号S24
3に応答して、HOPレジスタ603、HECレジスタ
623、HRCレジスタ633の情報読み込みが行われ
る。
【0107】さらに、時間t4に検出されるハザード検
出信号S243に応答して、命令2の情報がハザード処
理ステージ(HE)のHOPレジスタ603、HECレ
ジスタ623、HRCレジスタ633から選択器60
3,623,633で選択されて命令フェッチステージ
(IF)、レジスタフェッチステージ(RF)の選択器
133および233にそれぞれ出力され、かつ命令実行
ステージ(EX)のEXPレジスタ603およびEXC
レジスタ303にも出力される。
【0108】時間t5においては、EXPレジスタに読
み込まれた命令2が、演算処理によってフラグ操作やメ
モリ資源の確保等の実行を行なった直後に、同じ時間t
3においてレジスタフェッチステージ(RF)で後続す
る命令3によって分岐命令等が発行された場合、レジス
タフェッチステージ(RF)でのハザード動作および時
間t4で命令実行ステージ(EX)に格納される命令2
の情報に対してのキャンセル処理を同一サイクル内に実
行して1サイクル期間内の動作を終了する。
【0109】上述したように、このマイクロコンピュー
タでは、レジスタフェッチステージ(RF)のハザード
検出器243においてハザード発生要因となる命令がデ
コードされた場合に、次の命令デコード結果においてハ
ザード発生の有無によらずハザード予測を行い、次のサ
イクルでハザード処理ステージ(HE)のHOPレジス
タ603、HECレジスタ623、HRCレジスタ63
3に情報の保持要求を行う機能を有する。
【0110】従って、次のサイクルで実際にハザードが
検出された場合の処理は上述した各実施形態と同様であ
るが、ハザードの発生が無かった場合は、次のハザード
発生要因となる命令がデコードされて、ハザード予測が
発生されるまでハザード処理ステージ(HE)の動作は
停止することにより、ハザード処理時の判定動作の遅延
が少なくてすむという作用・効果が得られ、本発明の目
的が達成される。
【0111】しかも、本実施例では、パイプライン動作
を必要時にのみハザード処理ステージを動作させるた
め、ハザード処理ステージ(HE)を常に動作させる場
合に比べて、よりマイクロコンピュータの低消費電力化
に有利という相乗的な効果を奏する。
【0112】
【発明の効果】以上説明したように、本願発明によれ
ば、通常条件では従来と同様に命令フェッチステージ
(IF)、レジスタフェッチステージ(RF)、命令実
行ステージ(EX)、データフェッチステージ(D
F)、ライトバックステージ(WB)の順で命令の演算
処理うという基本構成に基づき、レジスタフェッチステ
ージ(RF)の次のステージに、ハザード要因が判定さ
れた場合にパイプラインの一部として機能するハザード
処理ステージ(HE)を有することによる可変長パイプ
ライン構成とすることで、従来、1サイクル期間内の遅
延時間増大の要因となる動作を2サイクルに分割して演
算処理することにより、1サイクル期間内の遅延を増大
させる要因を改善することが可能となり、演算処理の高
速化による性能向上を実現した、パイプライン制御のマ
イクロプロセッサが提供される。
【0113】従って、ハザード発生が無い場合と比較し
て、1クロック周期内に動作する回路規模を2段のパイ
プラインに分割し、他のステージを含めて全ての動作の
中で、このハザード処理に要する遅延時間が長く、その
遅延時間がマイクロコンピュータ全体の演算性能を制約
するという問題を排除することができる。
【0114】また、このハザード処理の際にのみ動作す
るハザード処理ステージ(HE)を用いることによっ
て、ハザード発生時以外の1クロック周期内に動作する
回路の遅延に影響を与えず、レジスタフェッチステージ
(RF)を単純に2段のパイプライン化した場合の命令
実行ステージ(EX)への命令発行を1クロック遅くす
る性能低下も避けることが可能となり、命令実行ステー
ジ(EX)から命令フェッチステージ(IF)の動作を
制御する分岐命令の処理にも影響を及ぼさないため、一
定時間内に処理可能な命令数を示すスループットの性能
を低下させるという問題は発生しない。
【0115】さらに、ハザード処理の場合以外にパイプ
ライン演算処理に動作を行うパイプラインステージ数は
増大しないため、ハザード検出の予測機能を付加するこ
とにより、消費電力の増大を回避することが出来るとい
う効果もある。
【図面の簡単な説明】
【図1】本発明のマイクロコンピュータのパイプライン
の第1の実施の形態を示す構成図である。
【図2】第1の実施形態の各パイプラインステージが時
間毎に実行する命令群の遷移図である。
【図3】第1の実施形態の各命令が時間毎に実行するパ
イプラインステージ群の遷移図である。
【図4】第2の実施の形態を示す構成図である。
【図5】第2の実施の形態の動作を説明するためのタイ
ミングチャートである。
【図6】第3の実施の形態を示す構成図である。
【図7】第3の実施形態のパイプラインステージが時間
毎に実行する命令群の遷移図である。
【図8】従来のマイクロコンピュータのパイプラインを
示す構成図である。
【図9】従来のパイプラインステージが時間毎に実行す
る命令群の遷移図である。
【図10】従来のパイプラインステージが時間毎に実行
する命令群の遷移図である。
【符号の説明】
101 IFPレジスタ 111 命令メモリ 121 加算器 131,231,611,641,651 選択器 201 RFPレジスタ 211 処理回路 221 命令デコーダ 241 ハザード検出器 301 EXPレジスタ 311 演算器 321 EXCレジスタ 401 DFPレジスタ 411 データメモリ 421 DFCレジスタ 501 WBPレジスタ 511 レジスタファイル 521 WBCレジスタ 601 HOPレジスタ 621 HECレジスタ 631 HRCレジスタ DF データフェッチステージ EX 命令実行ステージ HE ハザード処理ステージ IF 命令フェッチステージ RF レジスタフェッチステージ WB ライトバックステージ
フロントページの続き (56)参考文献 特開2000−99328(JP,A) 特開 平3−255529(JP,A) 特開 平6−314196(JP,A) 特開 平5−334081(JP,A) 特開 平6−95872(JP,A) 特開 平7−21022(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令フェッチステージ(IF)、レジス
    タフェッチステージ(RF)、命令実行ステージ(E
    X)、データフェッチステージ(DF)、ライトバック
    ステージ(WB)の順で命令の演算処理を行うパイプラ
    インの基本構成と、前記レジスタフェッチステージ(R
    F)と前記命令実行ステージ(EX)との間に設けら
    れ、かつデコードされた命令の演算が実行不能時に発生
    するハザードの要因検出時に前記パイプラインの一部と
    して動作するハザード処理ステージ(HE)と、前記レ
    ジスタフェッチステージ(RF)内に新たに設けるハザ
    ード検出器の検出結果により前記ハザード処理ステージ
    (HE)および前記命令実行ステージ(EX)それぞれ
    のハザード対応機能を有効にするか否かを選択するとと
    もに先読みした前記命令フェッチステージ(IF)およ
    び前記レジスタフェッチステージ(RF)の処理をホー
    ルド状態にするか否かの選択も併せて行う機能を有す
    る、前記ハザード処理ステージ(HE)内のホールド選
    択手段と、1クロック周期内で動作すべき回路規模の増
    加に応じて前記パイプライン処理性能が低下するのを回
    避する手段として前記ホールド選択手段でパイプライン
    段数を伸長させて前記レジスタフェッチステージ(R
    F)から前記命令実行ステージ(EX)までをクロック
    周期は一定のまま複数回のクロック周期に分けて処理す
    ることにより、所定の命令群のうち最初の命令が前記命
    令フェッチステージ(IF)で処理されてから最後の命
    令が前記ライトバックステージ(WB)で処理されるま
    での処理時間をハザード発生時には5クロック周期で、
    非発生時には6クロック周期で前記パイプライン処理
    行する機能をもつパイプライン制御手段とを備えるこ
    とを特徴とするマイクロコンピュータ。
  2. 【請求項2】 前記ホールド選択手段は、前記ハザード
    検出器の検出結果によりハザード要因が回避されるま
    で、前記命令フェッチステージ(IF)および前記レジ
    スタフェッチステージ(RF)を含めた全パイプライン
    の任意のホールドを行う機能を有する請求項1記載のマ
    イクロコンピュータ。
  3. 【請求項3】 ハザード発生時には5クロック周期で、
    非発生時には6クロック周期でパイプライン処理を実
    する機能を有する前記パイプライン制御手段は、ハザー
    ド非発生時も前記ハザード処理ステージ(HE)に命令
    を進めておき、ハザード発生と同時に前記ハザード処理
    ステージ(HE)をハザード対応の選択状態にするだけ
    で複数クロック周期に分けたハザード処理を実行する機
    能を有する請求項1記載のマイクロコンピュータ。
  4. 【請求項4】 命令フェッチステージ(IF)、レジス
    タフェッチステージ(RF)、命令実行ステージ(E
    X)、データフェッチステージ(DF)、ライトバック
    ステージ(WB)の順で命令の演算処理を行うパイプラ
    インの基本構成に基づき各々のパイプラインステージ毎
    に命令処理を並列に実行する構成と、前記レジスタフェ
    ッチステージと前記命令実行ステージとの間に設けら
    れ、かつデコードされた命令の演算が実行不能時に発生
    するハザードの要因検出時に前記パイプラインの一部と
    して動作するハザード処理ステージ(HE)とを備え、
    前記レジスタフェッチステージ(RF)は、自身のステ
    ージ(RF)内においてデコードされた命令と前記命令
    実行ステージ(EX)で先行して演算処理されている命
    令との組み合わせ、あるいは装置の資源確保等による動
    作条件の判定を行い、自身のステージ(RF)内におい
    てデコードされた命令の正常処理を動作保証できないと
    判断した場合に、ハザードとしてパイプライン演算処理
    の制御をクロック周期あるいはそれ以上の期間にわた
    る動作状態保要求を発生するハザード検出器を自身
    のステージ(RF)内部にさらに有し、前記ハザード検
    出器で前記ハザードが検出されたときに、検出結果のハ
    ザード検出信号に応答して、デコードされた前記命令の
    処理と前記命令に対応する演算処理とを、前記並列に実
    行する構成に基づきそれぞれ平行して前記動作状態保持
    の状態とする保持手段を前記ハザード処理ステージに備
    ることを特徴とするマイクロコンピュータ。
  5. 【請求項5】 命令フェッチステージ(IF)、レジス
    タフェッチステージ(RF)、命令実行ステージ(E
    X)、データフェッチステージ(DF)、ライトバック
    ステージ(WB)の順で命令の演算処理を行うパイプラ
    インの基本構成と、前記レジスタフェッチステージ(R
    F)と前記命令実行ステージ(EX)との間に設けられ
    かつデコードされた命令の演算が実行不能時に発生する
    ハザードの要因検出時に前記パイプラインの一部として
    動作するハザード処理ステージ(HE)と、前記レジス
    タフェッチステージ(RF)内に新たに設けるハザード
    検出器の検出結果により前記ハザード処理ステージ(H
    E)、前記命令実行ステージ(EX)それぞれのハザー
    ド対応機能を有効にするか否かを選択するとともに先読
    みした前記命令フェッチステージ(IF)および前記レ
    ジスタフェッチステージ(RF)の処理をホールド状態
    にするか否かの選択も併せて行う機能を有する、前記ハ
    ザード処理ステージ(HE)内のホールド選択手段とを
    備え、前記ホールド選択手段は、前記レジスタフェッチ
    ステージ(RF)の命令デコーダで解読されたデコード
    情報を、ハザード発生時にはハザードが解除されるまで
    保持し非発生時には次の命令がデコードされるまで保持
    する第1および第2のハザード処理レジスタと、前記ハ
    ザード非発生時には前記ハザード検出器のハザード検出
    信号の非活性化に応答して前記デコード情報をそのまま
    選択し、前記ハザード発生時には前記ハザード検出信号
    の活性化に応答して前記第1のハザード処理レジスタの
    保持情報を選択し、選択したそれぞれの情報を前記命令
    フェッチステージ(IF)および前記レジスタフェッチ
    ステージ(RF)のパイプライン動作制御信号として出
    力する第1の選択器と、前記ハザード検出信号の非活性
    化に応答して前記デコード情報をそのまま選択し、前記
    ハザード検出信号の活性化に応答して前記第2のハザー
    ド処理レジスタの保持情報を選択し、選択したそれぞれ
    の情報を前記命令実行ステージ(EX)の演算制御信号
    として出力する第2の選択器と、前記レジスタフェッチ
    ステージ(RF)のデータ処理回路が出力する命令情報
    を保持する第3のハザード処理レジスタと、前記ハザー
    ド検出信号の非活性化に応答して前記データ処理回路出
    力の前記命令情報を選択し、前記ハザード検出信号の活
    性化に応答して前記第3のハザード処理レジスタの保持
    情報を選択し、選択したそれぞれの情報を前記命令実行
    ステージ(EX)のパイプラインレジスタに出力する第
    3の選択器とを備えることを特徴とするマイクロコンピ
    ュータ。
  6. 【請求項6】 前記ハザード検出信号の活性化により、
    前記ハザード処理ステージ(HE)内の前記第1のハザ
    ード処理レジスタ、前記第2のハザード処理レジスタお
    よび前記第3のハザード処理レジスタにそれぞれ保持さ
    れた情報をハザード検出後に選択することによりパイプ
    ラインステージ段数を可変する請求項5記載のマイクロ
    コンピュータ。
  7. 【請求項7】 前記ハザード処理ステージ(HE)内の
    前記第1、前記第2および前記第3の選択器は、前記ハ
    ザード発生時には前記第1のハザード処理レジスタの保
    持情報と前記命令実行ステージ(EX)内にも重複して
    保持されている情報であって前記第2のハザード処理レ
    ジスタの保持情報および前記第3のハザード処理レジス
    タの保持する命令情報をそれぞれ選択し、前記ハザード
    が検出されなければ前記第1および前記第2の選択器は
    前記デコード情報を選択し前記第3の選択器は前記レジ
    スタフェッチステージ(RF)からの命令情報を選択し
    て、前記第1、前記第2および前記第3のハザード処理
    レジスタにそれぞれ格納した情報は選択せずに無効とす
    る機能を有する請求項5記載のマイクロコンピュータ。
  8. 【請求項8】 前記ハザード検出器は、前記ハザード検
    出ステージ(HE)をハザード状態が解除されるまでの
    必要とする連続したクロック周期の期間だけ保持状態に
    する請求項記載のマイクロコンピュータ。
  9. 【請求項9】 前記命令実行ステージ(EX)のパイプ
    ラインレジスタに格納する命令情報を前記レジスタフェ
    ッチステージ(RF)の演算処理結果によって選択する
    場合に、前記ハザード発生後に前記命令実行ステージ
    (EX)が前記ハザード処理ステージ(HE)の命令を
    転送する手段として、前記レジスタフェッチステージ
    (RF)にある、レジスタファイル構成の処理回路から
    出力する2系統の情報のうち一方を選択する第の選択
    器と、前記処理回路による制御信号または前記制御信号
    を格納するレジスタの出力情報をハザード検出信号によ
    り選択して前記第の選択器を制御するための制御信号
    として出力する第の選択器を前記ハザード処理ステー
    ジ(HE)内にさらに備え、前記第の選択器の出力信
    号を、前記第3のハザード処理レジスタの入力信号と
    し、かつ前記第3の選択器の一方の入力信号とする請求
    項5記載のマイクロコンピュータ。
  10. 【請求項10】 前記ハザードの発生要因となる命令が
    デコードされた時点でハザード発生を予測し、前記ハザ
    ード処理ステージ(HE)の動作設定を行う予測手段と
    して、前記ハザード検出器で前記ハザードの発生要因と
    なる命令がデコードされた場合に、次の命令をデコード
    することにより前記ハザード発生の有無によらずハザー
    ド予測を行い、次のクロック周期で前記第1、前記第2
    および前記第3のハザード処理レジスタにそれぞれの対
    応する情報の保持要求を行う予測制御信号を前記ハザー
    ド検出器がさらに有する請求項5記載のマイクロコンピ
    ュータ。
  11. 【請求項11】 前記ハザード検出器は、前記ハザード
    の発生が無かった場合は、次のハザードの発生要因とな
    る命令がデコードされてハザード予測が発生するまで前
    記ハザード処理ステージ(HE)の動作を停止させ、パ
    イプライン動作が必要なときのみ選択的に前記ハザード
    処理を動作させる機能を備えた請求項10記載のマイク
    ロコンピュータ。
  12. 【請求項12】 前記ホールド選択手段は、マルチサイ
    クル命令の場合にも次の命令をパイプラインに取り込ま
    ないように、前記命令フェッチステージ(IF)を含め
    命令の保持処理を実行する機能を備えた請求項記載の
    マイクロコンピュータ。
  13. 【請求項13】 前記ホールド選択手段は、マルチサイ
    クル命令実行時およびハザード発生時とも、前記命令実
    行ステージ(EX)に保持すべき情報を前記命令実行ス
    テージ(EX)の入力に位置する前記ハザード検出ステ
    ージ(HE)の前記第1,前記第2および前記第3のハ
    ザード処理レジスタから供給する請求項記載のマイク
    ロコンピュータ。
JP27607298A 1998-09-29 1998-09-29 マイクロコンピュータ Expired - Fee Related JP3204390B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27607298A JP3204390B2 (ja) 1998-09-29 1998-09-29 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27607298A JP3204390B2 (ja) 1998-09-29 1998-09-29 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2000105698A JP2000105698A (ja) 2000-04-11
JP3204390B2 true JP3204390B2 (ja) 2001-09-04

Family

ID=17564419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27607298A Expired - Fee Related JP3204390B2 (ja) 1998-09-29 1998-09-29 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP3204390B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028165B2 (en) 2000-12-06 2006-04-11 Intel Corporation Processor stalling
US8127114B2 (en) * 2007-03-28 2012-02-28 Qualcomm Incorporated System and method for executing instructions prior to an execution stage in a processor

Also Published As

Publication number Publication date
JP2000105698A (ja) 2000-04-11

Similar Documents

Publication Publication Date Title
US7827388B2 (en) Apparatus for adjusting instruction thread priority in a multi-thread processor
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JP2535252B2 (ja) 並列処理装置
US20070260857A1 (en) Electronic Circuit
JP3180175B2 (ja) 命令レベルの並列処理制御方法およびプロセッサ
JP2004145454A (ja) 情報処理装置及び情報処理方法
JP3204390B2 (ja) マイクロコンピュータ
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
US20040153628A1 (en) Instruction control device and method therefor
JP5949327B2 (ja) 演算処理装置および演算処理装置の制御方法
KR100278136B1 (ko) 데이타처리장치 및 데이타처리방법
JPH08305567A (ja) 演算命令の並列処理方法および並列処理装置
JP3697393B2 (ja) プロセッサ
JP3199035B2 (ja) プロセッサ及びその実行制御方法
US5828861A (en) System and method for reducing the critical path in memory control unit and input/output control unit operations
JP3475861B2 (ja) データ処理装置
JP3461887B2 (ja) 可変長パイプライン制御装置
JP2503223B2 (ja) 先行制御方式
JP4498705B2 (ja) キャッシュシステム
JP2636192B2 (ja) 情報処理装置
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ
JP6340887B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP2000305782A (ja) 演算装置
JPH08272608A (ja) パイプライン処理装置
JP3743155B2 (ja) パイプライン制御型計算機

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010529

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080629

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090629

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees