(57)【要約】【課題】複数のプロセッサを内蔵するマイクロプロセッサシステムにおいて、外部のデバッガを接続できない場合であっても、簡易な構成によって同様のデバッグ処理を実行する。【解決手段】外部のデバッガからのＪＴＡＧ信号に基づきデバッグ処理を実行可能なデバッグ実行部１１を有するサブプロセッサ３に対して、メインプロセッサ２からデバッグ処理の命令を出力可能な構成とする。メインプロセッサから出力される処理命令は、サブプロセッサ制御部４によってデバッグ実行部への入力に適合するＪＴＡＧ信号に変換され、当該ＪＴＡＧ信号は、ＪＴＡＧ信号セレクタ８によってデバッガからの制御信号との間で選択的にサブプロセッサ３に対して入力される。【選択図】図１
2007304972.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に基づき所定のデバッグ処理を実行可能なデバッグ実行部を有する第１のプロセッサと、
前記デバッグ処理を実行させる処理命令を出力する第２のプロセッサと、
前記第２のプロセッサから出力された処理命令に基づき前記デバッグ実行部への入力に適合する制御信号を生成する制御信号生成部と、
外部のデバッガから入力される制御信号と前記制御信号生成部により生成される制御信号とのいずれかを、前記第１のプロセッサに対する入力信号として選択する信号セレクタと
を備えたことを特徴とするマイクロプロセッサシステム。
【請求項２】
前記制御信号生成部は、前記第２のプロセッサから出力された処理命令を格納する命令キュー格納部を備えたことを特徴とする請求項１に記載のマイクロプロセッサシステム。
【請求項３】
前記第２のプロセッサは、前記デバッグ処理として、前記第１のプロセッサから所定プログラムの実行ログを出力させ、
前記制御信号生成部は、前記第１のプロセッサから出力される前記実行ログを受信するログ受信部と、その受信した実行ログを格納するデータ格納部とを備えたことを特徴とする請求項１に記載のマイクロプロセッサシステム。
【請求項４】
前記第２のプロセッサは、前記デバッグ処理として、前記第１のプロセッサから所定プログラムの実行に関するメモリのリードデータを出力させ、
前記制御信号生成部は、前記第１のプロセッサから出力される前記リードデータを格納するデータ格納部を備えたことを特徴とする請求項１に記載のマイクロプロセッサシステム。
【請求項５】
前記第１のプロセッサが実行するプログラムの内容を書き換えた修正プログラムを格納するメモリを更に備え、
前記第２のプロセッサは、前記デバッグ処理として、前記修正プログラムを前記第１のプロセッサが実行するプログラムの一部の代替として実行させることを特徴とする請求項１に記載のマイクロプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを内蔵するマイクロプロセッサシステムに関する。
【背景技術】
【０００２】
従来、複数のプロセッサを内蔵するマイクロプロセッサシステムにおいて、ＩＥＥＥ １１４９.１準拠のＪＴＡＧ(Joint Test Action Group)用端子を設けることで、デバッガ（例えば、ＩＣＥ（登録商標））を各プロセッサと接続可能とするものが存在する。デバッガは、各プロセッサに対して所定の制御信号（ＪＴＡＧ信号）を入力して所望の機能をエミュレートし、ハードウェアの動作確認、プログラムの開発、ログの収集などのデバッグ処理を行うことが可能となっている。
【０００３】
このようなデバッグ処理は、製品開発段階で行うことが想定されているので、一旦製品化された後は、ＪＴＡＧ用端子にデバッガを接続することができないのが通常である。しかし、製品化後のマイクロプロセッサシステムに不具合が見つかった場合等には、それを解消するために、デバッガによるデバッグ処理と同様の処理を行う必要が生じ得る。そこで、製品化された後においても既存のＪＴＡＧインタフェースを利用してプロセッサに処理を実行させるための技術が存在する。
【０００４】
そのような従来技術として、例えば、第１及び第２のプロセッサと、第１のプロセッサにより実行されるプログラムが格納されたマスクＲＯＭとを備えるマイクロプロセッサにおいて、ＪＴＡＧインタフェース回路部に専用のハードウェア（データレジスタ、デバッグイベントポイントレジスタ、デバッグコントロールレジスタ、デバッグインストラクションメモリ）を組み込むことで、プログラムの誤りに対し、第２のプロセッサの制御に従ってマスクＲＯＭの誤ったプログラムエリアを更新する技術が知られている（特許文献１参照）。
【特許文献１】特開２００２−７１５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載のような従来技術では、プログラムエリアを更新する際に、第１のプロセッサは通常行うべき動作を中断せずにそのまま継続することができるが、ＪＴＡＧインタフェース回路部に専用のハードウェアを組み込む必要があるので、マイクロプロセッサの構成が複雑になるという問題があった。また、上記従来技術では、ＪＴＡＧインタフェースを利用して第１のプロセッサに行わせる処理は、マスクＲＯＭのプログラムの更新のみに限定されており、実行可能な処理が限られてしまうという問題があった。
【０００６】
本発明は、このような従来技術の問題点を解消するべく案出されたものであり、その主目的は、複数のプロセッサを内蔵するマイクロプロセッサシステムにおいて、外部のデバッガから制御信号を入力できない場合であっても、既存のハードウェアを利用することで、簡易な構成によって外部のデバッガと同様のデバッグ処理を実行することを可能とするマイクロプロセッサシステムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明のマイクロプロセッサシステムは、外部のデバッガから入力される制御信号に基づき所定のデバッグ処理を実行可能なデバッグ実行部を有する第１のプロセッサと、前記デバッグ処理を実行させる処理命令を出力する第２のプロセッサと、前記第２のプロセッサから出力された処理命令に基づき前記デバッグ実行部への入力に適合する制御信号を生成する制御信号生成部と、前記デバッガから入力される制御信号と前記制御信号生成部により生成される制御信号とのいずれかを、前記第１のプロセッサに対する入力信号として選択する信号セレクタとを備えたことを特徴とする。
【発明の効果】
【０００８】
このように本発明によれば、複数のプロセッサを内蔵するマイクロプロセッサシステムにおいて、製品開発段階では外部のデバッガを利用して第１のプロセッサのデバッグ処理を実行可能とする一方、外部のデバッガから制御信号を入力できない場合であっても、既存のハードウェアを利用することで、簡易な構成によって同様のデバッグ処理を実行することができるという優れた効果を奏する。
【発明を実施するための最良の形態】
【０００９】
上記課題を解決するためになされた第１の発明は、入力信号に基づき所定のデバッグ処理を実行可能なデバッグ実行部を有する第１のプロセッサと、前記デバッグ処理を実行させる処理命令を出力する第２のプロセッサと、前記第２のプロセッサから出力された処理命令に基づき前記デバッグ実行部への入力に適合する制御信号を生成する制御信号生成部と、外部のデバッガから入力される制御信号と前記制御信号生成部により生成される制御信号とのいずれかを、前記第１のプロセッサに対する入力信号として選択する信号セレクタとを備えた構成とする。
【００１０】
これによると、複数のプロセッサを内蔵するマイクロプロセッサシステムにおいて、製品開発段階では外部のデバッガを利用して第１のプロセッサのデバッグ処理（例えば、ハードウェアの動作確認、プログラムの開発、及びログの収集など）を実行可能とする一方、外部のデバッガから制御信号を入力できない場合（例えば、製品化後）であっても、第２のプロセッサ及びデバッグ実行部等の既存のハードウェアを利用することで、簡易な構成によって同様のデバッグ処理を実行することが可能となる。
【００１１】
上記課題を解決するためになされた第２の発明は、前記制御信号生成部は、前記第２のプロセッサから出力された処理命令を格納する命令キュー格納部を備えた構成とすることができる。
【００１２】
これによると、命令キュー格納部がバッファとして機能することで、第２のプロセッサは、処理命令を出力するタイミングを第１のプロセッサにおけるデバッグ処理のタイミングに合わせる必要がなく、自らが通常実行する処理が阻害されることを回避しつつ、第１のプロセッサに対する処理命令を出力することが可能となる。
【００１３】
上記課題を解決するためになされた第３の発明は、前記第２のプロセッサは、前記デバッグ処理として、前記第１のプロセッサから所定プログラムの実行ログを出力させ、前記制御信号生成部は、前記第１のプロセッサから出力される前記実行ログを受信するログ受信部と、その受信した実行ログを格納するデータ格納部とを備えた構成とすることができる。
【００１４】
これによると、第２のプロセッサは、データ格納部がバッファとして機能することで、自らが通常実行する他の処理が阻害されることを回避しつつ、第１のプロセッサにおける所定プログラムの実行ログを容易に取得することが可能となる。
【００１５】
上記課題を解決するためになされた第４の発明は、前記第２のプロセッサは、前記デバッグ処理として、前記第１のプロセッサから所定プログラムの実行に関するメモリのリードデータを出力させ、前記制御信号生成部は、前記第１のプロセッサから出力される前記リードデータを格納するデータ格納部を備えた構成とすることができる。
【００１６】
これによると、第２のプロセッサは、データ格納部がバッファとして機能することで、自らが通常実行する他の処理が阻害されることを回避しつつ、第１のプロセッサの所定プログラムの実行に関するメモリのリードデータ（処理中の変数の値等）を容易に取得することが可能となる。
【００１７】
上記課題を解決するためになされた第５の発明は、前記第１のプロセッサが実行するプログラムの内容を書き換えた修正プログラムを格納するメモリを更に備え、前記第２のプロセッサは、前記デバッグ処理として、前記修正プログラムを前記第１のプロセッサが実行するプログラムの一部の代替として実行させる構成とすることができる。
【００１８】
これによると、第１のプロセッサが実行するプログラムの一部に不具合が生じた場合に、当該不具合が生じたプログラムの内容を変更する必要なしに、不具合が生じたプログラムの代わりに正常なプログラムに切り替えて動作させることが可能となる。
【００１９】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【００２０】
図１は、本発明に係るマイクロプロセッサシステムの概略構成を示すブロック図である。このマイクロプロセッサシステム１は、種々の機器（例えば、ＩＰ電話装置）に組み込まれて演算や制御動作を実行するものであり、独立して処理を実行する２つのプロセッサ（メインプロセッサ２、サブプロセッサ３）と、メインプロセッサ（第２のプロセッサ）２から出力される処理命令に基づき、サブプロセッサ（第１のプロセッサ）３のデバッグ処理を制御するためのＪＴＡＧ信号（制御信号）を生成するサブプロセッサ制御部（制御信号生成部）４と、ＪＴＡＧ−ＩＣＥ(In-Circuit Emulator)等の外部のデバッガ５を接続可能なＪＴＡＧ端子６及びＥＴＭ(Embedded Trace Macrocell)端子７と、デバッガ５からのＪＴＡＧ信号とサブプロセッサ制御部４で生成されるＪＴＡＧ信号とのいずれかを、サブプロセッサ３に対して選択的に入力するためのＪＴＡＧ信号セレクタ８とを主として備える。
【００２１】
ここで、サブプロセッサ３は、所定のプログラムを実行してサブプロセッサ３の基本動作を行うサブプロセッサコア１０と、外部のデバッガ５またはサブプロセッサ制御部４から入力されるＪＴＡＧ信号に基づきデバッグ処理を実行するデバッグ実行部１１と、プログラムの実行監視を行うためのブレークポイントを検出するブレーク検出部１２と、サブプロセッサコア１０が実行する各種プログラム及び各種データを格納するメモリ１３と、サブプロセッサコア１０等をメモリ１３と接続するためのメモリインタフェース部１４と、メインプロセッサ２及びサブプロセッサ３間のデータ送受のためのインタフェースをなすデュアルポートＲＡＭ１５とを有している。
【００２２】
サブプロセッサ３のデバッグ実行部１１は、ＪＴＡＧ信号セレクタ８を介してデバッガ５またはサブプロセッサ制御部４との間でＪＴＡＧ信号の入出力を行うＪＴＡＧインタフェース部２１と、デバッガ５またはサブプロセッサ制御部４に対してトレース情報（プログラムの実行ログ）を含むＥＴＭ信号の出力を行うＥＴＭインタフェース部２２と、サブプロセッサコア１０によるプログラムの実行及び停止等を制御するプロセッサ制御部２３と、メモリインタフェース部１４を介したデータの入出力を制御するデータ制御部２４と、ブレークポイントのアドレス設定等を行うブレーク制御部２５と、それら各部を総括的に制御する制御部２６とを有する。
【００２３】
また、サブプロセッサ制御部４は、メインプロセッサ２との間で処理命令やデータ等の送受を行うためにシステムバス３０に接続されるバスインタフェース部３１と、ＪＴＡＧ信号セレクタ８を介してデバッグ実行部１１のＪＴＡＧインタフェース部２１との間でＪＴＡＧ信号の入出力を行うＪＴＡＧインタフェース部３２と、サブプロセッサ３にデバッグ処理を実行させるべくメインプロセッサ２が出力する処理命令を格納し、その処理命令を所定のタイミングでサブプロセッサ３に対して出力するための命令キュー格納部３３と、そのデバッグ処理の実行の際に各種データを一時的に格納するデータ格納部３４と、サブプロセッサ制御部４から出力されたＥＴＭ信号を受信するＥＴＭ入力部（ログ受信部）３５と、それら各部を総括的に制御する制御部３６とを有する。
【００２４】
上記構成を有するマイクロプロセッサシステム１においては、製品開発段階では外部のデバッガ５を利用してサブプロセッサ３のデバッグ処理（例えば、ハードウェアの動作確認、プログラムの開発、及びログの収集など）を実行することが可能である。一方、製品化後などにおいて外部のデバッガ５を接続できない場合には、メインプロセッサ２からサブプロセッサ３に対するデバッグ処理の命令を出力し、その処理命令に基づきサブプロセッサ制御部４がデバッグ実行部１１への入力に適合するＪＴＡＧ信号を生成することで、外部のデバッガ５の場合と同様のデバッグ処理をサブプロセッサ３に実行させることができる。このとき、メインプロセッサ２からデバッグ処理を実行させる場合には、外部のデバッガ５との間で送受するＪＴＡＧ信号の速度（例えば、数ＭＨｚ〜２０ＭＨｚ）に比べてより高速化（例えば、１００ＭＨｚ以上）して対応することが可能となる。
【００２５】
ここで、例えば、マイクロプロセッサシステム１がＩＰ電話装置に組み込まれる場合を考えると、メインプロセッサ２は、ＩＰ電話装置の機種ごとに異なり得るネットワーク通信機能や操作入力・表示出力機能等の応用機能を実現するためのプロセッサに相当し、また、サブプロセッサ３は、ＩＰ電話装置の全ての機種に共通する音声符号化処理機能等の基本機能を実現するためのプロセッサに相当する。その場合、サブプロセッサ３が実行するプログラムは、コスト的な観点から書き換え不能なマスクＲＯＭ（メモリ１３）に格納されるので、製品化後に不具合が生じた場合に上述のようなデバッグ処理を実行する必要性がより高い。一方、メインプロセッサ２が実行するプログラムは、ＩＰ電話装置の機種ごとに異なり得るので、外部の書き換え可能なＲＯＭ等に格納されるのが通常である。なお、上述のメインプロセッサ２がサブプロセッサ３にデバッグ処理を実行させるためのプログラムも外部の書き換え可能なＲＯＭ（図１では図示せず）に格納することができる。
【００２６】
次に、図２〜図４を参照して、メインプロセッサ２がサブプロセッサ３に実行させるデバッグ処理の典型例として、メモリリード処理、プログラム修正処理及び実行ログの取得処理の詳細について説明する。
【００２７】
図２は、サブプロセッサ３において所定のプログラムを実行する際に、当該プログラムの動作状態を確認するために、その動作中の変数の値を格納するメモリの内容をリードする処理を示す動作シーケンス図である。
【００２８】
まず、メインプロセッサ２は、所望のプログラムについて動作状態を確認するための実行アドレス及びデータアドレスを設定し（１０１）、その情報をメモリリード処理の命令とともにサブプロセッサ制御部４に送出する（１０２）。
【００２９】
そこで、サブプロセッサ制御部４において、制御部３６はメインプロセッサ２から取得した処理命令を命令キュー格納部３３に格納し（１０３）、続いて、サブプロセッサ３の停止命令（que1）をサブプロセッサ３のデバッグ実行部１１に対して送出する（１０４）。この命令を受けたデバッグ実行部１１は、サブプロセッサコア１０に対してモニタ割り込みを発行する（１０５）。これにより、サブプロセッサ３ではモニタ割り込みが発生し（１０６）、サブプロセッサ３はサブプロセッサ制御部４に対してＡＣＫを送出する（１０７）。
【００３０】
次に、サブプロセッサ制御部４は、デバッグ実行部１１に対してブレークアドレス処理命令（que2）を送出する（１０８）。この命令を受けたデバッグ実行部１１の制御部２６は、ブレーク制御部２５によりアドレスを設定し（１０９）、サブプロセッサ制御部４に対してＡＣＫを送出する（１１０）。そこで、サブプロセッサ制御部４は、デバッグ実行部１１に対してプログラムカウンタ（以下、「ＰＣ」という。）の書き換え処理命令（que3）を送出する（１１１）。この命令を受けた制御部２６は、プロセッサ制御部２３にＰＣの値を設定し（１１２）、この設定した値に基づきサブプロセッサコア１０に対してプログラム動作の開始を指示させる（１１３）。そこで、サブプロセッサコア１０は、プログラム動作を開始した後、ブレーク設定アドレスの命令をフェッチしてブレークを発生させ（１１４）、ブレークが発生したことを示すＡＣＫをサブプロセッサ制御部４に対して送出する（１１５）。
【００３１】
次に、サブプロセッサ制御部４は、デバッグ実行部１１に対してメモリリード処理命令（que4）を送出する（１１６）。この命令を受けた制御部２６は、データ制御部２４によりメモリリードを設定し（１１７）、サブプロセッサコア１０に対して、対象となるメモリのデータが格納されているアドレスをリードさせる指示を送出させる（１１８）。これにより、サブプロセッサコア１０は、対象となるメモリのリードデータを出力し（１１９）、そのリードデータをＡＣＫとともにサブプロセッサ制御部４に対して送出する（１２０）。そこで、サブプロセッサ制御部４は、受け取ったリードデータをデータ格納部３４に一旦保持し（１２１）、デバッグ実行部１１に対して動作開始命令（que5）を送出する（１２２）。この命令を受けた制御部２６は、プロセッサ制御部２３により動作の実行を設定し（１２３）、この設定に基づきサブプロセッサコア１０に動作の再開を指示させる（１２４）。これにより、サブプロセッサコア１０は、ＰＣのアドレス（即ち、ブレーク後の続き）からプログラム動作を再開することになる（１２５）。なお、メモリリードがループ処理において実行される場合には、上述のブレークが発生する度にリードデータの出力が行われる。
【００３２】
上記のような処理において、メインプロセッサ２は、命令キュー格納部３３がバッファとして機能することで、処理命令を出力するタイミングをサブプロセッサ３におけるデバッグ処理のタイミングに合わせる必要がなく、自らが通常実行する処理が阻害されることを回避しつつ、サブプロセッサ３に対する処理命令を出力することが可能となる。また、目的とするリードデータを格納した後は、サブプロセッサ３に対して動作開始命令を送出することにより、デバッグ処理の実行によるサブプロセッサ３の通常処理の中断を解除し、リアルタイム動作を再開させることができる。
【００３３】
また、サブプロセッサ制御部４において、制御部３６は、動作開始命令（que5）の送出後に、メインプロセッサ２に対してＩＲＱ(Interrupt ReQuest)を出力し（１２６）、このＩＲＱを受けたメインプロセッサ２は、データ格納部３４に格納されたリードデータをリードする（１２８）。これにより、一連のメモリリード処理は終了する。
【００３４】
なお、上述のようなメモリリード処理において、メモリのリードの代わりにメモリのライトを実行することで、プログラムの書き換えを実行してバグを修正する処理を行うことが可能となる。
【００３５】
図３は、サブプロセッサが実行するプログラムに不具合が発生した場合にプログラムを修正するための処理を示す動作シーケンス図である。
【００３６】
まず、メインプロセッサ２は、２つのプロセッサ間のインタフェース回路部を構成するデュアルポートＲＡＭ１５に対して修正プログラムの書き込みを実行する（２００）。これにより、予めサブプロセッサのデュアルポートＲＡＭ１５に修正プログラムが格納された状態となる。続いて、メインプロセッサ２は、修正対象となるプログラムの実行アドレス及び修正プログラムに分岐させるための分岐アドレス（不具合の発生部位に相当）を設定し（２０１）、その後、図２に示した一連のステップ１０２〜１１５と同様のステップ２０２〜２１５をそれぞれ実行する。
【００３７】
そこで、サブプロセッサ制御部４は、サブプロセッサ３からブレークが発生したことを示すＡＣＫを受け取ると、命令キュー格納部３３に格納された分岐アドレスに基づいて、デバッグ実行部１１に対してＰＣの書き換え命令である分岐アドレス処理命令（que4）を送出する（２１６）。この命令を受けたデバッグ実行部１１の制御部２６は、プロセッサ制御部２３により分岐アドレスを設定し（２１７）、サブプロセッサコア１０に対して、実行中のプログラムから修正プログラムに分岐して処理を継続させるための指示を送出させる（２１８）。これにより、サブプロセッサコア１０は、通常実行するプログラムを格納するメモリ（マスクＲＯＭ）１３おける分岐アドレスからデュアルポートＲＡＭ１５に書き込まれた修正プログラムに分岐して処理を実行し（２１９）、その後は、通常実行するプログラムに戻って動作を継続することになる。これにより、一連のプログラム修正処理は終了する。
【００３８】
このようなプログラム修正処理により、サブプロセッサ３が実行するプログラムに不具合が生じた場合に、当該不具合が生じたプログラムの内容を変更することなく、そのプログラムの一部を修正プログラムで代替することによって、不具合が生じたプログラムを容易に修正することが可能となる。
【００３９】
図４は、サブプロセッサのプログラムの実行ログ（プログラムの動作記録）を取得するための処理を示す動作シーケンス図である。
【００４０】
まず、メインプロセッサ２は、取得するログの開始アドレス及び実行アドレスを設定し（３０１）、その情報を実行ログの取得処理の命令とともにサブプロセッサ制御部４に送出する（３０２）。そこで、サブプロセッサ制御部４において、制御部３６は取得した処理命令と取得するログの開始アドレス及び実行アドレスを命令キュー格納部３３に格納し（３０３）、続いて、サブプロセッサ３の停止命令（que1）をサブプロセッサ３のデバッグ実行部１１に対して送出する（３０４）。この命令を受けたデバッグ実行部１１は、サブプロセッサコア１０に対してモニタ割り込みを発行する（３０５）。これにより、サブプロセッサコア１０では、モニタ割り込みが発生し（３０６）、サブプロセッサ３はサブプロセッサ制御部４に対してＡＣＫを送出する（３０７）。
【００４１】
次に、サブプロセッサ制御部４は、命令キュー格納部３３に格納されたログ開始アドレスに基づいて、ＥＴＭインタフェース部２２にログ開始アドレスを設定して（３０８）、トレース出力（実行ログの出力）の許可命令（que2）を送出する（３０９）。この命令を受けたデバッグ実行部１１の制御部２６は、プロセッサ制御部２３によりトレースを設定し（３１０）、サブプロセッサコア１０に対して所定のアドレスからのトレース出力を指示させる（３１１）。これにより、サブプロセッサ３はサブプロセッサ制御部４に対してＡＣＫを送出する（３１２）。
【００４２】
次に、サブプロセッサ制御部４は、命令キュー格納部３３に格納された実行アドレスに基づいて、デバッグ実行部１１に対してＰＣの書き換え処理命令（que3）を送出する（３１３）。この命令を受けたデバッグ実行部１１の制御部２６は、プロセッサ制御部２３にＰＣの値を設定し（３１４）、この設定した値に基づきサブプロセッサコア１０にプログラム動作を開始させる（３１５）。そこで、サブプロセッサコア１０は、プログラム動作を開始した後、トレース開始アドレスの命令をフェッチし（３１６）、サブプロセッサ制御部４のＥＴＭ入力部３５に対してＥＴＭデータの送出を開始する（３１７）。このとき、プログラム動作は継続されてＥＴＭデータが継続的に送出され、ある時点で目的とするログ開始アドレスのＥＴＭデータが送出されると（３１８）、サブプロセッサ制御部４はデータ格納部３４にＥＴＭデータの格納を開始する（３１９）。このようにログ開始アドレスを設定して必要な実行ログのみを取得することで、バッファ（データ格納部３４）の容量を小さくすることが可能となる。そこで、データ格納部３４の容量がフルになると（３２０）、サブプロセッサ制御部４は、メインプロセッサ２に対してＩＲＱを送出し（３２１）、このＩＲＱを受け取ったメインプロセッサ２は、データ格納部３４からトレースデータをリードする（３２２）。これにより、一連の実行ログの取得処理は終了する。
【産業上の利用可能性】
【００４３】
本発明に係るマイクロプロセッサシステムは、製品開発段階では外部のデバッガを利用して第１のプロセッサのデバッグ処理を実行可能とする一方、外部のデバッガから制御信号を入力できない場合であっても、既存のハードウェアを利用することで、簡易な構成によって同様のデバッグ処理を実行することができるので、複数のプロセッサを内蔵するマイクロプロセッサシステムとして有用である。
【図面の簡単な説明】
【００４４】
【図１】本発明に係るマイクロプロセッサシステムの概略構成を示すブロック図
【図２】図１のサブプロセッサに実行させるメモリリード処理の動作シーケンス図
【図３】図１のサブプロセッサに実行させるプログラム修正処理の動作シーケンス図
【図４】図１のサブプロセッサに実行させる実行ログの取得処理の動作シーケンス図
【符号の説明】
【００４５】
１    
【００４６】
マイクロプロセッサシステム
２  メインプロセッサ
３  サブプロセッサ
４  サブプロセッサ制御部
５  デバッガ
８  ＪＴＡＧ信号セレクタ
１０  サブプロセッサコア
１１  デバッグ実行部
１５  デュアルポートＲＡＭ
３３  命令キュー格納部
３４  データ格納部
３５  ＥＴＭ入力部
【図１】
2007304972.tif 000003
【図２】
2007304972.tif 000004
【図３】
2007304972.tif 000005
【図４】
2007304972.tif 000006