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

マイクロプロセッサ

Info

Publication number
JP3088129B2
JP3088129B2 JP03124242A JP12424291A JP3088129B2 JP 3088129 B2 JP3088129 B2 JP 3088129B2 JP 03124242 A JP03124242 A JP 03124242A JP 12424291 A JP12424291 A JP 12424291A JP 3088129 B2 JP3088129 B2 JP 3088129B2
Authority
JP
Japan
Prior art keywords
instruction
bus
cycle
state
microprocessor
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
JP03124242A
Other languages
English (en)
Other versions
JPH04350732A (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
Priority to JP03124242A priority Critical patent/JP3088129B2/ja
Priority to US07/891,556 priority patent/US5440700A/en
Priority to DE69218493T priority patent/DE69218493T2/de
Priority to KR1019920009274A priority patent/KR100263262B1/ko
Priority to EP92109137A priority patent/EP0516172B1/en
Publication of JPH04350732A publication Critical patent/JPH04350732A/ja
Application granted granted Critical
Publication of JP3088129B2 publication Critical patent/JP3088129B2/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/22Microcontrol or microprogram arrangements
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、命令実行の中断あるい
は一時的な停止を行う命令機能を有するマイクロプロセ
ッサの状態通知に関する。
【0002】
【従来の技術】マイクロプロセッサの命令セットには、
命令実行を中断、あるいは一時的に停止し、以降の命令
実行処理を先に進めないための命令を持つことがある。
例えばインテル(Intel)社の32ビット・マイク
ロプロセッサi80386におけるHALT(ホール
ト)命令である。このHALT命令は、HALT命令以
降に記述された命令列の実行を先に進めず、マイクロプ
ロセッサの内部状態を保持する機能を持つ。この保持状
態は、ホールト状態と呼ばれる。ホールト状態は、リセ
ット、ノンマスカブル割込み、あるいはマスカブル割込
み等の外部端子が活性化されることで解除される。
【0003】リセット要求が活性化された場合、HAL
T命令以外の命令を実行している場合と同様に、マイク
ロプロセッサは初期化される。一方、ノンマスカブル割
込みあるいはマスカブル割込み要求が活性化された場合
は、HALT命令以外の命令を実行している場合と同様
に、割込み処理が行われる。割込み処理は、通常命令の
実行が終了した時点で受け付けられるが、ホールト状態
では割込み要求に対してただちに受け付けられる。
【0004】前述のi80386マイクロプロセッサで
は、割込みが受け付けられるといくつかのレジスタ資源
の状態(PC:プログラム・カウンタ、CS:コード・
セグメント・レジスタ、PSW:プログラム・ステータ
ス・ワード)が、メモリ上のスタック領域に自動的に退
避される。これらの退避は、割込み処理が終了した場合
にHALT命令が配置されていたアドレスに引続いて配
置されている命令から、新たな命令列の実行を再開する
ために行われる。
【0005】HALT命令に代表されるマイクロプロセ
ッサの動作停止/中断命令は以下の目的で使用される。
【0006】命令実行処理の完了に伴うマイクロプロ
セッサの停止。
【0007】割込み要求によって起動される実時間
(リアルタイム)処理のための待合せ。
【0008】プログラム中の命令を代替することによ
るデバッグ。
【0009】動作停止/中断命令が実行されると、外部
に対してバス・サイクルの起動等の端子状態の変化が起
こらなくなるため、プログラムのデバッグ段階では命令
列のどの位置でホールト状態に遷移したかを検出する必
要がある。
【0010】前述のi80386マイクロプロセッサで
は、ホールト状態に遷移することをホールト表示サイク
ル(HALT Indication Cycle)と
いう特殊なバス・サイクルを起動することで認識され
る。ホールト表示サイクルは、メモリやI/O(入出力
装置)をアクセスするためのバス・サイクルと区別する
ために、バス・サイクルの種類を認識するためのステー
タス信号(BE#3−BE#0)に特定の値(1011
b)を持つ。
【0011】バス・サイクルは大別してデータ・バス端
子をマイクロプロセッサが起動するライト系と、高イン
ピーダンス(Hi−Z)状態に保つリード系がある。i
80386マイクロプロセッサのホールト表示サイクル
は、ライト系のバス・サイクルでありアドレス・バス端
子(A31−A2)にはオール0がドライブされるとと
もに、データ・バス端子(D31−D0)には不定値が
ドライブされる。
【0012】この他にホールト状態に遷移することを通
知する方法として、モトローラ(Motorola)社
の16ビット・マイクロプロセッサMC68000の方
式がある。MC68000マイクロプロセッサでは、ホ
ールト状態を示す専用の端子HALTを持ち、マイクロ
プロセッサがHALT状態に遷移すればこの端子を活性
化する。HALT端子は入出力端子であり、出力端子と
してホールト状態を示す他、非ホールト状態で入力端子
として外部から活性化することで、マイクロプロセッサ
を強制的にホールト状態に一時的に遷移させることがで
きる。
【0013】この場合、ホールト状態表示のための特殊
なバス・サイクルは起動されない。
【0014】
【発明が解決しようとする課題】動作停止/中断命令を
含むプログラムをデバッグする場合、これらの命令が実
行された時点のマイクロプロセッサのレジスタ資源ある
いは内部状態を知る必要がある。
【0015】デバッグにおいて最も重要なレジスタ資源
は、命令列がどこまでも処理されたかを示すプログラム
・カウンタである。命令フェッチのためのメモリ・リー
ド・サイクル(フェッチ・サイクル)に出力されるアド
レス・バス端子の状態を監視することにより、プログラ
ム実行のある程度の流れを知ることはできる。
【0016】ホールト表示サイクルの起動、あるいはH
ALT端子の活性化の直前に発行されたフェッチ・サイ
クルのアドレス・バス端子の状態を記憶することで、動
作停止/中断命令が実行されたアドレスの範囲を推測で
きる。
【0017】しかしながら、フェッチ・サイクルにおけ
るアドレス・バス端子の状態は、以下の場合に正しく動
作停止/中断命令が実行されたアドレスを特定できな
い。
【0018】(1)アドレス・バス端子が、バイト・ア
ドレスまで特定するに十分でない場合。
【0019】前述のi80386マイクロプロセッサで
は、プログラム・カウンタは32ビット幅であるのに対
し、アドレス・バス端子はワード・アドレス(32ビッ
ト単位データ)を特定するための30ビット幅(A31
−A2)である。このため、ワード・アドレス内のどの
バイトに配置されたHALT命令によってホールト状態
に遷移したかを知ることができない。
【0020】(2)マイクロプロセッサがパイプライン
処理を行う場合。
【0021】命令処理性能を向上させるために、一つの
命令をいくつかの処理(ステージ)に分割して、同時に
複数の命令処理を行うパイプライン処理が採用される場
合である。代表的なパイプライン・ステージとしては、
1)命令コード・フェッチ、2)命令デコード、3)メ
モリ・オペランドの実効アドレス計算、4)(仮想記憶
方式を採用した場合)仮想アドレスから物理アドレスへ
のアドレス変換、5)オペランドの読出し、6)命令実
行、7)結果の格納、で構成される。
【0022】このように、多数のパイプライン・ステー
ジが採用された場合、“命令コード・フェッチ”は実際
に一連の命令処理が終了する“結果の格納”に対し、数
命令分先行することになる。したがって、ホールト表示
サイクルの発行あるいはHALT端子の活性化が外部で
検知された時点に対し、直前のフェッチ・サイクルで示
されるアドレスは、ホールト状態に遷移した命令のアド
レスに対して、進んでしまうことになり補正が必要にな
る。
【0023】ところで、命令によって各パイプライン・
ステージの処理時間が異なるため、フェッチ・サイクル
が先行している命令数を特定することはできない。
【0024】(3)命令コードがキャッシングされてい
る場合。
【0025】命令コードをキャッシングする命令コード
・キャッシュを持つマイクロプロセッサ(ex.i80
486マイクロプロセッサ)の場合、命令列が命令コー
ド・キャッシュに格納されている間(ヒットしている場
合)、外部メモリに対する命令フェッチを行わず(フェ
ッチ・サイクルを起動せず)、命令コード・キャッシュ
から命令コードを供給する。
【0026】このため、命令コード・キャッシュにヒッ
トしている間にホールト状態に遷移した場合、アドレス
検出に関して直前のフェッチ・サイクルはまったく意味
の無い値を持つことになる。
【0027】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、命令実行の中断あるいは一時的な停止を行う命
令機能を有するマイクロプロセッサにおいて、前記命令
を検出しバス・サイクルを発生する手段、前記バス・サ
イクルに同期して、特定のステータス信号を出力する第
一の出力手段、およびプログラム・カウンタの内容をア
ドレス・バスに出力する第二の出力手段を有している。
【0028】さらに、本発明によれば、命令実行の中断
あるいは一時的な停止を行う命令機能を有するマイクロ
プロセッサにおいて、前記命令を検出しバス・サイクル
を発生する手段、前記バス・サイクルに同期して、特定
のステータス信号を出力する第一の出力手段、およびプ
ログラム・カウンタの内容をデータ・バスに出力する第
二の出力手段を有するマイクロプロセッサが得られる。
【0029】本発明の好ましい実施例においては、前記
バス・サイクルの発生手段によって発生されたバス・サ
イクルに同期してプロセッサ・ステータス・ワードの内
容をデータ・バスに出力する第三の出力手段を持つこと
を特徴とする。
【0030】
【実施例】以下、実施例につき詳述する。
【0031】図1は、本発明を利用した動作停止/保留
命令としてHALT命令を持つマイクロプロセッサ10
0の構成を示す図面である。
【0032】本マイクロプロセッサ100は、パイプラ
イン処理を行うために、命令フェッチ・ユニット(以下
IUと称する)101、命令デコード・ユニット(以下
DUと称する)102、命令実行ユニット(以下EUと
称する)103、実効アドレス計算ユニット(以下AU
と称する)104、バス・サイクル制御ユニット(以下
BUと称する)105を持つ。この他にIU101、D
U102、EU103のそれぞれが処理している命令の
アドレスをそれぞれ保持する32ビット幅のプログラム
・カウンタPCIU 111,PCDU 112,PC
EU113を持つ。
【0033】IU101は、フェッチ・サイクルの起動
制御、およびフェッチ・サイクルで外部より取り込んだ
命令コードを蓄積する。命令コード・キャッシュを含む
ような構成を考えられる。命令コードは、16ビット長
あるいは32ビット長のいずれかである。
【0034】DU102は、IU101に蓄積された命
令コードをデコードし、個々の命令に特有な処理を示す
信号を発生させる。DU102で発生された信号は、図
面では一部省略されているがその他の各ユニットに対す
る動作指示信号として与えられる。
【0035】EU103は、32本の32ビット幅の汎
用レジスタ、32ビット幅の演算装置を含み、DU10
2によって指定された命令実行処理を行う。その内部制
御はハードワイアド論理によるもの、マイクロプロセッ
サを用いたもの等が考えられる。
【0036】AU104は、DU102がメモリあるい
はI/Oに対するアクセスを含む命令であることを検知
すると、オペランドに対するアドレスを計算する。アド
レス計算に使用される要素は、命令コード中に含まれる
ディスプレースメント値、あるいは汎用レジスタの値が
用いられる。前者はIU101から、後者はEU103
から供給される。
【0037】BU105は、他のユニットから与えられ
るアドレス情報、データ情報、および起動要求に基づい
て、外部バス・サイクルを発生する。バス・サイクルで
外部から読み込まれたデータは、命令コードはIU10
1に、オペランド・データはEU103に供給される。
【0038】各ユニットは、図1に概略を示すようにバ
ス構造で内部接続される。
【0039】BU105とIU101間、およびIU1
01とDU102間は命令コードを転送するために、A
U104とIU101間、およびAU104とEU10
3間はアドレス計算に使用されるアドレス要素を転送す
るために、EU103とBU105間はリード・オペラ
ンドまたはライト・オペランドを双方向的に転送するた
めに、AU104とBU105間は実効アドレスを転送
するために、PCIU111,PCDU 112,PC
EU 113とBU間はオペランド・アクセス以外のバ
ス・サイクルで使用するアドレスを転送するために、E
U103とBU105の間は任意のバス・サイクルで使
用するアドレスを転送するために接続される。
【0040】図面ではIU101からのバス・サイクル
起動要求はFREQ信号、DU102からのものはOP
REQ信号、EU103からのものはACREQ信号で
表現される。これらの要求信号は、実際にはバス・サイ
クルの種類を表現するための複数の信号、およびタイミ
ングを規定する信号等の複数の信号によって構成され
る。
【0041】次にBU105と外部のインタフェース機
能について詳しく説明する。
【0042】BU105はバス・サイクルに関連して、
31ビットのハーフワード・アドレス(16ビット単位
アドレス)を出力するアドレス・バス端子A31−A1
121、32ビット・データの授受を行うデータ・バ
ス端子D31−D0 122、バス・サイクルの種類を
示すステータス信号ST2−ST0、バス・サイクルの
開始タイミングを示す信号BCYST(−)、リード系
/ライト系のバス・サイクルを識別する信号R/W
(−)を出力する出力端子群123,124,125、
バス・サイクルの終了を外部から通知する信号READ
Y(−)を入力する端子を持つ。ここで、(−)は負論
理信号であることを示す。
【0043】基本的なバス・サイクルは、マイクロプロ
セッサ100のクロック入力端子127に加えれる基準
クロック信号CLKに同期した2つのステートで構成さ
れる。第一のステートT1の先頭ではアドレス・バス端
子A31−A1 121、およびステータス信号ST2
−ST0、および識別信号R/W(−)用の出力端子1
23,125がドライブされる。また、T1ステート期
間中、タイミング信号BCYST(−)用出力端子12
4が活性化される。ライト系のバス・サイクルでは、T
1ステートの中央で書込のためのデータがデータ・バス
端子D31−D0 122にドライブされる。
【0044】第二のステートT2の最後で通知信号RE
ADY(−)端子126の状態がサンプリングされ、活
性化されていればバス・サイクルは完了し、アイドル・
ステートT1に遷移する。通知信号READY(−)端
子126が活性化されていない場合、再度T2ステート
が繰り返される。
【0045】リード系のバス・サイクルでは、最後のT
2ステートの終了時にデータ・バス端子D31−D0
122上のデータがマイクロプロセッサ100にサンプ
リングされる。
【0046】ステータス信号ST2−ST0端子123
の状態は、第三図に示したようにバス・サイクルの種類
を識別する。メモリ・アクセスやI/Oアクセスの他
に、ホールト状態に遷移したことを通知する“ホールト
表示”のためのバス・サイクルが定義される。
【0047】次に本実施例の動作について説明する。
【0048】BU105の制御に関し、IU101がフ
ェッチ・サイクルの起動を要求すれば、PCIU 11
1が含むアドレスがBU105に転送され、ST2−S
T0端子123に011bを出力するリード系のバス・
サイクルが起動される。バス・サイクルの終了時にデー
タ・バス端子D31−D0 122の状態がサンプリン
グされ、IU101に転送される。
【0049】DU102でメモリ・リード、あるいはI
/Oのリード等のリード・オペランド(シングル)が必
要なことが検知されると、EU103による実行処理に
先立ってAU104で実効アドレスが計算された上でB
U105に転送され、ST2−ST0端子123に01
0bまたは110bを出力するリード系のバス・サイク
ルが起動される。バス・サイクルの終了時にデータ・バ
ス端子D31−D0122の状態がサンプリングされ、
EU105に転送される。
【0050】DU102でメモリ・ライト、あるいはI
/Oライト等のライト・オペランド(シングル)が必要
なことが検知されると、EU103による実行処理に先
立ってAU104で実効アドレスが計算された上でBU
105に転送される。EU105で実行処理を終了する
際に、EU103からBU105に対してオペランド・
データが転送されるとともにライト系バス・サイクルの
起動が要求される。データ・バス端子D31−D0 1
22にオペランド・データを、ST2−ST0端子12
3に010bまたは110bを出力するライト系のバス
・サイクルが起動される。
【0051】一命令で複数のオペランド・アクセスを必
要とする命令(ex.文字列操作命令)等では、ストリ
ング系オペランドのアクセスが行われる。この場合、バ
ス・サイクルで必要なアドレスは命令実行処理段階の中
途でEU103からBU105に対して転送されるとと
もに、EU103から直接BU105に対してST2−
ST0端子123に001bを出力するバス・サイクル
の起動要求が発行される。データ・バス端子D31−D
0 122とやりとりされるオペランド・データの授受
は、EU103とBU105の間で行われる。
【0052】ST2−ST0端子123に101bを出
力するバス・サイクル(マシン・フォルト表示)に関す
る説明は省略する次にHALT命令の実行に関する説明
をする。
【0053】DU102がHALT命令をデコードする
と、IU101に対して引続く命令コード供給を保留す
るように指示する。HALT命令はオペランドを伴わな
い命令であるため、AU104には動作指示が与えられ
い。同時にEU103に対しては、HALT命令の実行
処理が指定される。EU103はPCEU113の内容
をバス・サイクルに対するアドレスとしてBU105に
転送する。PCEU113は、HALT命令が格納され
ているアドレスを保持している。
【0054】同時にEU103からST2−ST0端子
123に111bを出力するバス・サイクルの起動要求
が発行される。データ・バス端子D31−D0 122
のドライブにより、消費電力の増加を避けるために、リ
ード系のバス・サイクルが起動される。消費電力を考慮
する必要が無ければ、リード系バス・サイクルにこだわ
る必要はない。
【0055】要求によって起動されたバス・サイクルに
おいてT1ステートの先頭から、アドレス・バス端子A
31−A1 121にはPCEU 113の内容が、S
T2−ST0端子123には111bが、R/W(−)
端子125には1bがそれぞれ出力される。BCYST
(−)端子124は、他のバス・サイクルと同様にT1
期間中活性化される(0bにドライブされる)。
【0056】最初のT2ステートの終了後、BU105
はREADY(−)端子126の状態サンプリング、な
らびにバス・サイクル終了保留制御を行わない。バス・
サイクルに対してREADY(−)端子126を活性化
する外部ハードウェアを簡略化するためである。
【0057】データ・バス端子D31−D0 122
は、T1,T2ステートともにHi−Z状態を保持す
る。
【0058】DU102にはIU101からHALT命
令に引続く命令コードの供給が停止し、EU103には
DU102から実行処理の指示が発生しない。このた
め、図面では省略しているがEU103はリセット要求
あるいは割込み要求が外部から加えられるまで停止し、
マイクロプロセッサ100はホールト状態に遷移する。
【0059】EU103はリセット要求あるいは割込み
要求が外部から加えられたことを検知すると、他のユニ
ットに対して再起動を指示し、マイクロプロセッサ10
0はホールト状態を解除する。
【0060】バス・サイクルが発行された時点(BCY
ST(−)端子が活性化された時)で、アドレス・バス
端子A31−A1 121の状態をサンプリングするこ
とで、HALT命令が配置されているアドレスを外部で
知ることができる。
【0061】ホールト表示用バス・サイクルの発行後、
ホールト状態が解除されるまでBU105にはバス・サ
イクル起動が要求されない。このため新たなT1ステー
トが発生せず、アドレス・バス端子A31−A1 12
1およびT1ステートで変化する出力端子ST2−ST
0 123,R/W(−) 125の状態はホールト表
示用バス・サイクルで出力された値を保持する。
【0062】このため、ホールト表示サイクルが発行さ
れた時点のみならず、マイクロプロセッサ100にホー
ルト状態の解除を要求(リセットあるいは割込み要求)
するまでは、任意のタイミングでHALT命令の配置ア
ドレスを知り得る。
【0063】常にアドレス・バス端子A31−A1 1
21をLED表示装置等で観測するようなシステムにお
いても、人間が直接HALT命令の配置アドレスを観測
できる。
【0064】本実施例におけるホールト表示サイクルの
タイミングを図4に示す。
【0065】本実施例では32ビットのアドレス空間に
対して、アドレス・バス端子A31−A1 121は3
1ビットしか無いが、命令コード長が16ビットあるい
は32ビットであるため、アドレスの最小有意ビット
(LSB)を出力する必要はない。
【0066】また、本実施例ではホールト表示サイクル
の起動はEU103が行うが、DU102が行うような
構成も可能である。
【0067】次に本発明の別の実施例について、図3を
用いて説明する。第一の実施例では、ホールト表示サイ
クルでHALT命令の配置アドレスのみを通知したが、
本実施例ではさらにマイクロプロセッサの状態を示すプ
ロセッサ・ステータス・ワード(PSW)の値を通知す
ることを特徴とする。
【0068】図2において、マイクロプロセッサ200
でEU203以外の構成は第一の実施例と同一である。
EU203内には整数演算の状態を示すフラグ、浮動小
数点演算の状態を示すフラグ、割込みや例外の制御なら
びに状態を示すフラグを含む32ビット幅のPSW 2
01を持つ。これらのフラグの状態は、マイクロプロセ
ッサ200の内部状態を知る上で重要な情報である。し
かしながらPSW 201の状態は、条件分岐命令で間
接的にチェックできる他は、特殊の転送命令でのみ参照
される。
【0069】PSW 201はEU203の内部バスを
介して、オペランド・データの転送と同様にBU105
とデータの授受が可能なように構成される。
【0070】本実施例ではEU203に対して、HAL
T命令の実行処理が指定されるまでの動作は第一の実施
例と同一である。EU203はPCEU113の内容を
バス・サイクルに対するアドレスとしてBU105に転
送する。また、PSW 201の内容がライト系バス・
サイクルの出力データとしてBU105に転送される。
【0071】同時にEU103からST2−ST0端子
123に111bを出力するバス・サイクルの起動要求
が発行される。データ・バス端子D31−D0 122
にPSW 201の値を出力するために、ライト系のバ
ス・サイクルが起動される。
【0072】要求によって起動されたバス・サイクルい
おいてT1ステートの先頭から、アドレス・バス端子A
31−A1 121にはPCEU 113の内容が、S
T2−ST0端子123には111bが、R/W(−)
端子125には0bがそれぞれ出力される。BCYST
(−)端子124は、他のバス・サイクルと同様にT1
期間中活性化される(0bにドライブされる)。
【0073】データ・バス端子D31−D0 122に
は、T1ステートの中央からBU105に転送されたP
SW 201の内容が出力される。
【0074】READY(−)端子 126の状態サン
プリング、ならびにバス・サイクルの終了保留制御につ
いては、第一の実施例と同一である。また、ホールト状
態の解除に関する制御についても第一の実施例と同一で
ある。
【0075】マイクロプロセッサ100においてHAL
T命令が実行され、ホールト状態に遷移した後にPSW
の状態を知るためには、割込みを要求した上でその内容
を外部に掃き出すという処理が必要になる。
【0076】一方本実施例では、ホールト表示サイクル
でPSW 201の状態がデータ・バス端子D31−D
0 122に出力されるため、割込みの要求、状態掃出
し等の処理が不要になる。さらに、アドレス・バス端子
A31−A1 121に出力されるPCEU 113の
内容と同様に、データ・バス端子D31−D0 122
の状態はホールト状態中変化しない。したがって、PS
W 201の内容もLED表示器などによって観測でき
る。
【0077】本実施例におけるホールト表示サイクルの
タイミングを図5に示す。
【0078】本実施例では、ホールト表示サイクルにお
いてアドレス・バス端子A31−A1 121にPCE
U113の内容を、データ・バス端子D31−D0 1
22にPSW 201の内容を出力するような動作を行
う。しかし、EU203の制御を一部変更すること(e
x.マイクロプログラムの一部変更)で、容易に出力す
る内部資源を逆にすること、すなわちアドレス・バス端
子A31−A1 121にPSW 201の内容を、デ
ータ・バス端子D31−D0 122にPCEU 11
3の内容を出力できる。
【0079】さらに、PSW 201以外の内部資源を
アドレス・バス端子A31−A1121あるいはデータ
・バス端子D31−D0 122に出力する構成に容易
に変更できる。
【0080】本実施例、ならびに第一の実施例における
BU105の構成、ならびに動作について図6を用いて
説明する。
【0081】IU101からのバス・サイクル起動要求
信号FREQ、DU102からのOPREQ信号、EU
103からのACREQ信号は、アクセスの優先順位に
従って調停され、バス・サイクルの種類を示すAC3−
AC0信号、要求のタイミングを示すACSTB信号に
分割される。
【0082】アドレスは内部バスIAD31−IAD
1、データは内部バスD31−D0を経由してBU10
5に転送される。BU105がバス・サイクルを起動中
であり、新たなバス・サイクルの起動要求を受け付けら
れないことはACBUSY信号により各ユニットに通知
される。
【0083】図6において、アクセス要求レジスタ(A
CRと略す)151は、AC3−AC0信号をACST
B信号によりラッチするレジスタ、アクセス要求バッフ
ァ(ACBと略す)152はバス・サイクルの状態を複
数信号より成るTstate信号により検知しラッチさ
れた要求(ACR3−ACR0信号)をST2−ST0
端子123ならびにR/W(−)端子125をドライブ
するバッファである。
【0084】アクセス要求デコーダ(ACDと略す)1
54は、ラッチされた要求をデコードしリード系アクセ
スであることを示すRD信号、ホールト表示サイクルで
あることを示すHLTD信号等を発生するデコータであ
る。
【0085】ステート・シーケンサ(STSEQと略
す)153は、バス・サイクルのTステートを管理する
シーケンサでありACSTB信号の検知により起動す
る。Tステートの状態は、複数ビットのTstate信
号により他ブロックに通知される。
【0086】現在バス・サイクルが完了していなけれ
ば、他ユニットにACSTB信号を発生しないようにビ
ジー信号ACBUSYを発生する。STSEQ 153
はREADY(−)端子126の状態を検知して、バス
・サイクルの終了を制御する。ホールト表示サイクルの
起動が要求されると、ACD 154がHLTD信号を
発生し、READY(−)端子126の状態によるバス
・サイクルの終了待合せを行わないようにする。さらに
バス・サイクルの開始時にはBCYST(−)端子12
4をドライブする。
【0087】データ・ライト・レジスタ(DTWRと略
す)155は、内部バスID31−ID0上のデータを
ライト信号IDTWRよりラッチするレジスタ、データ
・バッファ(DTBと略す)156はTstate信号
によりラッチされたデータをライト系のバス・サイクル
でデータ・バス端子D31−D0 122にドライブす
るバッファである。データ・リード・レジスタ(DTR
Rと略す)157はリード系バス・サイクルの終了をT
state信号により検知し、データ・バス端子D31
−D0 122の状態をラッチし、リード信号IDTR
Dにより内部バスID31−ID0にドライブするバッ
ファ機能付きのラッチである。
【0088】アドレス・レジスタ(ADRと略す)15
8は、内部バスIAD31−IAD1上のアドレスをア
クセス要求ストローブ信号ACSTBによりラッチする
レジスタ、アドレス・バッファ(ADBと略す)159
はTstate信号によりラッチされたアドレスをアド
レス・バス端子A31−A1 121にドライブするバ
ッファである。
【0089】BU105により起動するバス・サイクル
の種類は、アクセス要求信号AC3−AC0の値を変更
するのみで対応でき、出力されるアドレスは内部バスI
AD31−IAD1の値により、ライト系バス・サイク
ルで出力されるデータは内部バスD31−D0の値によ
り決定できるので、融通性の高いバス・サイクルの制御
が可能である。
【0090】
【発明の効果】以上説明したように、本発明を用いるこ
とでホールト状態に遷移した時の内部状態を、アドレス
・バス端子およびデータ・バス端子を用いて外部に容易
に通知するマイクロプロセッサを実現できる。これらの
端子は、従来のマイクロプロセッサについても不可欠な
端子で、内部状態の通知のために端子が増加することは
ない。
【0091】この発明を用いたマイクロプロセッサによ
り、プログラムはホールト状態に遷移した時点における
プログラム・カウンタや、プロセッサ・ステータス・ワ
ードの内容を、性格にかつ容易に知ることができるた
め、効率的なプログラム・デバッグを可能にする。
【図面の簡単な説明】
【図1】本発明を用いた一実施例の構成を示す図であ
る。
【図2】本発明を用いた別の実施例の構成を示す図であ
る。
【図3】実施例におけるステータス信号ST2−ST0
の値に対応するバス・サイクルの意味の関係を示す図で
ある。
【図4】第一の実施例におけるホールト表示サイクルの
タイミングを示す図である。
【図5】第二の実施例におけるホールト表示サイクルの
タイミングを示す図である。
【図6】第一,第二の実施例におけるバス・サイクル制
御ユニットの構成を示す図である。
【符号の説明】
100 マイクロプロセッサ 101 命令フェッチ・ユニット 102 命令デコード・ユニット 103 命令実行ユニット 104 実効アドレス計算ユニット 105 バス・サイクル制御ユニット 111 命令フェッチ・ユニット用プログラム・カウ
ンタ 112 命令デコード・ユニット用プログラム・カウ
ンタ 113 命令実行・ユニット用プログラム・カウンタ 121 アドレス・バス端子 122 データ・バス端子 123 ステータス出力端子 124 BCYST(−)信号出力端子 125 R/W(−)信号出力端子 126 READY(−)信号入力端子 127 クロック信号入力端子 151 アクセス要求レジスタ 152 アクセス要求バッファ 153 ステート・シーケンサ 154 アクセス要求デコーダ 155 データ・ライト・レジスタ 156 データ・バッファ 157 データ・リード・レジスタ 158 アドレス・バッファ 159 アドレス・バッファ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−201737(JP,A) 特開 平2−59828(JP,A) 特開 昭51−140454(JP,A) 特開 昭54−941(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/00,15/78

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令実行の中断あるいは一時的な停止を
    行う命令を実行する機能を有するマイクロプロセッサに
    おいて、前記命令の実行に応答してバス・サイクルを発
    生する手段、前記バス・サイクルに同期して、特定のス
    テータス信号を出力する第一の出力手段、およびプログ
    ラム・カウンタの内容をアドレス・バスに出力する第二
    の出力手段を有し、前記命令の実行によりプログラム・
    カウンタの内容を外部に通知することを特徴とするマイ
    クロプロセッサ。
  2. 【請求項2】 命令実行の中断あるいは一時的な停止を
    行う命令を実行する機能を有するマイクロプロセッサに
    おいて、前記命令の実行に応答してバス・サイクルを発
    生する手段、前記バス・サイクルに同期して、特定のス
    テータス信号を出力する第一の出力手段、およびプログ
    ラム・カウンタの内容をデータ・バスに出力する第二の
    出力手段を有し、前記命令の実行によりプログラム・カ
    ウンタの内容を外部に通知することを特徴とするマイク
    ロプロセッサ。
  3. 【請求項3】 請求項1記載のマイクロプロセッサにお
    いて、前記バス・サイクルの発生手段によって発生され
    たバス・サイクルに同期してプロセッサ・ステータス・
    ワードの内容をデータ・バスに出力する第三の出力手段
    を有し、前記命令の実行により、プログラム・カウンタ
    およびプロセッサ・ステータス・ワードの内容を外部に
    通知することを特徴とするマイクロプロセッサ。
JP03124242A 1991-05-29 1991-05-29 マイクロプロセッサ Expired - Lifetime JP3088129B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP03124242A JP3088129B2 (ja) 1991-05-29 1991-05-29 マイクロプロセッサ
US07/891,556 US5440700A (en) 1991-05-29 1992-05-29 Microprocessor including device for detecting predetermined instruction and generating bus cycle
DE69218493T DE69218493T2 (de) 1991-05-29 1992-05-29 Mikroprozessor mit Haltbefehl
KR1019920009274A KR100263262B1 (ko) 1991-05-29 1992-05-29 마이크로프로세서
EP92109137A EP0516172B1 (en) 1991-05-29 1992-05-29 Microprocessor with halt instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03124242A JP3088129B2 (ja) 1991-05-29 1991-05-29 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH04350732A JPH04350732A (ja) 1992-12-04
JP3088129B2 true JP3088129B2 (ja) 2000-09-18

Family

ID=14880487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03124242A Expired - Lifetime JP3088129B2 (ja) 1991-05-29 1991-05-29 マイクロプロセッサ

Country Status (5)

Country Link
US (1) US5440700A (ja)
EP (1) EP0516172B1 (ja)
JP (1) JP3088129B2 (ja)
KR (1) KR100263262B1 (ja)
DE (1) DE69218493T2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2720174B1 (fr) * 1994-05-20 1996-08-14 Sgs Thomson Microelectronics Procédé pour tester le déroulement d'un programme d'instructions exécutées par un circuit intégré spécialisé, et circuit intégré spécialisé s'y rapportant.
WO1996038788A2 (en) * 1995-05-31 1996-12-05 Advanced Micro Devices, Inc. Internal state dump mechanism for saving processor values during system testing
US5931956A (en) * 1997-06-10 1999-08-03 Atmel Corporation Digital circuit using memory for monitoring signals for occurrences of predefined breakpoint conditions
US6321331B1 (en) * 1998-04-22 2001-11-20 Transwitch Corporation Real time debugger interface for embedded systems
US20020188813A1 (en) * 2001-05-04 2002-12-12 Hugo Cheung On-chip hardware breakpoint generator with comprehensive memory operation detection
US7010672B2 (en) * 2002-12-11 2006-03-07 Infineon Technologies Ag Digital processor with programmable breakpoint/watchpoint trigger generation circuit
US7237151B2 (en) * 2002-12-17 2007-06-26 Texas Instruments Incorporated Apparatus and method for trace stream identification of a processor reset
US20070169022A1 (en) * 2003-06-18 2007-07-19 Jones Anthony M Processor having multiple instruction sources and execution modes
WO2009022371A1 (ja) * 2007-08-16 2009-02-19 Netcleus Systems Corporation タスク処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS592056B2 (ja) * 1975-05-30 1984-01-17 松下電工株式会社 マイクロコンピユ−タノ プログラムカウンタヒヨウジホウシキ
US4308581A (en) * 1979-09-28 1981-12-29 Motorola Inc. Single step system for a microcomputer
JPS57157362A (en) * 1981-03-25 1982-09-28 Hitachi Ltd Method and apparatus of execution path career data pickup for architecture program
JPH06103472B2 (ja) * 1986-10-29 1994-12-14 日本電気株式会社 デバツグ用マイクロプロセツサ
JPH01201737A (ja) * 1988-02-05 1989-08-14 Nec Corp マイクロプロセッサ
JPH0259828A (ja) * 1988-08-24 1990-02-28 Nec Ic Microcomput Syst Ltd マイクロコンピュータ開発支援装置
US5289587A (en) * 1988-11-30 1994-02-22 National Semiconductor Corporation Apparatus for and method of providing the program counter of a microprocessor external to the device
EP0371418A3 (en) * 1988-11-30 1991-09-04 National Semiconductor Corporation Apparatus for and method of providing the program counter of a microprocessor external to the device
US5134701A (en) * 1989-02-10 1992-07-28 Hewlett-Packard Co. Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities
JPH03204737A (ja) * 1990-01-08 1991-09-06 Nec Corp 信号処理プロセッサのデバッグ回路

Also Published As

Publication number Publication date
EP0516172A3 (en) 1993-06-30
KR920022094A (ko) 1992-12-19
KR100263262B1 (ko) 2000-08-01
DE69218493T2 (de) 1997-10-09
JPH04350732A (ja) 1992-12-04
EP0516172B1 (en) 1997-03-26
US5440700A (en) 1995-08-08
EP0516172A2 (en) 1992-12-02
DE69218493D1 (de) 1997-04-30

Similar Documents

Publication Publication Date Title
JP4990829B2 (ja) 指定されたメモリアクセスが発生するまでスレッドの実行をサスペンドする方法及び装置
JP5571784B2 (ja) プロセッサ、方法、システム、及び、プログラム
US6449709B1 (en) Fast stack save and restore system and method
US5822779A (en) Microprocessor-based data processing apparatus that commences a next overlapping cycle when a ready signal is detected not to be active
US8171266B2 (en) Look-ahead load pre-fetch in a processor
US5488728A (en) Microprocessor having a run/stop pin for accessing an idle mode
JPH05204709A (ja) プロセッサ
JP3088129B2 (ja) マイクロプロセッサ
KR950010825B1 (ko) 분기 타겟 명령 버퍼를 내장한 마이크로컴퓨터
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
US6772266B2 (en) Detecting transfer of universal serial bus (USB) host controller information from operating system drivers to basic input output system (BIOS)
US7051146B2 (en) Data processing systems including high performance buses and interfaces, and associated communication methods
JPS63193239A (ja) 命令順序監視装置と方法
JP2004005747A (ja) マイクロプロセッサ及びマイクロプロセッサを動作する方法
JPH06295243A (ja) データ処理装置
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
JP2536726B2 (ja) マイクロプロセッサ
JP2885548B2 (ja) パイプライン制御方式
JPH06324861A (ja) Cpu制御システム及び制御方法
JPS63167951A (ja) 情報処理装置
JP2924004B2 (ja) 命令コード転送方式
JPH10240570A (ja) マイクロプロセッサ及びその開発支援装置
JPS6221130B2 (ja)
JPH1055289A (ja) デバッグ情報生成回路、およびそれを用いた情報処理装置
JP2004362368A (ja) プロセッサおよび例外処理方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070714

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080714

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090714

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100714

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100714

Year of fee payment: 10

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: 20100714

Year of fee payment: 10

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: 20110714

Year of fee payment: 11

EXPY Cancellation because of completion of term