Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2923570B2 - インサーキットエミュレータおよびマイクロプロセッサ - Google Patents
[go: Go Back, main page]

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

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

Info

Publication number
JP2923570B2
JP2923570B2 JP2104700A JP10470090A JP2923570B2 JP 2923570 B2 JP2923570 B2 JP 2923570B2 JP 2104700 A JP2104700 A JP 2104700A JP 10470090 A JP10470090 A JP 10470090A JP 2923570 B2 JP2923570 B2 JP 2923570B2
Authority
JP
Japan
Prior art keywords
instruction
control circuit
bus cycle
address
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 - Fee Related
Application number
JP2104700A
Other languages
English (en)
Other versions
JPH043230A (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.)
Hitachi Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co 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 ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP2104700A priority Critical patent/JP2923570B2/ja
Priority to KR1019910006125A priority patent/KR910018909A/ko
Priority to EP91303435A priority patent/EP0453268B1/en
Priority to DE69127992T priority patent/DE69127992T2/de
Publication of JPH043230A publication Critical patent/JPH043230A/ja
Priority to US08/201,488 priority patent/US5564041A/en
Priority to HK98102618A priority patent/HK1003603A1/en
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)

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、データ処理技術、さらには命令プリフェ
ッチ方式のマイクロプロセッサにおける実行命令の通知
方式に適用して特に有効な技術に関し、例えばノイマン
型マイクロコンピュータに利用して有効な技術に関す
る。
[従来の技術] 従来提案されているマイクロコンピュータには、実行
すべき命令以外にいくつかの命令を前もって取り込んで
おくプリフェッチ方式の命令レジスタを有するようにさ
れたものがある。このように、プリフェッチ方式の命令
レジスタに予め複数の命令を取り込んでおくことによっ
て、プログラムの実行の高速化が可能になる。
ところで、ユーザが新たにマイクロコンピュータ・シ
ステムやそのソフトウェアを開発した場合、エミュレー
ションを行なってデバッキングを行なうことが多い。
そのようなエミュレーションにおいては、プログラム
中のある命令を実行した時点でプログラムの実行を中断
したり、ある時点からバス上のデータをメモリにトレー
スしたりする。そして、このトレースされたメモリの内
容を解析することで、プログラムの暴走要因などを解明
して、プログラムやシステムのデバッキングが容易に行
なえるようになる。
そのため、エミュレーション中にデータバスやアドレ
スバスを監視して、ブレークポイントやトレースポイン
トを検出することが行なわれる。
前述したように前もって複数の命令をフェッチする命
令レジスタを有するマイクロコンピュータにおいては、
エミュレーションを行なう場合、実際のバス上に現われ
る命令コードやアドレスは、実行中の命令のものとは異
なることになる。そのため、正しいブレークポイントで
プログラムの実行を中断したり、所望の時点からトレー
スを開始したりすることができないとともに、エミュレ
ーション後におけるトレース内容の解析が困難になる。
そこで、実行中の命令のアドレスとプリフェッチ・ア
ドレスとの差を出力するピンを設けて、命令プリフェッ
チ方式のマイクロコンピュータにおける実行中の命令を
外部で知ることができるようにした発明(特開昭62−19
7831号)や割込み機能を利用して1命令実行ごとにプロ
グラムの実行を中断し、マイクロプロセッサの内部状態
を外部へ知らせる他の命令列を実行するようにした発明
(特開昭61−286936号)が提案されている。
[発明が解決しようとする課題] 上記従来技術のうち、実行命令のアドレスとプリフェ
ッチ・アドレスとの差を出力するピンを設ける方式にあ
っては、マイクロプロセッサのピン数を増加させたり専
用ピンを追加した別チップを用意しなくてはならないた
めコストが高くなったり開発期間が長くなるとともに、
必要とする情報量の増加に対応できないという欠点があ
る。
一方、1命令実行ごとにプログラムを中断する方式に
あっては、リアルタイム性がなくなり、エミュレーショ
ン中にシステムが暴走するおそれがある。
本発明の目的は、ピン数を増加させたり、複雑な外付
け回路を設けることなく、命令プリフェッチ方式のマイ
クロプロセッサにおいて、実行中の命令アドレス等内部
情報を外部へ知らせることができるようにすることにあ
る。
本発明の他の目的は、リアルタイム性を損なうことな
く内部情報を外部へ知らせることができるとともに、必
要とする情報量の増加に対する柔軟性の高いマイクロプ
ロセッサを提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴
については、本明細書の記述および添附図面から明らか
になるであろう。
[課題を解決するための手段] 本願において開示される発明のうち代表的なものの概
要を説明すれば、下記のとおりである。
すなわち、予め複数の命令を保持可能なバッファもし
くはメモリを有するマイクロプロセッサに、ある所定の
動作モードでは1命令実行ごとにプロセッサの内部情報
を外部へ出力するための特殊バスサイクルを挿入する機
能を持たせるようにするものである。
上記特殊バスサイクルの挿入機能は、外部バス制御回
路もしくはそれに付随する回路としてハードウェアで実
現してもよいし、マイクロプログラム制御のようなファ
ームウェアで実現してもよい。
上記特殊バスサイクルで外部へ出力するプロセッサ内
部の情報としては、実行された命令のメモリ空間上での
アドレス(物理アドレスよりも論理アドレスが良い)や
プリフェッチされた命令群の中の当該実行命令を識別す
るためのコードがある。
[作用] 上記した手段によれば、命令プリフェッチ方式のマイ
クロプロセッサを用いたシステムのエミュレーションに
おいて、いずれの命令が実行されたか外部で容易に知る
ことができるため、正確なエミュレーション制御が可能
になるとともに、トレースデータの解析が容易となりデ
バッグ効率が向上する。
また、本来不用な特殊バスサイクルが挿入されるた
め、完全なリアルタイム性はないが、挿入されるのは1
サイクルのみであるため、割込み機能等で所定の命令列
を実行して内部情報を外部へ知らせる従来方式に比べる
と、リアルタイム性はほとんど損なわれない。
[実施例] 第1図には本発明を命令プリフェッチ方式のマイクロ
プロセッサに適用した場合の一実施例が示されている。
特に制限されないが、第1図に示されている各回路ブ
ロックは単結晶シリコン基板のような一個の半導体チッ
プ上において形成される。
この実施例のマイクロプロセッサには、特に制限され
ないが、各々16ビット長の命令コードを2つ保持可能な
2個のFIFO方式の命令バッファ10a,10bが設けられてい
る。また、バスサイクルを制御する外部バス制御回路11
が設けられており、この外部バス制御回路11には、30ビ
ットのアドレスバスADBと32ビットのデータバスDTBが接
続可能にされている。外部バス制御回路11には、データ
バスDTBを介して外部のメモリから一度に32ビット幅で
命令コードやデータを取り込むようにされている。そし
て、命令フェッチサイクルで一度に取り込まれた32ビッ
ト幅の命令コードは、16ビットずつ2つに分割され、上
記2つの命令バッファ10a,10bにそれぞれ格納される。
なお、この実施例のマイクロプロセッサの命令語長は
16ビット×n(nは正の自然数)の可変長である。ま
た、この実施例では、外部バス制御回路11は4ビットの
バイトコードBC0〜BC3を生成して出力可能に構成されて
おり、16ビット単位の命令の取込みやバイト単位でのデ
ータのリード・ライトもできる。このバイトコードBC0
〜BC3は、通常は命令フェッチポインタ15aの下位1ビッ
トもしくは内部バス18を介して演算処理部17より供給さ
れる32ビットのアドレスの下位2ビットに基づいて生成
される。
上記命令バッファ10a,10bに格納された命令コードは
セレクタ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が供給される。
この実施例では、上記命令アドレス制御回路15内に、
命令フェッチアドレスを保持する命令フェッチポインタ
15aとは別個に、上記命令バッファ10a,10bに取り込まれ
た命令コードのうちいずれを実行すべきか指示する31ビ
ット幅の命令コードポインタ15bと、実行される命令の
先頭アドレスを保持するプログラムカウンタ15cが設け
られており、この命令コードポインタ15bの最下位の1
ビットがセレクタ制御信号SCとして上記セレクタ12に供
給される。命令コードポインタ15bは、命令デコーダ13
からの実行命令の命令語長を示す信号WLに基づいて命令
語長分だけ自動的にインクリメントされる。
一方、命令フェッチポインタ15aに保持されている31
ビット長の命令フェッチアドレスは外部バス制御回路11
に供給されており、外部バス制御回路11はこのうち上位
30ビットを外部アドレスバスADB上に出力する。命令フ
ェッチポインタ15aは命令バッファ10a,10bが一杯になる
まで自動的に更新される。
分岐命令のときは、演算処理部17から供給される分岐
先アドレスが、命令コードポインタ15bにセットされる
とともにプログラムカウンタ15cにもセットされる。プ
ログラムカウンタ15cは、31ビット幅に構成されてお
り、例えばデータ位置が相対アドレスで示されている場
合、このプログラムカウンタ15cの値が内部データバス1
8を介して演算処理部17に送られてディスプレースメン
ト(オフセット)を加算して得られた値がアドレスとし
て外部へ出力される。即値生成回路14は、32ビット幅に
構成されており、命令デコーダ13からの制御信号によっ
て命令語中から即値を抽出して演算処理部17に渡す。
この実施例では、上記外部バス制御回路11に付随して
特殊バスサイクル発生回路19が設けられている。
また、演算制御回路16から1命令終了ごとに終了通知
信号ENDが特殊バスサイクル発生回路19と命令アドレス
制御回路15に供給される。この信号を受けると命令コー
ドポインタの値(実行命令アドレス)がプログラムカウ
ンタ15cにロードされ、最下位ビットが特殊バスサイク
ル発生回路19に供給される。また、このとき命令バッフ
ァ10a,10bがクリアされる。
一方、特殊バスサイクル発生回路19は外部から特殊バ
スサイクル発生要求SBRのようなモード指定信号を受け
ると有効にされ、1命令の実行終了を知ると、外部バス
制御回路11に対し、次に実行する命令(16ビット×n
(nは自然数))の先頭が同時に取り込まれた32ビット
長の命令コードの上位側であるのか下位側であるかを外
部へ出力するための特殊バスサイクルを挿入するように
制御信号を与える。
ただし、外部バス制御回路11は特殊バスサイクルを優
先させるか、他のバスサイクル(データサイクル等)を
優先させるか判断する機能を有している。
この実施例のマイクロプロセッサは、特殊バスサイク
ルによって、プログラムカウンタ15cの最下位ビットに
対応する信号をバイトコードBC0〜BC3によって出力する
ことで、次に実行する命令が32ビットのうち上位側か下
位側かを示す。しかもこの実施例では特殊バスサイクル
挿入時に命令バッファ10a,10bをクリアしているので、
次の命令コードは一度フェッチされていても次のサイク
ルで改めてフェッチし直される。従って、特殊バスサイ
クルの次のサイクルでのデータバス上の信号を見れば実
行される命令コードも知ることができる。
ただし、特殊バスサイクル挿入時にプログラムカウン
タ15cの最下位ビットに対応する情報のみ出力する代わ
りに、特殊バスサイクルでプログラムカウンタ15cの全
ビットを出力するようにしてもよい。その場合、アドレ
スバスとバイトコードを併用すればよい。このようにす
れば、命令バッファ10a,10bをクリアしなくても次の実
行命令を外部で知ることができる。
さらに、この実施例のマイクロプロセッサは、特殊バ
スサイクル実行時にそのバスサイクルが特殊バスサイク
ルであることを、3ビットのバスアクセスタイプ信号BA
T0〜BAT2で示すようにされている。このバスアクセスタ
イプ信号BAT0〜BAT2は、特殊バスサイクル以外にも、命
令取込サイクル、データ書込みサイクル、データ読込み
サイクルあるいはコプロセッサに対するコマンド送信サ
イクル等を識別するために使用される。
なお、上記実施例では特殊バスサイクル発生回路19が
外部バス制御回路11に付随すると説明したが、特殊バス
サイクル発生回路19が外部バス制御回路11に内蔵もしく
は外部バス制御回路11と一体的に構成されていてもよ
い。
また、この実施例のマイクロプロセッサにおいては、
割込み要求があったとき要求元に特殊バスサイクルを使
って応答を返すようにされており、そのときアドレスバ
スADB上に割込みレベル0〜6を示すコード(下位2ビ
ットが00,04,08,0C,10,14,18)をのせるようにさせてい
る。そこで、この実施例では次に実行される命令の上位
/下位を知らせる特殊バスサイクルでは、割込み応答の
ための特殊バスサイクルと区別するため、アドレスバス
ADB上に0000001Cなるコードをのせるようにされてい
る。
さらに、上記実施例では命令実行直前に上位/下位を
知らせる特殊バスサイクルを入れているが、例えば第1
図の実施例のマイクロプロセッサで命令コードポインタ
15bからプログラムカウンタ15cへの命令アドレスのロー
ドと同時に前の命令アドレスの最下位ビットが特殊バス
サイクル発生回路19に送られてラッチされるような構成
にすることによって、命令実行サイクルの後に特殊バス
サイクルを挿入し、実行した命令が上位または下位のい
ずれであったかを次のバスサイクルで外部へ知らせるよ
うにすることもできる。
第2図には、上記マイクロプロセッサを用いたシステ
ムにおいて一例として次のようなプログラムを実行した
場合の各バスの動作タイミングが示されている。
上記プログラムにおける100番地の命令BEQは分岐命令
で、この命令の実行でLABEL1(アドレス1002番地)へジ
ャンプするときの動作タイミングが第2図に示されてい
る。
第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)で
あることが分かる。
第2図の動作タイミングでは、バスサイクルS2の次の
バスサイクルS3に再び特殊バスサイクルが挿入され、そ
の次のバスサイクルS4で実行される命令が、取込まれる
命令語(32ビット)のうち上位/下位いずれであるかを
外部へ知らせている。
第2図では、特殊バスサイクルS3でバイトBC0〜BC3が
0111とされているので、次のバスサイクルS4で取り込ま
れる命令c,dのうち実行されるのは命令c(MOV @R0.h,
R1.w)であることが分かる。この命令cはデータ転送命
令であるため、バスサイクルS5でデータ書込みサイクル
が実行されてから命令実行終了信号ENDが出ることにな
る。そのため、次のバスサイクルS6に特殊バスサイクル
が挿入されているのが第2図より分かる。
第2図には1ワード命令が実行される場合のみ示され
ているが、2ワード以上の命令実行のときは、上記バス
サイクルS4,S5のように2以上の命令サイクルが連続す
ることになる。
なお、上記実施例のマイクロプロセッサは命令をすべ
て外部から取込む方式とされているが、内部にキャッシ
ュメモリを設けて、内部から命令を取込む方式としても
よい。ただし、その場合、命令バッファに取り込まれる
命令を外部から知ることができないので、特殊バスサイ
クル挿入モードではキャッシュメモリの動作を停止さ
せ、外部から命令を取り込ませるようにする必要があ
る。従って、外部から供給される特殊バスサイクル要求
信号SBRを、キャッシュメモリの動作を停止させるため
の要求信号と兼ねさせるようにするとよい。
第3図には上記実施例のマイクロプロセッサを用いた
マイクロコンピュータシステム(ユーザシステム)のエ
ミュレーションを行なうインサーキットエミュレータの
システム構成例を示す。
第3図において、1はユーザが開発しデバッグ対象と
なるユーザシステムとしてのマイクロコンピュータシス
テムボード、2は上記ユーザシステム1上のマイクロプ
ロセッサの機能を代行する代行マイクロプロセッサやエ
ミュレーション中ユーザシステムのバス上の信号をサン
プリングして蓄積するトレースメモリ、エミュレーショ
ンや各種デバッグ機能を実現するためのエミュレーショ
ン制御部、プログラムの実行開始やトレースの停止条件
を設定し、条件が成立したときにプログラムもしくはト
レースを停止させるブレークポイント制御部、ユーザシ
ステムにメモリが用意されていない場合に貸し出される
代行メモリ等が内蔵されてなるエミュレータボックスで
ある。このエミュレータボックス2はその本体から延長
されたケーブル3の先端のコネクタ3aが、ユーザシステ
ム1上に設けられたターゲットプロセッサ用のソケット
に挿入されることによりユーザシステムに接続される。
これとともに、エミュレータボックス2はその本体から
延長された別のケーブル4を介して、ホストコンピュー
タとの間のデータ通信を行なうシリアルインタフェース
やその制御を司るマイクロコンピュータ、フロッピディ
スクドライバ5a等が内蔵されたシステム開発装置本体5
に接続されている。
なお、上記装置本体5からは、プリンタ接続用ケーブ
ル6a、ホストコンピュータ接続用ケーブル6b、CRT表示
装置接続用ケーブル6cが延設されている。7はユーザシ
ステム1上から任意の信号をサンプリングするためのプ
ローブである。
第4図には、上記ユーザシステム1の一構成例と、こ
れに接続されたエミュレータのうちトレースメモリのみ
が代表的に示されている。
第4図において、41が第1図に示されている本発明に
係るマイクロプロセッサで、このマイクロプロセッサ41
にはアドレスバスADBやデータバスDTB、制御バスCTB等
からなるシステムバス42を介して、プログラムやデータ
が格納されたメモリ43、ハードディスクコントローラ等
の周辺デバイス44、トレースメモリ21等が接続されてい
る。
次頁には、第3図のインサーキットエミュレータによ
り第1図の実施例のマイクロプロセッサを用いたユーザ
システム1のエミュレーションを行なってトレースメモ
リ21内に蓄積されたデータの一部が示されている。
上記データ列において、符号ABで示されている欄に属
するデータはアドレスバス上よりサンプリングされたデ
ータ群(絶対アドレス)、符号DBで示されている欄に属
するデータはデータバス上よりサンプリングされたデー
タ群、符号BCで示されている欄に属するデータはバイト
コードBC0〜BC3をサンプリングしたデータ群、R/Wはリ
ードライト制御信号、BATはバスアクセスタイプ信号を
サンプリングして理解し易いような符号に直して表示し
たものである。
上記データ列において、BAT欄にPGMと付されている行
のDB欄のコードが命令コードで、DATと付されている行
のDB欄のコードがリード・ライトデータである。また、
BAT欄にI/Pと付されている行にあるデータが特殊バスサ
イクル中にサンプリングしたデータである。この行のBC
欄を見ることによって次のデータ行のDB欄の命令コード
のうち上位/下位のいずれが実行されたのか知ることが
できる。
第5図には本発明の第2の実施例が示されている。
この実施例のマイクロプロセッサは、命令バッファ10
と命令デコーダ13および命令実行部20が4組設けられ、
一度に4つの命令を取り込んで、同時に4つの命令を並
行処理できるようにされている。これによって、マイク
ロプロセッサの処理速度が向上される。
ただし、このように4つの命令を平行処理できるよう
にしたとしても、実際には同時に取り込んだ4つの命令
のうちある命令は他の命令が実行された結果を待つ場合
があるので必ず同時に実行されるわけではない。従っ
て、例え命令バッファ10が1段のみであってもどの命令
が実行されるか外部からは分からない。
そこで、この実施例では、外部からの特殊バスサイク
ル発生要求信号BSRが入った場合に、1命令サイクル終
了ごとに次に実行される命令を外部のデータバス上に出
力させるための特殊バスサイクルを挿入する特殊バスサ
イクル発生回路19が設けられている。
この特殊バスサイクル発生回路19には、4つの命令実
行部20a〜20dから命令実行終了時にそれぞれ終了信号EN
D1〜END4が供給されるようにされている。また、上記終
了信号END1〜END4は命令アドレス制御回路15にも供給さ
れている。この命令アドレス制御回路15内にはプログラ
ムカウンタとこのプログラムカウンタ内のアドレスから
の相対値で命令アドレスを示す4つの命令ポインタが設
けられており、終了信号END1〜END4を受けると、対応す
る命令ポインタのみ更新される。そしてポインタの値が
特殊バスサイクル発生回路19に送られることにより、い
ずれの命令が実行されたか示す信号が制御バスCTB上に
出力される。
この実施例のマイクロプロセッサは固定長命令形式に
特に有効である。
第6図には第5図の実施例のマイクロプロセッサの変
形例が示されている。
この実施例のマイクロプロセッサは、命令バッファ10
a〜10dと命令デコーダ13a〜13dとの間に切換回路31が付
加されている点のみ第5図の実施例と異なる。
この実施例では、命令バッファ10a〜10dと命令デコー
ダ13a〜13dが一対一の関係になく、各命令バッファ10a
〜10dに取り込まれた命令コードは、いずれの命令デコ
ーダにも供給可能にされている。従って、同時に取り込
まれた4つの命令のうち一部が先に実行終了した場合、
空いた命令デコーダに次の命令コードを入れてやること
により効率良く命令を処理することができる。
この実施例のマイクロプロセッサにも特殊バスサイク
ル発生回路19が設けられており、次に実行される命令の
コードと命令アドレスが外部に出力可能にされている。
第7図には、本発明をキャッシュメモリ内蔵のマイク
ロプロセッサに適用した場合の実施例が示されている。
マイクロプロセッサ全体の構成は第1図のものとほぼ同
じである。以下、ハードウェアの違いを説明する。
第7図において、22はマイクロプロセッサに内蔵され
たキャッシュメモリである。外部バス制御回路11は、命
令コードを命令バッファ10に供与する機能および命令実
行部20からのデータアクセス要求に従って外部にデータ
アクセスする機能を有する。また、命令取込みの際に先
ずキャッシュメモリ22をアクセスし、ヒットしたときは
キャッシュメモリ内の命令コードを命令バッファ10へ供
与し、ミスヒットしたときはアドレスバスADBをアクセ
スして外部のメモリに命令を取りに行く機能を有してい
る。
特に制限されないが、外部バス制御回路11は、命令ア
ドレス制御回路15または演算処理部17より内部バス18を
介して供給される論理アドレスを物理アドレスに変換す
るアドレス変換テーブル11aを有している。
この実施例では固定長命令形式のマイクロプロセッサ
を考えており、そのため命令アドレス制御回路15は、命
令フェッチポインタ15aとプログラムカウンタ15cを備え
ている。
さらに、この実施例のマイクロプロセッサでは、特殊
バスサイクル発生回路19によって挿入される特殊バスサ
イクルで、実行された命令のコードをデータバスDTB上
に出力するとともにプログラムカウンタ15c内の論理ア
ドレスを命令識別アドレスとしてアドレスバスADB上に
出力するように構成されている。
次に、上記マイクロプロセッサの動作について説明す
る。
外部バス制御回路11は、命令取込ポインタ15aの示す
アドレスを先ずアドレス変換テーブル11aで物理アドレ
スに変換し、それをキャッシュメモリ22に送って検索
し、ヒット信号Hを得るとキャッシュメモリ22から命令
コードを読み出し、命令バッファ10へ供与する。命令バ
ッファ10に取り込まれた命令コードは命令デコーダ13に
転送されてデコードされ、命令の種別、アドレッシング
モードの認識、即値生成、演算制御情報等が抽出され
る。この情報により、命令実行部20がデータの転送や演
算等の処理を行なう。
そして、命令実行終了ごとに演算処理部16から命令実
行終了信号ENDが出力され、命令アドレス制御回路15お
よび特殊バスサイクル発生回路19に命令実行の終了通知
がなされる。命令アドレス制御回路15ではこの命令の終
了通知を受けると、プログラムカウンタ15cのインクリ
メントが行なわれる。
また、プログラムが分岐をする時は、命令実行部20に
おいて作成された分岐先命令アドレスが内部バス18を介
して命令アドレス制御回路15に供給され、プログラムカ
ウンタ15cおよび命令フェッチポインタ15aに設定され
る。
一方、キャッシュメモリ22の検索でミスヒットしたと
きは、上記変換アドレス(物理アドレス)を外部のアド
レスバスADB上に出力し、データバスDTBを介して外部メ
モリから命令コードを取り込んで命令バッファ10に供与
する。また、取り込んだ命令は同時にキャッシュメモリ
22に送り、格納する。
命令の取込みは自動的に命令フェッチポインタ15aを
インクリメントしながら命令バッファ10が一杯になるま
で行なわれる。命令バッファ10が一杯になると、命令バ
ッファ10から信号FULLが命令アドレス制御回路15に供給
され、命令フェッチポインタ15aの更新が停止される。
上記の通常動作モードでは、命令コードがキャッシュ
メモリ22内にある場合、プロセッサの外部からは内部の
実行命令が識別できない。この実施例では、外部から特
殊バスサイクル発生要求信号SBRを入れてやると、特殊
バスサイクル挿入モードに移行して内部で実行中の命令
コードおよびその命令の位置を示すアドレスを外部へ出
力する。本特殊モードでの動作は上記通常モードに加
え、プロセッサ内部で命令実行が行なわれ、命令実行の
終了信号ENDが出力されるごとに、特殊バスサイクル発
生回路19が外部バス制御回路11を制御して内部での命令
実行と並行して命令識別アドレスおよび実行命令コード
をそれぞれ空いているアドレスバスADB、データバスDTB
上にのせ、バスアクセスタイプまたはデータタイプを識
別するため信号を特殊バスサイクルであることを示すコ
ードとして制御バスCTB上に出力する。
これにより、プロセッサ外部の観測でプロセッサ内部
の実行命令語およびアドレスを識別できる。ただし、こ
のとき、キャッシュミスヒットに起因する本来の命令語
取込みやデータアクセスと競合する可能性はあるが、複
数のバスサイクルの要求が競合した場合、外部バス制御
回路11は予め定められた優先順位に応じて外部バスサイ
クルを発生させる。具体的には、特殊バスサイクル挿入
モードではデータアクセス要求やキャッシュミスヒット
に起因するバスサイクルに優先して特殊バスサイクルを
発生させるようになっている。
なお、キャッシュのミスヒットが発生した場合にプロ
セッサが外部メモリに命令を取りに行ったときの命令フ
ェッチサイクルの次には特殊バスサイクルを入れてもよ
いが入れないようにしてもよい。外部バスを監視してい
ればそのような命令フェッチサイクルを識別できるため
である。ただし、ミスヒットの際の命令フェッチサイク
ルの次にそれを外部に示す特殊バスサイクルを挿入しな
いようにすれば、ハードウェアは多少複雑になるが、特
殊バスサイクルのない分だけ高速化できるという利点が
ある。
第8図には、上記マイクロプロセッサを用いたシステ
ムにおいて次のプログラムを実行した場合の各バスの動
作タイミングが示されている。
なお、第8図の動作タイミングは、命令a〜dがキャ
ッシュメモリ22内にすでに格納されている場合のタイミ
ングである。
第8図を参照すると、バスサイクルS1ではプロセッサ
内部で命令aが実行され、バスサイクルS2ではプロセッ
サ内部で命令bが実行されるのと並行して外部データバ
ス上にサイクルS1で実行された命令コードaが、また外
部アドレスバス上にその命令アドレスが出力され、かつ
制御バス上には特殊バスサイクルであることを示すコー
ドが出力されていることが分かる。
また、第8図では、次の命令c(MOV @R0.h,R1.W)
がデータアクセスを伴う命令であるため、プロセッサ内
部では命令cの実行が停止され、バスサイクルS3で特殊
バスサイクルが優先的に実行され、前のサイクルで実行
された命令bの命令コードとアドレスが出力されている
ことが分かる。そして、命令cの実行は特殊バスサイク
ルS3の次のサイクルS4で実行され、アドレスバス上には
所望のデータの位置を示すアドレスが、またデータバス
上にはリードデータがのっている。バスサイクルS4で実
行された命令cのコードとアドレスは次のバスサイクル
S5で外部に出力される。このとき、プロセッサ内では命
令dが並行して実行され、この命令dのコードとアドレ
スは次のバスサイクルS6で外部へ出力される。
なお、第7図の実施例のマイクロプロセッサでは、特
殊バスサイクルで実行命令のアドレスを論理アドレスで
出力するようにしてるが、プログラムカウンタ15cから
特殊バスサイクル発生回路19に供給される命令識別アド
レスをアドレス変換テーブル11aを通すことによって物
理アドレスとして出力するようにしてもよい。
また、第7図の実施例では固定長命令を扱うマイクロ
プロセッサを示したが、第1図の実施例と同じように、
命令バッファを2組設けるとともに、命令アドレス制御
回路15内に命令コードポインタ15bを付加することで可
変長命令を扱い、しかもキャッシュメモリ内蔵したマイ
クロプロセッサに本発明を適用することも可能である。
以上説明したように上記実施例では、予め複数の命令
を保持可能なバッファもしくはメモリを有するマイクロ
プロセッサに、ある所定の動作モードでは1命令実行ご
とにプロセッサの内部情報を外部へ出力するための特殊
バスサイクルを挿入する機能を持たせるようにしたの
で、命令プリフェッチ方式のマイクロプロセッサを用い
たシステムのエミュレーションにおいて、いずれの命令
が実行されたか外部で容易に知ることができるため、正
確なエミュレーション制御が可能になるとともに、トレ
ースデータの解析が容易となりデバッグ効率が向上する
という効果がある。
また、本来不用な特殊バスサイクルが挿入されるた
め、完全なリアルタイム性はないが挿入されるのは1サ
イクルのみであるため、割込み機能等で所定の命令列を
実行して内部情報を外部へ知らせる従来方式に比べる
と、リアルタイム性はほとんど損なわれない。
以上本発明者によってなされた発明を実施例に基づき
具体的に説明したが、本発明は上記実施例に限定される
ものではなく、その要旨を逸脱しない範囲で種々変更可
能であることはいうまでもない。例えば、上記実施例で
は特殊バスサイクル挿入モードを外部ピンからの特殊バ
スサイクル発生要求信号SBRに基づいて行なっている
が、特殊バスサイクル発生回路19内にフラグもしくはレ
ジスタを設け、そこへの書込みによって特殊バスサイク
ル挿入モードへ移行させるようにしてもよい。
以上の説明では主として本発明者によってなされた発
明をその背景となった利用分野であるマイクロプロセッ
サに適用した場合について説明したが、この発明はそれ
に限定されるものでなく、シングルチップマイコンその
他プログラム制御方式のデータ処理装置一般に利用する
ことができる。
[発明の効果] 本願において開示される発明のうち代表的なものによ
って得られる効果を簡単に説明すれば下記のとおりであ
る。
すなわち、ピン数を増加させたり、複雑な外付け回路
を設けることなく、命令プリフェッチ方式のマイクロプ
ロセッサにおいて実行中の命令アドレス等内部情報を外
部へ知らせることができる。
また、リアルタイム性を損なうことなく内部情報を外
部へ知らせることができるとともに、必要とする情報量
の増加に対する柔軟性の高いマイクロプロセッサを実現
することができる。
【図面の簡単な説明】
第1図は本発明に係るマイクロプロセッサの第1の実施
例を示すブロック図、 第2図はその特殊バスサイクル挿入モードでの動作タイ
ミングチャート、 第3図はインサーキットエミュレータの構成例を示す斜
視図、 第4図は本発明に係るマイクロプロセッサを用いたいた
マイクロコンピュータシステムとそのエミュレーション
システムの一部を示すブロック図、 第5図は本発明に係るマイクロプロセッサの第2の実施
例を示すブロック図、 第6図は本発明に係るマイクロプロセッサの第3の実施
例を示すブロック図、 第7図は本発明に係るマイクロプロセッサの第4の実施
例を示すブロック図、 第8部はその特殊バスサイクル挿入モードでの動作タイ
ミングを示すチャートである。 1……ユーザシステム(マイクロコンピュータシステ
ム)、2……エミュレータボックス、3,4……ケーブ
ル、5……システム開発装置本体、11……外部バス制御
回路、15……命令アドレス制御回路、18……システムバ
ス、19……特殊バスサイクル発生回路、20……命令実行
部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 近藤 芳行 群馬県高崎市西横手町111番地 株式会 社日立製作所高崎工場内 (72)発明者 橋本 幸治 東京都小平市上水本町5丁目22番1号 日立マイクロコンピュータエンジニアリ ング株式会社内 (56)参考文献 特開 平1−201737(JP,A) 特開 平1−137339(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 11/28 - 11/34

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】プログラムデバッグのためのエミュレーシ
    ョン中のバス上の信号を採取し、蓄積するためのトレー
    スメモリと、マイクロプロセッサと、上記トレースメモ
    リへの信号採取および上記を停止させるためのブレーク
    ポイント制御回路とを備えたインサーキットエミュレー
    タおいて、 上記マイクロプロセッサは、 外部のメモリから取り込まれた複数の命令を保持する命
    令バッファと、 上記命令バッファに結合され、取り込まれた命令をデコ
    ードし、デコード結果を出力する命令デコーダと、 上記命令デコーダに結合され、デコード結果に従って命
    令に対応した処理を実行する命令実行部と、上記命令実
    行部に結合され、上記命令バッファに取り込む命令のア
    ドレスを保持する命令フェッチポインタを含むアドレス
    制御回路と、 上記命令バッファと上記命令実行部と上記アドレス制御
    回路とに結合され、上記ブレークポイント制御回路から
    の特殊バスサイクル要求信号と上記命令実行部から出力
    される1命令の終了を示す信号とに基づいて、一の命令
    の実行後次の命令の実行前に、プログラムのデバッグを
    可能にするための内部情報を外部へ出力するバスサイク
    ルを挿入する機能を有するバスサイクル制御回路と、 から構成され、上記命令バッファと命令デコーダと命令
    実行部とアドレス制御回路とバスサイクル制御回路が一
    つの半導体チップ上に形成されてなることを特徴とする
    インサーキットエミュレータ。
  2. 【請求項2】上記バスサイクル制御回路は、上記内部情
    報として実行された命令を示す信号を出力することを特
    徴とする請求項1に記載のインサーキットエミュレー
    タ。
  3. 【請求項3】複数の命令を並行して実行可能なマイクロ
    プロセッサであって、 外部のメモリから取り込まれた複数の命令を保持する複
    数の命令バッファと、 上記命令バッファに結合され、取り込まれた命令をデコ
    ードし、デコード結果を出力する命令デコーダと、 上記命令デコーダに結合され、デコード結果に従って複
    数の命令に対応した処理を並行して実行する命令実行部
    と、 上記命令実行部に結合され、上記命令バッファに取り込
    む命令のアドレスを保持する命令フェッチポインタを含
    むアドレス制御回路と、 上記命令バッファと上記命令実行部と上記アドレス制御
    回路とに結合され、特殊バスサイクル要求信号と上記命
    令実行部から出力される1命令の終了を示す信号とに基
    づいて、異なる2つの命令の実行間に、プログラムのデ
    バッグを可能にするための内部情報を外部へ出力するバ
    スサイクルを挿入する機能を有するバスサイクル制御回
    路と、 から構成され、上記命令バッファと命令デコーダと命令
    実行部とアドレス制御回路とバスサイクル制御回路が一
    つの半導体チップ上に形成されてなることを特徴とする
    マイクロプロセッサ。
  4. 【請求項4】上記バスサイクル制御回路は、上記内部情
    報を示す信号として実行された命令を示す信号を出力す
    ることを特徴とする請求項3に記載のマイクロプロセッ
    サ。
  5. 【請求項5】上記特殊バスサイクル要求信号は、当該マ
    イクロプロセッサの外部もしくは内部の所定回路から供
    給されることを特徴とする請求項3または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 インサーキットエミュレータおよびマイクロプロセッサ
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
JP2104700A JP2923570B2 (ja) 1990-04-20 1990-04-20 インサーキットエミュレータおよびマイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH043230A JPH043230A (ja) 1992-01-08
JP2923570B2 true 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
JPH043230A (ja) 1992-01-08

Similar Documents

Publication Publication Date Title
US5127103A (en) Real-time tracing of dynamic local data in high level languages in the presence of process context switches
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
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
JP2003085000A (ja) トレース情報生成装置およびその方法
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
EP0762277A1 (en) Data processor with built-in emulation circuit
EP0762279A1 (en) Data processor with built-in emulation circuit
CN104380264B (zh) 运行时间检测报告
GB2200484A (en) Detecting and handling memory-mapped i/o by a pipelined computer
US5263153A (en) Monitoring control flow in a microprocessor
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
TW201530320A (zh) 資料處理裝置及半導體積體電路裝置
HK1003603B (en) A microprocessor for inserting a bus cycle to output an internal information for an emulation
CN104704474A (zh) 用于管理的运行时间的基于硬件的运行时间检测设施
US5574887A (en) Apparatus and method for emulation routine pointer prefetch
CN104169887A (zh) 通过指令操作码的运行时间检测间接采样
US5361389A (en) Apparatus and method for emulation routine instruction issue
US5408622A (en) Apparatus and method for emulation routine control transfer via host jump instruction creation and insertion
CA2003004C (en) Apparatus and method for executing a conditional branch instruction
JPS63193239A (ja) 命令順序監視装置と方法
JP2923570B2 (ja) インサーキットエミュレータおよびマイクロプロセッサ
US5440757A (en) Data processor having multistage store buffer for processing exceptions
JPS62197831A (ja) デ−タ処理装置
JPH04284546A (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