JPH04284546A - データ処理装置及びそれを用いたシステム開発装置 - Google Patents

データ処理装置及びそれを用いたシステム開発装置

Info

Publication number
JPH04284546A
JPH04284546A JP3049346A JP4934691A JPH04284546A JP H04284546 A JPH04284546 A JP H04284546A JP 3049346 A JP3049346 A JP 3049346A JP 4934691 A JP4934691 A JP 4934691A JP H04284546 A JPH04284546 A JP H04284546A
Authority
JP
Japan
Prior art keywords
instruction
bus
bus cycle
executed
cycle
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.)
Withdrawn
Application number
JP3049346A
Other languages
English (en)
Inventor
Shigesumi Matsui
重純 松井
Ikuya Kawasaki
川崎 郁也
Yoshiyuki Kondo
近藤 芳行
Koji Hashimoto
幸治 橋本
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.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi Ltd
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 Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Priority to JP3049346A priority Critical patent/JPH04284546A/ja
Priority to KR1019910006125A priority patent/KR910018909A/ko
Priority to EP91303435A priority patent/EP0453268B1/en
Priority to DE69127992T priority patent/DE69127992T2/de
Publication of JPH04284546A publication Critical patent/JPH04284546A/ja
Priority to US08/201,488 priority patent/US5564041A/en
Priority to HK98102618A priority patent/HK1003603A1/xx
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データ処理技術、さ
らには命令プリフェッチ方式のマイクロプロセッサにお
ける実行命令の通知方式に適用して特に有効な技術に関
し、例えばノイマン型マイクロコンピュータに利用して
有効な技術に関する。
【0002】
【従来の技術】従来提案されているマイクロコンピュー
タには、実行すべき命令以外にいくつかの命令を前もっ
て取り込んでおくプリフェッチ方式の命令レジスタを有
するようにされたものがある。このように、プリフェッ
チ方式の命令レジスタに予め複数の命令を取り込んでお
くことによって、プログラムの実行の高速化が可能にな
る。
【0003】ところで、ユーザが新たにマイクロコンピ
ュータ・システムやそのソフトウェアを開発した場合、
エミュレーションを行なってデバッギングを行なうこと
が多い。
【0004】そのようなエミュレーションにおいては、
プログラム中のある命令を実行した時点でプログラムの
実行を中断したり、ある時点からバス上のデータをメモ
リにトレースしたりする。そして、このトレースされた
メモリの内容を解析することで、プログラムの暴走要因
などを解明して、プログラムやシステムのデバッギング
が容易に行なえるようになる。
【0005】そのため、エミュレーション中にデータバ
スやアドレスバスを監視して、ブレークポイントやトレ
ースポイントを検出することが行なわれる。
【0006】前述したように前もって複数の命令をフェ
ッチする命令レジスタを有するマイクロコンピュータに
おいては、エミュレーションを行なう場合、実際のバス
上に現われる命令コードやアドレスは、実行中の命令の
ものとは異なることになる。そのため、正しいブレーク
ポイントでプログラムの実行を中断したり、所望の時点
からトレースを開始したりすることができないとともに
、エミュレーション後におけるトレース内容の解析が困
難になる。
【0007】そこで、実行中のアドレスとプリフェッチ
・アドレスとの差を出力するピンを設けて、命令プリフ
ェッチ方式のマイクロコンピュータにおける実行中の命
令を外部で知ることができるようにした発明(特開昭6
2−197831号)や割込み機能を利用して1命令実
行ごとにプログラムの実行を中断し、マイクロプロセッ
サの内部状態を外部へ知らせる他の命令列を実行するよ
うにした発明(特開昭61−286936号)が提案さ
れている。
【0008】
【発明が解決しようとする課題】上記従来技術のうち、
実行命令のアドレスとプリフェッチ・アドレスとの差を
出力するピンを設ける方式にあっては、マイクロプロセ
ッサのピン数を増加させたり専用ピンを追加した別チッ
プを用意しなくてはならないためコストが高くなったり
開発期間が長くなるとともに、必要とする情報量の増加
に対応できないという欠点がある。
【0009】一方、1命令実行ごとにプログラムを中断
する方式にあっては、リアルタイム性がなくなり、エミ
ュレーション中にシステムが暴走するおそれがある。
【0010】本発明の目的は、ピン数を増加させたり、
複雑な外付け回路を設けることなく、命令プリフェッチ
方式のマイクロプロセッサにおいて、実行中の命令アド
レス等内部情報を外部へ知らせることができるようにす
ることにある。
【0011】本発明の他の目的は、リアルタイム性を損
なうことなく内部情報を外部へ知らせることができると
ともに、必要とする情報量の増加に対する柔軟性の高い
マイクロプロセッサを提供することにある。
【0012】本発明の他の目的は、予め複数の命令をフ
ェッチする命令レジスタや命令キャッシュを有するマイ
クロコンピュータのエミュレーションにおいて、正しい
ブレークポイントでのプログラムの実行を中断したり所
望の時点からトレースを開始したりすることが容易にで
きるインサーキットエミュレータを提供することにある
【0013】本発明の他の目的は、システムやマイクロ
プロセッサのデバッグに必要なマイクロプロセッサ内部
の状態、例えば、演算結果が保持されるレジスタの内容
を外部で容易に知ることができる機構を提供することに
ある。
【0014】この発明の前記ならびにそのほかの目的と
新規な特徴については、本明細書の記述および添附図面
から明らかになるであろう。
【0015】
【課題を解決するための手段】本願にいて開示される発
明のうち代表的なものの概要を説明すれば、下記のとお
りである。
【0016】すなわち、予め複数の命令を保持可能なバ
ッファもしくはメモリを有するマイクロプロセッサに、
ある所定の動作モードでは1命令実行ごとにプロセッサ
の内部情報を外部へ出力するための特殊バスサイクルを
挿入する機能を持たせるようにするものである。
【0017】上記特殊バスサイクルの挿入機能は、外部
バス制御回路もしくはそれに付随する回路としてハード
ウェアで実現してもよいし、マイクロプログラム制御の
ようなファームウェアで実現してもよい。
【0018】上記特殊バスサイクルで外部へ出力するプ
ロセッサ内部の情報としては、実行された命令のメモリ
空間上でのアドレス(物理アドレスよりも論理アドレス
が良い)、命令コードやプリフェッチされた命令群の中
の当該実行命令を識別するためのコードがある。
【0019】
【作用】上記した手段によれば、命令プリフェッチ方式
のマイクロプロセッサを用いたシステムのエミュレーシ
ョンにおいて、いずれの命令が実行されたか外部で容易
に知ることができるため、正確なエミュレーション制御
が可能になるとともに、トレースデータの解析が容易と
なりデバック効率が向上する。
【0020】また、本来不用な特殊バスサイクルが挿入
されるため、完全なリアルタイム性はないが、挿入され
るのは1サイクルのみであるため、割込み機能等で所定
の命令列を実行して内部情報を外部へ知らせる従来方式
に比べると、リアルタイム性はほとんど損なわれない。
【0021】
【実施例】図1には本発明を命令プリフェッチ方式のマ
イクロプロセッサに適用した場合の一実施例が示されて
いる。
【0022】特に制限されないが、図1に示されている
各回路ブロックは単結晶シリコン基板のような一個の半
導体チップ上において形成される。
【0023】この実施例のマイクロプロセッサには、特
に制限されないが、各々16ビット長の命令コードを2
つ保持可能な2個のFIFO方式の命令バッファ10a
,10bが設けられている。また、バスサイクルを制御
する外部バス制御回路11が設けられており、この外部
バス制御回路11には、30ビットのアドレスバスAD
Bと32ビットのデータバスDTBが接続可能にされて
いる。外部バス制御回路11には、データバスDTBを
介して外部のメモリから一度に32ビット幅で命令コー
ドやデータを取り込むようにされている。そして、命令
フェッチサイクルで一度に取り込まれた32ビット幅の
命令コードは、16ビットずつ2つに分割され、上記2
つの命令バッファ10a,10bにそれぞれ格納される
【0024】なお、この実施例のマイクロプロセッサの
命令語長は16ビット×n(nは正の自然数)の可変長
である。また、この実施例では、外部バス制御回路11
は4ビットのバイトコードBC0〜BC3を生成して出
力可能に構成されており、16ビット単位の命令の取込
みやバイト単位でのデータのリード・ライトもできる。 このバイトコードBC0〜BC3は、通常は命令フエッ
チポインタ15aの下位1ビットもしくは内部バス18
を介して演算処理部17より供給される32ビットのア
ドレスの下位2ビットに基づいて生成される。
【0025】上記命令バッファ10a,10bに格納さ
れた命令コードはセレクタ12を介して16ビット幅の
命令デコーダ13または32ビット幅の即値生成回路1
4へ選択的に供給可能にされている。上記セレクタ12
は、命令コードポインタ15bを有する命令アドレス制
御回路15から制御信号SCによって適切なタイミング
で切り換えが行なわれる。
【0026】命令デコーダ13は供給された命令コード
をデコードして、命令長を検出して信号WLによって上
記命令アドレス制御回路15へ知らせたり、マイクロプ
ログラム制御方式の演算制御回路16に起動をかける。 演算制御回路16は演算器すなわち算術論理演算ユニッ
トや汎用レジスタ群を有する演算処理部17に対する制
御信号を形成し、命令デコーダ13に保持されている命
令コードに対応する処理を実行させる。
【0027】演算結果は、64ビット幅(32ビット幅
が2組)の内部バス18を介して、外部バス制御回路1
1または命令アドレス制御回路15に供給される。また
、外部メモリより読み込まれたデータは内部バス18を
介して演算処理部17に供給される。外部からデータを
読み込むとき、外部にデータを書き込むときあるいは外
部から命令を読み込むときには、演算制御回路16から
外部バス制御回路11に対して、データアクセス要求信
号DARが供給される。
【0028】この実施例では、上記命令アドレス制御回
路15内に、命令フェッチアドレスを保持する命令フェ
ッチポインタ15aとは別個に、上記命令バッファ10
a,10bに取り込まれた命令コードのうちいずれを実
行すべきか指示する31ビット幅の命令コードポインタ
15bと、実行される命令の先頭アドレスを保持するプ
ログラムカウンタ15cが設けられており、この命令コ
ードポインタ15bの最下位の1ビットがセレクタ制御
信号SCとして上記セレクタ12に供給される。命令コ
ードポインタ15bは、命令デコーダ13からの実行命
令の語長を示す信号WLに基づいて命令語長分だけ自動
的にインクリメントされる。
【0029】一方、命令フェッチポインタ15aに保持
されている31ビット長の命令フェッチアドレスは外部
バス制御回路11に供給されており、外部バス制御回路
11はこのうち上位30ビットを外部アドレスバスAD
B上に出力する。命令フェッチポインタ15aは命令バ
ッファ10a,10bが一杯になるまで自動的に更新さ
れる。
【0030】分岐命令のときは、演算処理部17から供
給される分岐先アドレスが、命令コードポインタ15b
にセットされるとともにプログラムカウンタ15cにも
セットされる。プログラムカウンタ15cは、31ビッ
ト幅に構成されており、例えばデータ位置が相対アドレ
スで示されている場合、このプログラムカウンタ15c
の値が内部バス18を介して演算処理部17に送られて
ディスプレースメント(オフセット)を加算して得られ
た値がアドレスとして外部へ出力される。即値生成回路
14は、32ビット幅に構成されており、命令デコーダ
13からの制御信号によって命令語中から即値を抽出し
て演算処理部17に渡す。
【0031】この実施例では、上記外部バス制御回路1
1に付随して特殊バスサイクル発生回路19が設けられ
ている。
【0032】また、演算制御回路16から1命令終了ご
とに命令実行終了信号ENDが特殊バスサイクル発生回
路19と命令アドレス制御回路15に供給される。この
信号を受けると命令コードポインタの値(実行命令アド
レス)がプログラムカウンタ15cにロードされ、最下
位ビットが特殊バスサイクル発生回路19に供給される
。また、このとき命令バッファ10a,10bがクリア
される。
【0033】一方、特殊バスサイクル発生回路19は外
部から特殊バスサイクル発生要求SBRのようなモード
指定信号を受けると有効にされ、1命令の実行終了を知
ると、外部バス制御回路11に対し、次に実行する命令
(16ビット×n(nは自然数))の先頭が同時に取り
込まれた32ビット長の命令コードの上位側であるのか
下位側であるかを外部へ出力するための特殊バスサイク
ルを挿入するように制御信号を与える。
【0034】ただし、外部バス制御回路11は特殊バス
サイクルを優先させるか、他のバスサイクル(データサ
イクル等)を優先させるか判断する機能を有している。
【0035】この実施例のマイクロプロセッサは、特殊
バスサイクルによって、プログラムカウンタ15cの最
下位ビットに対応する信号をバイトコードBC0〜BC
3によって出力することで、次に実行する命令が32ビ
ットのうち上位側か下位側かを示す。しかもこの実施例
では特殊バスサイクル挿入時に命令バッファ10a,1
0bをクリアしているので、次の命令コードは一度フェ
ッチされていても次のサイクルで改めてフェッチし直さ
れる。従って、特殊バスサイクルの次のサイクルでのデ
ータバス上の信号を見れば実行される命令コードも知る
ことができる。
【0036】ただし、特殊バスサイクル挿入時にプログ
ラムカウンタ15cの最下位ビットに対応する情報のみ
出力する代わりに、特殊バスサイクルでプログラムカウ
ンタ15cの全ビットを出力するようにしてもよい。そ
の場合、アドレスバスADBとバイトコードBC0〜B
C3を併用すればよい。このようにすれば、命令バッフ
ァ10a,10bをクリアしなくても次の実行命令を外
部で知ることができる。
【0037】さらに、この実施例のマイクロプロセッサ
は、特殊バスサイクル実行時にそのバスサイクルが特殊
バスサイクルであることを、3ビットのバスアクセスタ
イプ信号BAT0〜BAT2で示すようにされている。 このバスアクセスタイプ信号BAT0〜BAT2は、特
殊バスサイクル以外にも、命令取り込みサイクル、デー
タ書込みサイクル、データ読込みサイクルあるいはコプ
ロセッサに対するコマンド送信サイクル等を識別するた
めに使用される。
【0038】なお、上記実施例では特殊バスサイクル発
生回路19が外部バス制御回路11に付随すると説明し
たが、特殊バスサイクル発生回路19が外部バス制御回
路11に内蔵もしくは外部バス制御回路11と一体的に
構成されていてもよい。
【0039】また、この実施例のマイクロプロセッサに
おいては、割込み要求があったとき要求元に特殊バスサ
イクルを使って応答を返すようにされており、そのとき
アドレスバスADB上に割込みレベル0〜6を示すコー
ド(下位3ビットが000,001,010,011,
100,101,110)をのせるようにされている。 そこで、この実施例では次に実行される命令の上位/下
位を知らせる特殊バスサイクルでは、割込み応答のため
の特殊バスサイクルと区別するため、アドレスバスAD
B上の下位3ビットが111なるコード(アドレスとし
ては16進数で0000001C)をのせるようにされ
ている。
【0040】さらに、上記実施例では命令実行直前に上
位/下位を知らせる特殊バスサイクルを入れているが、
例えば図1の実施例のマイクロプロセッサで命令コード
ポインタ15bからプログラムカウンタ15cへの命令
アドレスのロードと同時に前の命令アドレスの最下位ビ
ットが特殊バスサイクル発生回路19に送られてラッチ
されるような構成にすることによって、命令実行サイク
ルの後に特殊バスサイクルを挿入し、実行した命令が上
位または下位のいずれであったかを次のバスサイクルで
外部へ知らせるようにすることもできる。
【0041】図9には、図1のマイクロプロセッサの外
部バス制御回路11と特殊バスサイクル発生回路19の
一例が示されている。
【0042】図9において、101はアドレス出力レジ
スタ,102は特殊アドレス発生回路,103は通常/
特殊サイクル切換え回路,104はバイトコード発生回
路,105しバスアクセスタイプ発生回路,106はデ
ータ入力レジスタ,107はデータ出力レジスタ,10
8と109はセレクタ,110は割込み受付け回路であ
る。
【0043】アドレス出力レジスタ101は、演算処理
部17から内部バス18を介して供給される外部メモリ
のデータをアクセスするための32ビットのアドレスを
保持する。セレクタ108は、アドレス出力レジスタ1
01の出力と命令フェッチアドレスを保持している命令
フェッチポインタ15aの出力とのいづれか一方を、命
令実行部20から出力されるバスアクセスタイプ信号の
うちデータをアクセスするのか命令をアクセスするのか
を示すデータ・インストラクション信号DIによって選
択する。この実施例では、命令フェッチポインタ15a
の出力は31ビット長であるので、セレクタ108が命
令フェッチポインタ15aの出力を選択した場合は、セ
レクタ108の出力の最下位ビットを“0”にして32
ビット長にする機能をセレクタ108は有する。
【0044】特殊アドレス発生回路102は、割込み受
付け回路110の出力の割込み要求レベルと特殊バスサ
イクル要求信号SBRによって、特殊バスサイクルでア
ドレスバスADBに出力する特殊アドレスを生成する。 割込み受付け回路110は、外部からの割込み要求レベ
ル信号とマイクロプロセッサ内の割込みマスクレベルと
を比較して、割込みを受け付けるかどうかを判定する回
路である。割込みを受け付けた場合は、受け付けたレベ
ルを特殊アドレス発生回路102に供給するとともに、
割込みを受け付けたことを示す割込み許可信号INTを
アクティブにする。  通常/特殊サイクル切替え回路
103は、割込み許可信号INT,データアクセス要求
信号DAR,特殊バスサイクル発生要求信号SBR及び
命令実行終了信号ENDを受けて、セレクタ108の出
力と特殊アドレス発生回路102の出力とのいづれか一
方をセレクタ109で選択するための信号NS,割込み
サイクルであることを示すINTC及び特殊バスサイク
ルであることを示す信号SBCを生成する。
【0045】バイトコード発生回路104は、32ビッ
トのアドレスの下位2ビット,命令実行部20から出力
されるアクセスするデータの幅を示す信号DW,割込み
サイクルであることを示すINTC,特殊バスサイクル
であることを示す信号SBC及びプログラムカウンタ1
5cの最下位ビットによって、各サイクルに必要なバイ
トコードデータをバイトコード出力回路へ供給する。こ
の実施例では、特殊バスサイクルにおいて、プログラム
カウンタ15cの最下位ビットによって、次に実行する
命令の先頭が同時に取り込まれた32ビット長の命令コ
ードの上位側であるのか下位側であるのかを外部へ出力
するためのバイトコードを出力する。
【0046】バスアクセスタイプ発生回路105は、割
込みサイクルであることを示すINTC、特殊バスサイ
クルであることを示す信号SBC及び命令実行部20か
ら出力されるバスアクセスタイプ信号によって、バスア
クセスタイプデータをバスアクセスタイプ出力回路に供
給する。この実施例では、割込みサイクル及び特殊バス
サイクルにおいて、バスアクセスタイプ信号BAT0〜
BAT2には“010”が出力される。
【0047】データ入力レジスタ106及びデータ出力
レジスタ107は、内部バス18とデータ入出力回路の
インタフェーイスであり、入力及び出力データを一時的
に保持するレジスタである。
【0048】この実施例では、アドレス出力レジスタ1
01が内部バス18とセレクタ108との間に位置して
いるが、セレクタ108とセレクタ109との間あるい
はセレクタ109とアドレスバス出力回路との間に位置
してもよい。
【0049】図10には、図1のマイクロプロセッサの
外部バス制御回路11と特殊バスサイクル発生回路19
で制御されるバスサイクルの状態遷移図の一例が示され
ている。
【0050】図1には図示されていないマイクロプロセ
ッサを初期化する信号RESETにより、状態Tiに入
る。状態Tiでは、バスサイクルはアイドル状態であり
、データアクセス要求信号DAR,特殊バスサイクル要
求信号SBR,命令実行終了信号END及び割込み許可
信号INTの組合わせにより、通常バスサイクル(状態
T0及び状態T1),特殊バスサイクル(状態T0S及
び状態T1S)並びに割込み開始状態T2に遷移する。 状態T0から状態T1,状態T0Sから状態T1S及び
状態T2から状態T0Sへは、無条件で遷移する。
【0051】なお、この実施例では、特に制限はされな
いが、割込みサイクルは特殊バスサイクル(状態T0S
及び状態T1S)の一つであり、また、特殊バスサイク
ル(状態T0S及び状態T1S)では、命令実行終了信
号ENDは発生しないようになっている。さらに、この
実施例では、特に制限はされないが、割込み許可信号I
NTと特殊バスサイクル要求信号SBRが同時に発生し
た場合は、割込み許可信号INTが優先されるようにな
っている。また、この実施例では、通常バスサイクル及
び特殊バスサイクルは外部条件なく自動的に終了するよ
うになっているが、例えば、外部メモリからのアクノリ
ッジ信号等でバスサイクルが終了するようにしてもよい
。この場合、アクノリッジ信号が入力されるまで状態T
1又は状態T1Sの状態を続ける。
【0052】図2には、上記マイクロプロセッサを用い
たシステムにおいて一例として次のようなプログラムを
実行した場合の各バスの動作タイミングが示されている
【0053】   00000100               
   BEQ  LABEL1         :          :   00001000               
   MOV  #4,R0.w   ………… a 
 00001002  LABEL1 : ADD  
#1,R0.w   ………… b  0000100
4                  MOV  R
1.w,@R0.h  …… c  00001006
                  MOV  R1
.w,R2.w  ……… d上記プログラムにおける
100番地の命令BEQは分岐命令で、この命令の実行
でLABEL1(アドレス1002番地)へジャンプす
るときの動作タイミングが図2に示されている。
【0054】図2を参照すると、命令a,bの取込を行
なうバスサイクルS2の直前のバスサイクルS1でバス
アクセスタイプ信号BAT0〜BAT2が“010”と
されて出力され、特殊バスサイクルであることが分かる
ようにされている。そして、このバスサイクルS1中に
バイトコードBC0〜BC3(1101)によって、次
に取り込まれる32ビットの命令コードのうち実行され
る命令の先頭バイト位置が明示される。図ではBC0〜
BC3のうち“0”が立っているところが実行される命
令の先頭位置であることを示している。そして、次のバ
スサイクルS2ではデータバスを介して命令コードaと
bが取り込まれている(命令レジスタがクリアされてい
るので取り込みと同時に実行される)。これによりバス
サイクルS2で実行される命令はb(ADD  #1,
R0.w)であることが分かる。
【0055】図2の動作タイミングでは、バスサイクル
S2の次のバスサイクルS3に再び特殊バスサイクルが
挿入され、その次のバスサイクルS4で実行される命令
が、取込まれる命令語(32ビット)のうち上位/下位
いずれであるかを外部へ知らせている。
【0056】図2では、特殊バスサイクルS3でバイト
BC0〜BC3が0111とされているので、次のバス
サイクルS4で取り込まれる命令c,dのうち実行され
るのは命令c(MOV  R1.w,@R0.h)であ
ることが分かる。この命令cはデータ転送命令であるた
め、バスサイクルS5でデータ書込みサイクルが実行さ
れてから命令実行終了信号ENDが出ることになる。そ
のため、次のバスサイクルS6に特殊バスサイクルが挿
入されているのが図2より分かる。
【0057】図11には、プログラムカウンタ15cの
最下位ビットのデータとバイトコードBC0〜BC3と
の関係、メモリのアドレスとバイトコードBC0〜BC
3との対応及び上記プログラムの命令a〜dのメモリ上
の配置が示されている。
【0058】この実施例では、命令長は16ビットの正
の整数倍であるので命令の先頭位置は常に偶数アドレス
である。したがって、特殊バスサイクル時のバイトコー
ドはBC0又はBC2のみが“0”になる。なお、命令
フェッチサイクル時のバイトコードBC0〜BC3は“
0000”である。
【0059】図12には、図2の特殊バスサイクル(バ
スサイクルS1,S3,S6)のバイコードBC0〜B
C3と特殊バスサイクルの次のバスサイクル(S2,S
4,S7)で出力されるアドレスバスADB上のアドレ
スによって示される特殊バスサイクルの次のバスサイク
ルで実行される命令のメモリ上の先頭位置が斜線で示さ
れている。このように、特殊バスサイクルのバイトコー
ドBC0〜BC3、特殊バスサイクルの次のバスサイク
ルのアドレスバスADB及びデータバスDTB等を監視
することにより、図1のマイクロプロセッサの実行命令
を外部から知ることができる。
【0060】図2には1ワード(16ビット長の)命令
が実行される場合のみ示されているが、2ワード以上の
命令実行のときは、上記バスサイクルS4,S5のよう
に2以上の命令サイクルが連続することになる。
【0061】なお、上記実施例のマイクロプロセッサは
命令をすべて外部から取込む方式とされているが、内部
にキャッシュメモリを設けて、内部から命令を取込む方
式としてもよい。ただし、その場合、命令バッファに取
り込まれる命令を外部から知ることができないので、特
殊バスサイクル挿入モードではキャッシュメモリの動作
を停止させ、外部から命令を取り込ませるようにする必
要がある。従って、外部から供給される特殊バスサイク
ル要求信号SBRを、キャッシュメモリの動作を停止さ
せるための要求信号と兼ねさせるようにするとよい。
【0062】図3には上記実施例のマイクロプロセッサ
を用いたマイクロコンピュータシステム(ユーザシステ
ム)のエミュレーションを行なうインサーットエミュレ
ータのシステム構成例を示す。
【0063】図3において、1はユーザが開発しデバッ
グ対象となるユーザシステムとしてのマイクロコンピュ
ータシステムボード、2はエミュレータボックスであり
、図13に示されるように、上記ユーザシステム1上の
マイクロプロセッサの機能を代行する代行マイクロプロ
セッサ41やエミュレーション中ユーザシステムのバス
上の信号をサンプリングして蓄積するトレースメモリ2
1,エミュレーションや各種デバッグ機能を実現するた
めのエミュレーション制御部203,プログラムの実行
開始やトレースの停止条件を設定し、条件が成立したと
きにプログラムもしくはトレースを停止させるブレーク
ポイント制御部204,ユーザシステムにメモリが用意
されていない場合に貸し出される代行メモリ205等が
内蔵されている。このエミュレータボックス2はその本
体から延長されたケーブル3の先端のコネクタ3aが、
ユーザシステム1上に設けられたターゲットプロセッサ
用のソケットに挿入されることによりユーザシステムに
接続される。これとともに、エミュレータボックス2は
その本体から延長された別のケーブル4を介して、ホス
トコンピュータとの間のデータ通信を行なうシリアルイ
ンターフェイス206やその制御を司るマイクロコンピ
ュータ(制御用CPU)207,フロッピーディスクド
ライバ5a等が内蔵されたエミュレータ本体5に接続さ
れている。ホストコンピュータとして、ミニコンピュー
タやパーソナルコンピュータが使用できる。
【0064】なお、上記エミュレータ本体5からは、プ
リンタ接続用ケーブル6a,ホストコンピュータ接続用
ケーブル6b,CRT表示装置接続用ケーブル6cが延
設されている。7はユーザシステム1上から任意の信号
をサンプリングするためのプローブである。
【0065】図4には、上記ユーザシステム1の一構成
例と、これに接続されたエミュレータのうちトレースメ
モリのみが代表的に示されている。
【0066】図4において、41が図1に示されている
本発明に係るマイクロプロセッサで、このマイクロプロ
セッサ41にはアドレスバスADBやデータバスDTB
、制御バスCTB等からなるシステムバス42を介して
、プログラムやデータが格納されたメモリ43、ハード
ディスクコントローラ等の周辺デバイス44、トレース
メモリ21、特殊バスサイクル要求信号SBRを発生さ
せるコントロールスイッチ45等が接続されている。
【0067】なお、図4ではCPU41、コントロール
スイッチ45がユーザシステム側に位置しているが、エ
ミュレータボックス2側に位置し、CPU41が代行マ
イクロプロセッサとして動作するようにしてもよい。
【0068】下記には、図3のインサーキットエミュレ
ータにより図1の実施例のマイクロプロセッサを用いた
ユーザシステム1のエミュレーションを行なってトレー
スメモリ21内に蓄積されたデータの一部が示されてい
る。
【0069】         AB               
 DB            BC    R/W 
   BAT  00027830    000A0
007    0000    R      PGM
  00027834    00038811   
 0000    R      PGM  0002
7838    D00C000F    0000 
   R      PGM  00091000  
  00003030    1110    R  
    DAT  0002783C    2011
D00C    0000    R      PG
M    0000001C    FFFFFFFF
    0111    R      I/P  0
0027838    D00C000F    00
00    R      PGM  0002783
C    2011D00C    0000    
R      PGM    00027840   
 000A8011    0000    R   
   PGM  00027844    02F60
000    0000    R      PGM
    0000001C    FFFFFFFF 
   1101    R      I/P  00
02783C    2011D00C    000
0    R      PGM  00027840
    000A8011    0000    R
      PGM  00027844    02
F60000    0000    R      
PGM  0002738C    2011D00C
    0000    R      PGM  0
0027840    000A8011    00
00    R      PGM  0002784
4    02F60000    0000    
R      PGM  00027848    0
012D00C    0000    R     
 PGM  0002784C    0037001
1    0000    R      PGM  
  0000001C    FFFFFFFF   
 0111    R      I/P  0002
7844    02F60000    0000 
   R      PGM  00027848  
  0012D00C    0000    R  
    PGM  0002784C    0037
0011    0000    R      PG
M  00027854    685CD00C  
  0000    R      PGM  000
27858    00300011    0000
    R      PGM  0002785C 
   D011880A    0000    R 
     PGM    0000001C    F
FFFFFFF    1101    R     
 I/P  00027854    685CD00
C    0000    R      PGM  
00027858    00300011    0
000    R      PGM  000278
5C    D011880A    0000   
 R      PGM  00027860    
00070003    0000    R    
  PGM    0000001C    FFFF
FFFF    0111    R      I/
P  0002785C    D011880A  
  0000    R      PGM  000
27860    00070003    0000
    R      PGM  00027864 
   D011880A    0000    R 
     PGM  00091000    303
03030    1110    W      D
AT  00027868    00070002 
   0000    R      PGM  00
00001C    FFFFFFFF    011
1    R      PGM上記データ列において
、符号ABで示されている欄に属するデータはアドレス
バス上よりサンプリングされたデータ群(絶対アドレス
)、符号DBで示されている欄に属するデータはアドレ
スバス上よりサンプリングされたデータ群、符号BCで
示されている欄に属するデータはバイトコードBC0〜
BC3をサンプリングしたデータ群、R/Wはリードラ
イト制御信号、BATはバスアクセスタイプ信号をサン
プリングして理解し易いような符号に直して表示したも
のである。上記データ列において、BAT欄にPGMと
付されている行のDB欄のコードが命令コードで、DA
Tと付されている行のDB欄のコードがリード・ライト
データである。また、BAT欄にI/Pと付されている
行にあるデータが特殊バスサイクル中にサンプリングし
たデータである。この行のBC欄を見ることによって次
のデータ行のDB欄の命令コードのうち上位/下位のい
ずれが実行されたのか知ることができる。
【0070】図5には本発明の第2の実施例が示されて
いる。
【0071】この実施例のマイクロプロセッサは、命令
バッファ10と命令デコーダ13および命令実行部20
が4組設けられ、一度に4つの命令を取り込んで、同時
に4つの命令を並列処理できるようにされている。これ
によって、マイクロプロセッサの処理速度が向上される
【0072】ただし、このように4つの命令を並行処理
できるようにしたとしても、実際には同時に取り込んだ
4つの命令のうちある命令は他の命令が実行された結果
を待つ場合があるので必ず同時に実行されるわけではな
い。従って、たとえ命令バッファ10が1段のみであっ
てもどの命令が実行されるか外部からは分からない。そ
こで、この実施例では、外部からの特殊バスサイクル発
生要求信号SBRが入った場合に、1命令サイクル終了
ごとに次に実行される命令を外部のデータバス上に出力
させるための特殊バスサイクルを挿入する特殊バスサイ
クル発生回路19が設けられている。
【0073】この特殊バスサイクル発生回路19には、
4つの命令実行部20a〜20dから命令実行終了時に
それぞれ命令実行終了信号END1〜END4が供給さ
れるようにされている。また、上記命令実行終了信号E
ND1〜END4は命令アドレス制御回路15にも供給
されている。この命令アドレス制御回路15内にはプロ
グラムカウンタとこのプログラムカウンタ内のアドレス
からの相対値で命令アドレスを示す4つの命令ポインタ
が設けられており、命令実行終了信号END1〜END
4を受けると、対応する命令ポインタのみ更新される。 そしてポインタの値が特殊バスサイクル発生回路19に
送られることにより、いずれの命令が実行されるか示す
信号がバス制御信号BCT上に出力される。
【0074】この実施例のマイクロプロセッサは固定長
命令形式に特に有効である。
【0075】図6には図5の実施例のマイクロプロセッ
サの変形例が示されている。
【0076】この実施例のマイクロプロセッサは、命令
バッファ10a〜10dと命令デコーダ13a〜13d
との間に切換回路31が付加されている点のみ図5の実
施例と異なる。
【0077】この実施例では、命令バッファ10a〜1
0dと命令デコーダ13a〜13dが一対一の関係にな
く、各命令バッファ10a〜10dに取り込まれた命令
コードは、いずれの命令デコーダにも供給可能にされて
いる。従って、同時に取り込まれた4つの命令のうち一
部が先に実行終了した場合、空いた命令デコーダに次の
命令コードを入れてやることにより効率よく命令を処理
することができる。
【0078】この実施例のマイクロプロセッサにも特殊
バスサイクル発生回路19が設けられており、次に実行
される命令のコードと命令アドレスが外部に出力可能に
されている。
【0079】図7には、本発明をキャッシュメモリ内蔵
のマイクロプロセッサに適用した場合の実施例が示され
ている。マイクロプロセッサ全体の構成は図1のものと
ほぼ同じである。以下、ハードウェアの違いを説明する
【0080】図7において、22はマイクロプロセッサ
に内蔵されたキャッシュメモリである。外部バス制御回
路11は、命令コードを命令バッファ10に供与する機
能および命令実行部20からのデータアクセス要求信号
DARに従って外部にデータあるいは命令をアクセスす
る機能を有する。また、命令取込みの際に先ずキャッシ
ュメモリ22をアクセスし、ヒットしたときはキャッシ
ュメモリ内の命令コードを命令バッファ10へ供与し、
ミスヒットしたときはアドレスバスADBをアクセスし
て外部のメモリに命令を取りに行く機能を有している。
【0081】なお、一致制御は外部メモリとキャッシュ
メモリのデータの整合性を保つためのもので、外部メモ
リに対するデータの更新を監視し、キャッシュメモリに
保持しているデータアドレスと一致するとキャッシュメ
モリの該当データをパージする。
【0082】特に制限されないが、外部バス制御回路1
1は、命令アドレス制御回路15または演算処理部17
より内部バス18を介して供給される論理アドレスを物
理アドレスに変換するアドレス変換テーブル(TLB:
Translation Look−asideBuf
fers)11aを有している。
【0083】この実施例では固定長命令形式のマイクロ
プロセッサを考えており、そのため命令アドレス制御回
路15は、命令フェッチポインタ15aとプログラムカ
ウンタ15cを備えている。
【0084】さらに、この実施例のマイクロプロセッサ
では、特殊バスサイクル発生回路19によって挿入され
る特殊バスサイクルで、実行された命令のコードをデー
タバスDTB上に出力するとともにプログラムカウンタ
15c内の論理アドレスを命令識別アドレスとしてアド
レスバスADB上に出力するように構成されている。次
に、上記マイクロプロセッサの動作について説明する。
【0085】外部バス制御回路11は、命令フェッチポ
インタ15aの示すアドレスを先ずアドレス変換テーブ
ル11aで物理アドレスに変換し、それをキャッシュメ
モリ22に送って検索し、ヒット信号Hを得るとキャッ
シュメモリ22から命令コードを読み出し、命令バッフ
ァ10へ供給する。命令バッファ10に取り込まれた命
令コードは命令デコーダ13に転送されてデコードされ
、命令の種別、アドレッシングモードの認識、即値生成
、演算制御情報等が抽出される。この情報により、命令
実行部20がデータの転送や演算等の処理を行なう。
【0086】なお、命令デコーダ13には、現在実行中
の命令の1つ前の命令を保持するバッファを有しており
、特殊バスサイクルで実行命令コードをデータバスDT
B上に出力できるようにされている。このバッファは、
外部バス制御回路11又は特殊バスサイクル発生回路に
位置してもよい。
【0087】そして、命令実行終了ごとに演算制御回路
16から命令実行終了信号ENDが出力され、命令アド
レス制御回路15および特殊バスサイクル発生回路19
に命令実行の終了通知がなされる。命令アドレス制御回
路15ではこの命令の終了通知を受けると、プログラム
カウンタ15cのインクリメントが行なわれる。
【0088】なお、プログラムカウンタ15cには、イ
ンクリメントが行なわれる前の値を保持するバッファを
有しており、特殊バスサイクルで命令識別アドレスをア
ドレスバスADB上に出力できるようにされている。こ
のバッファは、外部バス制御回路11又は特殊バスサイ
クル発生回路に位置してもよい。
【0089】また、プログラムが分岐をするときは、命
令実行部20において作成された分岐先命令アドレスが
内部バス18を介して命令アドレス制御回路15に供給
され、プログラムカウンタ15cおよび命令フェッチポ
インタ15aに設定される。
【0090】一方、キャッシュメモリ22の検索でミス
ヒットしたときは、上記変換アドレス(物理アドレス)
を外部のアドレスバスADB上に出力し、データバスD
TBを介して外部メモリから命令コードを取り込んで命
令バッファ10に供与する。また、取り込んだ命令は同
時にキャッシュメモリ22に送り、格納する。
【0091】命令の取込みは自動的に命令フェッチポイ
ンタ15aをインクリメントとしながら命令バッファ1
0が一杯になるまで行なわれる。命令バッファ10が一
杯になると、命令バッファ10から信号FULLが命令
アドレス制御回路15に供給され、命令フェッチポイン
タ15aの更新が停止される。
【0092】上記の通常動作モードでは、命令コードが
キャツシュメモリ22内にある場合、プロセッサの外部
からは内部の実行命令が識別できない。この実施例では
、外部から特殊バスサイクル発生要求信号SBRを入れ
てやると、特殊バスサイクル挿入モードに移行して内部
で実行中の命令コードおよびその命令の位置を示すアド
レスを外部へ出力する。本特殊モードでの動作は上記通
常モードに加え、プロセッサ内部で命令実行が行なわれ
、命令実行終了信号ENDが出力されるごとに、特殊バ
スサイクル発生回路19が外部バス制御回路11を制御
して内部での命令実行と並行して現在実行中の命令の1
つ前の命令の命令識別アドレスおよび実行命令コードを
それぞれ空いているアドレスバスADB、データバスD
TB上にのせ、バスアクセスタイプまたはデータタイプ
を識別するため信号を特殊バスサイクルであることを示
すコードとしてバス制御信号BCT上に出力する。
【0093】これにより、プロセッサ外部の観測でプロ
セッサ内部の実行命令語およびアドレスを識別できる。 ただし、このとき、キャッシュミスヒットに起因する本
来の命令語取込みやデータアクセスと競合する可能性は
あるが、複数のバスサイクルの要求が競合した場合、外
部バス制御回路11は予め定められた優先順位に応じて
外部バスサイクルを発生させる。具体的には、特殊バス
サイクル挿入モードではキャッシュミスヒットに起因す
るバスサイクルに優先して特殊バスサイクルを発生させ
るようになっている。
【0094】なお、キャッシュのミスヒットが発生した
場合にプロセッサが外部メモリに命令を取りに行ったと
きの命令フェッチサイクルの次には特殊バスサイクルを
入れてもよいが入れないようにしてもよい。外部バスを
監視していればそのような命令フェッチサイクルを識別
できるためである。ただし、ミスヒットの際の命令フェ
ッチサイクルの次にそれを外部に示す特殊バスサイクル
を挿入しないようにすれば、ハードウェアは多少複雑に
なるが、特殊バスサイクルのない分だけ高速化できると
いう利点がある。
【0095】図14には、図7のマイクロプロセッサの
外部バス制御回路11と特殊バスサイクル発生回路19
の一例が示されている。
【0096】図14において、101はアドレス出力レ
ジスタ、102は特殊アドレス発生回路、103は通常
/割込み/特殊サイクル切替え回路、104はバイトコ
ード発生回路、105はバスアクセスタイプ発生回路、
106はデータ入力レジスタ、107はデータ出力レジ
スタ、108、109、111、112及び113はセ
レクタ、110は割込み受付け回路である。外部バス制
御回路11と特殊バスサイクル発生回路19の構成は図
9のものとほぼ同じである。以下ハードウェアの違いを
説明する。
【0097】特殊アドレス発生回路102は、図9とは
異なり、割込み受付け回路110の出力の割込み要求レ
ベルによって、割込みサイクルでアドレスバスADBに
出力する特殊アドレスを生成する。
【0098】通常/割込み/特殊サイクル切替え回路1
03は、割込み許可信号INT、データアクセス要求信
号DAR、特殊バスサイクル発生要求信号SBR及び命
令実行終了信号ENDを受けて、セレクタ108の出力
及びTLS11aの出力と特殊アドレス発生回路102
の出力とのいずれか一方をセレクタ109で選択するた
めの信号NS1、セレクタ109の出力と命令識別アド
レスを供給するプログラムカウンタ15cの出力とのい
ずれか一方をセレクタ111で選択する及びデータ出力
レジスタ107の出力と命令でコーダ13の出力とのい
ずれか一方をセレクタ112で選択するための信号NS
2、割込みサイクルであることを示すINTC及び特殊
バスサイクルであることを示す信号SBCを生成する。 セレクタ111及びセレクタ112には、図9のセレク
タ109と同様にビット長を揃える機能を有している。
【0099】バイトコード発生回路104は、32ビッ
トのアドレスの下位2ビット、命令実行部20から出力
されるアクセスするデータの幅を示す信号DW及び割込
みサイクルであることを示すINTCによって、各サイ
クルに必要なバイトコードデータをバイトコード出力回
路へ供給する。
【0100】セレクタ113は、キャッシュメモリ22
からのヒット信号Hによってキャッシュメモリ22内の
命令か外部メモリからフェッチした命令かのいずれか一
方を選択し命令バッファ10あるいはデータ入力レジス
タ106に供給される。
【0101】バス制御信号発生回路114は、割込みサ
イクルであることを示すINTC、特殊バスサイクルで
あることを示す信号SBC及び命令実行部20から出力
されるバスアクセスタイプ信号等によって、バスアクセ
スタイプデータやデータタイプ等の識別信号データをバ
ス制御信号出力回路に供給する。
【0102】この実施例では、アドレス出力レジスタ1
01が内部バス18とセレクタ108との間に位置して
いるが、セレクタ108とTLB11aとの間、TLB
11aとセレクタ109との間、セレクタ109とセレ
クタ111との間あるいはセレクタ111とアドレスバ
ス出力回路との間に位置してもよい。
【0103】図15には、図7のマイクロプロセッサの
外部バス制御回路11と特殊バスサイクル発生回路19
で制御されるバスサイクルの状態遷移図の一例が示され
ている。
【0104】図7には図示されていないマイクロプロセ
ッサを初期化する信号RESETにより、状態Tiに入
る。状態Tiでは、バスサイクルはアイドル状態であり
、データアクセス要求信号DAR、ヒット信号H、特殊
バスサイクル要求信号SBR、命令実行終了信号END
及び割込み許可信号INTの組合せにより、通常バスサ
イクル(状態T0及び状態T1)、特殊バスサイクル(
状態T0S及び状態T1S)並びに割込み開始状態T2
に遷移する。状態T0から状態T1及び状態T0Sから
状態T1Sへは、無条件で遷移する。
【0105】この実施例では、図10の実施例とは異な
り、特に制限はされないが、割込みサイクルは特殊バス
サイクル(状態T0S及び状態T1S)の一つではなく
、通常バスサイクル(状態T0及び状態T1)の一つで
ある。さらに、この実施例では、特に制限はされないが
、割込み許可信号INTと特殊バスサイクル要求信号S
BRが同時に発生した場合は、特殊バスサイクル要求信
号SBRが優先されるようになっており、また、キャッ
シュミスヒットに起因するバスサイクルに優先して特殊
バスサイクルを発生させるようになっている。また、こ
の実施例では、通常バスサイクル及び特殊バスサイクル
は外部条件なく自動的に終了するようになっているが、
例えば、外部メモリからのアクノリッジ信号等でバスサ
イクルが終了するようにしてもよい。この場合、アクノ
リッジ信号が入力されるまで状態T1又は状態T1Sの
状態を続ける。
【0106】図8には、上記マイクロプロセッサを用い
たシステムにおいて次のプログラムを実行した場合の各
バスの動作タイミングが示されている。
【0107】         :         :   00001000               
 MOV  #4,R0.w        ……a 
 00001004  LABEL1:ADD  #1
