JP2012118769A - インサーキットエミュレータ - Google Patents

インサーキットエミュレータ Download PDF

Info

Publication number
JP2012118769A
JP2012118769A JP2010268078A JP2010268078A JP2012118769A JP 2012118769 A JP2012118769 A JP 2012118769A JP 2010268078 A JP2010268078 A JP 2010268078A JP 2010268078 A JP2010268078 A JP 2010268078A JP 2012118769 A JP2012118769 A JP 2012118769A
Authority
JP
Japan
Prior art keywords
peripheral
control circuit
circuit
register
request
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
JP2010268078A
Other languages
English (en)
Inventor
Takahiro Kobayashi
高広 小林
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 Electronics Corp
Original Assignee
Renesas Electronics 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 Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010268078A priority Critical patent/JP2012118769A/ja
Publication of JP2012118769A publication Critical patent/JP2012118769A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】エミュレーション時に、プログラム実行を停止させることなくレジスタ情報を外部に読み出し、且つ、エミュレーション対象と同じプログラム動作を実現すること。
【解決手段】インサーキットエミュレータは、プログラムを実行するプロセッサをエミュレートするメインプロセッサと、周辺機能をエミュレートする第1、第2周辺プロセッサと、外部と通信可能なエミュレーション制御回路と、アクセス制御回路と、を備える。第1周辺プロセッサは、メインプロセッサによってアクセスされる第1周辺レジスタを備え、第2周辺プロセッサは、第1周辺レジスタと内容が同期した第2周辺レジスタを備える。アクセス制御回路は、エミュレーション制御回路によって発行される読み出し要求に応答して、バイパス処理を実行する。そのバイパス処理において、アクセス制御回路は、第2周辺レジスタからデータを読み出し、当該読み出しデータをメインプロセッサを介することなくエミュレーション制御回路に出力する。
【選択図】図3

Description

本発明は、半導体集積回路のエミュレーションを行うインサーキットエミュレータに関する。
マイクロプロセッサ用のプログラムを解析・デバッグするために、一般的に、インサーキットエミュレータ(“In−Circuit Emulator”及び“ICE”は登録商標)が用いられている。近年、マイクロプロセッサが搭載される半導体集積回路に実装される機能も複雑になってきており、それら機能を制御するためのプログラムの量も増加している。そのため、インサーキットエミュレータを用いてプログラムをデバッグするための時間も増加している。
また、エミュレーションの最中にプログラム実行を途中で停止させると、周辺機器が破損する可能性があるようなシステムもある。例えば、モータ制御を行うシステムを考える。エミュレーションの最中にモータ制御用のプログラムの実行を途中で停止させた場合、モータの焼付き等のシステム障害が発生する可能性がある。
このようなことから、マイクロプロセッサによるプログラム実行を停止させることなく、マイクロプロセッサ内部の情報を外部から参照することができる技術が望まれる。
特許文献1(特開平7−93180号公報)に記載された技術によれば、マイクロプロセッサが命令実行する通常バスサイクルの間に、追加バスサイクルが挿入される。そして、この追加バスサイクルにおいて、マイクロプロセッサは、自身の内部状態を示す情報を外部メモリに出力する。これにより、マイクロプロセッサによるプログラム実行を停止させることなく、マイクロプロセッサ内部の情報を外部から参照することが可能となる。
図1は、特許文献1に記載されているエミュレータの構成を示すブロック図である。当該エミュレータは、状態監視機能を有するエミュレーション用のマイクロプロセッサ(MPU)1を備えている。更に、エミュレータは、マイクロプロセッサ1にエミュレーションバス2を介して接続された、エミュレーション制御部3、メモリ4、トレースメモリ5、ブレーク検出回路6、エミュレーションメモリ7、MPU内部情報レジスタ8、ユーザインタフェース部9、及びユーザインタフェースソケット10を備えている。エミュレータは、ユーザインタフェースソケット10を介して、ユーザシステム上のマイクロプロセッサ部(図示されない)に接続される。
また、ホストCPU11は、エミュレータ全体の動作を制御する。このホストCPU11は、システムバス12を介して、システムメモリ13及びI/Oインタフェース部14に接続されている。I/Oインタフェース部14には、マンマシンインタフェース用のCRT15及びディスク16が接続されている。
マイクロプロセッサ1は、エミュレーション対象のマイクロプロセッサと同等の機能を有する。また、マイクロプロセッサ1は、エミュレーション用に内部情報を出力する追加バスサイクルを示す内部情報出力ストローブ信号(/STR)17を出力する。この追加バスサイクルにおいて、マイクロプロセッサ1は、内部情報をエミュレーションバス2に出力する。このエミュレーション実行中のマイクロプロセッサ1の内部情報は、MPU内部情報レジスタ8に保持される。そして、ホストCPU11は、システムバス12を介してMPU内部情報レジスタ8にアクセス可能である。
図2は、図1で示されたエミュレータにおけるバスサイクル動作を示すタイミングチャートである。マイクロプロセッサ1の通常動作のバスサイクルでは、ストローブ信号(/AS)が出力される。それに対し、マイクロプロセッサ1の内部情報出力用の追加バスサイクルでは、ストローブ信号(/AS)は出力されず、その代わりに、内部情報出力ストローブ信号(/STR)17が出力される。出力される内部情報の内容は、マイクロプロセッサ1の内部の汎用レジスタ、ステータスレジスタ、内蔵周辺I/Oレジスタの内容である。その内部情報は、通常の命令、ライトデータ、リードデータ等の他のデータの場合と同様に、データ信号(Data)としてデータバスに出力される。また、その出力内容を示す出力内容コードが、アドレス信号(Address)としてアドレスバスに出力される。
特開平7−93180号公報
上述の特許文献1に記載された技術によれば、エミュレーション時、データライトサイクルあるいはデータリードサイクルと次命令のプログラムフェッチサイクルとの間に、内部情報出力用のバスサイクルが追加的に挿入されている。このエミュレーション時の動作は、エミュレーション対象のマイクロプロセッサの動作と異なっており、問題である。
本発明の1つの観点において、インサーキットエミュレータが提供される。そのインサーキットエミュレータは、プログラムを実行するプロセッサをエミュレートするメインプロセッサと、周辺機能をエミュレートする第1周辺プロセッサと、第1周辺プロセッサと同期して周辺機能をエミュレートする第2周辺プロセッサと、外部のホストマシンと通信するエミュレーション制御回路と、エミュレーション制御回路と第2周辺プロセッサとの間に介在するアクセス制御回路と、を備える。第1周辺プロセッサは、メインプロセッサによってアクセスされる第1周辺レジスタを備える。第2周辺プロセッサは、第1周辺レジスタと内容が同期した第2周辺レジスタを備える。アクセス制御回路は、エミュレーション制御回路によって発行される読み出し要求に応答して、バイパス処理を実行する。そのバイパス処理において、アクセス制御回路は、第2周辺レジスタに対する読み出し要求を第2周辺プロセッサに送信し、第2周辺レジスタから読み出される読み出しデータを受け取り、当該読み出しデータをメインプロセッサを介することなくエミュレーション制御回路に出力する。
本発明によれば、エミュレーション時に、プログラム実行を停止させることなく、周辺レジスタの内容を外部に読み出すことが可能である。更に、その読み出しを実現するために、メインプロセッサの通常バスサイクル間に、情報出力用の特別なバスサイクルを追加的に挿入する必要も無い。すなわち、エミュレーション対象のマイクロプロセッサによるプログラム動作と同じプログラム動作を、エミュレーション時に実現することが可能である。
図1は、特許文献1に記載されているエミュレータの構成を示すブロック図である。 図2は、図1に示されたエミュレータにおけるバスサイクル動作を示すタイミングチャートである。 図3は、本発明の実施の形態に係るインサーキットエミュレータの構成を示すブロック図である。 図4は、本発明の実施の形態におけるアクセス制御回路の構成例を示す回路図である。 図5は、本発明の実施の形態に係るインサーキットエミュレータの動作例を示すタイミングチャートである。 図6は、本発明の実施の形態に係るインサーキットエミュレータの動作例を説明するための回路図である。 図7は、本発明の実施の形態に係るインサーキットエミュレータの動作例を説明するための回路図である。 図8は、本発明の実施の形態に係るインサーキットエミュレータの動作例を説明するための回路図である。 図9は、本発明の実施の形態に係るインサーキットエミュレータの動作例を説明するための回路図である。
添付図面を参照して、本発明の実施の形態を説明する。
1.全体構成及び動作
図3は、本発明の実施の形態に係るインサーキットエミュレータ100の構成を示すブロック図である。このインサーキットエミュレータ100は、ホストマシン101、及びエミュレーション対象であるユーザシステム(図示されない)と接続される。ホストマシン101としては、ワークステーションやパーソナルコンピュータが例示される。開発者は、このホストマシン101を利用することにより、インサーキットエミュレータ100に対して種々のコマンドを送信し、また、インサーキットエミュレータ100から種々のデータを受信することができる。
図3に示されるように、インサーキットエミュレータ100は、CPUエバチップ(Evaluation Chip)103及び周辺エミュレータ104を備えている。
CPUエバチップ103は、ユーザシステムにおいてプログラムを実行するプロセッサ(CPU:Central Processing Unit)の動作をエミュレートする。つまり、CPUエバチップ103は、主動作を行う「メインプロセッサ」である。
一方、周辺エミュレータ104は、CPUの機能とは異なる周辺機能をエミュレートする。つまり、周辺エミュレータ104は、周辺機能の動作を行う「周辺プロセッサ」である。この周辺エミュレータ104は、周辺レジスタ117(第1周辺レジスタ)を備えている。後に説明されるように、この周辺レジスタ117は、CPUエバチップ103によりアクセスされる。
更に、本実施の形態に係るインサーキットエミュレータ100は、周辺エミュレータ104(第1周辺プロセッサ)の他に、周辺エミュレータ108(第2周辺プロセッサ)を備えている。この周辺エミュレータ108は、周辺エミュレータ104と同期して、同じ周辺機能のエミュレーションを行う。つまり、周辺エミュレータ104、108は、ペアを構成しており、互いに同期しながら動作する。周辺エミュレータ104と同様に、周辺エミュレータ108は周辺レジスタ118(第2周辺レジスタ)を備えている。後に説明されるように、周辺レジスタ118の内容は、周辺レジスタ117の内容と同期する。
より詳細には、インサーキットエミュレータ100は、図3に示されるように、エミュレーション制御回路102、CPUエバチップ103、周辺エミュレータ104、ユーザインタフェース105、バッファ106、アクセス制御回路107、周辺エミュレータ108、コントロールバス109、エミュレーションバス110、周辺アクセスバス111、ユーザインタフェースバス112、エミュレーションバス113及び周辺アクセスバス114を備えている。
エミュレーション制御回路102は、外部のホストマシン101と通信可能に接続されており、ホストマシン101からのコマンドに応じてエミュレーション動作を制御する。より詳細には、エミュレーション制御回路102は、コントロールバス109を介して、外部のホストマシン101に接続されている。また、エミュレーション制御回路102は、エミュレーションバス110を介して、CPUエバチップ103に接続されている。更に、エミュレーション制御回路102は、エミュレーションバス113を介して、アクセス制御回路107に接続されている。
エミュレーション制御回路102は、ホストマシン101からコントロールバス109を介してコマンドを受け取り、そのコマンドに応じたコマンドをエミュレーションバス110を介してCPUエバチップ103に送信する。そして、エミュレーション制御回路102は、エミュレーションバス110を介してCPUエバチップ103から処理結果を受け取り、その処理結果をコントロールバス109を介して外部のホストマシン101に出力する。また、エミュレーション制御回路102は、ホストマシン101からコントロールバス109を介してコマンドを受け取り、そのコマンドに応じた“読み出し要求”をエミュレーションバス113を介してアクセス制御回路107に送信する。そして、エミュレーション制御回路102は、エミュレーションバス113を介してアクセス制御回路107から処理結果を受け取り、その処理結果をコントロールバス109を介して外部のホストマシン101に出力する。
CPUエバチップ103は、エミュレーションバス110を介して、エミュレーション制御回路102に接続されている。また、CPUエバチップ103は、周辺アクセスバス111を介して、周辺エミュレータ104に接続されている。CPUエバチップ103は、エミュレーション制御回路102からエミュレーションバス110を介してコマンドを受け取り、そのコマンドに応じて周辺レジスタ117に対するアクセス要求(読み出し要求、書き込み要求)を周辺アクセスバス111を介して周辺エミュレータ104に送信する。そして、CPUエバチップ103は、周辺アクセスバス111を介して周辺エミュレータ104から処理結果を受け取り、その処理結果をエミュレーションバス110を介してエミュレーション制御回路102に出力する。
周辺エミュレータ104は、周辺アクセスバス111を介して、CPUエバチップ103に接続されている。また、周辺エミュレータ104は、ユーザインタフェースバス112を介して、ユーザインタフェース105に接続されている。周辺エミュレータ104は、CPUエバチップ103から周辺アクセスバス111を介して、周辺レジスタ117に対するアクセス要求(読み出し要求、書き込み要求)を受け取る。そのアクセス要求が書き込み要求の場合、周辺エミュレータ104は、周辺レジスタ117中の指定されたアドレスに書き込みデータを書き込む。一方、そのアクセス要求が読み出し要求の場合、周辺エミュレータ104は、周辺レジスタ117中の指定されたアドレスからデータを読み出し、当該読み出しデータを周辺アクセスバス111を介してCPUエバチップ103に出力する。また、周辺エミュレータ104は、ユーザインタフェースバス112を介して、ユーザインタフェース105に接続されるユーザシステムとデータのやりとりを行う。
ユーザインタフェース105は、エミュレーション対象であるユーザシステムと接続される。
周辺エミュレータ108は、周辺アクセスバス114を介して、アクセス制御回路107に接続されている。周辺エミュレータ108は、アクセス制御回路107から周辺アクセスバス114を介して、周辺レジスタ118に対するアクセス要求(読み出し要求、書き込み要求)を受け取る。そのアクセス要求が書き込み要求の場合、周辺エミュレータ108は、周辺レジスタ118中の指定されたアドレスに書き込みデータを書き込む。一方、そのアクセス要求が読み出し要求の場合、周辺エミュレータ108は、周辺レジスタ118中の指定されたアドレスからデータを読み出し、当該読み出しデータを周辺アクセスバス114を介してアクセス制御回路107に出力する。
また、周辺エミュレータ108は、ユーザインタフェースバス112を介して、ユーザインタフェース105に接続されている。但し、周辺エミュレータ108とユーザインタフェース105との間のユーザインタフェースバス112上には、バッファ106が設けられている。つまり、周辺エミュレータ108は、バッファ106を介して、ユーザインタフェース105と接続されている。このバッファ106は、ユーザシステムからユーザインタフェース105を通してユーザインタフェースバス112に入力されたデータを、周辺エミュレータ108に転送する。これにより、周辺エミュレータ108は周辺エミュレータ104と同期する。その一方で、バッファ106は、周辺エミュレータ108からユーザインタフェース105へのデータの流れを遮断する“遮断回路”としても機能する。これにより、周辺エミュレータ108からユーザシステムへの出力信号が、周辺エミュレータ104からユーザシステムへの出力信号と衝突することが防止される。
アクセス制御回路107は、エミュレーション制御回路102と周辺エミュレータ108との間に介在している。具体的には、アクセス制御回路107は、エミュレーションバス113を介して、エミュレーション制御回路102に接続されている。また、アクセス制御回路107は、周辺アクセスバス114を介して、周辺エミュレータ108に接続されている。
このアクセス制御回路107は、周辺エミュレータ108に対するアクセスを制御する。より詳細には、まず、エミュレーション制御回路102が、周辺レジスタ118に対する読み出し要求を、エミュレーションバス113を介してアクセス制御回路107に送信する。その読み出し要求に応答して、アクセス制御回路107は、周辺レジスタ118に対する読み出し要求を、周辺アクセスバス114を介して周辺エミュレータ108に送信する。その読み出し要求に応答して、周辺エミュレータ108は、周辺レジスタ118中の指定されたアドレスからデータを読み出し、当該読み出しデータを周辺アクセスバス114を介してアクセス制御回路107に出力する。アクセス制御回路107は、周辺レジスタ118から読み出された読み出しデータを受け取り、当該読み出しデータをエミュレーションバス113を介してエミュレーション制御回路102に出力する。
ここで、周辺レジスタ118から読み出された読み出しデータは、プログラムを実行するCPUエバチップ103を介することなく、エミュレーション制御回路102に伝達されていることに留意されたい。また、周辺レジスタ118の内容は、周辺レジスタ117の内容と同期していることに留意されたい。すなわち、エミュレーション制御回路102は、プログラムを実行するCPUエバチップ103を介することなく、周辺レジスタ117の値を読み出し可能である。言い換えれば、CPUエバチップ103によるプログラム実行を停止させることなく、また、CPUエバチップ103のバスサイクルに情報出力用の特別なバスサイクルを追加することなく、周辺レジスタ値を外部に読み出すことが可能である。
エミュレーション制御回路102と周辺エミュレータ108との間に介在するアクセス制御回路107は、周辺レジスタ値の読み出しに関して“バイパス”を提供していると言える。その意味で、エミュレーション制御回路102によって発行される読み出し要求に応答して実行される上記処理は、以下「バイパス処理」と参照される。バイパス処理において、アクセス制御回路107は、周辺レジスタ118に対する読み出し要求を、周辺アクセスバス114を介して周辺エミュレータ108に送信する。更に、アクセス制御回路107は、周辺レジスタ118から読み出された読み出しデータを、周辺アクセスバス114を介して周辺エミュレータ108から受け取る。そして、アクセス制御回路107は、当該読み出しデータを、CPUエバチップ103を介することなく、エミュレーション制御回路102に出力する。このようなバイパス処理により、CPUエバチップ103によるプログラム実行を停止させることなく、また、CPUエバチップ103のバスサイクルに情報出力用の特別なバスサイクルを追加することなく、周辺レジスタ値を外部に読み出すことが可能である。
但し、バイパス処理以外の要求により周辺アクセスバス114が使用されている場合、バイパス処理を実行することはできない。例えば、CPUエバチップ103から周辺レジスタ117に対する書き込み要求が発行されている場合、周辺レジスタ117、118を互いに同期させるために、周辺レジスタ118にも同じ書き込み処理を実行する必要がある。周辺アクセスバス114を用いて周辺レジスタ118に対して書き込み処理を実行する必要があるため、その間、バイパス処理を実行することはできない。
従って、本実施の形態によれば、アクセス制御回路107は、周辺アクセスバス114の使用状況に応じて、バイパス処理の可否を決定する。周辺アクセスバス114の使用状況を把握するために、CPUエバチップ103によって発行される周辺レジスタ117に対するアクセス要求(例えば書き込み要求)の状況をモニタすることが考えられる。そのために、図3に示されるように、アクセス制御回路107は、周辺レジスタ117に対するアクセス要求が出力される周辺アクセスバス111にも接続されている。そして、アクセス制御回路107は、周辺レジスタ117に対するアクセス要求の有無及び内容に応じて、バイパス処理の実行可否を決定する。以下、具体的なケースを説明する。
まず、CPUエバチップ103が周辺レジスタ117に対して書き込み要求を発行する場合を考える。アクセス制御回路107は、周辺アクセスバス111から当該書き込み要求を受け取る。この場合、周辺レジスタ118の内容を周辺レジスタ117と同期させる必要があるため、アクセス制御回路107は、周辺レジスタ118に対する書き込み処理を実行する。具体的には、アクセス制御回路107は、周辺レジスタ117に対する書き込み要求と同じものを、周辺アクセスバス114を介して周辺エミュレータ108に送信する。当該書き込み要求に応答して、周辺エミュレータ108は、周辺レジスタ118中の指定されたアドレスに書き込みデータを書き込む。このようにして、周辺レジスタ117、118中の同じアドレスに、同じ書き込みデータが書き込まれる。その結果、周辺レジスタ117、118が互いに同期する。
この書き込み処理によって周辺アクセスバス114が使用されるため、その間、バイパス処理を実行することはできない。従って、CPUエバチップ103が周辺レジスタ117に対する書き込み要求を発行した場合、アクセス制御回路107は、バイパス処理を禁止する。更に、アクセス制御回路107は、読み出し要求の発行を禁止する「読み出し保留要求」を、エミュレーションバス113を介してエミュレーション制御回路102に出力する。読み出し保留要求を受け取っている間、エミュレーション制御回路102は、周辺レジスタ118に対する読み出し要求を発行しない。従って、バイパス処理が実行されなくなる。
次に、CPUエバチップ103が周辺レジスタ117に対して「特殊読み出し要求」を発行する場合を考える。ここで、特殊読み出し要求とは、読み出し処理によって記憶値が変化するようなレジスタ領域に対する読み出し要求である。この場合も周辺レジスタ117の値が変化してしまうため、周辺レジスタ118をそれに同期させる必要がある。アクセス制御回路107は、周辺アクセスバス111から当該特殊読み出し要求を受け取ると、周辺レジスタ118に対して特殊読み出し処理を実行する。具体的には、アクセス制御回路107は、周辺レジスタ117に対する特殊読み出し要求と同じものを、周辺アクセスバス114を介して周辺エミュレータ108に送信する。当該特殊読み出し要求に応答して、周辺エミュレータ108は、周辺レジスタ118中の指定されたアドレスからデータを読み出す。このようにして、周辺レジスタ117、118中の同じアドレスからデータが読み出さる。その結果、周辺レジスタ117、118が互いに同期する。
この特殊読み出し処理によって周辺アクセスバス114が使用されるため、その間、バイパス処理を実行することはできない。従って、CPUエバチップ103が周辺レジスタ117に対する特殊読み出し要求を発行した場合、アクセス制御回路107は、バイパス処理を禁止する。更に、アクセス制御回路107は、読み出し要求の発行を禁止する「読み出し保留要求」を、エミュレーションバス113を介してエミュレーション制御回路102に出力する。読み出し保留要求を受け取っている間、エミュレーション制御回路102は、周辺レジスタ118に対する読み出し要求を発行しない。従って、バイパス処理が実行されなくなる。
次に、CPUエバチップ103が周辺レジスタ117に対して通常の読み出し要求(上記特殊読み出し要求以外の読み出し要求)を発行する場合を考える。この場合、周辺レジスタ117の内容は書き換えられないため、周辺レジスタ118の内容も書き換える必要はない。周辺アクセスバス114が空くため、アクセス制御回路107は、周辺アクセスバス114を利用したバイパス処理を許可する。つまり、周辺レジスタ117に対して通常の読み出し要求が発行されている期間、アクセス制御回路107は、バイパス処理を許可する。
アクセス制御回路107は、周辺レジスタ117に対する読み出し要求を周辺アクセスバス111から受け取るが、それを無視する。その一方で、エミュレーション制御回路102から周辺レジスタ118に対する読み出し要求を受け取った場合、アクセス制御回路107は、バイパス処理を実行する。このように、CPUエバチップ103が周辺レジスタ117を読み出している期間であっても、エミュレーション制御回路102は、周辺レジスタ117と同じ値である周辺レジスタ118を読み出すことで、周辺レジスタ117の値を得ることができる。
次に、CPUエバチップ103から周辺レジスタ117に対するアクセス要求が発行されていない期間を考える。この期間は、CPUエバチップ103が演算を実行している期間に相当する。この場合においても、周辺アクセスバス114が空くため、アクセス制御回路107は、周辺アクセスバス114を利用したバイパス処理を許可する。エミュレーション制御回路102から周辺レジスタ118に対する読み出し要求を受け取った場合、アクセス制御回路107は、バイパス処理を実行する。このように、CPUエバチップ103が演算実行中であっても、エミュレーション制御回路102は、周辺レジスタ117と同じ値である周辺レジスタ118を読み出すことで、周辺レジスタ117の値を得ることができる。
以上に説明されたように、本実施の形態に係るインサーキットエミュレータ100は、バイパス処理の機能を備えている。これにより、エミュレーション時に、CPUエバチップ103によるプログラム実行を停止させることなく、周辺レジスタの内容を外部に読み出すことが可能である。更に、その読み出しを実現するために、CPUエバチップ103の通常バスサイクル間に、情報出力用の特別なバスサイクルを追加的に挿入する必要も無い。すなわち、エミュレーション対象のマイクロプロセッサによるプログラム動作と同じプログラム動作を、エミュレーション時に実現することが可能である。
2.アクセス制御回路の構成例
次に、上述のアクセス制御回路107の機能を実現するための回路構成の一例を説明する。図4は、本実施の形態におけるアクセス制御回路107の構成例を示す回路図である。まず、アクセス制御回路107につながる各バスの信号構成を説明する。
CPUエバチップ103に接続された周辺アクセスバス111の信号構成は、次の通りである。
・周辺レジスタ117中のアクセス対象アドレスを示す「Address」
・Addressが有効である期間を示す「Address−state」
・周辺レジスタ117への書き込みデータ、または、周辺レジスタ117からの読み出しデータである「Data」
・Dataが有効である期間を示す「Data−state」
・周辺レジスタ117に対するアクセス要求が読み出し要求か書き込み要求を示す「RW−state」(RW−state=“0”が読み出し要求を意味し、RW−state=“1”が書き込み要求を意味する。)
・特殊読み出し要求か否かを示す「Exception−state」(Exception−state=“1(Active)”が特殊読み出し要求を意味し、Exception−state=“0”が通常読み出し要求を意味する。)
エミュレーション制御回路102に接続されたエミュレーションバス113の信号構成は、次の通りである。
・周辺レジスタ118中のアクセス対象アドレスを示す「ADDREM」
・ADDREMが有効である期間を示す「ADDREM−state」
・周辺レジスタ118からの読み出しデータである「DATAEM」
・DATAEMが有効である期間を示す「DATAEM−state」
・読み出し保留要求を示す「EMWAIT」(EMWAIT=“1”が読み出し保留要求の活性化を意味する。)
周辺エミュレータ108に接続された周辺アクセスバス114の信号構成は、次の通りである。
・周辺レジスタ118中のアクセス対象アドレスを示す「ADDREM2」
・ADDREM2が有効である期間を示す「ADDREM2−state」
・周辺レジスタ118への書き込みデータ、または、周辺レジスタ118からの読み出しデータである「DATAEM2」
・DATAEM2が有効である期間を示す「DATAEM2−state」
・周辺レジスタ118に対するアクセス要求が読み出し要求か書き込み要求を示す「RWEM−state」(RWEM−state=“0”が読み出し要求を意味し、RWEM−state=“1”が書き込み要求を意味する。)
図4に示される例において、アクセス制御回路107は、OR回路201、AND回路202、203、スイッチ回路204、OR回路205、206、及びスイッチ回路207を備えている。
OR回路201には、「Exception−state」及び「RW−state」が入力される。特殊読み出し要求(Exception−state=“1”)あるいは書き込み要求(RW−state=“1”)の場合、OR回路201は“1”を出力する。
AND回路202には、OR回路201の出力信号及び「Address−state」が入力される。OR回路201の出力信号=“1”、且つ、Address−state=“1”の場合、AND回路202は“1”を出力する。このAND回路202の出力信号が、読み出し保留要求(EMWAIT)として用いられる。読み出し保留要求が活性化される(EMWAIT=“1”)のは、少なくともOR回路201の出力信号が“1”になる特殊読み出し要求あるいは書き込み要求の場合に限られる。それ以外の場合、読み出し保留要求は非活性(EMWAIT=“0”)のままである。
AND回路203には、OR回路201の出力信号及び「Data−state」が入力される。
スイッチ回路204には、「Address」、「ADDREM」、及びAND回路202の出力信号が入力される。スイッチ回路204は、AND回路202の出力信号に応じて「Address」あるいは「ADDREM」のいずれか一方を選択し、選択した一方を「ADDERM2」として出力する。
OR回路205には、「Address−state」及び「ADDREM−state」が入力される。OR回路205は、「ADDREM2−state」を出力する。
OR回路206には、AND回路203の出力信号及び「DATAEM−state」が入力される。OR回路206は、「DATAEM2−state」を出力する。
スイッチ回路207には、「RW−state」が入力される。スイッチ回路207は、「RW−state」に応じて、「Data」、「DATAEM」、及び「DATAEM2」間の接続を制御する。具体的には、読み出し要求(RW−state=“0”)の場合、スイッチ回路207は、周辺レジスタ118からの読み出しデータ「DATAEM2」を「DATAEM」として出力する。一方、書き込み要求(RW−state=“1”)の場合、スイッチ回路207は、CPUエバチップ103からの書き込みデータ「Data」を、周辺レジスタ118に対する書き込みデータ「DATAEM2」として出力する。
また、「RW−state」がそのまま「RWEM−state」として出力される。
3.動作例
次に、図4で示された構成のアクセス制御回路107の動作例を説明する。図5は、動作例を示すタイミングチャートである。図5には、期間TW0〜TW7における各信号の状態が示されている。
3−1.CPUエバチップ103による演算期間(TW0、TW2、TW5、TW6)
期間TW0、TW2、TW5及びTW6において、CPUエバチップ103は演算を実行しており、CPUエバチップ103から周辺レジスタ117に対するアクセス要求は発行されない。図6は、これら期間において実施されるバイパス処理を概念的に示している。図5及び図6を参照して、これら期間において実施されるバイパス処理を説明する。尚、図6において、太線は、活性化される信号を表している。
エミュレーション制御回路102は、周辺レジスタ118に対する読み出し要求をエミュレーションバス113に出力する。これにより、「ADDREM」及び「ADDREM−state」が活性化される。その一方で、「Exception−state」及び「RW−state」は共に非活性(“0”)のままであり、AND回路202の出力信号は“0”となる。この場合、スイッチ回路204は、「ADDREM」を選択し、その「ADDREM」を「ADDREM2」として出力する。すなわち、「ADDREM2」は「ADDREM」と同じになる。また、「ADDREM2−state」は「ADDREM−state」と同じになる。また、「DATAEM2−state」は「DATAEM−state」と同じになる。このように、エミュレーションバス113を介してエミュレーション制御回路102から受け取った読み出し要求と同じものが、周辺アクセスバス114を介して周辺エミュレータ108に送られる。
周辺エミュレータ108は、「ADDREM2」、「ADDREM2−state」、「DATAEM2−satate」及び「RWEM−state=“0”」に基づいて、読み出し処理を実行する。具体的には、周辺エミュレータ108は、周辺レジスタ118中の「ADDREM2」で指定されるアドレスからデータを読み出す。「DATAEM2−state」が活性化されると、読み出しデータ「DATAEM2」が、周辺アクセスバス114を介してアクセス制御回路107に送られる。「RW−state」が非活性(“0”)であるため、スイッチ回路207は、読み出しデータ「DATAEM2」を「DATAEM」としてエミュレーション制御回路102に出力する。このようにして、バイパス処理が実現される。
3−2.通常読み出し期間(TW1)
期間TW1において、CPUエバチップ103は、周辺レジスタ117に対して通常の読み出し要求を発行する。図7は、この期間TW1において実施されるバイパス処理を概念的に示している。図5及び図7を参照して、この期間TW1において実施されるバイパス処理を説明する。尚、図7において、太線は、活性化される信号を表している。
CPUエバチップ103は、周辺レジスタ117に対する読み出し要求を周辺アクセスバス111に出力する。これにより、「Address」及び「Address−state」が活性化される。但し、「Exception−state」及び「RW−state」は共に非活性(“0”)のままであり、AND回路202の出力信号は“0”となる。この場合、スイッチ回路204は、CPUエバチップ103からの「Address」を選択しない。すなわち、アクセス制御回路107は、CPUエバチップ103からの読み出し要求を無視する。尚、周辺エミュレータ104は、CPUエバチップ103からの読み出し要求に応答して、周辺レジスタ117からデータ読み出しを実施することに留意されたい。
その一方で、エミュレーション制御回路102は、周辺レジスタ118に対する読み出し要求をエミュレーションバス113に出力する。これにより、「ADDREM」及び「ADDREM−state」が活性化される。スイッチ回路204は、「ADDREM」を選択し、その「ADDREM」を「ADDREM2」として出力する。すなわち、「ADDREM2」は「ADDREM」と同じになる。また、「ADDREM2−state」は「ADDREM−state」と同じになる。また、「DATAEM2−state」は「DATAEM−state」と同じになる。このように、エミュレーションバス113を介してエミュレーション制御回路102から受け取った読み出し要求と同じものが、周辺アクセスバス114を介して周辺エミュレータ108に送られる。
周辺エミュレータ108は、「ADDREM2」、「ADDREM2−state」、「DATAEM2−satate」及び「RWEM−state=“0”」に基づいて、読み出し処理を実行する。具体的には、周辺エミュレータ108は、周辺レジスタ118中の「ADDREM2」で指定されるアドレスからデータを読み出す。「DATAEM2−state」が活性化されると、読み出しデータ「DATAEM2」が、周辺アクセスバス114を介してアクセス制御回路107に送られる。「RW−state」が非活性(“0”)であるため、スイッチ回路207は、読み出しデータ「DATAEM2」を「DATAEM」としてエミュレーション制御回路102に出力する。このようにして、バイパス処理が実現される。
3−3.特殊読み出し期間(TW3)
期間TW3において、CPUエバチップ103は、周辺レジスタ117に対して特殊読み出し要求を発行する。図8は、この期間TW3における状況を概念的に示している。図5及び図8を参照して、期間TW3における処理を説明する。尚、図8において、太線は、活性化される信号を表している。
CPUエバチップ103は、周辺レジスタ117に対する特殊読み出し要求を周辺アクセスバス111に出力する。これにより、「Address」及び「Address−state」が活性化される。また、「Exception−state」が活性化(“1”)されるため、AND回路202の出力信号は“1”となる。この場合、スイッチ回路204は、「Address」を選択し、その「Address」を「ADDREM2」として出力する。すなわち、「ADDREM2」は「Address」と同じになる。また、「ADDREM2−state」は「Address−state」と同じになる。また、「DATAEM2−state」は「Data−state」と同じになる。このように、周辺アクセスバス111を介してCPUエバチップ103から受け取った読み出し要求と同じものが、周辺アクセスバス114を介して周辺エミュレータ108に送られる。
また、AND回路202の出力信号が“1”であるため、読み出し保留要求が活性化される(EMWAIT=“1”)。アクセス制御回路107は、その読み出し保留要求EMWAITを、エミュレーションバス113を介してエミュレーション制御回路102に出力する。この場合、エミュレーション制御回路102は、周辺レジスタ108に対する読み出し要求を発行しない。すなわち、バイパス処理は実行されない。
周辺エミュレータ108は、「ADDREM2」、「ADDREM2−state」、「DATAEM2−satate」及び「RWEM−state=“0”」に基づいて、読み出し処理を実行する。具体的には、周辺エミュレータ108は、周辺レジスタ118中の「ADDREM2」で指定されるアドレスからデータを読み出す。「DATAEM2−state」が活性化されると、読み出しデータ「DATAEM2」が、周辺アクセスバス114を介してアクセス制御回路107に送られる。「RW−state」が非活性(“0”)であるため、スイッチ回路207は、読み出しデータ「DATAEM2」を「DATAEM」としてエミュレーション制御回路102に出力する。但し、エミュレーション制御回路102はEMWAITにより読み出し保留中であるので、「DATAEM」は無視される。
尚、周辺エミュレータ104は、CPUエバチップ103からの特殊読み出し要求に応答して、周辺レジスタ117からデータ読み出しを実施する。このように、周辺レジスタ117及び118に対して共通の特殊読み出し処理が実施される。その結果、周辺レジスタ117及び118が互いに同期する。
3−4.書き込み期間(TW4、TW7)
期間TW4及びTW7において、CPUエバチップ103は、周辺レジスタ117に対して書き込み要求を発行する。図9は、これら書き込み期間における状況を概念的に示している。図5及び図9を参照して、書き込み期間における処理を説明する。尚、図9において、太線は、活性化される信号を表している。
CPUエバチップ103は、周辺レジスタ117に対する書き込み要求を周辺アクセスバス111に出力する。これにより、「Address」及び「Address−state」が活性化される。また、「RW−state」が活性化(“1”)されるため、AND回路202の出力信号は“1”となる。この場合、スイッチ回路204は、「Address」を選択し、その「Address」を「ADDREM2」として出力する。すなわち、「ADDREM2」は「Address」と同じになる。また、「ADDREM2−state」は「Address−state」と同じになる。また、「DATAEM2−state」は「Data−state」と同じになる。また、「RW−state」が活性化(“1”)されるため、スイッチ回路207は、CPUエバチップ103からの書き込みデータ「Data」を、周辺レジスタ118に対する書き込みデータ「DATAEM2」として出力する。このように、周辺アクセスバス111を介してCPUエバチップ103から受け取った書き込み要求と同じものが、周辺アクセスバス114を介して周辺エミュレータ108に送られる。
また、AND回路202の出力信号が“1”であるため、読み出し保留要求が活性化される(EMWAIT=“1”)。アクセス制御回路107は、その読み出し保留要求EMWAITを、エミュレーションバス113を介してエミュレーション制御回路102に出力する。この場合、エミュレーション制御回路102は、周辺レジスタ108に対する読み出し要求を発行しない。すなわち、バイパス処理は実行されない。
周辺エミュレータ108は、「ADDREM2」、「ADDREM2−state」、「DATAEM2−satate」、「DATAEM2」及び「RWEM−state=“1”」に基づいて、書き込み処理を実行する。具体的には、「DATAEM2−state」が活性化されると、周辺エミュレータ108は、周辺レジスタ118中の「ADDREM2」で指定されるアドレスに書き込みデータ「DATAEM2」を書き込む。
尚、周辺エミュレータ104は、CPUエバチップ103からの書き込み要求に応答して、周辺レジスタ117に対してデータ書き込みを実施する。このように、周辺レジスタ117及び118に対して共通のデータ書き込み処理が実施される。その結果、周辺レジスタ117及び118が互いに同期する。
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
100 インサーキットエミュレータ
101 ホストマシン
102 エミュレーション制御回路
103 CPUエバチップ(メインプロセッサ)
104 周辺エミュレータ(第1周辺プロセッサ)
105 ユーザインタフェース
106 バッファ
107 アクセス制御回路
108 周辺エミュレータ(第2周辺プロセッサ)
109 コントロールバス
110 エミュレーションバス
111 周辺アクセスバス
112 ユーザインタフェースバス
113 エミュレーションバス
114 周辺アクセスバス
117 周辺レジスタ(第1周辺レジスタ)
118 周辺レジスタ(第2周辺レジスタ)

