(57)【要約】【課題】データ処理装置の内部ステータス、内部通信パケット数などの履歴データの量を削減すること。【解決手段】インタフェース信号入力部５は、メインモジュール２とサブモジュール３との間の送受信パケット数を数える。また、書込部７２は、処理部２３の内部ステータスが変化したタイミングで内部ステータスをメモリ８に書込むときに、送信パケット数及び受信パケット数をメモリ８に書込む。すなわち、書込部７２は、記録情報を内部ステータスのような内容記録情報と送信パケット数及び受信パケット数のようなカウント情報に分類して記録する。【選択図】図１
2015185145.tif 000002
【特許請求の範囲】
【請求項１】
データ処理を行う処理部と該処理部の動作履歴を記録する履歴記録部とを有するデータ処理装置において、
前記履歴記録部は、
履歴情報を記憶する記憶部と、
内容を記録する内容記録情報とカウントした値を記録するカウント情報に記録情報を分類して履歴情報を前記記憶部に書込む書込部と
を備えることを特徴とするデータ処理装置。
【請求項２】
前記書込部は、前記内容記録情報を書込むときに前記カウント情報を前記記憶部に書込むことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記書込部は、
前記内容記録情報を書込む第１の書込部と、
前記カウント情報を書込む第２の書込部と
を備えることを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記書込部は、
前記内容記録情報を書込む第１の書込部と、
前記第１の書込部が書込む内容記録情報が書込みの停止を指定する情報であるときに前記カウント情報を書込む第２の書込部と
を備えることを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記第２の書込部は、ユーザの指定したタイミングで前記カウント情報を書込むことを特徴とする請求項３記載のデータ処理装置。
【請求項６】
前記書込部は、カウント情報を複数に分類して書込むことを特徴とする請求項１記載のデータ処理装置。
【請求項７】
前記第２の書込部は、カウントした値が所定の閾値になると前記カウント情報を書込むことを特徴とする請求項３記載のデータ処理装置。
【請求項８】
データ処理を行う処理部と該処理部の動作履歴を記憶部に記録する履歴記録部とを有するデータ処理装置の制御方法において、
前記履歴記録部が、
記録情報のうち内容を記録する内容記録情報については内容の履歴を前記記憶部に書込み、
前記記録情報のうちカウントした値を記録するカウント情報についてはカウントした値の履歴を前記記憶部に書込む
ことを特徴とするデータ処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理装置の制御方法に関する。
【背景技術】
【０００２】
データ処理装置は、回路バグや回路故障、プログラムバグや外部デバイスからの規定外入力データなどにより、異常動作をすることがある。異常動作の原因を究明するためには、内部状態、内部回路間の信号、外部デバイスとの入出力信号等の履歴を記録しておき、解析することが必要である。また、性能向上等のための調整においても、内部回路や入出力信号の動作率などを把握するために履歴を記録して解析することは有用である。
【０００３】
通常、履歴データは、履歴記録用メモリに記録時刻とともに記録され、異常発生時等にメモリから読み出されて解析される。
【０００４】
なお、履歴データ収集に関連する技術として、障害発生時の原因調査用の詳細ログ情報と通常状態把握用の通常時ログ情報の２種類のログ情報をそれぞれ収集する従来技術がある。また、アプリケーション群で実行したイベント又は内部状態を表す操作プロセスログに、種々のパラメータに相当する識別子をそれぞれ記録して識別子記録・操作プロセスログを作成してログ記録メモリに記録する従来技術がある。また、解析対象プログラムの実行時のイベント情報に同じイベントパターンが発生するイベント発生回数を記録する従来技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１７２４０１号公報
【特許文献２】特開２００５−２７５９４２号公報
【特許文献３】特開２００９−２２３４８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
履歴記録用メモリは有限な容量であるため、データ処理装置は、メモリがフルになるとそこで履歴記録を停止するか、メモリの最初から順次上書きするしかない。従って、異常発生の原因を特定するのに必要な情報が未記録、もしくは上書きされて残らないという課題がある。
【０００７】
本発明は、１つの側面では、履歴データ量の削減を図ることを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示するデータ処理装置は、１つの態様において、データ処理を行う処理部と該処理部の動作履歴を記録する履歴記録部とを有する。前記履歴記録部は、履歴情報を記憶する記憶部と、内容を記録する内容記録情報とカウントした値を記録するカウント情報に記録情報を分類して履歴情報を前記記憶部に書込む書込部とを備える。
【発明の効果】
【０００９】
１実施態様によれば、履歴データ量を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るデータ処理装置の構成を示す図である。
【図２】図２は、実施例１に係る履歴記録のタイミングチャートである。
【図３】図３は、メモリ構造例を示す図である。
【図４】図４は、実施例２に係るデータ処理装置の構成を示す図である。
【図５】図５は、実施例２に係る履歴記録のタイミングチャートである。
【図６】図６は、実施例３に係るデータ処理装置の構成を示す図である。
【図７】図７は、実施例３に係る履歴記録のタイミングチャートである。
【図８】図８は、実施例４に係るデータ処理装置の構成を示す図である。
【図９】図９は、実施例５に係るデータ処理装置の構成を示す図である。
【図１０】図１０は、実施例６に係るデータ処理装置の構成を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するデータ処理装置及びデータ処理装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
【実施例１】
【００１２】
まず、実施例１に係るデータ処理装置の構成について説明する。図１は、実施例１に係るデータ処理装置の構成を示す図である。図１に示すように、データ処理装置１は、メインモジュール２と、サブモジュール３と、履歴記録モジュール４とを有する。
【００１３】
メインモジュール２は、データ処理を行うモジュールであり、例えば、ＣＰＵ（Central  Processing  Unit）モジュールである。メインモジュール２は、送信部２１と、受信部２２と、処理部２３と、外部受信部２４と、外部送信部２５と、内部ステータス保持部２６とを有する。
【００１４】
送信部２１は、サブモジュール３にパケットを送信する。受信部２２は、サブモジュール３が送信するパケットを受信する。処理部２３は、サブモジュール３や他の装置と通信を行いながらデータ処理を行う。外部受信部２４は、他のデータ処理装置など他の装置からパケットを受信する。外部送信部２５は、他のデータ処理装置など他の装置へパケットを送信する。内部ステータス保持部２６は、処理部２３の所定の個所の状態を示す内部ステータス値を保持する。
【００１５】
サブモジュール３は、メインモジュール２とパケットを送受信するモジュールであり、例えば、キャッシュメモリを搭載したメモリモジュールである。サブモジュール３は、受信部３１と、送信部３２とを有する。受信部３１は、メインモジュール２からパケットを受信する。送信部３２は、メインモジュール２へパケットを送信する。
【００１６】
履歴記録モジュール４は、内部ステータス保持部２６が保持するデータの履歴を記録する。また、履歴記録モジュール４は、送信部２１が送信する送信パケット及び受信部２２が受信する受信パケットをカウントし、送信パケット数及び受信パケット数を記録する。履歴記録モジュール４は、インタフェース信号入力部５と、ステータス入力部６と、記録制御部７と、メモリ８とを有する。
【００１７】
インタフェース信号入力部５は、送信部２１が送信する送信パケットの信号を入力し、送信パケット数をカウントする。また、インタフェース信号入力部５は、受信部２２が受信する受信パケットの信号を入力し、受信パケット数をカウントする。インタフェース信号入力部５は、デコード部５１ａ及び５１ｂと、加算部５２ａ及び５２ｂと選択部５３ａ及び５３ｂと、カウンタ値記憶部５４ａ及び５４ｂとを有する。
【００１８】
デコード部５１ａは、受信部２２が受信した信号をデコードし、受信パケットを検出する。デコード部５１ａは、受信パケットを検出すると、加算部５２ａにカウンタ値に１を加えるように指示する。加算部５２ａは、デコード部５１ａからの加算指示に基づいてカウンタ値をカウンタ値記憶部５４ａから読み出して１を加える。選択部５３ａは、ステータス入力部６からリセット信号を受信しない場合は、加算部５２ａの出力をカウンタ値記憶部５４ａに書込み、ステータス入力部６からリセット信号を受信した場合は、カウンタ値をリセットして０をカウンタ値記憶部５４ａに書込む。カウンタ値記憶部５４ａは、受信部２２が受信した受信パケット数をカウンタ値として記憶する。
【００１９】
このように、デコード部５１ａ、加算部５２ａ、選択部５３ａ及びカウンタ値記憶部５４ａを用いて、インタフェース信号入力部５は、受信部２２が受信する受信パケットの数をカウントする。
【００２０】
デコード部５１ｂは、送信部２１が送信した信号をデコードし、送信パケットを検出する。デコード部５１ｂは、送信パケットを検出すると、加算部５２ｂにカウンタ値に１を加えるように指示する。加算部５２ｂは、デコード部５１ｂからの加算指示に基づいてカウンタ値をカウンタ値記憶部５４ｂから読み出して１を加える。選択部５３ｂは、ステータス入力部６からリセット信号を受信しない場合は、加算部５２ｂの出力をカウンタ値記憶部５４ｂに書込み、ステータス入力部６からリセット信号を受信した場合は、カウンタ値をリセットして０をカウンタ値記憶部５４ｂに書込む。カウンタ値記憶部５４ｂは、送信部２１が送信した送信パケット数をカウンタ値として記憶する。
【００２１】
このように、デコード部５１ｂ、加算部５２ｂ、選択部５３ｂ及びカウンタ値記憶部５４ｂを用いて、インタフェース信号入力部５は、送信部２１が送信する送信パケットの数をカウントする。
【００２２】
ステータス入力部６は、内部ステータス保持部２６が保持する内部ステータスを入力し、内部ステータスが変化すると、変化後の内部ステータスをメモリ８に書込むように記録制御部７に指示する。また、ステータス入力部６は、内部ステータスをメモリ８に書込むように記録制御部７に指示する際に、カウンタ値記憶部５４ａ及び５４ｂのリセットをインタフェース信号入力部５に指示する。なお、ここでは、ステータス入力部６は、カウンタ値記憶部５４ａ及び５４ｂのリセットをインタフェース信号入力部５に指示するが、カウンタ値記憶部５４ａ及び５４ｂのリセットを指示しなくてもよい。
【００２３】
ステータス入力部６は、一時記憶領域６１と、比較部６２とを有する。一時記憶領域６１は、内部ステータス保持部２６から読み出した内部ステータスを一時的に保持する。比較部６２は、内部ステータス保持部２６から読み出した内部ステータスと一時記憶領域６１が記憶する１回前の内部ステータスを比較し、変化した内部ステータスがあると変化後の内部ステータスをメモリ８に書込むように記録制御部７に指示する。
【００２４】
記録制御部７は、ステータス入力部６からの書込み指示に基づいて内部ステータスをメモリ８に書込む。また、記録制御部７は、ステータス入力部６から入力した内部ステータスをメモリ８に書込む際に、カウンタ値記憶部５４ａ及び５４ｂが記憶するカウンタ値をメモリ８に書込む。
【００２５】
記録制御部７は、タイムスタンプ生成部７１と、書込部７２と、結合部７３とを有する。タイムスタンプ生成部７１は、メモリ８に書込むデータに付加するタイムスタンプを生成する。書込部７２は、ステータス入力部６から入力した内部ステータスにタイムスタンプ、カウンタ値記憶部５４ａ及び５４ｂが記憶するカウンタ値を付加してメモリ８に書込む。
【００２６】
結合部７３は、ステータス入力部６から入力した内部ステータスとタイムスタンプとカウンタ値記憶部５４ａ及び５４ｂが記憶するカウンタ値を結合する。なお、ここでは、メモリ８に書込むデータにタイムスタンプを付加する場合について説明したが、タイムスタンプは省略してもよい。
【００２７】
メモリ８は、処理部２３の内部ステータス、送信カウント及び受信カウントをタイムスタンプとともに履歴データとして記憶する。ここで、送信カウントは、送信部２１が送信するパケットの数であり、受信カウントは、受信部２２が受信するパケットの数である。
【００２８】
次に、実施例１に係る履歴記録のタイミングについて説明する。図２は、実施例１に係る履歴記録のタイミングチャートである。図２に示すように、内部ステータスが０ｘ０００であるタイミングｔ1で送信信号からパケット０ｘ０００がデコードされると、送信カウントが０ｘ０から０ｘ１に変化する。ここで、「０ｘ」は、１６進数であることを表す。
【００２９】
そして、タイミングｔ2で内部ステータスが０ｘ０００から０ｘ３４２に変化すると、変化後の内部ステータス０ｘ３４２がタイムスタンプ、送信カウント０ｘ１と受信カウント０ｘ０とともにメモリ８に書込まれる。また、送信カウント及び受信カウントが０ｘ０にリセットされる。なお、図２では、タイムスタンプ、内部ステータス、送信カウント、受信カウントの順にメモリ８に書込まれている。また、タイムスタンプの値は簡略化して全て「タイム」としている。
【００３０】
そして、タイミングｔ3で受信信号からパケット０ｘ１００がデコードされると、受信カウントが０ｘ０から０ｘ１に変化する。そして、タイミングｔ4で内部ステータスが０ｘ３４２から０ｘ７４２に変化するとメモリ８に変化後の内部ステータス０ｘ７４２がタイムスタンプ、送信カウント０ｘ０と受信カウント０ｘ１とともにメモリ８に書込まれる。また、送信カウント及び受信カウントが０ｘ０にリセットされる。
【００３１】
そして、タイミングｔ5で送信信号からパケット０ｘ００１がデコードされると、送信カウントが０ｘ０から０ｘ１に変化し、タイミングｔ6で送信信号からパケット０ｘ００２がデコードされると、送信カウントが０ｘ１から０ｘ２に変化する。そして、タイミングｔ7で受信信号からパケット０ｘ１０１がデコードされると、受信カウントが０ｘ０から０ｘ１に変化する。
【００３２】
そして、タイミングｔ8で内部ステータスが０ｘ７４２から０ｘ３４２に変化すると、変化後の内部ステータス０ｘ３４２がタイムスタンプ、送信カウント０ｘ２と受信カウント０ｘ１とともにメモリ８に書込まれる。また、送信カウント及び受信カウントが０ｘ０にリセットされる。
【００３３】
上述してきたように、実施例１では、インタフェース信号入力部５は、メインモジュール２とサブモジュール３との間の送受信パケット数を数える。また、書込部７２は、処理部２３の内部ステータスが変化したタイミングで内部ステータスをメモリ８に書込むときに、送信パケット数及び受信パケット数をメモリ８に書込む。すなわち、書込部７２は、記録情報を内部ステータスのような内容記録情報と送信パケット数及び受信パケット数のようなカウント情報に分類して記録する。したがって、データ処理装置１は、全て内容記録情報として履歴をメモリ８に記録する場合と比較して、メモリ８の容量を減らすことができる。
【００３４】
なお、実施例１では、書込部７２が、タイムスタンプ、内部ステータス、送信カウント及び受信カウントを１つの単位としてまとめてメモリ８に書込む場合について説明した。しかし、書込部７２は、内部ステータス、送信カウント及び受信カウントそれぞれを単位としてメモリ８に書込むこともできる。
【００３５】
図３は、書込部７２が、内部ステータス、送信カウント及び受信カウントそれぞれを単位としてメモリ８に書込む場合のメモリ構造例を示す図である。図３に示すように、メモリ８は、１ワード（３２ビット）で１つの情報を記憶する。
【００３６】
１つの情報には、１２ビットのタイムスタンプと、８ビットの種別と、１２ビットのデータが含まれる。図３において、タイムはタイムスタンプである。種別は、０ｘ１０が送信カウントを示し、０ｘ００が内部ステータスを示し、０ｘ１１が受信カウントを示す。データは、種別が送信カウントであれば送信カウント値であり、種別が受信カウントであれば受信カウント値であり、種別が内部ステータスであれば内部ステータス値である。
【実施例２】
【００３７】
ところで、実施例１では、内部ステータスが変化したタイミングで記録をとる場合について説明したが、カウンタ値については内部ステータスが変化したタイミングと別のタイミングで記録をとるようにすることができる。そこで、実施例２では、内部ステータスが変化したタイミングと別の所定のタイミングでカウンタ値を記録する場合について説明する。
【００３８】
図４は、実施例２に係るデータ処理装置の構成を示す図である。なお、ここでは説明の便宜上、図１に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００３９】
図４に示すように、データ処理装置１ａは、図１に示した履歴記録モジュール４に代えて履歴記録モジュール４ａを有する。履歴記録モジュール４ａは、図１に示したインタフェース信号入力部５、ステータス入力部６及び記録制御部７に代えてそれぞれインタフェース信号入力部５ａ、ステータス入力部６ａ及び記録制御部７ａを有する。
【００４０】
インタフェース信号入力部５ａは、図１に示した選択部５３ａ及び５３ｂに代えて選択部５３ｃ及び５３ｄを有し、タイマ５５を有する。選択部５３ｃ及び５３ｄは、図１に示した比較部６２からではなくタイマ５５からリセット指示を受け取る。タイマ５５は、所定の時間が経過すると記録制御部７ａに対してカウンタ値をメモリ８に書込むように指示するとともに選択部５３ｃ及び５３ｄにリセットを指示し、自身もリセットする。
【００４１】
ステータス入力部６ａは、図１に示した比較部６２に代えて比較部６２ａを有する。比較部６２ａは、比較部６２と比較して、選択部５３ａ及び５３ｂにリセット指示を出力しない。
【００４２】
記録制御部７ａは、図１に示したタイムスタンプ生成部７１、書込部７２及び結合部７３に代えてそれぞれタイムスタンプ生成部７１ａ、書込部７２ｃ及び７２ｄ、及び結合部７３ｃ及び７３ｄを有する。また、記録制御部７ａは、ゼロ判定部７４ａ及び７４ｂと、論理和演算を行うＯＲ回路７５と、論理積演算を行うＡＮＤ回路７６とを有する。
【００４３】
タイムスタンプ生成部７１ａは、生成したタイムスタンプを結合部７３ｃ及び７３ｄに渡す。書込部７２ｃは、内部ステータスが変化したときにタイムスタンプを付加してメモリ８に書込む。また、書込部７２ｃは、内部ステータスを書込むときにデータが内部ステータスであることを示す１ビット情報を付加してメモリ８に書込む。書込部７２ｄは、タイマ５５から書込み指示があり、かつ、カウンタ値記憶部５４ａ及び５４ｂが記憶するカウンタ値のいずれかが０でない場合に、タイムスタンプを付加して２つのカウンタ値をメモリ８に書込む。
【００４４】
結合部７３ｃは、内部ステータスとタイムスタンプを結合し、結合部７３ｄは、２つのカウンタ値とタイムスタンプを結合する。ゼロ判定部７４ａ及び７４ｂは、それぞれカウンタ値記憶部５４ａ及び５４ｂが記憶するカウンタ値が０であるか否かを判定し、０でない場合に論理値「１」をＯＲ回路７５に出力する。ＯＲ回路７５は、２つのカウンタ値のいずれかが０でないときに論理値「１」をＡＮＤ回路７６に出力する。ＡＮＤ回路７６は、タイマ５５からの書込み指示があり、かつ、ＯＲ回路７５の出力が論理値「１」である場合に書込部７２ｄへ書込みを指示する。
【００４５】
次に、実施例２に係る履歴記録のタイミングについて説明する。図５は、実施例２に係る履歴記録のタイミングチャートである。図５に示すように、内部ステータスが０ｘ０００であるタイミングｔ1で送信信号からパケット０ｘ０００がデコードされると、送信カウントが０ｘ０から０ｘ１に変化する。そして、タイマ５５の値が１０になるタイミングｔ11で送信カウント及び受信カウントがメモリ８に書込まれる。このとき、タイムスタンプと、カウンタ値であることを示す１ビット情報「０」が付加される。また、タイマ５５、カウンタ値記憶部５４ａ及び５４ｂがリセットされる。
【００４６】
図５では、タイムスタンプ、カウンタ値であることを示す１ビット情報「０」、送信カウント、受信カウントの順にメモリ８に書込まれている。また、ここでは、タイマ５５の値が１０になるタイミングで送信カウント及び受信カウントがメモリ８に書込まれるが、タイマ５５の値が他の値になるタイミングでもよい。
【００４７】
そして、タイミングｔ2で内部ステータスが０ｘ０００から０ｘ３４２に変化すると、変化後の内部ステータス０ｘ３４２がメモリ８に書込まれる。このとき、タイムスタンプと、内部ステータスであることを示す１ビット情報「１」が付加される。なお、図５では、タイムスタンプ、内部ステータスであることを示す１ビット情報「１」、内部ステータスの順にメモリ８に書込まれている。
【００４８】
そして、タイミングｔ3で受信信号からパケット０ｘ１００がデコードされると、受信カウントが０ｘ０から０ｘ１に変化する。そして、タイミングｔ4で内部ステータスが０ｘ３４２から０ｘ７４２に変化するとメモリ８に変化後の内部ステータス０ｘ７４２がタイムスタンプ、内部ステータスであることを示す１ビット情報「１」とともにメモリ８に書込まれる。
【００４９】
そして、タイミングｔ5で送信信号からパケット０ｘ００１がデコードされると、送信カウントが０ｘ０から０ｘ１に変化する。そして、タイマ５５の値が１０になるタイミングｔ12で送信カウント及び受信カウントがメモリ８に書込まれる。このとき、タイマ５５、カウンタ値記憶部５４ａ及び５４ｂがリセットされる。
【００５０】
そして、タイミングｔ6で送信信号からパケット０ｘ００２がデコードされると、送信カウントが０ｘ０から０ｘ１に変化する。そして、タイミングｔ7で受信信号からパケット０ｘ１０１がデコードされると、受信カウントが０ｘ０から０ｘ１に変化する。
【００５１】
そして、タイミングｔ8で内部ステータスが０ｘ７４２から０ｘ３４２に変化すると、変化後の内部ステータス０ｘ３４２がタイムスタンプ、内部ステータスであることを示す１ビット情報「１」とともにメモリ８に書込まれる。そして、タイマ５５の値が１０になるタイミングｔ13で送信カウント及び受信カウントがメモリ８に書込まれる。このとき、タイマ５５、カウンタ値記憶部５４ａ及び５４ｂがリセットされる。
【００５２】
上述してきたように、実施例２では、書込部７２ｃは、内部ステータスが変化したタイミングで内部ステータスをメモリ８に書込む。一方、書込部７２ｄは、タイマ５５から書込み指示があり、かつ、カウンタ値記憶部５４ａ及び５４ｂが記憶するカウンタ値のいずれかが０でない場合に、２つのカウンタ値をメモリ８に書込む。したがって、データ処理装置１ａは、全て内容記録情報として履歴をメモリ８に記録する場合と比較して、メモリ８の容量を減らすことができる。
【００５３】
なお、ここでは、２つのカウンタ値のいずれかが０でない場合に書込部７２ｄがカウンタ値をメモリ８に書込む場合について説明したが、書込部７２ｄはカウンタ値をチェックすることなくメモリ８に書込んでもよい。
【実施例３】
【００５４】
実施例３では、内部ステータスの記録を停止した時点でカウンタ値を記録する場合について説明する。図６は、実施例３に係るデータ処理装置の構成を示す図である。なお、ここでは説明の便宜上、図１及び図４に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００５５】
図６に示すように、データ処理装置１ｂは、図１に示した履歴記録モジュール４に代えて履歴記録モジュール４ｂを有する。履歴記録モジュール４ｂは、図１に示したインタフェース信号入力部５、ステータス入力部６及び記録制御部７に代えてそれぞれインタフェース信号入力部５ｂ、ステータス入力部６ｂ及び記録制御部７ｂを有する。また、履歴記録モジュール４ｂは、停止処理部９ｂを有する。
【００５６】
インタフェース信号入力部５ｂは、図１に示した加算部５２ａ及び５２ｂ、及びカウンタ値記憶部５４ａ及び５４ｂに代えてそれぞれ加算部５２ｃ及び５２ｄ、及びカウンタ値記憶部５４ｃ及び５４ｄを有する。また、インタフェース信号入力部５ｂは、図１に示した選択部５３ａ及び５３ｂを有さない。
【００５７】
加算部５２ｃ及び５２ｄは、それぞれ加算結果を直接カウンタ値記憶部５４ｃ及び５４ｄに書込む。実施例３では、カウンタ値は内部ステータスの記録が停止した時点だけメモリ８に書込まれるため、カウンタ値記憶部５４ｃ及び５４ｄを繰り返しリセットする必要がない。
【００５８】
ステータス入力部６ｂは、図４に示した一時記憶領域６１及び比較部６２ａに加えて、トリガデータ記憶部６３と、比較部６４とを有する。トリガデータ記憶部６３は、内部ステータスの記録を停止する内部ステータスをトリガデータとして記憶する。比較部６４は、内部ステータス保持部２６から入力した内部ステータスをトリガデータと比較し、トリガデータと一致すると、停止処理部９ｂに停止処理の実行を指示する。
【００５９】
記録制御部７ｂは、図１に示したタイムスタンプ生成部７１、書込部７２及び結合部７３に代えてそれぞれタイムスタンプ生成部７１ａ、書込部７２ｅ及び７２ｆ、及び結合部７３ｃ及び７３ｄを有する。また、記録制御部７ｂは、ＡＮＤ回路７７を有する。
【００６０】
書込部７２ｅは、内部ステータスが変化したときで、かつ、停止処理部９ｂが停止処理を行うまで内部ステータスにタイムスタンプを付加してメモリ８に書込む。また、書込部７２ｅは、内部ステータスを書込むときにデータが内部ステータスであることを示す１ビット情報を付加してメモリ８に書込む。書込部７２ｆは、停止処理部９ｂから書込み指示があると、タイムスタンプを付加して２つのカウンタ値をメモリ８に書込む。ＡＮＤ回路７７は、ステータス入力部６ｂからの書込み指示と、停止処理部９ｂからのレベル信号のＡＮＤをとって書込部７２ｅに出力する。
【００６１】
停止処理部９ｂは、比較部６４から停止処理の実行を指示されると、書込部７２ｆに２つのカウンタ値の記録を指示するとともに、書込部７２ｅに書込みの停止を指示する。停止処理部９ｂは、ラッチ９１と、ＮＯＴ回路９２とを有する。ラッチ９１は、パルス信号である停止処理実行指示を入力して論理値「１」を保持する。ＮＯＴ回路９２は、ラッチ９１が保持する論理値を反転してレベル信号でＡＮＤ回路７７に出力する。
【００６２】
次に、実施例３に係る履歴記録のタイミングについて説明する。図７は、実施例３に係る履歴記録のタイミングチャートである。図７に示すように、内部ステータスが０ｘ０００であるタイミングｔ1で送信信号からパケット０ｘ０００がデコードされると、送信カウントが０ｘ０から０ｘ１に変化する。
【００６３】
そして、タイミングｔ2で内部ステータスが０ｘ０００から０ｘ３４２に変化すると、変化後の内部ステータス０ｘ３４２がメモリ８に書込まれる。このとき、タイムスタンプと、内部ステータスであることを示す１ビット情報「１」が付加される。
【００６４】
そして、タイミングｔ3で受信信号からパケット０ｘ１００がデコードされると、受信カウントが０ｘ０から０ｘ１に変化する。そして、タイミングｔ4で内部ステータスが０ｘ３４２から０ｘ７４２に変化すると、メモリ８に変化後の内部ステータス０ｘ７４２がタイムスタンプ、内部ステータスであることを示す１ビット情報「１」とともにメモリ８に書込まれる。
【００６５】
そして、タイミングｔ5で送信信号からパケット０ｘ００１がデコードされると、送信カウントが０ｘ１から０ｘ２に変化する。そして、タイミングｔ6で送信信号からパケット０ｘ００２がデコードされると、送信カウントが０ｘ２から０ｘ３に変化する。そして、タイミングｔ7で受信信号からパケット０ｘ１０１がデコードされると、受信カウントが０ｘ１から０ｘ２に変化する。
【００６６】
そして、タイミングｔ8で内部ステータスが０ｘ７４２から０ｘ３４５に変化すると、変化後の内部ステータス０ｘ３４５がタイムスタンプ、内部ステータスであることを示す１ビット情報「１」とともにメモリ８に書込まれる。ここで、内部ステータス値０ｘ３４５はトリガデータと一致し、停止処理の実行を指示する停止パルスが停止処理部９ｂへ出力される。そして、送信カウント及び受信カウントがタイムスタンプ及びカウンタ値であることを示す１ビット情報「０」とともにメモリ８に書込まれる。
【００６７】
上述してきたように、実施例３では、書込部７２ｅは、内部ステータスの値がトリガデータと一致するまで、内部ステータスが変化したタイミングで内部ステータスをメモリ８に書込む。一方、書込部７２ｆは、内部ステータスの値がトリガデータと一致すると、２つのカウンタ値をメモリ８に書込む。したがって、データ処理装置１ｂは、全て内容記録情報として履歴をメモリ８に記録する場合と比較して、メモリ８の容量を減らすことができる。
【００６８】
なお、実施例３では、内部ステータスの値がトリガデータと一致すると記録を停止する場合について説明した。しかし、ユーザの指示を受けた時、処理部２３等でデータ処理装置内部に用意されているエラー検出回路がエラーを検出した時、メモリ８がフルになった時などに記録を停止してもよい。
【実施例４】
【００６９】
実施例４では、送信カウント及び受信カウントのメモリ８への書込みタイミングをユーザ設定により行う場合について説明する。図８は、実施例４に係るデータ処理装置の構成を示す図である。なお、ここでは説明の便宜上、図４に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００７０】
図８に示すように、データ処理装置１ｃは、図４に示した履歴記録モジュール４ａに代えて履歴記録モジュール４ｃを有する。履歴記録モジュール４ｃは、図４に示したインタフェース信号入力部５ａに代えてインタフェース信号入力部５ｃを有する。また、履歴記録モジュール４ｃは、ユーザ設定レジスタ部１０ｃを有する。
【００７１】
インタフェース信号入力部５ｃは、図４に示したインタフェース信号入力部５ａと比較して、選択部５３ｃ及び５３ｄに代えて選択部５３ｅ及び５３ｆを有する。また、インタフェース信号入力部５ｃは、タイマ５５に代えてタイマ５８、閾値判定部５９及び選択部５９ａを有する。
【００７２】
選択部５３ｅ及び５３ｆはリセット指示を選択部５９ａから受け取る。タイマ５８は、所定の時間が経過すると選択部５９ａにカウンタ値の書込み指示を出す。閾値判定部５９は、カウンタ値記憶部５４ａ及び５４ｂが記憶するカウンタ値のいずれかが所定の閾値に達したか否かを判定し、いずれかが所定の閾値に達すると選択部５９ａにカウンタ値の書込み指示を出す。選択部５９ａは、ユーザ設定レジスタ部１０ｃの設定に基づきタイマ５８又は閾値判定部５９の出力を選択して、記録制御部７ａにカウンタ値の書込み指示を出すとともに、選択部５３ｅ及び５３ｆにリセット指示を出す。
【００７３】
ユーザ設定レジスタ部１０ｃは、ユーザにより設定されるレジスタとして、カウンタ値記録タイミング設定レジスタ１１を有する。カウンタ値記録タイミング設定レジスタ１１は、カウンタ値を記録するタイミングをタイマ５８で指定するか閾値判定部５９で指定するかを記憶する。
【００７４】
このように、ユーザは、カウンタ値をメモリ８に記録するタイミングを設定することによって、ユーザが必要とするタイミングでのカウンタ値を記録することができる。なお、実施例４では、選択部５９ａは、２つのタイミング指定から選択するが、３つ以上のタイミング指定から選択してもよい。また、カウンタ値をメモリ８に記録するタイミングだけでなく、内容記録情報として記録する回路とカウント情報として記録する回路を両方用意し、どちらの回路を使用するかをユーザ設定で選択可能としてもよい。
【実施例５】
【００７５】
実施例５では、送信パケットを種類別にカウントする場合について説明する。図９は、実施例５に係るデータ処理装置の構成を示す図である。なお、ここでは説明の便宜上、図１に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００７６】
図９に示すように、データ処理装置１ｄは、図１に示した履歴記録モジュール４に代えて履歴記録モジュール４ｄを有する。履歴記録モジュール４ｄは、図１に示したインタフェース信号入力部５及び記録制御部７に代えてそれぞれインタフェース信号入力部５ｄ及び記録制御部７ｄを有する。
【００７７】
インタフェース信号入力部５ｄは、デコード部５１ｂに代えてデコード部５１ｃを有する。また、インタフェース信号入力部５ｄは、加算部５２ｂ、選択部５３ｂ及びカウンタ値記憶部５４ｂに代えてそれぞれ加算部５２ｇ、５２ｈ及び５２ｉ、選択部５３ｇ、５３ｈ及び５３ｉ、及びカウンタ値記憶部５４ｇ、５４ｈ及び５４ｉを有する。デコード部５１ｃは、デコードしたパケットの種別がｗｒｉｔｅであるか、ｒｅａｄであるか及びｓｙｎｃであるかに基づいてそれぞれ加算部５２ｇ、５２ｈ及び５２ｉに加算指示を出力する。
【００７８】
加算部５２ｇ、選択部５３ｇ及びカウンタ値記憶部５４ｇは、種別がｗｒｉｔｅである送信パケットをカウントする。加算部５２ｈ、選択部５３ｈ及びカウンタ値記憶部５４ｈは、種別がｒｅａｄである送信パケットをカウントする。加算部５２ｉ、選択部５３ｉ及びカウンタ値記憶部５４ｉは、種別がｓｙｎｃである送信パケットをカウントする。
【００７９】
ここで、サブモジュール３がキャッシュを備えた記憶装置制御モジュールである場合、ｒｅａｄとは記憶装置またはキャッシュから該当アドレスのデータを読み出すものであり、ｗｒｉｔｅとは同じく該当アドレスのデータを書込むものである。また、ｓｙｎｃとはキャッシュ上に一時記録されたデータを記憶装置に書込み同期させるものである。
【００８０】
記録制御部７ｄは、送信パケットについて種別毎にカウンタ値をメモリ８に書込む。記録制御部７ｄは、結合部７３に代えて結合部７３ｅを有する。結合部７３ｅは、内部ステータスとタイムスタンプとカウンタ値記憶部５４ａ、５４ｇ、５４ｈ及び５４ｉが記憶するカウンタ値を結合する。
【００８１】
このように、送信パケットを種類別にカウントすることによって、ユーザはより詳細な解析を行うことができる。なお、比較部６２は、選択部５３ｇ、５３ｈ及び５３ｉにリセット指示を出す。
【実施例６】
【００８２】
実施例６では、送信カウント又は受信カウントが所定の閾値に達した時にカウンタ値をメモリ８に書込む場合について説明する。図１０は、実施例６に係るデータ処理装置の構成を示す図である。なお、ここでは説明の便宜上、図４に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００８３】
図１０に示すように、データ処理装置１ｅは、図４に示した履歴記録モジュール４ａに代えて履歴記録モジュール４ｅを有する。履歴記録モジュール４ｅは、図４に示したインタフェース信号入力部５ａ及び記録制御部７ａに代えてそれぞれインタフェース信号入力部５ｅ及び記録制御部７ｅを有する。
【００８４】
インタフェース信号入力部５ｅは、図４に示した選択部５３ｃ及び５３ｄに代えて選択部５３ｊ及び５３ｋを有する。また、インタフェース信号入力部５ｅは、閾値記憶部５９ｂ及び５９ｃと、比較回路５９ｄ及び５９ｅと、ＯＲ回路５９ｆとを有する。
【００８５】
選択部５３ｊ及び５３ｋは、リセット信号をＯＲ回路５９ｆから受け取る。閾値記憶部５９ｂ及び５９ｃは、それぞれ送信カウント及び受信カウントをメモリ８に書込むタイミングを指定する閾値を記憶する。比較回路５９ｄ及び５９ｅは、カウンタ値記憶部５４ａ及び５４ｂが記憶するカウンタ値をそれぞれ閾値記憶部５９ｂ及び５９ｃと比較してカウンタ値が閾値よりも大きい場合に、２つのカウンタ値の書込み及びリセットを指示する。ＯＲ回路５９ｆは、比較回路５９ｄ及び５９ｅの出力のＯＲをとって、カウンタ値の書込み及びリセットを指示する。
【００８６】
記録制御部７ｅは、図４に示した書込部７２ｄに代えて書込部７２ｇを有する。また、記録制御部７ｅは、図４に示した記録制御部７ａが有するゼロ判定部７４ａ及び７４ｂ、ＯＲ回路７５、及びＡＮＤ回路７６を有しない。書込部７２ｇは、ＯＲ回路５９ｆから書込み指示を受け取ってタイムスタンプとともに送信カウント及び受信カウントをメモリ８に書込む。
【００８７】
このように、カウンタ値が特定の閾値を超えた場合に記録をとることによって、ユーザは一定の送受信が行われたタイミングを知ることができる。なお、ここでは、送信カウント又は受信カウントのいずれかが閾値を超えた場合に、送信カウント及び受信カウントの両方を記録する場合について説明したが、送信カウント又は受信カウントのいずれかが閾値を超えた場合に、超えた方のみを記録してもよい。また、閾値記憶部５９ｂ及び５９ｃは、同じ値を記憶しても異なる値を記憶してもよい。
【００８８】
なお、実施例１〜６では、１つの内部ステータスの履歴を記録する場合について説明したが、本発明はこれに限定されるものではなく、複数の内部ステータスの履歴を記録する場合にも同様に適用することができる。
【００８９】
また、内容情報記録及びカウント情報として分類する例としては、通信部のアナログ回路の受信設定が受信信号の品質により動的に自動設定される場合、受信設定値を内容情報記録とし、受信したパケットにエラーを検出した回数をカウント情報とすることができる。エラーがいつ起こったかを随時記録する必要はなく、エラーはエラー率が分かれば十分なケースがあり、そのときに本発明を適用すると有用である。
【００９０】
また別の例として、通信相手のモジュールのメイン処理部へ情報を渡すトランザクションパケットと、通信送達を確認するために受信したパケットへの受信応答パケット（Ack）を用いる通信の場合がある。トランザクションパケットは内容が必要であるが、受信応答パケットはトランザクションパケットとの数があっていれば問題ないと判定できるため数のみ必要で詳細は不要な場合である。この場合、受信応答パケットをカウント情報とすることで履歴用メモリを節約できる。
【００９１】
更に別の例として、通信部において通信相手と通信路を確立するための通信トレーニング（ハンドシェイク）をする場合がある。通信トレーニングのステート（例えば、PCI  Express規格のLTSSMステート）を内容情報記録とし、各ステートで送信しあうトレーニング用パケット（例えば、PCI  Express規格のトレーニングシーケンスオーダーセット）をカウント情報とすることも考えらえる。ここで、LTSSMステートとは、Link  Training  Status  State  Machineのステートである。
【符号の説明】
【００９２】
１，１ａ，１ｂ，１ｃ，１ｄ，１ｅ    データ処理装置
２    メインモジュール
３    サブモジュール
４，４ａ，４ｂ，４ｃ，４ｄ，４ｅ    履歴記録モジュール
５，５ａ，５ｂ，５ｃ，５ｄ，５ｅ    インタフェース信号入力部
６，６ａ，６ｂ    ステータス入力部
７，７ａ，７ｂ，７ｄ，７ｅ    記録制御部
８    メモリ
９ｂ    停止処理部
１０ｃ    ユーザ設定レジスタ部
１１    カウンタ値記録タイミング設定レジスタ
２１    送信部
２２    受信部
２３    処理部
２４    外部受信部
２５    外部送信部
２６    内部ステータス保持部
３１    受信部
３２    送信部
５１ａ，５１ｂ，５１ｃ    デコード部
５２ａ，５２ｂ，５２ｃ，５２ｄ，５２ｇ，５２ｈ，５２ｉ    加算部
５３ａ，５３ｂ，５３ｃ，５３ｄ，５３ｅ，５３ｆ，５３ｇ，５３ｈ，５３ｉ，５３ｊ，５３ｋ，５９ａ    選択部
５４ａ，５４ｂ，５４ｃ，５４ｄ，５４ｇ，５４ｈ，５４ｉ    カウンタ値記憶部
５５，５８    タイマ
５９ｂ，５９ｃ    閾値記憶部
５９ｄ，５９ｅ    比較回路
５９ｆ，７５    ＯＲ回路
６１    一時記憶領域
６２，６２ａ    比較部
６３    トリガデータ記憶部
６４    比較部
７１，７１ａ    タイムスタンプ生成部
７２，７２ｃ，７２ｄ，７２ｅ，７２ｆ，７２ｇ    書込部
７３，７３ｃ，７３ｄ，７３ｅ    結合部
７４ａ，７４ｂ    ゼロ判定部
７６，７７    ＡＮＤ回路
９１    ラッチ
９２    ＮＯＴ回路
【図１】
2015185145.tif 000003
【図２】
2015185145.tif 000004
【図３】
2015185145.tif 000005
【図４】
2015185145.tif 000006
【図５】
2015185145.tif 000007
【図６】
2015185145.tif 000008
【図７】
2015185145.tif 000009
【図８】
2015185145.tif 000010
【図９】
2015185145.tif 000011
【図１０】
2015185145.tif 000012