(57)【要約】  基準時間によるタイムスタンプを挿入すると、オーバヘッドが大きい。そこで、第１のトレースデータ・ソース（２１０）からの時間情報を、基準時間の時間情報に変換する第１の時間情報変換部（１２０）と、第２のトレースデータ・ソース（３１０）からの時間情報を、基準時間の時間情報に変換する第２の時間情報変換部（１３０）と、パケットマージ部（１１０）とを備えるＬＳＩ（１）が構築される。
2010097875.tif 000002
【特許請求の範囲】
【請求項１】
第１のトレースデータ・ソースと、
前記第１のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第１の時間情報変換部と、
第２のトレースデータ・ソースと、
前記第２のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第２の時間情報変換部と、
前記第１の時間情報変換部で、付随する時間情報が変換されたトレースパケットと、前記第２の時間情報変換部で、付随する時間情報が変換されたトレースパケットとを受け取り、付随する時間情報が最も早いトレースパケットを選択出力すると共に、複数トレースパケット間で冗長な時間情報を取り除くパケットマージ部とを備えるデータ処理装置。
【請求項２】
夫々の前記トレースデータ・ソースに対して、同期パケット要求を出力する同期パケット要求部を備え、
前記パケットマージ部は、
前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第１のトレースデータ・ソースにより出力された同期パケットと、前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第２のトレースデータ・ソースにより出力された同期パケットとの２つの前記同期パケットに基いて、前記最も早いトレースパケットを選択し、選択されたトレースパケットを出力し、
前記トレースパケットと前記同期パケットとのうちで前記同期パケットは出力しない請求項１に記載のデータ処理装置。
【請求項３】
それぞれの前記トレースデータ・ソースにより生成される前記時間情報は、当該トレースデータ・ソースに供給されたクロックで、当該トレースデータ・ソースが計測した経過時間であり、
前記第１の時間情報変換部および前記第２の時間情報変換部のそれぞれは、その時間情報変換部に対応する前記トレースデータ・ソースからの、経過時間の時間情報を、単一基準時間の経過時間情報に変換する請求項１に記載のデータ処理装置。
【請求項４】
それぞれの前記トレースデータ・ソースにより生成される前記時間情報は、当該トレースデータ・ソースで、前回、トレースに関わるイベントが発生した時刻からの、当該トレースデータ・ソースに供給されたクロックで、当該トレースデータ・ソースが計測した差分時間であり、
前記第１の時間情報変換部及び前記第２の時間情報変換部のそれぞれは、その時間情報変換部に対応する前記トレースデータ・ソースからの、差分時間の時間情報を、経過時間に累計すると共に、累計された当該経過時間を、単一基準時間の時間情報に変換する請求項１に記載のデータ処理装置。
【請求項５】
前記パケットマージ部が前回出力した前記トレースパケットに付随した時間情報を保持する最終タイムスタンプ保持部と、
前記最終タイムスタンプ保持部に保持された前記時間情報と、今回出力する前記トレースパケットの時間情報とから、前回の前記トレースパケットと、今回の前記トレースパケットとの間での差分時間を計算する差分時間生成部とを有する請求項１に記載のデータ処理装置。
【請求項６】
第１のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第１の時間情報変換工程と、
第２のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第２の時間情報変換工程と、
前記第１の時間情報変換工程で、付随する時間情報が変換されたトレースパケットと、前記第２の時間情報変換工程で、付随する時間情報が変換されたトレースパケットとを受け取り、付随する時間情報が最も早いトレースパケットを選択出力すると共に、複数トレースパケット間で冗長な時間情報を取り除くパケットマージ工程とを備えるデータ処理方法。
【請求項７】
夫々の前記トレースデータ・ソースに対して、同期パケット要求を出力する同期パケット要求工程を備え、
前記パケットマージ工程では、
前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第１のトレースデータ・ソースにより出力された同期パケットと、前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第２のトレースデータ・ソースにより出力された同期パケットとの２つの前記同期パケットに基いて、前記最も早いトレースパケットを選択し、選択されたトレースパケットを出力し、
前記トレースパケットと前記同期パケットとのうちで前記同期パケットは出力しない請求項６に記載のデータ処理方法。
【請求項８】
それぞれの前記トレースデータ・ソースにより生成される前記時間情報は、当該トレースデータ・ソースに供給されたクロックで当該トレースデータ・ソースが計測した経過時間であり、
前記第１の時間情報変換工程および前記第２の時間情報変換工程のそれぞれでは、その時間情報変換工程に対応する前記トレースデータ・ソースからの、経過時間の時間情報を、単一基準時間の経過時間情報に変換する請求項６に記載のデータ処理方法。
【請求項９】
それぞれの前記トレースデータ・ソースにより生成される前記時間情報は、当該トレースデータ・ソースで、前回、トレースに関わるイベントが発生した時刻から、当該トレースデータ・ソースに供給されたクロックで、当該トレースデータ・ソースが計測した差分時間であり、
前記第１の時間情報変換工程及び前記第２の時間情報変換工程のそれぞれでは、その時間情報変換工程に対応する前記トレースデータ・ソースからの、差分時間の時間情報を、経過時間に累計すると共に、累計された当該経過時間を、単一基準時間の時間情報に変換する請求項６に記載のデータ処理方法。
【請求項１０】
前記パケットマージ工程で前回出力した前記トレースパケットに付随した時間情報を保持する最終タイムスタンプ保持工程と、
前記最終タイムスタンプ保持工程で保持された前記時間情報と、今回出力する前記トレースパケットの時間情報とから、前回の前記トレースパケットと、今回の前記トレースパケットとの間での差分時間を計算する差分時間生成工程とを有する請求項６に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のトレースデータ・ソースを持つ情報処理装置において、トレースデータ・ソース間の時間相関を与えることが可能なデータ処理装置に関する。
【背景技術】
【０００２】
大規模なシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）においては、１つのＬＳＩの中に複数のプロセッサコア（処理装置）を含み、それらが相互に関係しながら、所望の動作を行う。よって、これらのシステムＬＳＩのシステムレベルのデバッグを行う際、複数のコア間で発生している時間の前後関係、即ち、時間相関を知ることが必要となる。【０００３】
従来では、基準タイムスタンプ発生器を備え、基準タイムスタンプの発生タイミングで、各トレースデータ・ソースに基準タイムスタンプを挿入するか、もしくは、基準タイムスタンプパケットに関連づけるパケットを生成する。これらのことで、各トレースデータ・ソース相互の時間関係を解析できるようにしている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−５６３８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、実際のシステムにおいては、各トレースデータ・ソースは、単独でも時間情報付きのトレースデータを出力できる機能を備えなければならない。このため、それぞれのローカルクロックによる時間情報を、差分時間の形で本来のトレースパケットに付加して、時間情報が付加されたトレースパケットを出力する。【０００６】
このローカルタイムスタンプ情報に加え、基準タイムスタンプを意味するパケットも出力するため、時間相関を取るための情報によるオーバヘッドが増加するという課題がある。【０００７】
また、複数コアのトレースストリームを出力する際には、出力しなければならないバンド幅に比べ、トレース出力するためのバンド幅が不足する。このため、トレースバッファでＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ，Ｆｉｒｓｔ−Ｏｕｔ）オーバフローが発生し、パケットが失われることが発生する。その対策として、より重要なトレース情報をフィルタリングするため、トレースデータ・ソースやパケットの内容による優先制御を行い、優先度の低いパケットを切り捨てることがある。【０００８】
その結果として、各トレースデータ・ソースのパケットに付随した差分時間情報が失われ、それ以降の同期パケットの出現まで、時間情報が失われてしまい、複数コア間の時間相関のある動作解析が行えない（時間相関を踏まえた解析ができない）という課題が生じる。【０００９】
本発明は、ローカルタイム情報に加え、基準タイムスタンプまで出力されることによる弊害を回避しつつ、異なるトレースデータ・ソースの時間情報の間の相関をとれるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明のデータ処理装置は、第１のトレースデータ・ソースと、前記第１のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第１の時間情報変換部と、第２のトレースデータ・ソースと、前記第２のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第２の時間情報変換部と、前記第１の時間情報変換部で、付随する時間情報が変換されたトレースパケットと、前記第２の時間情報変換部で、付随する時間情報が変換されたトレースパケットとを受け取り、付随する時間情報が最も早いトレースパケットを選択出力すると共に、複数トレースパケット間で冗長な時間情報を取り除くパケットマージ部とを備える。【００１１】
なお、付随する時間情報が最も早いトレースパケットを選択出力するとは、受け取られた複数のトレースパケットのうちから、それら複数のトレースパケットに付随する時間情報のうちで、最も早い時間情報が付随するトレースパケットを選択して、選択されたトレースパケットを出力することをいう。【００１２】
また、複数トレースパケット間で冗長な時間情報とは、それらの複数の時間情報のうちに含まれる、その時間情報以外の他の時間情報により示される時間と同じ時間を示す時間情報をいう。【００１３】
そして、それぞれの時間情報変換部は、その時間情報変換部に対応するトレースデータ・ソースの時間情報を、単一基準時間の時間情報に変換してもよい。ここで、単一基準時間の時間情報とは、基準時間の時間情報であることにより、他方の時間情報変換部により変換がされた後の、同じく基準時間の時間情報である他方の時間情報と、単一（共通）の種類に属する時間情報をいう。ここで、他方の時間情報変換部とは、その時間情報の変換がされた時間情報変換部とは異なる時間情報変換部である。【００１４】
そして、それぞれのトレースデータ・ソースの時間情報は、予め定められた特定時間からの経過時間（差）を示す経過時間であってもよい。
【発明の効果】
【００１５】
従来は、ローカルタイムスタンプ、基準タイムスタンプと、複数の時間情報を出力していたものを、本発明により、単一の基準クロックによるタイムスタンプ情報だけが出力されるようにする。これにより、最終的に得られるトレースデータのオーバヘッドを削減している。【００１６】
さらに、従来は同期のために必要なパケットが最終のトレースデータに残っていたが、本発明により、パケット間の同期に必要だった同期パケットを取り除くことにより、さらにオーバヘッドを削減する。【００１７】
また、トレースデータ・ソースからの時間情報が差分時間情報であり、トレースパケットが一部欠落する状況のときに、従来は、次の同期のタイミングまで時間情報が欠落してしまっていたが、本発明により、残ったトレースパケットの時間情報は失われず、トレースデータ・ソース間の時間相関に関する情報を得られる。
【図面の簡単な説明】
【００１８】
【図１】図１は、複数コアのトレースデータ・ソースの時間情報を変換した後にパケットマージを行う構成を図示している。
【図２】図２は、図１に加え、夫々のトレースデータ・ソースに同期パケット要求が入力される構成を図示している。
【図３】図３は、図２に加え、パケットマージの出力でパケットの時間情報を差分時間に変換し直す構成を図示している。
【図４】図４は、図１の構成により、夫々のトレースデータ・ソースのトレース情報が加工され、１つのトレースストリームに変換されるかを図示している。
【図５】図５は、図２の構成により、夫々のトレースデータ・ソースのトレース情報が加工され、１つのトレースストリームに変換されるかを図示している。
【図６】図６は、図１、図２の構成において、特に夫々のトレースデータ・ソースのトレース情報の時間情報が差分時間で与えられる場合に、それがいかに変換されるかを図示している。
【図７】図７は、図３の構成により、パケットマージ出力の時間情報が差分時間に変換される例を図示している。
【図８】図８は、図３の構成により、トレースデータ・ソースのパケットの一部が欠落した場合でも、正しく時間情報が保持されることを図示している。
【発明を実施するための形態】
【００１９】
本実施の形態１〜４では、まずトレースデータ・ソースからのトレースパケットに含まれる、ローカルクロック（第１のローカルクロック２２０、第２のローカルクロック３２０（図１等））による時間情報（第１の時間情報、第２の時間情報）を、基準時間の経過時間に変換する変換部（第１の時間情報変換部１２０、第２の時間情報変換部１３０）を用意する。次に基準時間に変換された時間情報を持つトレースデータ（第１の変換後トレースパケット１２１、第２の変換後トレースパケット１３１）を、時間情報に着目してソートし、他の時間情報と重複して不要な時間情報を削除すると共に、複数のトレースデータ・ソース（第１のトレースデータ・ソース２１０、第２のトレースデータ・ソース３１０）のトレースパケットを選択出力するパケットマージ部（パケットマージ部１１０）を用意する。これにより、時間相関を取るためのオーバヘッドを削減する。
【００２０】
さらに、トレースデータ・ソースに同期パケットを生成させる同期パケット要求部（同期パケット要求部４００（図２等））を用意し、夫々のトレースデータ・ソースに同期パケットを生成させる。そして、パケットマージ部（パケットマージ部１１０）で、パケット出力の同期のために、生成された同期パケットを使った後に、その同期パケットをパケットマージ部１１０が削除する。これにより、オーバヘッドの削減を行う。
【００２１】
また、トレースデータ・ソースが出力するトレースパケットに付随した時間情報が、ローカルクロックによる差分時間（図６の上段の第１のソースストリーム２１１Ｂの時間情報、第２のソースストリーム３１１Ｂの時間情報を参照）であっても、それを、それぞれの時間情報変換部において累計する。そして、それぞれの時間情報変換部において、累計された時間を、経過時間（図６の中段の第１のソースストリーム２１１Ｂの時間情報、第２のソースストリーム３１１Ｂの時間情報を参照）に変換する。そして、それぞれの時間情報変換部において、変換された後の経過時間を、基準クロックの時間情報に変換する（図６の下段の第１の変換後トレースストリーム１２１Ｂ、第２の変換後トレースストリーム１３１Ｂを参照）。これにより、パケットマージ部でパケットが切り捨てられた場合にも（図８のパケットｘ５、パケットｘ６参照）、残ったトレースパケット（切り捨てられたトレースパケット以外の残りのトレースパケット）の経過時間が失われることなく（図８の第２のトレースストリーム１６１Ｃ参照）、トレースデータ・ソース間の時間相関が取れる。
【００２２】
さらに、パケットマージ後のトレースパケットに含まれる時間情報と、最後に出力したパケットの時間情報（タイムスタンプ）との差分を計算する差分時間再生成部（差分時間再生成部１６０（図３等））を設け、時間情報を差分時間再生成部により差分時間に変換することにより、タイムスタンプ出力のデータ量を削減する。
【００２３】
以下、詳しく説明される。
【００２４】
（実施の形態１）
図１は、実施の形態１における、ＬＳＩ１の構成を示す図である。
【００２５】
図１に複数コアのトレースデータ・ソースの時間情報を変換した後にパケットマージを行うＬＳＩ１の構成を図示している。
【００２６】
ここで、第１のトレースデータ・ソース２１０は、第１のローカルクロック２２０で動作しており、第１のプロセッサコア２００からのトレース情報（第１のトレース情報）を、ローカルクロック２２０で計測した時間情報（第１の時間情報）とともに出力する。第２のトレースデータ・ソース３１０は、第２のローカルクロック３２０で動作しており、第２のプロセッサコア３００からのトレース情報（第２のトレース情報）を、第２のローカルクロック３２０で計測した時間情報（第２の時間情報）とともに出力する。
【００２７】
第１のトレースデータ・ソース２１０からの第１のトレースパケット（トレース情報）２１１は、それに付随した第１の時間情報を第１の時間情報変換部１２０で、基準時間の時間情報に変換した後、パケットマージ部１１０に入力される。同様に第２のトレースデータ・ソース３１０からの第２のトレースパケット（トレース情報）３１１は、それに付随した第２の時間情報を第２の時間情報変換部１３０で、基準時間の時間情報に変換した後、パケットマージ部１１０に入力される。
【００２８】
パケットマージ部１１０では、同一の基準時間の情報を伴った複数のトレース情報を、時間情報（基準時間の時間情報）をキーに整理し、冗長な時間情報を削除した上で、夫々のトレースデータ・ソース（第１のトレースデータ・ソース２１０、第２のトレースデータ・ソース３１０）からのトレース情報（トレースパケット）を調停・選択して出力する（トレースストリーム１１１）。
【００２９】
図４は、実施の形態１における各ストリームを示す図である。
【００３０】
図４に、図１の構成により、夫々のトレースデータ・ソースのトレース情報がどのように加工され、１つのトレースストリーム（トレースストリーム１１１ｓ）に変換されるかを図示している。
【００３１】
この例においては、第１のトレースデータ・ソース２１０（図１）の出力（第１のソースストリーム２１１ｓ）は、ローカルタイムスタンプで時刻０に、"MOV"命令が第１のプロセッサコア２００により実行されることを示す。そして、第１のプロセッサコア２００により、時刻４に"LDR"命令が実行され、時刻１０に"STR"命令が実行され、時刻１２に"MUL"命令が実行され、時刻７６に"LDR"命令が実行されることがそれぞれ示される。
【００３２】
なお、ローカルタイムスタンプは"LTS="で示している。つまり、LTSの文字が付された時刻は、ローカルタイムスタンプでの時刻である。なお、後で詳しく説明されるように、RTSの文字が付された時刻は、基準タイムスタンプでの時刻である。
【００３３】
同様に、第２のトレースデータ・ソース３１０の出力（第２のソースストリーム３１１ｓ（図４））は、ローカルタイムスタンプで時刻４０に、"LDR"命令が第２のプロセッサコア３００により実行され、時刻５０に"ADD"命令が実行され、時刻５５、２８５に"STR"命令が実行されることをそれぞれ示している。
【００３４】
これらの２つの出力（第１のソースストリーム２１１ｓ、第２のソースストリーム３１１ｓ）が、第１の時間情報変換部１２０および第２の時間情報変換部１３０によって、変換後のデータ（第１の変換後トレースストリーム１２１ｓ、第２の変換後トレースストリーム１３１ｓ）へとそれぞれ変換される。すなわち、上記２つの出力のそれぞれのトレースパケットが持っていた第１の時間情報及び第２の時間情報が、それぞれ、第１の時間情報変換部１２０、第２の時間情報変換部１３０により、基準タイムスタンプの時間情報（基準時間の時間情報）に変換される。
【００３５】
例えば、図４に示される、第１のトレースデータ・ソース２１０の出力（第１のソースストリーム２１１ｓ）のローカルタイムスタンプLTS=10、LTS=76は、それぞれ、基準時間では、RTS=13、RTS=95のように変換される（第１の変換後トレースストリーム１２１ｓを参照）。また、第２のトレースデータ・ソース３１０（図１）のローカルタイムスタンプ（第２の時間情報）は、図４に示されるように、別の変換規則によって、LTS=40が、RTS=13に、LTS=55がRTS=18にそれぞれ変換される。これらの変換は、例えばローカルクロックと、基準タイムスタンプのクロックとのクロック比によって計算あるいは換算されることによって行われる。
【００３６】
さらに、最終的なパケットマージ出力（トレースストリーム１１１ｓ）では、２つの時間情報変換後の冗長な時間情報をパケットマージ部１１０が削除した後、２つのトレースデータ・ソースの出力の識別パケットをパケットマージ部１１０がトレースストリーム１１１ｓにつけ、発生順に各パケットを並べ、１つのトレースデータにそれらのパケットをまとめて、それらのパケットがまとめられたトレースストリーム１１１ｓを出力している。トレースデータ・ソース１と２で共通の時刻、RTS=13、RTS=95については、重複しているので、時間情報を１つにまとめている。
【００３７】
つまり、第１のローカルクロック２２０は、クロックを出力することにより、第１の時間を特定する。例えば、第１の実行部２（図１）の起動時間などの予め定められた時間から現在までに、出力されたクロックの個数により、第１の時間は特定される。
【００３８】
第１のプロセッサコア２００は、例えば機械語のプログラムに含まれる命令の処理などの処理を実行し、実行した処理を特定する処理特定情報を含むトレース情報を出力する。なお、トレース情報は、処理特定情報のみよりなってもよい。
【００３９】
第１のトレースデータ・ソース２１０は、第１のプロセッサコア２００が出力する処理特定情報の処理が第１のプロセッサコア２００によって実行された第１の時間を特定する第１の時間情報を生成し、生成された第１の時間情報を出力する。ここで、出力される第１の時間情報は、その第１の時間情報が示す第１の時間に実行された処理の処理特定情報に伴う情報として第１のトレースデータ・ソース２１０により出力される。第１のプロセッサコア２００は、例えば、処理特定情報と、生成した第１の時間情報とが含まれるトレース情報（第１のトレースパケット２１１（図１））を生成し、生成されたトレース情報を出力する。
【００４０】
第１の時間情報変換部１２０（図１）は、第１のトレースデータ・ソース２１０が出力する第１のトレースパケット２１１に含まれる第１の時間情報を、基準時間の時間情報へと変換する。なお、基準時間は、例えば実際の客観的な時間である。なお、変換後の基準時間の時間情報が示す基準時間は、変換前の第１の時間情報が伴う処理特定情報の処理が実行された基準時間と同一である。
【００４１】
そして、第１のプロセッサコア２００は、例えば機械語のプログラムに含まれる複数の命令を実行して、複数の処理特定情報を出力する。第１のプロセッサコア２００は、それら複数の処理特定情報の第１のトレースパケット２１１をそれぞれ含んだ第１のプロセッサストリーム（図略）を出力する。
【００４２】
図４に示される第１のトレースパケットｘは、第１のトレースデータ・ソース２１０が出力する第１のソースストリーム２１１ｓに含まれる、複数の第１のトレースパケット２１１のうちの１つ（一例）である。第１のトレースパケットｘは、例えば、図４に示されるように、機械語の命令「ＬＤＲ」を特定する処理特定情報と、「７６」なる第１の時間を特定する第１の時間情報（LTS=76）とを含む。なお、このように、処理特定情報に伴った時間情報は、その処理特定情報と共に１つのパケットを構成してもよい。
【００４３】
そして、第１の時間情報変換部１２０は、第１のソースストリーム２１１ｓ（図４）に含まれる第１のトレースパケットｘ等の各第１のトレースパケットの第１の時間情報（「７６」等）を、それぞれ、基準時間の時間情報（「９５」等）へと変換する。
【００４４】
第２の実行部３（図１）および第２の時間情報変換部１３０（図１）は、それぞれ、第１の実行部２および第１の時間情報変換部１２０に対応する構成を有する。
【００４５】
なお、第２の時間を特定するローカルクロック（第２のローカルクロック３２０）は、第１のローカルクロック２２０とは異なる。すなわち、第２の時間は、例えば、第１の時間に対して時差を有する時間でもよいし、第１の時間が進む速さとは異なる速さで進む時間であってもよい。
【００４６】
パケットマージ部１１０は、第１の時間情報変換部１２０が出力する第１の変換後トレースストリーム１２１ｓ（図４）と、第２の時間情報変換部１３０が出力する第２の変換後トレースストリーム１３１ｓとが入力される。これにより、パケットマージ部１１０は、第１の変換後トレースストリーム１２１ｓに含まれる複数の第１の変換後トレースパケット１２１、および、第２の変換後トレースストリーム１３１ｓに含まれる複数の第２の変換後トレースパケット１３１が入力される。以下では、複数の第１の変換後トレースパケット１２１、および、複数の第２の変換後トレースパケット１３１の全体よりなるトレースパケットの集合は、変換後トレースパケット群集合と呼ばれる。
【００４７】
そして、パケットマージ部１１０は、変換後トレースパケット群集合に含まれる各トレースパケットが含まれるトレースストリーム１１１ｓ（図４）を生成し、生成されるトレースストリーム１１１ｓを出力する。生成され、出力されるトレースストリーム１１１ｓは、例えば、変換後トレースパケット群集合に含まれる何れのトレースパケットをも含む。そして、トレースストリーム１１１ｓの各トレースパケットのうちで、それぞれのトレースパケットが有する順序は、それら各トレースパケットの基準時間の時間情報のうちで、そのトレースパケットの基準時間の時間情報が有する順序と同じ順序である。
【００４８】
そして、パケットマージ部１１０は、次の場合には、２つの基準時間の時間情報のうちの一方のみが含まれるトレースストリーム１１１ｓを生成する。つまり、パケットマージ部１１０は、この場合、上記の、一方および他方の２つの基準時間の時間情報のうちで、他方の基準時間の時間情報を削除する。そして、この削除が行われる場合とは、第１の変換後トレースストリーム１２１ｓ（図４中段の第１行）に含まれる第１の変換後トレースパケット１２１（図１）が有する基準時間の時間情報と同じ基準時間の時間情報を有する第２の変換後トレースパケット１３１（図１）が、第２の変換後トレースストリーム１３１ｓ（図４中段の第２行）に含まれる場合である。この場合に、一方の時間情報が残され、他方は削除される。
【００４９】
具体的には、例えば、図４の例では、第１の変換後トレースストリーム１２１ｓの左から３番目の基準時間の時間情報「１３」が（ＲＴＳ＝１３）、第２の変換後トレースストリーム１３１ｓの最も左の基準時間の時間情報「１３」と同一である。このため、パケットマージ部１１０は、第２の変換後トレースストリーム１３１ｓの最も左の変換後トレースパケットの基準時間の時間情報（ＲＴＳ＝１３）を削除する。なお、生成されるトレースストリーム１１１ｓは、例えば、削除がされない方の変換後トレースパケット（図４の第１の変換後トレースストリーム１２１ｓの左から３番目の変換後トレースパケット）の基準時間の時間情報により、削除がされた方の変換後トレースパケット（第２の変換後トレースストリーム１３１ｓの最も左の変換後トレースストリーム）の基準時間を特定する。
【００５０】
また、パケットマージ部１１０は、１以上の変換後トレースパケットの位置（例えば、図４のトレースストリーム１１１ｓの最も左の変換後トレースパケットの位置）に、それぞれ、識別パケット（ＳＲＣ＝１等）を付加する。付加される識別パケットは、その位置の変換後トレースパケットのトレースデータ・ソースを、複数のトレースデータ・ソースのうちから特定する。つまり、識別パケットは、その識別パケットが付加された位置の変換後トレースパケットの基となった変換前のトレースパケット（例えば、第１のソースストリーム２１１ｓの最も左のトレースパケット）を出力した元トレースデータ・ソース（第１のトレースデータ・ソース２１０）を、第１のトレースデータ・ソース２１０と、第２のトレースデータ・ソース３１０とのうちから特定するデータである。
【００５１】
（実施の形態２）
図２は、実施の形態２における、ＬＳＩ１Ａの構成を示す図である。
【００５２】
図２は、実施の形態２の構成を示しており、図１に加え、夫々のトレースデータ・ソースに、同期パケット要求（要求信号４０２、要求信号４０３）が同期パケット要求部４００により入力されている。
【００５３】
夫々のトレースデータ・ソース（第１のトレースデータ・ソース２１０、第２のトレースデータ・ソース３１０）に対して、同期パケット（図５の同期パケットｙ１等参照）を生成することを要求する、同期パケット要求部４００を、実施の形態１のＬＳＩ１に対してさらに追加する。そして、夫々のトレースデータ・ソース２１０、３１０は、同期パケットが同期パケット要求部４００によりそのトレースデータ・ソースに要求されると、同期パケットを、そのトレースデータ・ソースが出力するトレースデータ（図５の第１のソースストリーム２１１Ａ等）に挿入する。
【００５４】
先述のように、夫々のトレースデータ・ソースからのトレースストリーム（トレースデータ）２１１Ａ、３１１Ａ（図５）は、時間情報変換部１２０、１３０（図２）で、それぞれのローカルクロックの時間情報（第１の時間情報、第２の時間情報）を、基準時間の時間情報に変換した後、パケットマージ部１１０に入力される。
【００５５】
パケットマージ部１１０では、同一の基準時間の時間情報を伴った複数のトレース情報（変換後トレースパケット）を、同期パケット及び時間情報をキーに整理し（ソートし）、同期パケットと冗長な時間情報を削除した上で、夫々のトレースデータ・ソースからのトレース情報（変換後トレースパケット）を調停・選択して、出力する。
【００５６】
図５は、実施の形態２のＬＳＩ１Ａにより処理される各ストリームを示す図である。
【００５７】
図５に、図２の構成により、夫々のトレースデータ・ソースのトレース情報（第１のソースストリーム２１１Ａ、第２のソースストリーム３１１Ａ）がどのように加工され、１つのトレースストリーム（トレースストリーム１１１Ａ）に変換されるかを図示している。
【００５８】
この図５の例においては、第１のトレースデータ・ソース２１０（図２）の出力（第１のソースストリーム２１１Ａ）は、ローカルタイムスタンプ（第１の時間）で時刻０に、"MOV"命令が実行され、時刻４に"LDR"命令が実行され、時刻１０に"STR"命令が実行され、時刻１２に"MUL"命令が実行され、時刻７６に"LDR"命令が実行されていることをそれぞれ示している。また、時刻０、８、７６に夫々同期パケット要求があり、同期パケット"SYN"（時刻７６の同期パケットｙ１等参照）が出力されている。なお、ローカルタイムスタンプは"LTS="で示している。同様に、トレースデータ・ソース２（第２のトレースデータ・ソース３１０）の出力（第２のソースストリーム３１１Ａ（図５））は、ローカルタイムスタンプ（第２の時間）で、時刻４０に"LDR"命令が実行され、時刻５０に"ADD"命令が実行され、時刻５５、２８５に"STR"命令が実行されることをそれぞれ示している。また、時刻０、３０、２８５に夫々同期パケット要求があり、同期パケット"SYN"が出力されている。
【００５９】
なお、同期パケット要求部４００は、第１のトレースデータ・ソース２１０に同期パケット要求を行うのと同時に、第２のトレースデータ・ソース３１０に対しても同期パケット要求を行う。すなわち、例えば、上記した第２の時間の時刻０、３０、２８５は、それぞれ、上記した第１の時間の時刻０、４８、７６が第１の時間情報変換部１２０により変換された各基準時間と同一の各基準時間へと、第２の時間情報変換部１３０により変換される時刻である。
【００６０】
これらの２つの出力が、それぞれ、時間情報変換部（第１の時間情報変換部１２０および第２の時間情報変換部１３０）によって、第１の変換後トレースストリーム１２１Ａ、第２の変換後トレースストリーム１３１Ａ（図５）へと変換される。つまり、それぞれの変換前のストリームのトレースパケットが持っていた時間情報が、基準タイムスタンプ（基準時間の時間情報）に変換される。例えば、第１のトレースデータ・ソース２１０のローカルタイムスタンプLTS=10、LTS=76（第１のソースストリーム２１１Ａ参照）は、基準時間では、RTS=13、RTS=95のように変換される（第１の変換後トレースストリーム１２１Ａ参照）。同様に、例えば、第２のトレースデータ・ソース３１０のローカルタイムスタンプは、別の変換規則によって、LTS=40が、RTS=13に、LTS=55がRTS=18にそれぞれ変換される。これらの変換の処理は、例えばローカルクロックと基準タイムスタンプとのクロック比によって計算あるいは換算されることによってそれぞれ得られる。
【００６１】
さらに、最終的なパケットマージ出力（トレースストリーム１１１Ａ）では、パケットマージ部１１０（図２）が、同期パケット"SYN"によって、複数のトレース情報（変換後トレースパケット）間の前後関係を正しく並べなおす（基準時間の時間情報の順序に変換後トレースパケットの順序をソートする）。また、パケットマージ部１１０は、最終的なパケットマージ出力（トレースストリーム１１１Ａ）における、２つの時間情報変換後の冗長な時間情報を削除し、また、同期パケット"SYN"そのものを削除する。この後、パケットマージ部１１０は、２つのトレースデータ・ソースの出力の識別パケットをトレースストリーム１１１Ａにつけ、１つのトレースデータに複数のパケットをまとめて、複数のパケットがまとめられたトレースストリーム１１１Ａを出力している。
【００６２】
つまり、第１のトレースデータ・ソース２１０は、同期パケット要求部４００による同期パケット要求を受けると、出力する第１のソースストリーム２１１Ａに対して、第１の同期パケットｙ１（図５）を挿入する。第１のソースストリーム２１１Ａに含まれる各トレースパケットは、それぞれ、挿入された第１の同期パケットｙ１の順序よりも前の順序をそのトレースパケットが有する場合は、その同期パケットｙ１の同期パケット要求の第１の時間よりも前の第１の時間の第１の時間情報を有する。また、各トレースパケットは、その順序が、第１の同期パケットｙ１の順序以後の順序である場合は、同期パケット要求の第１の時間以後の第１の時間の時間情報を有する。
【００６３】
パケットマージ部１１０は、第１の同期パケットｙ１と、その第１の同期パケットｙ１が挿入された同期パケット要求と同時にされた、第２のトレースデータ・ソース３１０への同期パケット要求による第２の同期パケットｙ２（図５参照）とに基いて、トレースストリーム１１１Ａ（図５）を生成する。すなわち、パケットマージ部１１０は、第１の変換後トレースストリーム１２１Ａの各トレースパケットのうちで、同期パケットｙ１よりも前の順序の各前順序トレースパケットの時間情報の性質を簡単かつ迅速に特定する。ここで、特定される性質は、例えば、それらのトレースパケットのいずれも、第２のソースストリーム３１１Ａの各トレースパケットのうち、同期パケットｙ２以後の順序の各後順序トレースパケットよりも早い基準時間の時間情報を有することである。これにより、パケットマージ部１１０は、簡単かつ迅速に、含まれる各トレースパケットの順序が、そのトレースパケットの時間情報の順序と同じであるトレースストリーム１１１Ａを生成する。
【００６４】
つまり、パケットマージ部１１０は、変換後トレースストリーム（例えば、第１の変換後トレースストリーム１２１Ａ）に含まれる同期パケット（例えば、第１の変換後トレースストリーム１２１Ａにおける、ＳＹＮＣ＃１のパケット）に基いて、その変換後トレースストリームに含まれる各パケットのうちで、トレースストリーム１１１Ａにおいて、その同期パケットに対応する位置（RTS=13の位置）よりも前の位置である各パケットと、その位置以後の位置である各パケットとを、簡単かつ迅速に特定する。なお、ここで、特定される、その位置よりも前の位置の各パケットは、その変換後トレースストリームにおける、その同期パケットよりも前の各パケットである。また、特定される、その位置以後の位置の各パケットは、その変換後トレースストリームにおける、その同期パケット以後の各パケットである。そして、トレースストリーム１１１Ａにおける、同期パケット（例えば同期パケットｙ１）に対応する位置は、その同期パケットと同時の同期パケット（同期パケットｙ２）に対応する位置と同一の位置（RTS=95の位置）である。
【００６５】
しかも、パケットマージ部１１０は、第１の同期パケットｙ１及び第２の同期パケットｙ２が含まれないトレースストリーム１１１Ａを出力する（図５参照）。換言すれば、パケットマージ部１１０は、第１の同期パケットｙ１及び第２の同期パケットｙ２を削除する。
【００６６】
なお、パケットマージ部１１０は、例えば、第１の同期パケットｙ１、および、第２の同期パケットｙ２の少なくとも一方（例えば同期パケットｙ１）に含まれる、他方の同期パケット（同期パケットｙ２）を特定する特定データに基いて、その特定データにより特定されるパケットを、上記他方の同期パケット（同期パケットｙ２）と特定してもよい。
【００６７】
（実施の形態３）
図６は、実施の形態３における各ストリームを示す図である。
【００６８】
実施の形態１または２で説明した例では、夫々のトレースデータ・ソースにおいて、ローカルタイムスタンプ（第１の時間情報、第２の時間情報）が経過時間で与えられる場合を説明した。一方、ローカルタイムスタンプを、ローカルクロックで計測した時間からの差分時間（図６の上段の第１のソースストリーム２１１Ｂ等のＬＴＳの値を参照）としてもよい。
【００６９】
トレースデータ・ソースのトレース情報の時間情報が差分時間で与えられる場合、時間情報変換部１２０、１３０では、ローカルクロックの、現在の差分時間と、過去の各差分時間とを累計し、現在の差分時間を、経過時間に変換する。時間情報変換部１２０、１３０では、この変換をした後（図６の中段の第１のソースストリーム２１１Ｂ等のＬＴＳの値を参照）、変換後の経過時間を、基準時間に換算する（図６の下段の第１の変換後トレースストリーム１２１Ｂ等のＲＴＳの値を参照）。
【００７０】
上記の場合の、トレースパケットの変換の様子を図６に示す。
【００７１】
図６の上段の第１のソースストリーム２１１Ｂから、中段の第１のソースストリーム２１１Ｂへの変換の処理、および、上段の第２のソースストリーム３１１Ｂから、中段の第２のソースストリーム３１１Ｂへの変換の処理は、それぞれ、差分時間で示されているタイムスタンプを、経過時間に変換する処理である。それ以降の処理は、実施の形態１、２と同じである。
【００７２】
例えば、具体的には、図６の上段における第１のトレースパケットｘ２の第１の時間情報が示す差分時間は「２」（ＬＴＳ＝２）である。そして、ここで、この第１のトレースパケットｘ２の直前の順序の第１のトレースパケットｘ１の経過時間は「１０」（local TimeStamp1「１０」を参照）である。このため、図６の例では、第１の時間情報変換部１２０は、例えば、図６の第１のトレースパケットｘ２の時間情報「２」を、図６の中段の第１のソースストリーム２１１Ｂに示されるよう、経過時間「１２」（１０＋２＝１２）へと変換する。
【００７３】
なお、差分時間は、例えば、そのトレースパケット（その差分時間のトレースパケット）の経過時間から、そのトレースパケットの直前のトレースパケットの経過時間を差し引いた時間である。
【００７４】
また、経過時間は、例えば、ＬＳＩ（ＬＳＩ１（図１）、ＬＳＩ１Ａ（図２）、ＬＳＩ１Ｃ（図３））が動作を開始した動作開始時間から、そのトレースパケットの時間までの差分の時間であってもよい。また、経過時間は、そのトレースパケットが含まれるストリームの先頭のトレースパケットの時間などの、そのストリームの開始時間から、そのトレースパケットの時間までの時間であってもよい。
【００７５】
（実施の形態４）
図３は、実施の形態４における、ＬＳＩ１Ｃの構成を示す図である。
【００７６】
さらに、別の実施の形態においては、パケットマージの出力（図７のトレースストリーム１１１Ｃ）における時間情報を、再度、差分時間に差分時間再生成部１６０（図３）が変換する。図３に、パケットマージの出力において、パケットの時間情報を差分時間に変換し直す構成（ＬＳＩ１Ｃ）を図示する。
【００７７】
ＬＳＩ１Ｃでは、最後にパケットマージ部１１０が出力したパケットの時間情報(経過時間)を、最終タイムスタンプ保持部１７０（図３）により保持する。そして、その保持された時間情報と、パケットマージ部１１０が今回出力しようとするパケットの時間情報の差（差分時間）を差分時間再生成部１６０（図３）が計算する。これにより、時間情報を差分時間に変換したパケットマージ出力（図７のトレースストリーム１６１Ｃ、図３のトレースストリーム１６１）を得る。
【００７８】
図７は、実施の形態４における２つのストリームを示す図である。
【００７９】
図７に、図３の構成により、パケットマージ出力の時間情報が差分時間に変換される例を図示している。"RTS="で示されている時間が、図７の上段の図（トレースストリーム１１１Ｃ）では経過時間であるのに対し、下段の図（トレースストリーム１６１Ｃ）では、差分時間再生成部１６０による処理によって、差分時間になっている。
【００８０】
図８は、一部のパケットが失われる際における、４つのストリームを示す図である。
【００８１】
さらに、図８において、パケットの一部（図８のパケットｘ５、パケットｘ６）が失われた場合でも、経過時間が保持されており、トレースデータ・ソース間の時間相関がとれる様子を示す。図８は、時間情報変換後のトレース情報において、第１のトレースデータ・ソース２１０（図３）についての時刻１５の"MUL"パケットｘ５が、トレースバッファのＦＩＦＯオーバフローで入力できないか、又は、優先度が低くて選択されなかったことを示している。また、図８は、第２のトレースデータ・ソース３１０についての時刻１７の"ADD"パケットｘ６が、トレースバッファのＦＩＦＯオーバフローで入力できないか、優先度が低くて選択されなかったことを示している。
【００８２】
このような場合においても、時刻１８の"STR"命令のパケットｘ７（図８）の経過時間（ＲＴＳ＝１８）は失われていないため、それ以降の時間情報が失われることがない。また、差分時間を再生成するにあたっても、支障がない。よって、最終的に得られるトレース情報（第２のトレースストリーム１６１Ｃ）で、パケットｘ５以降およびパケットｘ６以降の各パケットの時間情報が失われていないので、トレースデータ・ソース間の時間相関が得られる。
【００８３】
このようにして、第１のトレースデータ・ソース（第１のトレースデータ・ソース２１０）と、前記第１のトレースデータ・ソースからのトレースパケット（第１のトレースパケット２１１）に付随した時間情報（第１の時間情報）を、基準時間の時間情報に変換する第１の時間情報変換部（第１の時間情報変換部１２０）と、第２のトレースデータ・ソース（第２のトレースデータ・ソース３１０）と、前記第２のトレースデータ・ソースからのトレースパケット（第２のトレースパケット３１１）に付随した時間情報（第２の時間情報）を、基準時間の時間情報に変換する第２の時間情報変換部（第２の時間情報変換部１３０）と、前記第１の時間情報変換部により、付随する時間情報が変換されたトレースパケット（第１の変換後トレースパケット１２１）と、前記第２の時間情報変換部により、付随する時間情報が変換されたトレースパケット（第２の変換後トレースパケット１３１）とを受け取り、第１の時間情報変換部により変換がされたトレースパケットおよび第２の時間情報変換部により変換がされたトレースパケットの全体のうちで、付随する時間情報が最も早いトレースパケットを選択して、選択されたトレースパケットを出力する（調停して、出力する）と共に、複数トレースパケット間（例えば、図４の第１の変換後トレースストリーム１２１ｓの左から３番目のトレースパケットと、図４の第２の変換後トレースストリーム１３１ｓの最も左のトレースパケットとの間）で冗長な時間情報（図４の第１の変換後トレースストリーム１２１ｓの左から３番目の基準時間の時間情報（ＲＴＳ＝１３）、図４の第２の変換後トレースストリーム１３１ｓの最も左の基準時間の時間情報（ＲＴＳ＝１３）の一方）を取り除くパケットマージ部（パケットマージ部１１０）とを備えるデータ処理装置（ＬＳＩ１、ＬＳＩ１Ａ、ＬＳＩ１Ｃ）が構築される。
【００８４】
なお、ここで、パケットマージ部は、例えば、第１の時間情報変換部により時間情報が変換された各トレースパケットの時間情報、および、第２の時間情報変換部により時間情報が変換された各トレースパケットの時間情報の全体における、その時間情報の順序が、予め定められた順序（最も早い順序）である時間情報を有するトレースパケットを選択する。
【００８５】
そして、夫々の前記トレースデータ・ソースに対して、同期パケット要求を出力する同期パケット要求部（同期パケット要求部４００）を備え、前記パケットマージ部は、前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第１のトレースデータ・ソースにより出力された同期パケットと、前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第２のトレースデータ・ソースにより出力された同期パケットとの２つの前記同期パケット（図５の同期パケットｙ１、ｙ２等参照）に基いて、前記最も早いトレースパケットを選択し、選択されたトレースパケットを出力し、前記トレースパケットと前記同期パケットとのうちで前記同期パケットは出力しないデータ処理装置（図２のＬＳＩ１Ａ、図３のＬＳＩ１Ｃ）が構築される。
【００８６】
そして、前記時間情報は、その時間情報を生成するトレースデータ・ソースに供給されたクロックで当該トレースデータ・ソースが計測した経過時間（図４の第１のソースストリーム２１１ｓの時間情報等参照）であり、前記第１の時間情報変換部および前記第２の時間情報変換部のそれぞれは、その時間情報変換部に対応する前記トレースデータ・ソースからの経過時間の時間情報を、単一基準時間の経過時間情報（図４の第１の変換後トレースストリーム１２１ｓの基準時間の時間情報等参照）に変換するデータ処理装置が構築される。
【００８７】
なお、「単一基準時間」における「単一」とは、何れのトレースデータ・ソースにおける時間情報も、基準時間を含む複数の種類の時間のうちで、基準時間の時間情報であることを意味する。
【００８８】
そして、前記時間情報は、その時間情報を生成するトレースデータ・ソースで、前回、トレースに関わるイベントが発生した時刻（最後のトレースパケットで記録された処理の時間（時刻））からの、そのトレースデータ・ソースに供給されたクロック（クロックの個数）で当該トレースデータ・ソースが計測した差分時間（図６の上段における第１のソースストリーム２１１Ｂの時間情報等を参照）であり、前記第１の時間情報変換部及び前記第２の時間情報変換部のそれぞれは、その時間情報変換部に対応する前記トレースデータ・ソースからの差分時間の時間情報を、経過時間に累計する（図６の中段の第１のソースストリーム２１１Ｂ等の時間情報を参照）と共に、累計された当該経過時間を、単一の基準時間の時間情報に変換する（図６の下段の第１の変換後トレースストリーム１２１Ｂ等の時間情報を参照）データ処理装置が構築される。
【００８９】
なお、差分時間の時間情報を、経過時間に累計するとは、過去の１つ以上の差分時間と、現在の差分時間とを足すことにより、現在までの経過時間を算出することをいう。
【００９０】
そして、前記パケットマージ部が前回出力したトレースパケット（最後のトレースパケット）に付随した時間情報（図７の第１のトレースパケットｘ３参照）を保持する最終タイムスタンプ保持部（最終タイムスタンプ保持部１７０）と、前記最終タイムスタンプ保持部に保持された前記時間情報（例えば、図７の第１のトレースパケットｘ３におけるＲＴＳ＝１５）と、今回出力するトレースパケット（図７の第１のトレースパケットｘ４参照）の時間情報（ＲＴＳ＝１７）とから、前回の前記トレースパケット（第１のトレースパケットｘ３）と、今回の前記トレースパケット（第１のトレースパケットｘ４）との間での、時間情報の差分時間（ＲＴＳ＝２）を計算する差分時間生成部（差分時間再生成部１６０）とを有するデータ処理装置（図３のＬＳＩ１Ｃ）が構築される。
【００９１】
こうして、ローカルタイム情報に加え、基準タイムスタンプまで出力されることによる弊害を回避しつつ、異なるトレースデータ・ソースの時間情報の間の相関をとれるようにできる。
【００９２】
なお、相関をとるとは、例えば、１の時間情報の時間から、他の時間情報の時間を引いた差分の時間を特定することを意味する。第１の時間情報および第２の時間情報は、第１の時間と第２の時間との間の時差の時差情報や、上記した基準タイムスタンプなどのその他の情報がなければ、相関をとることはできない。一方、第１の時間情報から第１の時間情報変換部１２０により変換された基準時間の時間情報と、第２の時間情報から変換された基準時間の時間情報とは、いずれも基準時間の時間情報であり、時差などがなく、それらの情報のみにより、相関をとることができる。
【００９３】
上記のようにして、トレースデータ・ソースからのトレース情報に含まれる時間情報を、基準時間の経過時間に変換することにより、複数の種類の時間情報（ローカルクロックによる時間情報、基準タイムスタンプ発生器による基準タイムスタンプ）を出力することを抑制し、オーバヘッドを削減することができる。さらに、マージ出力後の時間情報を再度差分時間に変換することで、さらにオーバヘッドを削減することができる（図７等参照）。また、パケットの一部が欠落した場合でも（図８等参照）、経過時間情報が失われず、時間相関を取ることが可能となる。
【００９４】
このように、実施形態の並列処理ＬＳＩ（ＬＳＩ１、ＬＳＩ１Ａ、ＬＳＩ１Ｃ等）は、複数の処理部（第１のプロセッサコア２００、第２のプロセッサコア３００）と、複数の生成部（第１のトレースデータ・ソース２１０、第２のトレースデータ・ソース３１０）と、複数の変換部（第１の時間情報変換部１２０、第２の時間情報変換部１３０）とを備える。
【００９５】
それぞれの処理部は、その処理部の情報処理を、他の処理部により実行される情報処理に対して、並列に実行する。それぞれの処理部は、その処理部の情報処理におけるイベントを発生する。
【００９６】
それぞれの生成部は、その生成部に対応する処理部のイベントの発生の時刻（第１の時間、第２の時間）を特定する時刻情報（時間情報）を生成する。
【００９７】
ここで、それぞれの基準時刻（基準時間）において、それぞれの生成部により生成される時刻情報の時刻は、その基準時刻と同じ基準時刻において、他の生成部により生成される時刻情報の時刻とは相違する。つまり、例えば、それぞれの生成部での時刻は、他の生成部における時刻に対して、時差を有する。また、例えば、それぞれの生成部での時刻の進行速度は、他の生成部での時刻の進行速度とは相違する。なお、ここで、基準時刻は、何れの生成部の時刻とも異なる第３の時刻でもよいし、何れか１つの生成部での時刻であってもよい。
【００９８】
そして、それぞれの変換部は、その変換部に対応する生成部により生成された時刻情報を、その時刻情報が示す時刻に対応する基準時刻の時刻情報に変換する。
【００９９】
なお、それぞれの変換部は、例えば、対応する生成部の時刻と、基準時刻との間の時差を特定する対応データなどの、それらの時刻の間の対応関係を特定する対応データを保持してもよい。そして、それぞれの変換部は、対応する生成部の時刻を、保持された対応データが、その時刻に対応させる基準時刻へと変換してもよい。
【０１００】
これにより、それぞれの生成部により生成される、変換後の時刻情報により、その生成部に対応する処理部のイベントの基準時刻が示される。ここで、示される何れの時刻も、基準時刻の時刻情報である。このため、１つの処理部でのイベントの基準時刻と、他の処理部でのイベントの基準時刻とが示されることで、それらのイベントの間の相対時刻が特定される。
【０１０１】
この構成であれば、２つのプロセッサ間の時差や、時刻の進行速度のズレがあっても、相対時刻が正しく、かつ簡単に特定できる。
【０１０２】
しかも、この構成であれば、予め、並列処理ＬＳＩにより、時刻情報の変換が行われる。これにより、上記の対応データなどの余計なデータが、並列処理ＬＳＩの外部へと並列処理ＬＳＩにより送信されなくても、相対時刻が正しく特定される。これにより、通信量が低減できる。
【０１０３】
また、並列処理ＬＳＩの外部における、基準時刻への変換の処理などの余計な処理が不要にできて、少ない処理で、相対時刻が正しく特定できる。
【０１０４】
さらに、それぞれの生成部により生成される時刻情報が、時差を有する時刻情報で足りるなどして、それぞれの生成部の構成が簡単にできる。
【０１０５】
なお、例えば、この並列処理ＬＳＩは、ストリーム（トレースストリーム１１１ｓ）を生成するストリーム生成部（パケットマージ部１１０）を備えてもよい。ここで、生成されるストリームは、それぞれの変換部により変換がされた後の時刻情報を含み、それぞれの時刻情報がストリームに含まれる順序は、含まれる複数の時刻情報により示される複数の基準時刻のうちにおける、その時刻情報により示される基準時刻の順序と同一の順序である。
【０１０６】
このストリーム生成部は、複数の変換部により変換がされた複数の時刻情報のうちから、直前の時刻情報の次にストリームに含まれる、次の時刻情報を選択してもよい。ここで、選択される時刻情報は、直前の時刻情報により示される基準時刻の順序の次の順序の基準時刻を示す時刻情報である。
【０１０７】
なお、並列処理ＬＳＩは、３以上の値Ｎについて、Ｎ個の処理部と、Ｎ個の生成部と、Ｎ個の変換部とを備えてもよい。
【０１０８】
なお、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【０１０９】
本発明にかかるデータ処理装置は、複数コアを持つシステムにおいて、複数コアの動作の時間相関を取った解析を行うのに有用である。なお、トレースデータ・ソースは、実施例においてはプロセッサコアとしているが、バストランザクションのモニタ機能やハードウェアエンジンの内部状態モニタ機能としてもよい。
【符号の説明】
【０１１０】
１１０  パケットマージ部
１２０、１３０  時間情報変換部
１６０  差分時間再生成部
１７０  最終タイムスタンプ保持部
２００  第１のプロセッサコア
２１０  第１のトレースデータ・ソース
３００  第２のプロセッサコア
３１０  第２のトレースデータ・ソース
４００  同期パケット要求部
【図１】
2010097875.tif 000003
【図２】
2010097875.tif 000004
【図３】
2010097875.tif 000005
【図４】
2010097875.tif 000006
【図５】
2010097875.tif 000007
【図６】
2010097875.tif 000008
【図７】
2010097875.tif 000009
【図８】
2010097875.tif 000010
【手続補正書】
【提出日】平成23年7月28日(2011.7.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のトレースデータ・ソースを持つ情報処理装置において、トレースデータ・ソース間の時間相関を与えることが可能なデータ処理装置に関する。
【背景技術】
【０００２】
大規模なシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）においては、１つのＬＳＩの中に複数のプロセッサコア（処理装置）を含み、それらが相互に関係しながら、所望の動作を行う。よって、これらのシステムＬＳＩのシステムレベルのデバッグを行う際、複数のコア間で発生している時間の前後関係、即ち、時間相関を知ることが必要となる。
【０００３】
従来では、基準タイムスタンプ発生器を備え、基準タイムスタンプの発生タイミングで、各トレースデータ・ソースに基準タイムスタンプを挿入するか、もしくは、基準タイムスタンプパケットに関連づけるパケットを生成する。これらのことで、各トレースデータ・ソース相互の時間関係を解析できるようにしている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−５６３８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、実際のシステムにおいては、各トレースデータ・ソースは、単独でも時間情報付きのトレースデータを出力できる機能を備えなければならない。このため、それぞれのローカルクロックによる時間情報を、差分時間の形で本来のトレースパケットに付加して、時間情報が付加されたトレースパケットを出力する。
【０００６】
このローカルタイムスタンプ情報に加え、基準タイムスタンプを意味するパケットも出力するため、時間相関を取るための情報によるオーバヘッドが増加するという課題がある。
【０００７】
また、複数コアのトレースストリームを出力する際には、出力しなければならないバンド幅に比べ、トレース出力するためのバンド幅が不足する。このため、トレースバッファでＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ，Ｆｉｒｓｔ−Ｏｕｔ）オーバフローが発生し、パケットが失われることが発生する。その対策として、より重要なトレース情報をフィルタリングするため、トレースデータ・ソースやパケットの内容による優先制御を行い、優先度の低いパケットを切り捨てることがある。
【０００８】
その結果として、各トレースデータ・ソースのパケットに付随した差分時間情報が失われ、それ以降の同期パケットの出現まで、時間情報が失われてしまい、複数コア間の時間相関のある動作解析が行えない（時間相関を踏まえた解析ができない）という課題が生じる。
【０００９】
本発明は、ローカルタイム情報に加え、基準タイムスタンプまで出力されることによる弊害を回避しつつ、異なるトレースデータ・ソースの時間情報の間の相関をとれるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明のデータ処理装置は、第１のトレースデータ・ソースと、前記第１のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第１の時間情報変換部と、第２のトレースデータ・ソースと、前記第２のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第２の時間情報変換部と、前記第１の時間情報変換部で、付随する時間情報が変換されたトレースパケットと、前記第２の時間情報変換部で、付随する時間情報が変換されたトレースパケットとを受け取り、付随する時間情報が最も早いトレースパケットを選択出力すると共に、複数トレースパケット間で冗長な時間情報を取り除くパケットマージ部とを備える。
【００１１】
なお、付随する時間情報が最も早いトレースパケットを選択出力するとは、受け取られた複数のトレースパケットのうちから、それら複数のトレースパケットに付随する時間情報のうちで、最も早い時間情報が付随するトレースパケットを選択して、選択されたトレースパケットを出力することをいう。
【００１２】
また、複数トレースパケット間で冗長な時間情報とは、それらの複数の時間情報のうちに含まれる、その時間情報以外の他の時間情報により示される時間と同じ時間を示す時間情報をいう。
【００１３】
そして、それぞれの時間情報変換部は、その時間情報変換部に対応するトレースデータ・ソースの時間情報を、単一基準時間の時間情報に変換してもよい。ここで、単一基準時間の時間情報とは、基準時間の時間情報であることにより、他方の時間情報変換部により変換がされた後の、同じく基準時間の時間情報である他方の時間情報と、単一（共通）の種類に属する時間情報をいう。ここで、他方の時間情報変換部とは、その時間情報の変換がされた時間情報変換部とは異なる時間情報変換部である。
【００１４】
そして、それぞれのトレースデータ・ソースの時間情報は、予め定められた特定時間からの経過時間（差）を示す経過時間であってもよい。
【発明の効果】
【００１５】
従来は、ローカルタイムスタンプ、基準タイムスタンプと、複数の時間情報を出力していたものを、本発明により、単一の基準クロックによるタイムスタンプ情報だけが出力されるようにする。これにより、最終的に得られるトレースデータのオーバヘッドを削減している。
【００１６】
さらに、従来は同期のために必要なパケットが最終のトレースデータに残っていたが、本発明により、パケット間の同期に必要だった同期パケットを取り除くことにより、さらにオーバヘッドを削減する。
【００１７】
また、トレースデータ・ソースからの時間情報が差分時間情報であり、トレースパケットが一部欠落する状況のときに、従来は、次の同期のタイミングまで時間情報が欠落してしまっていたが、本発明により、残ったトレースパケットの時間情報は失われず、トレースデータ・ソース間の時間相関に関する情報を得られる。
【図面の簡単な説明】
【００１８】
【図１】図１は、複数コアのトレースデータ・ソースの時間情報を変換した後にパケットマージを行う構成を図示している。
【図２】図２は、図１に加え、夫々のトレースデータ・ソースに同期パケット要求が入力される構成を図示している。
【図３】図３は、図２に加え、パケットマージの出力でパケットの時間情報を差分時間に変換し直す構成を図示している。
【図４】図４は、図１の構成により、夫々のトレースデータ・ソースのトレース情報が加工され、１つのトレースストリームに変換されるかを図示している。
【図５】図５は、図２の構成により、夫々のトレースデータ・ソースのトレース情報が加工され、１つのトレースストリームに変換されるかを図示している。
【図６】図６は、図１、図２の構成において、特に夫々のトレースデータ・ソースのトレース情報の時間情報が差分時間で与えられる場合に、それがいかに変換されるかを図示している。
【図７】図７は、図３の構成により、パケットマージ出力の時間情報が差分時間に変換される例を図示している。
【図８】図８は、図３の構成により、トレースデータ・ソースのパケットの一部が欠落した場合でも、正しく時間情報が保持されることを図示している。
【発明を実施するための形態】
【００１９】
本実施の形態１〜４では、まずトレースデータ・ソースからのトレースパケットに含まれる、ローカルクロック（第１のローカルクロック２２０、第２のローカルクロック３２０（図１等））による時間情報（第１の時間情報、第２の時間情報）を、基準時間の経過時間に変換する変換部（第１の時間情報変換部１２０、第２の時間情報変換部１３０）を用意する。次に基準時間に変換された時間情報を持つトレースデータ（第１の変換後トレースパケット１２１、第２の変換後トレースパケット１３１）を、時間情報に着目してソートし、他の時間情報と重複して不要な時間情報を削除すると共に、複数のトレースデータ・ソース（第１のトレースデータ・ソース２１０、第２のトレースデータ・ソース３１０）のトレースパケットを選択出力するパケットマージ部（パケットマージ部１１０）を用意する。これにより、時間相関を取るためのオーバヘッドを削減する。
【００２０】
さらに、トレースデータ・ソースに同期パケットを生成させる同期パケット要求部（同期パケット要求部４００（図２等））を用意し、夫々のトレースデータ・ソースに同期パケットを生成させる。そして、パケットマージ部（パケットマージ部１１０）で、パケット出力の同期のために、生成された同期パケットを使った後に、その同期パケットをパケットマージ部１１０が削除する。これにより、オーバヘッドの削減を行う。
【００２１】
また、トレースデータ・ソースが出力するトレースパケットに付随した時間情報が、ローカルクロックによる差分時間（図６の上段の第１のソースストリーム２１１Ｂの時間情報、第２のソースストリーム３１１Ｂの時間情報を参照）であっても、それを、それぞれの時間情報変換部において累計する。そして、それぞれの時間情報変換部において、累計された時間を、経過時間（図６の中段の第１のソースストリーム２１１Ｂの時間情報、第２のソースストリーム３１１Ｂの時間情報を参照）に変換する。そして、それぞれの時間情報変換部において、変換された後の経過時間を、基準クロックの時間情報に変換する（図６の下段の第１の変換後トレースストリーム１２１Ｂ、第２の変換後トレースストリーム１３１Ｂを参照）。これにより、パケットマージ部でパケットが切り捨てられた場合にも（図８のパケットｘ５、パケットｘ６参照）、残ったトレースパケット（切り捨てられたトレースパケット以外の残りのトレースパケット）の経過時間が失われることなく（図８の第２のトレースストリーム１６１Ｃ参照）、トレースデータ・ソース間の時間相関が取れる。
【００２２】
さらに、パケットマージ後のトレースパケットに含まれる時間情報と、最後に出力したパケットの時間情報（タイムスタンプ）との差分を計算する差分時間再生成部（差分時間再生成部１６０（図３等））を設け、時間情報を差分時間再生成部により差分時間に変換することにより、タイムスタンプ出力のデータ量を削減する。
【００２３】
以下、詳しく説明される。
【００２４】
（実施の形態１）
図１は、実施の形態１における、ＬＳＩ１の構成を示す図である。
【００２５】
図１に複数コアのトレースデータ・ソースの時間情報を変換した後にパケットマージを行うＬＳＩ１の構成を図示している。
【００２６】
ここで、第１のトレースデータ・ソース２１０は、第１のローカルクロック２２０で動作しており、第１のプロセッサコア２００からのトレース情報（第１のトレース情報）を、ローカルクロック２２０で計測した時間情報（第１の時間情報）とともに出力する。第２のトレースデータ・ソース３１０は、第２のローカルクロック３２０で動作しており、第２のプロセッサコア３００からのトレース情報（第２のトレース情報）を、第２のローカルクロック３２０で計測した時間情報（第２の時間情報）とともに出力する。
【００２７】
第１のトレースデータ・ソース２１０からの第１のトレースパケット（トレース情報）２１１は、それに付随した第１の時間情報を第１の時間情報変換部１２０で、基準時間の時間情報に変換した後、パケットマージ部１１０に入力される。同様に第２のトレースデータ・ソース３１０からの第２のトレースパケット（トレース情報）３１１は、それに付随した第２の時間情報を第２の時間情報変換部１３０で、基準時間の時間情報に変換した後、パケットマージ部１１０に入力される。
【００２８】
パケットマージ部１１０では、同一の基準時間の情報を伴った複数のトレース情報を、時間情報（基準時間の時間情報）をキーに整理し、冗長な時間情報を削除した上で、夫々のトレースデータ・ソース（第１のトレースデータ・ソース２１０、第２のトレースデータ・ソース３１０）からのトレース情報（トレースパケット）を調停・選択して出力する（トレースストリーム１１１）。
【００２９】
図４は、実施の形態１における各ストリームを示す図である。
【００３０】
図４に、図１の構成により、夫々のトレースデータ・ソースのトレース情報がどのように加工され、１つのトレースストリーム（トレースストリーム１１１ｓ）に変換されるかを図示している。
【００３１】
この例においては、第１のトレースデータ・ソース２１０（図１）の出力（第１のソースストリーム２１１ｓ）は、ローカルタイムスタンプで時刻０に、"MOV"命令が第１のプロセッサコア２００により実行されることを示す。そして、第１のプロセッサコア２００により、時刻４に"LDR"命令が実行され、時刻１０に"STR"命令が実行され、時刻１２に"MUL"命令が実行され、時刻７６に"LDR"命令が実行されることがそれぞれ示される。
【００３２】
なお、ローカルタイムスタンプは"LTS="で示している。つまり、LTSの文字が付された時刻は、ローカルタイムスタンプでの時刻である。なお、後で詳しく説明されるように、RTSの文字が付された時刻は、基準タイムスタンプでの時刻である。
【００３３】
同様に、第２のトレースデータ・ソース３１０の出力（第２のソースストリーム３１１ｓ（図４））は、ローカルタイムスタンプで時刻４０に、"LDR"命令が第２のプロセッサコア３００により実行され、時刻５０に"ADD"命令が実行され、時刻５５、２８５に"STR"命令が実行されることをそれぞれ示している。
【００３４】
これらの２つの出力（第１のソースストリーム２１１ｓ、第２のソースストリーム３１１ｓ）が、第１の時間情報変換部１２０および第２の時間情報変換部１３０によって、変換後のデータ（第１の変換後トレースストリーム１２１ｓ、第２の変換後トレースストリーム１３１ｓ）へとそれぞれ変換される。すなわち、上記２つの出力のそれぞれのトレースパケットが持っていた第１の時間情報及び第２の時間情報が、それぞれ、第１の時間情報変換部１２０、第２の時間情報変換部１３０により、基準タイムスタンプの時間情報（基準時間の時間情報）に変換される。
【００３５】
例えば、図４に示される、第１のトレースデータ・ソース２１０の出力（第１のソースストリーム２１１ｓ）のローカルタイムスタンプLTS=10、LTS=76は、それぞれ、基準時間では、RTS=13、RTS=95のように変換される（第１の変換後トレースストリーム１２１ｓを参照）。また、第２のトレースデータ・ソース３１０（図１）のローカルタイムスタンプ（第２の時間情報）は、図４に示されるように、別の変換規則によって、LTS=40が、RTS=13に、LTS=55がRTS=18にそれぞれ変換される。これらの変換は、例えばローカルクロックと、基準タイムスタンプのクロックとのクロック比によって計算あるいは換算されることによって行われる。
【００３６】
さらに、最終的なパケットマージ出力（トレースストリーム１１１ｓ）では、２つの時間情報変換後の冗長な時間情報をパケットマージ部１１０が削除した後、２つのトレースデータ・ソースの出力の識別パケットをパケットマージ部１１０がトレースストリーム１１１ｓにつけ、発生順に各パケットを並べ、１つのトレースデータにそれらのパケットをまとめて、それらのパケットがまとめられたトレースストリーム１１１ｓを出力している。トレースデータ・ソース１と２で共通の時刻、RTS=13、RTS=95については、重複しているので、時間情報を１つにまとめている。
【００３７】
つまり、第１のローカルクロック２２０は、クロックを出力することにより、第１の時間を特定する。例えば、第１の実行部２（図１）の起動時間などの予め定められた時間から現在までに、出力されたクロックの個数により、第１の時間は特定される。
【００３８】
第１のプロセッサコア２００は、例えば機械語のプログラムに含まれる命令の処理などの処理を実行し、実行した処理を特定する処理特定情報を含むトレース情報を出力する。なお、トレース情報は、処理特定情報のみよりなってもよい。
【００３９】
第１のトレースデータ・ソース２１０は、第１のプロセッサコア２００が出力する処理特定情報の処理が第１のプロセッサコア２００によって実行された第１の時間を特定する第１の時間情報を生成し、生成された第１の時間情報を出力する。ここで、出力される第１の時間情報は、その第１の時間情報が示す第１の時間に実行された処理の処理特定情報に伴う情報として第１のトレースデータ・ソース２１０により出力される。第１のプロセッサコア２００は、例えば、処理特定情報と、生成した第１の時間情報とが含まれるトレース情報（第１のトレースパケット２１１（図１））を生成し、生成されたトレース情報を出力する。
【００４０】
第１の時間情報変換部１２０（図１）は、第１のトレースデータ・ソース２１０が出力する第１のトレースパケット２１１に含まれる第１の時間情報を、基準時間の時間情報へと変換する。なお、基準時間は、例えば実際の客観的な時間である。なお、変換後の基準時間の時間情報が示す基準時間は、変換前の第１の時間情報が伴う処理特定情報の処理が実行された基準時間と同一である。
【００４１】
そして、第１のプロセッサコア２００は、例えば機械語のプログラムに含まれる複数の命令を実行して、複数の処理特定情報を出力する。第１のプロセッサコア２００は、それら複数の処理特定情報の第１のトレースパケット２１１をそれぞれ含んだ第１のプロセッサストリーム（図略）を出力する。
【００４２】
図４に示される第１のトレースパケットｘは、第１のトレースデータ・ソース２１０が出力する第１のソースストリーム２１１ｓに含まれる、複数の第１のトレースパケット２１１のうちの１つ（一例）である。第１のトレースパケットｘは、例えば、図４に示されるように、機械語の命令「ＬＤＲ」を特定する処理特定情報と、「７６」なる第１の時間を特定する第１の時間情報（LTS=76）とを含む。なお、このように、処理特定情報に伴った時間情報は、その処理特定情報と共に１つのパケットを構成してもよい。
【００４３】
そして、第１の時間情報変換部１２０は、第１のソースストリーム２１１ｓ（図４）に含まれる第１のトレースパケットｘ等の各第１のトレースパケットの第１の時間情報（「７６」等）を、それぞれ、基準時間の時間情報（「９５」等）へと変換する。
【００４４】
第２の実行部３（図１）および第２の時間情報変換部１３０（図１）は、それぞれ、第１の実行部２および第１の時間情報変換部１２０に対応する構成を有する。
【００４５】
なお、第２の時間を特定するローカルクロック（第２のローカルクロック３２０）は、第１のローカルクロック２２０とは異なる。すなわち、第２の時間は、例えば、第１の時間に対して時差を有する時間でもよいし、第１の時間が進む速さとは異なる速さで進む時間であってもよい。
【００４６】
パケットマージ部１１０は、第１の時間情報変換部１２０が出力する第１の変換後トレースストリーム１２１ｓ（図４）と、第２の時間情報変換部１３０が出力する第２の変換後トレースストリーム１３１ｓとが入力される。これにより、パケットマージ部１１０は、第１の変換後トレースストリーム１２１ｓに含まれる複数の第１の変換後トレースパケット１２１、および、第２の変換後トレースストリーム１３１ｓに含まれる複数の第２の変換後トレースパケット１３１が入力される。以下では、複数の第１の変換後トレースパケット１２１、および、複数の第２の変換後トレースパケット１３１の全体よりなるトレースパケットの集合は、変換後トレースパケット群集合と呼ばれる。
【００４７】
そして、パケットマージ部１１０は、変換後トレースパケット群集合に含まれる各トレースパケットが含まれるトレースストリーム１１１ｓ（図４）を生成し、生成されるトレースストリーム１１１ｓを出力する。生成され、出力されるトレースストリーム１１１ｓは、例えば、変換後トレースパケット群集合に含まれる何れのトレースパケットをも含む。そして、トレースストリーム１１１ｓの各トレースパケットのうちで、それぞれのトレースパケットが有する順序は、それら各トレースパケットの基準時間の時間情報のうちで、そのトレースパケットの基準時間の時間情報が有する順序と同じ順序である。
【００４８】
そして、パケットマージ部１１０は、次の場合には、２つの基準時間の時間情報のうちの一方のみが含まれるトレースストリーム１１１ｓを生成する。つまり、パケットマージ部１１０は、この場合、上記の、一方および他方の２つの基準時間の時間情報のうちで、他方の基準時間の時間情報を削除する。そして、この削除が行われる場合とは、第１の変換後トレースストリーム１２１ｓ（図４中段の第１行）に含まれる第１の変換後トレースパケット１２１（図１）が有する基準時間の時間情報と同じ基準時間の時間情報を有する第２の変換後トレースパケット１３１（図１）が、第２の変換後トレースストリーム１３１ｓ（図４中段の第２行）に含まれる場合である。この場合に、一方の時間情報が残され、他方は削除される。
【００４９】
具体的には、例えば、図４の例では、第１の変換後トレースストリーム１２１ｓの左から３番目の基準時間の時間情報「１３」が（ＲＴＳ＝１３）、第２の変換後トレースストリーム１３１ｓの最も左の基準時間の時間情報「１３」と同一である。このため、パケットマージ部１１０は、第２の変換後トレースストリーム１３１ｓの最も左の変換後トレースパケットの基準時間の時間情報（ＲＴＳ＝１３）を削除する。なお、生成されるトレースストリーム１１１ｓは、例えば、削除がされない方の変換後トレースパケット（図４の第１の変換後トレースストリーム１２１ｓの左から３番目の変換後トレースパケット）の基準時間の時間情報により、削除がされた方の変換後トレースパケット（第２の変換後トレースストリーム１３１ｓの最も左の変換後トレースストリーム）の基準時間を特定する。
【００５０】
また、パケットマージ部１１０は、１以上の変換後トレースパケットの位置（例えば、図４のトレースストリーム１１１ｓの最も左の変換後トレースパケットの位置）に、それぞれ、識別パケット（ＳＲＣ＝１等）を付加する。付加される識別パケットは、その位置の変換後トレースパケットのトレースデータ・ソースを、複数のトレースデータ・ソースのうちから特定する。つまり、識別パケットは、その識別パケットが付加された位置の変換後トレースパケットの基となった変換前のトレースパケット（例えば、第１のソースストリーム２１１ｓの最も左のトレースパケット）を出力した元トレースデータ・ソース（第１のトレースデータ・ソース２１０）を、第１のトレースデータ・ソース２１０と、第２のトレースデータ・ソース３１０とのうちから特定するデータである。
【００５１】
（実施の形態２）
図２は、実施の形態２における、ＬＳＩ１Ａの構成を示す図である。
【００５２】
図２は、実施の形態２の構成を示しており、図１に加え、夫々のトレースデータ・ソースに、同期パケット要求（要求信号４０２、要求信号４０３）が同期パケット要求部４００により入力されている。
【００５３】
夫々のトレースデータ・ソース（第１のトレースデータ・ソース２１０、第２のトレースデータ・ソース３１０）に対して、同期パケット（図５の同期パケットｙ１等参照）を生成することを要求する、同期パケット要求部４００を、実施の形態１のＬＳＩ１に対してさらに追加する。そして、夫々のトレースデータ・ソース２１０、３１０は、同期パケットが同期パケット要求部４００によりそのトレースデータ・ソースに要求されると、同期パケットを、そのトレースデータ・ソースが出力するトレースデータ（図５の第１のソースストリーム２１１Ａ等）に挿入する。
【００５４】
先述のように、夫々のトレースデータ・ソースからのトレースストリーム（トレースデータ）２１１Ａ、３１１Ａ（図５）は、時間情報変換部１２０、１３０（図２）で、それぞれのローカルクロックの時間情報（第１の時間情報、第２の時間情報）を、基準時間の時間情報に変換した後、パケットマージ部１１０に入力される。
【００５５】
パケットマージ部１１０では、同一の基準時間の時間情報を伴った複数のトレース情報（変換後トレースパケット）を、同期パケット及び時間情報をキーに整理し（ソートし）、同期パケットと冗長な時間情報を削除した上で、夫々のトレースデータ・ソースからのトレース情報（変換後トレースパケット）を調停・選択して、出力する。
【００５６】
図５は、実施の形態２のＬＳＩ１Ａにより処理される各ストリームを示す図である。
【００５７】
図５に、図２の構成により、夫々のトレースデータ・ソースのトレース情報（第１のソースストリーム２１１Ａ、第２のソースストリーム３１１Ａ）がどのように加工され、１つのトレースストリーム（トレースストリーム１１１Ａ）に変換されるかを図示している。
【００５８】
この図５の例においては、第１のトレースデータ・ソース２１０（図２）の出力（第１のソースストリーム２１１Ａ）は、ローカルタイムスタンプ（第１の時間）で時刻０に、"MOV"命令が実行され、時刻４に"LDR"命令が実行され、時刻１０に"STR"命令が実行され、時刻１２に"MUL"命令が実行され、時刻７６に"LDR"命令が実行されていることをそれぞれ示している。また、時刻０、８、７６に夫々同期パケット要求があり、同期パケット"SYN"（時刻７６の同期パケットｙ１等参照）が出力されている。なお、ローカルタイムスタンプは"LTS="で示している。同様に、トレースデータ・ソース２（第２のトレースデータ・ソース３１０）の出力（第２のソースストリーム３１１Ａ（図５））は、ローカルタイムスタンプ（第２の時間）で、時刻４０に"LDR"命令が実行され、時刻５０に"ADD"命令が実行され、時刻５５、２８５に"STR"命令が実行されることをそれぞれ示している。また、時刻０、３０、２８５に夫々同期パケット要求があり、同期パケット"SYN"が出力されている。
【００５９】
なお、同期パケット要求部４００は、第１のトレースデータ・ソース２１０に同期パケット要求を行うのと同時に、第２のトレースデータ・ソース３１０に対しても同期パケット要求を行う。すなわち、例えば、上記した第２の時間の時刻０、３０、２８５は、それぞれ、上記した第１の時間の時刻０、４８、７６が第１の時間情報変換部１２０により変換された各基準時間と同一の各基準時間へと、第２の時間情報変換部１３０により変換される時刻である。
【００６０】
これらの２つの出力が、それぞれ、時間情報変換部（第１の時間情報変換部１２０および第２の時間情報変換部１３０）によって、第１の変換後トレースストリーム１２１Ａ、第２の変換後トレースストリーム１３１Ａ（図５）へと変換される。つまり、それぞれの変換前のストリームのトレースパケットが持っていた時間情報が、基準タイムスタンプ（基準時間の時間情報）に変換される。例えば、第１のトレースデータ・ソース２１０のローカルタイムスタンプLTS=10、LTS=76（第１のソースストリーム２１１Ａ参照）は、基準時間では、RTS=13、RTS=95のように変換される（第１の変換後トレースストリーム１２１Ａ参照）。同様に、例えば、第２のトレースデータ・ソース３１０のローカルタイムスタンプは、別の変換規則によって、LTS=40が、RTS=13に、LTS=55がRTS=18にそれぞれ変換される。これらの変換の処理は、例えばローカルクロックと基準タイムスタンプとのクロック比によって計算あるいは換算されることによってそれぞれ得られる。
【００６１】
さらに、最終的なパケットマージ出力（トレースストリーム１１１Ａ）では、パケットマージ部１１０（図２）が、同期パケット"SYN"によって、複数のトレース情報（変換後トレースパケット）間の前後関係を正しく並べなおす（基準時間の時間情報の順序に変換後トレースパケットの順序をソートする）。また、パケットマージ部１１０は、最終的なパケットマージ出力（トレースストリーム１１１Ａ）における、２つの時間情報変換後の冗長な時間情報を削除し、また、同期パケット"SYN"そのものを削除する。この後、パケットマージ部１１０は、２つのトレースデータ・ソースの出力の識別パケットをトレースストリーム１１１Ａにつけ、１つのトレースデータに複数のパケットをまとめて、複数のパケットがまとめられたトレースストリーム１１１Ａを出力している。
【００６２】
つまり、第１のトレースデータ・ソース２１０は、同期パケット要求部４００による同期パケット要求を受けると、出力する第１のソースストリーム２１１Ａに対して、第１の同期パケットｙ１（図５）を挿入する。第１のソースストリーム２１１Ａに含まれる各トレースパケットは、それぞれ、挿入された第１の同期パケットｙ１の順序よりも前の順序をそのトレースパケットが有する場合は、その同期パケットｙ１の同期パケット要求の第１の時間よりも前の第１の時間の第１の時間情報を有する。また、各トレースパケットは、その順序が、第１の同期パケットｙ１の順序以後の順序である場合は、同期パケット要求の第１の時間以後の第１の時間の時間情報を有する。
【００６３】
パケットマージ部１１０は、第１の同期パケットｙ１と、その第１の同期パケットｙ１が挿入された同期パケット要求と同時にされた、第２のトレースデータ・ソース３１０への同期パケット要求による第２の同期パケットｙ２（図５参照）とに基いて、トレースストリーム１１１Ａ（図５）を生成する。すなわち、パケットマージ部１１０は、第１の変換後トレースストリーム１２１Ａの各トレースパケットのうちで、同期パケットｙ１よりも前の順序の各前順序トレースパケットの時間情報の性質を簡単かつ迅速に特定する。ここで、特定される性質は、例えば、それらのトレースパケットのいずれも、第２のソースストリーム３１１Ａの各トレースパケットのうち、同期パケットｙ２以後の順序の各後順序トレースパケットよりも早い基準時間の時間情報を有することである。これにより、パケットマージ部１１０は、簡単かつ迅速に、含まれる各トレースパケットの順序が、そのトレースパケットの時間情報の順序と同じであるトレースストリーム１１１Ａを生成する。
【００６４】
つまり、パケットマージ部１１０は、変換後トレースストリーム（例えば、第１の変換後トレースストリーム１２１Ａ）に含まれる同期パケット（例えば、第１の変換後トレースストリーム１２１Ａにおける、ＳＹＮＣ＃１のパケット）に基いて、その変換後トレースストリームに含まれる各パケットのうちで、トレースストリーム１１１Ａにおいて、その同期パケットに対応する位置（RTS=13の位置）よりも前の位置である各パケットと、その位置以後の位置である各パケットとを、簡単かつ迅速に特定する。なお、ここで、特定される、その位置よりも前の位置の各パケットは、その変換後トレースストリームにおける、その同期パケットよりも前の各パケットである。また、特定される、その位置以後の位置の各パケットは、その変換後トレースストリームにおける、その同期パケット以後の各パケットである。そして、トレースストリーム１１１Ａにおける、同期パケット（例えば同期パケットｙ１）に対応する位置は、その同期パケットと同時の同期パケット（同期パケットｙ２）に対応する位置と同一の位置（RTS=95の位置）である。
【００６５】
しかも、パケットマージ部１１０は、第１の同期パケットｙ１及び第２の同期パケットｙ２が含まれないトレースストリーム１１１Ａを出力する（図５参照）。換言すれば、パケットマージ部１１０は、第１の同期パケットｙ１及び第２の同期パケットｙ２を削除する。
【００６６】
なお、パケットマージ部１１０は、例えば、第１の同期パケットｙ１、および、第２の同期パケットｙ２の少なくとも一方（例えば同期パケットｙ１）に含まれる、他方の同期パケット（同期パケットｙ２）を特定する特定データに基いて、その特定データにより特定されるパケットを、上記他方の同期パケット（同期パケットｙ２）と特定してもよい。
【００６７】
（実施の形態３）
図６は、実施の形態３における各ストリームを示す図である。
【００６８】
実施の形態１または２で説明した例では、夫々のトレースデータ・ソースにおいて、ローカルタイムスタンプ（第１の時間情報、第２の時間情報）が経過時間で与えられる場合を説明した。一方、ローカルタイムスタンプを、ローカルクロックで計測した時間からの差分時間（図６の上段の第１のソースストリーム２１１Ｂ等のＬＴＳの値を参照）としてもよい。
【００６９】
トレースデータ・ソースのトレース情報の時間情報が差分時間で与えられる場合、時間情報変換部１２０、１３０では、ローカルクロックの、現在の差分時間と、過去の各差分時間とを累計し、現在の差分時間を、経過時間に変換する。時間情報変換部１２０、１３０では、この変換をした後（図６の中段の第１のソースストリーム２１１Ｂ等のＬＴＳの値を参照）、変換後の経過時間を、基準時間に換算する（図６の下段の第１の変換後トレースストリーム１２１Ｂ等のＲＴＳの値を参照）。
【００７０】
上記の場合の、トレースパケットの変換の様子を図６に示す。
【００７１】
図６の上段の第１のソースストリーム２１１Ｂから、中段の第１のソースストリーム２１１Ｂへの変換の処理、および、上段の第２のソースストリーム３１１Ｂから、中段の第２のソースストリーム３１１Ｂへの変換の処理は、それぞれ、差分時間で示されているタイムスタンプを、経過時間に変換する処理である。それ以降の処理は、実施の形態１、２と同じである。
【００７２】
例えば、具体的には、図６の上段における第１のトレースパケットｘ２の第１の時間情報が示す差分時間は「２」（ＬＴＳ＝２）である。そして、ここで、この第１のトレースパケットｘ２の直前の順序の第１のトレースパケットｘ１の経過時間は「１０」（local TimeStamp1「１０」を参照）である。このため、図６の例では、第１の時間情報変換部１２０は、例えば、図６の第１のトレースパケットｘ２の時間情報「２」を、図６の中段の第１のソースストリーム２１１Ｂに示されるよう、経過時間「１２」（１０＋２＝１２）へと変換する。
【００７３】
なお、差分時間は、例えば、そのトレースパケット（その差分時間のトレースパケット）の経過時間から、そのトレースパケットの直前のトレースパケットの経過時間を差し引いた時間である。
【００７４】
また、経過時間は、例えば、ＬＳＩ（ＬＳＩ１（図１）、ＬＳＩ１Ａ（図２）、ＬＳＩ１Ｃ（図３））が動作を開始した動作開始時間から、そのトレースパケットの時間までの差分の時間であってもよい。また、経過時間は、そのトレースパケットが含まれるストリームの先頭のトレースパケットの時間などの、そのストリームの開始時間から、そのトレースパケットの時間までの時間であってもよい。
【００７５】
（実施の形態４）
図３は、実施の形態４における、ＬＳＩ１Ｃの構成を示す図である。
【００７６】
さらに、別の実施の形態においては、パケットマージの出力（図７のトレースストリーム１１１Ｃ）における時間情報を、再度、差分時間に差分時間再生成部１６０（図３）が変換する。図３に、パケットマージの出力において、パケットの時間情報を差分時間に変換し直す構成（ＬＳＩ１Ｃ）を図示する。
【００７７】
ＬＳＩ１Ｃでは、最後にパケットマージ部１１０が出力したパケットの時間情報(経過時間)を、最終タイムスタンプ保持部１７０（図３）により保持する。そして、その保持された時間情報と、パケットマージ部１１０が今回出力しようとするパケットの時間情報の差（差分時間）を差分時間再生成部１６０（図３）が計算する。これにより、時間情報を差分時間に変換したパケットマージ出力（図７のトレースストリーム１６１Ｃ、図３のトレースストリーム１６１）を得る。
【００７８】
図７は、実施の形態４における２つのストリームを示す図である。
【００７９】
図７に、図３の構成により、パケットマージ出力の時間情報が差分時間に変換される例を図示している。"RTS="で示されている時間が、図７の上段の図（トレースストリーム１１１Ｃ）では経過時間であるのに対し、下段の図（トレースストリーム１６１Ｃ）では、差分時間再生成部１６０による処理によって、差分時間になっている。
【００８０】
図８は、一部のパケットが失われる際における、４つのストリームを示す図である。
【００８１】
さらに、図８において、パケットの一部（図８のパケットｘ５、パケットｘ６）が失われた場合でも、経過時間が保持されており、トレースデータ・ソース間の時間相関がとれる様子を示す。図８は、時間情報変換後のトレース情報において、第１のトレースデータ・ソース２１０（図３）についての時刻１５の"MUL"パケットｘ５が、トレースバッファのＦＩＦＯオーバフローで入力できないか、又は、優先度が低くて選択されなかったことを示している。また、図８は、第２のトレースデータ・ソース３１０についての時刻１７の"ADD"パケットｘ６が、トレースバッファのＦＩＦＯオーバフローで入力できないか、優先度が低くて選択されなかったことを示している。
【００８２】
このような場合においても、時刻１８の"STR"命令のパケットｘ７（図８）の経過時間（ＲＴＳ＝１８）は失われていないため、それ以降の時間情報が失われることがない。また、差分時間を再生成するにあたっても、支障がない。よって、最終的に得られるトレース情報（第２のトレースストリーム１６１Ｃ）で、パケットｘ５以降およびパケットｘ６以降の各パケットの時間情報が失われていないので、トレースデータ・ソース間の時間相関が得られる。
【００８３】
このようにして、第１のトレースデータ・ソース（第１のトレースデータ・ソース２１０）と、前記第１のトレースデータ・ソースからのトレースパケット（第１のトレースパケット２１１）に付随した時間情報（第１の時間情報）を、基準時間の時間情報に変換する第１の時間情報変換部（第１の時間情報変換部１２０）と、第２のトレースデータ・ソース（第２のトレースデータ・ソース３１０）と、前記第２のトレースデータ・ソースからのトレースパケット（第２のトレースパケット３１１）に付随した時間情報（第２の時間情報）を、基準時間の時間情報に変換する第２の時間情報変換部（第２の時間情報変換部１３０）と、前記第１の時間情報変換部により、付随する時間情報が変換されたトレースパケット（第１の変換後トレースパケット１２１）と、前記第２の時間情報変換部により、付随する時間情報が変換されたトレースパケット（第２の変換後トレースパケット１３１）とを受け取り、第１の時間情報変換部により変換がされたトレースパケットおよび第２の時間情報変換部により変換がされたトレースパケットの全体のうちで、付随する時間情報が最も早いトレースパケットを選択して、選択されたトレースパケットを出力する（調停して、出力する）と共に、複数トレースパケット間（例えば、図４の第１の変換後トレースストリーム１２１ｓの左から３番目のトレースパケットと、図４の第２の変換後トレースストリーム１３１ｓの最も左のトレースパケットとの間）で冗長な時間情報（図４の第１の変換後トレースストリーム１２１ｓの左から３番目の基準時間の時間情報（ＲＴＳ＝１３）、図４の第２の変換後トレースストリーム１３１ｓの最も左の基準時間の時間情報（ＲＴＳ＝１３）の一方）を取り除くパケットマージ部（パケットマージ部１１０）とを備えるデータ処理装置（ＬＳＩ１、ＬＳＩ１Ａ、ＬＳＩ１Ｃ）が構築される。
【００８４】
なお、ここで、パケットマージ部は、例えば、第１の時間情報変換部により時間情報が変換された各トレースパケットの時間情報、および、第２の時間情報変換部により時間情報が変換された各トレースパケットの時間情報の全体における、その時間情報の順序が、予め定められた順序（最も早い順序）である時間情報を有するトレースパケットを選択する。
【００８５】
そして、夫々の前記トレースデータ・ソースに対して、同期パケット要求を出力する同期パケット要求部（同期パケット要求部４００）を備え、前記パケットマージ部は、前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第１のトレースデータ・ソースにより出力された同期パケットと、前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第２のトレースデータ・ソースにより出力された同期パケットとの２つの前記同期パケット（図５の同期パケットｙ１、ｙ２等参照）に基いて、前記最も早いトレースパケットを選択し、選択されたトレースパケットを出力し、前記トレースパケットと前記同期パケットとのうちで前記同期パケットは出力しないデータ処理装置（図２のＬＳＩ１Ａ、図３のＬＳＩ１Ｃ）が構築される。
【００８６】
そして、前記時間情報は、その時間情報を生成するトレースデータ・ソースに供給されたクロックで当該トレースデータ・ソースが計測した経過時間（図４の第１のソースストリーム２１１ｓの時間情報等参照）であり、前記第１の時間情報変換部および前記第２の時間情報変換部のそれぞれは、その時間情報変換部に対応する前記トレースデータ・ソースからの経過時間の時間情報を、単一基準時間の経過時間情報（図４の第１の変換後トレースストリーム１２１ｓの基準時間の時間情報等参照）に変換するデータ処理装置が構築される。
【００８７】
なお、「単一基準時間」における「単一」とは、何れのトレースデータ・ソースにおける時間情報も、基準時間を含む複数の種類の時間のうちで、基準時間の時間情報であることを意味する。
【００８８】
そして、前記時間情報は、その時間情報を生成するトレースデータ・ソースで、前回、トレースに関わるイベントが発生した時刻（最後のトレースパケットで記録された処理の時間（時刻））からの、そのトレースデータ・ソースに供給されたクロック（クロックの個数）で当該トレースデータ・ソースが計測した差分時間（図６の上段における第１のソースストリーム２１１Ｂの時間情報等を参照）であり、前記第１の時間情報変換部及び前記第２の時間情報変換部のそれぞれは、その時間情報変換部に対応する前記トレースデータ・ソースからの差分時間の時間情報を、経過時間に累計する（図６の中段の第１のソースストリーム２１１Ｂ等の時間情報を参照）と共に、累計された当該経過時間を、単一の基準時間の時間情報に変換する（図６の下段の第１の変換後トレースストリーム１２１Ｂ等の時間情報を参照）データ処理装置が構築される。
【００８９】
なお、差分時間の時間情報を、経過時間に累計するとは、過去の１つ以上の差分時間と、現在の差分時間とを足すことにより、現在までの経過時間を算出することをいう。
【００９０】
そして、前記パケットマージ部が前回出力したトレースパケット（最後のトレースパケット）に付随した時間情報（図７の第１のトレースパケットｘ３参照）を保持する最終タイムスタンプ保持部（最終タイムスタンプ保持部１７０）と、前記最終タイムスタンプ保持部に保持された前記時間情報（例えば、図７の第１のトレースパケットｘ３におけるＲＴＳ＝１５）と、今回出力するトレースパケット（図７の第１のトレースパケットｘ４参照）の時間情報（ＲＴＳ＝１７）とから、前回の前記トレースパケット（第１のトレースパケットｘ３）と、今回の前記トレースパケット（第１のトレースパケットｘ４）との間での、時間情報の差分時間（ＲＴＳ＝２）を計算する差分時間生成部（差分時間再生成部１６０）とを有するデータ処理装置（図３のＬＳＩ１Ｃ）が構築される。
【００９１】
こうして、ローカルタイム情報に加え、基準タイムスタンプまで出力されることによる弊害を回避しつつ、異なるトレースデータ・ソースの時間情報の間の相関をとれるようにできる。
【００９２】
なお、相関をとるとは、例えば、１の時間情報の時間から、他の時間情報の時間を引いた差分の時間を特定することを意味する。第１の時間情報および第２の時間情報は、第１の時間と第２の時間との間の時差の時差情報や、上記した基準タイムスタンプなどのその他の情報がなければ、相関をとることはできない。一方、第１の時間情報から第１の時間情報変換部１２０により変換された基準時間の時間情報と、第２の時間情報から変換された基準時間の時間情報とは、いずれも基準時間の時間情報であり、時差などがなく、それらの情報のみにより、相関をとることができる。
【００９３】
上記のようにして、トレースデータ・ソースからのトレース情報に含まれる時間情報を、基準時間の経過時間に変換することにより、複数の種類の時間情報（ローカルクロックによる時間情報、基準タイムスタンプ発生器による基準タイムスタンプ）を出力することを抑制し、オーバヘッドを削減することができる。さらに、マージ出力後の時間情報を再度差分時間に変換することで、さらにオーバヘッドを削減することができる（図７等参照）。また、パケットの一部が欠落した場合でも（図８等参照）、経過時間情報が失われず、時間相関を取ることが可能となる。
【００９４】
このように、実施形態の並列処理ＬＳＩ（ＬＳＩ１、ＬＳＩ１Ａ、ＬＳＩ１Ｃ等）は、複数の処理部（第１のプロセッサコア２００、第２のプロセッサコア３００）と、複数の生成部（第１のトレースデータ・ソース２１０、第２のトレースデータ・ソース３１０）と、複数の変換部（第１の時間情報変換部１２０、第２の時間情報変換部１３０）とを備える。
【００９５】
それぞれの処理部は、その処理部の情報処理を、他の処理部により実行される情報処理に対して、並列に実行する。それぞれの処理部は、その処理部の情報処理におけるイベントを発生する。
【００９６】
それぞれの生成部は、その生成部に対応する処理部のイベントの発生の時刻（第１の時間、第２の時間）を特定する時刻情報（時間情報）を生成する。
【００９７】
ここで、それぞれの基準時刻（基準時間）において、それぞれの生成部により生成される時刻情報の時刻は、その基準時刻と同じ基準時刻において、他の生成部により生成される時刻情報の時刻とは相違する。つまり、例えば、それぞれの生成部での時刻は、他の生成部における時刻に対して、時差を有する。また、例えば、それぞれの生成部での時刻の進行速度は、他の生成部での時刻の進行速度とは相違する。なお、ここで、基準時刻は、何れの生成部の時刻とも異なる第３の時刻でもよいし、何れか１つの生成部での時刻であってもよい。
【００９８】
そして、それぞれの変換部は、その変換部に対応する生成部により生成された時刻情報を、その時刻情報が示す時刻に対応する基準時刻の時刻情報に変換する。
【００９９】
なお、それぞれの変換部は、例えば、対応する生成部の時刻と、基準時刻との間の時差を特定する対応データなどの、それらの時刻の間の対応関係を特定する対応データを保持してもよい。そして、それぞれの変換部は、対応する生成部の時刻を、保持された対応データが、その時刻に対応させる基準時刻へと変換してもよい。
【０１００】
これにより、それぞれの生成部により生成される、変換後の時刻情報により、その生成部に対応する処理部のイベントの基準時刻が示される。ここで、示される何れの時刻も、基準時刻の時刻情報である。このため、１つの処理部でのイベントの基準時刻と、他の処理部でのイベントの基準時刻とが示されることで、それらのイベントの間の相対時刻が特定される。
【０１０１】
この構成であれば、２つのプロセッサ間の時差や、時刻の進行速度のズレがあっても、相対時刻が正しく、かつ簡単に特定できる。
【０１０２】
しかも、この構成であれば、予め、並列処理ＬＳＩにより、時刻情報の変換が行われる。これにより、上記の対応データなどの余計なデータが、並列処理ＬＳＩの外部へと並列処理ＬＳＩにより送信されなくても、相対時刻が正しく特定される。これにより、通信量が低減できる。
【０１０３】
また、並列処理ＬＳＩの外部における、基準時刻への変換の処理などの余計な処理が不要にできて、少ない処理で、相対時刻が正しく特定できる。
【０１０４】
さらに、それぞれの生成部により生成される時刻情報が、時差を有する時刻情報で足りるなどして、それぞれの生成部の構成が簡単にできる。
【０１０５】
なお、例えば、この並列処理ＬＳＩは、ストリーム（トレースストリーム１１１ｓ）を生成するストリーム生成部（パケットマージ部１１０）を備えてもよい。ここで、生成されるストリームは、それぞれの変換部により変換がされた後の時刻情報を含み、それぞれの時刻情報がストリームに含まれる順序は、含まれる複数の時刻情報により示される複数の基準時刻のうちにおける、その時刻情報により示される基準時刻の順序と同一の順序である。
【０１０６】
このストリーム生成部は、複数の変換部により変換がされた複数の時刻情報のうちから、直前の時刻情報の次にストリームに含まれる、次の時刻情報を選択してもよい。ここで、選択される時刻情報は、直前の時刻情報により示される基準時刻の順序の次の順序の基準時刻を示す時刻情報である。
【０１０７】
なお、並列処理ＬＳＩは、３以上の値Ｎについて、Ｎ個の処理部と、Ｎ個の生成部と、Ｎ個の変換部とを備えてもよい。
【０１０８】
なお、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【０１０９】
本発明にかかるデータ処理装置は、複数コアを持つシステムにおいて、複数コアの動作の時間相関を取った解析を行うのに有用である。なお、トレースデータ・ソースは、実施例においてはプロセッサコアとしているが、バストランザクションのモニタ機能やハードウェアエンジンの内部状態モニタ機能としてもよい。
【符号の説明】
【０１１０】
１１０  パケットマージ部
１２０、１３０  時間情報変換部
１６０  差分時間再生成部
１７０  最終タイムスタンプ保持部
２００  第１のプロセッサコア
２１０  第１のトレースデータ・ソース
３００  第２のプロセッサコア
３１０  第２のトレースデータ・ソース
４００  同期パケット要求部
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のトレースデータ・ソースと、
前記第１のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第１の時間情報変換部と、
第２のトレースデータ・ソースと、
前記第２のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第２の時間情報変換部と、
前記第１の時間情報変換部で、付随する時間情報が変換されたトレースパケットと、前記第２の時間情報変換部で、付随する時間情報が変換されたトレースパケットとを受け取り、付随する時間情報が最も早いトレースパケットを選択出力すると共に、複数トレースパケット間で冗長な時間情報を取り除くパケットマージ部とを備えるデータ処理装置。
【請求項２】
夫々の前記トレースデータ・ソースに対して、同期パケット要求を出力する同期パケット要求部を備え、
前記パケットマージ部は、
前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第１のトレースデータ・ソースにより出力された同期パケットと、前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第２のトレースデータ・ソースにより出力された同期パケットとの２つの前記同期パケットに基いて、前記最も早いトレースパケットを選択し、選択されたトレースパケットを出力し、
前記トレースパケットと前記同期パケットとのうちで前記同期パケットは出力しない請求項１に記載のデータ処理装置。
【請求項３】
それぞれの前記トレースデータ・ソースにより生成される前記時間情報は、当該トレースデータ・ソースに供給されたクロックで、当該トレースデータ・ソースが計測した経過時間であり、
前記第１の時間情報変換部および前記第２の時間情報変換部のそれぞれは、その時間情報変換部に対応する前記トレースデータ・ソースからの、経過時間の時間情報を、単一基準時間の経過時間情報に変換する請求項１に記載のデータ処理装置。
【請求項４】
それぞれの前記トレースデータ・ソースにより生成される前記時間情報は、当該トレースデータ・ソースで、前回、トレースに関わるイベントが発生した時刻からの、当該トレースデータ・ソースに供給されたクロックで、当該トレースデータ・ソースが計測した差分時間であり、
前記第１の時間情報変換部及び前記第２の時間情報変換部のそれぞれは、その時間情報変換部に対応する前記トレースデータ・ソースからの、差分時間の時間情報を、経過時間に累計すると共に、累計された当該経過時間を、単一基準時間の時間情報に変換する請求項１に記載のデータ処理装置。
【請求項５】
前記パケットマージ部が前回出力した前記トレースパケットに付随した時間情報を保持する最終タイムスタンプ保持部と、
前記最終タイムスタンプ保持部に保持された前記時間情報と、今回出力する前記トレースパケットの時間情報とから、前回の前記トレースパケットと、今回の前記トレースパケットとの間での差分時間を計算する差分時間生成部とを有する請求項１に記載のデータ処理装置。
【請求項６】
第１のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第１の時間情報変換工程と、
第２のトレースデータ・ソースからのトレースパケットに付随した時間情報を、基準時間の時間情報に変換する第２の時間情報変換工程と、
前記第１の時間情報変換工程で、付随する時間情報が変換されたトレースパケットと、前記第２の時間情報変換工程で、付随する時間情報が変換されたトレースパケットとを受け取り、付随する時間情報が最も早いトレースパケットを選択出力すると共に、複数トレースパケット間で冗長な時間情報を取り除くパケットマージ工程とを備えるデータ処理方法。
【請求項７】
夫々の前記トレースデータ・ソースに対して、同期パケット要求を出力する同期パケット要求工程を備え、
前記パケットマージ工程では、
前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第１のトレースデータ・ソースにより出力された同期パケットと、前記第１のトレースデータ・ソースに出力された前記同期パケット要求に応じて前記第２のトレースデータ・ソースにより出力された同期パケットとの２つの前記同期パケットに基いて、前記最も早いトレースパケットを選択し、選択されたトレースパケットを出力し、
前記トレースパケットと前記同期パケットとのうちで前記同期パケットは出力しない請求項６に記載のデータ処理方法。
【請求項８】
それぞれの前記トレースデータ・ソースにより生成される前記時間情報は、当該トレースデータ・ソースに供給されたクロックで当該トレースデータ・ソースが計測した経過時間であり、
前記第１の時間情報変換工程および前記第２の時間情報変換工程のそれぞれでは、その時間情報変換工程に対応する前記トレースデータ・ソースからの、経過時間の時間情報を、単一基準時間の経過時間情報に変換する請求項６に記載のデータ処理方法。
【請求項９】
それぞれの前記トレースデータ・ソースにより生成される前記時間情報は、当該トレースデータ・ソースで、前回、トレースに関わるイベントが発生した時刻から、当該トレースデータ・ソースに供給されたクロックで、当該トレースデータ・ソースが計測した差分時間であり、
前記第１の時間情報変換工程及び前記第２の時間情報変換工程のそれぞれでは、その時間情報変換工程に対応する前記トレースデータ・ソースからの、差分時間の時間情報を、経過時間に累計すると共に、累計された当該経過時間を、単一基準時間の時間情報に変換する請求項６に記載のデータ処理方法。
【請求項１０】
前記パケットマージ工程で前回出力した前記トレースパケットに付随した時間情報を保持する最終タイムスタンプ保持工程と、
前記最終タイムスタンプ保持工程で保持された前記時間情報と、今回出力する前記トレースパケットの時間情報とから、前回の前記トレースパケットと、今回の前記トレースパケットとの間での差分時間を計算する差分時間生成工程とを有する請求項６に記載のデータ処理方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010097875.tif 000011
【図２】
2010097875.tif 000012
【図３】
2010097875.tif 000013
【図４】
2010097875.tif 000014
【図５】
2010097875.tif 000015
【図６】
2010097875.tif 000016
【図７】
2010097875.tif 000017
【図８】
2010097875.tif 000018
【国際調査報告】
2010097875.tif 000019
2010097875.tif 000020
2010097875.tif 000021
2010097875.tif 000022