Claims (8)

  1. プログラムを実行するプロセッサをエミュレートするメインプロセッサと、
    周辺機能をエミュレートする第1周辺プロセッサと、
    前記第1周辺プロセッサと同期して前記周辺機能をエミュレートする第2周辺プロセッサと、
    外部のホストマシンと通信するエミュレーション制御回路と、
    前記エミュレーション制御回路と前記第2周辺プロセッサとの間に介在するアクセス制御回路と
    を備え、
    前記第1周辺プロセッサは、前記メインプロセッサによってアクセスされる第1周辺レジスタを備え、
    前記第2周辺プロセッサは、前記第1周辺レジスタと内容が同期した第2周辺レジスタを備え、
    前記アクセス制御回路は、前記エミュレーション制御回路によって発行される読み出し要求に応答して、バイパス処理を実行し、
    前記バイパス処理において、前記アクセス制御回路は、前記第2周辺レジスタに対する読み出し要求を前記第2周辺プロセッサに送信し、前記第2周辺レジスタから読み出される読み出しデータを受け取り、前記読み出しデータを前記メインプロセッサを介することなく前記エミュレーション制御回路に出力する
    インサーキットエミュレータ。
  2. 請求項1に記載のインサーキットエミュレータであって、
    前記メインプロセッサは、前記第1周辺レジスタに対するアクセス要求である第1アクセス要求を、第1周辺アクセスバスを介して前記第1周辺プロセッサに送信し、
    前記アクセス制御回路は、前記第1周辺アクセスバスにも接続されており、前記第1アクセス要求の有無及び内容に応じて前記バイパス処理の可否を決定する
    インサーキットエミュレータ。
  3. 請求項2に記載のインサーキットエミュレータであって、
    前記第1アクセス要求が発行されていない期間、前記アクセス制御回路は、前記バイパス処理を許可する
    インサーキットエミュレータ。
  4. 請求項2又は3に記載のインサーキットエミュレータであって、
    読み出し処理によって記憶値が変化するようなレジスタ領域に対する読み出し要求は、特殊読み出し要求であり、
    前記第1アクセス要求が前記特殊読み出し要求以外の読み出し要求である期間、前記アクセス制御回路は、前記バイパス処理を許可する
    インサーキットエミュレータ。
  5. 請求項4に記載のインサーキットエミュレータであって、
    前記第1アクセス要求が前記特殊読み出し要求である場合、前記アクセス制御回路は、前記バイパス処理を禁止し、且つ、前記特殊読み出し要求を前記第2周辺プロセッサに送信し、
    前記第2周辺プロセッサは、前記特殊読み出し要求に応答して、前記第2周辺レジスタ中の指定アドレスからデータを読み出す
    インサーキットエミュレータ。
  6. 請求項2乃至5のいずれか一項に記載のインサーキットエミュレータであって、
    前記第1アクセス要求が書き込み要求である場合、前記アクセス制御回路は、前記バイパス処理を禁止し、且つ、前記書き込み要求を前記第2周辺プロセッサに送信し、
    前記第2周辺プロセッサは、前記書き込み要求に応答して、前記第2周辺レジスタ中の指定アドレスに書き込みデータを書き込む
    インサーキットエミュレータ。
  7. 請求項5又は6に記載のインサーキットエミュレータであって、
    前記バイパス処理が禁止されている期間、前記アクセス制御回路は、前記読み出し要求の発行を禁止する読み出し保留要求を、前記エミュレーション制御回路に出力する
    インサーキットエミュレータ。
  8. 請求項1乃至7のいずれか一項に記載のインサーキットエミュレータであって、
    更に、ユーザシステムと接続されるユーザインタフェースを備え、
    前記第1周辺プロセッサは、前記ユーザインタフェースと接続され、
    前記第2周辺プロセッサは、遮断回路を介して、前記ユーザインタフェースと接続され、
    前記遮断回路は、前記第2周辺プロセッサから前記ユーザインタフェースへのデータの流れを遮断する
    インサーキットエミュレータ。