,R0.w        ……b  0000100
8                MOV  @R0
.h,R1.w  ……c  0000100C   
             MOV  R1.w,R2
.w    ……dなお、図8の動作タイミングは、命
令a〜dがキャッシュメモリ22内にすでに格納されて
いる場合のタイミングである。
【0108】図8を参照すると、バスサイクルS1では
プロセッサ内部で命令aが実行され、バスサイクルS2
ではプロセッサ内部で命令bが実行されるのと並行して
外部データバス上にサイクルS1で実行された命令コー
ドaが、また外部アドレスバス上にその命令アドレスが
出力され、かつバス制御信号BCT上には特殊バスサイ
クルであることを示すコードが出力されていることが分
かる。
【0109】また、図8では、次の命令c(MOV  
@R0.h,R1.W)がデータアクセスを伴う命令で
あるため、プロセッサ内部では命令cの実行が停止され
、バスサイクルS3で特殊バスサイクルが優先的に実行
され、前のサイクルで実行された命令bの命令コードと
アドレスが出力されていることが分かる。そして、命令
cの実行は特殊バスサイクルS3の次のサイクルS4で
実行され、アドレスバス上には所望のデータの位置を示
すアドレスが、またデータバス上にはリードデータがの
っている。バスサイクルS4で実行された命令cのコー
ドとアドレスは次のバスサイクルS5で外部に出力され
る。このとき、プロセッサ内では命令dが並行して実行
され、この命令dのコードとアドレスは次のバスサイク
ルS6で外部へ出力される。
【0110】なお、図7の実施例のマイクロプロセッサ
では、特殊バスサイクルで実行命令のアドレスを論理ア
ドレスで出力するようにしているが、プログラムカウン
タ15cから特殊バスサイクル発生回路19に供給され
る命令識別アドレスをアドレス変換テーブル11aを通
すことによって物理アドレスとして出力するようにして
もよい。
【0111】また、図7の実施例では固定長命令を扱う
マイクロプロセッサを示したが、図1の実施例と同じよ
うに、命令バッファを2組設けるとともに、命令アドレ
ス制御回路15内に命令コードポインタ15bを付加す
ることで可変長命令を扱い、しかもキャッシュメモリ内
蔵したマイクロプロセッサに本発明を適用することも可
能である。
【0112】以上説明したように上記実施例では、予め
複数の命令を保持可能なバッファもしくはメモリを有す
るマイクロプロセッサに、ある所定の動作モードでは1
命令実行ごとにプロセッサの内部情報を外部へ出力する
ための特殊バスサイクルを挿入する機能を持たせるよう
にしたので、命令プリフェッチ方式のマイクロプロセッ
サを用いたシステムのエミュレーションにおいて、いず
れの命令が実行されたか外部で容易に知ることができる
ため、正確なエミュレーション制御が可能になるととも
に、トレースデータの解析が容易となりデバッグ効率が
向上するという効果がある。
【0113】また、本来不用な特殊バスサイクルが挿入
されるため、完全なリアルタイム性はないが挿入される
のは1サイクルのみであるため、割込み機能等で所定の
命令列を実行して内部情報を外部へ知らせる従来方式に
比べると、リアルタイム性はほとんど損なわれない。
【0114】さらに、エミュレーションに必要な情報は
、通常のサイクルと時分割に出力されるため、ユーザシ
ステムに使用されるマイクロプロセッサとエミュレーシ
ョン用のマイクロプロセッサが一つのマイクロプロセッ
サで実現でき、また、特殊バスサイクルを挿入するため
のハードウェアの増加は少ないので、LSI開発の負担
が軽減できる。
【0115】以上本発明者によってなされた発明を実施
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変更可能であることはいうまでもない。例えば、上
記実施例では特殊バスサイクル挿入モードを外部ピンか
らの特殊バスサイクル発生要求信号SBRに基づいて行
なっているが、特殊バスサイクル発生回路19内にフラ
グもしくはレジスタを設け、そこへの書込みによって特
殊バスサイクル挿入モードへ移行させるようにしてもよ
い。
【0116】また、上記実施例では特殊バスサイクルは
1サイクルのみであるが、複数サイクル挿入されてもよ
い。さらに、上記実施例では次に実行される命令又は直
前に実施された命令を示す情報が特殊バスサイクルで出
力されているが、デバッグに必要な、例えば、演算結果
が保持されるレジスタの内容等を特殊バスサイクルで出
力されるようにしてもよい。さらにまた、演算結果が保
持されるレジスタの内容等マイクロプロセッサのユーザ
に見える情報だけでなく、LSIのデバッグやテストに
必要な一時レジスタ等のユーザに見えないマイクロプロ
セッサの内部情報を特殊バスサイクルで出力されるよう
にしてもよい。
【0117】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるマイク
ロプロセッサに適用した場合について説明したが、この
発明はそれに限定されるものではなく、シングルチップ
マイコンその他プログラム制御方式のデータ処理装置一
般に利用することができる。
【0118】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
のとおりである。
【0119】すなわち、ピン数を増加させたり、複雑な
外付け回路を設けることなく、命令プリフェッチ方式の
マイクロプロセッサにおいて実行中の命令アドレス等内
部情報を外部へ知らせることができる。
【0120】また、リアルタイム性を損なうことなく内
部情報を外部へ知らせることができるとともに、必要と
する情報量の増加に対する柔軟性の高いマイクロプロセ
ッサを実現することができる。
【0121】本マイクロプロセッサを用いることにより
、エミュレーション専用のマイクロプロセッサを用意す
ることなく、予め複数の命令をフェッチする命令レジス
タや命令キャッシュを有するマイクロコンピュータを使
用したユーザシステムのエミュレーションを行なうイン
サーキットエミュレータを提供することができる。
【図面の簡単な説明】
【図1】本発明に係るマイクロプロセッサの第1の実施
例を示すブロック図である。
【図2】その特殊バスサイクル挿入モードでの動作タイ
ミングチャートである。
【図3】インサーキットエミュレータの構成例を示す斜
視図である。
【図4】本発明に係るマイクロプロセッサを用いたマイ
クロコンピュータシステムとそのエミュレーションシス
テムの一部を示すブロック図である。
【図5】本発明に係るマイクロプロセッサの第2の実施
例を示すブロック図である。
【図6】本発明に係るマイクロプロセッサの第3の実施
例を示すブロック図である。
【図7】本発明に係るマイクロプロセッサの第4の実施
例を示すブロック図である。
【図8】その特殊バスサイクル挿入モードでの動作タイ
ミングを示すチャートである。
【図9】図1のマイクロプロセッサの外部バス制御回路
11と特殊バスサイクル発生回路19の一例である。
【図10】図1のマイクロプロセッサのバスサイクルの
状態遷移図の一例である。
【図11】プログラムの命令a〜dのメモリ上の配置で
ある。
【図12】特殊バスサイクルが示す実行命令のメモリ上
の位置である。
【図13】エミュレータボックス2とエミュレータ本体
5の一例を示すブロック図である。
【図14】図7のマイクロプロセッサの外部バス制御回
路11と特殊バスサイクル発生回路19の一例である。
【図15】図7のマイクロプロセッサのバスサイクルの
状態遷移図の一例である。
【符号の説明】
1      ユーザシステム(マイクロコンピュータ
システム) 2      エミュレータボックス 3,4  ケーブル 5      エミュレータ本体 11    外部バス制御回路 15    命令アドレス制御回路 18    内部バス 19    特殊バスサイクル発生回路20    命
令実行部

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】予め複数の命令語を取込み、その命令を一
    つずつ解読し、所定の処理を実行するデータ処理装置に
    おいて、実行される命令を識別するための情報が外部へ
    出力可能にされていることを特徴とするデータ処理装置
  2. 【請求項2】命令実行サイクルの直前に、次に実行され
    る命令を識別するための情報を外部へ出力するバスサイ
    クルを挿入するバス制御手段を備えてなることを特徴と
    する請求項1記載のデータ処理装置。
  3. 【請求項3】命令実行サイクル後に、実行された命令を
    識別するための情報を外部へ出力するバスサイクルを挿
    入するバス制御手段を備えてなることを特徴とする請求
    項1記載のデータ処理装置。
  4. 【請求項4】上記命令語は可変長命令であることを特徴
    とする請求項1〜3記載のデータ処理装置。
  5. 【請求項5】上記命令語は装置に内蔵された記憶手段に
    格納されていることを特徴とする請求項1〜4記載のデ
    ータ処理装置。
  6. 【請求項6】複数の命令語を保持する手段と、その命令
    語を解読する複数の命令デコーダと、その解読された命
    令を実行する複数の命令実行部とを有するデータ処理装
    置において、実行される命令を識別するための情報を外
    部へ出力するバスサイクルを挿入するバス制御手段を備
    えてなることを特徴とするデータ処理装置。
  7. 【請求項7】上記命令語は固定長命令であることを特徴
    とする請求項6記載のデータ処理装置。
  8. 【請求項8】予め複数の命令語を取り込み、その命令を
    一つずつ解読し、所定の処理を実行するデータ処理装置
    であって、実行される命令又は実行された命令を識別す
    るための情報を外部へ出力するバスサイクルを挿入する
    バス制御手段を備えてなるデータ処理装置と、エミュレ
    ーション中ユーザシステムのバス上の信号をサンプリン
    グして蓄積するトレースメモリと、エミュレーションや
    各種デバッグ機能を実現するためのエミュレーション制
    御部と、プログラムの実行開始やトレースの停止条件を
    設定し、条件が成立したときにプログラムもしくはトレ
    ースを停止させるブレークポイント制御部と、ユーザシ
    ステムにメモリが用意されていない場合に貸し出される
    代行メモリとを備えてなることを特徴とするシステム開
    発装置。
  9. 【請求項9】複数の命令語を保持する手段と、その命令
    語を解読する複数の命令デコーダと、その解読された命
    令を実行する複数の命令実行部とを有するデータ処理装
    置において、実行される命令を識別するための情報を外
    部へ出力するバスサイクルを挿入するバス制御手段を備
    えてなるデータ処理装置と、エミュレーション中ユーザ
    システムのバス上の信号をサンプリングして蓄積するト
    レースメモリと、エミュレーションや各種デバッグ機能
    を実現するためのエミュレーション制御部と、プログラ
    ムの実行開始やトレースの停止条件を設定し、条件が成
    立したときにプログラムもしくはトレースを停止させる
    ブレークポイント制御部と、ユーザシステムにメモリが
    用意されていない場合に貸し出される代行メモリとを備
    えてなることを特徴とするシステム開発装置。
