JPH043230A - インサーキットエミュレータおよびマイクロプロセッサ - Google Patents

インサーキットエミュレータおよびマイクロプロセッサ

Info

Publication number
JPH043230A
JPH043230A JP2104700A JP10470090A JPH043230A JP H043230 A JPH043230 A JP H043230A JP 2104700 A JP2104700 A JP 2104700A JP 10470090 A JP10470090 A JP 10470090A JP H043230 A JPH043230 A JP H043230A
Authority
JP
Japan
Prior art keywords
instruction
executed
bus
address
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.)
Granted
Application number
JP2104700A
Other languages
English (en)
Other versions
JP2923570B2 (ja
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 Ltd
Hitachi Microcomputer Engineering 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 Ltd, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Priority to JP2104700A priority Critical patent/JP2923570B2/ja
Priority to DE69127992T priority patent/DE69127992T2/de
Priority to EP91303435A priority patent/EP0453268B1/en
Priority to KR1019910006125A priority patent/KR910018909A/ko
Publication of JPH043230A publication Critical patent/JPH043230A/ja
Priority to US08/201,488 priority patent/US5564041A/en
Priority to HK98102618A priority patent/HK1003603A1/xx
Application granted granted Critical
Publication of JP2923570B2 publication Critical patent/JP2923570B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、データ処理技術、さらには命令ブリフェッ
チ方式のマイクロプロセッサにおける実行命令の通知方
式に適用して特に有効な技術に関し、例えばノイマン型
マイクロコンピュータに利用して有効な技術に関する。
[従来の技術] 従来提案されているマイクロコンピュータには、実行す
べき命令以外にいくつかの命令を前もって取り込んでお
くブリフェッチ方式の命令レジスタを有するようにされ
たものがある。このように、ブリフェッチ方式の命令レ
ジスタに予め複数の命令を取り込んでおくことによって
、プログラムの実行の高速化が可能になる。
ところで、ユーザが新たにマイクロコンピュータ・シス
テムやそのソフトウェアを開発した場合、エミュレーシ
ョンを行なってデバッキングを行なうことが多い。
そのようなエミュレーションにおいては、プログラム中
のある命令を実行した時点でプログラムの実行を中断し
たり、ある時点からバス上のデータをメモリにトレース
したりする。そして、このトレースされたメモリの内容
を解析することで、プログラムの暴走要因などを解明し
て、プログラムやシステムのデバッギングが容易に行な
えるようになる。
そのため、エミュレーション中にデータバスやアドレス
バスを監視して、ブレークポイントやトレースポイント
を検出することが行なわれる。
前述したように前もって複数の命令をフェッチする命令
レジスタを有するマイクロコンピュータにおいては、エ
ミュレーションを行なう場合、実際のバス上に現われる
命令コードやアドレスは、実行中の命令のものとは異な
ることになる。そのため、正しいブレークポイントでプ
ログラムの実行を中断したり、所望の時点からトレース
を開始したりすることができないとともに、エミュレー
ション後におけるトレース内容の解析が困難になる。
そこで、実行中の命令のアドレスとブリフェッチ・アド
レスとの差を出力するビンを設けて、命令ブリフェッチ
方式のマイクロコンピュータにおける実行中の命令を外
部で知ることができるようにした発明(特開昭62−1
97831号)や割込み機能を利用して1命令実行ごと
にプログラムの実行を中断し、マイクロプロセッサの内
部状態を外部へ知らせる他の命令列を実行するようにし
た発明(特開昭61−286936号)が提案されてい
る。
[発明が解決しようとする課題] 上記従来技術のうち、実行命令のアドレスとブリフェッ
チ・アドレスとの差を出力するビンを設ける方式にあっ
ては、マイクロプロセッサのピン数を増加させたり専用
ビンを追加した別チップを用意しなくてはならないため
コストが高くなったり開発期間が長くなるとともに、必
要とする情報量の増加に対応できないという欠点がある
一方、1命令実行ごとにプログラムを中断する方式にあ
っては、リアルタイム性がなくなり、エミュレーション
中にシステムが暴走するおそれがある。
本発明の目的は、ビン数を増加させたり、複雑な外付は
回路を設けることなく、命令ブリフェッチ方式のマイク
ロプロセッサにおいて、実行中の命令アドレス等内部情
報を外部へ知らせることができるようにすることにある
本発明の他の目的は、リアルタイム性を損なうことなく
内部情報を外部へ知らせることができるとともに、必要
とする情報量の増加に対する柔軟性の高いマイクロプロ
セッサを提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴に
ついては、本明細書の記述および添附図面から明らかに
なるであろう。
[課題を解決するための手段] 本願において開示される発明のうち代表的なものの概要
を説明すれば、下記のとおりである。
すなわち、予め複数の命令を保持可能なバッファもしく
はメモリを有するマイクロプロセッサに、ある所定の動
作モードではl命令実行ごとにプロセッサの内部情報を
外部へ出力するための特殊バスサイクルを挿入する機能
を持たせるようにするものである。
上記特殊バスサイクルの挿入機能は、外部バス制御回路
もしくはそれに付随する回路としてハードウェアで実現
してもよいし、マイクロプログラム制御のようなファー
ムウェアで実現してもよい。
上記特殊バスサイクルで外部へ出力するプロセッサ内部
の情報としては、実行された命令のメモリ空間上でのア
ドレス(物理アドレスよりも論理アドレスが良い)やブ
リフェッチされた命令群の中の当該実行命令を識別する
ためのコードがある。
[作用コ 上記した手段によれば、命令ブリフェッチ方式のマイク
ロプロセッサを用いたシステムのエミュレーションにお
いて、いずれの命令が実行されたか外部で容易に知るこ
とができるため、正確な工ミュレーション制御が可能に
なるとともに、トレースデータの解析が容易となりデバ
ッグ効率が向上する。
また、本来不用な特殊バスサイクルが挿入されるため、
完全なリアルタイム性はないが、挿入されるのはlサイ
クルのみであるため、割込み機能等で所定の命令列を実
行して内部情報を外部へ知らせる従来方式に比べると、
リアルタイム性はほとんど損なわれない。
[実施例コ 第1図には本発明を命令ブリフェッチ方式のマイクロプ
ロセッサに適用した場合の一実施例が示されている。
特に制限されないが、第1図に示されている各回路ブロ
ックは単結晶シリコン基板のような一個の半導体チップ
上において形成される。
この実施例のマイクロプロセッサには、特に制限されな
いが、各々16ビツト長の命令コードを2つ保持可能な
2個のF I FO方式の命令バッファ10a、IOb
が設けられている。また、バスサイクルを制御する外部
バス制御回路11が設けられており、この外部バス制御
回路11には、30ビツトのアドレスバスADBと32
ビツトのデータバスDTBが接続可能にされている。外
部バス制御回路11には、データバスDTBを介して外
部のメモリから一度に32ビツト幅で命令コードやデー
タを取り込むようにされている。そして、命令フェッチ
サイクルで一度に取り込まれた32ビツト幅の命令コー
ドは、16ビツトずつ2つに分割され、上記2つの命令
バッファ10a、10bにそれぞれ格納される。
なお、この実施例のマイクロプロセッサの命令語長は1
6ビツトXn(nは正の自然数)の可変長である。また
、この実施例では、外部バス制御回路11は4ビツトの
バイトコードBCO−BC3を生成して出力可能に構成
されており、16ビツト単位の命令の取込みやバイト単
位でのデータのリード・ライトもできる。このバイトコ
ードBCO〜BC3は、通常は命令フェッチポインタ1
5aの下位1ビツトもしくは内部バス18を介して演算
処理部17より供給される32ビツトのアドレスの下位
2ビツトに基づいて生成される。
上記命令バッファ10a、lobに格納された命令コー
ドはセレクタ12を介して16ビツト幅の命令デコーダ
13または32ビツト幅の即値生成回路14へ選択的に
供給可能にされている。上記セレクタ12は、命令フェ
ッチポインタ15aを有する命令アドレス制御回路15
からの制御信号SCによって適切なタイミングで切り換
えが行なわれる。
命令デコーダ13は供給された命令コードをデコードし
て、命令長を検出して信号WLによって上記命令アドレ
ス制御回路15へ知らせたり、マイクロプログラム制御
方式の演算制御回路16に起動をかける。演算制御回路
16は演算器や汎用レジスタ群を有する演算処理部17
に対する制御信号を形成し、命令デコーダ13に保持さ
れている命令コードに対応する処理を実行させる。
演算結果は、32ビツト幅の内部データバス18を介し
て、外部バス制御回路11または命令アドレス制御回路
15に供給される。また、外部メモリより読み込まれた
データはデータバス18を介して演算処理部17に供給
される。外部からデータを読み込むときには、演算制御
回路16から外部バス制御回路11に対して、データア
クセス要求信号DARが供給される。
この実施例では、上記命令アドレス制御回路I5内に、
命令フェッチアドレスを保持する命令フェッチポインタ
15aとは別個に、上記命令バッファ10a、10bに
取り込まれた命令コードのうちいずれを実行すべきか指
示する31ビツト幅の命令コードポインタ15bと、実
行される命令の先頭アドレスを保持するプログラムカウ
ンタ15Cが設けられており、この命令コードポインタ
15bの最下位の1ビツトがセレクタ制御信号SCとし
て上記セレクタ12に供給される。命令コードポインタ
15bは、命令デコーダ13からの実行命令の命令語長
を示す信号WLに基づいて命令語要分だけ自動的にイン
クリメントされる。
一方、命令フェッチポインタ15aに保持されている3
1ビツト長の命令フェッチアドレスは外部バス制御回路
11に供給されており、外部バス制御回路11はこのう
ち上位30ビツトを外部アドレスバスADB上に出力す
る。命令フェッチポインタ15aは命令バッファ10a
、10bが一杯になるまで自動的に更新される。
分岐命令のときは、演算処理部17から供給される分岐
先アドレスが、命令コードポインタ15bにセットされ
るとともにプログラムカウンタ15cにもセットされる
。プログラムカウンタ15Cは、31ビツト幅に構成さ
れており、例えばデータ位置が相対アドレスで示されて
いる場合、このプログラムカウンタ15cの値が内部デ
ータバス18を介して演算処理部17に送られてディス
プレースメント(オフセット)を加算して得られた値が
アドレスとして外部へ出力される。即値生成回路14は
、32ビツト幅に構成されており、命令デコーダ13か
らの制御信号によって命令語中から即値を抽出して演算
処理部17に渡す。
この実施例では、上記外部バス制御回路11に付随して
特殊バスサイクル発生回路19が設けられている。
また、演算制御回路16から1命令終了ごとに終了通知
信号ENDが特殊バスサイクル発生回路19と命令アド
レス制御回路15に供給される。
この信号を受けると命令コードポインタの値(実行命令
アドレス)がプログラムカウンタ15cにロードされ、
最下位ビットが特殊バスサイクル発生回路19に供給さ
れる。また、このとき命令バッファ10a、10bがク
リアされる。
一方、特殊バスサイクル発生回路19は外部から特殊バ
スサイクル発生要求SBRのようなモード指定信号を受
けると有効にされ、l命令の実行終了を知ると、外部バ
ス制御回路11に対し、次に実行する命令(16ビツト
Xn (nは自然数))の先頭が同時に取り込まれた3
2ビツト長の命令コードの上位側であるのか下位側であ
るかを外部へ出力するための特殊バスサイクルを挿入す
るように制御信号を与える。
ただし、外部バス制御回路11は特殊バスサイクルを優
先させるか、他のバスサイクル(データサイクル等)を
優先させるか判断する機能を有している。
この実施例のマイクロプロセッサは、特殊バスサイクル
によって、プログラムカウンタ15cの最下位ビットに
対応する信号をバイトコードBCO−BC3によって出
力することで、次に実行する命令が32ビツトのうち上
位側が下位側かを示す。しかもこの実施例では特殊バス
サイクル挿入時に命令バッファ10a、lobをクリア
しているので、次の命令コードは一度フエッチされてい
ても次のサイクルで改めてフェッチし直される。
従って、特殊バスサイクルの次のサイクルでのデータバ
ス上の信号を見れば実行される命令コードも知ることが
できる。
ただし、特殊バスサイクル挿入時にプログラムカウンタ
15cの最下位ビットに対応する情報のみ出力する代わ
りに、特殊バスサイクルでプログラムカウンタ15cの
全ビットを出力するようにしてもよい。その場合、アド
レスバスとバイトコードを併用すればよい。このように
すれば、命令バッファ10a、Jobをクリアしなくて
も次の実行命令を外部で知ることができる。
さらに、この実施例のマイクロプロセッサは、特殊バス
サイクル実行時にそのバスサイクルが特殊バスサイクル
であることを、3ビツトのバスアクセスタイプ信号BA
TO〜BAT2で示すようにされている。このバスアク
セスタイプ信号BAToNBAT2は、特殊バスサイク
ル以外にも、命令取込サイクル、データ書込みサイクル
、データ読込みサイクルあるいはコプロセッサに対する
コマンド送信サイクル等を識別するために使用される。
なお、上記実施例では特殊バスサイクル発生回路19が
外部バス制御回路11に付随すると説明したが、特殊バ
スサイクル発生回路19が外部バス制御回路11に内蔵
もしくは外部バス制御回路11と一体的に構成されてい
てもよい。
また、この実施例のマイクロプロセッサにおいては、割
込み要求があったとき要求元に特殊バスサイクルを使っ
て応答を返すようにされており、そのときアドレスバス
ADB上に割込みレベル0〜6を示すコード(下位2ビ
ツトが00,04゜08、QC,10,14,18)を
のせるようにさせている。そこで、この実施例では次に
実行される命令の上位/下位を知らせる特殊バスサイク
ルでは、割込み応答のための特殊バスサイクルと区別す
るため、アドレスバスADB上にooo。
001Cなるコードをのせるようにされている。
さらに、上記実施例では命令実行直前に上位/下位を知
らせる特殊バスサイクルを入れているが、例えば第1図
の実施例のマイクロプロセッサで命令コードポインタ1
5bからプログラムカウンタ15cへの命令アドレスの
ロードと同時に前の命令アドレスの最下位ビットが特殊
バスサイクル発生回路19に送られてラッチされるよう
な構成にすることによって、命令実行サイクルの後に特
殊バスサイクルを挿入し、実行した命令が上位または下
位のいずれであったかを次のバスサイクルで外部へ知ら
せるようにする二ともできる。
第2図には、上記マイクロプロセッサを用いたシステム
において一例として次のようなプログラムを実行した場
合の各バスの動作タイミングが示されている。
00000100          BEQ LAB
EL  100001000         MOV
E #4.RO,w    =−a00001002 
  LABELI  :  ADD #l、RO,W−
・−b00001004         MOV @
RO,h、R1,w  −−−−c00001006 
        MOV R1,w、R2,w   ・
・・・d上記プログラムにおける100番地の命令BE
Qは分岐命令で、この命令の実行でLABELI(アド
レス1002番地)ヘジャンプするときの動作タイミン
グが第2図に示されている。
第2図を参照すると、命令a、bの取込を行なうバスサ
イクルS2の直前のバスサイクルSlでバスアクセスタ
イプ信号BATO〜BAT2が”010″′とされて高
力され、特殊バスサイクルであることが分かるようにさ
れている。そして、二のバスサイクルSl中にバイトコ
ードBCO〜BC3(1101)によって、次に取り込
まれる32ビツトの命令コードのうち実行される命令の
先頭のバイト位置が明示される。図ではBCO〜BC3
のうちII OIIが立っているところが実行される命
令の先頭位置であることを示している。そして、次のバ
スサイクルS2ではデータバスを介して命令コードaと
bが取り込まれている(命令レジスタがクリアされてい
るので取り込みと同時に実行される)。これによりバス
サイクルS2で実行される命令はb (A、DD  #
1.RO,w)であることが分かる。
第2図の動作タイミングでは、バスサイクルS2の次の
バスサイクルS3に再び特殊バスサイクルが挿入され、
その次のバスサイクルS4で実行される命令が、取込ま
れる命令語(32ビット)のうち上位/下位いずれであ
るかを外部へ知らせている。
第2図では、特殊バスサイクルS3でバイトBCO〜B
C3が0111とされているので、次のバスサイクルS
4で取り込まれる命令c、dのうち実行されるのは命令
c  (MOV  @RO,h。
R1,w)であることが分かる。この命令Cはデータ転
送命令であるため、バスサイクルS5でデータ書込みサ
イクルが実行されてから命令実行終了信号ENDが出る
ことになる。そのため、次のバスサイクルS6に特殊バ
スサイクルが挿入されているのが第2図より分かる。
第2図にはlワード命令が実行される場合のみ示されて
いるが、2ワ一ド以上の命令実行のときは、上記バスサ
イクルS4.S5のように2以上の命令サイクルが連続
することになる。
なお、上記実施例のマイクロプロセッサは命令をすべて
外部から取込む方式とされているが、内部にキャッシュ
メモリを設けて、内部から命令を取込む方式としてもよ
い。ただし、その場合、命令バッファに取り込まれる命
令を外部がら知ることかできないので、特殊バスサイク
ル挿入モードではキャッシュメモリの動作を停止させ、
外部から命令を取り込ませるようにする必要がある。従
って、外部から供給される特殊バスサイクル要求信号S
BRを、キャッシュメモリの動作を停止させるための要
求信号と兼ねさせるようにするとよい。
第3図には上記実施例のマイクロプロセッサを用いたマ
イクロコンピュータシステム(ユーザシステム)のエミ
ュレーションを行なうインサーキットエミュレータのシ
ステム構成例を示す。
第3図において、1はユーザが開発しデバッグ対象とな
るユーザシステムとしてのマイクロコンピュータシステ
ムボード、2は上記ユーザシステムl上のマイクロプロ
セッサの機能を代行する代行マイクロプロセッサやエミ
ュレーション中ユーザシステムのバス上の信号をサンプ
リングして蓄積するトレースメモリ、エミュレーション
や各種デバッグ機能を実現するためのエミュレーション
制御部、プログラムの実行開始やトレースの停止条件を
設定し、条件が成立したときにプログラムもしくはトレ
ースを停止させるブレークポイント制御部、ユーザシス
テムにメモリが用意されていない場合に貸し出される代
行メモリ等が内蔵されてなるエミュレータボックスであ
る。このエミュレータボックス2はその本体から延長さ
れたケーブル3の先端のコネクタ3aが、ユーザシステ
ム1上に設けられたターゲットプロセッサ用のソケット
に挿入されることによりユーザシステムに接続される。
これとともに、エミュレータボックス2はその本体から
延長された別のケーブル4を介して、ホストコンピュー
タとの間のデータ通信を行なうシリアルインタフェース
やその制御を司るマイクロコンピュータ、フロッピディ
スクドライバ58等が内蔵されたシステム開発装置本体
5に接続されている。
なお、上記装置本体5からは、プリンタ接続用ケーブル
6a、ホストコンピュータ接続用ケーブル6b、CRT
表示装置接続用ケーブル6cが延設されている。7はユ
ーザシステムl上から任意の信号をサンプリングするた
めのプローブである。
第4図には、上記ユーザシステムlの一構成例と、これ
に接続されたエミュレータのうちトレースメモリのみが
代表的に示されている。
第4図において、41が第1図に示されている本発明に
係るマイクロプロセッサで、このマイクロプロセッサ4
1にはアドレスバスADBやデータバスDTB、制御バ
スCTB等からなるシステムバス42を介して、プログ
ラムやデータが格納されたメモリ43、ハードディスク
コントローラ等の周辺デバイス44、トレースメモリ2
1等が接続されている。
次頁には、第3図のインサーキットエミュレータにより
第1図の実施例のマイクロプロセッサを用いたユーザシ
ステム1のエミュレーションを行なってトレースメモリ
21内に蓄積されたデータの一部が示されている。
B B C R/W AT 0000001CFFFFFFFF  0111GM 上記データ列において、符号ABで示されている欄に属
するデータはアドレスバス上よりサンプリングされたデ
ータ群(絶対アドレス)、符号DBで示されている欄に
属するデータはデータバス上よりサンプリングされたデ
ータ群、符号BCで示されている欄に属するデータはバ
イトコードBCo−BC3をサンプリングしたデータ群
、R/Wはリードライト制御信号、BATはバスアクセ
スタイプ信号をサンプリングして理解し易いような符号
に直して表示したものである。
上記データ列において、BAT欄にPGMと付されてい
る行のDB欄のコードが命令コードで、DATと付され
ている行のDB欄のコードがリード・ライトデータであ
る。また、BAT欄に■/Pと付されている行にあるデ
ータが特殊バスサイクル中にサンプリングしたデータで
ある。この行のBC欄を見ることによって次のデータ行
のDB欄の命令コードのうち上位/下位のいずれが実行
されたのか知ることができる。
第5図には本発明の第2の実施例が示されている。
この実施例のマイクロプロセッサは、命令バッファlO
と命令デコーダ13および命令実行部20が4組設けら
れ、−度に4つの命令を取り込んで、同時に4つの命令
を並行処理できるようにされている。これによって、マ
イクロプロセッサの処理速度が向上される。
ただし、このように4つの命令を並行処理できるように
したとしても、実際には同時に取り込んだ4つの命令の
うちある命令は他の命令が実行された結果を待つ場合が
あるので必ず同時に実行されるわけではない。従って、
例え命令バッファ10が1段のみであってもどの命令が
実行されるか外部からは分からない。
そこで、この実施例では、外部からの特殊バスサイクル
発生要求信号BSRが入った場合に、1命令サイクル終
了ごとに次に実行される命令を外部のデータバス上に出
力させるための特殊バスサイクルを挿入する特殊バスサ
イクル発生回路19が設けられている。
二の特殊バスサイクル発生回路19には、4つの命令実
行部20a〜20dから命令実行終了時にそれぞれ終了
信号END I−END4が供給されるようにされてい
る。また、上記終了信号END1−END4は命令アド
レス制御回路15にも供給されている。この命令アドレ
ス制御回路15内にはプログラムカウンタとこのプログ
ラムカウンタ内のアドレスからの相対値で命令アドレス
を示す4つの命令ポインタが設けられており、終了信号
END1−END4を受けると、対応する命令ポインタ
のみ更新される。そしてポインタの値が特殊バスサイク
ル発生回路19に送られることにより、いずれの命令が
実行されたか示す信号が制御バスCTB上に出力される
この実施例のマイクロプロセッサは固定長命令形式に特
に有効である。
第6図には第5図の実施例のマイクロプロセッサの変形
例が示されている。
この実施例のマイクロプロセッサは、命令バッファlO
a〜10dと命令デコーダ13a〜13dとの間に切換
回路31が付加されている点のみ第5図の実施例と異な
る。
この実施例では、命令バッファ10a〜20dと命令デ
コーダ13a〜13dが一対一の関係になく、各命令バ
ッファ10a〜10dに取り込まれた命令コードは、い
ずれの命令デコーダにも供給可能にされている。従って
、同時に取り込まれた4つの命令のうち一部が先に実行
終了した場合、空いた命令デコーダに次の命令コードを
入れてやることにより効率良く命令を処理することがで
きる。
この実施例のマイクロプロセッサにも特殊バスサイクル
発生回路19が設けられており、次に実行される命令の
コードと命令アドレスが外部に出力可能にされている。
第7図には、本発明をキャッシュメモリ内蔵のマイクロ
プロセッサに適用した場合の実施例が示されている。マ
イクロプロセッサ全体の構成は第1図のものとほぼ同じ
である。以下、ハードウェアの違いを説明する。
第7図において、22はマイクロプロセッサに内蔵され
たキャッシュメモリである。外部バス制御回路11は、
命令コードを命令バッファ1oに供与する機能および命
令実行部20からのデータアクセス要求に従って外部に
データアクセスする機能を有する。また、命令取込みの
際に先ずキャッシュメモリ22をアクセスし、ヒツトし
たときはキャッシュメモリ内の命令コードを命令バッフ
ァ10へ供与し、ミスヒツトしたときはアドレスバスA
DBをアクセスして外部のメモリに命令を取りに行−く
機能を有している。
特に制限されないが、外部バス制御回路11は、命令ア
ドレス制御回路15または演算処理部17より内部バス
18を介して供給される論理アドレスを物理アドレスに
変換するアドレス変換テーブルllaを有している。
この実施例では固定長命令形式のマイクロプロセッサを
考えており、そのため命令アドレス制御回路15は、命
令フェッチポインタ15aとプログラムカウンタ15c
を備えている。
さらに、この実施例のマイクロプロセッサでは、特殊バ
スサイクル発生回路19によって挿入される特殊バスサ
イクルで、実行された命令のコードをデータバスDTB
上に出力するとともにプログラムカウンタ15c内の論
理アドレスを命令識別アドレスとしてアドレスバスAD
B上に出力するように構成されている。
次に、上記マイクロプロセッサの動作について説明する
外部バス制御回路11は、命令取込ポインタ15aの示
すアドレスを先ずアドレス変換テーブル11aで物理ア
ドレスに変換し、それをキャッシュメモリ22に送って
検索し、ヒツト信号■1を得るとキャッシュメモリ22
から命令コードを読み出し、命令バッファ10へ供与す
る。命令バッファ10に取り込まれた命令コードは命令
デコーダ13に転送されてデコードされ、命令の種別、
アドレッシングモードの認識、即値生成、演算制御情報
等が抽出される。この情報により、命令実行部20がデ
ータの転送や演算等の処理を行なう。
そして、命令実行終了ごとに演算処理部16から命令実
行終了信号ENDが出力され、命令アドレス制御回路1
5および特殊バスサイクル発生回路19に命令実行の終
了通知がなされる。命令アドレス制御回路15ではこの
命令の終了通知を受けると、プログラムカウンタ15c
のインクリメントが行なわれる。
また、プログラムが分岐をする時は、命令実行部20に
おいて作成された分岐先命令アドレスが内部バス18を
介して命令アドレス制御回路15に供給され、プログラ
ムカウンタ15cおよび命令フェッチポインタ15aに
設定される。
一方、キャッシュメモリ22の検索でミスヒツトしたと
きは、上記変換アドレス(物理アドレス)を外部のアド
レスバスADB上に出力し、データバスDTBを介して
外部メモリから命令コードを取り込んで命令バッファ1
0に供与する。また、取り込んだ命令は同時にキャッシ
ュメモリ22に送り、格納する。
命令の取込みは自動的に命令フェッチポインタ15aを
インクリメントしながら命令バッファ10が一杯になる
まで行なわれる。命令バッファ10が一杯になると、命
令バッファ10から信号FULLが命令アドレス制御回
路15に供給され、命令フェッチポインタ15aの更新
が停止される。
上記の通常動作モードでは、命令コードがキャッシュメ
モリ22内にある場合、プロセッサの外部からは内部の
実行命令が識別できない。この実施例では、外部から特
殊バスサイクル発生要求信号SBRを入れてやると、特
殊バスサイクル挿入モードに移行して内部で実行中の命
令コードおよびその命令の位置を示すアドレスを外部へ
出力する。本特殊モードでの動作は上記通常モードに加
え、プロセッサ内部で命令実行が行なわれ、命令実行の
終了信号ENDが出力されるごとに、特殊バスサイクル
発生回路19が外部バス制御回路11を制御して内部で
の命令実行と並行して命令識別アドレスおよび実行命令
コードをそれぞれ空いているアドレスバスADB、デー
タバスDTB上にのせ、バスアクセスタイプまたはデー
タタイプを識別するため信号を特殊バスサイクルである
ことを示すコードとして制御バスCTB上に出力する。
これにより、プロセッサ外部の観測でプロセッサ内部の
実行命令語およびアドレスを識別できる。
ただし、このとき、キャッシュミスヒツトに起因する本
来の命令語取込みやデータアクセスと競合する可能性は
あるが、複数のバスサイクルの要求が競合した場合、外
部バス制御回路11は予め定められた優先順位に応じて
外部バスサイクルを発生させる。具体的には、特殊バス
サイクル挿入モードではデータアクセス要求やキャッシ
ュミスヒツトに起因するバスサイクルに優先して特殊バ
スサイクルを発生させるようになっている。
なお、キャッシュのミスヒツトが発生した場合にプロセ
ッサが外部メモリに命令を取りに行ったときの命令フェ
ッチサイクルの次には特殊バスサイクルを入れてもよい
が入れないようにしてもよい。外部バスを監視していれ
ばそのような命令フェッチサイクルを識別できるためで
ある。ただし、ミスヒツトの際の命令フェッチサイクル
の次にそれを外部に示す特殊バスサイクルを挿入しない
ようにすれば、ハードウェアは多少複雑になるが、特殊
バスサイクルのない分だけ高速化できるという利点があ
る。
第8図には、上記マイクロプロセッサを用いたシステム
において次のプログラムを実行した場合の各バスの動作
タイミングが示されている。
00001000         MOVE #4.
RO,w    = −a00001004   LA
BELI  :  ADD #]、RO0w    ・
・・・boooolooB         MOV(
6)RO,h、R1,E  ・・・・C0000100
c         MOV R1,w、R2,w  
 ・・・・dなお、第8図の動作タイミングは、命令a
〜dがキャッシュメモリ22内にすでに格納されている
場合のタイミングである。
第8図を参照すると、バスサイクルS〕ではプロセッサ
内部で命令aが実行され、バスサイクルS2ではプロセ
ッサ内部で命令すが実行されるのと並行して外部データ
バス上にサイクルS1で実行された命令コードaが、ま
た外部アドレスバス上にその命令アドレスが出力され、
かつ制御バス上には特殊バスサイクルであることを示す
コードが出力されていることが分かる。
また、第8図では、次の命令c (MOV  @RO,
h、R1,W)がデータアクセスを伴う命令であるため
、プロセッサ内部では命令Cの実行が停止され、バスサ
イクルS3で特殊バスサイクルが優先的に実行され、前
のサイクルで実行された命令すの命令コードとアドレス
が出力されていることが分かる。そして、命令Cの実行
は特殊バスサイクルS3の次のサイクルS4で実行され
、アドレスバス上には所望のデータの位置を示すアドレ
スが、またデータバス上にはり−ドデータがのっている
。バスサイクルS4で実行された命令Cのコードとアド
レスは次のバスサイクルS5で外部に出力される。この
とき、プロセッサ内では命令dが並行して実行され、こ
の命令dのコードとアトし・スは次のバスサイクルS6
で外部へ出力される。
なお、第7図の実施例のマイクロプロセッサでは、特殊
バスサイクルで実行命令のアドレスを論理アドレスで出
力するようにしてるが、プログラムカウンタ15cから
特殊バスサイクル発生回路19に供給される命令識別ア
ドレスをアドレス変換テーブルllaを通すことによっ
て物理アドレスとして出力するようにしてもよい。
また、第7図の実施例では固定長命令を扱うマイクロプ
ロセッサを示したが、第1図の実施例と同じように、命
令バッファを2組設けるとともに、命令アドレス制御回
路15内に命令コードポインタ15bを付加することで
可変長命令を扱い、しかもキャッシュメモリ内蔵したマ
イクロプロセッサに本発明を適用することも可能である
以上説明したように上記実施例では、予め複数の命令を
保持可能なバッファもしくはメモリを有するマイクロプ
ロセッサに、ある所定の動作モードでは1命令実行ごと
にプロセッサの内部情報を外部へ出力するための特殊バ
スサイクルを挿入する機能を持たせるようにしたので、
命令ブリフェッチ方式のマイクロプロセッサを用いたシ
ステムのエミュレーションにおいて、いずれの命令が実
行されたか外部で容易に知ることができるため、正確な
エミュレーション制御が可能になるとともに、トレース
データの解析が容易となりデバッグ効率が向上するとい
う効果がある。
また、本来不用な特殊バスサイクルが挿入されるため、
完全なリアルタイム性はないが挿入されるのは1サイク
ルのみであるため、割込み機能等で所定の命令列を実行
して内部情報を外部へ知らせる従来方式に比べると、リ
アルタイム性はほとんど損なわれない。
以上本発明者によってなされた発明を実施例に基づき具
体的に説明したが、本発明は上記実施例に限定されるも
のではなく、その要旨を逸脱しない範囲で種々変更可能
であることはいうまでもない。例えば、上記実施例では
特殊バスサイクル挿入モードを外部ビンからの特殊バス
サイクル発生要求信号SBRに基づいて行なっているか
、特殊バスサイクル発生回路19内にフラグもしくは1
ノジスタを設け、そこへの書込みによって特殊バスサイ
クル挿入モードへ移行させるようにしてもよい。
以上の説明では主として本発明者によってなされた発明
をその背景となった利用分野であるマイクロプロセッサ
に適用した場合について説明したが、この発明はそれに
限定されるものでなく、シングルチップマイコンその他
プログラム制御方式のデータ処理装置一般に利用するこ
とができる。
[発明の効果] 本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば下記のとおりである
すなわち、ビン数を増加させたり、複雑な外付は回路を
設けることなく、命令ブリフェッチ方式のマイクロプロ
セッサにおいて実行中の命令アドレス等内部情報を外部
へ知らせることができる。
また、リアルタイム性を損なうことなく内部情報を外部
へ知らせることができるとともに、必要とする情報量の
増加に対する柔軟性の高いマイクロプロセッサを実現す
ることができる。
【図面の簡単な説明】
第1図は本発明に係るマイクロプロセッサの第1の実施
例を示すブロック図、 第2図はその特殊バスサイクル挿入モードでの動作タイ
ミングチャート、 第3図はインサーキットエミュレータの構成例を示す斜
視図、 第4図は本発明に係るマイクロプロセッサを用いたマイ
クロコンピュータシステムとそのエミュレーションシス
テムの一部を示すブロック図、第5図は本発明に係るマ
イクロプロセッサの第2の実施例を示すブロック図、 第6図は本発明に係るマイクロプロセッサの第3の実施
例を示すブロック図、 第7図は本発明に係るマイクロプロセッサの第4の実施
例を示すブロック図、 第8図はその特殊バスサイクル挿入モードでの動作タイ
ミングを示すチャートである。 1・・・・ユーザシステム(マイクロコンピュータシス
テム)、2・・・・エミュレータボックス、3゜4・・
・・ケーブル、5・・・・システム開発装置本体、11
・・・・外部バス制御回路、15・・・・命令アドレス
制御回路、18・・・・システムバス、19・・・・特
殊バスサイクル発生回路、20・・・・命令実行部。

Claims (1)

  1. 【特許請求の範囲】 1、予め複数の命令語を取込み、その命令を一つずつ解
    読し、所定の処理を実行するデータ処理装置において、
    実行される命令を識別するための情報が外部へ出力可能
    にされていることを特徴とするデータ処理装置。 2、命令実行サイクルの直前に、次に実行される命令を
    識別するための情報を外部へ出力するバスサイクルを挿
    入するバス制御手段を備えてなることを特徴とする請求
    項1記載のデータ処理装置。 3、命令実行サイクル後に、実行された命令を識別する
    ための情報を外部へ出力するバスサイクルを挿入するバ
    ス制御手段を備えてなることを特徴とする請求項1記載
    のデータ処理装置。 4、上記命令語は可変長命令であることを特徴とする請
    求項1〜3記載のデータ処理装置。 5、上記命令語は装置に内蔵された記憶手段に格納され
    ていることを特徴とする請求項1〜4記載のデータ処理
    装置。
JP2104700A 1990-04-20 1990-04-20 インサーキットエミュレータおよびマイクロプロセッサ Expired - Fee Related JP2923570B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2104700A JP2923570B2 (ja) 1990-04-20 1990-04-20 インサーキットエミュレータおよびマイクロプロセッサ
DE69127992T DE69127992T2 (de) 1990-04-20 1991-04-17 Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation
EP91303435A EP0453268B1 (en) 1990-04-20 1991-04-17 A microprocessor for inserting a bus cycle to output an internal information for an emulation
KR1019910006125A KR910018909A (ko) 1990-04-20 1991-04-17 데이타처리장치 및 그것을 사용한 시스템개발장치
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
JP2104700A JP2923570B2 (ja) 1990-04-20 1990-04-20 インサーキットエミュレータおよびマイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH043230A true JPH043230A (ja) 1992-01-08
JP2923570B2 JP2923570B2 (ja) 1999-07-26

Family

ID=14387759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2104700A Expired - Fee Related JP2923570B2 (ja) 1990-04-20 1990-04-20 インサーキットエミュレータおよびマイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP2923570B2 (ja)

Also Published As

Publication number Publication date
JP2923570B2 (ja) 1999-07-26

Similar Documents

Publication Publication Date Title
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
US5737516A (en) Data processing system for performing a debug function and method therefor
US5964893A (en) Data processing system for performing a trace function and method therefor
US5704034A (en) Method and circuit for initializing a data processing system
US5560036A (en) Data processing having incircuit emulation function
US5564041A (en) Microprocessor for inserting a bus cycle in an instruction set to output an internal information for an emulation
JP3708176B2 (ja) データ処理装置及びデータ処理方法
EP2825961B1 (en) Run-time instrumentation directed sampling
JP2003085000A (ja) トレース情報生成装置およびその方法
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
GB2413657A (en) Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
WO2013136700A1 (en) Run-time instrumentation reporting
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
EP0762278A1 (en) Data processor with built-in emulation circuit
CA2003004C (en) Apparatus and method for executing a conditional branch instruction
US6347368B1 (en) Microcomputing device for exchanging data while executing an application
JP2923570B2 (ja) インサーキットエミュレータおよびマイクロプロセッサ
JPH04284546A (ja) データ処理装置及びそれを用いたシステム開発装置
JP2915944B2 (ja) カバレージ測定方法及びマイクロコンピュータ
Vranken Debug facilities in the TriMedia CPU64 architecture
KR100189977B1 (ko) 트레이스기능을 구비한 에뮬레이터시스템과 그 트레이스방법
JP3210171B2 (ja) データ処理装置
JPH03216734A (ja) データ処理方法及び中央処理装置
JPH02207345A (ja) マイクロプロセッサの命令実行過程のサンプル方法
JP2007066233A (ja) 情報処理装置

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees