(57)【特許請求の範囲】
【請求項１】
トレースデータ取得装置を設けたＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）と、前記ＬＳＩに接続するデバッグ装置とを備え、
前記トレースデータ取得装置は、
種類が異なる複数のデータであって種類毎に優先度が定められた複数のデータそれぞれをトレースデータとして入力するトレースデータ入力部と、
トレースデータを記憶するトレースデータ記憶部と、
前記トレースデータ記憶部の空き容量に基づいて、前記トレースデータ記憶部に記憶するトレースデータの種類を選択種類として優先度の高い順に１種類以上選択するトレースデータ種類選択部と、
前記トレースデータ入力部がトレースデータを入力した場合、前記トレースデータ入力部にトレースデータとして入力された入力データが前記トレースデータ種類選択部により選択された選択種類のトレースデータであるか否かを判定するトレースデータ種類判定部とを備え、
前記トレースデータ記憶部は、前記トレースデータ種類判定部により前記入力データが前記選択種類のトレースデータであると判定された場合に前記入力データを記憶し、
前記デバッグ装置は、
前記トレースデータ取得装置から前記トレースデータ記憶部に記憶されたトレースデータを入力するデバッグ入力部と、
トレースデータを記憶する記憶領域を有するデバッグ記憶部であって、新たなトレースデータを記憶する記憶領域が不足した場合に過去のトレースデータが記憶されている記憶領域に新たなトレースデータを上書きするデバッグ記憶部と、
前記デバッグ記憶部に記憶されているトレースデータの保存を指定するトレースデータ保存命令を入力する保存命令入力部とを備え、
前記デバッグ装置の前記デバッグ記憶部は、前記保存命令入力部に保存命令が入力された場合、前記デバッグ入力部に入力された新たなトレースデータを記憶しない
ことを特徴とするデバッグシステム。
【請求項２】
前記トレースデータ種類選択部は、前記トレースデータ記憶部の空き容量が大きいほど多くのトレースデータの種類を選択種類として選択し、前記トレースデータ記憶部の空き容量が小さいほど少ないトレースデータの種類を選択種類として選択する
ことを特徴とする請求項１記載のデバッグシステム。
【請求項３】
前記トレースデータ種類選択部は、前記トレースデータ記憶部の空き容量と所定の容量閾値とを比較し、前記トレースデータ記憶部の空き容量が前記容量閾値より大きい場合、トレースデータの選択種類を所定の第１の選択種類数だけ選択し、前記トレースデータ記憶部の空き容量が前記容量閾値より小さい場合、トレースデータの選択種類を前記第１の選択種類数より少ない所定の第２の選択種類数だけ選択する
ことを特徴とする請求項１記載のデバッグシステム。
【請求項４】
前記トレースデータ取得装置は、さらに、
前記トレースデータ種類判定部により前記入力データが前記選択種類のトレースデータであると判定された場合に前記入力データを圧縮するトレースデータ圧縮部を備え、
前記トレースデータ記憶部は、前記トレースデータ圧縮部により圧縮された入力データを記憶する
ことを特徴とする請求項１から請求項３いずれかに記載のデバッグシステム。
【請求項５】
前記トレースデータ取得装置は、前記トレースデータ種類判定部により前記入力データが前記選択種類のトレースデータであると判定された場合に前記入力データを異なる圧縮方式で圧縮する複数のトレースデータ圧縮部を備え、
前記トレースデータ取得装置は、さらに、
複数のトレースデータ圧縮部により圧縮して得られた複数の入力データのうちいずれかの入力データを選択する圧縮データ選択部を備え、
前記トレースデータ記憶部は、前記圧縮データ選択部により選択された入力データを記憶する
ことを特徴とする請求項４記載のデバッグシステム。
【請求項６】
前記トレースデータ取得装置は、さらに、
所定のイベントが発生したか否かを判定するイベント判定部を備え、
前記トレースデータ記憶部は、前記イベント判定部により所定のイベントが発生したと判定され、前記トレースデータ種類判定部により前記入力データが前記選択種類のトレースデータであると判定された場合に前記入力データを記憶する
ことを特徴とする請求項１から請求項５いずれかに記載のデバッグシステム。
【請求項７】
前記トレースデータ取得装置は、さらに、
前記トレースデータ記憶部に記憶されたトレースデータを所定の出力先へ出力するトレースデータ出力部を備える
ことを特徴とする請求項１から請求項６いずれかに記載のデバッグシステム。
【請求項８】
トレースデータ取得装置を設けたＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）と、前記ＬＳＩに接続するデバッグ装置とを備え、
前記トレースデータ取得装置は、
種類が異なる複数のデータであって種類毎に優先度が定められた複数のデータそれぞれをトレースデータとして入力するトレースデータ入力部と、
トレースデータを記憶するトレースデータ記憶部と、
前記トレースデータ記憶部に記憶されたトレースデータの記憶量に基づいて、前記トレースデータ記憶部に記憶するトレースデータの種類を選択種類として優先度の高い順に１種類以上選択するトレースデータ種類選択部と、
前記トレースデータ入力部がトレースデータを入力した場合、前記トレースデータ入力部にトレースデータとして入力された入力データが前記トレースデータ種類選択部により選択された選択種類のトレースデータであるか否かを判定するトレースデータ種類判定部とを備え、
前記トレースデータ記憶部は、前記トレースデータ種類判定部により前記入力データが前記選択種類のトレースデータであると判定された場合に前記入力データを記憶し、
前記デバッグ装置は、
前記トレースデータ取得装置から前記トレースデータ記憶部に記憶されたトレースデータを入力するデバッグ入力部と、
トレースデータを記憶する記憶領域を有するデバッグ記憶部であって、新たなトレースデータを記憶する記憶領域が不足した場合に過去のトレースデータが記憶されている記憶領域に新たなトレースデータを上書きするデバッグ記憶部と、
前記デバッグ記憶部に記憶されているトレースデータの保存を指定するトレースデータ保存命令を入力する保存命令入力部とを備え、
前記デバッグ装置の前記デバッグ記憶部は、前記保存命令入力部に保存命令が入力された場合、前記デバッグ入力部に入力された新たなトレースデータを記憶しない
ことを特徴とするデバッグシステム。
【請求項９】
前記トレースデータ取得装置は、さらに、
前記トレースデータ記憶部に記憶されたトレースデータを前記トレースデータ記憶部から出力するトレースデータ出力部を備え、
前記トレースデータ種類選択部は、前記トレースデータ記憶部に記憶されたトレースデータの記憶量と前記トレースデータ記憶部から出力されたトレースデータの出力量とに基づいて、前記トレースデータ記憶部に記憶するトレースデータの種類を選択種類として優先度の高い順に１種類以上選択する
ことを特徴とする請求項８記載のデバッグシステム。
【請求項１０】
前記トレースデータ種類選択部は、前記トレースデータの記憶量から前記トレースデータの出力量を差し引いた値をトレースデータ入出力差として算出し、算出したトレースデータ入出力差と所定の入出力差閾値とを比較し、トレースデータ入出力差が入出力差閾値より大きい場合、トレースデータの選択種類を所定の第１の選択種類数だけ選択し、トレースデータ入出力差が入出力差閾値より小さい場合、トレースデータの選択種類を前記第１の選択種類数より多い所定の第２の選択種類数だけ選択する
ことを特徴とする請求項９記載のデバッグシステム。
【請求項１１】
トレースデータ取得装置を設けたＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）と、前記ＬＳＩに接続するデバッグ装置とを備えるデバッグシステムのトレースデータ取得方法であって、
前記トレースデータ取得装置のトレースデータ入力部が、種類が異なる複数のデータであって種類毎に優先度が定められた複数のデータそれぞれをトレースデータとして入力し、
前記トレースデータ取得装置のトレースデータ種類選択部が、トレースデータ記憶部の空き容量に基づいて、前記トレースデータ記憶部に記憶するトレースデータの種類を選択種類として優先度の高い順に１種類以上選択し、
前記トレースデータ取得装置のトレースデータ種類判定部が、前記トレースデータ入力部がトレースデータを入力した場合、前記トレースデータ入力部にトレースデータとして入力された入力データが前記トレースデータ種類選択部により選択された選択種類のトレースデータであるか否かを判定し、
前記トレースデータ取得装置の前記トレースデータ記憶部が、前記トレースデータ種類判定部により前記入力データが前記選択種類のトレースデータであると判定された場合に前記入力データを記憶し、
前記デバッグ装置のデバッグ入力部が、前記トレースデータ取得装置から前記トレースデータ記憶部に記憶されたトレースデータを入力し、
前記デバッグ装置のデバッグ記憶部が、トレースデータを記憶する記憶領域を有し、前記デバッグ装置の保存命令入力部にトレースデータの保存を指定するトレースデータ保存命令が入力された場合に前記デバッグ入力部に入力された新たなトレースデータを記憶せず、前記保存命令入力部に前記トレースデータ保存命令が入力されずに新たなトレースデータを記憶する記憶領域が不足した場合に過去のトレースデータが記憶されている記憶領域に新たなトレースデータを上書きすることを特徴とするデバッグシステムのトレースデータ取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）のトレースデータを取得するトレースデータ取得装置、トレースデータ取得装置のトレースデータ取得方法およびデバッグシステムに関するものである。
【背景技術】
【０００２】
ＬＳＩの大規模化により、複数のチップに実装されていたＬＳＩが一つのチップに実装されるようになった。そして、特別な仕掛けを施さなければ、ＬＳＩ内部の情報を取得することが出来ない。そのため、ＬＳＩ内部の情報を取得するための手法が必要である。
その一つの手法として、ＬＳＩ内部の信号をトレースしてトレースデータをＬＳＩ内部のトレースメモリに保存した後、ＬＳＩの動作を停止させ、トレースメモリからトレースデータを外部装置等に吸い出す作業を行っていた。
しかし、トレースメモリの容量には限界があるため、被試験プログラムの全てのトレースデータを途切れなく取得することができない。そこで、被試験プログラムを分割し、分割された被試験プログラム毎にトレースデータを取得していた。
【０００３】
特許文献１の従来技術は、一連の作業を自動で行うためにトレースメモリの空き容量を監視する。トレースメモリに空きがなくなった場合には、ＬＳＩの動作を停止させ、トレースメモリからトレースデータを退避する。そして、トレースメモリのトレースデータを全て退避した後にＬＳＩの動作を再開させ、トレースデータの取得を再開する。
【０００４】
また、限られたトレースメモリの容量を活用するため、トレースデータを圧縮回路によって圧縮する手法がある。その一つの手法として、特許文献２の従来技術は、トレースデータを複数の圧縮回路で圧縮し、その中で圧縮率が一番高い圧縮回路で圧縮したデータを選択する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−６１７２０号公報
【特許文献２】特開２００９−０８７３４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の従来技術は、トレースメモリに空きが無くなる度にＬＳＩの動作を停止してトレースデータを退避しなければならないため効率が悪い。また、被試験プログラムを分割して実行した場合、被試験プログラムを分割せずに実行しなければ発見できない不具合を検出することができない。
【０００７】
また、特許文献２の従来手法によりトレースデータを効率的に圧縮したとしても、トレースデータを保存するトレースメモリの容量は有限であるため、特許文献１の課題を解決することはできない。
【０００８】
本発明は、例えば、ＬＳＩの実行を停止させることなく、被試験プログラムを分割せずに、必要なトレースデータを効率良く取得できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明のトレースデータ取得装置は、
種類が異なる複数のデータであって種類毎に優先度が定められた複数のデータそれぞれをトレースデータとして入力するトレースデータ入力部と、
トレースデータを記憶するトレースデータ記憶部と、
前記トレースデータ記憶部の空き容量に基づいて、前記トレースデータ記憶部に記憶するトレースデータの種類を選択種類として優先度の高い順に１種類以上選択するトレースデータ種類選択部と、
前記トレースデータ入力部がトレースデータを入力した場合、前記トレースデータ入力部にトレースデータとして入力された入力データが前記トレースデータ種類選択部により選択された選択種類のトレースデータであるか否かを判定するトレースデータ種類判定部とを備え、
前記トレースデータ記憶部は、前記トレースデータ種類判定部により前記入力データが前記選択種類のトレースデータであると判定された場合に前記入力データを記憶する。
【発明の効果】
【００１０】
本発明によれば、例えば、ＬＳＩの実行を停止させることなく、被試験プログラムを分割せずに、必要なトレースデータを効率良く取得することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１におけるデバッグシステム２００の構成図。
【図２】実施の形態１におけるＬＳＩトレースデータ取得装置１００の機能構成図。
【図３】実施の形態１におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャート。
【図４】実施の形態１におけるトレースデータ入出力状況分析部１４０のトレースデータ入出力状況分析処理を示すフローチャート。
【図５】実施の形態１におけるトレースデータ入出力状況分析部１４０のトレースデータ種類選択処理（Ｓ２３０）の一例を示す概要図。
【図６】実施の形態１におけるトレースデータ入出力状況分析部１４０のトレースデータ種類選択処理（Ｓ２３０）の一例を示すフローチャート。
【図７】実施の形態２におけるＬＳＩトレースデータ取得装置１００の機能構成図。
【図８】実施の形態２におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャート。
【図９】実施の形態３におけるＬＳＩトレースデータ取得装置１００の機能構成図。
【図１０】実施の形態３におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャート。
【図１１】実施の形態４におけるＬＳＩトレースデータ取得装置１００の機能構成図。
【図１２】実施の形態４におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャート。
【図１３】実施の形態５におけるＬＳＩトレースデータ取得装置１００の機能構成図。
【図１４】実施の形態５におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャート。
【図１５】実施の形態５におけるトレースデータ入出力状況分析部１４０のトレースデータ入出力状況分析処理を示すフローチャート。
【図１６】実施の形態５におけるトレースデータ入出力状況分析部１４０のトレースデータ種類選択処理（Ｓ２３０Ｂ）の一例を示すフローチャート。
【図１７】実施の形態６におけるＬＳＩトレースデータ取得装置１００の機能構成図。
【図１８】実施の形態７におけるデバッグシステム２００の構成図。
【図１９】実施の形態７におけるデバッグ装置２２０のトレースデータ保存方法を示すフローチャート。
【発明を実施するための形態】
【００１２】
実施の形態１．
ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）内で、バッファの空き容量に応じて取得対象のトレースデータの種類を選択し、選択した種類のトレースデータを取得する形態について説明する。
但し、ＬＳＩは、トレースデータを取得する対象装置の一例である。例えば、ＬＳＩの代わりにパーソナルコンピュータやサーバ装置などの計算機を対象にして、計算機の内部または外部でトレースデータを取得しても構わない。
【００１３】
図１は、実施の形態１におけるデバッグシステム２００の構成図である。
デバッグシステム２００の構成について、図１に基づいて説明する。
【００１４】
デバッグシステム２００は、デバッグ対象のＬＳＩ２１０と、ＬＳＩ２１０のトレースデータ１０１に基づいてＬＳＩ２１０の回路またはＬＳＩ２１０で実行するプログラムをデバッグするためのデバッグ装置２２０とを有する。
【００１５】
ＬＳＩ２１０は、ＣＰＵ２１９（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、内部バス２１２、外部出力インタフェース２１３、内部メモリ２１４およびＬＳＩトレースデータ取得装置１００を備える。
また、ＬＳＩ２１０は、複数のトレース信号発生源２１１を備える。トレース信号発生源２１１とは、トレース対象のデータ（トレースデータ）を表すトレース信号を発生（入出力）するハードウェア（例えば、回路）またはソフトウェアのことである。ＣＰＵ２１９、内部バス２１２、外部出力インタフェース２１３、内部メモリ２１４をトレース信号発生源２１１にしてもよい。
【００１６】
ＬＳＩトレースデータ取得装置１００は、各トレース信号発生源２１１で発生したトレース信号を信号線を介して入力し、入力したトレース信号からトレースデータ１０１を取得し、取得したトレースデータ１０１を内部バス２１２と外部出力インタフェース２１３とを介してデバッグ装置２２０に出力する。
但し、外部出力インタフェース２１３の障害等によりトレースデータ１０１をデバッグ装置２２０に出力できない場合、ＬＳＩトレースデータ取得装置１００はＬＳＩ２１０の内部メモリ２１４にトレースデータ１０１を出力する。
【００１７】
以下、トレース信号とトレースデータとを総称して「トレースデータ１０１」という。
【００１８】
トレースデータ１０１には、処理内容（命令）を示すコマンド信号、処理対象のデータ等が記憶されている記憶領域のアドレスを示すアドレス信号、処理対象のデータを示すデータ信号など、複数の種類がある。
実施の形態１において、利用者は、トレースデータ１０１の種類毎に優先度（重要度）を予め定め、定めた優先度に関する情報（後述する選択方法情報１０３Ａ）をＬＳＩトレースデータ取得装置１００に設定しておくものとする。
【００１９】
図２は、実施の形態１におけるＬＳＩトレースデータ取得装置１００の機能構成図である。
実施の形態１におけるＬＳＩトレースデータ取得装置１００の機能構成について、図２に基づいて説明する。
【００２０】
ＬＳＩトレースデータ取得装置１００（トレースデータ取得装置の一例）は、トレースデータ取捨選択部１１０、トレースデータバッファ１２０およびトレースデータ入出力状況分析部１４０を備える。
【００２１】
トレースデータ入出力状況分析部１４０（トレースデータ種類選択部の一例）は、トレースデータバッファ１２０の空き容量１０２に基づいて、トレースデータバッファ１２０に記憶するトレースデータ１０１の種類を選択種類として優先度の高い順に１種類以上選択する。
以下、選択種類を示す情報を「選択種類情報１０３Ｂ」という。
【００２２】
トレースデータ取捨選択部１１０（トレースデータ入力部、トレースデータ種類判定部の一例）は、種類が異なる複数のデータであって種類毎に優先度が定められた複数のデータそれぞれをトレースデータ１０１として入力する。
トレースデータ取捨選択部１１０は、トレースデータ１０１を入力した場合、入力したトレースデータ（入力データ）がトレースデータ入出力状況分析部１４０により選択された選択種類のトレースデータ１０１であるか否かを判定する。
【００２３】
トレースデータバッファ１２０（トレースデータ記憶部の一例）は、トレースデータ取捨選択部１１０により入力データが選択種類のトレースデータ１０１であると判定された場合に入力データを記憶する。
【００２４】
例えば、トレースデータ入出力状況分析部１４０は、以下のように選択種類を選択する。
トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２が大きいほど多くのトレースデータ１０１の種類を選択種類として選択する。また、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２が小さいほど少ないトレースデータ１０１の種類を選択種類として選択する。
トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２と所定の容量閾値とを比較する。トレースデータバッファ１２０の空き容量１０２が容量閾値より大きい場合、トレースデータ入出力状況分析部１４０は、トレースデータ１０１の選択種類を所定の第１の選択種類数だけ選択する。また、トレースデータバッファ１２０の空き容量１０２が容量閾値より小さい場合、トレースデータ入出力状況分析部１４０は、トレースデータ１０１の選択種類を第１の選択種類数より少ない所定の第２の選択種類数だけ選択する。
【００２５】
ＬＳＩトレースデータ取得装置１００は、さらに、トレースデータ逐次出力部１３０とトレースデータ制御レジスタ１４１とを備える。
【００２６】
トレースデータ逐次出力部１３０は、トレースデータバッファ１２０に記憶されたトレースデータ１０１を逐次、デバッグ装置２２０または内部メモリ２１４へ出力する。
【００２７】
トレースデータ制御レジスタ１４１は、選択方法情報１０３Ａ（または、選択方法情報１０３Ａを記憶した記憶領域のアドレス）が設定される記憶部である。
選択方法情報１０３Ａは、トレースデータ入出力状況分析部１４０にトレースデータ１０１の種類を選択させる選択条件を示す情報である。
【００２８】
ＬＳＩトレースデータ取得装置１００の「〜部」として説明する構成は「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明する構成は、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
例えば、ＬＳＩトレースデータ取得装置１００はＣＰＵやメモリを備える。また、「〜部」として説明する機能を実行するプログラムはメモリに記憶され、ＣＰＵにより読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【００２９】
図３は、実施の形態１におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャートである。
実施の形態１におけるトレースデータ取得方法の処理の流れについて、図３に基づいて説明する。
【００３０】
Ｓ１１０において、トレースデータ取捨選択部１１０は、特定のトレース信号発生源２１１から出力されたトレースデータ１０１を入力する。
Ｓ１１０の後、Ｓ１２０に進む。
【００３１】
Ｓ１２０において、トレースデータ取捨選択部１１０は、トレースデータ入出力状況分析部１４０から選択種類情報１０３Ｂを定期的に、または所定のタイミングで取得しているものとする。
選択種類情報１０３Ｂは、トレースデータ１０１の種類を１種類以上示す情報である。
以下、選択種類情報１０３Ｂに示されるトレースデータ１０１の種類を「選択種類」という。
【００３２】
トレースデータ取捨選択部１１０は、トレースデータ入出力状況分析部１４０から前回取得した選択種類情報１０３Ｂを参照する。
そして、トレースデータ取捨選択部１１０は、Ｓ１１０で入力したトレースデータ１０１が選択種類情報１０３Ｂに示される選択種類と同じ種類のトレースデータ１０１であるか否かを判定する。
【００３３】
例えば、トレースデータ１０１の所定のデータ位置には、トレースデータ１０１のデータ種類が設定される。
この場合、トレースデータ取捨選択部１１０は、トレースデータ１０１に設定されているデータ種類と選択種類情報１０３Ｂに示されている選択種類とを比較して判定を行う。
【００３４】
Ｓ１１０で入力したトレースデータ１０１が選択種類情報１０３Ｂに示される選択種類と同じ種類のトレースデータ１０１である場合（ＹＥＳ）、Ｓ１３０に進む。
Ｓ１１０で入力したトレースデータ１０１が選択種類情報１０３Ｂに示される選択種類と同じ種類のトレースデータ１０１でない場合（ＮＯ）、トレースデータ取捨選択部１１０はＳ１１０で入力したトレースデータ１０１を破棄し、処理はＳ１１０に戻る。
【００３５】
Ｓ１３０において、トレースデータ取捨選択部１１０は、Ｓ１１０で入力したトレースデータ１０１をトレースデータバッファ１２０に保存する。
Ｓ１３０の後、Ｓ１４０に進む。
【００３６】
Ｓ１４０において、トレースデータ逐次出力部１３０は、トレースデータバッファ１２０から先に保存されたトレースデータ１０１から順番に取得する。
そして、トレースデータ逐次出力部１３０は、取得したトレースデータ１０１をＬＳＩ２１０の内部バス２１２と外部出力インタフェース２１３とを介してデバッグ装置２２０に出力する。但し、外部出力インタフェース２１３の障害等のためトレースデータ１０１をデバッグ装置２２０に出力できない場合、トレースデータ逐次出力部１３０はトレースデータ１０１をＬＳＩ２１０の内部メモリ２１４に退避する。
Ｓ１４０の後、Ｓ１１０に戻る。
【００３７】
Ｓ１４０でトレースデータ逐次出力部１３０がトレースデータ１０１を逐次出力することにより、ＬＳＩ２１０の動作を停止させずに、トレースデータ１０１をデバッグ装置２２０に出力することができる。
【００３８】
しかし、トレースデータ逐次出力部１３０からデバッグ装置２２０へのトレースデータ１０１の出力は外部出力インタフェース２１３を介して行うため、トレースデータ逐次出力部１３０から出力されるトレースデータ１０１の出力速度は速くない。
【００３９】
したがって、トレースデータ逐次出力部１３０から出力できるトレースデータ１０１の単位時間当たりの出力量は、通常、トレースデータ取捨選択部１１０に入力される単位時間当たりのトレースデータ１０１の入力量（発生量）よりも少ない。
このため、全てのトレースデータ１０１をトレースデータバッファ１２０に保存してしまうと、トレースデータバッファ１２０の空き容量が無くなり、重要なトレースデータ１０１を保存できなくなってしまう。
【００４０】
そこで、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２に基づいて、トレースデータバッファ１２０に保存するトレースデータ１０１の種類を選択する。
そして、トレースデータ取捨選択部１１０は、トレースデータ入出力状況分析部１４０により選択された選択種類のトレースデータ１０１だけをトレースデータバッファ１２０に保存する（Ｓ１２０、Ｓ１３０）。
【００４１】
次に、トレースデータ入出力状況分析部１４０の処理について説明する。
【００４２】
図４は、実施の形態１におけるトレースデータ入出力状況分析部１４０のトレースデータ入出力状況分析処理を示すフローチャートである。
実施の形態１におけるトレースデータ入出力状況分析部１４０のトレースデータ入出力状況分析処理について、図４に基づいて説明する。
【００４３】
Ｓ２１０において、トレースデータ入出力状況分析部１４０は、トレースデータ制御レジスタ１４１（または、トレースデータ制御レジスタ１４１に示されるアドレスで特定される記憶領域）から選択方法情報１０３Ａを取得する。トレースデータ入出力状況分析部１４０は定期的にまたは所定のタイミングで選択方法情報１０３Ａを取得し直してもよい。
選択方法情報１０３Ａは、トレースデータ１０１の種類を選択する選択条件を示す情報である。選択方法情報１０３Ａは、利用者によって、トレースデータ制御レジスタ１４１またはＬＳＩトレースデータ取得装置１００のメモリに予め設定されているものとする。
【００４４】
例えば、選択方法情報１０３Ａは、トレースデータバッファ１２０の空き容量１０２と比較する容量閾値を示す。さらに、選択方法情報１０３Ａは、トレースデータバッファ１２０の空き容量１０２と容量閾値との大小関係に対応付けて、選択すべきトレースデータ１０１の種類を示す。
また例えば、選択方法情報１０３Ａは、トレースデータ１０１の種類毎に優先度を示す。さらに、選択方法情報１０３Ａは、トレースデータバッファ１２０の空き容量１０２と容量閾値との大小関係に対応付けて、選択すべきトレースデータ１０１の種類の数を示す。
【００４５】
Ｓ２１０の後、Ｓ２２０に進む。
【００４６】
Ｓ２２０において、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量を示す情報（空き容量１０２）を取得する。トレースデータバッファ１２０の空き容量を示す情報は、トレースデータバッファ１２０のバッファ管理機能から取得できるものとする。
空き容量を示す情報とは、空き容量のサイズや空き容量の割合などを意味する。実施の形態１において、空き容量を示す情報を「空き容量１０２」という。
Ｓ２２０の後、Ｓ２３０に進む。
【００４７】
Ｓ２３０において、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２と選択方法情報１０３Ａとに基づいて、トレースデータ１０１の種類を選択する。
トレースデータバッファ１２０の空き容量１０２に基づいてトレースデータ１０１の種類を選択することにより、トレースデータバッファ１２０の空き容量１０２が少なくなっても、重要なトレースデータ１０１を保存することができる。
Ｓ２３０の詳細については後述する。
Ｓ２３０の後、Ｓ２４０に進む。
【００４８】
Ｓ２４０において、トレースデータ入出力状況分析部１４０は、選択したトレースデータ１０１の種類を示す選択種類情報１０３Ｂを生成し、生成した選択種類情報１０３Ｂをトレースデータ取捨選択部１１０に入力する。
Ｓ２４０の後、Ｓ２２０に戻る。
【００４９】
トレースデータ入出力状況分析部１４０は、Ｓ２２０からＳ２４０の処理を定期的に、または所定のタイミングで実行する。
【００５０】
図５は、実施の形態１におけるトレースデータ入出力状況分析部１４０のトレースデータ種類選択処理（Ｓ２３０）の一例を示す概要図である。
トレースデータ入出力状況分析処理（図４参照）で実行するトレースデータ種類選択処理（Ｓ２３０）の一例について、図５に基づいて説明する。
【００５１】
例えば、トレースデータ１０１（トレース信号）の種類には、処理内容（命令）を示すコマンド信号１０１Ａと、処理対象のデータ等が記憶されている記憶領域のアドレスを示すアドレス信号１０１Ｂと、処理対象のデータを示すデータ信号１０１Ｃとの３種類が存在するものとする。
また、コマンド信号１０１Ａ、アドレス信号１０１Ｂ、データ信号１０１Ｃの順で優先度（重要度）が高いものとする。
【００５２】
トレースデータ取捨選択部１１０は、コマンド信号１０１Ａとアドレス信号１０１Ｂとデータ信号１０１Ｃとのうち、選択種類情報１０３Ｂに示される選択種類と同じ種類のトレースデータ１０１をトレースデータバッファ１２０に記憶する。
トレースデータ逐次出力部１３０は、トレースデータバッファ１２０からトレースデータ１０１を記憶順に取得し、取得したトレースデータ１０１を出力する。
【００５３】
トレースデータバッファ１２０の記憶領域のうちトレースデータ１０１が記憶されている領域を「利用領域」といい、トレースデータ１０１が記憶されていない領域を「空き領域」という。
トレースデータバッファ１２０の空き容量１０２とは、トレースデータバッファ１２０の空き領域のサイズまたは割合を意味する。
【００５４】
トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２を容量閾値（大）および容量閾値（小）と比較する。
空き容量１０２が容量閾値（大）より大きい場合、トレースデータ入出力状況分析部１４０は、全てのトレースデータ１０１の種類を選択する。
空き容量１０２が容量閾値（大）より小さく容量閾値（小）より大きい場合、トレースデータ入出力状況分析部１４０は、優先度が高い種類から順に２つの種類（コマンド信号１０１Ａ、アドレス信号１０１Ｂ）を選択する。
空き容量１０２が容量閾値（小）より小さい場合、トレースデータ入出力状況分析部１４０は、優先度が最も高い種類（コマンド信号１０１Ａ）を選択する。
【００５５】
トレースデータ入出力状況分析部１４０は、選択したトレースデータ１０１の種類を示す選択種類情報１０３Ｂをトレースデータ取捨選択部１１０に入力する。
【００５６】
図６は、実施の形態１におけるトレースデータ入出力状況分析部１４０のトレースデータ種類選択処理（Ｓ２３０）の一例を示すフローチャートである。
図５で説明したトレースデータ種類選択処理（Ｓ２３０）のフローチャートについて、図６に基づいて説明する。
【００５７】
Ｓ２３１において、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２と、選択方法情報１０３Ａに示される容量閾値（大）とを大小比較する。
空き容量１０２が容量閾値（大）以上の場合（ＹＥＳ）、Ｓ２３２に進む。
空き容量１０２が容量閾値（大）未満の場合（ＮＯ）、Ｓ２３３に進む。
【００５８】
Ｓ２３２において、トレースデータ入出力状況分析部１４０は、選択方法情報１０３Ａに基づいて、コマンド信号１０１Ａとアドレス信号１０１Ｂとデータ信号１０１Ｃとを選択する。
Ｓ２３２により、トレースデータ選択処理（Ｓ２３０）は終了する。
【００５９】
Ｓ２３３において、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２と、選択方法情報１０３Ａに示される容量閾値（小）とを大小比較する。
空き容量１０２が容量閾値（小）以上の場合（ＹＥＳ）、Ｓ２３４に進む。
空き容量１０２が容量閾値（小）未満の場合（ＮＯ）、Ｓ２３５に進む。
【００６０】
Ｓ２３４において、トレースデータ入出力状況分析部１４０は、選択方法情報１０３Ａに基づいて、コマンド信号１０１Ａとアドレス信号１０１Ｂとを選択する。
Ｓ２３４により、トレースデータ選択処理（Ｓ２３０）は終了する。
【００６１】
Ｓ２３５において、トレースデータ入出力状況分析部１４０は、選択方法情報１０３Ａに基づいて、コマンド信号１０１Ａを選択する。
Ｓ２３５により、トレースデータ選択処理（Ｓ２３０）は終了する。
【００６２】
図５および図６で説明したトレースデータ種類選択処理（Ｓ２３０）は実施の形態の一例である。
例えば、トレースデータバッファ１２０の空き容量１０２と比較する容量閾値の数は、２つではなく、１つ又は３つ以上であってもよい。
また、トレースデータ１０１の種類は、３種類ではなく、２種類又は４種類以上であってもよい。
【００６３】
図５に示すように、空き容量１０２は利用領域の容量と相補的に対応している。そのため、空き容量１０２と容量閾値とを比較する代わりに、利用領域の容量と容量閾値とを比較しても構わない。
実施の形態１において、空き容量１０２と容量閾値とを比較することは、利用領域の容量と容量閾値とを比較することに等しい（但し、大小関係は逆転する）。
【００６４】
実施の形態１において、例えば、以下のようなＬＳＩトレースデータ取得装置１００について説明した。
【００６５】
ＬＳＩトレースデータ取得装置１００は、トレースデータ取捨選択部１１０とトレースデータバッファ１２０とトレースデータ入出力状況分析部１４０とを備える。
トレースデータ取捨選択部１１０は、トレースデータ１０１を取捨選択する。
トレースデータバッファ１２０は、トレースデータ１０１を一時的に保存する。
トレースデータ入出力状況分析部１４０は、トレースデータ１０１の入出力状況（空き容量１０２）を分析する。そして、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の残容量（空き容量１０２）に応じて、トレースデータ取捨選択部１１０を動的に制御する。
【００６６】
ＬＳＩトレースデータ取得装置１００は、さらに、トレースデータ逐次出力部１３０を備える。
トレースデータ逐次出力部１３０は、トレースデータバッファ１２０に保存されているトレースデータ１０１をトレースデータバッファ１２０から外部に逐次出力する。
【００６７】
ＬＳＩトレースデータ取得装置１００は、さらに、トレースデータ入出力状況分析部１４０の動作を制御するためのトレースデータ制御レジスタ１４１を備える。
【００６８】
ＬＳＩ２１０のデバッグ作業では、全てのトレース信号発生源２１１の情報が必要というわけではなく、トレース信号発生源２１１ごとに必要さの優先度がある。また、トレースデータ１０１を逐次出力することのできるデータ量はそのときによって変動する。
実施の形態１では、トレースデータバッファ１２０の入出力状況（空き容量１０２）を分析することにより、トレースデータ１０１を適切に取捨選択している。
つまり、トレースデータ１０１を逐次出力できるデータ量が多いときは多くのトレース信号（トレースデータ１０１）を取得している。また、トレースデータ１０１を逐次出力できるデータ量が少ないときは優先度の高い限られたトレース信号のみを選択している。
これにより、ＬＳＩ２１０の動作を止めることなく、トレースデータ１０１を取得することができる。さらに、適切な容量閾値を設定することにより、トレースデータバッファ１２０の記憶容量を最小限に抑えることができる。つまり、トレースデータバッファ１２０の記憶容量を削減することができる。
【００６９】
ＬＳＩ２１０内部に埋め込まれた「性能モニタ」と呼ばれるカウンタを利用してＬＳＩ２１０の性能を測定する方法がある。性能モニタは予め定められたイベントの回数をカウントする。例えば、性能モニタは、演算命令、バスアサート、パイプラインストールなどのイベントをカウントする。
性能モニタのカウント値を読み出すには性能モニタにアクセスする必要がある。しかし、ＬＳＩ２１０のＣＰＵを用いて性能モニタにアクセスする場合、性能モニタにアクセスし、性能モニタからカウント値を読み出すためのコードをＬＳＩ２１０のプログラムソースに追加する必要がある。また、ＬＳＩ２１０のデバッグやＬＳＩ２１０の性能測定のために性能モニタにアクセスする場合、ＬＳＩ２１０のＣＰＵが性能モニタにアクセスすることにより、ＬＳＩ２１０の使用環境に影響を与える可能性がある。
実施の形態１では、性能モニタをトレース信号発生源２１１としてＬＳＩトレースデータ取得装置１００に接続すれば、性能モニタのカウント値（トレースデータ１０１の一例）をＬＳＩトレースデータ取得装置１００で取得することができる。つまり、ＬＳＩ２１０のプログラムソースにコードを追加する必要がなく、ＬＳＩ２１０の使用環境に影響を与えない。
【００７０】
実施の形態２．
トレースデータバッファ１２０により多くの種類のトレースデータ１０１を保存するために、トレースデータ１０１を圧縮してトレースデータバッファ１２０に保存する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【００７１】
図７は、実施の形態２におけるＬＳＩトレースデータ取得装置１００の機能構成図である。
実施の形態２におけるＬＳＩトレースデータ取得装置１００の機能構成について、図７に基づいて説明する。
【００７２】
ＬＳＩトレースデータ取得装置１００は、実施の形態１の構成（図２参照）に加えて、圧縮回路１５０を備える。
【００７３】
圧縮回路１５０（トレースデータ圧縮部の一例）は、トレースデータ取捨選択部１１０により入力データが選択種類のトレースデータであると判定された場合に入力データを圧縮する。
【００７４】
トレースデータバッファ１２０は、圧縮回路１５０により圧縮された入力データを記憶する。
【００７５】
図８は、実施の形態２におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャートである。
実施の形態２におけるトレースデータ取得方法の処理の流れについて、図８に基づいて説明する。
【００７６】
実施の形態１と同じ処理（図３参照）には実施の形態１と同じ処理番号（Ｓｘｘｘ）を付している。
【００７７】
Ｓ１１０において、トレースデータ取捨選択部１１０は、トレースデータ１０１を入力する。
Ｓ１１０の後、Ｓ１２０に進む。
【００７８】
Ｓ１２０において、トレースデータ取捨選択部１１０は、入力したトレースデータ１０１が選択種類のトレースデータ１０１であるか否かを判定する。
入力したトレースデータ１０１が選択種類のトレースデータ１０１である場合（ＹＥＳ）、Ｓ１３１に進む。
入力したトレースデータ１０１が選択種類のトレースデータ１０１でない場合（ＮＯ）、Ｓ１１０に戻る。
【００７９】
Ｓ１３１において、圧縮回路１５０はトレースデータ取捨選択部１１０からトレースデータ１０１を入力し、入力したトレースデータ１０１を所定の圧縮方式で圧縮する。
トレースデータ１０１を圧縮することにより、トレースデータ１０１のデータサイズを小さくし、トレースデータバッファ１２０の空き容量１０２を増やすことができる。
トレースデータバッファ１２０の空き容量１０２が増えた場合、実施の形態１で説明したように（図４から図６参照）、トレースデータ入出力状況分析部１４０により選択されるトレースデータ１０１の種類が増える。つまり、より多くの種類のトレースデータ１０１をトレースデータバッファ１２０に保存することができる。
【００８０】
例えば、圧縮回路１５０は、ランレングス符号化方式でトレースデータ１０１を圧縮する。
ランレングス符号化方式では、前回と同じデータが入力された場合にはデータを出力はせず、同じデータが入力された回数をカウントする。また、前回と異なるデータが入力された場合、入力されたデータと前回までのカウント回数とを合わせて出力する。これにより、出力データ量を削減することができる。
このランレングス符号化方式は、トレースデータ１０１の変化が少ない場合に特に有効である。
【００８１】
Ｓ１３１の後、Ｓ１３２に進む。
【００８２】
Ｓ１３２において、圧縮回路１５０は、圧縮したトレースデータ１０１（圧縮データ１０４）をトレースデータバッファ１２０に保存する。
Ｓ１３２の後、Ｓ１４１に進む。
【００８３】
Ｓ１４１において、トレースデータ逐次出力部１３０は、トレースデータバッファ１２０から圧縮データ１０４を取得し、取得した圧縮データ１０４を出力する。
Ｓ１４１の後、Ｓ１１０に戻る。
【００８４】
実施の形態２において、圧縮回路１５０を備えるＬＳＩトレースデータ取得装置１００について説明した。
圧縮回路１５０は、トレースデータ取捨選択部１１０から発生したトレースデータ１０１を圧縮する。
トレースデータ取捨選択部１１０で選択したトレース信号（トレースデータ１０１）を圧縮回路１５０により圧縮することにより、トレース信号のトレースデータ量を削減し、より多くのトレース信号を取得することができる。
【００８５】
実施の形態３．
複数の圧縮回路を備えることにより、より多くの種類のトレースデータ１０１をトレースデータバッファ１２０に保存する形態について説明する。
以下、実施の形態１、２と異なる事項について主に説明する。説明を省略する事項については実施の形態１、２と同様である。
【００８６】
図９は、実施の形態３におけるＬＳＩトレースデータ取得装置１００の機能構成図である。
実施の形態３におけるＬＳＩトレースデータ取得装置１００の機能構成について、図９に基づいて説明する。
【００８７】
ＬＳＩトレースデータ取得装置１００は、実施の形態１の構成（図２参照）に加えて、複数の圧縮回路１５０、圧縮回路選択部１５１、圧縮回路分析部１５２および圧縮回路制御レジスタ１５３を備える。
【００８８】
複数の圧縮回路１５０は、トレースデータ取捨選択部１１０により入力データが選択種類のトレースデータ１０１であると判定された場合に入力データをそれぞれに異なる圧縮方式で圧縮する。
【００８９】
圧縮回路分析部１５２（圧縮データ選択部の一例）は、複数の圧縮回路１５０により圧縮して得られた複数の入力データのうちいずれかの入力データを選択する。
以下、選択した入力データ（圧縮データ１０４）を出力した圧縮回路１５０を「選択回路１０５Ｂ」という。
【００９０】
圧縮回路選択部１５１は、圧縮回路分析部１５２により選択された入力データをトレースデータバッファ１２０に記憶する。
【００９１】
圧縮回路制御レジスタ１５３は、圧縮条件情報１０５Ａ（または、圧縮条件情報１０５Ａを記憶した記憶領域のアドレス）が設定される記憶部である。
圧縮条件情報１０５Ａは、圧縮回路分析部１５２に圧縮データ１０４を選択させる選択条件を示す情報である。
【００９２】
図１０は、実施の形態３におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャートである。
実施の形態３におけるトレースデータ取得方法の処理の流れについて、図１０に基づいて説明する。
【００９３】
実施の形態１と同じ処理（図３参照）には実施の形態１と同じ処理番号（Ｓｘｘｘ）を付している。
【００９４】
Ｓ１１０において、トレースデータ取捨選択部１１０は、トレースデータ１０１を入力する。
Ｓ１１０の後、Ｓ１２０に進む。
【００９５】
Ｓ１２０において、トレースデータ取捨選択部１１０は、入力したトレースデータ１０１が選択種類のトレースデータ１０１であるか否かを判定する。
入力したトレースデータ１０１が選択種類のトレースデータ１０１である場合（ＹＥＳ）、Ｓ１３３に進む。
入力したトレースデータ１０１が選択種類のトレースデータ１０１でない場合（ＮＯ）、Ｓ１１０に戻る。
【００９６】
Ｓ１３３において、複数の圧縮回路１５０はトレースデータ取捨選択部１１０からトレースデータ１０１を入力し、入力したトレースデータ１０１をそれぞれに異なる圧縮方式で圧縮する。
【００９７】
トレースデータ１０１の圧縮率は圧縮方式によって異なり、また、同じ圧縮方式であってもトレースデータ１０１のデータ構成によって異なる。
したがって、あるトレースデータ１０１を他の圧縮方式よりも高い圧縮率で圧縮する圧縮方式が別のトレースデータ１０１を他の圧縮方式よりも高い圧縮率で圧縮できるとは限らない。
そのため、トレースデータ１０１を異なる圧縮方式で圧縮する複数の圧縮回路１５０を備えることにより、トレースデータ１０１をより高い圧縮率で圧縮することができる。
【００９８】
Ｓ１３３の後、Ｓ１３４に進む。
【００９９】
Ｓ１３４において、圧縮回路分析部１５２は、予め、圧縮回路制御レジスタ１５３（または、圧縮回路制御レジスタ１５３に示されるアドレスで特定される記憶領域）から圧縮条件情報１０５Ａを取得しているものとする。圧縮回路分析部１５２は定期的にまたは所定のタイミングで圧縮条件情報１０５Ａを取得し直してもよい。
圧縮回路分析部１５２は、圧縮条件情報１０５Ａに基づいて、複数の圧縮回路１５０のうちいずれかの圧縮回路１５０を選択し、選択した圧縮回路１５０を示す情報を圧縮回路選択部１５１に入力する。
実施の形態３において、選択した圧縮回路１５０を「選択回路１０５Ｂ」という。
【０１００】
圧縮条件情報１０５Ａは、圧縮された複数のトレースデータ１０１（圧縮データ１０４）のうちいずれかのトレースデータ１０１を選択する選択条件を示す情報である。圧縮条件情報１０５Ａは、利用者によって、圧縮回路制御レジスタ１５３またはＬＳＩトレースデータ取得装置１００のメモリに予め設定しておく。
【０１０１】
例えば、圧縮条件情報１０５Ａは、圧縮データ１０４の選択条件として「データサイズが最小の圧縮データ１０４（圧縮率が最も高い圧縮回路１５０）」を指定する。
この場合、圧縮回路分析部１５２は、複数の圧縮回路１５０により生成された複数の圧縮データ１０４のうちデータサイズが最も小さい圧縮データ１０４を特定し、特定した圧縮データ１０４を生成した圧縮回路１５０を選択回路１０５Ｂとして選択する。
【０１０２】
また例えば、圧縮条件情報１０５Ａは、複数の圧縮回路１５０のうちいずれかの圧縮回路１５０を指定する。
この場合、圧縮回路分析部１５２は、圧縮条件情報１０５Ａに指定された圧縮回路１５０を選択回路１０５Ｂとして選択する。
【０１０３】
Ｓ１３４の後、Ｓ１３５に進む。
【０１０４】
Ｓ１３５において、圧縮回路選択部１５１は、複数の圧縮回路１５０それぞれからトレースデータ１０１を圧縮した圧縮データ１０４を入力し、圧縮回路分析部１５２から選択回路１０５Ｂを示す情報を入力する。
そして、圧縮回路選択部１５１は、複数の圧縮データ１０４のうち選択回路１０５Ｂから入力した圧縮データ１０４と、選択回路１０５Ｂの圧縮方式を示す識別情報とをトレースデータバッファ１２０に保存する。
Ｓ１３５の後、Ｓ１４１に進む。
【０１０５】
Ｓ１４１において、トレースデータ逐次出力部１３０は、トレースデータバッファ１２０から圧縮データ１０４と圧縮方式の識別情報とを出力する。
Ｓ１４１の後、Ｓ１１０に戻る。
【０１０６】
圧縮回路分析部１５２による圧縮回路１５０の選択（Ｓ１３４）は、トレースデータ取捨選択部１１０にトレースデータ１０１が入力される度に行わずに、定期的または所定のタイミングで行っても構わない。
【０１０７】
実施の形態３において、例えば、以下のようなＬＳＩトレースデータ取得装置１００について説明した。
【０１０８】
ＬＳＩトレースデータ取得装置１００は、複数の圧縮回路１５０と圧縮回路選択部１５１と圧縮回路制御レジスタ１５３とを備える。
複数の圧縮回路１５０は、トレースデータ１０１を異なる圧縮方式で圧縮する。
圧縮回路選択部１５１は、圧縮回路１５０の一つを選択し、選択した圧縮回路１５０により圧縮されたトレースデータ１０１をトレースデータバッファ１２０へ保存する。
圧縮回路制御レジスタ１５３は、圧縮回路１５０を選択するために用いる情報を与える。
これにより、単一の圧縮方式でトレースデータ１０１を圧縮するよりもトレースデータ量を削減し、より多くのトレースデータ１０１を取得することができる。
【０１０９】
実施の形態４．
所定のイベントが発生した場合にのみトレースデータ１０１を保存する形態について説明する。
以下、実施の形態１〜３と異なる事項について主に説明する。説明を省略する事項については実施の形態１〜３と同様である。
【０１１０】
図１１は、実施の形態４におけるＬＳＩトレースデータ取得装置１００の機能構成図である。
実施の形態４におけるＬＳＩトレースデータ取得装置１００の機能構成について、図１１に基づいて説明する。
【０１１１】
ＬＳＩトレースデータ取得装置１００は、実施の形態１の構成（図２参照）に加えて、イベント監視部１６０とイベント制御レジスタ１６１とを備える。
【０１１２】
イベント監視部１６０（イベント判定部の一例）は、所定のイベントが発生したか否かを判定する。
【０１１３】
トレースデータバッファ１２０は、イベント監視部１６０により所定のイベントが発生したと判定され、トレースデータ取捨選択部１１０により入力データが選択種類のトレースデータ１０１であると判定された場合に入力データを記憶する。
【０１１４】
イベント制御レジスタ１６１は、イベント情報１０６（または、イベント情報１０６を記憶した記憶領域のアドレス）が設定される記憶部である。
イベント情報１０６は、イベント監視部１６０に判定させるイベントを示す情報である。
【０１１５】
図１２は、実施の形態４におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャートである。
実施の形態４におけるトレースデータ取得方法の処理の流れについて、図１２に基づいて説明する。
【０１１６】
実施の形態１と同じ処理（図３参照）には実施の形態１と同じ処理番号（Ｓｘｘｘ）を付している。
【０１１７】
Ｓ１１０において、トレースデータ取捨選択部１１０は、トレースデータ１０１を入力する。
Ｓ１１０の後、Ｓ１２０に進む。
【０１１８】
Ｓ１２０において、トレースデータ取捨選択部１１０は、入力したトレースデータ１０１が選択種類のトレースデータ１０１であるか否かを判定する。
入力したトレースデータ１０１が選択種類のトレースデータ１０１である場合（ＹＥＳ）、Ｓ１２１に進む。
入力したトレースデータ１０１が選択種類のトレースデータ１０１でない場合（ＮＯ）、Ｓ１１０に戻る。
【０１１９】
Ｓ１２１において、イベント監視部１６０は、トレースデータ取捨選択部１１０からトレースデータ１０１を入力する。
【０１２０】
また、イベント監視部１６０は、イベント制御レジスタ１６１（または、イベント制御レジスタ１６１に示されるアドレスで特定される記憶領域）からイベント情報１０６を予め取得しているものとする。イベント情報１０６は、発生したか否かを判定する対象のイベントを示す情報である。実施の形態４において、イベント情報１０６に示されるイベントを「対象イベント」という。イベント監視部１６０は定期的にまたは所定のタイミングでイベント情報１０６を取得し直してもよい。
【０１２１】
そして、イベント監視部１６０は、イベント情報１０６に示される対象イベントが既に発生しているか否かを判定する。
【０１２２】
イベントとは、コマンドの発生、データの受け渡し、エラーの検出など、ＬＳＩ２１０に発生する特定の事象のことである。
実施の形態４において、イベントを示す信号をイベント発生刺激信号という。また、ＬＳＩ２１０にイベントが発生した場合、イベントを発生または検出したＬＳＩ２１０の回路がイベント発生刺激信号を出力する。
【０１２３】
ＬＳＩ２１０にイベントが発生した場合、イベント監視部１６０は、イベントを発生または検出したＬＳＩ２１０の回路からイベント発生刺激信号を入力する。
また、イベント監視部１６０は、入力したイベント発生刺激信号に示されるイベントがイベント情報１０６に示される対象イベントであるか否かを判定する。
【０１２４】
そして、Ｓ１１０で入力したトレースデータ１０１が対象イベントのイベント発生刺激信号を入力してから最初に入力したトレースデータ１０１である場合、イベント監視部１６０は、対象イベントが既に発生していると判定する。
但し、イベント監視部１６０は、その他の判定条件に従って判定しても構わない。例えば、対象イベントのイベント発生刺激信号を入力してから所定の経過時間が経過していない場合、イベント監視部１６０は、対象イベントが既に発生していると判定してもよい。また、イベント監視部１６０は、対象イベントのイベント発生刺激信号を入力してから他のイベント発生刺激信号を入力するまで、対象イベントが既に発生していると判定してもよい。
【０１２５】
イベント情報１０６に示される対象イベントが既に発生している場合（ＹＥＳ）、Ｓ１３６に進む。
イベント情報１０６に示される対象イベントが発生していない場合（ＮＯ）、イベント監視部１６０はトレースデータ１０１を破棄し、処理はＳ１１０に戻る。
【０１２６】
Ｓ１３６において、イベント監視部１６０は、トレースデータ１０１をトレースデータバッファ１２０に保存する。
Ｓ１３６の後、Ｓ１４０に進む。
【０１２７】
Ｓ１４０において、トレースデータ逐次出力部１３０は、トレースデータバッファ１２０からトレースデータ１０１を取得し、取得したトレースデータ１０１を出力する。
Ｓ１４０の後、Ｓ１１０に戻る。
【０１２８】
実施の形態４において、例えば、以下のようなＬＳＩトレースデータ取得装置１００について説明した。
【０１２９】
ＬＳＩトレースデータ取得装置１００は、イベント監視部１６０とイベント制御レジスタ１６１とを備える。
イベント監視部１６０は、規定のイベントが発生したときのみ、トレースデータ取捨選択部１１０から発生したトレースデータ１０１をトレースデータバッファ１２０へ保存する。
イベント制御レジスタ１６１は、トレースデータ１０１をトレースデータバッファ１２０へ保存するためのイベントを制御する。
【０１３０】
実施の形態４において、ＬＳＩトレースデータ取得装置１００は、実施の形態２と同様に圧縮回路１５０を備えても構わない。
この場合、圧縮回路１５０はトレースデータ１０１を圧縮して得られた圧縮データ１０４をイベント監視部１６０に入力し、イベント監視部１６０は圧縮回路１５０から入力した圧縮データ１０４をトレースデータバッファ１２０に保存する。
【０１３１】
また、ＬＳＩトレースデータ取得装置１００は、実施の形態３と同様に、複数の圧縮回路１５０、圧縮回路選択部１５１、圧縮回路分析部１５２および圧縮回路制御レジスタ１５３を備えても構わない。
この場合、圧縮回路選択部１５１は選択回路１０５Ｂから出力された圧縮データ１０４と選択回路１０５Ｂの圧縮方式を示す識別情報とをイベント監視部１６０に入力する。そして、イベント監視部１６０は圧縮回路選択部１５１から入力した圧縮データ１０４と圧縮方式の識別情報とをトレースデータバッファ１２０に保存する。
【０１３２】
実施の形態５．
トレースデータバッファ１２０に保存するトレースデータ１０１の種類を、トレースデータバッファ１２０に入力（保存）したトレースデータ１０１の入力量と、トレースデータバッファ１２０から出力したトレースデータ１０１の出力量とに基づいて選択する形態について説明する。
以下、実施の形態１〜４と異なる事項について主に説明する。説明を省略する事項については実施の形態１〜４と同様である。
【０１３３】
図１３は、実施の形態５におけるＬＳＩトレースデータ取得装置１００の機能構成図である。
実施の形態５におけるＬＳＩトレースデータ取得装置１００の機能構成について、図１３に基づいて説明する。
【０１３４】
ＬＳＩトレースデータ取得装置１００は、実施の形態１の構成（図２参照）に加えて、入力トレースデータ監視部１７０と出力トレースデータ監視部１７１とを備える。
【０１３５】
入力トレースデータ監視部１７０は、トレースデータバッファ１２０に記憶されたトレースデータ１０１の記憶量（入力量）を算出する。
【０１３６】
出力トレースデータ監視部１７１は、トレースデータバッファ１２０から出力されたトレースデータ１０１の出力量を算出する。
【０１３７】
トレースデータ入出力状況分析部１４０は、入力トレースデータ監視部１７０により算出されたトレースデータ１０１の記憶量と出力トレースデータ監視部１７１により算出されたトレースデータ１０１の出力量とに基づいて、トレースデータバッファ１２０に記憶するトレースデータ１０１の種類を選択する。
【０１３８】
例えば、トレースデータ入出力状況分析部１４０は、トレースデータ１０１の記憶量からトレースデータ１０１の出力量を差し引いた値をトレースデータ入出力差として算出する。
トレースデータ入出力状況分析部１４０は、算出したトレースデータ入出力差と所定の入出力差閾値とを比較する。
トレースデータ入出力差が入出力差閾値より大きい場合、トレースデータ入出力状況分析部１４０は、トレースデータ１０１の選択種類を所定の第１の選択種類数だけ選択する。
トレースデータ入出力差が入出力差閾値より小さい場合、トレースデータ入出力状況分析部１４０は、トレースデータ１０１の選択種類を第１の選択種類数より多い所定の第２の選択種類数だけ選択する。
【０１３９】
図１４は、実施の形態５におけるＬＳＩトレースデータ取得装置１００のトレースデータ取得方法を示すフローチャートである。
実施の形態５におけるトレースデータ取得方法の処理の流れについて、図１４に基づいて説明する。
【０１４０】
実施の形態１と同じ処理（図３参照）には実施の形態１と同じ処理番号（Ｓｘｘｘ）を付している。
【０１４１】
Ｓ１１０において、トレースデータ取捨選択部１１０は、トレースデータ１０１を入力する。
Ｓ１１０の後、Ｓ１２０に進む。
【０１４２】
Ｓ１２０において、トレースデータ取捨選択部１１０は、入力したトレースデータ１０１が選択種類のトレースデータ１０１であるか否かを判定する。
入力したトレースデータ１０１が選択種類のトレースデータ１０１である場合（ＹＥＳ）、Ｓ１３７に進む。
入力したトレースデータ１０１が選択種類のトレースデータ１０１でない場合（ＮＯ）、Ｓ１１０に戻る。
【０１４３】
Ｓ１３７において、入力トレースデータ監視部１７０は、トレースデータ取捨選択部１１０からトレースデータ１０１を入力し、入力したトレースデータ１０１をトレースデータバッファ１２０に保存する。
Ｓ１３７の後、Ｓ１３８に進む。
【０１４４】
Ｓ１３８において、入力トレースデータ監視部１７０は、トレースデータバッファ１２０に記憶したトレースデータ１０１の入力量を算出する。
【０１４５】
例えば、入力トレースデータ監視部１７０は、トレースデータ１０１の総入力量、最大入力量、今回の入力量、平均入力量などをトレースデータ１０１の入力量として算出する。
トレースデータ１０１の総入力量とは、それまでにトレースデータバッファ１２０に記憶したトレースデータ１０１の合計サイズのことである。「それまで」とは、例えば、ＬＳＩ２１０（またはＬＳＩトレースデータ取得装置１００）を起動してから算出を行うときまでである。
トレースデータ１０１の最大入力量とは、それまでにトレースデータバッファ１２０に記憶したトレースデータ１０１のうち最も大きいトレースデータ１０１のデータサイズのことである。
トレースデータ１０１の今回の入力量とは、Ｓ１３７でトレースデータバッファ１２０に今回記憶したトレースデータ１０１のデータサイズのことである。
トレースデータ１０１の平均入力量とは、それまでにトレースデータバッファ１２０に記憶したトレースデータ１０１の単位時間当たりのデータサイズのことである。
【０１４６】
Ｓ１３８の後、Ｓ１３９に進む。
【０１４７】
Ｓ１３９において、出力トレースデータ監視部１７１はトレースデータバッファ１２０からトレースデータ１０１を取得し、取得したトレースデータ１０１をトレースデータ逐次出力部１３０に出力する。但し、トレースデータバッファ１２０からトレースデータ逐次出力部１３０に出力するトレースデータ１０１のデータ量は、トレースデータ逐次出力部１３０から出力されるトレースデータ１０１の出力量に合わせているものとする。
そして、出力トレースデータ監視部１７１は、トレースデータバッファ１２０からトレースデータ逐次出力部１３０に出力したトレースデータ１０１の出力量を算出する。
【０１４８】
例えば、出力トレースデータ監視部１７１は、トレースデータ１０１の総出力量、最大出力量、今回の出力量、平均出力量、出力可能量などをトレースデータ１０１の出力量として算出する。
トレースデータ１０１の総出力量とは、それまでにトレースデータバッファ１２０から出力したトレースデータ１０１の合計サイズのことである。「それまで」とは、例えば、ＬＳＩ２１０（またはＬＳＩトレースデータ取得装置１００）を起動してから算出を行うときまでである。
トレースデータ１０１の最大出力量とは、それまでにトレースデータバッファ１２０から出力したトレースデータ１０１のうち最も大きいトレースデータ１０１のデータサイズのことである。
トレースデータ１０１の今回の出力量とは、トレースデータバッファ１２０から今回出力したトレースデータ１０１のデータサイズのことである。
トレースデータ１０１の平均出力量とは、それまでにトレースデータバッファ１２０から出力したトレースデータ１０１の単位時間当たりのデータサイズのことである。
トレースデータ１０１の出力可能量とは、トレースデータ逐次出力部１３０が単位時間当たりに出力できるトレースデータ１０１のデータサイズのことである。
【０１４９】
Ｓ１３９の後、Ｓ１４２に進む。
【０１５０】
Ｓ１４２において、トレースデータ逐次出力部１３０は、出力トレースデータ監視部１７１によりトレースデータバッファ１２０から出力されたトレースデータ１０１を出力する。
Ｓ１４２の後、Ｓ１１０に戻る。
【０１５１】
図１５は、実施の形態５におけるトレースデータ入出力状況分析部１４０のトレースデータ入出力状況分析処理を示すフローチャートである。
実施の形態５におけるトレースデータ入出力状況分析部１４０のトレースデータ入出力状況分析処理について、図１５に基づいて説明する。
【０１５２】
実施の形態１と同じ処理（図４参照）には実施の形態１と同じ処理番号（Ｓｘｘｘ）を付している。
【０１５３】
Ｓ２１０において、トレースデータ入出力状況分析部１４０は、選択方法情報１０３Ａを取得する。
実施の形態５において、選択方法情報１０３Ａは、トレースデータ１０１の入出力量おに基づいたトレースデータ１０１の選択条件を示す。
Ｓ２１０の後、Ｓ２２０に進む。
【０１５４】
Ｓ２２０において、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量を示す情報（空き容量１０２）を取得する。
Ｓ２２０の後、Ｓ２２１に進む。
【０１５５】
Ｓ２２１において、トレースデータ入出力状況分析部１４０は、入力トレースデータ監視部１７０から入力量情報１０７Ａを取得し、出力トレースデータ監視部１７１から出力量情報１０７Ｂを取得する。
入力量情報１０７Ａは入力トレースデータ監視部１７０により算出されたトレースデータ１０１の入力量を示す情報であり、出力量情報１０７Ｂは出力トレースデータ監視部１７１により算出されたトレースデータ１０１の出力量を示す情報である。
Ｓ２２１の後、Ｓ２３０Ｂに進む。
【０１５６】
Ｓ２３０Ｂにおいて、トレースデータ入出力状況分析部１４０は、入力量情報１０７Ａと出力量情報１０７Ｂと空き容量１０２と選択方法情報１０３Ａとに基づいて、トレースデータ１０１の種類を選択する。
Ｓ２３０Ｂの具体例について後述する。
Ｓ２３０Ｂの後、Ｓ２４０に進む。
【０１５７】
Ｓ２４０において、トレースデータ入出力状況分析部１４０は、選択したトレースデータ１０１の種類を示す選択種類情報１０３Ｂをトレースデータ取捨選択部１１０に入力する。
Ｓ２４０の後、Ｓ２２０に戻る。
【０１５８】
図１６は、実施の形態５におけるトレースデータ入出力状況分析部１４０のトレースデータ種類選択処理（Ｓ２３０Ｂ）の一例を示すフローチャートである。
実施の形態５におけるトレースデータ入出力状況分析部１４０のトレースデータ種類選択処理（Ｓ２３０Ｂ）の一例について、図１６に基づいて説明する。
【０１５９】
Ｓ２３１Ｂにおいて、トレースデータ入出力状況分析部１４０は、トレースデータバッファ１２０の空き容量１０２と、選択方法情報１０３Ａに示される容量閾値とを大小比較する。
空き容量１０２が容量閾値以上の場合（ＹＥＳ）、Ｓ２３２Ｂに進む。
空き容量１０２が容量閾値未満の場合（ＮＯ）、Ｓ２３５Ｂに進む。
【０１６０】
Ｓ２３２Ｂにおいて、トレースデータ入出力状況分析部１４０は、トレースデータ１０１の平均入力量からトレースデータ１０１の平均出力量を差し引いた値をトレースデータ入出力差として算出する。トレースデータ１０１の平均入力量は入力量情報１０７Ａに示される値であり、トレースデータ１０１の平均出力量は出力量情報１０７Ｂに示される値である。
トレースデータ入出力状況分析部１４０は、算出したトレースデータ入出力差と選択方法情報１０３Ａに示される入出力差閾値（小）とを大小比較する。
トレースデータ入出力差が入出力差閾値（小）以下の場合（ＹＥＳ）、つまり、トレースデータ１０１の平均入力量とトレースデータ１０１の平均出力量との差が小さい場合、Ｓ２３３Ｂに進む。
トレースデータ入出力差が入出力差閾値（小）より大きい場合（ＮＯ）、つまり、トレースデータ１０１の平均入力量とトレースデータ１０１の平均出力量との差が小さくない場合、Ｓ２３４Ｂに進む。
【０１６１】
Ｓ２３３Ｂにおいて、トレースデータ入出力状況分析部１４０は、選択種類を優先度の高い順に一つ（または二つ以上の所定数）だけ増やす。但し、現在の選択種類が全ての種類である場合、トレースデータ入出力状況分析部１４０は選択種類を増やさない。
例えば、現在の選択種類が優先度が最も高いコマンド信号だけである場合、トレースデータ入出力状況分析部１４０は、優先度が二番目に高いアドレス信号を追加で選択する。この場合、選択種類はコマンド信号とアドレス信号との二種類になる。
Ｓ２３３Ｂにより、トレースデータ種類選択処理（Ｓ２３０Ｂ）は終了する。
【０１６２】
Ｓ２３４Ｂにおいて、トレースデータ入出力状況分析部１４０は、トレースデータ入出力差と選択方法情報１０３Ａに示される入出力差閾値（大）とを大小比較する。
トレースデータ入出力差が入出力差閾値（大）以下の場合（ＹＥＳ）、つまり、トレースデータ１０１の平均入力量とトレースデータ１０１の平均出力量との差が小さくも大きくもなく中程度の場合、トレースデータ入出力状況分析部１４０は選択種類を変更せず、トレースデータ種類選択処理（Ｓ２３０Ｂ）は終了する。
トレースデータ入出力差が入出力差閾値（大）より大きいの場合（ＮＯ）、つまり、トレースデータ１０１の平均入力量とトレースデータ１０１の平均出力量との差が大きい場合、Ｓ２３５Ｂに進む。
【０１６３】
Ｓ２３５Ｂにおいて、トレースデータ入出力状況分析部１４０は、選択種類を優先度の低い順に一つ（または二つ以上の所定数）だけ減らす。但し、現在の選択種類が１種類だけである場合、トレースデータ入出力状況分析部１４０は選択種類を減らさない。
例えば、現在の選択種類が全ての種類（コマンド信号、アドレス信号、データ信号）である場合、トレースデータ入出力状況分析部１４０は、優先度が最も低いデータ信号を選択種類から除外する。この場合、選択種類はコマンド信号とアドレス信号との二種類になる。
Ｓ２３５Ｂにより、トレースデータ種類選択処理（Ｓ２３０Ｂ）は終了する。
【０１６４】
トレースデータ入出力状況分析部１４０は、平均入出力量以外のトレースデータ１０１の入出力量に基づいてトレースデータ１０１の種類を選択してもよい。
また、トレースデータ入出力状況分析部１４０は、トレースデータ１０１の出力量を使わずに、トレースデータ１０１の入力量に基づいてトレースデータ１０１の種類を選択してもよい。
また、トレースデータ入出力状況分析部１４０は、トレースデータ１０１の入力量を使わずに、トレースデータ１０１の出力量に基づいてトレースデータ１０１の種類を選択してもよい。
【０１６５】
実施の形態５において、例えば、以下のようなＬＳＩトレースデータ取得装置１００について説明した。
【０１６６】
ＬＳＩトレースデータ取得装置１００は、入力トレースデータ監視部１７０と出力トレースデータ監視部１７１とを備える。
入力トレースデータ監視部１７０は、トレースデータ取捨選択部１１０からトレースデータバッファ１２０へ入力されるトレースデータ１０１を監視する。
出力トレースデータ監視部１７１は、トレースデータバッファ１２０から出力されるトレースデータ１０１を監視する。
【０１６７】
トレースデータ１０１の入出力量はＬＳＩ２１０の実行状況により変動する。このため、トレースデータバッファ１２０の残容量（空き容量１０２）の情報だけでは、トレースデータ１０１の選択種類の切り替えが頻繁に発生したり、その逆にトレースデータ１０１の選択種類の切り替えが十分に行われなかったりする。トレースデータ１０１の入出力量を利用することにより、トレースデータ１０１の選択種類をより適切に切り替えることができる。
【０１６８】
実施の形態５において、ＬＳＩトレースデータ取得装置１００は、実施の形態２と同様に圧縮回路１５０を備えても構わない。
この場合、圧縮回路１５０はトレースデータ１０１を圧縮して得られた圧縮データ１０４を入力トレースデータ監視部１７０に入力し、入力トレースデータ監視部１７０は圧縮回路１５０から入力した圧縮データ１０４をトレースデータバッファ１２０に保存する。
入力トレースデータ監視部１７０は圧縮データ１０４の入力量を算出し、出力トレースデータ監視部１７１は圧縮データ１０４の出力量を算出する。
【０１６９】
また、ＬＳＩトレースデータ取得装置１００は、実施の形態３と同様に、複数の圧縮回路１５０、圧縮回路選択部１５１、圧縮回路分析部１５２および圧縮回路制御レジスタ１５３を備えても構わない。
この場合、圧縮回路選択部１５１は選択回路１０５Ｂから出力された圧縮データ１０４と選択回路１０５Ｂの圧縮方式を示す識別情報とを入力トレースデータ監視部１７０に入力する。そして、入力トレースデータ監視部１７０は圧縮回路選択部１５１から入力した圧縮データ１０４と圧縮方式の識別情報とをトレースデータバッファ１２０に保存する。
入力トレースデータ監視部１７０は圧縮データ１０４（と圧縮方式の識別情報）の入力量を算出し、出力トレースデータ監視部１７１は圧縮データ１０４（と圧縮方式の識別情報）の出力量を算出する。
【０１７０】
また、ＬＳＩトレースデータ取得装置１００は、実施の形態４と同様に、イベント監視部１６０とイベント制御レジスタ１６１とを備えても構わない。
この場合、入力トレースデータ監視部１７０はイベント監視部１６０からトレースデータ１０１（または圧縮データ１０４）を入力し、入力したトレースデータ１０１（または圧縮データ１０４）をトレースデータバッファ１２０に保存する。
【０１７１】
実施の形態６．
トレースデータ１０１を所定の出力先に出力する形態について説明する。
以下、実施の形態１〜５と異なる事項について主に説明する。説明を省略する事項については実施の形態１〜５と同様である。
【０１７２】
図１７は、実施の形態６におけるＬＳＩトレースデータ取得装置１００の機能構成図である。
実施の形態６におけるＬＳＩトレースデータ取得装置１００の機能構成について、図１７に基づいて説明する。
【０１７３】
ＬＳＩトレースデータ取得装置１００は、実施の形態１の構成（図２参照）に加えて、逐次出力制御レジスタ１３１を備える。
【０１７４】
逐次出力制御レジスタ１３１は、出力先情報１０８（または、出力先情報１０８を記憶した記憶領域のアドレス）が設定される記憶部である。
出力先情報１０８は、トレースデータ１０１を出力する出力先を示す情報である。
【０１７５】
トレースデータ逐次出力部１３０は、出力先情報１０８を定期的にまたは所定のタイミングで取得し、取得した出力先情報１０８に示される出力先にトレースデータ１０１を出力する。
【０１７６】
利用者は、出力先情報１０８を変更することによりトレースデータ１０１の出力先を変更することができる。
例えば、外部出力インタフェース２１３に障害が発生した場合、利用者は、出力先情報１０８に内部メモリ２１４を指定する。これにより、トレースデータ１０１をトレースデータバッファ１２０から内部メモリ２１４へ退避することができる。
【０１７７】
ＬＳＩ２１０で利用されるＰＣＩ  Ｅｘｐｒｅｓｓなどの汎用インタフェースを外部出力インタフェース２１３として利用することが考えられる。その場合、従来手法においてデバッグやテスト専用に利用されていた外部ピンを削減することができる。
【０１７８】
近年のＬＳＩ２１０はネットワークに接続されるケースが多く、ネットワークにより統合された環境で動作することも考えられる。そのようなネットワークに対し、ＬＳＩ２１０のトレースデータ１０１を送信することで、低再現性の不具合に対処することができる。そのためにエラー信号をトレースデータ逐次出力部１３０より外部出力することも可能である。
また、不揮発性のメモリを内部メモリ２１４として利用すれば、電源が落ちてもデータが消失せず、エラーの対処が可能になる。
また、逐次出力制御レジスタ１３１にパスワードなどのセキュリティ情報が設定されていない場合に、トレースデータ１０１をＬＳＩ２１０の外部へ出力しないように制限してもよい。また、トレースデータ逐次出力部１３０はトレースデータ１０１を暗号化して出力してもよい。それにより、ＬＳＩ２１０のトレースデータ１０１を不正に取得しようとする攻撃からトレースデータ１０１を守り、ＬＳＩ２１０の内部の処理情報を隠蔽することができる。
【０１７９】
実施の形態６において、ＬＳＩトレースデータ取得装置１００は、実施の形態２または実施の形態３と同様に、トレースデータ１０１を圧縮しても構わない。
また、ＬＳＩトレースデータ取得装置１００は、実施の形態４と同様に、特定のイベントが発生した場合にのみトレースデータ１０１を取得しても構わない。
また、ＬＳＩトレースデータ取得装置１００は、実施の形態５と同様に、トレースデータ１０１の入出力量に基づいてトレースデータ１０１の選択種類を決定しても構わない。
【０１８０】
実施の形態７．
ＬＳＩ２１０内のＬＳＩトレースデータ取得装置１００からトレースデータ１０１を取得し、取得したトレースデータ１０１に基づいてＬＳＩ２１０をデバッグするデバッグ装置２２０について説明する。
【０１８１】
図１８は、実施の形態７におけるデバッグシステム２００の構成図である。
実施の形態７におけるデバッグ装置２２０の機能構成について、図１８に基づいて説明する。
【０１８２】
実施の形態７におけるデバッグシステム２００は、実施の形態１から実施の形態６で説明したいずれかのＬＳＩ２１０およびＬＳＩトレースデータ取得装置１００を有する。
【０１８３】
デバッグ装置２２０は、トレースデータ復元部２２１、入力データ凍結部２２２、データストレージ２２３およびデバッグ部２２４を備える。
【０１８４】
トレースデータ復元部２２１（デバッグ入力部の一例）は、ＬＳＩトレースデータ取得装置１００からトレースデータバッファ１２０に記憶されたトレースデータ１０１を入力する。
【０１８５】
入力データ凍結部２２２（保存命令入力部の一例）は、データストレージ２２３に記憶されているトレースデータ１０１の保存を指定する入力データ凍結通知２２９（トレースデータ保存命令の一例）を入力する。
【０１８６】
データストレージ２２３（デバッグ記憶部の一例）は、トレースデータ１０１を記憶する記憶領域を有する。
データストレージ２２３は、新たなトレースデータ１０１を記憶する記憶領域が不足した場合に過去のトレースデータ１０１が記憶されている記憶領域に新たなトレースデータ１０１を上書きする。
データストレージ２２３は、入力データ凍結部２２２に入力データ凍結通知２２９が入力された場合、トレースデータ復元部２２１に入力された新たなトレースデータ１０１を記憶しない。
【０１８７】
デバッグ部２２４は、データストレージ２２３に記憶されたトレースデータ１０１をディスプレイ装置に表示する。
デバッグ部２２４は、トレースデータ１０１に基づく利用者の指示をキーボードやマウスなどの入力装置から入力し、利用者の指示に従ってデバッグ処理を行う。
【０１８８】
デバッグ装置２２０は、ＣＰＵ、メモリ、磁気ディスク装置、ディスプレイ装置、入力装置、通信装置などのハードウェア（図示省略）を備える。
デバッグ装置２２０の「〜部」として説明する構成は「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明する構成は、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。「〜部」として説明する機能を実行するプログラムはメモリに記憶され、ＣＰＵにより読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【０１８９】
図１９は、実施の形態７におけるデバッグ装置２２０のトレースデータ保存方法を示すフローチャートである。
デバッグ装置２２０が実行するトレースデータ保存方法の処理の流れについて、図１９に基づいて説明する。
【０１９０】
Ｓ３１０において、ＬＳＩトレースデータ取得装置１００は、実施の形態１から実施の形態６で説明したように、ＬＳＩ２１０のトレースデータ１０１を取得し、取得したトレースデータ１０１をデバッグ装置２２０へ出力する。
トレースデータ１０１は、圧縮された圧縮データであっても暗号化された暗号化データであっても構わない。但し、圧縮方式または暗号化方式が決まっていない場合、ＬＳＩトレースデータ取得装置１００は、圧縮方式または暗号化方式を示す識別情報をトレースデータ１０１と共にデバッグ装置２２０へ出力するものとする。例えば、実施の形態３のＬＳＩトレースデータ取得装置１００は圧縮方式を示す識別情報をトレースデータ１０１と共にデバッグ装置２２０へ出力する。
Ｓ３１０の後、Ｓ３２０に進む。
【０１９１】
Ｓ３２０において、トレースデータ復元部２２１は、ＬＳＩトレースデータ取得装置１００から出力されたトレースデータ１０１（および圧縮方式または暗号化方式の識別情報）を入力する。
Ｓ３２０の後、Ｓ３３０に進む。
【０１９２】
Ｓ３３０において、トレースデータ復元部２２１は、入力したトレースデータ１０１を復元する。
例えば、トレースデータ１０１が圧縮されている場合、トレースデータ復元部２２１は、トレースデータ１０１の圧縮方式を圧縮方式の識別情報に基づいて判定し、判定した圧縮方式に対応する解凍方式でトレースデータ１０１を解凍する。また、トレースデータ１０１が暗号化されている場合、トレースデータ復元部２２１は、トレースデータ１０１の暗号化方式を暗号化方式の識別情報に基づいて判定し、判定した暗号化方式に対応する復号方式でトレースデータ１０１を復号する。
但し、トレースデータ１０１が圧縮も暗号化もされていない場合、Ｓ３３０の復元処理は不要である。
Ｓ３３０の後、Ｓ３４０に進む。
【０１９３】
Ｓ３４０において、入力データ凍結部２２２は、トレースデータ復元部２２１から復号されたトレースデータ１０１を入力する。
また、入力データ凍結部２２２は、入力データ凍結通知２２９が入力されたか否かを判定する。
入力データ凍結通知２２９は、トレースデータ１０１が記憶されているデータストレージ２２３の記憶領域を新たなトレースデータ１０１で上書きすることを禁止する命令である。入力データ凍結通知２２９は利用者によってデバッグ装置２２０に入力され、または、ＬＳＩ２１０から通知（入力）される。
入力データ凍結通知２２９が入力された場合（ＹＥＳ）、入力データ凍結部２２２はトレースデータ１０１を破棄し、トレースデータ保存方法の処理は終了する。
入力データ凍結通知２２９が入力されていない場合（ＮＯ）、Ｓ３５０に進む。
【０１９４】
Ｓ３５０において、入力データ凍結部２２２は、トレースデータ１０１をデータストレージ２２３に記憶する。
データストレージ２２３は、新たなトレースデータ１０１を記憶する記憶領域が不足した場合に過去のトレースデータ１０１が記憶されている記憶領域に新たなトレースデータ１０１を上書きする。このようにデータを循環式に記憶する記憶装置をリングバッファという。
Ｓ３５０により、トレースデータ保存方法の処理は終了する。
【０１９５】
実施の形態７において、以下のようなデバッグ装置２２０について説明した。
【０１９６】
デバッグ装置２２０は、トレースデータ復元部２２１、入力データ凍結部２２２およびデータストレージ２２３を備える。
トレースデータ復元部２２１は、トレースデータ１０１をデバッグなどに利用可能な情報に復元する。
データストレージ２２３は、復元されたデータを保存する。
入力データ凍結部２２２は、データストレージ２２３へのデータの保存を停止させる。
【０１９７】
例えば、ＬＳＩ２２１からエラー発生のイベント信号が入力データ凍結通知２２９としてデバッグ装置２２０に通知された場合、新たなトレースデータ１０１の上書き保存を中止し、ＬＳＩ２２１にエラーが発生する前に保存されたトレースデータ１０１を確保することができる。利用者はトレースデータ１０１を利用してエラー原因を判断し、ＬＳＩ２１０をデバッグする。
【符号の説明】
【０１９８】
１００  ＬＳＩトレースデータ取得装置、１０１  トレースデータ、１０１Ａ  コマンド信号、１０１Ｂ  アドレス信号、１０１Ｃ  データ信号、１０２  空き容量、１０３Ａ  選択方法情報、１０３Ｂ  選択種類情報、１０４  圧縮データ、１０５Ａ  圧縮条件情報、１０５Ｂ  選択回路、１０６  イベント情報、１０７Ａ  入力量情報、１０７Ｂ  出力量情報、１０８  出力先情報、１１０  トレースデータ取捨選択部、１２０  トレースデータバッファ、１３０  トレースデータ逐次出力部、１３１  逐次出力制御レジスタ、１４０  トレースデータ入出力状況分析部、１４１  トレースデータ制御レジスタ、１５０  圧縮回路、１５１  圧縮回路選択部、１５２  圧縮回路分析部、１５３  圧縮回路制御レジスタ、１６０  イベント監視部、１６１  イベント制御レジスタ、１７０  入力トレースデータ監視部、１７１  出力トレースデータ監視部、２００  デバッグシステム、２１０  ＬＳＩ、２１１  トレース信号発生源、２１２  内部バス、２１３  外部出力インタフェース、２１４  内部メモリ、２１９  ＣＰＵ、２２０  デバッグ装置、２２１  トレースデータ復元部、２２２  入力データ凍結部、２２３  データストレージ、２２４  デバッグ部、２２９  入力データ凍結通知。
【図１】
0005606261.tif 000002
【図２】
0005606261.tif 000003
【図３】
0005606261.tif 000004
【図４】
0005606261.tif 000005
【図５】
0005606261.tif 000006
【図６】
0005606261.tif 000007
【図７】
0005606261.tif 000008
【図８】
0005606261.tif 000009
【図９】
0005606261.tif 000010
【図１０】
0005606261.tif 000011
【図１１】
0005606261.tif 000012
【図１２】
0005606261.tif 000013
【図１３】
0005606261.tif 000014
【図１４】
0005606261.tif 000015
【図１５】
0005606261.tif 000016
【図１６】
0005606261.tif 000017
【図１７】
0005606261.tif 000018
【図１８】
0005606261.tif 000019
【図１９】
0005606261.tif 000020