JP2012190137A - エミュレータ装置 - Google Patents

エミュレータ装置 Download PDF

Info

Publication number
JP2012190137A
JP2012190137A JP2011051538A JP2011051538A JP2012190137A JP 2012190137 A JP2012190137 A JP 2012190137A JP 2011051538 A JP2011051538 A JP 2011051538A JP 2011051538 A JP2011051538 A JP 2011051538A JP 2012190137 A JP2012190137 A JP 2012190137A
Authority
JP
Japan
Prior art keywords
branch
trace
branch instruction
instruction
address
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
JP2011051538A
Other languages
English (en)
Other versions
JP5722086B2 (ja
Inventor
Hiroshi Yamazaki
博 山崎
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.)
Lapis Semiconductor Co Ltd
Original Assignee
Lapis Semiconductor 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 Lapis Semiconductor Co Ltd filed Critical Lapis Semiconductor Co Ltd
Priority to JP2011051538A priority Critical patent/JP5722086B2/ja
Publication of JP2012190137A publication Critical patent/JP2012190137A/ja
Application granted granted Critical
Publication of JP5722086B2 publication Critical patent/JP5722086B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】プログラムデバッグに不要なトレース情報を排除して、トレースメモリのメモリ領域を効率的に使用できるエミュレータ装置を提供する。
【解決手段】プログラムの実行前、命令コード解析回路70に分岐トレースの対象外とする分岐命令の種類を設定する。マイクロプロセッサによるプログラムの実行開始後、マイクロプロセッサの実行する命令コードが、設定した種類の分岐命令と一致した場合、トレースデータ生成回路30には分岐命令トレースデータ生成信号205が出力されず、トレースデータ202が生成されない。その結果、トレース対象外とした分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリ50への格納が禁止される。
【選択図】図1

Description

