JP4084912B2 - マイクロプロセッサシステム - Google Patents

マイクロプロセッサシステム Download PDF

Info

Publication number
JP4084912B2
JP4084912B2 JP25877399A JP25877399A JP4084912B2 JP 4084912 B2 JP4084912 B2 JP 4084912B2 JP 25877399 A JP25877399 A JP 25877399A JP 25877399 A JP25877399 A JP 25877399A JP 4084912 B2 JP4084912 B2 JP 4084912B2
Authority
JP
Japan
Prior art keywords
break
emulation
microprocessor
mode
control
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
JP25877399A
Other languages
English (en)
Other versions
JP2001084158A (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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP25877399A priority Critical patent/JP4084912B2/ja
Publication of JP2001084158A publication Critical patent/JP2001084158A/ja
Application granted granted Critical
Publication of JP4084912B2 publication Critical patent/JP4084912B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロコンピュータ、さらにはそれにおけるシステムデバッグのためのエミュレーションシステムに関する。
【0002】
【従来の技術】
マイクロプロセッサ(マイクロコンピュータ)応用機器の開発において、その応用システムのデバッグやそのシステムの詳細な評価を行うため、インサーキットエミュレータが使用されている。インサーキットエミュレータは、ソフトウェア開発用の親計算機と、開発中のターゲットシステムとの間に接続され、そのターゲットシステムに含まれるマイクロプロセッサ(ターゲットプロセッサ)の機能を代行する一方でデバッガとしての機能をもち、詳細なシステムデバッグを支援する。かかるエミュレータは、その本体から延長されたケーブルの先端が、ターゲットプロセッサ用ソケットなどの接栓を介してターゲットシステムに結合可能とされ、さらに、エミュレーション実行中に各種データやステータス信号などを実時間でサンプリングし、それをトレースメモリ部などに格納する実時間トレース機能やエミュレーション動作を実質的に停止させるブレーク機能などの各種デバッグ機能を備える。
【0003】
また、実チップでありながら、ソフトウェアの実行状態をリアルタイムにトレースするための機能や、デバッグのために内蔵RAM(ランダム・アクセス・メモリ)に対するデータのリード/ライトを可能とするオンチップデバッグ機能を備えたマイクロコンピュータが提供されている。ここで、実チップとは、ユーザシステムに実際に搭載されるCPUを指し、エミュレーションにおける必要情報を外部出力可能に構成されたエミュレーション用チップと区別される。
【0004】
尚、エミュレータの動作について記載された文献の例としては、1989年6月20日に電波新聞社から発行された「マイコン開発のすべて(第78頁から第95頁)」がある。
【0005】
【発明が解決しようとする課題】
ユーザシステムによっては、処理能力の向上を図るため、複数のCPU(中央処理装置)が搭載されることがある。従来のエミュレーションにおいては、基本的に一つのCPU毎に1台のエミュレータが必要とされているため、例えば2個のCPUが搭載されるユーザシステムにおいては、基本的には2台のエミュレータが必要とされる。
【0006】
しかしながら、2個のCPUが搭載されるユーザシステムに、2台のエミュレータを繋いだとしても、2個のCPU相互間の同期がとれていないために、同時にエミュレーション実行することはできない。つまり、ユーザシステムに2台のエミュレータを繋いだとしても、一方のエミュレーション中は、他方のエミュレータにおいてターゲットプログラムの実行が停止されるが、あるいは、一方のエミュレーション中は、他方のCPUソケットには実チップを装着するようにしていた。
【0007】
上記のように2個のCPUが搭載されるユーザシステムのエミュレーションにおいては、例え2台のエミュレータを繋いだとしても、別々にエミュレーションしなければならないため、ユーザシステムの開発効率の向上が妨げられた。
【0008】
本発明の目的は、ユーザシステムの開発効率の向上を図るための技術を提供することにある。
【0009】
本発明の別の目的は、複数のCPUを有するユーザシステムのエミュレーションにおいてターゲットプログラムの同時実行を可能とするための技術を提供することにある。
【0010】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0011】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0012】
すなわち、ユーザプログラム実行中にブレーク条件が成立することにより、ブレークモードに遷移するためのスタック処理を行い、ブレークモードにおいてブレークモードから復帰するための復帰命令を実行することでユーザモードへ遷移するためのアンスタック処理を行う中央処理装置と、上記アンスタック後に、上記中央処理装置を命令待ち状態に遷移させるためのフォルト信号をアサートし、上記中央処理装置の命令待ち状態で、その命令待ち状態の解除要求信号がアサートされることにより、上記中央処理装置の命令待ち状態を解除する制御手段とを含んでマイクロプロセッサを構成する。
【0013】
上記の手段によれば、制御手段は、フォルト信号をアサートし、上記中央処理装置の命令待ち状態で、その命令待ち状態の解除要求信号がアサートされることにより、上記中央処理装置の命令待ち状態を解除する。このことが、異なるマイクロプロセッサを同期化させ、エミューションの並列化によりユーザシステムの開発効率の向上を達成する。
【0014】
また、ユーザプログラム実行中にブレーク条件が成立することにより、ブレークモードに遷移するためのスタック処理を行い、ブレークモードにおいてブレークモードから復帰するための復帰命令を実行することでユーザモードへ遷移するためのアンスタック処理を行う中央処理装置と、上下関係の判別フラグを記憶するための判別フラグ記憶手段と、上記判別フラグ記憶手段に記憶されている判別フラグの状態が上位を示す場合、マイクロプロセッサの外部に出力される命令待ち状態の解除要求信号を上記アンスタック処理後にアサートする第1制御手段と、上記判別フラグ記憶手段に記憶されている判別フラグの状態が下位を示す場合、上記アンスタック後に、上記中央処理装置を命令待ち状態に遷移させるためのフォルト信号をアサートし、上記中央処理装置の命令待ち状態で、その解除要求信号がアサートされることにより、上記中央処理装置の命令待ち状態を解除する第2制御手段とを含んでマイクロプロセッサを構成する。
【0015】
上記の手段によれば、第2制御手段は、フォルト信号をアサートし、上記中央処理装置の命令待ち状態で、その命令待ち状態の解除要求信号をアサートすることにより、上記中央処理装置の命令待ち状態を解除する。このことが、異なるマイクロプロセッサを同期化させ、エミューションの並列化によりユーザシステムの開発効率の向上を達成する。
【0016】
このとき、外部からのバスリクエスト又はバス開放要求に応じて、上記中央処理装置を命令実行待ち状態に遷移させるためのフォルト信号をアサートするバスコントローラと、上記バスコントローラからのフォルト信号と上記フォルト制御回路からのフォルト信号との論理和を得てそれを上記中央処理装置に供給するゲート回路とを設けることができる。
【0017】
そしてそのようなマイクロプロセッサと、エミュレータ本体とを含んでエミュレーションシステムを構成する。
【0018】
【発明の実施の形態】
図5には本発明にかかるエミュレーションシステムの全体的な構成例が示される。
【0019】
図5に示されるようにこのエミュレーションシステムは、特に制限されないが、ユーザシステム51に搭載された第1エミュレーションプロセッサ511及び第2エミュレーションプロセッサ512、エミューレータ本体52、及び制御コンピュータ53とを含む。
【0020】
ユーザシステム51は、2個のCPUソケットを有し、それぞれCPUが装着される。第1エミュレーションプロセッサ511及び第2エミュレーションプロセッサ512は、基本的には、当該ユーザシステム51に本来搭載される実チップと同等の機能を有するとともに、内部バス情報の外部出力が可能に構成されたエミュレーション用チップとされる。
【0021】
第1エミュレーションプロセッサ511及び第2エミュレーションプロセッサ512とも、当該チップをシステムボードに搭載した状態でのデバッグを可能とするオンチップデバッグ機能を有する。特に、第1エミュレーションプロセッサ511は、その近傍に設けられたコネクタ513及びそれに結合されたケーブル524を介してエミュレータ本体52に接続されることにより、上記オンチップデバッグ機能によるデバッグが行われるようになっている。また、第2エミュレーションプロセッサ512の外部端子はユーザシステム51のCPUソケットを介してユーザシステムに結合されるとともに、ケーブル525を介してエミュレータ本体52に結合される。これにより、第2エミュレーションプロセッサ512のエミュレーション情報をエミュレータ本体52において収集することができる。制御コンピュータ53は、特に制限されないが、パーソナルコンピュータとされ、ケーブル516を介してエミュレータ本体52に結合されることにより、このエミュレータ本体52との間で、エミュレーションに関する各種制御情報や収集データのやり取りが可能とされる。
【0022】
図1には、上記エミュレータ本体52の構成例が示される。
【0023】
図1に示されるように、このエミュレータ本体52は、特に制限されないが、互いに異なるエミュレーション機能として、インサーキットエミュレーション(ICE)機能と、オンチップデバッグ機能とを有する。ICE機能はICE機能ブロックによって実現される。このICE機能ブロックは、コントロールCPU11、ブレーク回路12、トレース回路13、モニタ回路14、ファームRAM(ランダム・アクセス・メモリ)15、パフォーマンス回路16とを含む。そして、オンチップデバッグ機能は、コントロールCPU11やオンチップコントローラ17によって実現される。
【0024】
コントロールCPU11は、コントロールバス23を介してブレーク回路12、トレース回路13、モニタ回路14、ファームRAM15、及びパフォーマンス回路16、及びオンチップコントローラ17に結合され、それらに対して各種情報のやり取りが可能とされる。また、第2エミュレーションプロセッサ512は、エミュレーションバス24を介してブレーク回路12、トレース回路13、モニタ回路14、ファームRAM15、及びパフォーマンス回路16に結合され、第2エミュレーションプロセッサ512のエミュレーション動作における各種情報の収集等が可能とされる。オンチップコントローラ17は、信号線25を介して第1エミュレーションプロセッサ511に結合され、後述する所定の通信プロトコルに従って各種情報のやり取りが可能とされる。
【0025】
ブレーク回路12は、エミュレーションバス24の状態を監視してその状態が予め設定されている状態に到達したときにエミュレーション動作をブレークする。トレース回路13は、エミュレーションバス24に与えられるデータやアドレスさらには制御情報を逐次トレースして蓄える。モニタ回路14は、制御コンピュータ53からインタフェース21を介してエミュレーションバス24をモニタを可能とするために設けられている。ファームRAM15は、第2エミュレーションプロセッサ512で実行されるプログラムを格納するために設けられる。パフォーマンス回路16は、上記トレース情報に基づいて第2エミュレーションプロセッサ512の性能測定、例えば実行時間の測定などを行うために設けられる。
【0026】
オンチップコントローラ17は、コントロールCPU11の制御下で、第1エミュレーションプロセッサ511のオンチップデバッグを可能とするブロックであり、次のように構成される。
【0027】
図2には上記オンチップコントローラ17の構成例が示される。
【0028】
図2に示されるように、上記オンチップコントローラ17は、JTAGにおける各種信号を出力するためのJTAGコントローラ170、バスコントローラ176、及びクロック発生回路177を有する。上記JTAGコントローラ170は、JTAGにおける各種信号を出力するためのバッファ171〜174及びレジスタ175を有する。クロック発生回路177は、基本周波数のクロック信号を発生させるための発振器と、発生されたクロックを適宜に分周することにより、元の周波数とは異なる周波数のクロック信号を生成する分周回路を含む。このクロック発生回路177から出力されたクロック信号はバッファ174を介することによりTCKとして第1エミュレーションプロセッサ511に伝達される。出力データTDoがバッファ171を介してバスコントローラ176に伝達され、また、テストロジックに対して命令やデータをシリアル入力する信号TDi、テスト動作を制御する信号TMS、テストロジックに供給されるクロック信号TCK、コントローラを初期化するためのリセット信号TRSTがそれぞれバッファ172,173、レジスタ175を介して出力される。バスコントローラ176は、上記バッファ171,172,173、及びレジスタ175と、コントロールバス23との間での信号のやり取りを可能にする。
【0029】
特に制限されないが、第1エミュレーションプロセッサ511と第2エミュレーションプロセッサ512とは互いに同一構成とされる。
【0030】
図3には第1エミュレーションプロセッサ511(512)の構成例が示される。
【0031】
図3に示されるように、この第1エミュレーションプロセッサ511(512)は、CPU213、RAM212、シリアルデバッグインタフェース211、周辺モジュール215、及びエミュレーションバスコントローラ216を含む。
【0032】
CPU213により所定のプログラムが実行されるとき、RAM212は、その演算処理の作業領域として機能される。シリアルデバッグインタフェース211は、エミュレータ本体52におけるオンチップコントローラ17に結合されることによって、シリアルデータのやり取りを可能とする。
【0033】
バスコントローラ214が設けられ、CPU213と周辺モジュール215との間のウェイト制御や、CPU213と外部モジュールとの間のウェイト制御が行われる。特に制限されないが、上記周辺モジュール215には、外部装置との間のシリアル通信を可能とするシリアルコミュニケーションインタフェースや、時間測定のためのタイマー、CPU213の介在なしにデバイス間のデータ転送を可能にするダイレクトメモリアクセスコントローラなどが含まれる。
【0034】
上記シリアルデバッグインタフェース211Dは、通信用モジュール211A、ファームRAM211B、ブレーク回路211C、及びトレースバッファ211Dを含む。通信モジュール211Aは、外部装置との間でオンチップデバッグのための通信を行う。ファームRAM211Bには、CPU213で実行される各種プログラムが保持される。ブレーク回路211Cは、予め設定されたブレーク条件が成立したか否かを判別する。トレースバッファ211Dは、CPU213でのプログラム実行状態をトレースする。
【0035】
また、エミュレーションコントローラ216は、内部バス218とエミュレーションバス24とに結合され、エミュレーションに関する各種制御を行う。特に制限されないが、エミュレーションコントローラ216は、上位/下位レジスタ216A、ブレークスタックレジスタ216B、ブレーク制御回路216C、及びフォルト制御回路216Dを含む。上位/下位レジスタ216Aは、それが含まれるエミュレーションプロセッサが他のエミュレーションプロセッサとの関係で上位であるのか下位であるのかを判別するためのフラグ情報が保持される。特に制限されないが、図1においては、エミュレーションバス24に結合されるエミュレーションプロセッサ511が上位とされ、オンチップコントローラ17に結合されるエミュレーションプロセッサ512が下位とされる。上位と下位との違いは、ブレークモードからユーザモードへの復帰命令の実行によるアンスタック完了後の状態において大きく相違する。これについては後に詳述する。
【0036】
ブレークスタックレジスタ216Bは、ブレーク条件が成立してCPU213の状態がユーザモードからブレークモードに移行する際に、そのときのレジスタ(EXR,CCR)やプログラムカウンタ(PC)等の値を保持する。
【0037】
ブレーク制御回路216Cは、ブレーク制御信号の入出力制御を行う。ブレーク制御信号には、ブレーク割り込み要求信号、ブレークアクノリッジ信号などがある。ブレーク割り込みはローアクティブとされ、それがアクティブにされると、ブレーク制御回路216CによってCPU213へのブレーク割り込みが行われる。このブレーク割り込みにより、ブレーク処理が行われ、そのときのレジスタ(EXR,CCR)やプログラムカウンタ(PC)等の値がブレークスタックレジスタ216Bに保持される。ブレーク割り込みによりCPU213がブレークモードに移行すると、ブレーク制御回路216Cによりブレークアクノリッジ信号がローレベルにされることで、ブレークモードになったことが示される。ブレークアクノリッジ信号はブレークモード期間中ローレベルであり、ブレークからの復帰(RTB)命令のスタック終了後にハイレベルにされる。つまり、ブレークモードは、専用の復帰(RTB)命令を実行することにより解除され、それによりブレークモードからユーザモードに遷移される。
【0038】
また、バスコントローラ214から第1フォルト信号FLT1が出力され、エミュレーションコントローラ216からは第2フォルト信号FLT2が出力される。この第1フォルト信号FLT1と第2フォルト信号FLT2とのオア論理がオアゲート217で得られ、そのオア論理がCPU213に伝達されるようになっている。
【0039】
上記第1フォルト信号FLT1は、上記バスコントローラ214に対して、マイクロプロセッサの外部からバスリクエストあるいは他のバスマスタからのバス解放要求があり、バス権調停の結果、バス権を解放すべき場合には、バスコントローラ214によってハイレベルにアサートされる。第1フォルト信号FLT1がハイレベルにアサートされることにより、CPU213は、第1フォルトFLT1がハイレベルにアサートされた場合に、内部状態(プログラムカウンタ等の値)を保持したまま、命令の実行が停止される(フォルト状態)。これによりバスがCPU213から開放される。
【0040】
また、上記第2フォルト信号FLT2は、上位/下位レジスタ216Aのフラグ状態に応じてフォルト制御回路216Dによって制御される。つまり、上位/下位レジスタ216のフラグ状態がローレベルとされ、当該エミュレーションプロセッサが下位とされる場合には、ブレークモードからの復帰命令がCPU213で実行された後にフォルト制御回路216Dによって第2フォルト信号FLT2がハイレベルにアサートされる。これにより、CPU213においては、第1フォルトFLT1がハイレベルにアサートされた場合と同様に、内部状態(プログラムカウンタ等の値)を保持したまま、命令の実行が停止される(フォルト状態)。このフォルト状態は、エミュレーションコントローラ216の外部から与えられるフォルト解除要求信号がローレベルにアサートされることにより、第2フォルト信号FLT2がローレベルにネゲートされまで維持される。つまり、エミュレーションコントローラ216の外部から与えられたフォルト解除要求信号がローレベルにアサートされると、フォルト制御回路216Dは、第2フォルト信号FLT2をローレベルにネゲートする。これにより、CPU213のフォルト状態が解除される。フォルト制御回路216Dにおけるこのような制御機能が、本発明における第2制御手段に対応する。
【0041】
それに対して、上位/下位レジスタ216Aのフラグ状態がハイレベルとされ、当該エミュレーションプロセッサが上位とされる場合には、フォルト制御回路216Dは、第2フォルト信号FLT2をアサートすること無しに、外部に対して別のCPUに対するフォルト解除要求信号をアサートする。フォルト制御回路216Dにおけるこの制御機能が、本発明における第1制御手段に対応する。
【0042】
図4には通信用モジュール211Aの構成例が示される。
【0043】
図4に示されるように、通信用モジュール211Aは、JTAG対応のTAPコントローラ211A−1、入力レジスタ211A−2、及び出力レジスタ211A−3を含んで成る。TAPコントローラ211A−1には、テストロジックに供給されるクロック信号TCK、コントローラを初期化するためのリセット信号TRST、及びテスト動作を制御する信号TMSが入力される。TAPコントローラ211−A1は、入力される命令の解析及びそれに基づく入出力制御を行う。入力レジスタ211A−2及び出力レジスタ211A−3は、特に制限されないが、32ビット構成のシフトレジスタとされ、それぞれシリアル形式で取り込まれた信号TDi,TDoをシフトする。
【0044】
次に、ブレークモードからユーザモードへの復帰について詳述する。
【0045】
図6には、第1エミュレーションプロセッサ511、及び第2エミュレーションプロセッサ512において、ブレークモードからユーザモードへの復帰までの手順が示される。また、図7にはその場合の主要部の動作タイミングが示される。
【0046】
第1エミュレーションプロセッサ511は下位レベルのプロセッサ、第2エミュレーションプロセッサ512は上位レベルのプロセッサとされる。
【0047】
第1エミュレーションプロセッサ511において、ファームRAM211Bに保持されているプログラムが実行されている期間において、ブレークモードからの復帰(RTB)命令が実行されることにより、プログラムカウンタ(PC)などのアンスタックが行われる(S711,S721)。このアンスタックにおいて上位/下位レジスタ216のフラグ状態がチェックされる。第1エミュレーションプロセッサ511は下位レベルのプロセッサとされるため、上位/下位レジスタ216のフラグ状態はローレベルとされている。これにより、第2フォルト信号FLT2がハイレベルにアサートされ、第1エミュレーションプロセッサ511におけるCPU213はフォルト(次命令待ち)状態とされる。つまり、上記ステップS712のプログラムカウンタ(PC)などのアンスタックが行われにもかかわらず、ユーザモードにおける最初の命令の実行待ち状態とされる。この状態は、上位レベルのプロセッサである第2エミュレーションプロセッサ512からフォルト解除要求がなされるまで続く。
【0048】
一方、第2エミュレーションプロセッサ512において、ファームRAM15(図1参照)に保持されているプログラムが実行されている期間において、ブレークモードからの復帰(RTB)命令が実行されることにより、プログラムカウンタ(PC)などのアンスタックが行われる(S721,S722)。このアンスタックにおいて上位/下位レジスタ216のフラグ状態がチェックされる。第2エミュレーションプロセッサ512は上位レベルのプロセッサとされるため、上位/下位レジスタ216のフラグ状態はハイレベルとされている。これにより、エミュレーションコントローラ216によってフォルト解除要求信号がローレベルにアサートされることで、第1エミュレーションプロセッサ511のフォルト状態の解除要求がなされる(S723)。この解除要求後、第2エミュレーションプロセッサ512はユーザプログラムの実行に遷移する。
【0049】
ここで、上記ローレベルのフォルト解除要求信号が第1エミュレーションプロセッサ511に伝達されると、第1エミュレーションプロセッサ511では、エミュレーションコントローラ216内のフォルト制御回路216Dにより第2フォルト信号FLT2がローレベルにネゲートされる。これによりフォルト状態が解除され、CPU213によりユーザプログラムの実行が開始される。
【0050】
上記の例によれば以下の作用効果を得ることができる。
【0051】
(1)下位レベルである第1エミュレーションプロセッサ511がブレークモードからの復帰(RTB)命令を実行した後にフォルト状態になり、上位レベルである第2エミュレーションプロセッサ512からのフォルト解除要求(S723)がなされることで、第1エミュレーションプロセッサ511のフォルト状態が解除されることにより、第1エミュレーションプロセッサ511と第2エミュレーションプロセッサ512とは互いに同期される。つまり、ブレークモードにおいて非同期処理が行われていても、ブレークモードからの復帰後のユーザプログラムの実行開始時点で第1エミュレーションプロセッサ511と第2エミュレーションプロセッサ512とは同期処理が行われる。このため、第1エミュレーションプロセッサ511と第2エミュレーションプロセッサ512とを同時に実行してエミュレーションすることができるので、ユーザプログラムの開発効率の向上を図ることができる。
【0052】
(2)エミュレータ本体52は、一つでよく、ICE用エミュレータ、及びオンチップデバッグ用エミュレータとして別個に用意する必要が無い。
【0053】
別の構成例について説明する。
【0054】
図8に示されるように、オンチップデバッグ用エミュレータ本体85と、エミュレータ本体86とを別々に構成しても良い。オンチップデバッグ用エミュレータ本体85は、基本的には、図1におけるオンチップコントローラ17、コントロールCPU11、及びインタフェース21等が含まれるが、ブレーク回路12、トレース回路13、モニタ回路14、ファームRAM15、及びパフォーマンス回路16などのICE機能実現ブロックは含まれない。エミュレータ本体86には、図1におけるブレーク回路12、トレース回路13、モニタ回路14、ファームRAM15、パフォーマンス回路16、コントロールCPU11、及びインタフェース21などのICE機能実現ブロックが含まれるが、オンチップコントローラ17は含まれない。下位マイクロプロセッサ側エミュレータ85には制御コンピュータ81が接続され、上位マイクロプロセッサ側エミュレータ86には制御コンピュータ82が接続される。
【0055】
また、図9に示されるように、二つのマイクロプロセッサ511,512ともエミュレーションバスを介してエミュレーションを行うようにしても良い。この場合、エミュレータ本体85,86は、それぞれ図1におけるブレーク回路12、トレース回路13、モニタ回路14、ファームRAM15、パフォーマンス回路16、コントロールCPU11、及びインタフェース21などのICE機能実現ブロックが含まれる。
【0056】
図10に示されるように、一つのマイクロプロセッサパッケージの中に、図3に示されるマイクロプロセッサが二つ設けられる場合がある。かかる場合にも、本発明を適用することができる。この場合、エミュレータ本体52は、二つのマイクロプロセッサに対応してICE機能実現ブロックが設けられる。
【0057】
さらに、図11に示されるように、一つのマイクロプロセッサパッケージの中に二つのマイクロプロセッサが設けられている場合に、シリアルデバッグインタフェースによってエミュレータ本体との信号のやり取りを行うように構成することができる。この場合、エミュレータ本体52においては、オンチップコントローラ17等が2系統設けられる。
【0058】
図12に示されるように、第1エミュレーションプロセッサ511、第2エミュレーションプロセッサ512と、エミュレータ本体512との接続関係を切り換可能にしても良い。すなわち、コントロール回路18を設け、エミュレーションバス24を、第1エミュレーションプロセッサ511と第2エミュレーションプロセッサ512との何れに接続するかはコントロール回路18によって制御される。セレクタ(SEL)19が設けられ、オンチップコントローラ17が選択的に第1エミュレーションプロセッサ511や第1エミュレーションプロセッサ512に接続される。上記セレクタ19は、コントロール回路18によって動作制御される。コントロール回路18の制御下で第1エミュレーションプロセッサ511とエミュレーションバス24との間のデータのやり取りが可能とされるとき、第2エミュレーションプロセッサ512は、エミュレーションバス24から切り放される。このとき、コントロール回路18の制御によりセレクタ19を介して第2エミュレーションプロセッサ512がオンチップコントローラ17に結合されることにより、第2エミュレーションプロセッサ512におけるオンチップデバッグが可能とされる。同様に、コントロール回路18の制御下で第2エミュレーションプロセッサ512とエミュレーションバス24との間のデータのやり取りが可能とされるとき、第1エミュレーションプロセッサ511は、エミュレーションバス24から切り放される。このとき、コントロール回路18の制御によりセレクタ19を介して第1エミュレーションプロセッサ511がオンチップコントローラ17に結合されることにより、第1エミュレーションプロセッサ511におけるオンチップデバッグが可能とされる。
【0059】
3個以上のマイクロプロセッサを有する場合においても、本発明を適用することができる。つまり、3個以上のマイクロプロセッサにおける一つを上位に設定し、その他の全てのマイクロプロセッサを下位に設定することにより、上記した例の場合と同様の作用効果を得ることができる。
【0060】
また、フォルト状態の解除要求信号はコントロールCPU11から発生させるようにしても良い。図13には、その場合の構成例が示される。この場合、3個のマイクロプロセッサ511,512,513のすべてがフォルトされた後に、コントロールCPU11から3個のマイクロプロセッサ511,512,513に供給されるフォルト解除要求信号がアサートされるように構成することができる。これにより、3個のマイクロプロセッサ511,512,513は、同時にフォルト状態が解除され、ユーザプログラムの同期実行が可能とされる。図14にはこの場合の具体的な構成が示される。第3エミュレーションプロセッサ513に対応して、それのオンチップデバッグを可能とするためのオンチップコントローラ141が設けられる。フォルト解除要求信号は、個々のエミュレーションプロセッサ511,512,513ではなく、コントロールCPU11によって形成される。
【0061】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0062】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロプロセッサに適用した場合について各種データ処理装置に広く適用することができる。
【0063】
本発明は、少なくともCPUを含むことを条件に適用することができる。
【0064】
【発明の効果】
すなわち、アンスタック後に中央処理装置を命令待ち状態に遷移させるためのフォルト信号をアサートし、上記中央処理装置の命令待ち状態で、その命令待ち状態の解除要求信号がアサートされることにより、上記中央処理装置の命令待ち状態を解除する制御手段とを含んでマイクロプロセッサが構成されることにより、中央処理装置の命令待ち状態で、その命令待ち状態の解除要求信号がアサートされて上記中央処理装置の命令待ち状態が解除される。それにより、異なるマイクロプロセッサを同期化させ、エミューションの並列化によりユーザシステムの開発効率の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明にかかるエミュレーションシステムにおけるエミュレータ本体の構成例ブロック図である。
【図2】上記エミュレータ本体に含まれるオンチップコントローラ17の構成例ブロック図である。
【図3】上記エミュレーションシステムで使用されるエミュレーションプロセッサの構成例ブロック図である。
【図4】上記エミュレーションプロセッサに含まれる通信用モジュールの構成例ブロック図である。
【図5】上記エミュレーションシステムの全体的な構成例説明図である。
【図6】上記エミュレーションプロセッサにおけるブレークモードからユーザモードへの復帰までのフローチャートである。
【図7】上記エミュレーションプロセッサにおけるブレークモードからユーザモードへの復帰までのタイミング図である。
【図8】上記エミュレーションシステムの別の構成例説明図である。
【図9】上記エミュレーションシステムの別の構成例説明図である。
【図10】上記エミュレーションシステムの別の構成例説明図である。
【図11】上記エミュレーションシステムの別の構成例説明図である。
【図12】上記エミュレーションシステムの別の構成例におけるエミュレータ本体の構成例ブロック図である。
【図13】上記エミュレーションシステムの別の構成例説明図である。
【図14】上記エミュレーションシステムの別の構成例におけるエミュレータ本体の構成例ブロック図である。
【符号の説明】
11 コントロールCPU
12 ブレーク回路
13 トレース回路
14 モニタ回路
15 ファームRAM
16 パフォーマンス回路
17 オンチップコントローラ
18 コントロール回路
19 セレクタ
21 インタフェース
23 コントロールバス
24 エミュレーションバス
211 シリアルデバッグインタフェース
211A 通信用モジュール
211B ファームRAM
211C ブレーク回路
211D トレースバッファ
212 RAM
213 CPU
214 バスコントローラ
215 周辺モジュール
216 エミュレーションコントローラ
216A 上位/下位レジスタ
216B ブレークスタックレジスタ
216C ブレーク制御回路
216D フォルト制御回路
217 オアゲート
511 第1エミュレーションプロセッサ
512 第2エミュレーションプロセッサ

Claims (5)

  1. 一つのパッケージ内に、それぞれオンチップデバックを実行可能な第1及び第2のマイクロプロセッサが搭載されて成るマイクロプロセッサシステムであって、
    1のマイクロプロセッサは、ユーザプログラムを実行可能な第1の中央処理装置と、予め設定されているブレーク条件が成立したことを判別してブレーク制御を行う第1ブレーク制御回路とを有し、
    前記第2のマイクロプロセッサは、ユーザプログラムを実行可能な第2の中央処理装置と、予め設定されているブレーク条件が成立したことを判別してブレーク制御を行う第2ブレーク制御回路とを有し、
    前記第1ブレーク制御回路及び第2ブレーク制御回路は、前記ブレーク条件が成立してブレークモードに移行したとき、ブレークモードを示す制御信号を出力可能とされ、
    前記第1のマイクロプロセッサ及び前記第2のマイクロプロセッサは、一方のマイクロプロセッサがブレークモードからの復帰の際に命令待ち状態になり、他方のマイクロプロセッサのブレークモードからの復帰の際に当該他方のマイクロプロセッサから出力される所定の信号に応じて前記一方のマイクロプロセッサの命令待ち状態が解除されることにより、ブレークモードからの復帰後のユーザプログラム実行開始時点での同期処理が可能とされて成ることを特徴とするマイクロプロセッサシステム。
  2. 前記第1及び第2のマイクロプロセッサは、前記ブレークモードに移行したとき、メモリに格納される所定のプログラムを実行することを特徴とする請求項記載のマイクロプロセッサシステム。
  3. 前記マイクロプロセッサシステムは、一台のエミュレータを接続可能であって、
    前記エミュレータは、前記ブレークモードに移行したときエミュレーション動作を制御することが可能であることを特徴とする請求項記載のマイクロプロセッサシステム。
  4. 前記第1及び第2の中央処理装置は、所定の命令を実行することで、前記ユーザモードへ移行するための復帰処理を行うことが可能であることを特徴とする請求項記載のマイクロプロセッサシステム。
  5. 前記第1及び第2の中央処理装置は、ブレークモードからの復帰の際に復帰命令を実行したとき、前記ブレークモードに移行するときに保持していたプログラムカウンタの値をアンスタックすることを特徴とする請求項記載のマイクロプロセッサシステム。
JP25877399A 1999-09-13 1999-09-13 マイクロプロセッサシステム Expired - Fee Related JP4084912B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25877399A JP4084912B2 (ja) 1999-09-13 1999-09-13 マイクロプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25877399A JP4084912B2 (ja) 1999-09-13 1999-09-13 マイクロプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2001084158A JP2001084158A (ja) 2001-03-30
JP4084912B2 true JP4084912B2 (ja) 2008-04-30

Family

ID=17324891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25877399A Expired - Fee Related JP4084912B2 (ja) 1999-09-13 1999-09-13 マイクロプロセッサシステム

Country Status (1)

Country Link
JP (1) JP4084912B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027828B2 (en) * 2006-05-31 2011-09-27 Cadence Design Systems, Inc. Method and apparatus for synchronizing processors in a hardware emulation system

Also Published As

Publication number Publication date
JP2001084158A (ja) 2001-03-30

Similar Documents

Publication Publication Date Title
JP4335999B2 (ja) プロセッサ内蔵半導体集積回路装置
JP2651916B2 (ja) インサーキット・エミュレータ
JP5536297B2 (ja) コ−デバッギング機能を支援する半導体集積回路および半導体集積回路テストシステム
JPH02287635A (ja) マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置
JPH07182204A (ja) 集積マイクロプロセッサ、コンピュータ開発システム、および集積プロセッサのテスト方法
US9678150B2 (en) Methods and circuits for debugging circuit designs
US20210133065A1 (en) Processor with debug pipeline
US10078113B1 (en) Methods and circuits for debugging data bus communications
JP2008507025A (ja) 集積回路テスト用エミュレーション及びデバッグインターフェイス
JP3003782B2 (ja) 開発支援装置
CN209765501U (zh) 一种基于jtag的多处理器仿真调试装置
JP4084912B2 (ja) マイクロプロセッサシステム
US7774190B1 (en) Sleep and stall in an in-circuit emulation system
US9581643B1 (en) Methods and circuits for testing partial circuit designs
JP2001249823A (ja) マイクロコンピュータ開発支援装置
JP4600134B2 (ja) マルチプロセッサシステム
JP2004094451A (ja) オンチップjtagインタフェース回路およびシステムlsi
JP2001350648A (ja) マイクロコンピュータ
CN207946806U (zh) 一种调试器和调试装置
KR20070035570A (ko) 에뮬레이션 및 디버그 시스템, 집적 회로 목표 장치 및에뮬레이션 방법
JP2001084161A (ja) データ処理装置
JP2010231818A (ja) デバッグシステム
JP2632891B2 (ja) システム開発装置
Sharma et al. Design of Generic Debug Infrastructure of SoC
JP2009193604A (ja) 半導体情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080218

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140222

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees