(57)【要約】【課題】  統合的なシステム動作の試験を可能にする。【解決手段】  動作状態保持手段１１は、プロセッサ２ａ、・・・、２ｂを含むマルチプロセッサ処理装置のプロセッサの個々の動作状態を保持し、システム状態保持手段１２は、統合的なシステム全体の動作状態を保持する。状態遷移手段１３は、ブレーク条件の成立やその他の要因で任意のプロセッサの動作状態が通常走行状態から試験走行状態に変化したことを検出すると、プロセッサの動作状態に応じてシステム状態を遷移させる。このとき、必要に応じて、動作状態が変化しなかった他のプロセッサの動作状態を通常走行状態から試験走行状態に遷移させる。そして、動作試験制御手段１４は、動作状態が試験走行状態となっているものについての動作試験を制御し、所定の動作試験を実行させる。【選択図】  図１
2005122375.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサ処理装置を構成するプロセッサで動作するプログラムの動作試験を行う動作試験装置において、
それぞれ独立に前記プログラムで動作する通常走行状態または試験プログラムで動作する試験走行状態にある前記プロセッサの個々の動作状態を保持する動作状態保持手段と、
前記プロセッサの動作状態を統合したシステム全体の動作状態を表すシステム状態を保持するシステム状態保持手段と、
任意の前記プロセッサの動作状態が前記試験走行状態に変化したことが検出されると、前記システム状態を所定の試験実行状態に遷移させるとともに、必要に応じて前記動作状態が変化したプロセッサ以外の前記プロセッサの動作状態を前記試験走行状態に遷移させる状態遷移手段と、
前記動作状態が前記試験走行状態となった前記プロセッサで動作する前記試験プログラムによる動作試験を制御する動作試験制御手段と、
を具備することを特徴とする動作試験装置。
【請求項２】
前記動作試験装置は、任意の前記プロセッサの動作状態が前記試験走行状態に変化した場合に、他の前記プロセッサをすべて前記試験走行状態に遷移させる第１の動作試験モードと、他の前記プロセッサの動作状態を保持する第２の動作試験モードとを具備し、
前記状態遷移手段は、任意の前記プロセッサの動作状態の変化が検出された場合に、
前記第１の動作試験モードが設定されていれば、他の前記プロセッサの動作状態を前記試験走行状態に遷移させ、
前記第２の動作試験モードが設定されていれば、他の前記プロセッサの動作状態を操作しないことを特徴とする請求項１記載の動作試験装置。
【請求項３】
前記動作試験装置は、前記マルチプロセッサ処理装置を構成する複数の前記プロセッサに対して１台設けられることを特徴とする請求項１記載の動作試験装置。
【請求項４】
前記動作試験装置は、前記プロセッサが前記試験走行状態時にアクセスする装置であって複数の前記プロセッサで共有される共有装置を具備し、
前記動作試験制御手段は、前記プロセッサからの前記共有装置へのアクセス要求を保持する要求キューを前記プロセッサの数分設け、前記要求キューに保持されたアクセス要求に基づいて前記共有装置へのアクセス許可を制御することを特徴とする請求項１記載の動作試験装置。
【請求項５】
マルチプロセッサ処理装置を構成するプロセッサで動作するプログラムの動作試験方法において、
それぞれ独立に前記プログラムで動作する通常走行状態または試験プログラムで動作する試験走行状態にある前記プロセッサの個々の動作状態を監視し、
任意の前記プロセッサの動作状態が前記通常走行状態から前記試験走行状態に変化したことが検出されると、前記プロセッサの動作状態を統合したシステム全体の動作状態を表すシステム状態を所定の試験実行状態に遷移させ、
前記システム状態に応じて必要であれば、前記動作状態が変化したプロセッサ以外の前記プロセッサの動作状態を前記試験走行状態に遷移させ、
前記動作状態が前記試験走行状態となった前記プロセッサで動作する前記試験プログラムによる動作試験を制御する手順を有することを特徴とする動作試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動作試験装置および動作試験方法に関し、特に複数のプロセッサを具備するマルチプロセッサ処理装置に搭載されるプログラムの動作を制御し、プログラムまたはマルチプロセッサ処理装置自体の動作試験を行う動作試験装置および動作試験方法に関する。
【背景技術】
【０００２】
マルチプロセッサ処理装置は、各々独立のプログラムカウンタと主メモリを具備する複数のプロセッサがそれぞれのプログラムを実行するとともに、互いに緊密に連携を取りながら全体としてひとつの処理を行っている。このようなマルチプロセッサ処理装置で実行されるプログラムおよびマルチプロセッサ処理装置自体の動作を確認し、期待した動作をしなかった場合にその原因の調査のため、外部からプログラムの停止（ブレーク）、実行、メモリ内容の確認、修正を行うことによってプログラムの動作を確認することが可能な動作試験装置が用いられる。このような外部の専用の動作試験装置を用いた動作試験は、一般的にＩＣＥ（InCircuit Emulator）によるデバッグと呼ばれる。
【０００３】
従来のＩＣＥデバッグシステムについて説明する。図８は、従来のＩＣＥデバッグシステムの構成図である。図８は、単一のプロセッサに接続する構成例を示している。
ＩＣＥデバッグシステムは、動作試験においてプロセッサ動作を制御するデバッグ装置ＩＣＥ１０４、動作試験対象のプロセッサ１０１内部に組み込まれ、デバッグ時にプロセッサを制御するデバッグ支援装置１０３、およびユーザとのインタフェースをとる外部のパーソナルコンピュータ（ＰＣ）６から構成される。プロセッサ１０１は、通常の走行状態から、ブレーク条件の成立などによりＩＣＥ１０４の制御により動作するデバッグ走行状態に遷移する。この状態になると、ＩＣＥ１０４の指示によりデバッグ支援装置１０３経由でレジスタ、主メモリ１０２の内容確認、変更などを行うことができる。このとき、ユーザは、ＰＣ６を介して指示を入力することにより、プロセッサ内部の状態を調査することができる。
【０００４】
マルチプロセッサ対応のＩＣＥデバッグシステムは、図８に示した単一のプロセッサのデバッグ支援装置１０３がプロセッサごとに設けられる構造をとる。図９は、従来のマルチプロセッサ対応のＩＣＥデバッグシステムの構成図である。図８と同じものには同じ番号を付し、説明は省略する。
【０００５】
マルチプロセッサ群１０６を構成する個々のプロセッサ１０１ａ、１０１ｂ、・・・、１０１ｃは、それぞれの主メモリ１０２ａ、１０２ｂ、・・・、１０２ｃが接続しており、内部には、デバッグ支援装置１０３ａ、１０３ｂ、・・・、１０３ｃが１つずつ設けられている。ＩＣＥ１０４は共通で、デバッグ支援装置１０３ａ、１０３ｂ、・・・、１０３ｃに接続する。
【０００６】
各プロセッサ１０１ａ、１０１ｂ、・・・、１０１ｃは独立にデバッグ走行状態に遷移する。ユーザは、ＰＣ６によって対象となるプロセッサをＩＣＥ１０４に指示し、ＩＣＥ１０４は、選択されたデバッグ対象のプロセッサに対してデバッグ動作を行う。
【０００７】
また、共通デバッグ・カーネルを使用し、マルチプロセッサを同期させての始動、停止、ステッピングなどの処理を行うことにより、マルチプロセッサを搭載した情報処理装置に対応してデバッグが可能な動作試験装置もある（たとえば、非特許文献１参照。）。
【非特許文献１】“製品情報  デバッグツール  ＲｅａｌＶｉｅｗ  Ｄｅｂｕｇｇｅｒ（ＲＶＤ）”、［ｏｎｌｉｎｅ］、［平成１５年８月４日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｓｙｓ−ａｎｄｏｒ．ｃｏ．ｊｐ／ａｒｍ／ｒｖｄ．ｈｔｍ＞
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来の動作試験装置では、複数のプログラムを統合的にデバッグすることが難しいという問題点があった。
マルチプロセッサで動作するプログラムは一般的に、互いに協調して動作している。したがって、マルチプロセッサ処理装置のデバッグでは、複数のプロセッサ上で動く複数のプログラムを統合的に扱うことが必要である。このため、あるひとつのプロセッサで動くプログラムにのみ注目したデバッグでは、そのシステム全体のデバッグを行うことが困難である。
【０００９】
しかしながら従来のマルチプロセッサ向けのＩＣＥでは、それぞれのプロセッサで動くプログラムを独立に制御するだけで、システムとしてのデバッグは考えられていなかった。個々のプロセッサは、デバッグ走行状態と、通常走行状態の２つのステートを具備しており、この２つのステートを遷移しながらデバッグを行うが、プロセッサ間のステートは独立しており、互いに関係していない。このため、ユーザは、どのプロセッサで何をしているかを把握し、適切なプロセッサを選択してデバッグすることが必要になる。
【００１０】
また、複数のプロセッサが協調して行う動作をデバッグする場合、ある条件でプロセッサを同時に停止させるなど、複数のプロセッサ間でのデバッグ動作を同期させる必要が生じる。しかしながら、従来の動作試験装置では、同期させて停止させる場合であっても、ＩＣＥ１０４は、個々のデバッグ支援装置１０３ａ、１０３ｂ、・・・、１０３ｃに対して停止指令を出さなければならなかった。個々のデバッグ支援装置１０３ａ、１０３ｂ、・・・、１０３ｃは、それぞれ独立に動作しているため、全体を同期させて停止させることは難しかった。
【００１１】
このように、それぞれのプロセッサを個別に処理する従来の動作試験装置では、統合的なシステムデバッグをすることが難しかった。
また、プロセッサごとにデバッグ支援装置を持つこととなり、回路的にも冗長になるという問題点もある。
【００１２】
本発明はこのような点に鑑みてなされたものであり、統合的なシステム動作の試験が可能なマルチプロセッサ処理装置に適した動作試験装置および動作試験方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では上記問題を解決するために、図１に示すような動作試験装置が提供される。
動作試験装置は、マルチプロセッサ処理装置を構成する複数のプロセッサ２ａ、・・・、２ｂに接続する。個々のプロセッサは動作状態として、通常のプログラムを実行する通常走行状態と、通常のプログラム処理が停止し、試験プログラムが動作して動作試験が行われる試験走行状態を有する。また、動作試験装置は、個々のプロセッサ２ａ、・・・、２ｂの動作状態を保持する動作状態保持手段１１、個々のプロセッサ２ａ、・・・、２ｂの動作状態を統合したシステム全体の動作状態を保持するシステム状態保持手段１２、各プロセッサ２ａ、・・・、２ｂの動作状態を監視し、動作状態が試験走行状態に変化したプロセッサが検出されると、プロセッサの動作状態に応じて、システム状態を所定の試験実行状態に遷移させ、必要に応じて他のプロセッサの動作状態を遷移させる状態遷移手段１３、および各プロセッサ２ａ、・・・、２ｂの動作状態を判別し、試験走行状態のプロセッサがある場合には、このプロセッサについての動作試験の制御を行う動作試験制御手段１４を具備する。
【００１４】
このような動作試験装置によれば、マルチプロセッサ処理装置を構成する複数のプロセッサ２ａ、・・・、２ｂの個々の動作状態は、動作状態保持手段１１に保持され、統合的なシステム状態がシステム状態保持手段１２に保持されている。すべてのプロセッサ２ａ、・・・、２ｂの動作状態が本来のプログラムを実行する通常走行状態である場合、システム状態も通常走行状態になる。状態遷移手段１３は、ブレーク条件の成立やその他の要因で任意のプロセッサの動作状態が通常走行状態から試験走行状態に変化したことを検出すると、プロセッサの動作状態に応じてシステム状態を所定の試験実行状態に遷移させる。このとき、必要に応じて、動作状態が変化しなかった他のプロセッサの動作状態を通常走行状態から試験走行状態に遷移させる。そして、動作試験制御手段１４は、動作状態が試験走行状態となっているプロセッサあるいはこのプロセッサが実行しているプログラムについての動作試験を制御する。
【００１５】
これにより、個々のプロセッサの動作状態が一元管理されるとともに、これらのプロセッサの統合的な動作状態がシステム状態として管理され、動作試験時、必要に応じて、連携する他のプロセッサの動作状態を試験走行状態に遷移させることができる。
【００１６】
また、上記問題を解決するため、以下の手順を行うマルチプロセッサ処理装置の動作試験方法が提供される。
このような動作試験方法では、マルチプロセッサ処理装置を構成し、それぞれ独立に通常走行状態または試験走行状態で動作するプロセッサの個々の動作状態を監視する。また、プロセッサの動作状態を統合したシステム全体の状態を表すシステム状態は、個々のプロセッサの動作状態に応じて設定されている。そして、任意のプロセッサの動作状態が、通常走行状態から試験走行状態に変化したことが検出されると、プロセッサの動作状態に応じて、システム状態を所定の試験実行状態に遷移させる。また、システム状態に応じて必要であれば、動作状態が変化したプロセッサ以外のプロセッサの動作状態を試験走行状態に遷移させる。そして、動作状態が試験走行状態となったプロセッサに対する動作試験を制御する。
【００１７】
これにより、プロセッサの統合的な動作状態がシステム状態として管理される。また、任意のプロセッサの動作状態が試験走行状態に変化したことが検出されると、必要に応じて、他のプロセッサの動作状態が連携して試験走行状態に遷移される。
【発明の効果】
【００１８】
本発明は、マルチプロセッサ処理装置を構成する個々のプロセッサの動作状態を一元管理するとともに、個々のプロセッサの動作状態の変化に応じて、プロセッサの統合的なシステムの動作状態を設定して管理する。このとき、必要に応じて、他のプロセッサの動作状態も遷移させる。このように、統合的なプロセッサ状態を管理することにより、システム全体の統合的な動作試験が可能になる、という利点がある。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、本発明の実施の形態に適用される発明の概念図である。本発明の動作試験装置は、プロセッサ２ａ、・・・、２ｂに接続する１つのデバッグ支援装置１と、デバッグ支援装置１に接続するデバッグ装置（ＩＣＥ）３を具備する。
【００２０】
デバッグ支援装置１は、マルチプロセッサ処理装置を構成するプロセッサ２ａ、・・・、２ｂの動作状態を保持する動作状態保持手段１１、プロセッサの統合的な動作状態を表すシステム状態を保持するシステム状態保持手段１２、システム状態および必要に応じて個々のプロセッサの動作状態を遷移させる状態遷移手段１３、動作試験を制御する動作試験制御手段１４、動作試験時にプロセッサ２ａ、・・・、２ｂが実行する命令コードを保持する命令コード保持手段１５およびＩＣＥ３とのデータ交換を制御するインタフェース１６を有する。
【００２１】
動作状態保持手段１１は、マルチプロセッサを構成するプロセッサ数分の動作状態を保持する領域が設けられた記憶手段である。プロセッサ２ａ、・・・、２ｂのそれぞれの動作状態がコピーされ、動作状態保持手段１１に格納される。
【００２２】
ここで、各プロセッサ２ａ、・・・、２ｂは、通常のプログラムを実行する通常走行状態と、プログラムあるいはプロセッサの動作試験を行うための試験走行状態（以下、デバッグ走行状態とする）の２つの動作状態を有しており、プログラム要因、ブレーク条件成立、外部からの要因などにより、通常走行状態からデバッグ走行状態に遷移する。デバッグ走行状態になると、ＩＣＥ３からの指示により、レジスタ、メモリの内容確認、変更などを行うことができるようになる。
【００２３】
システム状態保持手段１２は、個々のプロセッサの動作状態とは別に、プロセッサの動作状態を統合したシステム全体の動作状態を表すシステム状態を保持する記憶手段である。システム状態には、すべてのプロセッサが通常走行状態である通常状態と、デバッグ走行状態となったプロセッサが存在する試験実行状態（以下、デバッグ状態とする）がある。デバッグ状態は、さらに、デバッグ対象に応じて、いくつかの状態をとることもできる。
【００２４】
状態遷移手段１３は、管理下のプロセッサ２ａ、・・・、２ｂの動作状態を監視し、通常走行状態からデバッグ走行状態に変化したことを検出すると、これに応じてシステム状態を遷移させる。システム状態は、マルチプロセッサ処理装置を構成する管理下のプロセッサ２ａ、・・・、２ｂの動作状態および予め設定されている動作試験モードに応じて規定される。例えば、管理下のプロセッサ２ａ、・・・、２ｂの動作状態がすべて通常走行状態であれば、システム状態もすべてのプロセッサが本来のプログラムを実行する、すなわち、システム全体が本来のプログラムを実行する通常状態になる。この状態で、任意のプロセッサの動作状態がデバッグ走行状態になると、システム状態も、ＩＣＥ３によるデバッグが行われる所定のデバッグ状態に遷移させる。デバッグ状態は、さらに、デバッグの内容に応じて、いくつかの動作モードを設けることができる。状態遷移手段１３は、動作モードによっては、動作状態がデバッグ走行状態に変化したプロセッサ以外のプロセッサの動作状態を、強制的にデバッグ走行状態に遷移させる。動作モードに応じたプロセッサの動作状態遷移の詳細については、後述する。
【００２５】
動作試験制御手段１４は、システム状態がデバッグ状態の場合、管理下のプロセッサ２ａ、・・・、２ｂのうち、動作状態がデバッグ走行状態になったものについて、ＩＣＥ３からの指示によるレジスタ、メモリの内容確認や、変更などのデバッグ処理を制御する。また、デバッグ時にプロセッサ２ａ、・・・、２ｂに実行させる試験プログラムが命令コード保持手段１５に用意されており、命令コード保持手段１５に格納された試験プログラムの命令コードを該当するプロセッサに実行させる実行制御も行う。
【００２６】
命令コード保持手段１５は、管理下のプロセッサ２ａ、・・・、２ｂがデバッグ走行状態の場合に実行する試験プログラムの命令コードを保持する記憶手段で、プロセッサごとに格納領域が設けられている。
【００２７】
インタフェース１６は、デバッグ支援装置１とＩＣＥ３との間の通信を制御する。
ＩＣＥ３は、デバッグ走行状態のプロセッサの動作を制御する指示を行うとともに、プロセッサのレジスタ、メモリ、などの内容の読み出し、変更などの指示を行って、デバッグ動作を制御する。
【００２８】
このような動作試験装置の動作について説明する。
マルチプロセッサ処理装置を構成するプロセッサ２ａ、・・・、２ｂは、本来のプログラムを実行する通常走行状態で各々動作している。この状態では、動作状態保持手段１１に保持されている個々のプロセッサの動作状態は、すべて通常走行状態であり、システム状態保持手段１２に保持されているプロセッサの動作状態を統合したシステム状態も通常状態になっている。
【００２９】
任意のプロセッサ２ａ、・・・、２ｂが何らかの要因で通常処理を停止し、動作状態を通常走行状態からデバッグが可能なデバッグ走行状態に遷移する。状態遷移手段１３は、個々のプロセッサの動作状態を監視しており、プロセッサがデバッグ走行状態になったことを検出すると、システム状態を所定のデバッグ状態に遷移させる。このとき、必要に応じて、他のプロセッサの動作状態をデバッグが可能なデバッグ走行状態に遷移させる。これにより、統合的なシステムデバッグのため、デバッグ操作が必要なプロセッサがデバッグ走行状態に遷移した状態となる。そして、デバッグ操作に必要のないプロセッサ、あるいは、デバッグ上、通常の処理を続行させたいプロセッサには、通常走行状態を継続させることができる。
【００３０】
動作試験制御手段１４は、システム状態が所定のデバッグ状態となったので、動作状態がデバッグ走行状態となったプロセッサに対するＩＣＥ３からの制御指示を受け付け、動作試験を制御する。このとき、該当プロセッサに命令コード保持手段１５に格納された試験プログラムを実行させる制御と、ＩＣＥ３の指示の実行制御が行われる。
【００３１】
以上の説明のように、本発明によれば、任意のプロセッサがデバッグ走行状態に遷移した場合、システム状態を所定のデバッグ状態に遷移させるとともに、必要に応じて、他のプロセッサをデバッグ走行状態に遷移させる。このように、システム状態に応じて、マルチプロセッサを構成する各プロセッサの動作状態を制御することにより、マルチプロセッサの統合的なデバッグを行うことが可能となる。
【００３２】
以下、本発明の実施の形態を、４つのプロセッサが連携して動作するマルチプロセッサシステムに適用した場合を例に図面を参照して詳細に説明する。
図２は、本発明の実施の形態であるマルチプロセッサシステム対応の動作試験装置の全体構成図である。図１と同じものには同じ番号を付し、説明は省略する。
【００３３】
本発明の実施の形態のマルチプロセッサシステム対応の動作試験装置は、マルチプロセッサシステム５を構成するプロセッサ２ａ、２ｂ、２ｃ、２ｄに接続するデバッグ支援装置１と、デバッグを制御するＩＣＥ３およびＰＣ６から構成される。
【００３４】
マルチプロセッサシステム５は、４つのプロセッサ２ａ、２ｂ、２ｃ、２ｄを具備しており、それぞれのプロセッサ２ａ、２ｂ、２ｃ、２ｄは、それぞれの主メモリ４ａ、４ｂ、４ｃ、４ｄを有し、それぞれのプログラムを実行する。また、各プロセッサ２ａ、２ｂ、２ｃ、２ｄは図示しない通信経路で接続されており、独立のプログラムを実行しながら、各プログラム同士は通信経路を介して緊密に連携をとっている。そして、マルチプロセッサシステム５全体としてひとつの処理を行っている。
【００３５】
デバッグ支援装置１は、デバッグ時にプロセッサ２ａ、２ｂ、２ｃ、２ｄの制御を行う。本発明では、デバッグ支援装置１は、プロセッサごとに設けられるのではなく、システムに１つ設けられる。デバッグ支援装置１は、プロセッサごとの動作状態とともに、それぞれの間を統合するシステム状態を保持し、双方の状態を管理することにより、マルチプロセッサの統合的なデバッグを可能にする。そして、デバッグ走行状態となった１または複数のプロセッサと通信し、１または複数のプロセッサが実行する１または複数のプログラムを同時にデバッグするための制御を行う。
【００３６】
このように、本発明では、１台のデバッグ支援装置によって、全体のシステム状態および各プロセッサの動作状態を統合的に管理することができる。さらに、複数のプロセッサに対して、１台のデバッグ支援装置が処理を行うため、プロセッサと１対１に対応させてデバッグ支援装置を備えていた従来の動作試験装置と比較し、冗長なデバッグ支援装置を省くことが可能となり、コストを削減することができる。
【００３７】
ここで、本発明の実施の形態のハードウェア構成について説明する。図３は、本発明の実施の形態のハードウェア構成例を示すブロック図である。図１と同じものには同じ番号を付し、説明は省略する。図の例では、複数のプロセッサを代表するプロセッサ２の構成を示している。他のプロセッサもすべて同様の構成をとる。
【００３８】
デバッグ支援装置１は、デバッグ用の命令コードを保持する命令コード保持手段１５を構成するデバッグ用命令メモリ１５ａ、インタフェース１６を構成するＩＣＥ  Ｉ／Ｆ１６ａ、装置全体を制御する制御ロジック部１７、処理に必要な情報データを一時保存するデバッグ用データメモリ１８、およびデバッグ空間バス１９を具備する。
【００３９】
デバッグ用命令メモリ１５ａは、デバッグ時にプロセッサ２の行う命令コードを格納しており、デバッグ空間バス１９を介してプロセッサ２がその命令コードを読み出すことができる。なお、デバッグ用命令メモリ１５ａには、複数のプロセッサの命令コードが格納されており、複数のプロセッサがデバッグ走行状態の場合には、制御ロジック部１７は、各プロセッサ２からのアクセス要求を管理し、許可を与えたプロセッサのみがアクセスできるようにする。
【００４０】
デバッグ用データメモリ１８は、デバッグ支援装置１の処理に必要な、少なくとも、個々のプロセッサの動作状態を保持する動作状態保持手段１１、およびシステム状態を保持するシステム状態保持手段１２のための領域が確保される。
【００４１】
制御ロジック部１７は、デバッグ支援装置１全体の制御を行うとともに、プロセッサの動作状態の監視やシステム状態の遷移を管理する状態遷移手段１３、およびデバッグ時の制御を行う動作試験制御手段１４として機能する。
【００４２】
ＩＣＥ  Ｉ／Ｆ１６は、デバッグ支援装置１とＩＣＥとの間の通信を制御するインタフェースであるとともに、デバッグ時には、デバッグ空間バス１９を介してデバッグ用命令メモリ１５ａおよびデバッグ用データメモリ１８へのＩＣＥからのアクセスを可能にする。デバッグ時、ＩＣＥは、ＩＣＥ  Ｉ／Ｆ１６を介してデバッグ空間バス１９に接続し、デバッグ用命令メモリ１５ａおよびデバッグ用データメモリ１８の内容の確認や変更を行うことができる。
【００４３】
一方、プロセッサ２は、制御を行うＩユニット２１、およびデバッグ空間バス１９とのインタフェースとなるＢＩＦユニット２３を具備する。
Ｉユニット２１は、内部にデバッグ関連の処理を行うデバッグ関連処理部２２を有する。通常は、図示しない主メモリのプログラムを実行しており、制御ロジック部１７からの制御信号に応じて、デバッグ関連処理部２２を起動し、デバッグに関する処理を行う。例えば、動作状態を遷移させる制御信号が入力された場合、動作状態を遷移させる処理を行う。ＢＩＦユニット２３は、デバッグ空間バス１９を介して、接続するデバッグ用命令メモリ１５ａやデバッグ用データメモリ１８へのアクセスを制御する。
【００４４】
なお、図示していないマルチプロセッサ処理装置を構成する他のプロセッサも同様に、デバッグ空間バス１９を介してデバッグ用命令メモリ１５ａおよびデバッグ用データメモリ１８に接続する。すなわち、デバッグ用命令メモリ１５ａおよびデバッグ用データメモリ１８は、複数のプロセッサで共有される。
【００４５】
以上のハードウェア構成により、本発明の実施の形態の動作試験装置の処理機能を実現することができる。
次に、システム状態について説明する。上記の説明のように、マルチプロセッサの統合的な動作状態としては、すべてのプロセッサが通常走行状態の通常状態と、少なくとも１つのプロセッサがデバッグ走行状態となっているデバッグ状態とがある。このデバッグ状態は、デバッグ対象に応じて、いくつかの動作モードをとることが望ましい。例えば、ある条件が成立したらすべてのプロセッサを停止させてデバッグを行いたい場合や、他のプロセッサが通常走行状態で動作していないと対象のプロセッサのデバッグができないため、対象のプロセッサのみデバッグ走行状態としたい場合などが想定される。
【００４６】
そこで、本発明では、任意のプロセッサの動作状態がデバッグ走行状態に変化した場合に、他のプロセッサの動作状態をすべてデバッグ走行状態とする第１の動作試験モードと、任意のプロセッサの動作状態がデバッグ走行状態に変化した場合であっても、他のプロセッサの動作状態を操作しない第２の動作試験モードとを具備する。これらの動作試験モードは、システム全体に対して、あるいは、個々のプロセッサに対して設定される。
【００４７】
なお、動作試験モードは、デバッグ対象のシステムにふさわしいモードを利用者が設定する。
以下、システム全体に対して設定された場合を例に、それぞれの動作試験モードについて説明する。
【００４８】
第１の動作試験モードがシステム全体に対して設定されると、マルチプロセッサ処理装置を構成するプロセッサで動作する少なくともひとつのプログラムにより、プロセッサがデバッグ走行状態に遷移した場合、すべてのプロセッサの動作状態をデバッグ走行状態に遷移させ、すべてのプログラムを停止させる。これは、ある条件下で、すべてのプロセッサのメモリ、レジスタなどの内部リソースの確認を行いたい場合に使用される。以下、このような動作試験モードをプライマリデバッグモードとする。
【００４９】
第２の動作試験モードがシステム全体に対して設定されると、マルチプロセッサ処理装置を構成するプロセッサで動作する少なくともひとつのプログラムにより、プログラムを実行していたプロセッサがデバッグ走行状態に遷移した場合であっても、それ以外のプロセッサの動作状態変更の操作は行わない。これにより、該当プロセッサ以外のプロセッサ上で動作しているプログラムは、今まで通り動作する。これは、他のプロセッサが動作していないと対象のプロセッサのデバッグができない場合などに使用される。以下、このような動作試験モードをエレメンタリデバッグモードとする。
【００５０】
次に、このような動作試験モードが設定された場合のシステム状態（以下、システムステートとする）の遷移について説明する。図４は、本発明の実施の形態の動作試験装置におけるシステムステートの遷移を示した図である。
【００５１】
すべてのプロセッサが通常走行状態の場合、システムステートは、通常状態（以下、ノーマルステートとする）３０になる。
この状態で、あるプロセッサにブレーク条件が成立するなどして、このプロセッサがデバッグ走行状態に遷移したことが検出されたとする。このブレーク発生によって、システムステートは、デバッグ状態（以下、デバッグステートとする）４０へ遷移する。
【００５２】
デバッグステートは、さらに、動作試験モードに応じて遷移する。
動作試験モードがプライマリデバッグモードであれば、システムステートは、すべてのプロセッサが強制的にデバッグ状態に遷移するマスタデバッグ（ＭＤ：Master Debug）ステートに遷移する。マスタデバッグ（ＭＤ）ステートは、すべてのプロセッサがデバッグ走行状態に遷移した状態であり、ＩＣＥからすべてのプロセッサのメモリ、レジスタなどの内部リソースの確認が可能となる状態を表す。
【００５３】
一方、動作試験モードがエレメンタリデバッグモードであれば、システムステートは、デバッグ走行状態に遷移したプロセッサのみがデバッグ可能な状態になる。これには、デバッグ走行状態となったプロセッサが１つの場合の単一デバッグ（ＥＤ：Exclusive Debug）ステート４２と、デバッグ走行状態となったプロセッサが複数の場合の共同デバッグ（ＳＤ：Shard Debug）ステート４３の状態がある。これらのステートは、ブレークが検出されたときに、デバッグ走行状態となっていたプロセッサの数に応じてどちらに遷移するかが規定される。
【００５４】
単一デバッグ（ＥＤ）ステート４２は、デバッグ走行状態にあるプロセッサだけがデバッグ支援装置からの命令に対してデバッグ処理を実行できる状態を表す。
共同デバッグ（ＳＤ）ステート４３は、複数のプロセッサがデバッグ走行状態にあり、この状態にある複数のプロセッサは同時にデバッグ支援装置からの命令に対してデバッグ処理を実行できる状態を表す。
【００５５】
なお、ある単一のプロセッサがデバッグ走行状態である単一デバッグ（ＥＤ）ステート４２の状態で、他の動作中のプロセッサがデバッグ走行状態になった場合は、システムステートは、共同デバッグ（ＳＤ）ステート４３へ遷移する。また、他のデバッグ走行状態がリセットされて通常走行状態となり、デバッグ走行状態のプロセッサが１つとなった場合は、システムステートは、単一デバッグ（ＥＤ）ステート４２に遷移する。
【００５６】
このように、プロセッサの統合的な動作状態を表すシステムステートを具備し、システムステートの遷移によってデバッグ状態を管理することにより、マルチプロセッサの統合的なデバッグを行うことができる。
【００５７】
ところで、マスタデバッグ（ＭＤ）ステート４１、あるいは、共同デバッグ（ＳＤ）ステート４３では、複数のプロセッサがデバッグ走行状態にある。この場合、デバッグ支援装置内のメモリ空間は、複数のプロセッサで共有されているため、複数のプロセッサから同時にアクセス要求が発生する可能性がある。そこで本発明では、デバッグ支援装置において、各プロセッサからのアクセスの調整を行う。図５は、本発明の実施の形態の動作試験装置におけるアクセス権の制御を示した図である。
【００５８】
本発明の実施の形態のデバッグ支援装置では、プロセッサ２ａ、２ｂ、２ｃ、２ｄに対して、それぞれのアクセス権要求を通知するための要求キュー５０ａ、５０ｂ、５０ｃ、５０ｄを有する。制御ロジック部１７は、要求キューを確認し、アクセス要求のあったプロセッサのうちの１つに対してアクセス許可を行う。そして、アクセスが許可されたプロセッサが、デバッグ用命令メモリ１５ａの読み出しを行う。読み出しが終了した場合、制御ロジック部１７は、要求キュー５０ａ、５０ｂ、５０ｃ、５０ｄを再度確認し、次のプロセッサにアクセス許可を与える。このように、本発明では、各プロセッサからの要求を要求キューに保持しておくことにより、要求に対して応答するプロセッサを選択できるようにしている。
【００５９】
次に、動作試験モードが、個々のプロセッサに対して設定された場合について説明する。このような設定は、デバッグ対象として着目するプロセッサについて、所定の条件が成立した場合に、デバッグを開始した場合に使用される。
【００６０】
デバッグ対象のプロセッサに対してプライマリデバッグモードが設定されていた場合、このプロセッサの動作状態がデバッグ走行状態に遷移したことが検出されると、すべてのプロセッサをデバッグ走行状態に遷移させ、実行中のプログラムを停止させる。
【００６１】
一方、エレメンタリデバッグモードは、あるプロセッサがデバッグ走行状態に遷移しても、他のプロセッサの動作状態を強制的にデバッグ走行状態に遷移させないという動作モードであるので、他のプロセッサが影響を受けることはない。
【００６２】
プライマリデバッグモードの設定は、デバッグ対象のプロセッサがデバッグ走行状態に遷移した場合に、すべてのプログラムを停止させ、レジスタやメモリの内容を確認した場合に使用される。この場合、着目する１つのプロセッサに対し、プライマリデバッグモードを設定し、他のプロセッサにエレメンタリデバッグモードを設定する。あるいは、システム全体をエレメンタリデバッグモードに設定し、着目するプロセッサのみプライマリデバッグモードが設定されるようにしてもよい。この場合、個別に設定された動作試験モードが優先されるようにしておく。
【００６３】
以上、マルチプロセッサを構成するプロセッサが対等である場合を想定して説明を行ったが、マルチプロセッサシステムによっては、親プログラムを実行する親プロセッサと、親プログラムによって起動される子プログラムを実行する子プロセッサという関係が成立する場合がある。このようなシステムでは、子プログラムによってこれを処理する子プロセッサがデバッグ走行状態に遷移したときに、子プログラムを起動した親プログラムを実行する親プロセッサに設定された動作試験モードで動作させたい場合がある。本発明では、このような親プログラムと子プログラムの関係に応じて、プロセッサの動作状態の遷移を行わせることもできる。図６は、本発明の実施の形態の動作試験装置におけるプロセッサ間の動作状態の遷移の関係を示した図である。
【００６４】
図の例では、親プログラムを実行する親プロセッサをプライマリプロセッサとし、親プログラムによって起動される子プログラムを実行する子プロセッサをセカンダリプロセッサとする。なお、プライマリプロセッサおよびセカンダリプロセッサは、固定されるものではない。
【００６５】
図に示したように、親プログラムを実行するプライマリプロセッサの動作状態であるプライマリプロセッサ状態６１は、独立に通常走行状態６２からデバッグ走行状態６３に遷移する。同様に、子プログラムを実行するセカンダリプロセッサの動作状態であるセカンダリプロセッサ状態６４は、自身のプログラム要因あるいはブレーク条件により通常走行状態６５からデバッグ走行状態６６に遷移することができる。
【００６６】
この状態で、セカンダリプロセッサ内でブレークが発生した場合、ブレークが発生したセカンダリプロセッサ状態６４は、通常走行状態６５からデバッグ走行状態６６に遷移する。セカンダリプロセッサは、ブレークが発生したことを通知するブレーク通知６８の割り込みをプライマリプロセッサに発生させる。
【００６７】
このとき、プライマリプロセッサの動作試験モードがプライマリデバッグモードの場合、プライマリプロセッサは、プライマリプロセッサ状態６１を通常走行状態６２からデバッグ走行状態６３に遷移させる。これに伴って、デバッグ支援装置は、すべてのプロセッサに対して動作状態をデバッグ走行状態に遷移させる。また、プライマリプロセッサがエレメンタリデバッグモードの場合、プライマリプロセッサは、動作状態を遷移させない。これにより、セカンダリプロセッサのみがデバッグ走行状態６６に遷移した状態となる。
【００６８】
一方、双方が通常走行状態で、プライマリプロセッサ内でブレークが発生した場合は、プライマリプロセッサ状態６１を通常走行状態６２からデバッグ走行状態６３に遷移させる。これば、上記の説明のプロセッサ間に親子の関係がない場合の動作状態の遷移と同様に、プライマリプロセッサの動作試験モードにより、他のプロセッサの動作状態が決まる。プライマリプロセッサの動作試験モードがプライマリデバッグモードの場合、デバッグ支援装置は、すべてのプロセッサに対して動作状態をデバッグ走行状態に遷移させる強制ブレーク６７を発生させ、セカンダリプロセッサ状態６４は、通常走行状態６５からデバッグ走行状態６６へ遷移する。エレメンタリデバッグモードの場合は、プライマリプロセッサのみがデバッグ走行状態６３になる。
【００６９】
このように、本発明を親子の関係を有するプログラムを実行するプロセッサ間に適用し、これに合ったデバッグ状態を作り出すことができる。
このほか、本発明を適用することにより、マルチプロセッサの統合的なデバッグが可能となる。
【００７０】
次に、本発明の実施の形態のマルチプロセッサ処理装置の動作試験方法について説明する。図７は、本発明の実施の形態のマルチプロセッサ処理装置の動作試験方法の手順を示したフローチャートである。
【００７１】
マルチプロセッサ処理装置が起動されるとともに、処理が開始される。
［ステップＳ０１］  処理が開始され、システムステートを保持するレジスタ、および個々のプロセッサの動作状態を保持するレジスタなどが初期化される。個々のプロセッサの動作状態は、それぞれのプロセッサから読み出し、レジスタにコピーする。
【００７２】
［ステップＳ０２］  管理下のプロセッサの動作状態を監視し、個々のプロセッサの動作状態が通常走行状態からデバッグ走行状態に変化したかどうかを調べる。変化がない場合は、監視を継続する。変化を検出した場合には、処理をステップＳ０３へ進める。
【００７３】
［ステップＳ０３］  動作試験モードがプライマリデバッグモードであるかどうかを判定する。プライマリデバッグモードであれば、処理をステップＳ０４へ進め、プライマリデバッグモードでなければ処理をステップＳ０６へ進める。
【００７４】
［ステップＳ０４］  プライマリデバッグモードの場合、強制ブレークを発行し、すべてのプロセッサの動作状態をデバッグ走行状態に遷移させる。
［ステップＳ０５］  システムステートをマスタデバッグ（ＭＤ）ステートに遷移させる。これにより、すべてのプログラムが停止され、すべてのプロセッサのメモリ、レジスタなどの内容確認と変更が可能となる。続いて、ステップＳ０９へ処理を進める。
【００７５】
［ステップＳ０６］  プライマリデバッグモードでない場合、現在のシステムステートを確認する。システムステートがノーマルステートである場合、処理をステップＳ０７へ進め、ノーマルステートでない場合には、処理をステップＳ０８へ進める。
【００７６】
［ステップＳ０７］  現在のシステムステートがノーマルステートの場合、デバッグ走行状態へ遷移したプロセッサが初めて検出されたと見なせるので、システムステートを単一デバッグ（ＥＤ）ステートに遷移させる。これにより、該当する唯一のプロセッサのみデバッグ対象となる。続いて、ステップＳ０９へ処理を進める。
【００７７】
［ステップＳ０８］  現在のシステムステートがノーマルステートでない場合、デバッグ走行状態に遷移したプロセッサが他にもあると見なせるので、システムステートを共同デバッグ（ＳＤ）ステートに遷移させる。これにより、該当する複数のプロセッサがデバッグ対象となる。続いて、ステップＳ０９へ処理を進める。
【００７８】
［ステップＳ０９］  デバッグ処理を起動する。以降、デバッグ走行状態となったプロセッサのデバッグが開始される。続いて、ステップＳ０２に戻って、他のプロセッサの動作状態の変化を監視する。
【００７９】
以上のように、本発明の動作試験方法によれば、デバッグ対象のシステムに合わせて動作試験モードを設定することにより、マルチプロセッサを構成する個々のプロセッサの動作状態を制御することができる。この結果、システムを統合的にデバッグすることが可能となる。
【００８０】
（付記１）  マルチプロセッサ処理装置を構成するプロセッサで動作するプログラムの動作試験を行う動作試験装置において、
それぞれ独立に前記プログラムで動作する通常走行状態または試験プログラムで動作する試験走行状態にある前記プロセッサの個々の動作状態を保持する動作状態保持手段と、
前記プロセッサの動作状態を統合したシステム全体の動作状態を保持するシステム状態保持手段と、
任意の前記プロセッサの動作状態が前記試験走行状態に変化したことが検出されると、前記システム状態を所定の試験実行状態に遷移させるとともに、必要に応じて前記動作状態が変化したプロセッサ以外の前記プロセッサの動作状態を前記試験走行状態に遷移させる状態遷移手段と、
前記動作状態が前記試験走行状態となった前記プロセッサで動作する前記試験プログラムによる動作試験を制御する動作試験制御手段と、
を具備することを特徴とする動作試験装置。
【００８１】
（付記２）  前記動作試験装置は、任意の前記プロセッサの動作状態が前記試験走行状態に変化した場合に、他の前記プロセッサをすべて前記試験走行状態に遷移させる第１の動作試験モードと、他の前記プロセッサの動作状態を保持する第２の動作試験モードとを具備し、
前記状態遷移手段は、任意の前記プロセッサの動作状態の変化が検出された場合に、
前記第１の動作試験モードが設定されていれば、他の前記プロセッサの動作状態を前記試験走行状態に遷移させ、
前記第２の動作試験モードが設定されていれば、他の前記プロセッサの動作状態を操作しないことを特徴とする付記１記載の動作試験装置。
【００８２】
（付記３）  前記第１の動作試験モードは、前記システム全体に対して設定されており、
前記状態遷移手段は、試験対象の前記プロセッサのうちのいずれかの前記動作状態が前記試験走行状態に変化した場合、他の前記プロセッサの動作状態を前記試験走行状態に遷移させることを特徴とする付記２記載の動作試験装置。
【００８３】
（付記４）  前記第１の動作試験モードあるいは前記第２の動作試験モードは、前記プロセッサごとに設定されており、
前記状態遷移手段は、前記第１の動作試験モードが設定された前記プロセッサの前記動作状態が前記試験走行状態に変化した場合、他の前記プロセッサの動作状態を前記試験走行状態に遷移させることを特徴とする付記２記載の動作試験装置。
【００８４】
（付記５）  前記マルチプロセッサ処理装置は、所定の子プログラムを起動させる親プログラムを実行する親プロセッサと、前記子プログラムを実行する子プロセッサを具備し、
前記状態遷移手段は、前記子プログラムを実行中の前記子プロセッサが前記試験走行状態に遷移した場合、前記子プログラムを起動した前記親プロセッサに対して、前記子プロセッサが前記試験走行状態に遷移したことを通知するとともに、前記親プロセッサに対して設定された前記動作試験モードに応じて前記システム状態を遷移させることを特徴とする付記１記載の動作試験装置。
【００８５】
（付記６）  前記動作試験装置は、前記マルチプロセッサ処理装置を構成する複数の前記プロセッサに対して１台設けられることを特徴とする付記１記載の動作試験装置。
（付記７）  前記動作試験装置は、前記プロセッサが前記試験走行状態時にアクセスする装置であって複数の前記プロセッサで共有される共有装置を具備し、
前記動作試験制御手段は、前記プロセッサからの前記共有装置へのアクセス要求を保持する要求キューを前記プロセッサの数分設け、前記要求キューに保持されたアクセス要求に基づいて前記共有装置へのアクセス許可を制御することを特徴とする付記１記載の動作試験装置。
【００８６】
（付記８）  前記共有装置は、
個々の前記プロセッサごとに用意される前記プロセッサが前記試験走行状態の場合に実行させる命令コードを格納する命令コード保持手段であることを特徴とする付記６記載の動作試験装置。
【００８７】
（付記９）  マルチプロセッサ処理装置を構成するプロセッサで動作するプログラムの動作試験方法において、
それぞれ独立に前記プログラムで動作する通常走行状態または試験プログラムで動作する試験走行状態にあるプロセッサの個々の動作状態を監視し、
任意の前記プロセッサの動作状態が前記通常走行状態から前記試験走行状態に変化したことが検出されると、前記プロセッサの動作状態を統合したシステム全体の動作状態を表すシステム状態を所定の試験実行状態に遷移させ、
前記システム状態に応じて必要であれば、前記動作状態が変化したプロセッサ以外の前記プロセッサの動作状態を前記試験走行状態に遷移させ、
前記動作状態が前記試験走行状態となった前記プロセッサで動作する前記試験プログラムによる動作試験を制御する手順を有することを特徴とする動作試験方法。
【図面の簡単な説明】
【００８８】
【図１】本発明の実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態であるマルチプロセッサシステム対応の動作試験装置の全体構成図である。
【図３】本発明の実施の形態のハードウェア構成例を示すブロック図である。
【図４】本発明の実施の形態の動作試験装置におけるシステムステートの遷移を示した図である。
【図５】本発明の実施の形態の動作試験装置におけるアクセス権の制御を示した図である。
【図６】本発明の実施の形態の動作試験装置におけるプロセッサ間の動作状態の遷移の関係を示した図である。
【図７】本発明の実施の形態のマルチプロセッサ処理装置の動作試験方法の手順を示したフローチャートである。
【図８】従来のＩＣＥデバッグシステムの構成図である。
【図９】従来のマルチプロセッサ対応のＩＣＥデバッグシステムの構成図である。
【符号の説明】
【００８９】
１  デバッグ支援装置
２ａ、２ｂ、２ｃ、２ｄ  プロセッサ
３  デバッグ装置（ＩＣＥ）
４ａ、４ｂ、４ｃ、４ｄ  主メモリ
５  マルチプロセッサシステム
６  パーソナルコンピュータ（ＰＣ）
１１  動作状態保持手段
１２  システム状態保持手段
１３  状態遷移手段
１４  動作試験制御手段
１５  命令コード保持手段
【図１】
2005122375.tif 000003
【図２】
2005122375.tif 000004
【図３】
2005122375.tif 000005
【図４】
2005122375.tif 000006
【図５】
2005122375.tif 000007
【図６】
2005122375.tif 000008
【図７】
2005122375.tif 000009
【図８】
2005122375.tif 000010
【図９】
2005122375.tif 000011