本発明はエミュレータ装置に係り、特に、分岐トレース機能を有するオンチップ・エミュレータ等のエミュレータ装置に関するものである。
オンチップ・エミュレータ(On-chip emulator)は、基板上にマイクロプロセッサ(MPU)を実装した状態(on-chip)でプログラムのデバッグを行うための装置として使用される。オンチップ・エミュレータの機能のうちトレース機能は、プログラムのどのアドレス(番地)をどのような順序で実行したかという実行履歴をトレースメモリに残すことができ、開発中のプログラムのデバッグを行う上で有効な機能である。
従来のオンチップ・エミュレータでは、トレース機能において、トレースメモリに格納するトレースデータ容量を大幅に圧縮する方法として、分岐トレース手法を用いていた。この分岐トレース手法は、分岐命令、又は割り込み以外のプログラムが実行されると、実行アドレスが「1」ずつ増加することを利用して、分岐命令が実行された分岐元アドレスと、その分岐先である分岐先アドレスのみをトレースメモリに格納することによって、実行履歴を再現する手法である。
図4は、従来のエミュレータ装置の構成を示すブロック図である。図4に示すエミュレータ装置200において、CPU(中央処理装置)100は、実行すべき命令が格納されたプログラムメモリ160に対して、プログラムをフェッチ、デコード、または実行するアドレス301を出力する。そして、CPU100は、プログラムメモリ160から出力される、アドレス301に対応した命令コード306を実行する。この命令コード306が分岐命令ではない場合、アドレス301は「1」ずつ増加する。
一方、命令コード306が分岐命令であれば、CPU100は、その分岐命令がデコードされるタイミングに分岐タイミング信号303を出力する。また、CPU100は、その分岐命令が実行されるタイミングに分岐命令実行タイミング信号304を出力する。トレースメモリ書き込み制御回路140は、トレースメモリのアドレス生成回路(カウンタ)と書き込み信号生成回路からなる。トレースメモリ書き込み制御回路140に入力された分岐命令をデコードしたときの分岐タイミング信号303、及び分岐命令の実行したときの分岐命令実行タイミング信号304がアクティブになった場合のみ、トレースメモリのアドレス生成回路(カウンタ)をカウントアップし、トレースメモリへの書き込み信号を生成して、トレースメモリ150にトレースメモリアドレス、及び書き込み信号307を出力する。
また、トレースメモリ書き込み制御回路140は、分岐タイミング信号303、または分岐命令実行タイミング信号304がアクティブになった場合のみ、トレースデータ生成回路130に対して分岐命令トレースデータ生成信号305を出力する。この分岐命令トレースデータ生成信号305を受けたトレースデータ生成回路130はトレースデータ302を生成し、生成されたトレースデータ302は、順次、トレースメモリ150に書き込まれる。その結果、トレースメモリ150には、実行された分岐命令の分岐元アドレスと分岐先アドレスが格納される。
オンチップ・エミュレータにおけるトレースメモリは、対象チップのチップサイズや価格(原価)の制約を受けるため、そのメモリ容量を大きくすることができない。特許文献1に記載の装置は、プログラムのデバッグ作業に不要なトレース情報をトレースメモリに格納せず、デバッグに必要なトレース情報のみをトレースメモリに格納している。具体的には、実行した命令が分岐命令の場合、その分岐命令と、その命令の前後の所定ステップの命令のみをトレースメモリに格納することで、デバッグ装置におけるメモリ容量を小さくし、コスト低下を図るとともに、デバッグの作業効率を向上させている。
特開平6−187193号公報
しかしながら、上記従来のオンチップ・エミュレータやデバッグ装置は、分岐命令の種類にかかわらず、トレースデータとして、分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリに格納している。そのため、従来のオンチップ・エミュレータ等で、メモリ容量の小さいトレースメモリに対して、局所的なアドレスをループする条件分岐命令等が含まれるプログラムを実行した場合、トレースの結果として、この条件分岐命令の分岐元アドレスと分岐先アドレスが主にトレースされる。その結果、プログラムデバッグとして使用するトレース情報がかなり不足する、という問題があった。
本発明は、上述した課題を解決するために提案されたものであり、プログラムデバッグに不要なトレース情報を排除して、限られたトレースメモリのメモリ領域をプログラムデバッグに効率的に使用できるエミュレータ装置を提供することを目的とする。
上記目的を達成するために、請求項1記載の発明は、マイクロプロセッサによるプログラムの実行履歴に対するトレース機能を有し、マイクロプロセッサを実装した状態でプログラムのデバッグを行うエミュレータ装置であって、分岐トレースの対象外とする分岐命令の種類を選択指定する指定手段と、前記マイクロプロセッサの実行する命令コードの示す分岐命令が、前記選択指定した種類の分岐命令と一致するか否かを判定する判定手段と、前記判定手段により、前記命令コードの示す分岐命令と前記選択指定した分岐命令とが一致したと判定された場合、該選択指定した分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する格納禁止手段と、
を備えたことを特徴とする。
この発明によれば、トレース情報として必要のない分岐命令をトレースメモリから排除して、トレース情報においてプログラムデバッグに意味を持つデータの密度を高め、結果として、トレースメモリのメモリ領域を効率的に使用可能となる。
また、請求項2に記載したように、本発明は、前記分岐命令のうち条件分岐命令を分岐トレースの対象外として選択指定する指定手段と、既に実行された条件分岐命令の分岐元アドレスと、現在の条件分岐命令の分岐元アドレスとを比較する比較手段と、前記比較の結果、前記分岐元アドレスが一致した場合、前記条件分岐命令の実行回数の制限をもとに、前記分岐トレースの対象外とした条件分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する格納禁止手段と、
をさらに備えた構成とすることができる。
これにより、トレースメモリの領域を効率的に使用でき、加えて、条件分岐命令のトレース情報を最小限のかたちで得ることができる。
この場合、請求項3に記載したように、前記分岐トレースの対象外とした条件分岐命令について1回目のループ実行に限り、該条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリに書き込み、該条件分岐命令と同じ条件分岐命令が再度、実行された場合には、該条件分岐命令の分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する構成とすることができる。
これにより、1回ループの実行に限り、トレース情報として条件分岐命令のアドレスをトレースメモリに書き込むため、デバッグに要する最小限のトレース情報を得ることができる。
また、請求項4に記載したように、前記マイクロプロセッサがプログラムを実行する際に出力するプログラムアドレスと、分岐トレースの対象外とする分岐命令を置いた特定のプログラムアドレスとが一致するか否かを判定する判定手段と、前記判定結果に応じて、前記特定のプログラムアドレスに置いた分岐命令のトレースの有効又は無効を選択する選択手段と、
をさらに備えた構成とすることができる。
この場合、請求項5に記載したように、前記選択手段が前記特定のプログラムアドレスに置いた分岐命令のトレースを有効とした場合、該分岐命令の分岐元アドレスと分岐先アドレスがトレースメモリに格納され、前記分岐命令のトレースを無効とした場合、該分岐命令の分岐元アドレスと分岐先アドレスのトレースメモリへの格納が禁止される構成としてもよい。
これにより、分岐命令の種類にかかわらず、ある特定のプログラムアドレスに置いた分岐命令のトレースのみを有効又は無効にし、その分岐命令の分岐元アドレスと分岐先アドレスをトレース情報としてトレースメモリへ書き込むか、あるいは禁止することで、トレースメモリの領域を効率的に使用できる。
本発明によれば、プログラムデバッグにおいてトレースメモリのメモリ領域を効率的に使用して、トレース情報不足を解決できる、という効果を奏する。
本発明の第1の実施形態に係るエミュレータ装置の構成を示すブロック図である。 本発明の第2の実施形態に係るエミュレータ装置の構成を示すブロック図である。 本発明の第3の実施形態に係るエミュレータ装置の構成を示すブロック図である。 従来のエミュレータ装置の構成を示すブロック図である。
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係るエミュレータ装置(オンチップ・エミュレータ)の構成を示すブロック図である。図1に示すエミュレータ装置1において、CPU10は、エミュレータ装置1全体の制御を司る中央処理装置である。CPU10は、例えば、実行すべき命令(プログラム)が格納されたプログラムメモリ60をアクセスして、そのプログラムをフェッチ、デコード、または実行する。具体的には、CPU10がアドレス201を出力すると、そのアドレス201に対応した命令コード206がプログラムメモリ60から出力される。そして、CPU10は、その命令コード206を実行する。
第1の実施形態に係るエミュレータ装置1は、マイクロプロセッサ等の命令コードを解析する命令コード解析回路70を有し、トレースさせる分岐命令の種類を選択指定(設定)できるようにするため、この命令コード解析回路70には、プログラムを実行する前に、選択指定の対象とする分岐命令の種類をあらかじめ設定しておく。
なお、マイクロプロセッサ等における分岐命令の種類としては、条件の有無にかかわらず常に分岐する無条件分岐命令、ある条件が成立したときのみ分岐する条件分岐命令、直接分岐命令以外の分岐命令である間接分岐命令、そして、割り込みに大別される。
エミュレータ装置1において、CPU10がプログラムメモリ60をアクセスして命令コード206を読み込み、プログラムの実行を開始すると、命令コード解析回路70は、その命令コード206を解析し、その命令コードの示す分岐命令が、あらかじめ選択指定した種類の分岐命令(ここでは、トレース情報として不要な分岐命令とする。)と一致するか否かを判定する。読み込んだ命令コード206の示す分岐命令が、あらかじめ設定された分岐命令と一致していれば、命令コード解析回路70は、命令コード一致信号208をアクティブにする。この命令コード一致信号208は、トレースメモリ書き込み制御回路40に入力される。
読み込んだ命令コード206が分岐命令ではない場合は、アドレス201は「1」ずつ増加するが、その命令コード206が分岐命令を示していれば、CPU10は、その分岐命令がデコードされるタイミングに分岐タイミング信号203を出力し、その分岐命令が実行されるタイミングに分岐命令実行タイミング信号204を出力する。トレースメモリ書き込み制御回路40は、トレースメモリのアドレス生成回路(カウンタ)と書き込み信号生成回路からなる。トレースメモリ書き込み制御回路40に入力された分岐命令をデコードしたときの分岐タイミング信号203、及び分岐命令の実行したときの分岐命令実行タイミング信号204がアクティブになった場合のみ、トレースメモリのアドレス生成回路(カウンタ)をカウントアップし、トレースメモリへの書き込み信号を生成して、トレースメモリ50にトレースメモリアドレス、及び書き込み制御信号207を出力する。
また、トレースメモリ書き込み制御回路40は、例えば、分岐タイミング信号203または分岐命令実行タイミング信号204がアクティブになり、命令コード一致信号208がアクティブとなった場合、トレースデータ生成回路30に対しては、分岐命令トレースデータ生成信号205を出力しない。このとき、トレースメモリ書き込み制御回路40は、トレースメモリ50に対しても書き込み制御信号207を出力しない。この場合、命令コード206の示す分岐命令があらかじめ設定した種類の分岐命令であることを意味しており、トレースデータ生成回路30では、トレースデータ202として、あらかじめ選択指定した分岐命令についての分岐元アドレスと分岐先アドレスが生成されない。その結果、トレースメモリ50にも、これらの分岐元アドレスと分岐先アドレスは書き込まれない。
一方、分岐タイミング信号203または分岐命令実行タイミング信号204がアクティブになっても、命令コード一致信号208がアクティブとなっていない場合には、命令コード206の示す分岐命令があらかじめ設定した種類の分岐命令ではないとして、トレースメモリ書き込み制御回路40は、トレースデータ生成回路30に対して分岐命令トレースデータ生成信号205を出力する。その結果、トレースデータ生成回路30は、トレースデータ202として、あらかじめ設定した種類の分岐命令以外の分岐命令についての分岐元アドレスと分岐先アドレスを生成する。そして、トレースメモリ50には、これら生成された分岐元アドレスと分岐先アドレスが書き込まれる。
このように、第1の実施形態に係るエミュレータ装置では、分岐トレースの対象外とする分岐命令の種類をあらかじめ選択指定できるように構成することで、トレース情報として必要のない分岐命令を排除して、その分岐命令のトレースデータがトレースメモリに格納されないようにすることができる。その結果、トレース情報においてプログラムデバッグに意味を持つデータの密度を高めることができ、トレースメモリのメモリ領域を効率的に使用可能となる。
<第2の実施形態>
図2は、本発明の第2の実施形態に係るエミュレータ装置(オンチップ・エミュレータ)の構成を示すブロック図である。なお、図2に示すエミュレータ装置2において、図1に示す第1の実施形態に係るエミュレータ装置と同一の構成要素には同一の符号を付して、ここではそれらの説明を適宜、省略する。
上述した第1の実施形態に係るエミュレータ装置では、分岐トレースの対象外として選択指定された分岐命令はすべて、トレース対象として扱わない制御をしている。しかし、デバッグ作業の過程において、それらの分岐命令のうち特定の分岐命令については、トレース情報として必要となる場合がある。そこで、第2の実施形態に係るエミュレータ装置は、トレース対象外とした条件分岐命令については、トレース情報格納の回数に制限を設ける。具体的には、1回ループの実行に限りトレース情報としてトレースメモリに書き込むよう制御する。以下、そのための具体的な装置構成及び制御について説明する。
図2に示すように、第2の実施形態に係るエミュレータ装置2には、命令コード解析回路70からの信号等を入力して、条件分岐命令の分岐元アドレス及び分岐先アドレスを比較するための分岐アドレス比較回路80が配されている。命令コード解析回路70には、例えば、プログラムの実行前に、対象とする条件分岐命令をあらかじめ設定しておく。CPU10によりプログラムの実行が開始されると、命令コード解析回路70は命令コード206を解析して、この命令コード206の示す条件分岐命令が、トレース対象とする条件分岐命令と一致するか否かを判定する。そして、命令コード206の示す条件分岐命令が、対象とする条件分岐命令であると判定した場合、命令コード解析回路70は、命令コード一致信号208をアクティブにする。
第2の実施形態に係るエミュレータ装置2では、プログラムによって条件分岐命令が実行された場合、例えば、実行されたのが1回目の条件分岐命令であれば、その条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリ50に書き込むように制御する。その後、再度、プログラムによって条件分岐命令が実行されると、命令コード解析回路70は、命令コード一致信号208をアクティブにする。この信号を受けた分岐アドレス比較回路80は、既にトレースメモリ50に格納された分岐元アドレス(ここでは、1回目の条件分岐命令の分岐元アドレスであり、f−adrとする。)と、現在、実行されている条件分岐命令の分岐元アドレス(p−adrとする。)201とを比較する。そして、これらのアドレスf−adrとp−adrとが一致すれば、分岐アドレス比較回路80は、再度、同じ条件分岐命令が実行されたとしてアドレス比較信号209をアクティブにし、その信号209をトレースメモリ書き込み制御回路40へ入力する。
一方、CPU10は、その条件分岐命令について、条件分岐の条件成立を判定し、分岐条件が成立する場合、条件成立信号210をアクティブにして、その信号210をトレースメモリ書き込み制御回路40に入力する。トレースメモリ書き込み制御回路40は、分岐タイミング信号203または分岐命令実行タイミング信号204がアクティブになり、アドレス比較信号209がアクティブとなり、さらに、条件分岐命令の条件成立信号210がアクティブとなった場合、トレースデータ生成回路30に対して分岐命令トレースデータ生成信号205を出力しない。
このように、トレースメモリ書き込み制御回路40からトレースデータ生成回路30に対して、分岐命令トレースデータ生成信号205が出力されない場合は、トレースデータ生成回路130はトレースデータ202を生成しない。このとき、トレースメモリ書き込み制御回路40からトレースメモリ50に対して書き込み制御信号207も出力されない。結果として、第2の実施形態に係るエミュレータ装置2は、同じ条件分岐命令は同じループを実行すると判断し、トレース対象外として選択指定した条件分岐命令については、1回目のループ実行に限り、その条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリ50に書き込む。そして、1回目のループ実行と同じ条件分岐命令が再度、実行された場合には、その条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリ50に格納しないよう制御している。
よって、第2の実施形態に係るエミュレータ装置では、同じ条件で分岐する場合について、それらの条件分岐命令すべての分岐元アドレスと分岐先アドレスを、トレース情報としてトレースメモリに書き込まず、トレース対象外に設置した条件分岐命令については、1回ループの実行に限りトレース情報として、分岐元アドレスと分岐先アドレスをトレースメモリに書き込むことで、トレースメモリの領域を効率的に使用できる。さらには、デバッグに必要な条件分岐命令のトレース情報を最小限のかたちで得ることができる。
<第3の実施形態>
図3は、本発明の第3の実施形態に係るエミュレータ装置(オンチップ・エミュレータ)の構成を示すブロック図である。なお、図3に示すエミュレータ装置3において、図1に示す第1の実施形態に係るエミュレータ装置及び図2に示す第2の実施形態に係るエミュレータ装置と同一の構成要素には同一の符号を付して、ここではそれらの説明を適宜、省略する。
上述したように、第1の実施形態に係るエミュレータ装置では、分岐トレースの対象外として選択指定された種類の分岐命令はすべて、トレース対象として扱わない制御をしている。また、第2の実施形態に係るエミュレータ装置では、同一の条件分岐命令をトレース対象外として選択指定し、その条件分岐命令について、回数を制限して、その分岐元アドレスと分岐先アドレスをトレースメモリに格納する制御をしている。しかし、トレース対象外に指定した分岐命令の種類に対して、プログラムデバッグにおいて必要のないトレース情報をプログラムアドレス上から指定できれば、より作業効率の良いデバッグを行える。以下、そのための具体的な構成及び制御について説明する。
図3に示す、第3の実施形態に係るエミュレータ装置3において、プログラムアドレス解析回路90は、CPU10がプログラムを実行等する際に出力するアドレス201を入力し、そのプログラムアドレスを解析する機能を有する。そのため、プログラムアドレス解析回路90には、あらかじめトレースの対象外とする分岐命令を置いたプログラムアドレスが格納されている。
第3の実施形態に係るエミュレータ装置3では、上述した第2の実施形態に係るエミュレータ装置と同様、CPU10がプログラムの実行を開始し、命令コードが分岐命令であれば、その命令がデコードされるタイミングに分岐タイミング信号203が出力され、その命令が実行されるタイミングに分岐命令実行タイミング信号204が出力される。また、分岐アドレス比較回路80は、条件分岐命令が実行された場合、その条件分岐命令がトレース対象外とした条件分岐命令であれば、1回ループの実行に限り、その分岐元アドレスと分岐先アドレスをトレース情報としてトレースメモリに書き込むためにアドレス比較信号209をアクティブにする。さらに、CPU10は、その条件分岐命令について、条件分岐の条件成立を判定し、分岐条件が成立する場合には、条件成立信号210がアクティブになる。
一方、プログラムアドレス解析回路90は、CPU10がプログラムを実行等する際に出力したプログラムアドレスが、あらかじめ格納されたトレース対象外とした分岐命令のプログラムアドレスか否かを解析する。そして、プログラムアドレス解析回路90は、実行プログラムのプログラムアドレスが、対象外とする分岐命令のプログラムアドレスであれば、アドレス解析信号211をアクティブにする。
ここで、第3の実施形態に係るエミュレータ装置3では、分岐タイミング信号203または分岐命令実行タイミング信号204がアクティブになり、アドレス比較信号209がアクティブとなり、さらに、条件分岐命令の条件成立信号210がアクティブとなった場合であって、アドレス解析信号211がアクティブのときは、トレースメモリ書き込み制御回路40がトレースデータ生成回路30に対して分岐命令トレースデータ生成信号205を出力しないように設定されている。
そうすることで、第3の実施形態に係るエミュレータ装置において、プログラムデバッグにおいて必要のないトレース情報をプログラムアドレス上から指定し、分岐命令の種類にかかわらず、ある特定のプログラムアドレスに置いた分岐命令のトレースのみを無効にして、その分岐命令の分岐元アドレスと分岐先アドレスをトレース情報としてトレースメモリ50へ書き込むのを禁止できる。結果として、トレースメモリの領域を効率的に使用できる。
これとは逆に、分岐タイミング信号203または分岐命令実行タイミング信号204がアクティブになり、アドレス比較信号209と条件成立信号210とがアクティブとなった場合でも、アドレス解析信号211がアクティブのときには、トレースメモリ書き込み制御回路40がトレースデータ生成回路30に対して分岐命令トレースデータ生成信号205を出力するように設定することもできる。
このように構成することで、第3の実施形態に係るエミュレータ装置において、トレース対象外に指定した分岐命令の種類に対して、ある特定のプログラムアドレスに置いた分岐命令のトレースのみを可能にする、すなわち、その分岐命令の分岐元アドレスと分岐先アドレスが、トレース情報としてトレースメモリ50へ書き込まれるようにすることができる。
1,2,3 エミュレータ装置
10 CPU
30 トレースデータ生成回路
40 トレースメモリ書き込み制御回路
50 トレースメモリ
60 プログラムメモリ
70 命令コード解析回路
80 分岐アドレス比較回路
90 プログラムアドレス解析回路
201 アドレス
202 トレースデータ
203 分岐タイミング信号
204 分岐命令実行タイミング信号
205 分岐命令トレースデータ生成信号
206 命令コード
207 書き込み制御信号
208 命令コード一致信号
209 アドレス比較信号
210 条件成立信号
211 アドレス解析信号

Claims (5)

  1. マイクロプロセッサによるプログラムの実行履歴に対するトレース機能を有し、マイクロプロセッサを実装した状態でプログラムのデバッグを行うエミュレータ装置であって、
    分岐トレースの対象外とする分岐命令の種類を選択指定する指定手段と、
    前記マイクロプロセッサの実行する命令コードの示す分岐命令が、前記選択指定した種類の分岐命令と一致するか否かを判定する判定手段と、
    前記判定手段により、前記命令コードの示す分岐命令と前記選択指定した分岐命令とが一致したと判定された場合、該選択指定した分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する格納禁止手段と、
    を備えたエミュレータ装置。
  2. 前記分岐命令のうち条件分岐命令を分岐トレースの対象外として選択指定する指定手段と、
    既に実行された条件分岐命令の分岐元アドレスと、現在の条件分岐命令の分岐元アドレスとを比較する比較手段と、
    前記比較の結果、前記分岐元アドレスが一致した場合、前記条件分岐命令の実行回数の制限をもとに、前記分岐トレースの対象外とした条件分岐命令についての分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止する格納禁止手段と、
    をさらに備えた請求項1記載のエミュレータ装置。
  3. 前記分岐トレースの対象外とした条件分岐命令について1回目のループ実行に限り、該条件分岐命令の分岐元アドレスと分岐先アドレスをトレースメモリに書き込み、該条件分岐命令と同じ条件分岐命令が再度、実行された場合には、該条件分岐命令の分岐元アドレスと分岐先アドレスのトレースメモリへの格納を禁止することを特徴とする請求項2記載のエミュレータ装置。
  4. 前記マイクロプロセッサがプログラムを実行する際に出力するプログラムアドレスと、分岐トレースの対象外とする分岐命令を置いた特定のプログラムアドレスとが一致するか否かを判定する判定手段と、
    前記判定結果に応じて、前記特定のプログラムアドレスに置いた分岐命令のトレースの有効又は無効を選択する選択手段と、
    をさらに備えた請求項3記載のエミュレータ装置。
  5. 前記選択手段が前記特定のプログラムアドレスに置いた分岐命令のトレースを有効とした場合、該分岐命令の分岐元アドレスと分岐先アドレスがトレースメモリに格納され、前記分岐命令のトレースを無効とした場合、該分岐命令の分岐元アドレスと分岐先アドレスのトレースメモリへの格納が禁止されることを特徴とする請求項4記載のエミュレータ装置。