JP2010268078A 2010-12-01 2010-12-01 インサーキットエミュレータ Withdrawn JP2012118769A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010268078A JP2012118769A (ja) 2010-12-01 2010-12-01 インサーキットエミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010268078A JP2012118769A (ja) 2010-12-01 2010-12-01 インサーキットエミュレータ

Publications (1)

Publication Number Publication Date
JP2012118769A true JP2012118769A (ja) 2012-06-21

Family

ID=46501513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010268078A Withdrawn JP2012118769A (ja) 2010-12-01 2010-12-01 インサーキットエミュレータ

Country Status (1)

Country Link
JP (1) JP2012118769A (ja)

Similar Documents

Publication Publication Date Title
EP2787444B1 (en) Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
JP3210466B2 (ja) Cpuコア、該cpuコアを有するasic、及び該asicを備えたエミュレーションシステム
US8464032B2 (en) Microprocessor integrated circuit with first processor that outputs debug information in response to reset by second processor of the integrated circuit
JP2651916B2 (ja) インサーキット・エミュレータ
KR101019209B1 (ko) 임베디드 소프트웨어의 인터페이스 자동 추출 장치 및 그방법
JPH011039A (ja) インサーキット・エミュレータ
US9558086B2 (en) System on chip with debug controller and operating method thereof
US20110185153A1 (en) Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US9529686B1 (en) Error protection for bus interconnect circuits
EP0902367B1 (en) Data processing unit with debug capabilities
JP4409349B2 (ja) デバッグ回路およびデバッグ制御方法
US20090259899A1 (en) Method and apparatus for automatic scan completion in the event of a system checkstop
US20090063907A1 (en) Debugging system, debugging apparatus and method
US6968410B2 (en) Multi-threaded processing of system management interrupts
US8108586B2 (en) Multi-core data processor
US20070294583A1 (en) Device and Method for Analyzing Embedded Systems for Safety-Critical Computer Systems in Motor Vehicles
US7418631B2 (en) Program-controlled unit
JP2012118769A (ja) インサーキットエミュレータ
JP2006293824A (ja) 半導体装置
JP2012163995A (ja) 情報処理装置
JP2010231607A (ja) エミュレータ
JP2006146412A (ja) マルチコアプロセッサ及びデバッグ方法
TWI794997B (zh) 固態硬碟裝置的除錯方法及裝置以及電腦程式產品
CN106598755B (zh) 一种处理器及dcc通信系统
US9342359B2 (en) Information processing system and information processing method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140204