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

マイクロプロセッサ

Info

Publication number
JPH0728669A
JPH0728669A JP5191789A JP19178993A JPH0728669A JP H0728669 A JPH0728669 A JP H0728669A JP 5191789 A JP5191789 A JP 5191789A JP 19178993 A JP19178993 A JP 19178993A JP H0728669 A JPH0728669 A JP H0728669A
Authority
JP
Japan
Prior art keywords
instruction
control
branch
signal
output
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.)
Granted
Application number
JP5191789A
Other languages
English (en)
Other versions
JP2536726B2 (ja
Inventor
Yasuaki Kuroda
康明 黒田
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 JP5191789A priority Critical patent/JP2536726B2/ja
Priority to EP94110434A priority patent/EP0633521B1/en
Priority to DE69421764T priority patent/DE69421764T2/de
Priority to US08/267,917 priority patent/US5787276A/en
Priority to KR1019940016269A priority patent/KR970011209B1/ko
Publication of JPH0728669A publication Critical patent/JPH0728669A/ja
Application granted granted Critical
Publication of JP2536726B2 publication Critical patent/JP2536726B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【目的】先読みされた命令の実行を外部から正確にトレ
ース可能とするマイクロプロセッサの提供。 【構成】命令デコード手段と、命令キュー手段と、前記
命令キュー手段に接続され制御コードを格納する制御記
憶手段と、命令実行手段とを備え、命令が先取り実行す
るように構成されたマイクロプロセッサにおいて、前記
命令デコード手段は、デコードした命令が分岐命令であ
る時に分岐命令デコード信号を出力し、分岐命令デコー
ド信号と命令実行手段に保持される状態レジスタのフラ
グを入力し、分岐の発生を検出した時に分岐発生検出信
号を外部に出力する分岐検出手段を備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサに関
し、特に、先取りされた命令の実行を外部からトレース
できるマイクロプロセッサに関する。
【0002】
【従来の技術】従来この種のマイクロプロセッサとし
て、例えば図1に示すものがある(特開昭61−168046参
照)。図1に示すように、このマイクロプロセッサは、
命令を実行する命令実行部23と、先取りした命令を格納
する命令キュー15と、命令キュー15を制御する命令キュ
ー制御部18と、外部から入力される先取り無効化指示信
号線100と、外部に出力される命令読み取り指示信号線1
04とを備えている。
【0003】命令実行部23は命令の実行を終了した時
に、命令要求信号103を介して命令キュー制御部18に対
して次の命令を要求する。命令キュー15はキューに一つ
以上の命令を格納することができれば先取り無効化指示
信号線100でマスク可能な先取り指示信号線101を介し命
令キュー制御部18に対して命令の先取りが可能なことを
知らせる。
【0004】命令キュー制御部18は先取り指示信号線10
1がアクティブのとき、データバス8を介して命令キュ
ー15に命令を格納すると共に、命令キュー15に命令が存
在しなくなった場合、命令読み取り指示信号線104を介
し外部の記憶装置に対して新たに命令を読み込むことを
知らせる。
【0005】さらに命令キュー制御部18は、命令実行部
23からの命令要求信号線103がアクティブのとき命令供
給指示信号線102を介し命令キュー15に対してキュー内
の命令を命令実行部23に供給することを指示する。
【0006】命令キュー制御部18からの命令供給指示信
号102を受け取った命令キュー15は命令供給線105を介し
て命令実行部23に命令を供給する。ここで、外部からの
先取り無効化指示信号線100をアクティブにすると命令
キュー15から出力される先取り指示信号線101は、AN
Dゲート106によりマスクされるため先取り指示信号101
は常にインアクティブとなり、命令キュー制御部18はデ
ータバス8から命令キュー15に命令を格納する動作を停
止させる。
【0007】このため命令キュー15内の命令が全て実行
し尽くされると最終的には空となる。命令キュー15内に
命令が存在しなくなると、命令キュー制御部18は、命令
読み取り指示信号線104を介して外部の記憶装置に対し
新たに命令を読み込むことを知らせる。
【0008】このときデータバス8から読み取られた命
令は、命令キュー15を介することなく命令実行部23で実
行されるため、命令読み取り信号104は、命令実行部23
からの命令要求信号103に同期してアクティブとなる。
従って、外部から命令読み込み指示信号線104を監視す
ることにより、命令の実行をトレースすることが可能と
なる。
【0009】
【発明が解決しようとする課題】上述した従来のマイク
ロプロセッサは、先取り無効化信号100を外部から入力
することにより、命令先取りキュー15への命令格納動作
を停止させ、命令先取りキュー15内の命令が全て実行し
尽くされた後、命令の実行完了と次の命令を読み取るた
めの命令読み取り指示信号104が同期することを利用し
て、外部から命令の実行をトレースしている。
【0010】このため、前記従来のマイクロプロセッサ
においては、第1に、命令の実行をトレースするために
は、事前に先取り無効化信号100をアクティブにする必
要がある。つまり、先取り無効化信号100がインアクテ
ィブの状態では、先取りされた命令列の中に分岐命令
(分岐条件が真の条件分岐命令も含む)があった場合、
もしくは命令実行中に例外や割り込みが発生してハンド
ラに分岐した場合に、先取りされた命令の順序とは異な
った命令実行シーケンスが発生する。
【0011】このため、外部から命令の先取りに伴う命
令読み取りバスサイクルを監視しても、実際の命令の実
行をトレースすることができない。
【0012】第2に、先取り無効化信号100をアクティ
ブにすると命令先取り機能が停止するため命令先取り機
能が作動している場合と比較して外部から命令を読み取
るタイミングが異なってしまうという問題がある。
【0013】第3に、先取り無効化信号100をアクティ
ブにしてから、命令キュー15が空になるまでに実行され
る命令はその実行のトレースができないという問題があ
る。
【0014】従って、本発明は、前記問題点を解消し、
外部からの制御信号により命令の先き取り動作を停止さ
せることなく、先取りされた命令の実行を外部から正確
にトレースすることを可能とするマイクロプロセッサを
提供することを目的とする。
【0015】
【課題を解決するための手段】前記目的を達成するた
め、本発明は、命令をデコードする命令デコード手段
と、命令デコード手段によりデコードされた命令を格納
する命令キュー手段と、前記命令キュー手段に接続され
制御コードを格納する制御記憶手段と、命令を実行する
命令実行手段とを備え、命令を先取り実行するように構
成されて成るマイクロプロセッサにおいて、前記命令デ
コード手段は、デコードした命令が分岐命令である時に
分岐命令デコード信号を出力し、該分岐命令デコード信
号と前記命令実行手段に保持される状態レジスタの分岐
条件フラグを入力し、分岐の発生を検出した時に分岐発
生検出信号を外部に出力する分岐検出手段を備えたこと
を特徴とするマイクロプロセッサを提供する。
【0016】また、本発明は、命令をデコードする命令
デコード手段と、命令デコード手段によりデコードされ
た命令を格納する命令キュー手段と、前記命令キュー手
段に接続され制御コードを格納する制御記憶手段と、命
令を実行する命令実行手段と、外部からの割り込み信号
を受け取る割り込み入力手段とを備え、命令を先取り実
行するように構成されて成るマイクロプロセッサにおい
て、前記制御記憶手段は、前記割り込み入力手段の出力
と第1のデコード手段を介して接続され、該第1のデコ
ード手段は、前記割り込み入力手段の出力をデコードし
前記制御記憶手段に対して所定の制御コードを出力する
ことを指示する制御信号を出力し、前記制御記憶手段の
出力に接続され、前記所定の制御コードをデコードして
割り込み検出信号を外部に出力する第2のデコード手段
を備えたことを特徴とするマイクロプロセッサを提供す
る。
【0017】さらに、本発明は、好ましい実施態様とし
て、分岐命令検出手段と割り込み検出信号を外部に出力
する請求項6に記載のマイクロプロセッサを提供する。
【0018】
【実施例】図面を参照して本発明の実施例を以下に説明
する。
【0019】図1は、本発明の一実施例の構成を示すブ
ロック図を示している。図2及び図3は、図1の各部の
動作を示すタイミング図である。図4は、図1に示す実
施例の制御フロー図である。
【0020】図1に示すように、本発明の実施例に係る
マイクロプロセッサは、符号化された制御コードを格納
する制御記憶手段21、外部のメモリ(図示せず)をアド
レスバス7、データバス8を介してアクセスする入出力
制御部9、キャッシュメモリ10、セレクタ19,20、命令
デコーダ12、命令キュー15、命令キュー制御部18、デコ
ーダ25、状態フラグ24を備えた命令実行部23、分岐検出
部14、入力バッフ29、出力バッファ4,5,6を備え、更に
命令バス11、制御バス22等の内部バスが設けられてい
る。
【0021】キャッシュメモリ10は、入出力制御部9に
接続され、入出力制御部9がデータバス8を介して外部
メモリから読み込んだ命令を格納する。
【0022】セレクタ19は、入出力制御部9の出力とキ
ャッシュメモリ10の出力のいずれか一方を選択し命令バ
ス11に出力する。
【0023】命令デコーダ12は、命令バス11に接続さ
れ、命令バス11から取り込んだ命令を解読する。
【0024】命令キュー15は、命令デコーダ12に接続さ
れ、命令キュー書き込み信号IDQW16により命令デコ
ーダ12でデコードされたデコード済み命令を取り込み、
命令キュー読み出し信号IDQACK17により取り込ん
だデコード済み命令を、例えば先入れ先出し式に、制御
記憶手段21に出力する。
【0025】制御記憶手段21は、本実施例においては、
マイクロプログラムを格納したROMから構成される。
命令デコーダ12によってデコードされた命令の所定のビ
ットに基づき、命令をマイクロプログラムで実行する
か、又はハードワイヤード(布線)回路で実行するかが
決まる。
【0026】命令をマイクロプログラムで実行する場
合、デコードされた命令の所定のビットフィールドがマ
イクロプログラムのROMのアドレスとしてして構成さ
れ、該アドレスを参照して制御コードが制御記憶手段21
から出力される。制御コードは、例えば命令実行部23の
演算回路の処理動作の制御を指定する情報と現在のマイ
クロ命令の次に実行するマイクロプログラムのアドレス
を含んでいる。
【0027】ハードワイヤード回路で実行される命令
は、命令デコーダ12によってデコードされたコード自体
が命令実行部23の各演算回路の処理動作を指定するよう
に構成されているため、制御記憶手段21に転送されるこ
となく命令キュー15から制御バス22を介して直接命令実
行部23に転送され、命令実行部23においてハードワイヤ
ード回路でデコードされ各演算回路が作動される。
【0028】セレクタ20は、命令キュー15の出力と制御
記憶手段21の出力の一方を選択し制御バス22に出力す
る。制御バス22は制御記憶手段21にフィードバックする
制御信号を含んでいる。
【0029】命令キュー制御部18は、制御バス22に接続
され、制御バス22に送出された制御コードに従って命令
キュー書き込み信号IDQW16と命令キュー読み出し信
号IDQACK17を生成する。
【0030】出力バッファ5は、命令キュー読み出し信
号IDQACK17を命令実行開始信号EXEST3とし
て外部に出力する。
【0031】入力バッファ29は、外部からの割り込み信
号であるマスカブル(マスク可能な)割り込み信号IN
T27やノンマスカブル(マスク不能な)割り込み信号N
MI28を受け取り、デコーダ25に出力する。
【0032】デコーダ25は、この入力バッファ29の出力
をデコードし制御記憶手段21に対して割り込み処理の実
行を指示する制御信号を生成する。
【0033】命令実行部23は、制御バス22に接続され、
制御バス22を介して転送される制御コードに従って演算
処理を行ない、演算結果の状態は状態フラグ24にセット
される。
【0034】状態フラグ24(「PSW」ともいう)は、
演算回路の処理結果の状態を示すフラグで、分岐条件フ
ラグの構成としては、例えば、演算結果が負であるこ
と、演算結果がゼロであること、キャリーの有無、オー
バフローの発生等を示す各ビットから成る。状態フラグ
24は、更にゼロ除算の発生、無効演算の発生、マクク可
能な割り込みの許可レベル、NMI(マスク不能な割り
込み)処理中等処理装置の各種状態を指示するビットを
含んでいる。条件分岐命令の実行においては、状態フラ
グ24の分岐条件フラグを参照して分岐条件の真偽が判定
され分岐発生の有無が決定される。
【0035】分岐命令デコード信号13は、命令デコーダ
12により生成され、デコードした命令が分岐命令である
ことを示す。
【0036】分岐検出部14は、この分岐命令デコード信
号13と、命令実行部23が保持する状態フラグ24を入力
し、無条件分岐命令がデコードされた場合、及び、分岐
条件が真である条件分岐命令がデコードされた場合に、
アクティブとなる信号を命令キュー書き込み信号IDQ
W16に同期して出力する。
【0037】出力バッファ4は、この分岐検出部14の出
力を分岐命令を要因とするパイプライン初期化信号PI
PFLSHI1として外部に出力する。信号PIPFL
SHIは分岐命令の分岐発生によりパイプラインがフラ
ッシュされたことを外部に知らせるための信号である。
【0038】デコーダ26は、制御バス22に接続され、制
御バス22上の制御コードが制御分岐指示コードである場
合にアクティブとなる信号を生成する。
【0039】出力バッファ6は、このデコーダ26の出力
信号を割り込み又は例外を要因とするパイプライン初期
化信号PIPFLSHE2として外部に出力する。信号
PIPFLSHEは割り込み又は例外の発生によりプロ
グラムの流れに分岐が生じ、パイプラインがフラッシュ
されたことを外部に知らせるための信号である。
【0040】次に、分岐命令を要因とするパイプライン
初期化信号PIPFLSHI1と命令実行開始信号EX
EST3の出力タイミングについて説明する。
【0041】制御記憶手段21は、制御バス22を介して入
出力制御部9を制御し、不図示の外部メモリからデータ
バス8を介して命令を読み出し、この読み出された命令
をキャッシュメモリ10に格納する。
【0042】制御記憶手段21は、制御バス22を介してキ
ャッシュメモリ10を制御し、キャッシュメモリ10から命
令を取り出し、このキャッシュメモリ10から取り出され
た命令を命令バス11を介して命令デコーダ12に転送す
る。
【0043】実行しようとする命令が、すでにキャッシ
ュメモリ11に存在する場合はデータバス8を駆動するこ
となく直接キャッシュメモリ11から命令を取り出す。セ
レクタ19を制御することにより入出力制御部9が外部メ
モリから読み込んだ命令を直接命令バス11に転送するこ
ともできる。デーダバス8上の命令が命令バス11に転送
されるには最低1クロックを要する。
【0044】命令デコーダ12は、命令バス11の命令を1
クロックでデコードして出力する。命令デコーダ12でデ
コードされた命令は、半クロック後に命令キュー書き込
み信号IDQW16に同期して命令キュー15に書き込ま
れ、最低1クロック後に命令キュー読み出し信号IDQ
ACK17に同期して命令キュー15から読み出された後
に、命令実行部23もしくは制御記憶手段21によって実行
される。
【0045】命令キュー読み出し信号IDQACK17
は、出力バッファ5を介して1クロック遅れて命令実行
開始信号EXEST3として外部に出力される。
【0046】この命令実行開始信号EXEST3を監視
することにより、命令の実行開始を外部からトレースす
ることができる。
【0047】命令デコーダ12に入力される命令が、分岐
命令である場合は、命令デコーダ12が分岐命令をデコー
ドしたことを知らせる分岐命令デコード信号13を分岐検
出部14に出力する。
【0048】分岐検出部14は、この分岐命令デコード信
号13と命令実行部23の状態フラグ24を用いて分岐命令に
よる分岐発生の有無を判定し、判定結果信号を、命令デ
コード開始から半クロック後に命令キュー書き込み信号
IDQW16に同期させて出力する。
【0049】分岐検出部14の出力信号は、出力バッファ
4を介し分岐命令を要因とするパイプライン初期化信号
PIPFLSHI1として1クロック遅れて外部に出力
される。
【0050】即ち、無条件分岐命令もしくは分岐が発生
する条件分岐命令が命令デコーダ12に入力されてから1.
5クロック後、分岐命令に対する命令実行開始信号EX
EST3が出力される最低1クロック前に分岐命令要因
パイプライン初期化信号PIPFLSHI1が1クロッ
ク期間アクティブとなる。
【0051】命令キュー15から出力されたデコード済み
の命令には、乗算命令、除算命令、ビットストリング命
令のように制御記憶手段21のマイクロプログラムによる
制御によって実行される複雑な命令と、加算、論理演算
のように命令実行部内23の専用ハードワイヤード回路に
より処理され制御記憶手段21による制御を必要としない
簡単な命令がある。
【0052】命令キュー15から出力されたデコード済み
の命令が、命令実行部23内の専用回路により処理される
簡単な命令の場合には、セレクタ20により選択されて制
御バス22に出力される。制御記憶手段21の制御によって
実行される複雑な命令は制御記憶手段21に転送される。
【0053】次に図2を参照して、図1に示した本実施
例に係るマイクロプロセッサの各部における分岐命令処
理のタイミング関係について説明する。
【0054】図2に示すように、ADD命令(加算、状
態フラグ変化)、MOV命令(転送、状態フラグ無変
化)、NOP命令(ノーオペレーション、状態フラグ無
変化)、BNZ命令(演算結果が0でない時に分岐する
条件分岐)の順に命令が並んでいるものとする。
【0055】図2の上欄において、ADD命令等各命令
右欄のIF,AL,ID,MI,EX,WBは、本実施
例のマイクロプロセッサにおけるパイプライン処理の各
段のステージの進行過程をクロック信号と対応して示し
ている。
【0056】図2に示す如く、パイプラインのステージ
はクロックに同期して進む。なお、図2において、上欄
と下欄は互いに時間的にリンクして(クロック信号に対
応して)図示されている。
【0057】パイプラインの各ステージを簡単に説明す
ると、IFは命令フェッチステージを示し、AL(ALig
n)はアラインステージを示している。アラインステージ
では、命令を1ワード(例えば32ビットとする)単位で
フェッチした時、1ワード中に含まれる命令を例えば32
ビット長の命令であれば1個、16ビット長の命令であれ
ば2個という具合に分離したり、命令をデコードし易く
するために命令を命令コード部分とオペランド部分とに
分離する等の処理が行なわれる。
【0058】IDは、命令をデコードするステージであ
り,MI(Micro Instruction)は、制御記憶手段21に
おいて制御バス22を介して命令実行部23に転送される制
御コードを生成したり、命令実行部23のハードワイヤー
ド回路で制御コードがデコードされるステージで、実質
的にマイクロ命令の生成、転送、デコードが行なわれ
る。
【0059】EXは命令実行ステージを示し、命令実行
部23の演算回路で命令コードに従って演算処理が行なわ
れる。WBは、演算結果をレジスタやメモリに書き込む
ステージである。
【0060】図2の上欄に示すように、本パイプライン
処理においては、例えばADD命令がEXステージで命
令実行される時に、次のMOV命令は前段のMIステー
ジにあり、NOP命令はIDステージでデコードされる
という具合に、パイプラインの各ステージにおいて複数
命令が多重化して同時に処理される。
【0061】更に、図2において、BNZ命令の次の
「ストール」とは、パイプライン処理の停止を表わして
いる。図2では、BNZ命令の実行により分岐が発生し
てパイプラインがフラッシュした時、分岐先アドレスの
命令(図2の場合、MOV命令)をフェッチするまでパ
イプラインが停止していることを示すためにストールが
挿入されている。
【0062】ストール期間が2クロック分であるのは、
分岐命令BNZをアラインしてオペランド値から分岐先
アドレスの計算を開始し、その計算を終了するまでに要
する時間の為である。
【0063】このストール期間は、分岐命令の前に状態
フラグ24を変える命令が無い場合、分岐先アドレスを計
算する時間とされるが、分岐命令の直前等に状態フラグ
24を変える命令がある場合、その命令の実行(EX)が
終わる迄分岐の有無が分からないために2クロックより
も多くの期間パイプラインはストールされる。
【0064】図2の上欄に示す如く、BNZ命令のID
ステージとその二つ前のMOV命令のEXステージとは
同時刻のクロックで実行開始される。即ち、命令デコー
ダ12においてBNZ命令がデコードされる時、MOV命
令の実行が開始されている。
【0065】このようにBNZ命令の2つ前までの命令
が状態フラグ24を変化させない場合は、BNZ命令をデ
コードして半クロック後には、命令キュー書き込み信号
IDQW16に同期した制御信号が分岐検出部14から出力
され、出力バッファ4で1クロック保持されたあと分岐
命令を要因とするパイプライン初期化信号PIPFLS
HI1がアクティブとなる。
【0066】条件分岐命令の2つ前までに状態フラグ24
を変化させる命令がある場合は、状態フラグを変化させ
る命令の実行が完了し、状態フラグ24が確定するまで分
岐命令を命令デコーダ12に止めておくように、命令デコ
ーダ12が制御される。
【0067】BNZ命令に対する命令実行開始信号EX
EST3は、分岐命令を要因とするパイプライン初期化
信号PIPFLSHI1の最低1クロック後にアクティ
ブとなる。
【0068】このため、逆に、分岐命令を要因とするパ
イプライン初期化信号PIPFLSHI1がアクティブ
になった後にアクティブとなった命令実行開始信号EX
EST3は、無条件分岐命令もしくは分岐する条件分岐
命令に対する実行開始信号であり、このため、分岐命令
に後続する命令であって命令デコーダ12や命令キュー15
に先読みされている命令が実行されないことを、外部か
ら検知することができる。
【0069】なお、図2の命令実行開始信号EXEST
はマイクロプロセッサの外部端子出力信号であり、プロ
セッサ内部の命令実行部23が実行を開始する時刻より
も、半クロック遅れて外部に出力される。
【0070】次に、図3を参照して、割り込み又は例外
を要因とするパイプライン初期化信号PIPFLSHE
2の出力タイミングについて説明する。
【0071】命令実行中に外部から割り込み要求があっ
た場合、デコーダ25は割り込み信号を受け取る入力バッ
ファ29からの信号をデコードし、制御記憶手段21に対し
て割り込み制御をするように指示する。
【0072】この信号を受けた制御記憶手段21は割り込
みの種類に応じ、割り込み制御をするための制御コード
列を制御バス22に出力する。
【0073】同様に、命令実行中にゼロ除算例外(Zero
Divide Trap)等の例外(「トラップ」ともいう)が発
生した場合、制御記憶手段21は例外の種類に応じ、例外
を処理するための制御コード列を制御バス22に出力す
る。これらの制御コード列の最後には制御記憶手段21が
分岐を発生させることを指示する制御分岐指示コードが
付加されている。
【0074】制御分岐指示コードを受けた制御記憶手段
21及び入出力制御部9は割り込み、例外のハンドラアド
レスから命令を読み込む処理を開始する。
【0075】デコーダ26は、制御バス22をデコードし、
制御バス22に制御分岐指示コードが出力されてから半ク
ロック後に1クロック期間アクティブとなる信号を生成
する。この信号は、出力バッファ6で1クロック保持さ
れてから、割り込み又は例外を要因とするパイプライン
初期化信号PIPFLSHE2として外部に出力され
る。
【0076】割り込み又は例外を要因とするパイプライ
ン初期化信号PIPFLSHE2がアクティブとなった
場合には、割り込み又は例外に応じて各ハンドラへの分
岐が発生し、割り込み時に実行中の命令及び例外の要因
となった命令に後続する命令であって命令デコーダ12や
命令キュー15に既に先読みされている命令は、実行され
ないことを外部から検知することができる。
【0077】次に図4を参照して、本実施例における割
り込み及び例外発生時の処理フローを説明する。図4に
は、ユーザプログラム実行中にマスカブル割り込み要求
INT割り込みが発生し、その後ゼロ除算例外が発生し
た場合におけるユーザプログラムと制御記憶手段21間の
制御シーケンスのフローが示されている。
【0078】仮に、ADD命令実行中に、INT割り込
みが入るとADD命令実行終了後に実行が制御記憶手段
21に移る。制御記憶手段21は状態フラグ24等の内部情報
を退避するための制御コードを制御バス22に出力した
後、制御分岐指示コードを制御バス22に出力しパイプラ
イン初期化信号PIPFLSHEをアクティブとした
後、ユーザプログラムのINT割り込みハンドラに制御
を移す。
【0079】INT割り込みハンドラでは、対応する割
り込み処理が行われ復帰命令RETIが最後に実行され
る。RETI命令は制御記憶手段21によって実行され、
制御記憶手段21は状態フラグ24等を復帰するための制御
コードを制御バス22に出力した後、制御分岐指示コード
を制御バス22に出力し割り込みが入った時に実行してい
た命令の次の命令に制御を移す。
【0080】除算命令DIVの実行は、制御記憶手段21
により実行される。演算中にゼロ除算が発生した場合、
制御記憶手段21は、除算例外制御を開始する。
【0081】制御記憶手段21は除算例外を処理するため
の制御コードや状態フラグ24を退避するための制御コー
ド等を制御バス22に出力した後、制御分岐指示コードを
制御バス22に出力してパイプライン初期化信号PIPF
LSHEをアクティブとした後、ゼロ除算例外ハンドラ
に制御を移す。
【0082】ゼロ除算例外ハンドラでは例外の処理を実
行し、最後に復帰命令RETIを実行する。RETI命
令は制御記憶手段21によって実行され、制御記憶手段21
は状態フラグ等を復帰するための制御コードを制御バス
22に出力した後、制御分岐指示コードを制御バス22に出
力し例外を発生した命令に制御を移す。
【0083】以上、本実施例のマイクロプロセッサは、
命令デコーダによって分岐命令デコード時に生成される
制御信号と命令実行部の状態フラグに基づき、無条件分
岐命令のデコード時、及び条件命令においては分岐条件
成立時に分岐発生検出信号を出力し、更に、割り込み又
は例外発生を要因として制御記憶手段が出力する制御分
岐指示コード(マイクロ命令)に基づきパイプライン初
期化信号を出力して分岐の発生を外部に知らせるため、
外部から命令の実行を正確にトレースすることを可能と
する。
【0084】なお、本発明は、本実施例において示した
ステージ構成から成るパイプライン制御方式のマイクロ
プロセッサに限定されるものでないことは勿論である。
また本発明は、命令を先取りして実行する設計方式の全
てのマイクロプロセッサを含むものである。
【0085】
【発明の効果】以上説明したように、本発明のマイクロ
プロセッサによれば、命令デコーダによって分岐命令デ
コード時に生成される制御信号と命令実行部の状態フラ
グに基づき分岐発生時にパイプラインの初期化を知らせ
る検出信号が出力されるため、外部からの制御信号によ
り命令の先取り動作を停止させることなく、外部から命
令の実行を正確にトレースすることができるという利点
を有する。このため、本発明によれば、命令を先取り実
行する設計方式のマイクロプロセッサの開発効率を特段
に向上せしめる。
【0086】また、本発明によれば、割り込み、又は例
外を要因とする分岐の発生時に制御記憶手段が所定の制
御分岐指示コードを出力し、割り込み検出信号を外部に
出力するため、割り込みもしくは例外が発生しハンドラ
に分岐することにより先取りされた命令列の一部が無効
化された場合に、外部から検知することができるという
利点を有する。
【0087】さらに、本発明によれば、無条件分岐命令
と条件分岐命令の分岐成立時に出力される分岐検出信号
と、割り込みもしくは例外発生による分岐を知らせる割
り込み検出信号とが設けられ、分岐要因に対応して命令
のトレース及び解析が行なえるという利点を有する。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】図1に示した実施例の分岐命令処理時の各部に
おけるタイミング図である。
【図3】図1に示した実施例の割り込み発生時の各部に
おけるタイミング図である。
【図4】図1に示した実施例の制御のフローを示す流れ
図である。
【図5】従来例の構成を示すブロック図である。
【符号の説明】
1 分岐命令を要因とするパイプライン初期化信号 2 割り込み又は例外を要因とするパイプライン初期化
信号 3 命令実行開始信号 4〜6 出力バッファ 7 アドレスバス 8 データバス 9 入出力制御部 10 キャッシュメモリ 11 命令バス 12 命令デコーダ 13 分岐命令デコード信号 14 分岐検出部 15 命令キュー 16 命令キュー書き込み信号 17 命令キュー読み出し信号 18 命令キュー制御部 19〜20 セレクタ 21 制御記憶手段 22 制御バス 23 命令実行部 24 状態フラグ 25〜26 デコーダ 27 マスカブル割り込み信号 28 ノンマスカブル割り込み信号 29 入力バッファ 100 先取り無効化信号 101 先取り指示信号 102 命令供給信号 103 命令要求信号 104 命令読み込み信号 105 命令供給線 106 ANDゲート
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06F 15/78 510 K

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】命令をデコードする命令デコード手段と、
    命令デコード手段によりデコードされた命令を格納する
    命令キュー手段と、前記命令キュー手段に接続され制御
    コードを格納する制御記憶手段と、命令を実行する命令
    実行手段とを備え、命令を先取り実行するように構成さ
    れて成るマイクロプロセッサにおいて、 前記命令デコード手段は、デコードした命令が分岐命令
    である時に分岐命令デコード信号を出力し、該分岐命令
    デコード信号と前記命令実行手段に保持される状態レジ
    スタの分岐条件フラグを入力し、分岐の発生を検出した
    時に分岐発生検出信号を外部に出力する分岐検出手段を
    備えたことを特徴とするマイクロプロセッサ。
  2. 【請求項2】命令をデコードする命令デコード手段と、
    命令デコード手段によりデコードされた命令を格納する
    命令キュー手段と、前記命令キュー手段に接続され制御
    コードを格納する制御記憶手段と、命令を実行する命令
    実行手段と、外部からの割り込み信号を受け取る割り込
    み入力手段とを備え、命令を先取り実行するように構成
    されて成るマイクロプロセッサにおいて、 前記制御記憶手段は、前記割り込み入力手段の出力と第
    1のデコード手段を介して接続され、該第1のデコード
    手段は、前記割り込み入力手段の出力をデコードし前記
    制御記憶手段に対して所定の制御コードを出力すること
    を指示する制御信号を出力し、 前記制御記憶手段の出力に接続され、前記所定の制御コ
    ードをデコードして割り込み検出信号を外部に出力する
    第2のデコード手段を備えたことを特徴とするマイクロ
    プロセッサ。
  3. 【請求項3】前記制御記憶手段から出力される制御コー
    ドによって制御され、前記命令デコード手段によりデコ
    ードされた命令を前記命令キュー手段に格納することを
    指示する第1の制御信号(IDQW)と、前記命令キュー手段
    からデコードされた命令を取り出すことを指示する第2
    の制御信号(IDQACK)を生成する命令キュー制御手段を備
    えたことを特徴とする請求項1又は2記載のマイクロプ
    ロセッサ。
  4. 【請求項4】前記第2の制御信号(IDQACK)が、命令実行
    開始信号(EXEST)として外部に出力されることを特徴と
    する請求項3記載のマイクロプロセッサ。
  5. 【請求項5】前記分岐検出手段が、前記分岐発生検出信
    号を前記第1の制御信号(IDQW)に同期して生成すること
    を特徴とする請求項3又は4に記載のマイクロプロセッ
    サ。
  6. 【請求項6】命令を実行する命令実行手段と、 命令をデコードする命令デコード手段と、 前記命令デコード手段に接続され前記命令デコード手段
    によりデコードされた命令を格納する命令キュー手段
    と、 この命令キュー手段に接続され符号化された制御コード
    を格納する制御記憶手段と、 外部からの割り込み信号を受け取る入力手段と、 この入力手段の出力をデコードし前記制御記憶手段に対
    して第1の制御コードを出力することを指示するための
    第1の制御信号を生成する第1のデコード手段と、 前記制御記憶手段からの制御コードが第1の制御コード
    である場合にアクティブとなる第2の制御信号を生成す
    る第2のデコード手段と、 前記第2の制御信号を外部に出力する第1の出力手段
    と、 前記制御記憶手段からの制御コードにより制御され前記
    命令デコード手段によりデコードされた命令を前記命令
    キュー手段に格納することを指示する第3の制御信号(I
    DQW)と、前記命令キュー手段からデコードされた命令を
    取り出すことを指示する第4の制御信号(IDQACK)を生成
    する命令キュー制御手段と、 前記第4の制御信号を命令実行開始信号として外部に出
    力する第2の出力手段と、を備え、 前記命令デコード手段は、デコードした命令が分岐命令
    である時に、分岐命令がデコードされたことを知らせる
    第5の制御信号を生成し、 更に、 この第5の制御信号と前記命令実行手段が保持する分岐
    条件フラグとにより分岐発生の有無を判定し、分岐が発
    生する場合には前記第3の制御信号に同期して第6の制
    御信号を生成する分岐検出手段と、及び、 前記第6の制御信号を外部に出力する第3の出力手段と
    を備えたマイクロプロセッサ。
JP5191789A 1993-07-07 1993-07-07 マイクロプロセッサ Expired - Fee Related JP2536726B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP5191789A JP2536726B2 (ja) 1993-07-07 1993-07-07 マイクロプロセッサ
EP94110434A EP0633521B1 (en) 1993-07-07 1994-07-05 Microprocessor including circuit for generating signal used for tracing executed instruction stream
DE69421764T DE69421764T2 (de) 1993-07-07 1994-07-05 Mikroprozessor mit Schaltung zum Erzeugen eines Signals zum Verfolgen des Befehlsstromes
US08/267,917 US5787276A (en) 1993-07-07 1994-07-06 Microprocessor including circuit for generating signal used for tracing executed instruction stream
KR1019940016269A KR970011209B1 (ko) 1993-07-07 1994-07-07 실행된 명령 스트림을 추적하기 위해 사용되는 신호를 발생하기 위한 회로를 포함하는 마이크로프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5191789A JP2536726B2 (ja) 1993-07-07 1993-07-07 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH0728669A true JPH0728669A (ja) 1995-01-31
JP2536726B2 JP2536726B2 (ja) 1996-09-18

Family

ID=16280570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5191789A Expired - Fee Related JP2536726B2 (ja) 1993-07-07 1993-07-07 マイクロプロセッサ

Country Status (5)

Country Link
US (1) US5787276A (ja)
EP (1) EP0633521B1 (ja)
JP (1) JP2536726B2 (ja)
KR (1) KR970011209B1 (ja)
DE (1) DE69421764T2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100298552B1 (ko) * 1997-08-25 2001-10-26 구자홍 명령디코딩장치
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US9100249B2 (en) * 2008-10-10 2015-08-04 Metaplace, Inc. System and method for providing virtual spaces for access by users via the web

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03260843A (ja) * 1990-03-12 1991-11-20 Fujitsu Ltd 実行確認装置
JPH04364531A (ja) * 1991-06-12 1992-12-16 Toshiba Corp マイクロプロセッサ

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61168046A (ja) * 1985-01-22 1986-07-29 Nec Corp マイクロプロセサ
EP0239023B1 (de) * 1986-03-21 1990-10-17 Siemens Aktiengesellschaft Anordnung zur Bearbeitung von Sprungbefehlen innach dem Fliessbandprinzip arbeitenden Datenverarbeitungsanlagen
US4763253A (en) * 1986-09-26 1988-08-09 Motorola, Inc. Microcomputer with change of flow
JPH0646382B2 (ja) * 1987-10-05 1994-06-15 日本電気株式会社 プリフェッチキュー制御方式
KR940000968B1 (ko) * 1989-08-28 1994-02-07 니뽄 덴끼 가부시끼가이샤 마이크로프로세서
JP2680899B2 (ja) * 1989-08-28 1997-11-19 日本電気株式会社 情報処理装置及びその制御方法
JP2682232B2 (ja) * 1990-11-21 1997-11-26 松下電器産業株式会社 浮動小数点演算処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03260843A (ja) * 1990-03-12 1991-11-20 Fujitsu Ltd 実行確認装置
JPH04364531A (ja) * 1991-06-12 1992-12-16 Toshiba Corp マイクロプロセッサ

Also Published As

Publication number Publication date
DE69421764D1 (de) 1999-12-30
KR970011209B1 (ko) 1997-07-08
KR950003977A (ko) 1995-02-17
EP0633521A1 (en) 1995-01-11
EP0633521B1 (en) 1999-11-24
JP2536726B2 (ja) 1996-09-18
US5787276A (en) 1998-07-28
DE69421764T2 (de) 2000-04-06

Similar Documents

Publication Publication Date Title
US6754856B2 (en) Memory access debug facility
JP3688270B2 (ja) プロセッサの停止
US6604188B1 (en) Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction
KR100900364B1 (ko) 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체
CN100498693C (zh) 经由用于条件评估的使者指令的条件指令执行
US8799628B2 (en) Early branch determination
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
CN118467041B (zh) 用于乱序多发射处理器的指令处理方法及装置
JPH09330221A (ja) マイクロプロセッサにおける早期例外を追跡するシステム及び方法
JP3088129B2 (ja) マイクロプロセッサ
JP2536726B2 (ja) マイクロプロセッサ
JP4243271B2 (ja) データ処理装置およびデータ処理方法
JP2008299729A (ja) プロセッサ
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
JPH06295243A (ja) データ処理装置
KR20070108936A (ko) 조건부 명령어가 실행되지 않을 경우 소스 오퍼랜드를대기하는 것을 중지하는 방법
US6851044B1 (en) System and method for eliminating write backs with buffer for exception processing
US7234043B2 (en) Decoding predication instructions within a superscaler data processing system
US20010007125A1 (en) Computer system with debug facility
JP3199035B2 (ja) プロセッサ及びその実行制御方法
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP2503223B2 (ja) 先行制御方式
JP2572821B2 (ja) 命令再実行による演算処理方式
JP2545594B2 (ja) オペランドデータ先取り方式
JPH09244895A (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: 19960521

LAPS Cancellation because of no payment of annual fees