(57)【要約】【課題】低コストにプロセッサ間通信と、それに対応するプログラムの遷移前後の関連性に係る情報をトレースする。【解決手段】マルチプロセッサシステムのトレースにおいて、プロセッサ間通信の発行数を発生順にカウントするカウンタを備え、プロセッサ間通信のプログラム実行履歴をメモリへ格納する際に、プログラム実行履歴のアドレスの一部を前記カウンタのカウント値に置き換え、メモリの未使用領域を示すアドレスにし、改変後プログラム実行履歴として格納する。メモリから取り出した改変後プログラム実行履歴のアドレスがメモリの未使用領域を示す場合、置き換えられたカウンタのカウント値を取り出すとともに置き換える前のアドレスに復元する。【選択図】図１
2010009201.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサ部と、前記複数のプロセッサ部に接続され、プロセッサ間通信の処理を行うプロセッサ間通信部と、前記複数のプロセッサ部に接続され、前記プロセッサ間通信で発生した順序情報を管理する順序情報管理部と、前記複数のプロセッサ部にそれぞれ接続され、前記それぞれのプロセッサ部のプログラム実行履歴から前記プロセッサ間通信に係る実行履歴の一部を前記順序情報管理部の示す前記順序情報の値に置き換えて、前記複数のプロセッサ部の改変後プログラム実行履歴を作る複数の置換部と、前記複数の置換部にそれぞれ接続され、前記改変後プログラム実行履歴をそれぞれ格納する複数のプログラム実行履歴記憶部と、を備えたことを特徴とするプロセッサ。
【請求項２】
前記プロセッサ間通信に係る実行履歴の一部は、前記プロセッサ間通信部のデータへアクセスするプログラム実行履歴のアドレス情報のうち、置き換えにより前記データへのアクセス先として無効となるアドレスのビットフィールドであることを特徴とする請求項１記載のプロセッサ。
【請求項３】
前記データへのアクセス先とした無効となるアドレスは、メモリの未使用領域を示すアドレスであることを特徴とする請求項２記載のプロセッサ。
【請求項４】
前記プロセッサ間通信に係る実行履歴の一部は、前記プロセッサ間通信部からの割込み要求により、割込みハンドラへ分岐したことを示すアドレス情報のうち、置き換えによりプログラムの未実装領域を示すアドレスのビットフィールドであることを特徴とする請求項１記載のプロセッサ。
【請求項５】
前記プロセッサ間通信に係る実行履歴の一部は、前記プロセッサ間通信の処理を行う命令の実行履歴のプログラムカウンタが示す命令のアドレス情報のうち、置き換えによりプログラムの未実装領域を示すアドレスのビットフィールドであることを特徴とする請求項１記載のプロセッサ。
【請求項６】
前記順序情報管理部は、複数のプロセッサ間で共通したプロセッサ間通信の発行数をカウントするカウンタであることを特徴とする請求項１〜５のいずれか１項に記載のプロセッサ。
【請求項７】
請求項１〜６のいずれか１項に記載のプロセッサと、複数のプログラム実行履歴記憶部にそれぞれ接続され、置換部で作成した改変後プログラム実行履歴から順序情報とプログラム実行履歴を復元する複数のプログラム実行履歴再構築部と、前記複数のプログラム実行履歴再構築部に接続され前記順序情報と前記プログラム実行履歴を表示する表示部とを備えたことを特徴とするデバッグ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステム上で実行されるプログラムにおいて、プロセッサ間通信の順序性をトレースすることが可能なプロセッサおよびデバッグ装置に関するものである。
【背景技術】
【０００２】
近年、半導体製造技術分野の進展による微細化・高集積化に伴い、また複数の機能を効率よく実現するため、１つのチップで複数のプロセッサを搭載したＳｏＣ（System On Chip）の開発が行われている。これらのＳｏＣが搭載される携帯電話やデジタルスチルカメラなどのモバイル機器製品や、ＢＤ（Blu-ray Disc）やプラズマディスプレイなどのデジタル家電製品の普及が目覚しく、これらの製品の高機能化と低価格化・低消費電力化がますます重要となっている。
【０００３】
ところで、マルチプロセッサシステムはシステムを制御するため、複数のプロセッサ間で通信を行う必要がある。例えば、システムコントローラ用プロセッサが、メディア処理用プロセッサに処理の中断や再開を要求すること等があげられる。このような複数のプロセッサ間の通信が頻繁に発生するシステムにおけるプログラムを開発するに当たり、複数のプロセッサで実行されるプログラム実行履歴を取得し、プロセッサ間の通信による処理要求に対応するプログラムの遷移を正確に知ることは有用である。
【０００４】
トレース情報としてプログラム実行履歴をデバッガに通知するためのチップ外部のデバッガとの通信は低速であるため、プロセッサと同じチップ内部にトレースメモリを備え、プログラム実行履歴を一時的にトレースメモリへ格納する必要がある。
【０００５】
マルチプロセッサシステムでプログラムを実行すると、プロセッサごとのトレースメモリへのプログラム実行履歴の格納は同期していない。そのため、デバッガが各プロセッサのトレースメモリからプログラム実行履歴を読み出しても、プロセッサ間通信とプロセッサ間通信に対応するプログラムの遷移前後の関連性はわからないため、デバッグ時の解析が困難となる課題があった。
【０００６】
そこで、従来のマルチプロセッサシステムにおけるプロセッサおよびデバッグ装置は、複数のプロセッサ間を跨ぐプログラムの前後の関連性をトレースするために、プロセッサ間通信が発生した時に同期用割込み信号を発生させ、同期用割込み信号を受理したプロセッサは同期信号マーク情報をトレースメモリに格納する構成であった（例えば、特許文献１参照）。また、同期用割込み信号を用いない場合、実時間を計測するためにトレースタイマを使用し、プロセッサ間通信が発生した時にトレースタイマの値をタイム値としてトレースメモリに格納する構成であった（例えば、特許文献２参照）。
【特許文献１】特開平２−２２８７４２号公報
【特許文献２】特開平３−１２７２５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、このような従来の構成では、トレースメモリに同期信号マーク情報やトレースタイマのタイム値等の不要な情報までトレースメモリに格納しており、複数のプロセッサにそれぞれ対応するトレースメモリの容量をそれぞれ増やす必要があり、コストが増加するという課題がある。
【０００８】
例えば、特許文献１ではプロセッサ間通信が発生するたびに、それぞれのプロセッサが同期信号マーク情報をそれぞれのトレースメモリに格納する必要がある。また、特許文献２では精度を保証するために、大きなタイム値をプロセッサ間通信のたびにトレースメモリに格納する必要がある。
【０００９】
つまり、各特許文献においては、プロセッサ部に同期信号マークを生成する機能を追加する必要があり、また、プログラム記憶部には同期用割り込みハンドラのプログラムを追加する必要があり、プログラム実行履歴記憶部では同期信号マークやタイム値を格納するために記憶容量を増やす必要があり、これら「プロセッサ部」、「プログラム記憶部」、「プログラム実行履歴記憶部」の既存ブロックを修正することが必要であった。
【００１０】
本発明は、前記従来技術の問題を解決するものであり、従来の既存ブロックを修正することなく、周辺に機能を追加するだけで、低コストにプロセッサ間通信と、それに対応するプログラムの遷移前後の関連性に係る情報をトレースすることができるプロセッサおよびデバッグ装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前記の目的を達成するために、本発明に係る請求項１に記載したプロセッサは、複数のプロセッサ部と、複数のプロセッサ部に接続され、プロセッサ間通信の処理を行うプロセッサ間通信部と、複数のプロセッサ部に接続され、プロセッサ間通信で発生した順序情報を管理する順序情報管理部と、複数のプロセッサ部にそれぞれ接続され、それぞれのプロセッサ部のプログラム実行履歴からプロセッサ間通信に係る実行履歴の一部を順序情報管理部の示す順序情報の値に置き換えて、複数のプロセッサ部の改変後プログラム実行履歴を作る複数の置換部と、複数の置換部にそれぞれ接続され、改変後プログラム実行履歴をそれぞれ格納する複数のプログラム実行履歴記憶部と、を備えたことを特徴とする。
【００１２】
また、請求項２，３に記載したプロセッサは、請求項１のプロセッサであって、プロセッサ間通信に係る実行履歴の一部は、プロセッサ間通信部のデータへアクセスするプログラム実行履歴のアドレス情報のうち、置き換えによりデータへのアクセス先として無効となるアドレスのビットフィールドであること、さらに、データへのアクセス先とした無効となるアドレスは、メモリの未使用領域を示すアドレスであることを特徴とする。
【００１３】
また、請求項４，５に記載したプロセッサは、請求項１のプロセッサであって、プロセッサ間通信に係る実行履歴の一部は、プロセッサ間通信部からの割込み要求により、割込みハンドラへ分岐したことを示すアドレス情報のうち、置き換えによりプログラムの未実装領域を示すアドレスのビットフィールドであること、また、プロセッサ間通信の処理を行う命令の実行履歴のプログラムカウンタが示す命令のアドレス情報のうち、置き換えによりプログラムの未実装領域を示すアドレスのビットフィールドであることを特徴とする。
【００１４】
また、請求項６に記載したプロセッサは、請求項１〜５のプロセッサであって、順序情報管理部は、複数のプロセッサ間で共通したプロセッサ間通信の発行数をカウントするカウンタであることを特徴とする。
【００１５】
また、請求項７に記載したデバッグ装置は、請求項１〜６のいずれか１項に記載のプロセッサと、複数のプログラム実行履歴記憶部にそれぞれ接続され、置換部で作成した改変後プログラム実行履歴から順序情報とプログラム実行履歴を復元する複数のプログラム実行履歴再構築部と、複数のプログラム実行履歴再構築部に接続され順序情報とプログラム実行履歴を表示する表示部とを備えたことを特徴とする。
【００１６】
前記プロセッサおよびデバッグ装置によれば、マルチプロセッサシステムにおいて、プロセッサ部間の同期をとるため、トレースするプログラム実行履歴のうち不要な情報を、プロセッサ間通信の遷移する前後の関連性を示す情報に置き換えることから、トレースに用いるプログラム実行履歴を格納するメモリの使用領域を増やすことなく処理することができる。
【発明の効果】
【００１７】
本発明によれば、マルチプロセッサシステムにおいて、プロセッサ部間の同期をとるために、トレースするプログラム実行履歴のうち不要な情報を、プロセッサ間通信の遷移する前後の関連性を示す情報に置き換えることから、従来技術に対し、プロセッサ部、プログラム記憶部、プログラム実行履歴記憶部に同期信号マーク情報生成の機能やトレースタイマのタイム値の格納領域を追加等の改変することなく、かつコストの上昇を抑えることができる優れた効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明における実施の形態を詳細に説明する。
【００１９】
図１は本発明の実施形態におけるプロセッサおよびデバッグ装置を示すブロック図である。図１において、プロセッサ部１ａと、プロセッサ部１ｂと、プログラム記憶部２と、プロセッサ間通信部３と、順序情報管理部４と、置換部５ａと、置換部５ｂと、プログラム実行履歴記憶部６ａと、プログラム実行履歴記憶部６ｂと、プログラム実行履歴再構築部７ａと、プログラム実行履歴再構築部７ｂと、表示部８から構成される。
【００２０】
図１のように構成されたプロセッサおよびデバッグ装置において、プロセッサ部１ａで実行されるプログラムが、図２で示すメモリマップにおけるＩ／Ｏ領域１２の特定アドレスに割り当てられたプロセッサ間通信部３にデータアクセスすることによって、プロセッサ部１ｂに処理を要求する。
【００２１】
プロセッサ間通信部３は、プロセッサ部１ａからのデータアクセスに従い、プロセッサ部１ｂへ割込み要求を発行する。プロセッサ部１ｂはプロセッサ間通信部３からの割込み要求により、例えば図２のメモリマップにおける命令／データ領域１１または命令／データ領域１４等に割り当てられた割込みベクトルへ遷移して割込み処理を行い、プロセッサ部１ａから指示された別のプログラムを起動する。
【００２２】
前記のような処理を行った後で、プロセッサ部１ａのプログラム実行履歴より、図２のメモリマップにおけるＩ／Ｏ領域１２の特定アドレスにデータにアクセスして情報を抽出し、プロセッサ間通信部３へのデータにアクセスした発生回数を順序情報管理部４により順序情報として発生した順にカウントアップする。
【００２３】
置換部５ａは、プロセッサ部１ａがプロセッサ間通信部３にデータアクセスしたプログラム実行履歴のアドレスのうち、例えば図３で示すアドレスでＡ２９〜Ａ１６のビットフィールドを、順序情報管理部４のカウント値（順序情報）に置き換え、プロセッサ部１ａの図２で示すメモリマップの未使用領域１３を示すアドレスに変換し、改変後プログラム実行履歴としてプログラム実行履歴記憶部６ａへ格納する。
【００２４】
また、置換部５ｂは、プロセッサ部１ｂのプログラム実行履歴より割込み情報を抽出し、プロセッサ間通信部３からの割込みによって割込みハンドラへ遷移したプログラム実行履歴の分岐先アドレスのうち、例えば図３で示すＡ２９〜Ａ１６のビットフィールドを、順序情報管理部４のカウント値（順序情報）に置き換え、プロセッサ部１ｂの図２で示すメモリマップの未使用領域１３を示すアドレスに変換し、改変後プログラム実行履歴としてプログラム実行履歴記憶部６ｂへ格納する。
【００２５】
ここで、メモリの未使用領域となるアドレスは、通常、組み込み型マイクロコンピュータ等のＬＳＩの設計時に決定されるため、ＬＳＩの設計時においてプログラム実行履歴再構築部にメモリの未使用領域を設定しておき、改変後プログラム実行履歴のアドレスが前述の設定された領域を示すアドレスであれば、「メモリの未使用領域」であることの判断に用いる。
【００２６】
その後、プログラム実行履歴記憶部６ａより取り出される改変後プログラム実行履歴のデータアクセス（割込み）情報が、プロセッサ部１ａの図２で示すメモリマップの未使用領域１３である時、プログラム実行履歴再構築部７ａは置換部５ａによってアドレスが置き換えられていると判断し、改変後プログラム実行履歴のアドレスのうち、図３で示すＡ２９〜Ａ１６のビットフィールドより順序情報を取り出す。それとともに、アドレスを図３で示すＡ２９〜Ａ１６のビットフィールド以外のビットからプロセッサ部１ａがプロセッサ間通信部３へデータアクセスした際の図２で示すＩ／Ｏ領域１２のアドレスに復元する。
【００２７】
また同様に、プログラム実行履歴記憶部６ｂより取り出される改変後プログラム実行履歴の割込み情報の分岐先アドレスが、プロセッサ部１ｂの図２で示すメモリマップの未使用領域１３である時、プログラム実行履歴再構築部７ｂは置換部５ｂによってアドレスが置き換えられていると判断し、改変後プログラム実行履歴の割込みによる分岐先アドレスのうち、図３で示すＡ２９〜Ａ１６のビットフィールドより順序情報を取り出す。それとともにアドレスを図３で示すＡ２９〜Ａ１６のビットフィールド以外のビットから、プロセッサ部１ｂが割込みにより分岐した際の図２で示す命令／データ領域１１または命令／データ領域１４のアドレスに復元する。
【００２８】
具体的には、メモリ領域を示すアドレスのビットフィールドのうち、一部の冗長な情報の置き換えを行う。例えば、図２のメモリマップの場合、アドレスのＡ３１，Ａ３０が「０」，「０」であればアドレスは「０ｘ００００００００」〜「０ｘ３ＦＦＦＦＦＦＦ」となる。このうち、「０ｘ０００１００００」〜「０ｘ３ＦＦＦＦＦＦＦ」は未使用領域１３であることから、使用領域へアクセスするアドレスのＡ２９〜Ａ１６のビットフィールドは必ず全ビット「０」となり、有効な領域（命令／データ領域１１，Ｉ／Ｏ領域１２）は「０ｘ００００００００」〜「０ｘ００００ＦＦＦＦ」だと判断できるため、Ａ２９〜Ａ１６のビットフィールドは冗長（不要）な情報と判断できる。
【００２９】
いま、プログラム実行履歴のアドレスが「０ｘ００００８０００」で、不要な情報と置き換えるカウント値を「３」とすると、図２のメモリマップの場合、「０ｘ００００８０００」とカウント値をシフトした「０ｘ０００３００００」との論理和から「０ｘ０００３８０００」に置き換えて改変後プログラム実行履歴を作成する。
【００３０】
また、作成したアドレス「０ｘ０００３８０００」からビットフィールドＡ２９〜Ａ１６を抜き出すために、「０ｘ０００３８０００」と「０ｘ３ＦＦＦ００００」との論理積から求めた値をシフトすると「０ｘ０００００００３」のカウント値を復元でき、また同様に、「０ｘ０００３８０００」と「０ｘＣ０００ＦＦＦＦ」との論理積から「０ｘ００００８０００」のプログラム実行履歴のアドレスを復元できる。
【００３１】
なお、前述した置き換えによりデータへのアクセス先として無効となるアドレス（メモリの未使用領域）に代えて、プログラムの未実装領域としても良い。通常のプログラムにおける分岐／割り込み時の分岐先のアドレスは、命令領域（プログラムの実装領域）となるが、このアドレスを図２に示すデータ領域やＩ／Ｏ領域１２等（プログラムの未実装領域）のアドレスに置き換えることで、本発明を実施することも可能である。
【００３２】
さらに、プロセッサ間通信部からの割込みによって割込みハンドラへ遷移したプログラム実行履歴の分岐先アドレスの情報に代えて、プロセッサ間通信の処理を行う命令の実行履歴のプログラムカウンタが示す命令のアドレス情報としても良い。
【００３３】
同様に、プロセッサ部１ｂで実行されるプログラムが、プロセッサ部１ｂの図２で示すメモリマップにおけるＩ／Ｏ領域１２の特定アドレスに割り当てられたプロセッサ間通信部３にデータアクセスすることによりプロセッサ部１ａに処理を要求する。
【００３４】
プロセッサ間通信部３はプロセッサ部１ｂからのデータアクセスに従い、プロセッサ部１ａへ割込み要求を発行する。プロセッサ部１ａはプロセッサ間通信部３からの割込み要求により、例えば図２のメモリマップにおける命令／データ領域１１または命令／データ領域１４等に割り当てられた割込みベクトルへ遷移して割込み処理を行い、プロセッサ部１ｂから指示された別のプログラムを起動する。
【００３５】
前記処理後で、プロセッサ部１ｂからのプログラム実行履歴より、図２で示すメモリマップにおけるＩ／Ｏ領域１２の特定アドレスのデータにアクセスして情報を抽出し、プロセッサ間通信部３へのデータにアクセスした発生回数を順序情報管理部４により発生した順にカウントアップする。
【００３６】
置換部５ｂは、プロセッサ部１ｂがプロセッサ間通信部３にデータアクセスしたプログラム実行履歴のアドレスのうち、例えば図３で示すＡ２９〜Ａ１６のビットフィールドを、順序情報管理部４のカウント値（順序情報）に置き換え、プロセッサ部１ｂの図２で示すメモリマップの未使用領域１３を示すアドレスに変換し、改変後プログラム実行履歴としてプログラム実行履歴記憶部６ｂへ格納する。
【００３７】
また、置換部５ａは、プロセッサ部１ａのプログラム実行履歴より割込み情報を抽出し、プロセッサ間通信部３からの割込みによって割込みハンドラへ遷移したプログラム実行履歴の分岐先アドレスのうち，例えば図３で示すＡ２９〜Ａ１６のビットフィールドを、順序情報管理部４のカウント値（順序情報）に置き換え、プロセッサ部１ａの図２で示すメモリマップの未使用領域１３を示すアドレスに変換し、改変後プログラム実行履歴としてプログラム実行履歴記憶部６ａへ格納する。
【００３８】
その後、プログラム実行履歴記憶部６ｂより取り出される改変後プログラム実行履歴のデータアクセス（割込み）情報が、プロセッサ部１ｂの図２で示すメモリマップの未使用領域１３である時、プログラム実行履歴再構築部７ｂは置換部５ｂによってアドレスが置き換えられていると判断し、改変後プログラム実行履歴のアドレスのうち、図３で示すＡ２９〜Ａ１６のビットフィールドより順序情報を取り出す。それとともにアドレスを図３で示すＡ２９〜Ａ１６のビットフィールド以外のビットからプロセッサ部１ｂがプロセッサ間通信部３へデータアクセスした際の図２で示すＩ／Ｏ領域１２のアドレスに復元する。
【００３９】
同様に、プログラム実行履歴記憶部６ａより取り出される改変後プログラム実行履歴の割込み情報の分岐先アドレスが、プロセッサ部１ａの図２で示すメモリマップの未使用領域１３である時、プログラム実行履歴再構築部７ａは置換部５ａによってアドレスが置き換えられていると判断し、改変後プログラム実行履歴の割込みによる分岐先アドレスのうち、図３で示すＡ２９〜Ａ１６のビットフィールドより順序情報を取り出す。それとともにアドレスを図３で示すＡ２９〜Ａ１６のビットフィールド以外のビットから、プロセッサ部１ａが割込みにより分岐した際の図２で示す命令／データ領域１１または命令／データ領域１４のアドレスに復元する。
【００４０】
そして、表示部８は、プログラム実行履歴再構築部７ａとプログラム実行履歴再構築部７ｂからプロセッサ部１ａ，１ｂのプロセッサ間通信および、それに対応する割込みの順序情報と、プログラム実行履歴を取得し、トレース情報としてプログラム開発者へ表示する。
【００４１】
例えば、図４で示すようなプロセッサ部１ａ，１ｂのプログラム実行履歴を置換部５ａ，５ｂにおいて、図５で示す改変後プログラム実行履歴としてプログラム実行履歴記憶部６ａ，６ｂに格納し、プログラム実行履歴再構築部７ａ，７ｂにおいて、プログラム実行履歴記憶部６ａ，６ｂから取り出された改変後プログラム実行履歴を図６で示すプログラム実行履歴と順序情報に復元し、図７で示すように表示部８で表示する。
【００４２】
順序情報管理部４の持つカウンタは、表示部８で一度に表示できるプログラム実行履歴数の３倍以上の値をカウントできるビット数で構成されることにより、プロセッサ間通信の発生と対応する割込みの履歴の順序情報に関連付けして表示する。
【００４３】
以上のように、本実施形態によれば、プロセッサ部１ａ，１ｂにおいて実行されるプログラムが、プロセッサ間通信部３にデータアクセスするプロセッサ間通信のアクセス回数を順序情報管理部４により発生順にカウントし、プログラム実行履歴記憶部６ａ，６ｂへ格納するため改変後プログラム実行履歴のアドレスを置換部５ａ，５ｂで、それぞれプロセッサ部１ａ，１ｂの未使用領域のアドレスとなるよう置き換え、さらにプログラム実行履歴再構築部７ａ，７ｂでそれぞれのプロセッサ部１ａ，１ｂのプログラム実行履歴と順序情報とに復元する。このため、プロセッサ部に同期信号マーク情報生成の機能を追加することなく、またトレースタイマのタイム値を格納できる大きなプログラム実行履歴記憶部を用意することもなく、メモリマップにおけるメモリ未使用領域を利用してプロセッサ部１ａ，１ｂのプログラム実行履歴と順序情報を表示部８に通知し表示することができる。
【００４４】
なお、本実施形態はプロセッサ部の数が「２」の場合で説明しているが、プロセッサ部の数が「２」以外でも置換部とプログラム実行履歴記憶部とプログラム実行履歴再構築部をそれぞれ備えることによって、それぞれのプロセッサのプログラム実行履歴とプロセッサ間通信の遷移する前後の関連性を表示部に通知することができる。
【００４５】
また、本実施形態において、置換部５ａ，５ｂにより図３で示すアドレスのうち、Ａ２９〜Ａ１６のビットフィールドを置き換えてメモリマップの未使用領域を用いた例を示したが、プログラム実行履歴再構築部７ａ，７ｂでデータアクセスする際に選択しえないアドレスとして認識できるならば、置き換えるのはＡ２９〜Ａ１６のビットフィールドに限られるものではない。例えば、アドレス全体を置き換えて図２の示すアクセス禁止領域を示すアドレスとしてもよい。
【００４６】
また、本実施形態において、順序情報管理部４はプロセッサ間通信部３へのアクセス発生回数をカウントアップしたが、カウントダウンなど、どのようなカウントの仕方でもよい。
【００４７】
また、本実施形態において、プロセッサ間通信の発行と、それに対応する割込みの実行履歴の両方を置換部５ａ，５ｂで置き換えているが、プロセッサ間通信による割込みの処理要求がどのプロセッサ部から発行されたものか一意に決定できるプログラム実行履歴が得られるならば、プロセッサ間通信の発行の実行履歴だけ置き換え、割込みの実行履歴を置き換えなくても、それぞれのプロセッサのプログラム実行履歴とプロセッサ間通信の遷移する前後の関連性がわかる。例えば、プロセッサ間通信部３からの割込み要求の種類がプロセッサ部の数だけ存在し、プロセッサ部１ａ，１ｂは割込み要求の種類によってそれぞれ異なる割込みハンドラへ分岐する場合は、プロセッサ間通信の実行履歴だけ置き換えればよい。
【産業上の利用可能性】
【００４８】
本発明に係るプロセッサおよびデバッグ装置は、マルチプロセッサシステムにて、プロセッサ部間の同期をとるために、トレースするプログラム実行履歴のうち不要な情報を、プロセッサ間通信の遷移する前後の関連性を示す情報に置き換えて、プロセッサ部、プログラム記憶部、プログラム実行履歴記憶部を改変することなく、かつコストの上昇を抑えることができ、マルチプロセッサシステム上で実行されるプログラムのプロセッサ間通信の順序性に係るトレースとして有用である。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施形態におけるプロセッサおよびデバッグ装置を示すブロック図
【図２】本実施形態におけるプロセッサ部のメモリマップを示す図
【図３】本実施形態におけるプロセッサ部のアドレスフィールドを示す図
【図４】本実施形態におけるプロセッサ部のプログラム実行履歴の例を示す図
【図５】本実施形態におけるプロセッサ部の改変後プログラム実行履歴の例を示す図
【図６】本実施形態における改変後プログラム実行履歴を復元したプログラム実行履歴と順序情報を示す図
【図７】本実施形態におけるプロセッサ部のプログラム実行履歴の表示例を示す図
【符号の説明】
【００５０】
１ａ，１ｂ  プロセッサ部
２  プログラム記憶部
３  プロセッサ間通信部
４  順序情報管理部
５ａ，５ｂ  置換部
６ａ，６ｂ  プログラム実行履歴記憶部
７ａ，７ｂ  プログラム実行履歴再構築部
８  表示部
１１，１４  命令／データ領域
１２  Ｉ／Ｏ領域
１３，１５  未使用領域
１６  アクセス禁止領域
【図１】
2010009201.tif 000003
【図２】
2010009201.tif 000004
【図３】
2010009201.tif 000005
【図４】
2010009201.tif 000006
【図５】
2010009201.tif 000007
【図６】
2010009201.tif 000008
【図７】
2010009201.tif 000009