プログラムに基づいて演算処理を行う第1プロセッサ、第1タスク管理ブロック、第1トレース領域、及び前記第1タスク管理ブロックを監視する第1トレース制御部を有する第1プロセッサエレメントと、プログラムに基づいて演算処理を行う第2プロセッサを有する第2プロセッサエレメントと、を備え、前記第1プロセッサエレメントと前記第2プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、前記第2プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1タスク管理ブロックへの第1メモリアクセス命令を前記共有バスを介して送信し、前記第1メモリアクセス命令は、前記第2プロセッサの識別子を含み、前記第1プロセッサは、前記第1メモリアクセス命令に応じて前記タスクにかかる処理を行い、前記第1トレース制御部は、前記第1タスク管理ブロックへの前記第1メモリアクセス命令の書き込みを検出し、検出した前記第1メモリアクセス命令に対応する前記タスクにかかる処理を第1タスク処理情報として前記第2プロセッサの識別子と共に前記第1トレース領域に書き込む、マルチプロセッサ装置。前記第1トレース制御部は、前記第1タスク処理情報の書き込みの際に前記共有バスにデータを送信することなく前記第1トレース領域への書き込みを行うことを特徴とする請求項1に記載のマルチプロセッサ装置。前記第2プロセッサエレメントは、第2タスク管理ブロック、第2トレース領域、及び前記第2タスク管理ブロックを監視する第2トレース制御部を有し、前記第1プロセッサは、前記第2プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第2タスク管理ブロックへの第2メモリアクセス命令を前記共有バスを介して送信し、前記第2メモリアクセス命令は、前記第1プロセッサの識別子を含み、前記第2プロセッサは、前記第2メモリアクセス命令に応じて前記タスクにかかる処理を行い、前記第2トレース制御部は、前記第2タスク管理ブロックへの前記第2メモリアクセス命令の書き込みを検出し、検出した前記第2メモリアクセス命令に対応する前記タスクにかかる処理を第2タスク処理情報として前記第1プロセッサの識別子と共に前記第2トレース領域に書き込む、ことを特徴とする請求項1または請求項2に記載のマルチプロセッサ装置。前記第1タスク管理ブロックには、アクセスロックの取得が成功した後に前記第1メモリアクセス命令が書き込まれ、前記第1メモリアクセス命令の書き込み終了後にアクセスロックが解放されることを特徴とする請求項1乃至請求項3のいずれか1項に記載のマルチプロセッサ装置。前記第1トレース制御部は、前記第1タスク管理ブロックにおける前記第1メモリアクセス命令の書き込みアドレスを検出して通知する監視部と、前記監視部による書き込みアドレスの通知を受信し、受信直後から前記書き込みアドレスに書き込まれたデータをワード単位で読み出したワードデータを送信するワード読み出し部と、前記ワード読み出し部が送信した前記ワードデータを受信し、当該受信と並行して前記第1トレース領域へのワード単位での前記第1タスク処理情報の書き込みを実行するワード書き込み部と、を備えることを特徴とする請求項1乃至請求項4のいずれか1項に記載のマルチプロセッサ装置。前記ワード書き込み部は、前記第1トレース領域に対するアクセスロックを行うことなく書き込み処理を実行することを特徴とする請求項5に記載のマルチプロセッサ装置。プログラムに基づいて演算処理を行う第3プロセッサを有する第3プロセッサエレメントと、を更に備え、前記第1乃至前記第3プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、前記第3プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1メモリアクセス命令を、前記共有バスを介して送信することを特徴とする請求項1乃至請求項6のいずれか1項に記載のマルチプロセッサ装置。前記第1プロセッサエレメントは、時刻情報を生成する時計部を有し、前記第1トレース制御部は、前記時計部が生成した前記時刻情報を前記第1タスク処理情報及び前記第2プロセッサの識別子と共に前記前記第1トレース領域に書き込むことを特徴とする請求項1乃至請求項7のいずれか1項に記載のマルチプロセッサ装置。前記マルチプロセッサ装置は、前記第1及び前記第2プロセッサエレメント外に時刻情報を生成する時計部を有し、前記第1トレース制御部は、前記時計部が生成した前記時刻情報を前記第1タスク処理情報及び前記第2プロセッサの識別子と共に前記前記第1トレース領域に書き込むことを特徴とする請求項1乃至請求項7のいずれか1項に記載のマルチプロセッサ装置。前記第2プロセッサエレメントは、前記第2プロセッサの識別子を保持するレジスタを備えることを特徴とする請求項1乃至請求項9のいずれか1項に記載のマルチプロセッサ装置。前記第1トレース領域からトレースデータを読み出し、読み出したトレースデータから表示情報を生成するトレース出力部を更に備える請求項1乃至請求項10のいずれか1項に記載のマルチプロセッサ装置。請求項1乃至請求項11のいずれか1項に記載のマルチプロセッサ装置を搭載したマイクロコンピュータ。プログラムに基づいて演算処理を行う第1プロセッサ、第1タスク管理ブロック、第1トレース領域、及び前記第1タスク管理ブロックを監視する第1トレース制御部を有する第1プロセッサエレメントと、プログラムに基づいて演算処理を行う第2プロセッサを有する第2プロセッサエレメントと、を備えるマルチプロセッサ装置の制御方法であって、前記第1プロセッサエレメントと前記第2プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、前記第2プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1タスク管理ブロックへの第1メモリアクセス命令を前記共有バスを介して送信し、前記第1メモリアクセス命令は、前記第2プロセッサの識別子を含み、前記第1プロセッサは、前記第1メモリアクセス命令に応じて前記タスクにかかる処理を行い、前記第1トレース制御部は、前記第1タスク管理ブロックへの前記第1メモリアクセス命令を検出し、検出した前記第1メモリアクセス命令に対応する前記タスクにかかるタスク処理情報を前記第2プロセッサの識別子と共に前記第1トレース領域に書き込む、マルチプロセッサ制御方法。前記第1トレース制御部は、前記第1タスク処理情報の書き込みの際に前記共有バスにデータを送信することなく前記第1トレース領域への書き込みを行うことを特徴とする請求項13に記載のマルチプロセッサ制御方法。マルチプロセッサシステム内の各プロセッサは、他のプロセッサが動作させるタスクの状態変更操作をシステムコールの実行を介して行うことができる。特許文献1に記載のマルチプロセッサシステム等の一般的なシステムでは、システムコールの実行を行ったプロセッサの属するプロセッサエレメント内のトレースエリアに、タスクの状態変更に関するトレースデータが格納される。換言すると、状態変更がされるタスクを実行しているプロセッサに関連付けられたトレースエリアには、当該トレースデータが格納されない。そのため、マイコンの動作を確認するためのツールは、各トレースエリアに格納されたトレースデータを取得する必要がある。さらに、当該ツールは、あるタスクの実行タスクの処理開始、状態変更呼び出し等に関する情報を表示するために、取得したトレースデータを解析して必要なデータのみを取得し、取得したデータをソートする必要がある。このような処理により、ツールのオーバーヘッドが増加してしまう。一方、特許文献4に記載のマルチプロセッサ装置では、前述のように主記憶装置に各プロセッサのトレースデータを全て集約することができる。ユーザは、この主記憶装置内のトレースデータのみを参照することにより、各プロセッサの動作を把握することができる。ここで、特許文献4に記載のマルチプロセッサ装置では、各プロセッサがダンプ命令を実行する。すなわち、当該マルチプロセッサ装置内では、各プロセッサが逐次ロケーショントレース情報を、共有バスを介して主記憶装置に転送する。共有バスとは、各プロセッサエレメントを接続する情報伝達経路である。ダンプ命令は一定時間毎に行われるため、共有バスを介して転送されるデータ量が増加してしまう。これにより、共有バスの使用率が上昇してしまい、情報の伝達に支障をきたす恐れがある。本発明にかかるマルチプロセッサ装置の一態様は、プログラムに基づいて演算処理を行う第1プロセッサ、第1タスク管理ブロック、第1トレース領域、及び前記タスク管理ブロックを監視する第1トレース制御部を有する第1プロセッサエレメントと、プログラムに基づいて演算処理を行う第2プロセッサを有する第2プロセッサエレメントと、を備え、前記第1プロセッサエレメントと前記第2プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、前記第2プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1タスク管理ブロックへのメモリアクセス命令を前記共有バスを介して送信し、前記メモリアクセス命令は、前記第2プロセッサの識別子を含み、前記第1プロセッサは、前記メモリアクセス命令に応じて前記タスクにかかる処理を行い、前記第1トレース制御部は、前記第1タスク管理ブロックへの前記メモリアクセス命令を検出し、検出した前記メモリアクセス命令に応じてタスク処理情報を前記第2プロセッサの識別子と共に前記第1トレース領域に書き込む、ものである。本発明にかかるマルチプロセッサ装置の制御方法の一態様は、プログラムに基づいて演算処理を行う第1プロセッサ、第1タスク管理ブロック、第1トレース領域、及び前記第1タスク管理ブロックを監視する第1トレース制御部を有する第1プロセッサエレメントと、プログラムに基づいて演算処理を行う第2プロセッサを有する第2プロセッサエレメントと、を備えるマルチプロセッサ装置の制御方法であって、前記第1プロセッサエレメントと前記第2プロセッサエレメントは、伝送経路である共有バスにより相互に接続し、前記第2プロセッサは、前記第1プロセッサが実行するタスクの状態変更を指示するシステムコールを実行し、当該システムコールの実行により前記第1タスク管理ブロックへの第1メモリアクセス命令を前記共有バスを介して送信し、前記第1メモリアクセス命令は、前記第2プロセッサの識別子を含み、前記第1プロセッサは、前記第1メモリアクセス命令に応じて前記タスクにかかる処理を行い、前記第1トレース制御部は、前記第1タスク管理ブロックへの前記第1メモリアクセス命令を検出し、検出した前記第1メモリアクセス命令に応じてタスク処理情報を前記第2プロセッサの識別子と共に前記第1トレース領域に書き込む、ものである。本発明では、第1トレース領域への書き込みの際に共有バスに対するデータ送信を行うことなく、発行元である第2プロセッサの識別子と共に第1タスク処理情報が第1トレース領域に書き込まれる。第1タスク管理情報を共有バスを介して送受信する必要が無くなるため、共有バスの使用率を低減することができる。さらに、第1タスク処理情報とともに第2プロセッサの識別子が書き込まれるため、ユーザは、第2プロセッサの処理によりタスク状態の変更が生じたことを把握することができる。本発明によれば、共有バスの使用率を低減して所望のトレースデータの取得を容易に行うことができるマルチプロセッサ装置、及びマルチプロセッサ装置の制御方法を提供することができる。<実施の形態1>以下、図面を参照して本発明の実施の形態1について説明する。図1は、本実施の形態にかかるマルチプロセッサ装置の構成を示すブロック図である。当該マルチプロセッサ装置は、例えばマイクロコンピュータマイコンに搭載される。当該マルチプロセッサ装置には、プロセッサエレメント100と、プロセッサエレメント200と、が配置されている。プロセッサエレメント100とプロセッサエレメント200は、共有バス1を介して接続されている。共有バス1とは、プロセッサエレメント100とプロセッサエレメント200間のデータ伝送を行う伝送経路である。プロセッサエレメント100は、CPU101と、記憶部102と、レジスタ103と、バス制御部104と、時計部105と、トレース制御部106と、トレースエリア107と、を備える。プロセッサエレメント200は、CPU201と、記憶部202と、レジスタ203と、バス制御部204と、時計部205と、トレース制御部206と、トレースエリア207と、を備える。プロセッサエレメント100とプロセッサエレメント200は、略同一の構成を持てばよい同一名称を付した処理部、記憶部は原則として同一の機能を持つ。。そのため、以下の説明では主にプロセッサエレメント100の詳細について説明する。記憶部102とは、CPU101のワークエリア等となる領域であり、一般的にはSRAMStaticRandomAccessMemory、DRAMDynamicRandomAccessMemory等のランダムアクセス可能な揮発性メモリである。記憶部102は、読み出されたプログラムやプログラム実行に関する入出力データを記憶する。レジスタ103は、CPU101の識別子プロセッサIDを保持するレジスタである。後述するシステムコール110の実行時等にレジスタ103の読み出し命令が発行される。読み出し命令の発行より、レジスタ103に保持されたCPU101の識別子を取得できる。なお、レジスタ103は、一般的なレジスタではなく、メモリマップドI/OInputOutputにおけるレジスタとして実装されても良い。この場合、メモリマップドI/O領域の特定アドレスの値を読み出すことによりCPU101の識別子を取得することができる。CPU101は、図示しないHDDHardDiscDrive等の補助記憶装置からOSOperatingSystemプログラムやアプリケーションプログラムを読み出し、実行する演算装置CentralProcessingUnitである。OSプログラムは、CPU101によって常時実行されるプログラムである。OSプログラムとは、いわゆる基本ソフトであって、コンピュータにおいて、ハードウェアを抽象化したインターフェイスをアプリケーションソフトウェアに提供するプログラムである。OSOperatingSystemオペレーティングシステム108は、CPU101によって実行されることにより、ハードウェア資源記憶部102等を利用して、各種処理を行う。タスク109とは、OS108の処理の実行単位である。なお、タスク109は、複数同時に実行されても良いすなわち、OS108は、いわゆるマルチタスクOSであっても良い。。システムコール110は、OS108の各種機能を呼び出すために使用される機構である。システムコール110は、サービスコールとも呼称される。一般的に、システムコール110は、関数形式open関数、exit関数等で提供される。例えば、あるタスク109がシステムコール110を呼び出して実行することにより、他のタスクの状態を変更することができる。ここで、タスク109がシステムコール110を呼び出して実行することにより、プロセッサエレメント200内において実行されているタスク209の状態を変更することも可能である。この場合、システムコール110の実行により、メモリアクセス命令が共有バス1を介してタスク管理ブロック212後述に書き込まれる。ここで、システムコール110の実行前にレジスタ103からCPU101の識別子が読み出される。そして、メモリアクセス命令は、この読み出されたCPU101の識別子を含むように構成される。ディスパッチャ111は、OS108の一機能であり、実行可能状態Readyにあるタスク109の中から、次に実行すべきタスク109を一つ選択して実行状態Runningとするタスクディスパッチ。ディスパッチャ111は、タスク管理ブロック112を参照し、実行可能状態Readyとなっているタスク109からCPU101の実行権限を与えるタスクを選択するタスクスケジューリング機能。ディスパッチャ111は、タスクディスパッチを行う際に、タスク管理ブロック112のトレース書き込み領域後述にディスパッチ処理に関する情報を書き込む。当該書き込み処理については、図3及び図4を参照して後述する。タスク管理ブロック112は、各タスク109の状態を保持する記憶ブロックである。タスク管理ブロック112の保持する情報は、タスク状態の変更要求CPU200から受信したメモリアクセス命令、またはディスパッチャ111によるディスパッチ処理に応じて適宜書き換えられる。タスク管理ブロック112への書き込みは、ワード単位で行われる。ワードとは、CPUのデータバス幅である。例えばCPU101が32ビットCPUである場合、タスク管理ブロック112への書き込みは4バイト1ワード=4バイト毎に行われる。タスク管理ブロック112への書き込み、及びタスク管理ブロック112からの読み出しには、ロックアクセスロックの取得が必要となる。図2を参照して、ロックの取得及びタスク管理ブロック112の読み書きにかかるOS108の処理を説明する。ディスパッチャ111がディスパッチ処理を行う場合、またはシステムコール110、210に伴うメモリアクセス命令が入力された場合、ディスパッチャ111、システムコール110、またはシステムコール210の機能としてロック変数113の読み出しが実行されるS11。ロック変数113は、ロック中または空きのいずれかの値をとる変数である。ロック変数113がロック中である場合S12:ロック中、一定時間後にロック変数113の読み出しが再実行されるS11。ロック変数113が空きである場合S12:空き、ロック変数113は、ロック中に書き換えられるS13。そして、タスク管理ブロック112への書き込み、またはタスク管理ブロック112からの読み出し処理が実行されるS14。書き込み処理または読み出し処理の実行後に、ロック変数113は、空きに書き換えられるS15。次に、タスク管理ブロック112の詳細を、図3を参照して説明する。図3は、タスク管理ブロック112の内部構成を示す概念図である。タスク管理ブロック112は、記憶部102RAM等の一部領域に設けられる。タスク管理ブロック112には、各タスクに関する情報を保持する領域が予約されている。図3の例では、タスク管理ブロック112には、アドレス1にタスクAの情報が書き込まれ、アドレス2にタスクBの情報が書き込まれ、アドレス3にタスクCの情報が書き込まれる。さらに、タスク管理ブロック112には、後述のトレースエリア107に書き込まれるトレースデータを一時的に記憶するトレース書き込み領域が設けられる。また、トレース書き込み領域には、ディスパッチ処理時にもディスパッチャ111からの書き込みが生じる。CPU101は、タスク管理ブロック112に書き込まれた内容を基にタスク109に関する処理を適宜実行する。次に、図4を参照して、タスク管理ブロック112におけるタスク毎の領域の構成について説明する。図4は、図3に示すタスクAの領域の書き込みデータを示す概念図である。図示するように、当該領域には、タスク状態、他タスクへのリンク、待ち要因、退避コンテキスト情報、及び書き込みプロセッサが書き込まれる。各情報について以下に説明する。タスク状態とは、当該タスクの現在の状態を示す情報である。タスク状態は、休眠状態Sleep、実行可能状態Ready、待機状態Waiting、実行状態Running等の値のいずれかとなる。他タスクへのリンクとは、実行可能状態Readyとなっているタスクが複数ある場合に、どのタスクを最初に実行状態Runningに遷移させるかを示す情報である。当該リンクは、線形のポインタが格納される。図4では、タスクAがタスクCの後に実行状態Runningに遷移することを示している。待ち要因とは、当該タスクが待機状態Waitingである場合に、どのような要因により処理待ちの状態となっているかを示す情報である。例えば、待ち要因として、X処理を行うために取得するセマフォの解放を待っているといった情報が書き込まれる。退避コンテキスト情報とは、タスク呼び出しが割り込みで生じた場合等に、割り込み前のCPU101による各種処理の状態を示す。例えば、退避コンテキスト情報として、スタックポインタの値を保持する。書き込みプロセッサとは、上述の情報の書き込み元となるプロセッサを示す情報である。前述のように、タスク状態は、同一プロセッサエレメント内で動作するタスク等から変更される場合に加え、共有バス1を介したメモリアクセス命令により変更される場合がある。そこで、この呼び出し元のプロセッサが分かるように、プロセッサIDを書き込む。図4の例は、タスクAのタスク状態を実行可能状態Readyに変更したプロセッサのIDがP2CPU201であることを示している。この書き込みプロセッサの値は、タスク管理ブロック112への書き込み元となるプロセッサエレメント内のレジスタレジスタ103、レジスタ203から読み出された値となる。続いて、図1を再度参照し、バス制御部104、時計部105、トレース制御部106、及びトレースエリア107の説明を行う。なお本実施の形態では、時計部105、トレース制御部106、及びトレースエリア107は、ハードウェアエミュレータ図1中の点線部分の機能としてそれぞれ実現される。バス制御部104は、共有バス1を介して送受信する情報、命令の調停を行う処理部である。バス制御部104は、受信したメモリアクセス命令をOS108に供給する。また、バス制御部104は、システムコール110の実行に応じて、OS208へのメモリアクセス命令をバス制御部204に送信する。時計部105は、時刻情報を生成し、適宜トレース制御部106に時刻情報を供給する。なお、プロセッサエレメント200にも時計部205が配置されている。そのため、本実施の形態ではプロセッサエレメント間では、時刻情報は同期されない。トレース制御部106は、タスク管理ブロック112への書き込みを監視し、書き込みが生じた場合に、当該書き込み内容に応じてトレースエリア107にトレースデータを書き込む処理部である。トレース制御部106の構成、動作について図5を参照して説明する。図5は、トレース制御部106の内部構成、及びタスク管理ブロック112及びトレースエリア107の関係を示す概念図である。トレース制御部106は、監視部114と、ワード読み出し部115と、ワード書き込み部116と、を備える。監視部114は、タスク管理ブロック112の書き込み状況を監視する処理部である。図3を例に説明する。監視部114は、アドレス1、アドレス2、アドレス3、アドレス4に対して書き込みが生じたかを監視する。タスク管理ブロック112には各タスクの領域が割り当てられており、監視部114は、予めこれらのアドレスの割り当てを把握している。監視部114は、これらのアドレスのいずれかに対して書き込みが生じた時点で、書き込みが生じたアドレスをワード読み出し部115に通知する。ワード読み出し部115は、監視部114から通知されたアドレスへの書き込みをワード単位で読み出す処理部である。ワード読み出し部115の読み出し処理は、いわゆるクオリファイトレースと呼ばれる機能により実現される。ワード読み出し部115は、読み出したデータワードを順次ワード書き込み部116に供給する。さらに、ワード読み出し部115は、読み出し先のアドレスをワード書き込み部116に通知する。読み出し先のアドレスの情報は、トレース出力部2によりトレースデータを出力する際にタスクの識別子を特定するために使用される。ワード書き込み部116には、時計部105から時刻情報が供給される。さらに、ワード書き込み部116には、ワード読み出し部115が読み出したワード、及び読み出し先のアドレスの情報が順次供給される。ワード書き込み部116は、供給されたワードを基にトレースデータをトレースエリア107にワード単位で書き込む。ワード書き込み部116は、トレースエリア107に対するロックを行うことなく、ワード読み出し部115からのワードの供給が生じた時点で書き込み処理を開始する。以下、トレースエリア107の構成と合わせて書き込み処理を説明する。トレースエリア107は、トレースデータを保持する記憶領域である。トレースエリア107は、一般的にバッファたとえばリングバッファとして構成される。トレースエリア107には、ワード書き込み部116からトレースデータが順次書き込まれる。詳細には、ロックを取得したロック変数113をロック中に変更したCPUの順序でトレースデータが順次書き込まれる。図6は、トレースエリア107のデータをトレース出力部2によって出力した状態の一例を示す概念図である。図6では、トレースエリア107に対し、CPU101P1により実行されるタスクAが、CPU201から起動され詳細にはCPU201により実行されるタスク209から起動され、CPU101P1により実行開始され、セマフォ待ちに移行するという一連の流れがトレースデータとして格納されている。以下、トレースデータを構成する各項目について説明する。時刻とは、トレースデータが書き込まれた時刻情報である。当該項目時刻には、トレース制御部106が時計部105から取得した時刻情報が書き込まれる。タスクIDとは、処理対象のタスクの識別子である。この情報タスクの識別子は、ワード読み出し部115が当該トレースデータを読み出した先のアドレスの情報から一意に定まる。状態とは、処理対象のタスクの状態Ready等である。待ち要因とは、状態がWaitingである場合に、当該タスクがどのような要因で待ち状態となっているかを示す情報である。状態がWaitingではない場合、待ち要因には値が設定されない。PIDとは、書き込み元となるプロセッサの識別子を示す情報である。これらの各情報時刻を除くには、タスク管理ブロック112から読み出された値または読み出し処理から把握できる値が基本的にそのまま代入される。すなわち、ワード書き込み部116は、図4に示す状態、待ち要因、PIDをワード単位で受け付け、そのままワード単位で書き込む。さらに、ワード書き込み部116は、時刻情報やタスクIDをワード単位でトレースエリア107に書き込む。上記したように、トレース制御部106は、記憶部102内のタスク管理ブロック112に書き込まれた情報を読み出し、読み出した情報をタスク処理に関する情報タスク管理情報とも呼称する。上述したトレースエリア107に書き込まれる各情報状態、待ち要因、PIDとしてトレースエリア107に書き込む。すなわち、トレース制御部107は、共有バス1を介したタスク管理情報のやり取りを行うことなく、トレースエリア107への書き込みを実行する。再び図1を参照する。トレース出力部2は、プロセッサエレメント100のトレースエリア107及びプロセッサエレメント200のトレースエリア207からトレースデータを取得し、取得したトレースデータから一般的なディスプレイ装置等に表示する表示情報を生成する処理部である。トレース出力部2は、いわゆるタスクデバッガやパフォーマンスアナライザと呼ばれるツールに相当する。トレース出力部2は、ユーザの要求に応じてトレースデータを取得する。例えば、トレース出力部2は、ユーザがタスク109の動作のみを把握したい場合、トレースエリア107のみからトレースデータを取得する。この際、取得したトレースデータは、図6に示すように、CPU201が実行するタスクからの状態変更に関する情報PIDも含む。続いて、本実施の形態にかかるマルチプロセッサ装置について、処理の流れに着目して説明を行う。はじめに、CPU201が実行するタスク209から、CPU101が実行するタスク109の状態を変更する場合の処理の流れについて説明する。図7は、当該処理の流れを示すフローチャートである。はじめに、タスク209は、タスク109の状態変更を行うためにシステムコール210を実行する。この際、システムコール210は、ロックを取得するロック変数113をロック中に書き換える、S21。なお、ロックが取得できない場合、一定時間後にロックの取得処理を繰り返し行う。ロック取得成功後に、レジスタ203からCPU201の識別子が読み出される。システムコール210の発行により、CPU201の識別子を含むメモリアクセス命令がバス制御部204を介して発行されるS22。そして、メモリアクセス命令に応じて、タスク管理ブロック112が書き換えられるS23。トレース制御部106は、タスク管理ブロック112への書き込みを検出するS24。トレース制御部106は、検出した書き込み内容に応じてトレースエリア107に書き込むS25。また、CPU101は、タスク管理ブロック112に書き込まれた内容を基にタスク109に関する処理を適宜実行する。続いて、ディスパッチャ111がタスク109をディスパッチタスクの状態を実行状態Runningに変更する処理の流れについて説明する。図8は、当該処理の流れを示すフローチャートである。ディスパッチャ111は、ロックを取得するロック変数113をロック中に書き換える、S31。ロック取得成功後に、ディスパッチャ111は、タスク管理ブロック112を参照し、一般的なタスクスケジューリングの手法により、実行状態Runningに遷移させるタスク109を選択するS32。そして、ディスパッチャ111は、ディスパッチ処理の内容に応じて、タスク管理ブロック112に対する書き込みを行うS33。ここで、ディスパッチャ111は、タスク管理ブロック112のトレース書き込み領域図3にディスパッチ対象となるタスクのID、CPU101の識別子レジスタ103の保持値等を書き込む。トレース制御部106は、タスク管理ブロック112内のトレース書き込み領域図3への書き込みを検出するS34。トレース制御部106は、検出した書き込み内容をトレースエリア107に書き込むS35。また、CPU101は、タスク管理ブロック112に書き込まれた内容を基にタスク109に関する処理を適宜実行する。続いて、本実施の形態にかかるマルチプロセッサ装置の効果について説明する。上述のように、トレース制御部106は、タスク管理ブロック112を監視し、CPU201厳密にはCPU201が動作させるタスク209からタスク109の状態変更を指示するメモリアクセス命令の書き込みを検出する。トレース制御部106は、検出した書き込み内容を、原則としてそのままタスク処理に関する情報タスク処理情報として同一プロセッサエレメント100内のトレースエリア107に書き込む。この際、共有バス1に対するトレースデータの転送処理は一切行われない。これにより、共有バス1を介して送受信される情報量を低減することができる。共有バス1を介して送受信される情報量が低減されることにより、共有バス1を介した確実な情報伝達を実現することができる。さらに、CPU201からタスク109の状態変更を行う場合、タスク管理ブロック112に書き込まれる情報には、CPU201の識別子レジスタ203の保持値を含まれる。そして、トレース制御部106は、CPU201の識別子をトレースデータに含めてトレースエリア107に書き込む。これにより、ユーザは、CPU201から指示されて実行したタスク処理を把握することができる。すなわち、CPU101が実行するタスクの全ての情報が命令発行元の情報プロセッサIDと共にトレースエリア107に集約される。よってユーザは、トレースエリア107内のトレースデータを参照するのみでCPU101が実行する全てのタスク109の詳細を把握他のCPUから指示されて実行した処理の把握を含むすることができる。換言すると、CPU101が実行するタスク109の情報を参照する際に、複数のトレースエリアからトレースデータを取得し、取得したトレースデータのソートを行う必要がない。よって、本実施の形態にかかるマルチプロセッサ装置は、ユーザに必要な情報のみを速やかに提供することができる。上述したように、トレース制御部106は、時計部105から供給された時刻情報をタスク109に関する情報と共にトレースエリア107に書き込む。これにより、ユーザは、トレースデータを参照することにより、タスク109に関する操作が行われた時刻を正確に把握することができる。さらに、トレースエリア107には、時計部105から取得した時刻情報のみが書き込まれ、プロセッサエレメント200内の時計部205の計測した時刻情報は一切書き込まれない。そのため、時計部105の単位時間と時計部205の単位時間が異なる場合であっても、ユーザは、各トレースデータに関する事象が生じた時刻を把握することができる。なお、上述の説明では、両プロセッサエレメント100、200がそれぞれトレースエリア107、207を持つ構成として説明したが、必ずしもこれに限られない。以下、図9を参照して、一方のプロセッサエレメントのみがトレースエリアを有する構成について説明する。本実施の形態にかかるマルチプロセッサ装置は、非対称型マルチプロセッサ型の構成とすることが可能である。この場合、あるプロセッサエレメント内に存在するCPUの実行するタスクの重要度が低く、当該タスクに関する情報を取得しなくても良いケースがある。図9は、プロセッサエレメント100内にのみトレースエリア107が配置され、プロセッサエレメント200内にはトレースエリアが配置されないマルチプロセッサ装置を示している。当該構成であっても、プロセッサエレメント100内の各処理部が、上述の動作を行うことによりタスク109に関する所望のトレースデータをトレースエリア107内に格納することができる。さらに、プロセッサエレメント200内にトレースメモリ等を設ける必要が無くなり、マルチプロセッサ装置の構成を必要最小限にすることができる。これにより、マルチプロセッサ装置のシステムコストを削減することができる。<実施の形態2>本実施の形態にかかるマルチプロセッサ装置は、3つ以上のプロセッサエレメントを有することを特徴とする。本実施の形態にかかるマルチプロセッサ装置は、一般的なマルチプロセッサ装置と比べて予測可能性が向上するという効果を称する。以下、本実施の形態にかかるマルチプロセッサ装置の構成、効果について実施の形態1にかかるマルチプロセッサ装置と異なる点を中心に説明する。図10は、本実施の形態にかかるマルチプロセッサ装置の構成を示すブロック図である。なお、図面において、同一名及び同一符号を付した処理部及び記憶部は実施の形態1と基本的に同じ処理を行う他の実施の形態に関する図面でも同様である。当該マルチプロセッサ装置は、プロセッサエレメント100及びプロセッサエレメント200に加えて、プロセッサエレメント300を備える。プロセッサエレメント300の内部構成、及び動作は、プロセッサエレメント100と同様であればよい。各トレース制御部106、206、306は、図5に示したように監視部、ワード読み出し部、及びワード書き込み部を有する構成である。以下、本実施の形態にかかるマルチプロセッサ装置の動作の説明に先立ち、一般的なマルチプロセッサ装置において生じる予測可能性に関する問題について述べる。特許文献4をはじめとするマルチプロセッサ装置では、タスク管理ブロックに対するロックの取得とは別に、トレースエリアに対するロックを取得する必要がある。トレースエリアに対するロックを取得した後に、トレースエリアへの書き込みが開始する。これらの3つ以上のCPUを備えるマルチプロセッサ装置特許文献4をはじめとするマルチプロセッサ装置において、第1CPUの処理に応じてトレースエリアがロックされている場合について考える。この場合、第2CPU及び第3CPUの処理は、トレースエリアのロックの取得待ちとなる。ここで、トレースエリアのロックが解除される。この場合、第2CPUの処理に応じてタスク管理ブロックがロックされ、第3CPUの処理に応じてタスク管理ブロックがロックされる場合がある。この場合、次にロックが獲得できるCPUが第2CPUか、第3CPUかはロック取得を要求し始めた順序にかかわらず不定である。そのため、ロック要求開始からロック獲得までの時間の上限は定めることができず、トレースにかかる処理の予測可能性が低下してしまう。一方、本実施の形態にかかるトレース制御部106は、トレースエリア107に関するロック処理を一切行うことなくトレースエリア107への書き込みを行う。以下、前述の図5、及び図11を参照して本実施の形態にかかるマルチプロセッサ装置の動作を説明する。図11は、タスク109に対する状態変更が、各プロセッサCPU101、201、301から要求されている場合の各記憶部、変数の状態を示す図である。図11において、ロック変数113については、どのCPUからの指示によりロックが行われているかが示されている。図11において、タスク管理ブロック112、及びトレースエリア107については、どのCPUの呼び出しに応じて書き込み処理が生じているかが示されている。はじめに、CPU101は、タスク管理ブロック112をロックするt1、詳細には、ロック変数113をロック中に変更する。そして、CPU101は、タスク管理ブロック112への書き込みを開始するt2。図5に示すように、トレース制御部106内の監視部114は、タスク管理ブロック112への書き込みを検出する。監視部114は、書き込みの検出後に即座にワード読み出し部115に書き込みの生じたアドレスを通知する。ワード読み出し部115は、当該アドレスから1ワード毎にデータを読み出し、ワード書き込み部116に読み出したワードを読み出し直後に供給する。ワード書き込み部116は、供給されたワードに応じて、トレースエリア107への書き込みを開始するt3。このように、トレースエリア107への書き込みは、タスク管理ブロック112への書き込みの最中詳細には直後からタスク管理ブロック112への書き込みと並行して開始される。CPU101は、タスク管理ブロック112への書き込みを終了するt4。CPU101は、書き込みの終了と共にタスク管理ブロック112のロックを解放する、すなわちロック変数113を空きに変更するt4。トレースエリア107への書き込みは、タスク管理ブロック112への書き込みと並行して行われている。そして、ワード書き込み部116は、トレースエリア107への書き込みを終了するt5。トレースエリア107に書き込む情報は、時刻情報の追加を除けばタスク管理ブロック112に書き込む情報と略同一である。また、前述のように、トレース制御部106は、ハードウェアエミュレータの一機能として実現され、トレース制御部106の動作速度は、OS108の処理速度に対応できるように構成される。そのため、ワード書き込み部116は、タスク管理ブロック112への書き込みの終了t4の直後t5にトレースエリア107への書き込みを終了する。続いて、CPU201は、タスク管理ブロック112をロックするt6。そして、CPU201は、メモリアクセス命令の送信により、タスク管理ブロック112への書き込みを開始するt7。この直後にワード書き込み部116は、トレースエリア107への書き込みを開始するt8。そして、CPU101の場合と同様に、CPU201は、メモリアクセス命令の送信を終了することにより、タスク管理ブロック112への書き込みを終了するt9。CPU201は、書き込みの終了と共にタスク管理ブロック112のロックを解放するt9。ワード書き込み部116は、タスク管理ブロック112への書き込みの終了t9の直後にトレースエリア107への書き込みを終了するt10。ここで、トレースエリア107への書き込みの際に、トレースエリアに対するロック処理は一切行われない。そのため、前述のようにCPU301がトレースエリアに対するロックを取得するようなケースは発生しない。更に、タスク管理ブロック112への書き込みと、トレースエリア107への書き込みと、は並行して行われる。そのため、タスク管理ブロック112への書き込み内容と、トレースエリア107への書き込み内容と、の整合性が保たれる。続いて、本実施の形態にかかるマルチプロセッサ装置の効果について改めて説明する。上述のように、本実施の形態にかかるマルチプロセッサ装置は、3つのプロセッサエレメントを有し、図5に示すようにトレースエリア107に対するロックを取得することなくトレースエリア107への書き込みを行う。詳細には、トレース制御部106は、タスク管理ブロック112への書き込みを検出し、タスク管理ブロック112の書き込み中に書き込みワードを取得する。そして、トレース制御部106は、タスク管理ブロック112の書き込み中にトレースエリア107への書き込みを実行する。これにより、タスク管理ブロック112への書き込みとトレースエリア107への書き込みをほぼ同時に終了することが出来る。さらに、トレースエリア107のロックを考慮しないロックを一切扱わないことにより、上述したトレースにかかる処理時間の予測可能性の問題を解消することができる。なお、上述の説明では、3つのプロセッサエレメントを備えるマルチプロセッサ装置について説明したが必ずしもこれに限られない。マルチプロセッサ装置は、4つ以上のプロセッサエレメントを備えても良いことは勿論である。<実施の形態3>本実施の形態にかかるマルチプロセッサ装置は、各プロセッサエレメントが共通の時刻情報を参照することを特徴とする。以下、本実施の形態にかかるマルチプロセッサ装置について、実施の形態1と異なる点を説明する。図12は、本実施の形態にかかるマルチプロセッサ装置の構成を示すブロック図である。マルチプロセッサ装置は、プロセッサエレメント100及びプロセッサエレメント200を有する。プロセッサエレメント100、及びプロセッサエレメント200は、内部に時計部を有さない。時計部3は、プロセッサエレメント100及びプロセッサエレメント200に時刻情報を提供する処理部である。すなわち、時計部3は、前述の時計部105205と同様にトレースデータに含まれる時刻情報をトレース制御部106206に適宜提供する。他の処理部トレース制御部105、トレース制御部205、CPU101、CPU201等は、実施の形態1と同様の動作を行う。本実施の形態にかかるマルチプロセッサ装置では、複数のプロセッサエレメントに対して、単一の時計部3のみが備えられる構成である。すなわち、各プロセッサエレメント100、200は、内部に時計部を有する必要が無くなる。これにより、各プロセッサエレメント100、200の構成が簡易となり、マルチプロセッサ装置全体としてのシステムコストを低減することができる。さらに、本実施の形態にかかるマルチプロセッサ装置は、実施の形態1と同様に、トレースデータの転送による共有バスの混雑を回避できるという効果も奏する。なお、上述の説明図12では、プロセッサエレメントが2つであるものとして説明したが、3つ以上のプロセッサエレメントを持つマルチプロセッサ装置において単一の時計部を持つ構成としても良いことは勿論である。<実施の形態4>本実施の形態にかかるマルチプロセッサ装置は、上述のトレース制御部に相当する処理をプログラム実行により実現することを特徴とする。以下、本実施の形態にかかるマルチプロセッサ装置について、実施の形態1と異なる点を中心に説明する。図13は、本実施の形態にかかるマルチプロセッサ装置の構成を示すブロック図である。本実施の形態では、システムコール110もしくは210によってタスク管理ブロック112への書き込みが生じた場合に、時計部105から時刻情報が取得され、当該時刻情報もタスク管理ブロック112に書き込まれる。また、時計部105と205は同期されている。そのため、ある時刻において、いずれかの時計部に対し、いずれかのプロセッサから時刻を読み出したとしても同じ時刻が取得できる。プロセッサエレメント100及びプロセッサエレメント200は、ハードウェアエミュレータの一機能として実現されていたトレース制御部を有さない。これに代わり、トレースアプリケーション117、217が動作する構成である。CPU101は、図示しない図示しないHDDHardDiscDrive等の補助記憶装置からトレースアプリケーション117のプログラムを読み出す。CPU101は、読み出したプログラムを、ハードウェア資源記憶部102等を利用して実行することによりトレースアプリケーション117を動作させる。トレースアプリケーション117は、タスク管理ブロック112への書き込み内容に応じてトレースエリア107にトレースデータを書き込むアプリケーションである。すなわち、トレースアプリケーション117は、トレース制御部106と略対応する処理を行う。詳細には、トレースアプリケーション117は、ディスパッチャ111から呼び出され、ディスパッチを行ったという情報と時計部105から読み出した時刻情報をトレースエリア107に書き込むとともに、直前にシステムコール110もしくは210によって行われたタスク管理ブロック112への書き込み内容、及び時刻情報をトレースエリア107に書き込む。上述の構成によっても、実施の形態1と同様の効果、すなわち共有バス1を介して送受信される情報量を低減することができ、共有バス1を介した確実な情報伝達を実現することができる。以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。例えば、本発明にかかるマルチプロセッサ装置は、対称型マルチプロセッサ型であってもよく、非対称型マルチプロセッサ型であってもよい。また、本発明にかかるマルチプロセッサ装置は、マイクロコンピュータマイコンに組み込まれても良く、他の用途に用いられても良い。上述のOS108、208プログラム及びトレースプログラム117、217は、前述のように任意のコンピュータ内で動作するプログラムとして実現される。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体nontransitorycomputerreadablemediumを用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体tangiblestoragemediumを含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ、光磁気記録媒体例えば光磁気ディスク、CD-ROMReadOnlyMemory、CD-R、CD-R/W、半導体メモリ例えば、マスクROM、PROMProgrammableROM、EPROMErasablePROM、フラッシュROM、RAMrandomaccessmemoryを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体transitorycomputerreadablemediumによってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。