JP2011051538A 2011-03-09 2011-03-09 エミュレータ装置 Expired - Fee Related JP5722086B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011051538A JP5722086B2 (ja) 2011-03-09 2011-03-09 エミュレータ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011051538A JP5722086B2 (ja) 2011-03-09 2011-03-09 エミュレータ装置

Publications (2)

Publication Number Publication Date
JP2012190137A true JP2012190137A (ja) 2012-10-04
JP5722086B2 JP5722086B2 (ja) 2015-05-20

Family

ID=47083247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011051538A Expired - Fee Related JP5722086B2 (ja) 2011-03-09 2011-03-09 エミュレータ装置

Country Status (1)

Country Link
JP (1) JP5722086B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102851374B1 (ko) 2016-11-15 2025-08-26 삼성전자주식회사 트레이스 데이터를 생성하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113743A (ja) * 1986-10-31 1988-05-18 Toshiba Corp 計算機ハ−ドウエアデバツギング方式
JPH05100902A (ja) * 1991-10-09 1993-04-23 Oki Electric Ind Co Ltd デバツグ支援機構
JPH1173344A (ja) * 1997-08-29 1999-03-16 Hitachi Ltd エミュレータ
JPH11306044A (ja) * 1998-04-22 1999-11-05 Hitachi Ltd データプロセッサ
JP2001005689A (ja) * 1999-06-23 2001-01-12 Nec Ibaraki Ltd トレース採取回路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113743A (ja) * 1986-10-31 1988-05-18 Toshiba Corp 計算機ハ−ドウエアデバツギング方式
JPH05100902A (ja) * 1991-10-09 1993-04-23 Oki Electric Ind Co Ltd デバツグ支援機構
JPH1173344A (ja) * 1997-08-29 1999-03-16 Hitachi Ltd エミュレータ
JPH11306044A (ja) * 1998-04-22 1999-11-05 Hitachi Ltd データプロセッサ
JP2001005689A (ja) * 1999-06-23 2001-01-12 Nec Ibaraki Ltd トレース採取回路

