JP2010140240A - プロセッサ、マルチプロセッサ、及び、デバッグ方法 - Google Patents

プロセッサ、マルチプロセッサ、及び、デバッグ方法 Download PDF

Info

Publication number
JP2010140240A
JP2010140240A JP2008315591A JP2008315591A JP2010140240A JP 2010140240 A JP2010140240 A JP 2010140240A JP 2008315591 A JP2008315591 A JP 2008315591A JP 2008315591 A JP2008315591 A JP 2008315591A JP 2010140240 A JP2010140240 A JP 2010140240A
Authority
JP
Japan
Prior art keywords
debug
interrupt
unit
break
mode
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.)
Pending
Application number
JP2008315591A
Other languages
English (en)
Inventor
Kazuya Matsukawa
和哉 松川
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 JP2008315591A priority Critical patent/JP2010140240A/ja
Priority to US12/591,881 priority patent/US20100153786A1/en
Publication of JP2010140240A publication Critical patent/JP2010140240A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】公知文献記載の技術では、一定の時間内にデバッグ用プログラムを切り替え、実行を開始することが非常に困難であるという課題があった。
【解決手段】デバッグユニット部と、複数モードデバッグ割込み制御部と、実行部とを具備するプロセッサによって解決できる。デバッグユニット部は、デバッグ対象となるユーザープログラムの実行を監視し、デバッグ条件が成立したときに、デバッグ割込みをかける。複数モードデバッグ割込み制御部は、デバッグ割込みを受けて、所定のデバッグ用プログラムを選択するためのデバッグモードを指定する。実行部は、デバッグユニット部がデバッグ割込みをかけたときに、複数モードデバッグ割込み制御部が指定したデバッグモードに基づいて、デバッグ用プログラムを選択し、実行する。
【選択図】図3

Description

本発明は、プロセッサ、マルチプロセッサ、及び、デバッグ方法に関する。
近年、自動車制御機器や携帯電話機の高機能化、高性能化に伴い、組込み型マイクロコンピュータのソフトウェアも大規模化や複雑化が進んでいる。また、組込み型マイクロコンピュータのソフトウェアをデバッグするため、OS上のタスクを効率よくデバッグできるタスク・デバッガが開発されている。タスク・デバッガでは、デバッグ対象タスクを停止させるためのブレークポイントを設定し、そのブレークポイントまでデバッグ対象タスクを実行させたところでブレークをかけ、ブレークポイントにおけるメモリの内容などを確認する。
このようなタスク・デバッグの機能と、システム全体を停止させるシステム・デバッグの機能とを併せ持った発明が知られている。特開2006−79261号公報(特許文献1参照)には、「プログラムのデバッグ方法」の発明が記載されている。この発明では、2つのデバッグ用モニタプログラムを含むターゲットシステムへ、デバッガからデバッグコマンドを送信する。ターゲットシステムがデバッグコマンドを受信すると、モニタ管理プログラムが切り替え処理を行い、それら2つのデバッグ用モニタプログラムを切り替える。このような方法により、同一デバッグ環境下で、デバッグ対象タスクのみを停止させるタスク・デバッグと、システム全体を停止させるシステム・デバッグとを実現可能にしている。
特開2006−79261号公報
組込み型マイクロコンピュータの制御対象システムは非常に複雑化している。そこで、制御対象システムの開発効率化のために、デバッグに際して、一部のアルゴリズムを外部の高性能汎用コンピュータで代替実行するバイパスエミュレーションというデバッグ手法が用いられている。図1に、バイパスエミュレーションの説明図を示す。図示するように、バイパスエミュレーションでは、外部計算機を用いて一部の処理をバイパスさせる。バイパスエミュレーションのブレークが発生したとき、ユーザープログラムから代替プログラム(デバッグ用プログラム)へ制御が移行する。マイクロコンピュータは、代替プログラムを実行し、バイパス処理の入力値を外部計算機に出力する(STEP00)。外部計算機は、[処理1],[処理2],[処理3]を実行し、これらの演算結果をマイクロコンピュータへ返す。マイクロコンピュータは、代替プログラムを実行し、外部計算機による演算結果を取り込む(STEP99)。ここで、代替プログラムからユーザープログラムへ制御が戻る。
このようなバイパスエミュレーションを実行するデバッグと、他のデバッグとを備えたデバッグ環境を構築したいという要請がある。しかし、特許文献1の技術では、バイパスエミュレーションの実行を一定の時間内に収めることが非常に困難であるという課題がある。まず、特許文献1の技術では、例えば、システム・デバッグからタスク・デバッグへ切り替えを行う際に、デバッガを操作してデバッグコマンドを送信しなければならない。更に、ターゲットシステムでは、モニタ管理プログラムが切り替え処理を実行し、デバッグ用モニタプログラムを切り替える必要がある。バイパスエミュレーションの実行を開始するのが可能になるのは、モニタ管理プログラムが切り替え処理を終了した後になるので、応答が非常に遅くなり、おそらく制御対象システムの正常動作を維持できなくなる。
また、特許文献1では、デバッグ用プログラムを切り替える際に、デバッガを操作してデバッグコマンドを送信する方法を採用しているため、ユーザープログラムのどの部分をどのデバッグ用プログラムに関連付けるのかは、ユーザーによるデバッガの操作に委ねられている。そのため、ユーザープログラムにおける特定の処理を、バイパスエミュレーションに関連付けするような設定ができないという課題がある。
さらに、マルチプロセッサ型マイクロコンピュータでは、一方のプロセッサは一のユーザープログラムを実行し、他方のプロセッサは他のユーザープログラムを実行している。そのため、特許文献1の技術をマルチプロセッサ型マイクロコンピュータに適用した場合には、所定のタイミングで、一方のプロセッサのデバッグモードと、他方のプロセッサのデバッグモードとを一致させることが非常に困難になる。従って、マルチプロセッサ型マイクロコンピュータで実施されている一斉ブレーク(同期ブレークとも呼ばれることがある。)を容易に行えないなどの課題がある。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、[課題を解決するための手段]を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の一つ目のアスペクトによるプロセッサは、デバッグユニット部(B2)と、複数モードデバッグ割込み制御部(B6)と、実行部(B7)とを具備する。デバッグユニット部(B2)は、デバッグ対象となるユーザープログラムの実行を監視し、デバッグ条件が成立したときに、デバッグ割込みをかける。複数モードデバッグ割込み制御部(B6)は、デバッグ割込みを受けて、所定のデバッグ用プログラムを選択するためのデバッグモードを指定する。実行部(B7)は、デバッグユニット部(B2)がデバッグ割込みをかけたときに、複数モードデバッグ割込み制御部(B6)が指定したデバッグモードに基づいて、デバッグ用プログラムを選択し、実行する。
本発明の二つ目のアスペクトによるマルチプロセッサは、上記一つ目のアスペクトを備えた一のプロセッサ(B100−1)と、他のプロセッサ(B100−2)とを擁する。一のプロセッサ(B100−1)における複数モードデバッグ割込み制御部(B106−1)は、一のプロセッサ(B100−1)においてデバッグ割込みがかかると、他のプロセッサ(B100−2)における複数モードデバッグ割込み制御部(B106−2)へ、一のプロセッサ(B100−1)におけるデバッグモードを指定すると共に、一斉ブレークのデバッグ割込みをかけるための一斉ブレーク割込みを送信する。他のプロセッサ(B100−2)における複数モードデバッグ割込み制御部(B106−2)は、一のプロセッサ(B100−1)における複数モードデバッグ割込み制御部(B106−1)から、一のプロセッサ(B100−1)におけるデバッグモードを指定されて、一斉ブレーク割込みを受信すると、他のプロセッサ(B100−2)においてデバッグ割込みをかけると共に、他のプロセッサ(B100−2)における実行部(B7−2)に対して、一のプロセッサ(B100−1)におけるデバッグモードと同一のデバッグモードを指定する。
本発明の三つ目のアスペクトによるデバッグ方法は、デバッグ割込みをかけることと、デバッグモードを指定することと、実行することとを具備する。デバッグ割込みをかけることにおいては、プロセッサ(B0)内において、デバッグ対象となるユーザープログラムの実行を監視し、デバッグ条件が成立したときに、デバッグ割込みをかける。デバッグモードを指定することにおいては、プロセッサ(B0)内において、デバッグ割込みを受けて、所定のデバッグ用プログラムを選択するためのデバッグモードを指定する。実行することにおいては、プロセッサ(B0)内において、デバッグ割込みをかけることによって、デバッグ割込みがかけられたときに、指定することによって指定されたデバッグモードに基づいて、所定のデバッグ用プログラムを選択し、実行する。
本発明によれば、複数のデバッグモードを備え、かつ、所望のデバッグ用プログラムへの切り替えを高速に行うことが可能になる。
本発明を実施するための最良の形態の一つについて、図面を用いて説明する。図2に、一つの実施の形態におけるプロセッサの構成を説明するブロック図を示す。図2において、ユーザープログラムには、一つ又は複数のデバッグ条件(以下、ブレークポイント、ブレーク条件とも言う。)を設定することができる。図2では、5つのブレークポイントが設定されている。各ブレークポイントは、所望のデバッグ用プログラムに関連付けることが可能である。プロセッサ10は、複数のデバッグモードに対応しており、複数種類のデバッグ用プログラムW,X,Y,Zを格納したそれぞれの記憶領域のいずれにもアクセス可能である。
図示するように、本実施の形態におけるプロセッサ10は、デバッグユニット部11と、複数モードデバッグ割込み制御部12と、実行部13とを備えている。デバッグユニット部11は、ユーザープログラムの実行を監視し、設定されたブレークポイントを検出すると、そのブレークポイントに対応したデバッグ割込みをかける。図2では、3種類のデバッグ割り込みα,β,γが定義されている。複数モードデバッグ割込み制御部12は、デバッグユニット部11からデバッグ割込みを受け付けると、そのデバッグ割込みに対応したデバッグモードを指定する。実行部13は、指定されたデバッグモードに基づいて、いずれかのデバッグ用プログラムを選択し、実行する。
例えば、ユーザープログラム開発者が、図2に示すように、ユーザープログラムにおける1000番目のステップにブレークαを設定する操作を行った場合、デバッグユニット部11は、その設定内容を記憶し、1000番目のステップが実行されたところでデバッグ割込みαをかける。複数モードデバッグ割込み制御部12は、“α”というデバッグ割込みの種別に対して、どのデバッグ用プログラムを対応付けるかを示す対応データを予め記憶しており、デバッグ割込みαを受け付けると、その対応データに基づいて、デバッグ用プログラムWのデバッグモードを指定する。実行部13は、指定されたデバッグモードに基づいて、デバッグ用プログラムWを選択し、実行する。
以下、具体的な実施例を挙げて、本発明について更に詳述する。図3は、実施例1におけるプロセッサB0の構成説明図である。図示するように、プロセッサB0は、複数モードデバッグ割込み制御部B6と、実行部B7と、デバッグユニット部B2とを備えている。図中、ICE(In−Circuit Emulator(登録商標))B1は、ユーザーによって操作される外部装置である。
図3において、デバッグユニット部B2は、ICE B1からの指示等に従い、プロセッサB0内の資源を制御し、デバッグ機能を実現する。デバッグユニット部B2は、ICE B1と通信し、ICEインタフェース入力信号S11と、ICEインタフェース出力信号S12とを用いて、ユーザープログラムに対するデバッグ条件を設定する。実施例1におけるデバッグユニット部B2には、第一種別のブレーク割込みαを生じさせるデバッグ条件xと、第二種別のブレーク割込みβを生じさせるデバッグ条件yとの二つの種別のデバッグ条件が設定されている。デバッグユニット部B2は、実行部B7によるユーザープログラムの実行を監視し、デバッグ条件xが成立するとブレーク割込みαをかけ、デバッグ条件yが成立するとブレーク割込みβをかける。
実行部B7は、デバッグ対象のユーザープログラムと、バイパスエミュレーションを行うランタイムデバッグ用プログラムと、通常デバッグ用プログラムとのいずれかを選択し、実行する機能を有する。実行部B7は、ブレーク割込み要求信号S3を受信すると、ブレーク割込み要因情報S5に基づいて、ランタイムデバッグ用プログラム格納領域B4のアドレス、又は、通常デバッグ用プログラム格納領域B5のアドレスのいずれかを選択し、選択したアドレスに分岐し、いずれかのデバッグ用プログラムの命令をフェッチし、実行する。
複数モードデバッグ割込み制御部B6は、複数の種別のブレーク割込みを受け付けることができる。実施例1においては、ブレーク割込みαと、ブレーク割込みβとの2つの種別のブレーク割込みが用意されている。複数モードデバッグ割込み制御部B6は、第一種別のブレーク割込みαを受け付けたとき、どちらのデバッグ用プログラムを実行するかを制御し、また、第二種別のブレーク割込みβを受け付けたとき、どちらのデバッグ用プログラムを実行するのかを制御する。これらの制御は、ブレーク割込み要因情報S5を出力することによって行い、このブレーク割込み要因情報S5によって、デバッグ用プログラムを選択するためのデバッグモードを指定する。
図中、デバッグ対象のユーザープログラムは、ユーザーが作成したプログラムであり、ユーザープログラム格納領域B3に格納される。ランタイムデバッグ用プログラムは、バイパスエミュレーションを行うなど、高速な応答が要求されるデバッグ処理を実現するためのプログラムであり、ランタイムデバッグ用プログラム格納領域B4に格納される。通常デバッグ用プログラムは、バイパスエミュレーションのように一定の時間的制約の下で実行を開始する必要が無いプログラムであり、通常デバッグ用プログラム格納領域B5に格納される。実施例1におけるプロセッサB0は、3つのプログラム格納領域B3,B4,B5のいずれかのアドレスを選択し、そのアドレスから命令をフェッチし、実行する。
《動作の説明》
[ICEを用いた初期設定動作]実施例1におけるプロセッサB0を使用してデバッグを行う際には、デバッグ対象のユーザープログラムの実行に先立って、ユーザーがICE B1を操作し、ICE B1からプロセッサB0へ各種の設定などを行う。まず、ICEインタフェース入力信号S11を介して、デバッグユニット部B2を活性化させる。デバッグユニット部B2が活性化されると、デバッグユニット有効信号S7がアクティブになる。
次に、複数モードデバッグ割込み制御部B6に対して、どの種別のブレーク割込みと、どのデバッグ用プログラムとを対応付けるかを示す対応データを設定する。ICEインタフェース入力信号S11と、アクセスバス信号S10とを介して、ICE B1から通常デバッグ用プログラム格納領域B5へ、対応データを設定するためのプログラムを転送する。転送完了後、デバッグユニット部B2は、転送完了及び実行開始を示す実行部制御信号S8を実行部B7へ送信する。実行部B7が、システムバス信号S6を介して、設定のためのプログラムを起動すると、複数モードデバッグ割込み制御部B6に、対応付けを示す対応データが設定される。実施例1においては、ブレーク割込みαをランタイムデバッグ用プログラムに対応付け、かつ、ブレーク割込みβを通常デバッグ用プログラムに対応付けたとする。
また、デバッグユニット部B2は、ICEインタフェース入力信号S11を介して、ブレーク条件を受け付け、設定する。ブレーク条件は多数設定することができ、それぞれのブレーク条件に対して、第一種別のブレーク割込みαか、第二種別のブレーク割込みβかを設定することが可能である。実施例1においては、ユーザープログラムに対して2つのブレーク条件x,yを設定し、ブレーク条件xが成立したときにはブレーク割込みαをかけ、ブレーク条件yが成立したときにはブレーク割込みβをかけるように設定したとする。
[ユーザープログラムの実行開始]ICE B1を操作することによる初期設定が終わると、デバッグユニット部B2は、ユーザープログラムの実行開始を示す実行部制御信号S8を実行部B7へ送信する。実行部B7は、ユーザープログラム格納領域B3のアドレスを選択し、ユーザープログラムの実行を開始する。実行部B7がユーザープログラムを実行している状態にあるとき、デバッグユニット部B2は、実行部B7から送信される実行部状態信号S9を常時監視する。そして、ブレーク条件が成立したことを検出した場合には、設定に従って、ブレーク割込みをかける。
[ランタイムブレーク割込みのための条件を検出した場合の動作]デバッグユニット部B2が、ブレーク条件xの成立を検出すると、ブレーク割込みαがかかる。複数モードデバッグ割り込み制御部B6は、デバッグユニット部B2からブレーク割込みα入力信号S1を受信する。このブレーク割込みα入力信号S1を受けて、複数モードデバッグ割込み制御部B6は、実行部B7に対して、ブレーク割込み要求信号S3を出力する。同時に、複数モードデバッグ割込み制御部B6は、設定されている対応データを参照して、実行部B7に対して、ランタイムデバッグ用プログラムのデバッグモードを指定するブレーク割込み要因情報S5を出力する。
実行部B7は、複数モードデバッグ割込み制御部B6からブレーク割込み要求信号S3と、ランタイムデバッグ用プログラムのデバッグモードを指定するブレーク割込み要因情報S5とを受信する。実行部B7は、ブレーク割込みの受け付けが完了すると、複数モードデバッグ割込み制御部B6へブレーク割り込み受け付け完了信号S4を返す。複数モードデバッグ割込み制御部B6は、ブレーク割込み受け付け完了信号S4を受信すると、ブレーク割込み要求信号S3をオフにする。
それから、実行部B7は、ブレーク割込み要因情報S5に基づいて、ランタイムデバッグ用プログラム格納領域B4のアドレスにある命令をフェッチし、ランタイムデバッグ用プログラムを実行する。ユーザープログラムからランタイムデバッグ用プログラムへの切り替えは、実行部B7において速やかに行われ、ICE B1やデバッグユニット部B2などは介在しない。
[通常ブレーク割込みのための条件を検出した場合の動作]デバッグユニット部B2が、ブレーク条件yの成立を検出すると、ブレーク割込みβがかかる。複数モードデバッグ割り込み制御部B6は、デバッグユニット部B2からブレーク割込みβ入力信号S2を受信する。このブレーク割込みβ入力信号S2を受けて、複数モードデバッグ割込み制御部B6は、実行部B7に対して、ブレーク割込み要求信号S3を出力する。同時に、複数モードデバッグ割込み制御部B6は、設定されている対応データを参照して、実行部B7に対して、通常デバッグ用プログラムのデバッグモードを指定するブレーク割込み要因情報S5を出力する。
実行部B7は、ブレーク割込み要求信号S3と、通常デバッグ用プログラムのデバッグモードを指定するブレーク割込み要因情報S5とを受信すると、通常デバッグ用プログラム格納領域B5のアドレスにある命令をフェッチし、通常デバッグ用プログラムを実行しようとする。このとき、実行部制御信号S8が、通常デバッグ用プログラム格納領域B5へのアクセスを許可していた場合には、実行部B7は、通常デバッグ用プログラム格納領域B5のアドレスにある命令をフェッチし、速やかに通常デバッグ用プログラムを実行する。
一方、実行部制御信号S8が、通常デバッグ用プログラム格納領域B5へのアクセスを禁止していた場合には、実行部B7は、プログラムの実行を一時的に停止する。ユーザーがICE B1を操作して、所望の機能を有する通常デバッグ用プログラムを通常デバッグ用プログラム格納領域B5へロードし、実行部制御信号S8によるアクセス禁止を解除する。実行部B7は、通常デバッグ用プログラム格納領域B5のアドレスにある命令をフェッチし、ロードされた通常デバッグ用プログラムを実行する。なお、2回目以降に通常デバッグ用プログラムを実行する場合には、通常デバッグ用プログラム格納領域B5に既にロードされている同一の通常デバッグ用プログラムを用いても良く、また、通常デバッグ用プログラム格納領域B5に他の通常デバッグ用プログラムを上書きして、異なる機能を持った通常デバッグ用プログラムを用いるようにすることも可能である。
以上の動作説明で分かるように、実施例1では、ランタイムブレーク割込みをかける動作も、通常ブレーク割込みをかける動作も、ユーザープログラムの実行に合わせて自動的に行われ、かつ、ランタイムデバッグ用プログラムを実行するか、通常デバッグ用プログラムを実行するかの選択も、ユーザープログラムの実行に合わせて自動的に行われており、ユーザーによる操作などは介在していない。
《複数モードデバッグ割込み制御部の詳細構成》
図4は、複数モードデバッグ割込み制御部の詳細構成を説明するブロック図である。図示するように、実施例1における複数モードデバッグ割込み制御部B6は、ブレーク割込み要求生成部b61と、ブレーク割り込み要因情報生成部b62と、設定レジスタ部b66と、バスインタフェース部b63とを備えている。設定レジスタ部b66は、ブレーク割込みαに対応するランタイムブレーク選択ビットα保持部b64と、ブレーク割込みβに対応するランタイムブレーク選択ビットβ保持部b65とを有している。
ランタイムブレーク選択ビットαの設定と、ランタイムブレーク選択ビットβの設定とは、初期設定時に行われる。設定のためのプログラムを起動して、システムバス信号S6と、バスインタフェース部b63と、内部アクセスバス信号S17とを介して、設定レジスタ部b66に対応データを書き込む。実施例1においては、ブレーク割込みαにランタイムデバッグ用プログラムを対応付け、ブレーク割込みβに通常デバッグ用プログラムを対応付けるので、ランタイムブレーク選択ビットα保持部b64に“1”を書き込み、ランタイムブレーク選択ビットβ保持部b65に“0”を書き込む。すなわち、ランタイムブレーク選択ビットが“1”のときには、ランタイムのデバッグモードでデバッグを行い、ランタイムブレーク選択ビットが“0”のときには、ランタイムのデバッグモードでのデバッグは行わない。
[ランタイムブレーク割込みのための条件が検出された場合の動作]複数モードデバッグ割込み制御部B6では、ブレーク割込み要求生成部b61が、ブレーク割込みα入力信号S1を受信する。ブレーク割込み要求生成部b61は、ブレーク割込み要求信号S3を生成し、実行部B7へ出力すると共に、ブレーク割込み種別信号S14を生成し、ブレーク割込み要因情報生成部b62へ出力する。ブレーク割込み要因情報生成部b62は、ブレーク割込み種別信号S14と、ランタイムブレーク選択ビットα保持部b64の内容を通知するランタイムブレーク選択ビットα出力信号S15とに基づいて、ブレーク割込み要因情報S5を生成し、実行部B7へ出力する。ランタイムブレーク選択ビットαは“1”に設定されているので、実行部B7へ出力されるブレーク割込み要因情報S5は、ランタイムのデバッグモードを指定している。その後、実行部B7からブレーク割込み受け付け完了信号S4を受信すると、ブレーク割込み要求生成部b61は、ブレーク割込み要求信号S3をオフにする。
[通常ブレーク割込みのための条件が検出された場合の動作]複数モードデバッグ割込み制御部B6では、ブレーク割込み要求生成部b61が、ブレーク割込みβ入力信号S2を受信する。ブレーク割込み要求生成部b61は、ブレーク割込み要求信号S3を生成し、実行部B7へ出力すると共に、ブレーク割込み種別信号S14を生成し、ブレーク割込み要因情報生成部b62へ出力する。ブレーク割込み要因情報生成部b62は、ブレーク割込み種別信号S14と、ランタイムブレーク選択ビットβ保持部b65の内容を通知するランタイムブレーク選択ビットβ出力信号S16とに基づいて、ブレーク割込み要因情報S5を生成し、実行部B7へ出力する。ランタイムブレーク選択ビットβは“0”に設定されているので、実行部B7へ出力されるブレーク割込み要因情報S5は、通常のデバッグモードを指定している。その後、実行部B7からブレーク割込み受け付け完了信号S4を受信すると、ブレーク割込み要求生成部b61は、ブレーク割込み要求信号S3をオフにする。
《実行部の詳細構成》
図5は、実行部の詳細構成を説明するブロック図である。図示するように、実行部B7は、ユーザープログラムアクセス用アドレス生成部b71と、ランタイムデバッグプログラムアクセス用アドレス生成部b72と、通常デバッグプログラムアクセス用アドレス生成部b73と、アドレス選択部b74と、ブレーク割込み受け付け部b75と、命令実行部b76と、バスインタフェース部b77とを備えている。
ブレーク割込み受け付け部b75は、デバッグユニット部B2からデバッグユニット有効信号S7を受信すると活性化し、ブレーク割込み要求信号S3を受け付けるようになる。この状態でブレーク割込み要求信号S3を受け付けたとき、ブレーク割込み受け付け部b75は、命令実行部状態信号S29を参照する。命令実行部状態信号S29がデバッグプログラムの実行中(ブレーク状態)を示していた場合、ブレーク割込み受け付け部b75は、ブレーク割込みの受け付けを保留する。
一方、命令実行部状態信号S29がユーザープログラムの実行中(ユーザー状態)を示していた場合、ブレーク割込み受け付け部b75は、ブレーク割込みを受け付けて、命令実行部b76へブレーク割込み受け付け信号S25を出力する。その後、命令実行部b76によって、命令実行部状態信号S29がブレーク状態を示す内容に変更されると、ブレーク割込み受け付け部b75は、複数モードデバッグ割込み制御部B6へブレーク割込み受け付け完了信号S4を出力する。
命令実行部b76は、命令要求信号S28を出力し、命令フェッチバス信号S26を入力することによって命令をフェッチする。命令要求信号S28には、命令実行部b76がユーザー状態にあるのか、ブレーク状態にあるのかを示す情報も含まれている。フェッチした命令を実行した結果、データアクセスが発生した場合には、命令実行部b76は、データアクセスバス信号S27と、バスインタフェース部b77と、システムバス信号S6とを介して、データを取り込む。
命令実行部b76は、実行部制御信号S8を受信することによって、デバッグユニット部B2から、命令実行の開始制御や停止制御などを受ける。また、命令実行部b76は、実行部状態信号S9を送信することによって、デバッグユニット部B2へ、プログラムの実行状態を通知している。それから、命令実行部b76は、ブレーク割込み受け付け部b75からブレーク割込み受け付け信号S25を受信すると、ユーザー状態からブレーク状態へ移行し、命令実行部状態信号S29を、ユーザー状態を示す内容から、ブレーク状態を示す内容に変更する。
ユーザープログラムアクセス用アドレス生成部b71は、命令要求信号S28の指示に基づいて、ユーザープログラムにアクセスするためのアドレスを生成し、ユーザープログラム格納領域B3のアドレスを示す第一アドレス情報S21を出力する。ランタイムデバッグプログラムアクセス用アドレス生成部b72は、命令要求信号S28の指示に基づいて、ランタイムデバッグ用プログラムにアクセスするためのアドレスを生成し、ランタイムデバッグ用プログラム格納領域B4のアドレスを示す第二アドレス情報S22を出力する。通常デバッグプログラムアクセス用アドレス生成部b73は、命令要求信号S28の指示に基づいて、通常デバッグ用プログラムにアクセスするためのアドレスを生成し、通常デバッグ用プログラム格納領域B5のアドレスを示す第三アドレス情報S23を出力する。
アドレス選択部b74は、命令実行部状態信号S29と、ブレーク割込み要因情報S5とに基づいて、第一アドレス情報S21、第二アドレス情報S22、又は、第三アドレス情報S23のいずれかを選択する。そして、選択アドレス情報S24をバスインタフェース部b77に出力する。命令実行部状態信号S29がユーザー状態を示していたとき、アドレス選択部b74は、第一アドレス情報S21を選択する。命令実行部状態信号S29がブレーク状態を示し、かつ、ブレーク割込み要因情報S5がランタイムのデバッグモードを示していたとき、アドレス選択部b74は、第二アドレス情報S22を選択する。命令実行部状態信号S29がブレーク状態を示し、かつ、ブレーク割込み要因情報S5が通常のデバッグモードを示していたとき、アドレス選択部b74は、第三アドレス情報S23を選択する。
《詳細構成における動作》
[初期設定動作]命令実行部b76が、複数モードデバッグ割込み制御部B6におけるランタイムブレーク選択ビットα保持部b64への書き込み命令、又はランタイムブレーク選択ビットβ保持部b65への書き込み命令をフェッチし、実行すると、データアクセスバス信号S27、バスインタフェース部b77、システムバス信号S6を介して、書き込みアクセスが発行される。システムバス信号S6に現れる書き込みデータは、複数モードデバッグ割込み制御部B6におけるバスインタフェース部b63に取り込まれる。そして、内部アクセスバス信号S17を介して設定レジスタ部b66への書き込みが行われる。
[ユーザー状態中の動作]ユーザー状態中は、実行部B7が動作して、複数モードデバッグ割込み制御部B6は動作しない。
1.命令実行部b76は、ユーザー状態を示す情報を付加して、命令要求信号S28を出力する。また、ユーザー状態を示す命令実行部状態信号S29を出力する。
2.ユーザープログラムアクセス用アドレス生成部b71は、命令要求信号S28に基づいて、第一アドレス情報S21を出力する。ランタイムデバッグプログラムアクセス用アドレス生成部b72及び通常デバッグプログラムアクセス用アドレス生成部b73は、命令要求信号S28にユーザー状態を示す情報が付加されているので動作しない。
3.アドレス選択部b74は、命令実行部状態信号S29に基づいて、第一アドレス情報S21、第二アドレス情報S22、又は、第三アドレス情報S23の中から第一アドレス情報S21を選択し、選択アドレス情報S24を出力する。
4.バスインタフェース部b77は、選択アドレス情報S24に基づいて、命令フェッチ要求アクセスを生成し、システムバス信号S6に出力すると共に、システムバス信号S6からユーザープログラムの命令を受信し、命令フェッチバス信号S26に出力する。
5.命令実行部b76は、命令フェッチバス信号S26を介してフェッチした命令を実行する。また、このときの命令実行の状態を、実行部状態信号S9に出力する。
[ユーザー状態中にランタイムブレーク割込みが発生した場合の動作]実行部B7がユーザープログラムを実行しているときに、複数モードデバッグ割込み制御部B6が、デバッグユニット部B2からブレーク割込みα入力信号S1を受信した場合である。
1.ブレーク割込み要求生成部b61は、ブレーク割込み要求信号S3を実行部B7へ出力する。また、割込み入力信号が、ブレーク割込みα入力信号S1であったことを示すブレーク割込み種別信号S14をブレーク割込み要因情報生成部b62へ出力する。
2.ブレーク割込み要因情報生成部b62は、ブレーク割込み種別信号S14と、ランタイムブレーク選択ビットα出力信号S15とに基づいて、ランタイムのデバッグモードを指定するブレーク割込み要因情報S5をアドレス選択部b74へ出力する。なお、ランタイムブレーク選択ビットαは、“1”に設定されているので、ランタイムブレーク選択ビットα出力信号S15は、ランタイムのデバッグモードを指定する。
3.ブレーク割込み受け付け部b75は、ブレーク割込み要求信号S3を受け付けると、ブレーク割込み受け付け信号S25を命令実行部b76へ出力する。
4.命令実行部b76は、ブレーク割込み受け付け信号S25を受信すると、内部の状態をユーザー状態からブレーク状態に変更する。そして、ブレーク状態を示す命令実行部状態信号S29を、ブレーク割込み受け付け部b75、及び、アドレス選択部b74に出力する。また、ブレーク状態中であることを示す情報を加味した命令要求信号S28を出力する。
5.ブレーク割込み受け付け部b75は、命令実行部状態信号S29がユーザー状態からブレーク状態へ変更されたことを確認すると、内部を初期化し、ブレーク割込み受け付け完了信号S4をブレーク割込み要求生成部b61へ出力する。
6.ランタイムデバッグプログラムアクセス用アドレス生成部b72、及び、通常デバッグプログラムアクセス用アドレス生成部b73は、ブレーク状態中であることを示す情報を加味した命令要求信号S28を受信すると、それぞれ、第二アドレス情報S22、第三アドレス情報S23を生成し、アドレス選択部b74へ出力する。ユーザープログラムアクセス用アドレス生成部b71は、命令要求信号S28がブレーク状態中であることを示しているので動作しない。
7.アドレス選択部b74は、ブレーク状態を示している命令実行部状態信号S29と、ランタイムのデバッグモードを指定しているブレーク割込み要因情報S5とに基づいて、第一アドレス情報S21、第二アドレス情報S22、又は、第三アドレス情報S23の中から、第二アドレス情報S22を選択する。そして、第二アドレス情報S22を選択アドレス情報S24としてバスインタフェース部b77へ出力する。
8.バスインタフェース部b77は、選択アドレス情報S24を用いて命令フェッチ要求アクセスを生成し、システムバス信号S6として出力する。その後、ランタイムデバッグ用プログラム格納領域B4から命令が読み出され、システムバス信号S6に現れる。バスインタフェース部b77は、この命令を読み込む。
9.読み込まれた命令は、命令フェッチバス信号S26を介して命令実行部b76に渡される。ランタイムデバッグ用プログラムの命令が実行される。
[ユーザー状態中に通常ブレーク割込みが発生した場合の動作]実行部B7がユーザープログラムを実行しているときに、複数モードデバッグ割込み制御部B6が、デバッグユニット部B2からブレーク割込みβ入力信号S2を受信した場合である。
1.ブレーク割込み要求生成部b61は、ブレーク割込み要求信号S3を実行部B7へ出力する。また、割込み入力信号が、ブレーク割込みβ入力信号S2であったことを示すブレーク割込み種別信号S14をブレーク割込み要因情報生成部b62へ出力する。
2.ブレーク割込み要因情報生成部b62は、ブレーク割込み種別信号S14と、ランタイムブレーク選択ビットβ出力信号S16とに基づいて、通常のデバッグモードを指定するブレーク割込み要因情報S5をアドレス選択部b74へ出力する。なお、ランタイムブレーク選択ビットβは、“0”に設定されているので、ランタイムブレーク選択ビットβ出力信号S16は、通常のデバッグモードを指定する。
3.ブレーク割込み受け付け部b75は、ブレーク割込み要求信号S3を受け付けると、ブレーク割込み受け付け信号S25を命令実行部b76へ出力する。
4−1.命令実行部b76は、ブレーク割込み受け付け信号S25を受信すると、内部の状態をユーザー状態からブレーク状態に変更する。そして、ブレーク状態を示す命令実行部状態信号S29を、ブレーク割込み受け付け部b75、及び、アドレス選択部b74に出力する。また、ブレーク状態中であることを示す情報を加味した命令要求信号S28を出力する。
4−2.命令実行部b76がブレーク状態へ移行したとき、実行部制御信号S8によって通常デバッグ用プログラム格納領域B5へのアクセスが禁止されていた場合、命令実行部b76は、ブレーク状態中であることを示す情報を加味した命令要求信号S28を一定時間待ってから出力する。その間に、ユーザーがICE B1を操作して、所望の機能を有する通常デバッグ用プログラムを通常デバッグ用プログラム格納領域B5へロードし、実行部制御信号S8による禁止を解除する。
5.ブレーク割込み受け付け部b75は、命令実行部状態信号S29がユーザー状態からブレーク状態へ変更されたことを確認すると、内部を初期化し、ブレーク割込み受け付け完了信号S4をブレーク割込み要求生成部b61へ出力する。
6.ランタイムデバッグプログラムアクセス用アドレス生成部b72、及び、通常デバッグプログラムアクセス用アドレス生成部b73は、ブレーク状態中であることを示す情報を加味した命令要求信号S28を受信すると、それぞれ、第二アドレス情報S22、第三アドレス情報S23を生成し、アドレス選択部b74へ出力する。ユーザープログラムアクセス用アドレス生成部b71は、命令要求信号S28がブレーク状態中であることを示しているので動作しない。
7.アドレス選択部b74は、ブレーク状態を示している命令実行部状態信号S29と、通常のデバッグモードを指定しているブレーク割込み要因情報S5とに基づいて、第一アドレス情報S21、第二アドレス情報S22、又は、第三アドレス情報S23の中から、第三アドレス情報S23を選択する。そして、第三アドレス情報S22を選択アドレス情報S24としてバスインタフェース部b77へ出力する。
8.バスインタフェース部b77は、選択アドレス情報S24を用いて命令フェッチ要求アクセスを生成し、システムバス信号S6として出力する。その後、通常デバッグ用プログラム格納領域B5から命令が読み出され、システムバス信号S6に現れる。バスインタフェース部b77は、この命令を読み込む。
9.読み込まれた命令は、命令フェッチバス信号S26を介して命令実行部b76に渡される。通常デバッグ用プログラムの命令が実行される。
《実施例1の効果》
以上説明したように、実施例1では、デバッグ条件の成立を契機として発生するブレーク割込みを、高速に応答可能なランタイムブレーク割込みとして使用するか、高速な応答は不要だが高機能なデバッグ機能を実現できる通常ブレークとして使用するかを、自動的に、かつ、高速に決定し、素早くデバッグ用プログラムの実行を開始することができる。デバッグ用プログラム格納領域のアドレスを選択することによって、瞬時にデバッグ用プログラムへ分岐できる。
図6は、実施例2におけるマルチプロセッサの構成説明図である。図示するように、実施例2におけるマルチプロセッサは、実施例1におけるプロセッサB0とおおよそ同様の構成を有する二つのプロセッサB100−1,B100−2を擁している。図6において、プロセッサB100−1のデバッグユニット部B2−1、及び、プロセッサB100−2のデバッグユニット部B2−2は、実施例1におけるプロセッサB0のデバッグユニット部B2と同様の機能及び構成を有し、また、プロセッサB100−1の実行部B7−1、及び、プロセッサB100−2の実行部B7−2は、実施例1におけるプロセッサB0の実行部B7と同様の機能及び構成を有している。
図6のICE B1は、図3のICE B1と同じものであり、ICEインタフェース入力信号S11と、ICEインタフェース出力信号S12とを用いて、二つのデバッグユニット部B2−1,B2−2の設定を行うことができる。デバッグユニット部B2−1の設定を行う場合、ユニット部間信号S102がデバッグユニット部B2−2をスルーして、ICEインタフェース出力信号S12となり、デバッグユニット部B2−2の設定を行う場合、ICEインタフェース入力信号S11がデバッグユニット部B2−1をスルーして、ユニット部間信号S102となり、デバッグユニット部B2−2の入力となる。
実施例2におけるブレーク割込みα入力信号S1−1,S1−2と、ブレーク割込みβ入力信号S2−1,S2−2と、ブレーク割込み要求信号S3−1,S3−2と、ブレーク割込み受け付け完了信号S4−1,S4−2と、ブレーク割込み要因情報S5−1,S5−2と、システムバス信号S6−1,S6−2と、デバッグユニット有効信号S7−1,S7−2と、実行部制御信号S8−1,S8−2と、実行部状態信号S9−1,S9−2と、アクセスバス信号S10−1,S10−2とについても、それぞれ、実施例1におけるブレーク割込みα入力信号S1と、ブレーク割込みβ入力信号S2と、ブレーク割込み要求信号S3と、ブレーク割込み受け付け完了信号S4と、ブレーク割込み要因情報S5と、システムバス信号S6と、デバッグユニット有効信号S7と、実行部制御信号S8と、実行部状態信号S9と、アクセスバス信号S10と同様の役割りを有している。
実施例2におけるユーザープログラム格納領域B3−1,B3−2と、ランタイムデバッグ用プログラム格納領域B4−1,B4−2と、通常デバッグ用プログラム格納領域B5−1,B5−2とについても、それぞれ、実施例1におけるユーザープログラム格納領域B3と、ランタイムデバッグ用プログラム格納領域B4と、通常デバッグ用プログラム格納領域B5と同様の機能を有している。
実施例2における複数モードデバッグ割込み制御部B106−1,B106−2は、実施例1における複数モードデバッグ割込み制御部B106に機能追加が為されていて、マルチプロセッサ対応になっている。図7に、実施例2におけるマルチプロセッサ対応複数モードデバッグ割込み制御部の構成説明図を示す。図6のマルチプロセッサ対応複数モードデバッグ割込み制御部B106−1,B106−2は、図7のマルチプロセッサ対応複数モードデバッグ割込み制御部B106と同様の構成及び機能を有している。
図7において、ブレーク割り込み要因情報生成部b62と、バスインタフェース部b63と、ブレーク割込みαに対応するランタイムブレーク選択ビットα保持部b64と、ブレーク割込みβに対応するランタイムブレーク選択ビットβ保持部b65とは、それぞれ、図4に示したものと同様の機能を有している。
マルチプロセッサ対応複数モードデバッグ割込み制御部B106の設定レジスタ部b66’には、一斉ブレーク受付イネーブルビット保持部b67が追加されている。一斉ブレーク受付イネーブルビット保持部b67は、初期設定時に書き込まれる一斉ブレーク受付イネーブルビットを保持する。一斉ブレーク割込みを受け付けるとき、一斉ブレーク受付イネーブルビットは“1”であり、一斉ブレーク割込みを受け付けないとき、一斉ブレーク受付イネーブルビットは“0”である。
マスク部b69は、前段のプロセッサから伝達される一斉ブレーク割込み入力信号S101−(k)と、一斉ブレーク受付イネーブルビットとのAND条件をとって、AND条件が成立したときにブレーク割込み入力信号S18を出力する。一斉ブレーク受付イネーブルビットが“1”のときに一斉ブレーク割込み信号S101−(k)を受信した場合、マスク部b69は、一斉ブレーク割込みを許可してブレーク割込み入力信号S18を出力する。一斉ブレーク受付イネーブルビットが“0”のときに一斉ブレーク割込み信号S101−(k)を受信した場合、マスク部b69は、一斉ブレーク割込みを許可せず、ブレーク割込み入力信号S18を出力しない。
図7において、ブレーク割込み要求生成部b61’は、図4におけるブレーク割込み要求生成部b61の機能に加えて、マスク部b69からのブレーク割込み入力信号S18も受け付ける機能を有している。ブレーク割込み要求生成部b61’は、マスク部b69からブレーク割込み入力信号S18を受け付けると、ブレーク割込み要求信号S3を出力すると共に、一斉ブレーク割込み信号S101−(k)で指定されているデバッグモードと同一のデバッグモードを示すブレーク割込み種別信号S14を出力する。ブレーク要因記憶ビット保持部b68は、マルチプロセッサ対応複数モードデバッグ割込み制御部B106がブレーク割込みを受け付け、かつ、実行部がブレーク状態に移行したことを確認してから、次段のプロセッサに、一斉ブレーク割込み信号S101−(k+1)を出力する。この一斉ブレーク割込み信号S101−(k+1)は、ブレーク割込み要因情報S5に基づいて生成されており、デバッグモードを指定する情報を含んでいる。
《マルチプロセッサの動作》
[一斉ブレーク割込みが設定され、プロセッサB100−1でブレーク割込みが発生した場合の動作]
1−1.プロセッサB100−1において、マルチプロセッサ対応複数モードデバッグ割込み制御部B106−1が、ブレーク割込みβ入力信号S2を受信したとする。
1−2.ブレーク割込み要求生成部b61’は、ブレーク割込み要求信号S3を出力する。また、その割込みが、ブレーク割込みβ入力信号S2によるものであることを示すブレーク割込み種別信号S14をブレーク割込み要因情報生成部b62へ出力する。
1−3.ブレーク割込み要因情報生成部b62は、ブレーク割込み種別信号S14と、ランタイムブレーク選択ビットβ出力信号S16とに基づいて、通常のデバッグモードを指定するブレーク割込み要因情報S5を出力する。なお、ランタイムブレーク選択ビットβは、実施例1と同様に、“0”に設定されているものとする。
1−4.その後、実行部がブレーク状態に移行すると、ブレーク割込み要求生成部b61’は、ブレーク割込み受け付け完了信号S4を受信する。
1−5.ブレーク要因記憶ビット保持部b68は、ブレーク割込み要因情報S5に基づいて、通常のデバッグモードを指定する情報を生成し、かつ、ブレーク割込み受け付け完了信号S4を契機として、一斉ブレーク割込み要求信号S101−2を、プロセッサB100−2へ出力する。
2−1.プロセッサB100−2において、マスク部b69が一斉ブレーク割込み入力信号S101−2を受信する。マスク部b69は、プロセッサB100−1から出力された一斉ブレーク割込み入力信号S101−2と、一斉ブレーク受付イネーブルビットとのAND条件をとる。一斉ブレーク受付イネーブルビットが“0”であれば、マスク部b69は、一斉ブレーク割込み入力信号S101−2をマスクし、ブレーク割込み入力信号S18を出力しない。一方、一斉ブレーク受付イネーブルビットが“1”のとき、マスク部b69は、一斉ブレーク割込みを許可してブレーク割込み入力信号S18を出力する。
2−2.マスク部b69からブレーク割込み入力信号S18を受信したとき、ブレーク割込み要求生成部b61’は、ブレーク割込み要求信号S3を出力する。また、プロセッサB100−1側で発生した通常のデバッグモードと同一のデバッグモードを示すブレーク割込み種別信号S14をブレーク割込み要因情報生成部b62へ出力する。
2−3.ブレーク割込み要因情報生成部b62は、ブレーク割込み種別信号S14と、ランタイムブレーク選択ビットβ出力信号S16とに基づいて、通常のデバッグモードを指定するブレーク割込み要因情報S5を出力する。なお、ランタイムブレーク選択ビットβは、プロセッサB100−1と同様に、“0”に設定されているものとする。
2−4.その後、実行部がブレーク状態に移行すると、ブレーク割込み要求生成部b61’は、ブレーク割込み受け付け完了信号S4を受信する。
2−5.ブレーク要因記憶ビット保持部b68は、ブレーク割込み要因情報S5に基づいて、通常のデバッグモードを指定する情報を生成し、かつ、ブレーク割込み受け付け完了信号S4を契機として、一斉ブレーク割込み要求信号S101−1を、プロセッサB100−1へ出力する。
3.以上の動作により、プロセッサB100−1と、プロセッサB100−2とは、同期して通常のデバッグモードに移行し、一斉ブレークのブレーク割込みを処理する。
《実施例2の効果》
実施例2においては、通常のデバッグモードをさらに細分化し、マルチプロセッサ型のマイクロコンピュータでは必須ともいえる一斉ブレークのデバッグモードを実現することが可能になる。
バイパスエミュレーションの説明図 一実施の形態におけるプロセッサの構成を説明するブロック図 実施例1におけるプロセッサB0の構成説明図 複数モードデバッグ割込み制御部の詳細構成を説明するブロック図 実行部の詳細構成を説明するブロック図 実施例2におけるマルチプロセッサの構成説明図 実施例2におけるマルチプロセッサ対応複数モードデバッグ割込み制御部の構成説明図
符号の説明
10,B0,B100−1,B100−2 プロセッサ
11,B2,B2−1,B2−2 デバッグユニット部
12,B6,B106−1,B106−2 複数モードデバッグ割込み制御部
13,B7,B7−1,B7−2 実行部
B1 ICE
B3〜B5,B3−1〜B5−1,B3−2〜B5−2 プログラム格納領域
b61,b61’ ブレーク割込み要求生成部
b62 ブレーク割込み要因情報生成部
b63,b77 バスインタフェース部
b64 ランタイムブレーク選択ビットα保持部
b65 ランタイムブレーク選択ビットβ保持部
b66,b66’ 設定レジスタ部
b67 一斉イネーブル受付イネーブルビット
b68 ブレーク要因記憶ビット保持部
b69 マスク部
b71〜b73 アドレス生成部
b74 アドレス選択部
b75 ブレーク割込み受け付け部
b76 命令実行部

Claims (10)

  1. デバッグ対象となるユーザープログラムの実行を監視し、デバッグ条件が成立したときに、デバッグ割込みをかけるデバッグユニット部と、
    前記デバッグ割込みを受けて、所定のデバッグ用プログラムを選択するためのデバッグモードを指定する複数モードデバッグ割込み制御部と、
    前記デバッグユニット部がデバッグ割込みをかけたときに、前記複数モードデバッグ割込み制御部が指定したデバッグモードに基づいて、デバッグ用プログラムを選択し、実行する実行部とを具備する
    プロセッサ。
  2. 前記実行部は、
    前記デバッグモードに基づいて、第一のデバッグ用プログラムにアクセスするための第一のアドレスか、第二のデバッグ用プログラムにアクセスするための第二のアドレスかを選択するアドレス選択部を備え、
    前記アドレス選択部が選択したアドレスから命令をフェッチし、実行する
    請求項1記載のプロセッサ。
  3. 前記複数モードデバッグ割込み制御部は、
    前記デバッグ割込みと、前記所定のデバッグ用プログラムとを対応付けるデータを格納するレジスタを備え、
    前記デバッグ割込みを受けたときに、前記レジスタを参照することによって、デバッグモードを指定する
    請求項2記載のプロセッサ。
  4. 前記デバッグユニット部は、
    第一種別のデバッグ条件が成立したときに、第一種別のデバッグ割込みをかけ、第二種別のデバッグ条件が成立したときに、第二種別のデバッグ割込みをかけ、
    前記複数モードデバッグ割込み制御部が備える前記レジスタは、
    前記第一種別のデバッグ割込みと、前記第一のデバッグ用プログラムとを対応付ける第一のデータと、前記第二種別のデバッグ割込みと、前記第二のデバッグ用プログラムとを対応付ける第二のデータとを格納する
    請求項3記載のプロセッサ。
  5. 前記デバッグユニット部は、
    ユーザーの操作によって、予め、前記ユーザープログラムにおける特定の処理に関連付けて前記第一種別のデバッグ条件の設定を受けると、前記特定の処理に関連して成立するデバック条件を前記第一種別のデバッグ条件として前記第一種別のデバッグ割込みをかける
    請求項4記載のプロセッサ。
  6. 前記実行部は、
    前記第二のデバッグ用プログラムを選択するためのデバッグモードが指定された場合において、前記第二のデバッグ用プログラムへの切り替えに一定の時間的制約が無いときには、前記第二種別のデバッグ割込みがかけられた後、前記第二のデバッグ用プログラムをロードする時間待ってから、前記第二のデバッグ用プログラムを実行する
    請求項5記載のプロセッサ。
  7. 請求項1〜6いずれか1項に記載の一のプロセッサと、請求項1〜6いずれか1項に記載の他のプロセッサとを擁し、
    前記一のプロセッサにおける複数モードデバッグ割込み制御部は、前記一のプロセッサにおいてデバッグ割込みがかかると、前記他のプロセッサにおける複数モードデバッグ割込み制御部へ、前記一のプロセッサにおけるデバッグモードを指定すると共に、一斉ブレークのデバッグ割込みをかけるための一斉ブレーク割込みを送信し、
    前記他のプロセッサにおける複数モードデバッグ割込み制御部は、前記一のプロセッサにおける複数モードデバッグ割込み制御部から、前記一のプロセッサにおけるデバッグモードを指定されて、前記一斉ブレーク割込みを受信すると、前記他のプロセッサにおいてデバッグ割込みをかけると共に、前記他のプロセッサにおける実行部に対して、前記一のプロセッサにおけるデバッグモードと同一のデバッグモードを指定する
    マルチプロセッサ。
  8. 前記他のプロセッサは、
    前記一のプロセッサから受信する前記一斉ブレーク割込みを許可するか否かを決定するマスク部を具備し、
    前記マスク部が前記一斉ブレーク割込みを許可したときには、前記他のプロセッサにおいて、前記一斉ブレークのデバッグ割込みをかけ、
    前記マスク部が前記一斉ブレーク割込みを許可しなかったときには、前記他のプロセッサにおいて、前記一斉ブレークのデバッグ割込みをかけない
    請求項7記載のマルチプロセッサ。
  9. プロセッサ内において、デバッグ対象となるユーザープログラムの実行を監視し、デバッグ条件が成立したときに、デバッグ割込みをかけることと、
    前記プロセッサ内において、前記デバッグ割込みを受けて、所定のデバッグ用プログラムを選択するためのデバッグモードを指定することと、
    前記プロセッサ内において、前記デバッグ割込みをかけることによって、デバッグ割込みがかけられたときに、前記指定することによって指定されたデバッグモードに基づいて、所定のデバッグ用プログラムを選択し、実行することとを具備する
    デバッグ方法。
  10. 前記実行することにおいては、
    前記デバッグモードに基づいて、第一のデバッグ用プログラムにアクセスするための第一のアドレスか、第二のデバッグ用プログラムにアクセスするための第二のアドレスかを選択することと、
    前記選択することによって選択されたアドレスから命令をフェッチすることとを含む
    請求項9記載のデバッグ方法。
JP2008315591A 2008-12-11 2008-12-11 プロセッサ、マルチプロセッサ、及び、デバッグ方法 Pending JP2010140240A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008315591A JP2010140240A (ja) 2008-12-11 2008-12-11 プロセッサ、マルチプロセッサ、及び、デバッグ方法
US12/591,881 US20100153786A1 (en) 2008-12-11 2009-12-03 Processor, multiprocessor, and debugging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008315591A JP2010140240A (ja) 2008-12-11 2008-12-11 プロセッサ、マルチプロセッサ、及び、デバッグ方法

Publications (1)

Publication Number Publication Date
JP2010140240A true JP2010140240A (ja) 2010-06-24

Family

ID=42242033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008315591A Pending JP2010140240A (ja) 2008-12-11 2008-12-11 プロセッサ、マルチプロセッサ、及び、デバッグ方法

Country Status (2)

Country Link
US (1) US20100153786A1 (ja)
JP (1) JP2010140240A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063915B2 (en) 2012-06-01 2015-06-23 Kabushiki Kaisha Toshiba Multiprocessor with a plurality of debug modules and debug ring units connected to generate a ring
DE102023204682A1 (de) 2022-05-19 2023-11-30 Renesas Electronics Corporation Austestungseinrichtung und aufzeichnungsmedium

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US20140189650A1 (en) * 2013-05-21 2014-07-03 Concurix Corporation Setting Breakpoints Using an Interactive Graph Representing an Application
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
WO2015071777A1 (en) 2013-11-13 2015-05-21 Concurix Corporation Software component recommendation based on multiple trace runs
CN104731681A (zh) * 2015-03-09 2015-06-24 联想(北京)有限公司 一种诊断设备及信息处理方法
CN105446886B (zh) * 2016-01-04 2019-01-29 青岛海信移动通信技术股份有限公司 一种计算机程序调试方法和装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61210440A (ja) * 1985-03-14 1986-09-18 Nec Corp レベルトレ−ス装置
JPH0210435A (ja) * 1988-06-28 1990-01-16 Nec Corp アドレストラップ回路
JPH0264740A (ja) * 1988-08-30 1990-03-05 Fujitsu Ltd マイクロプロセッサ
JPH05151021A (ja) * 1991-11-29 1993-06-18 Toshiba Eng Co Ltd 常駐領域組み込み型デバツガによるデバツグ方式
JPH07105045A (ja) * 1993-10-01 1995-04-21 Hitachi Ltd 情報処理装置機能試験プログラムのデバッグ方式
JPH10326203A (ja) * 1996-06-19 1998-12-08 Matsushita Electric Ind Co Ltd 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置
JP2001216176A (ja) * 2000-02-04 2001-08-10 Seiko Epson Corp デバッグ装置およびデバッグ方法ならびにデバッグプログラムを記憶した記憶媒体
JP2005122375A (ja) * 2003-10-15 2005-05-12 Fujitsu Ltd 動作試験装置および動作試験方法
JP2007141200A (ja) * 2005-10-21 2007-06-07 Renesas Technology Corp データ処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992015947A1 (en) * 1991-03-07 1992-09-17 Digital Equipment Corporation Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5630049A (en) * 1994-11-30 1997-05-13 Digital Equipment Corporation Method and apparatus for testing software on a computer network
US5889981A (en) * 1996-05-07 1999-03-30 Lucent Technologies Inc. Apparatus and method for decoding instructions marked with breakpoint codes to select breakpoint action from plurality of breakpoint actions
US6598180B1 (en) * 1999-12-30 2003-07-22 International Business Machines Corporation Method, system and program products for selectively debugging program versions executing with in a computing environment
JP3913470B2 (ja) * 2000-12-28 2007-05-09 株式会社東芝 システムlsi
US6857084B1 (en) * 2001-08-06 2005-02-15 Lsi Logic Corporation Multiprocessor system and method for simultaneously placing all processors into debug mode
US7107489B2 (en) * 2002-07-25 2006-09-12 Freescale Semiconductor, Inc. Method and apparatus for debugging a data processing system
US7100033B2 (en) * 2002-10-23 2006-08-29 Intel Corporation Controlling the timing of test modes in a multiple processor system
US7577874B2 (en) * 2003-06-18 2009-08-18 Nethra Imaging, Inc. Interactive debug system for multiprocessor array
US7506205B2 (en) * 2006-02-14 2009-03-17 Atmel Corporation Debugging system and method for use with software breakpoint
US20070226702A1 (en) * 2006-03-22 2007-09-27 Rolf Segger Method for operating a microcontroller in a test environment
US20080127119A1 (en) * 2006-10-02 2008-05-29 Bulent Kasman Method and system for dynamic debugging of software

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61210440A (ja) * 1985-03-14 1986-09-18 Nec Corp レベルトレ−ス装置
JPH0210435A (ja) * 1988-06-28 1990-01-16 Nec Corp アドレストラップ回路
JPH0264740A (ja) * 1988-08-30 1990-03-05 Fujitsu Ltd マイクロプロセッサ
JPH05151021A (ja) * 1991-11-29 1993-06-18 Toshiba Eng Co Ltd 常駐領域組み込み型デバツガによるデバツグ方式
JPH07105045A (ja) * 1993-10-01 1995-04-21 Hitachi Ltd 情報処理装置機能試験プログラムのデバッグ方式
JPH10326203A (ja) * 1996-06-19 1998-12-08 Matsushita Electric Ind Co Ltd 複数のハードウェア環境上においてプログラムを別々に動作させつつも、ハードウェア環境間で動作状態を継承し合うことができるデバッグ装置
JP2001216176A (ja) * 2000-02-04 2001-08-10 Seiko Epson Corp デバッグ装置およびデバッグ方法ならびにデバッグプログラムを記憶した記憶媒体
JP2005122375A (ja) * 2003-10-15 2005-05-12 Fujitsu Ltd 動作試験装置および動作試験方法
JP2007141200A (ja) * 2005-10-21 2007-06-07 Renesas Technology Corp データ処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063915B2 (en) 2012-06-01 2015-06-23 Kabushiki Kaisha Toshiba Multiprocessor with a plurality of debug modules and debug ring units connected to generate a ring
DE102023204682A1 (de) 2022-05-19 2023-11-30 Renesas Electronics Corporation Austestungseinrichtung und aufzeichnungsmedium
US11899564B2 (en) 2022-05-19 2024-02-13 Renesas Electronics Corporation Debug apparatus and recording medium

Also Published As

Publication number Publication date
US20100153786A1 (en) 2010-06-17

Similar Documents

Publication Publication Date Title
JP2010140240A (ja) プロセッサ、マルチプロセッサ、及び、デバッグ方法
US9690603B2 (en) Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
US8903703B2 (en) Dynamically adjusting speed versus accuracy of computer platform simulation
US7716031B2 (en) Interface converter for unified view of multiple computer system simulations
KR102025078B1 (ko) 단일 스텝 실행을 이용한 코드 진단
US9632842B2 (en) Exclusive access control method prohibiting attempt to access a shared resource based on average number of attempts and predetermined threshold
JPH02171934A (ja) 仮想計算機システム
JP4678396B2 (ja) 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム
JP2006092029A (ja) マイクロコンピュータ及びトレース制御方法
JP2009175960A (ja) 仮想マルチプロセッサシステム
JP4439235B2 (ja) 動作試験装置および動作試験方法
EP2645258B1 (en) Multiprocessor system, apparatus and methods
JP6726136B2 (ja) データアクセス装置及びアクセスエラーの通知方法
JP5803721B2 (ja) データ処理装置
GB2596872A (en) Handling injected instructions in a processor
JP2010015364A (ja) マルチプロセッサシステム及び情報処理装置
JP2653412B2 (ja) ブレークポイント設定方法
CN111949989B (zh) 一种多核处理器的安全管控装置及方法
WO2006091785A1 (en) Interface converter for unified view of multiple computer system simulations
JP2912269B2 (ja) デバッグシステムおよびその方法
JP2006079142A (ja) マルチプロセッサ装置
JP2007213396A (ja) デバッグシステム、オペレーションシステム、デバッグ方法、プログラム
Zhang et al. Research on Test Method of Domestic Embedded Multi-core Operating System
JPH03288941A (ja) デバッグ装置
JPS62143177A (ja) ベクトル処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130701

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131025