JP3049346A 1990-04-20 1991-03-14 データ処理装置及びそれを用いたシステム開発装置 Withdrawn JPH04284546A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP3049346A JPH04284546A (ja) 1991-03-14 1991-03-14 データ処理装置及びそれを用いたシステム開発装置
KR1019910006125A KR910018909A (ko) 1990-04-20 1991-04-17 데이타처리장치 및 그것을 사용한 시스템개발장치
EP91303435A EP0453268B1 (en) 1990-04-20 1991-04-17 A microprocessor for inserting a bus cycle to output an internal information for an emulation
DE69127992T DE69127992T2 (de) 1990-04-20 1991-04-17 Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation
US08/201,488 US5564041A (en) 1990-04-20 1994-02-24 Microprocessor for inserting a bus cycle in an instruction set to output an internal information for an emulation
HK98102618A HK1003603A1 (en) 1990-04-20 1998-03-27 A microprocessor for inserting a bus cycle to output an internal information for an emulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3049346A JPH04284546A (ja) 1991-03-14 1991-03-14 データ処理装置及びそれを用いたシステム開発装置

Publications (1)

Publication Number Publication Date
JPH04284546A true JPH04284546A (ja) 1992-10-09

Family

ID=12828451

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3049346A Withdrawn JPH04284546A (ja) 1990-04-20 1991-03-14 データ処理装置及びそれを用いたシステム開発装置

Country Status (1)

Country Link
JP (1) JPH04284546A (ja)

Similar Documents

Publication Publication Date Title
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
US5564041A (en) Microprocessor for inserting a bus cycle in an instruction set to output an internal information for an emulation
US5560036A (en) Data processing having incircuit emulation function
KR100387193B1 (ko) 트레이스함수와그에따른방법을실행하기위한데이타처리시스템
JP4190114B2 (ja) マイクロコンピュータ
KR100394897B1 (ko) 데이터처리장치및데이터처리장치제공방법
JP3708176B2 (ja) データ処理装置及びデータ処理方法
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
JP4038372B2 (ja) 順序外データのトレーシング
US5347636A (en) Data processor which efficiently accesses main memory and input/output devices
JP2003085000A (ja) トレース情報生成装置およびその方法
GB2413657A (en) Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
EP0762278A1 (en) Data processor with built-in emulation circuit
US5212779A (en) System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction
JPH04284546A (ja) データ処理装置及びそれを用いたシステム開発装置
JP2923570B2 (ja) インサーキットエミュレータおよびマイクロプロセッサ
JPS62197831A (ja) デ−タ処理装置
JP2915944B2 (ja) カバレージ測定方法及びマイクロコンピュータ
JPH08335177A (ja) プロセッサ動作観察方法及び装置
JPS6316350A (ja) マイクロプロセッサ
JPH10240570A (ja) マイクロプロセッサ及びその開発支援装置
JP3210171B2 (ja) データ処理装置
JPH03216734A (ja) データ処理方法及び中央処理装置
JPH1011290A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980514