Also Published As

Publication number Publication date
JP5722086B2 (ja) 2015-05-20

Similar Documents

Publication Publication Date Title
US9003376B2 (en) Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems
US8261047B2 (en) Qualification of conditional debug instructions based on address
US8930657B2 (en) Method and apparatus for realtime detection of heap memory corruption by buffer overruns
US8261130B2 (en) Program code trace signature
JP5904993B2 (ja) マルチスレッド・コードをデバッグする方法、システム、及びコンピュータ・プログラム
US7689867B2 (en) Multiprocessor breakpoint
US10445494B2 (en) Attack protection for valid gadget control transfers
US8612944B2 (en) Code evaluation for in-order processing
TWI461908B (zh) 於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術
CN102063286B (zh) 程序流控制
JP2016207231A (ja) 命令エミュレーションプロセッサ、方法、およびシステム
JP2013058217A (ja) プロセッサ命令セット動作モードを比較するデバッグ回路
JP6073392B2 (ja) 命令としてデータ値を評価するシステムおよび方法
US11461220B2 (en) Techniques to identify improper information in call stacks
JP5722086B2 (ja) エミュレータ装置
US9395962B2 (en) Apparatus and method for executing external operations in prologue or epilogue of a software-pipelined loop
WO2022235265A1 (en) Debug channel for communication between a processor and an external debug host
US20140298106A1 (en) Identifying and tagging breakpoint instructions for facilitation of software debug
US20140013312A1 (en) Source level debugging apparatus and method for a reconfigurable processor
US8726244B2 (en) Software breakpoint handling by eliminating instruction replacement and execution under certain conditions
US9600284B2 (en) Computer program instruction analysis
US20140344543A1 (en) Method and system for memory access protection
CN106021041B (zh) 基于有限状态机的多周期非流水线cpu调试方法
JP2006330778A (ja) データトレース装置及びプログラムデバッグ装置
JP5993687B2 (ja) ワンチッププロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150325

R150 Certificate of patent or registration of utility model

Ref document number: 5722086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees