(57)【要約】  データを通信する複数のＣＰＵを備える情報処理装置にて、ＣＰＵが、受信した他のＣＰＵから送信されたデータよりもサイズが小さい加工データを生成し、受信したデータに含まれる制御情報に基づき、受信データ又は加工データのいずれかを選択してログ記憶部へ書き込むようにして、記録するログ情報の量の低減を図る。
2013098954.tif 000002
【特許請求の範囲】
【請求項１】
バスを介してデータを通信する複数の演算処理装置を備える情報処理装置において、
前記複数の演算処理装置のうちのいずれかの演算処理装置は、
他の演算処理装置が送信したデータを受信する受信部と、
前記受信部が受信した受信データに基づき、前記受信部が受信したデータよりもサイズが小さい加工データを生成する生成部と、
前記受信データに含まれる制御情報に基づき、前記受信データ又は前記加工データのいずれかを選択する選択部と、
前記選択部が選択した選択データを記憶部へ書き込む制御部とを有することを特徴とする情報処理装置。
【請求項２】
前記選択部は、
前記選択部を有する演算処理装置を識別する識別情報と、前記他の演算処理装置を特定する識別情報が一致する場合、前記受信データを選択するとともに、前記他の演算処理装置を特定する識別情報が一致しない場合、前記加工データを選択することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記選択部は、
前記選択部を有する演算処理装置を識別する識別情報と、前記データを受信した演算処理装置を特定する識別情報が一致する場合、前記受信データを選択するとともに、前記データを受信した演算処理装置を特定する識別情報が一致しない場合、前記加工データを選択することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記加工データは、
前記受信データに含まれるデータ本体について、排他的論理和演算を行った結果であることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記加工データは、
前記受信データに含まれるデータ本体について、生成した巡回冗長符号であることを特徴とする請求項１記載の情報処理装置。
【請求項６】
バスを介してデータを通信する他の演算処理装置に接続する演算処理装置において、
前記他の演算処理装置が送信したデータを受信する受信部と、
前記受信部が受信した受信データに基づき、前記受信部が受信したデータよりもサイズが小さい加工データを生成する生成部と、
前記受信データに含まれる制御情報に基づき、前記受信データ又は前記加工データのいずれかを選択する選択部と、
前記選択部が選択した選択データを記憶部へ書き込む制御部とを有することを特徴とする演算処理装置。
【請求項７】
前記選択部は、
前記選択部を有する演算処理装置を識別する識別情報と、前記他の演算処理装置を特定する識別情報が一致する場合、前記受信データを選択するとともに、前記他の演算処理装置を特定する識別情報が一致しない場合、前記加工データを選択することを特徴とする請求項６記載の演算処理装置。
【請求項８】
前記選択部は、
前記選択部を有する演算処理装置を識別する識別情報と、前記データを受信した演算処理装置を特定する識別情報が一致する場合、前記受信データを選択するとともに、前記データを受信した演算処理装置を特定する識別情報が一致しない場合、前記加工データを選択することを特徴とする請求項６記載の演算処理装置。
【請求項９】
前記加工データは、
前記受信データに含まれるデータ本体について、排他的論理和演算を行った結果であることを特徴とする請求項６記載の演算処理装置。
【請求項１０】
前記加工データは、
前記受信データに含まれるデータ本体について、生成した巡回冗長符号であることを特徴とする請求項６記載の演算処理装置。
【請求項１１】
バスを介してデータを通信する複数の演算処理装置を備える情報処理装置の制御方法において、
前記演算処理装置が有する受信部が、他の演算処理装置が送信したデータを受信し、
前記演算処理装置が有する生成部が、前記受信部が受信した受信データに基づき、前記受信部が受信したデータよりもサイズが小さい加工データを生成し、
前記演算処理装置が有する選択部が、前記受信データに含まれる制御情報に基づき、前記受信データ又は前記加工データのいずれかを選択し、
前記演算処理装置が有する制御部が、前記選択部が選択した選択データを記憶部へ書き込むことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、演算処理装置及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
信頼性が求められる情報処理装置では高度な耐故障化がなされる一方で、万が一故障が発生した場合の故障の解析が必要である。例えば、１つのシステムボード上に複数の演算処理装置としてのプロセッサ装置が通信可能なようにして搭載された情報処理装置であるマルチプロセッサシステムの故障解析では、プロセッサ装置間の通信内容を示すログ等が使用される。マルチプロセッサシステムにおいて、プロセッサ装置間の通信はパケット単位で行われ、送受信されるパケットの内容に応じてプロセッサ装置の状態が遷移し、システム全体の処理が進む。パケットは、例えば処理の種類等を示すヘッダ部とそれに付随するデータであるデータ部とを有する。【０００３】
パケットを用いて行われるプロセッサ装置間の通信に係るログは、例えばプロセッサ装置内部のＲＡＭ（Random Access Memory）等の記憶回路に順次上書きされていく。システムにおいて故障が発生したときには、その時点より前の一定期間分のログが記憶回路に記録されており、その記録されているログを参照することで故障原因を解析する。記録されているログに基づく故障解析では、被疑箇所を限定するために、まずエラーが発生したパケットの存在を追跡し、次にどのようにエラーが発生したかを解析する。【０００４】
プロセッサ装置間の通信に係るログは、プロセッサ装置の記憶領域に記録されるが、記憶領域が大きいほど、記録可能なログの量が大きくなり、より長い期間についてハードウェアの状態遷移を追跡できるため、故障解析の観点で有利である。しかし、一般にプロセッサ装置の記憶領域は、そのほとんどがプロセッサ装置の性能向上に用いられ、通信ログの記録用に与えられる記憶容量は小さい。ここで、通信ログに記録されないパケットが存在すると、故障箇所が絞り込めず故障解析が困難になる。また、パケットについて、どのように、エラーが発生したかを解析することで、例えば具体的な故障箇所の絞り込みが可能になり、具体的な故障内容の特定が容易になる。そのため、通信ログの記録装置には、故障の確実な検出及び故障箇所の特定が可能であることを前提として、多くのログを記録することが求められている。【０００５】
プロセッサ装置間の通信に係るログの記録手法としては、例えば監視対象のバスを介して送受信される有効なパケットをそのまますべて記録する手法（ロギング手法Ａ）がある。また、キャッシュメモリが異常状態に陥った場合に、それから長い時間が経過して初めて転送パケットの異常として検出されることがある。そこで、長期間のログを記録するために、監視対象のバスを介して送受信される有効なパケットのうち、ヘッダ部のみを記録する手法（ロギング手法Ｂ）が用いられることがある。【０００６】
また、下記特許文献１には、監視対象計算機のそれぞれで保存しているログ情報を収集し、監視対象計算機の構成又は状態の変更を時系列データとして編集するとともに、同一の事象内容データを略式データに置き換えて編集する情報収集装置を有する障害監視システムが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２９３３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、プロセッサ装置間でのパケット通信のログの記録に関しては、次の点が求められる。下記（１）〜（３）のすべてを満たすことで、長期間かつ通信異常を確実に検出可能なログを採取し記録できる。
（１）パケットが正確に、確実に、正しい順序で転送され、それが記録される点
（２）パケットのデータ部が正しく転送され、それが記録される点
（３）より小さな記憶領域で、より長い時間のログが記録可能である点【０００９】
前述のロギング手法Ａは、有効なパケットをそのまますべて記憶領域に書き込むので、前記（１）及び（２）の点を満たし、通信異常を確実に検出することが可能である。しかし、パケットをそのまますべてログとして書き込むために、記憶領域がすぐに満たされてしまい、古いパケットについての情報が順に消去されてしまう。すなわち、あるパケットについての情報がログに残っている期間が短い。記憶領域を増加させることも考えられるが、実装面積の制約や消費電力の増加等の問題がある。【００１０】
また、前述のロギング手法Ｂは、有効なパケットのヘッダ部のみを記憶領域に書き込むので、前記（１）及び（３）の点を満たし、長期間のログの記録が可能である。しかし、パケットのデータ部が記録されないので、データ部についての解析ができない。すなわち、ログ自体としては多くのパケットについて記録可能であるが解析の点では不十分な情報であり、パケットのデータ部に発生した通信異常を検出できない可能性がある。【００１１】
本発明は、ログとして記録するデータ量の低減を図ることを目的とする。
【課題を解決するための手段】
【００１２】
情報処理装置の一態様は、バスを介してデータを通信する複数の演算処理装置のうちのいずれかの演算処理装置が、他の演算処理装置が送信したデータを受信する受信部と、受信部が受信した受信データに基づき受信したデータよりもサイズが小さい加工データを生成する生成部と、受信データに含まれる制御情報に基づき、受信データ又は加工データのいずれかを選択する選択部と、選択部が選択した選択データを記憶部へ書き込む制御部とを有する。
【発明の効果】
【００１３】
記録するログ情報の量の低減を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施形態における情報処理装置の構成例を示す図である。
【図２】図２は、パケットフォーマットの一例を示す図である。
【図３】図３は、第１の実施形態におけるＣＰＵの構成例を示す図である。
【図４】図４は、第１の実施形態におけるログ記録部の構成例を示す図である。
【図５】図５は、第１の実施形態における選択回路の構成例を示す図である。
【図６】図６は、各ＣＰＵにてログとして記録される情報を説明するための図である。
【図７Ａ】図７Ａは、パケット転送前におけるログの記録状態の一例を示す図である。
【図７Ｂ】図７Ｂは、第１の実施形態におけるパケット転送後のログの記録状態の一例を示す図である。
【図７Ｃ】図７Ｃは、パケット転送後のログの記録状態の比較参考例を示す図である。
【図８】図８は、第２の実施形態における選択回路の構成例を示す図である。
【図９】図９は、第２の実施形態におけるパケット転送後のログの記録状態の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面に基づいて説明する。
【００１６】
（第１の実施形態）
本発明の第１の実施形態について説明する。
図１は、第１の実施形態における情報処理装置としてのマルチプロセッサシステムの構成例を示すブロック図である。マルチプロセッサシステム１０は、プログラム等に応じた処理を実行する複数のプロセッサ装置（例えば、ＣＰＵ：Central Processing Unit）を有し、これらプロセッサ装置が１つのシステムボード上に実装されている。
【００１７】
図１においては、プロセッサ装置（演算処理装置）としてＣＰＵ（Central
Processing Unit）−Ａ２０Ａ、ＣＰＵ−Ｂ２０Ｂ、ＣＰＵ−Ｃ２０Ｃ、及びＣＰＵ−Ｄ２０Ｄの４つのＣＰＵ（ＣＰＵチップ）を有するマルチプロセッサシステムを一例として示している。ＣＰＵ２０Ａ〜２０Ｄは、バス４０を介して通信可能に接続されている。なお、本実施形態におけるマルチプロセッサシステムにおいて、１つのシステムボード上に実装されるプロセッサ装置の数は４つに限定されるものではなく、任意である。また、ＣＰＵ２０Ａ〜２０Ｄの接続形態（トポロジー）は、図１に示した接続形態に限定されるものではない。
【００１８】
ＣＰＵ−Ａ２０ＡにはメモリＡ３０Ａが接続されており、ＣＰＵ−Ｂ２０ＢにはメモリＢ３０Ｂが接続されている。また、ＣＰＵ−Ｃ２０ＣにはメモリＣ３０Ｃが接続されており、ＣＰＵ−Ｄ２０ＤにはメモリＤ３０Ｄが接続されている。メモリ３０Ａ〜３０Ｄの各々は、ＣＰＵ２０Ａ〜２０Ｄでの処理に用いられるデータや処理結果等を記憶する。メモリ３０Ａ〜３０Ｄには、互いに異なる記憶領域がマッピングされている。
【００１９】
ＣＰＵ２０Ａ〜２０Ｄの各々は、メモリ３０Ａ〜３０Ｄのうち、自装置に直接接続されているメモリを管理する。また、ＣＰＵ２０Ａ〜２０Ｄの各々は、他のＣＰＵが管理するメモリに対してもアクセス可能である。すなわち、ＣＰＵ２０Ａ〜２０Ｄは、直接接続されているメモリのメモリ空間だけに限らず、他のＣＰＵに接続されているメモリも含むメモリ空間を参照可能である。他のＣＰＵが管理するメモリに対するアクセスは、バス４０を介したＣＰＵ間通信（プロセッサ装置間の通信）により実現される。ＣＰＵ間通信は、図２に一例を示すようなフォーマットのパケットを用いて行われる。
【００２０】
また、マルチプロセッサシステム１０では、複数のＣＰＵ２０Ａ〜２０Ｄからの参照を整理することでシステム全体のメモリ空間における一貫性を保ちながら複数の独立したＣＰＵで処理を並列に実行可能である。例えば、ＣＰＵ−Ｂ２０ＢがメモリＣ３０Ｃを参照する場合には、ＣＰＵ−Ｂ２０ＢからＣＰＵ−Ｃ２０Ｃへ要求（データ要求）が送られる。そして、ＣＰＵ−Ｃ２０Ｃは、要求されたデータをメモリＣ３０Ｃから読み出し、ＣＰＵ−Ｂ２０Ｂが使用中であることを記録した上で、データを含むパケットをＣＰＵ−Ｂ２０Ｂへ送出する。また、複数のＣＰＵが同時にデータの書き込みを要求した場合には競合が発生するので、その書き込み順を制御して一貫性の保たれたメモリ空間をＣＰＵへ見せる。
【００２１】
図２は、ＣＰＵ２０Ａ〜２０Ｄ間での通信において送受信されるパケットの一例を示す図である。パケットは、ヘッダ部及びデータ部を有する。ヘッダ部は、送信元ＩＤ部ＨＤ１、送信先ＩＤ部ＨＤ２、コマンド部ＨＤ３、及びパケットＩＤ部ＨＤ４を含む。
【００２２】
送信元ＩＤ部ＨＤ１は、パケットを送出したＣＰＵを一意に識別するための識別情報である送信元ＩＤ（ソースＩＤ）が記録されている。送信先ＩＤ部ＨＤ２は、パケットの送信先のＣＰＵを一意に識別するための識別情報である送信先ＩＤ（ディスティネーションＩＤ）が記録されている。送信元ＩＤ、送信先ＩＤは、例えばＣＰＵ番号である。コマンド部ＨＤ３は、このパケットによってどのような動作を行うかを指示する情報（コマンド）が格納されている。パケットＩＤ部ＨＤ４は、各パケットを識別するために割り当てられた識別情報（例えば、ＩＤ番号）が格納されている。
【００２３】
データ部は、コマンドに付随するデータが格納されている。データ長は、コマンドに従った長さを持つ。そのため、パケットの長さは、そのパケットのコマンドによって異なる。図２には、第１データＤＴ１、第２データＤＴ２、第３データＤＴ３、第４データＤＴ４、及び第５データＤＴ５を有するデータ長が５、つまりパケット長が６であるパケットを一例として示している。
【００２４】
図３は、本実施形態におけるＣＰＵの構成例を示すブロック図である。図１に示したＣＰＵ２０Ａ〜２０Ｄのそれぞれが、図３に示す構成を有する。ＣＰＵ２０は、処理部２１、キャッシュメモリ２２、メモリコントローラ２３Ａ、２３Ｂ、ルーティングユニット２４、及びログ記録部２５ＡＩ、２５ＡＯ、２５ＢＩ、２５ＢＯ、２５ＣＩ、２５ＣＯを有する。また、ＣＰＵ２０は、複数のメモリＩ／Ｏ（入出力）ポート２６Ａ、２６Ｂ、及び複数のＩ／Ｏ（入出力）ポート２７Ａ、２７Ｂ、２７Ｃを有する。なお、図３に示す構成は一例であって、ＣＰＵ２０が有するＣＰＵコア、メモリコントローラ、メモリＩ／Ｏポート、Ｉ／Ｏポート等の数は、図３に示すものに限定されることなく任意である。
【００２５】
処理部２１は、プログラム等に応じた演算処理を実行する演算処理部であり、例えば複数のＣＰＵコア２１Ａ、２１Ｂ、２１Ｃを有する。キャッシュメモリ２２は、ＣＰＵ２０外部のメモリ等のデータの一部がコピーされるキャッシュメモリである。ＣＰＵコア２１Ａ、２１Ｂ、２１Ｃは、キャッシュメモリ２２とそれぞれ接続されている。ＣＰＵコア２１Ａ、２１Ｂ、２１Ｃの各々は、演算処理等を行うとともに、その処理に必要なデータをキャッシュメモリ２２へ要求する。
【００２６】
メモリコントローラ２３Ａ、２３Ｂは、キャッシュメモリ２２及びメモリＩ／Ｏポート２６Ａ、２６Ｂと接続されている。メモリコントローラ２３Ａ、２３Ｂは、対応するメモリＩ／Ｏポート２６Ａ、２６Ｂに接続されているメモリに対するアクセスの要求（リクエスト）を受け、その要求に応じてメモリに対するデータの読み出しや書き込みを制御する。
【００２７】
ルーティングユニット２４は、キャッシュメモリ２２及びＩ／Ｏポート２７Ａ、２７Ｂ、２７Ｃと接続されている。ルーティングユニット２４は、要求（リクエスト）やデータを含むパケットに係る通信制御を行う。すなわち、ルーティングユニット２４は、入力される要求やデータを受信し、送信先の情報等に基づいて、受信した要求やデータをキャッシュメモリ２２及びＩ／Ｏポート２７Ａ、２７Ｂ、２７Ｃのうちのいずれかに送信する。Ｉ／Ｏポート２７Ａ、２７Ｂ、２７Ｃは、本ＣＰＵ２０と他のＣＰＵとを通信可能に接続するためのインタフェースである。Ｉ／Ｏポート２７Ａ、２７Ｂ、２７Ｃには、ＣＰＵ２０と同様の機能を有する不図示の他のＣＰＵが接続されている。
【００２８】
ログ記録部２５ＡＩ、２５ＡＯ、２５ＢＩ、２５ＢＯ、２５ＣＩ、２５ＣＯは、ルーティングユニット２４及びＩ／Ｏポート２７Ａ、２７Ｂ、２７Ｃ間のバスに接続される。Ｉ／Ｏポート毎に、Ｉ／Ｏポートからルーティングユニットへ要求やデータが伝送される入力側のバス、及びルーティングユニットからＩ／Ｏポートへ要求やデータが伝送される出力側のバスのそれぞれに対してログ記録部が設けられる。
【００２９】
ログ記録部２５ＡＩ、２５ＡＯ、２５ＢＩ、２５ＢＯ、２５ＣＩ、２５ＣＯの各々は、接続されたバスを監視して、そのバス上を送受信されるパケットについての情報を記録する。すなわち、ログ記録部２５ＡＩ、２５ＡＯ、２５ＢＩ、２５ＢＯ、２５ＣＩ、２５ＣＯの各々は、本ＣＰＵ２０とＩ／Ｏポートを介して接続される他のＣＰＵとの間におけるＣＰＵ間通信に係るログ情報（通信ログ）を記録する。
【００３０】
ＣＰＵ２０の動作について説明する。
ＣＰＵ２０において、処理部２１が処理の実行に必要なデータをキャッシュメモリ２２へ要求したときの動作は、以下のように行われる。処理部２１により要求されたデータがキャッシュメモリ２２に存在する場合（キャッシュヒット時）には、そのデータがキャッシュメモリ２２から読み出されて処理部２１に供給される。
【００３１】
一方、要求されたデータがキャッシュメモリ２２に存在しない場合（キャッシュミス時）には、キャッシュメモリ２２にて、要求されたデータがメモリＩ／Ｏポート２６Ａ、２６Ｂに接続されているメモリに存在するか否かが判断される。その結果、要求されたデータがメモリＩ／Ｏポート２６Ａ、２６Ｂに接続されているメモリにあると判断されると、キャッシュメモリ２２からの要求に応じてメモリコントローラ２３Ａ、２３Ｂがそのメモリに対するアクセスを行う。そして、メモリコントローラ２３Ａ、２３Ｂによりメモリから読み出されたデータが、キャッシュメモリ２２を介して処理部２１に供給される。
【００３２】
要求されたデータがメモリＩ／Ｏポート２６Ａ、２６Ｂに接続されているメモリにもないと判断すると、キャッシュメモリ２２は、処理部２１から要求されたデータを要求するためのパケットをルーティングユニット２４に送出する。このパケットは、処理部２１から要求されたデータを他のＣＰＵに接続されたメモリから読み出して取得するためのデータ要求に係るパケットである。
【００３３】
ルーティングユニット２４は、キャッシュメモリ２２からデータ要求に係るパケットを受けると、そのパケットが有する送信先の情報等に基づきパケットをＩ／Ｏポート２７Ａ〜２７Ｃのいずれかを介して送信する。ルーティングユニット２４は、送信したデータ要求に係るパケットに対する応答として、要求したデータを含むパケットをＩ／Ｏポート２７Ａ〜２７Ｃのいずれかを介して受信すると、そのパケットをキャッシュメモリ２２に送出する。そして、この受信したパケットに含まれるデータが、キャッシュメモリ２２を介して処理部２１に供給される。
【００３４】
例えば、データ要求に係るパケットがＩ／Ｏポート２７Ａを介して送信され、その応答としてのデータを含むパケットがＩ／Ｏポート２７Ａを介して受信されたとする。この場合、データ要求に係るパケットがルーティングユニット２４によりＩ／Ｏポート２７Ａを介して送信される際に、ログ記録部２５ＡＯは、データ要求に係るパケットについての情報を記録する。また、データを含むパケットがルーティングユニット２４によりＩ／Ｏポート２７Ａを介して受信される際に、ログ記録部２５ＡＩは、データを含むパケットについての情報を記録する。
【００３５】
また、ＣＰＵ２０において、メモリＩ／Ｏポート２６Ａ、２６Ｂに接続されているメモリに記憶されているデータを要求する他のＣＰＵからのデータ要求に係るパケットを受信したときの動作は、以下のように行われる。ルーティングユニット２４は、Ｉ／Ｏポート２７Ａ〜２７Ｃを介して他のＣＰＵからのデータ要求に係るパケットを受信すると、そのパケットをキャッシュメモリ２２に送出する。そして、そのデータ要求に係るパケットに基づくキャッシュメモリ２２からの要求に応じて、メモリコントローラ２３Ａ、２３Ｂがメモリに対するアクセスを行い、メモリから読み出されたデータがキャッシュメモリ２２に供給される。キャッシュメモリ２２は、データ要求に係るパケットの送信元を送信先とし、メモリから読み出されたデータを含むパケットをルーティングユニット２４に送出する。ルーティングユニット２４は、キャッシュメモリ２２からデータを含むパケットを受けると、そのパケットが有する送信先の情報等に基づきパケットをＩ／Ｏポート２７Ａ〜２７Ｃを介して送信する。
【００３６】
例えば、前述の動作において、データ要求に係るパケットがＩ／Ｏポート２７Ｂを介して受信され、その応答としてのデータを含むパケットがＩ／Ｏポート２７Ｂを介して送信されたとする。この場合、データ要求に係るパケットがルーティングユニット２４によりＩ／Ｏポート２７Ｂを介して受信される際に、ログ記録部２５ＢＩは、データ要求に係るパケットについての情報を記録する。また、データを含むパケットがルーティングユニット２４によりＩ／Ｏポート２７Ｂを介して送信される際に、ログ記録部２５ＢＯは、データを含むパケットについての情報を記録する。
【００３７】
また、ＣＰＵ２０において、データ要求に係るパケットやその応答としてのデータを含むパケット等を中継する、すなわち他のＣＰＵからのパケットを受信して、それを他のＣＰＵに対して送信するときの動作は、以下のように行われる。ルーティングユニット２４は、Ｉ／Ｏポート２７Ａ〜２７Ｃを介して他のＣＰＵからのパケットを受信すると、そのパケットが有する送信先の情報を確認する。そして、ルーティングユニット２４は、受信したパケットを送信先の情報に従ってＩ／Ｏポート２７Ａ〜２７Ｃを介して送信する。例えば、パケットが、Ｉ／Ｏポート２７Ａを介して受信されＩ／Ｏポート２７Ｂを介して送信されたとする。この場合、パケットが受信される際に、ログ記録部２５ＡＩは受信されたパケットについての情報を記録し、パケットが送信される際に、ログ記録部２５ＢＯは送信されるパケットについての情報を記録する。
【００３８】
ここで、従来、複数のＣＰＵを介してパケットが転送されるとき、転送経路上の各ＣＰＵのログにはログ情報として同一の情報が記録される。それに対して、本実施形態では、各々のＣＰＵが持つログを独立したものではなく、パケットの転送経路上の複数のＣＰＵに存在するログを１つのまとまったログとして認識し、重複部分が小さくなるようにログ記録部がログ情報を記録する。本実施形態におけるマルチプロセッサシステムでは、転送経路上の各々のＣＰＵが完全な情報をログとしてそれぞれ持つのではなく、転送経路上の一部のＣＰＵが完全な情報をログとして記録する。そして、他のＣＰＵでは情報を省略して記録し、ログ情報の記録に使用する記憶領域を低減する。なお、完全な情報とは、送受信されるパケットのヘッダ部とデータ部をそのまま含む情報である。これにより、（１）パケットが正確に、確実に、正しい順序で転送され、それが記録されている点、及び（２）パケットのデータ部が正しく転送され、それが記録されている点、をともに満足するようにログ情報が記録される。さらに、（３）より小さな記憶領域で、より長い時間のログが記録可能である点においても高い効果が得られる。
【００３９】
ただし、特定のＣＰＵのログに完全な情報が集中してしまうと、特定のＣＰＵのログしか活用されないので、完全な情報の記録は複数のＣＰＵに適当に分散することが望ましい。複数のＣＰＵを介したパケットの転送においては、転送されるパケットについての完全な情報は１回以上記録されていれば良い。そこで、本実施形態では、ログ記録部が、転送経路に係る情報を用いてパケットについての完全な情報を記録するか否かを決定する。例えば、ログ記録部は、パケットに含まれる送信元の情報や送信先の情報に基づいて、完全な情報を記録するか否かを決定する。そして、ログ記録部は、完全な情報を記録する場合にはパケットのヘッダ部とデータ部をそのまま記録し、情報を省略して記録する場合にはパケットのヘッダ部をそのまま記録し、データ部についてはデータ量を低減して記録する。
【００４０】
図４は、第１の実施形態におけるログ記録部の構成例を示すブロック図である。第１の実施形態におけるログ記録部は、パケットのヘッダ部の送信元ＩＤ部ＨＤ１に記録されている送信元ＩＤが、自ＣＰＵのＩＤと一致する場合には完全な情報を記録し、一致しない場合には情報を省略して記録するものである。図４においては、ルーティングユニット２４からＩ／Ｏポート２７へ要求やデータが伝送される出力側のバスに接続されているログ記録部２５を示している。なお、Ｉ／Ｏポートからルーティングユニットへ要求やデータが伝送される入力側のバスに接続されるログ記録部についても、Ｉ／Ｏポート及びルーティングユニット間のバス上での信号の伝送方向が逆になるだけで、その他の構成等は同様である。
【００４１】
ログ記録部２５は、記録回路５１、制御回路５２、データ部加工回路５３、及び選択回路５４を有する。記録回路５１は、ログとしての情報を記録し保持する回路である。記録回路５１は、例えばＲＡＭ（Random Access Memory）やレジスタファイルである。制御回路５２は、記録回路５１を制御し、記録回路５１に情報を書き込む記録タイミングを指示する。制御回路５２は、データバスＤＡＴＢ及びコントロールバスＣＴＬＢを伝送される信号に基づいて、書き込み制御信号ＷＣＴＬを生成し記録回路５１に出力する。
【００４２】
ここで、データバスＤＡＴＢは、伝送されるパケットを構成する実データ（ヘッダ部及びデータ部を含む）が伝送されるバスである。また、コントロールバスＣＴＬＢは、データバスＤＡＴＢを伝送されるデータに同期して、データ以外の制御情報が伝送されるバスである。コントロールバスＣＴＬＢを伝送される制御情報には、例えばパケットの先頭部分、データ部分、最終部分等を示す情報が含まれる。また、パケットが破損していることを示すような付随情報を制御情報に含んでいても良い。
【００４３】
データ部加工回路５３は、データバスＤＡＴＢ上を伝送されるデータを取り込み、そのデータに基づいて加工データを出力する。データ部加工回路５３は、パケットのデータが通信途中で変化したことが判定可能で、かつデータサイズが小さくなるように、取り込んだデータを加工して加工データとする。例えば、データ部加工回路５３は、特定サイクルのデータ部（例えばデータ部の最終部分）にＣＲＣ（Cyclic Redundancy Check：巡回冗長符号）等のデータが記憶されている場合には、パケットからその特定サイクルのデータ部を抽出して加工データとするようにしても良い。また、例えば、データ部加工回路５３は、対応するビット毎に各サイクルのデータ部の排他的論理和演算を行い、その演算結果を加工データとするようにしても良い。また、例えば、データ部加工回路５３は、各サイクルのデータ部に基づいてＣＲＣを生成し、それを加工データとするようにしても良い。
【００４４】
選択回路５４は、データバスＤＡＴＢ上を伝送されるデータ又はデータ部加工回路５３から出力される加工データのどちらを、記録回路５１に書き込みデータＷＤＴとして供給するかを選択する。すなわち、選択回路５４は、データバスＤＡＴＢ上を伝送されるデータ又はデータ部加工回路５３から出力される加工データを、記録回路５１に書き込むログ情報に選択する。選択回路５４は、データバスＤＡＴＢ及びコントロールバスＣＴＬＢを伝送される信号に基づいて、データ選択に係る選択信号ＳＥＬを出力する。
【００４５】
図５は、第１の実施形態における選択回路５４の構成例を示すブロック図である。判定部６１は、各バスＤＡＴＢ、ＣＴＬＢを伝送される信号に基づいて、データバスＤＡＴＢ上を伝送されるデータ又はデータ部加工回路５３から出力される加工データのどちらを書き込みデータＷＤＴとして出力させるかを判定する。判定部６１は、データバスＤＡＴＢ上を伝送されるデータがパケットの先頭（ヘッダ部）である場合には、書き込みデータＷＤＴとしてデータバスＤＡＴＢ上を伝送されるデータを出力させるよう選択信号ＳＥＬを出力する。
【００４６】
また、判定部６１は、パケットのヘッダ部の送信元ＩＤ部ＨＤ１に記録されている送信元ＩＤとレジスタ６２に格納されている自ＣＰＵのＩＤとを比較する。比較の結果、送信元ＩＤと自ＣＰＵのＩＤとが一致する場合には、判定部６１は、データバスＤＡＴＢ上を伝送されるパケットにおけるすべてのデータ部を書き込みデータＷＤＴとして出力させるよう選択信号ＳＥＬを出力する。一方、送信元ＩＤと自ＣＰＵのＩＤとが一致しない場合には、判定部６１は、データ部加工回路５３から出力される加工データを書き込みデータＷＤＴとして出力させるよう選択信号ＳＥＬを出力する。
【００４７】
以上のように第１の実施形態におけるログ記録部２５は、制御回路５２によりデータバスＤＡＴＢ及びコントロールバスＣＴＬＢを監視して、有効なパケットが伝送される場合には記録回路５１に対して情報の書き込み指示を通知する。記録回路５１は、制御回路５２から出力される書き込み制御信号ＷＣＴＬの指示する記録タイミングに従って、書き込みデータＷＤＴを保持する。書き込みデータＷＤＴは、選択回路５４から出力される選択信号ＳＥＬの指示に従って、データバスＤＡＴＢ上を伝送されるデータ又はデータ部加工回路５３から出力される加工データが出力される。
【００４８】
第１の実施形態では、パケットの送信元ＩＤと自ＣＰＵのＩＤとが一致する場合には、データバスＤＡＴＢ上を伝送されるパケットのヘッダ部及びデータ部のすべてがログ記録部２５にログ情報として記録される。一方、パケットの送信元ＩＤと自ＣＰＵのＩＤとが一致しない場合には、データバスＤＡＴＢ上を伝送されるパケットのヘッダ部及びデータ部加工回路５３から出力される加工データがログ記録部２５にログ情報として記録される。すなわち、送信元のＣＰＵの出力側のログ記録部２５にパケットについての完全な情報が記録され、以後に通過する各ＣＰＵのログ記録部２５には省略されたパケットについての情報が記録されていく。
【００４９】
これにより、故障により通信途中でパケットにエラーが発生した場合には加工データが途中で変化するので、各ＣＰＵに記録されたログを確認することにより加工データの変化地点で故障が発生したことがわかる。また、送信元のＣＰＵのログに記録されているパケットについての完全な情報を参照することで、どのようなパケットを送信したが判明する。また、各ＣＰＵのログを参照することで、異常が検出された時点からログが残されている時点までのＣＰＵ間通信の通信ログを再構築することができる。
【００５０】
本実施形態における具体的なログ情報の記録例を図６及び図７Ａ〜図７Ｃを参照して説明する。図６に示すように、図１に示したマルチプロセッサシステムでは、ＣＰＵ−Ａ２０Ａにおいて、ＣＰＵ−Ａ２０ＡからＣＰＵ−Ｂ２０Ｂへのパケット通信に係る情報（出力側）７１Ｏ及びＣＰＵ−Ｂ２０ＢからＣＰＵ−Ａ２０Ａへのパケット通信に係る情報（入力側）７１Ｉがログとして記録される。また、ＣＰＵ−Ａ２０Ａにおいて、ＣＰＵ−Ａ２０ＡからＣＰＵ−Ｃ２０Ｃへのパケット通信に係る情報（出力側）７２Ｏ及びＣＰＵ−Ｃ２０ＣからＣＰＵ−Ａ２０Ａへのパケット通信に係る情報（入力側）７２Ｉがログとして記録される。ＣＰＵ−Ｂ２０Ｂにおいて、ＣＰＵ−Ｂ２０ＢからＣＰＵ−Ａ２０Ａへのパケット通信に係る情報（出力側）７３Ｏ及びＣＰＵ−Ａ２０ＡからＣＰＵ−Ｂ２０Ｂへのパケット通信に係る情報（入力側）７３Ｉがログとして記録される。また、ＣＰＵ−Ｂ２０Ｂにおいて、ＣＰＵ−Ｂ２０ＢからＣＰＵ−Ｄ２０Ｄへのパケット通信に係る情報（出力側）７４Ｏ及びＣＰＵ−Ｄ２０ＤからＣＰＵ−Ｂ２０Ｂへのパケット通信に係る情報（入力側）７４Ｉがログとして記録される。
【００５１】
同様に、ＣＰＵ−Ｃ２０Ｃにおいて、ＣＰＵ−Ｃ２０ＣからＣＰＵ−Ａ２０Ａへのパケット通信に係る情報（出力側）７５Ｏ及びＣＰＵ−Ａ２０ＡからＣＰＵ−Ｃ２０Ｃへのパケット通信に係る情報（入力側）７５Ｉがログとして記録される。また、ＣＰＵ−Ｃ２０Ｃにおいて、ＣＰＵ−Ｃ２０ＣからＣＰＵ−Ｄ２０Ｄへのパケット通信に係る情報（出力側）７６Ｏ及びＣＰＵ−Ｄ２０ＤからＣＰＵ−Ｃ２０Ｃへのパケット通信に係る情報（入力側）７６Ｉがログとして記録される。ＣＰＵ−Ｄ２０Ｄにおいて、ＣＰＵ−Ｄ２０ＤからＣＰＵ−Ｃ２０Ｃへのパケット通信に係る情報（出力側）７７Ｏ及びＣＰＵ−Ｃ２０ＣからＣＰＵ−Ｄ２０Ｄへのパケット通信に係る情報（入力側）７７Ｉがログとして記録される。また、ＣＰＵ−Ｄ２０Ｄにおいて、ＣＰＵ−Ｄ２０ＤからＣＰＵ−Ｂ２０Ｂへのパケット通信に係る情報（出力側）７８Ｏ及びＣＰＵ−Ｂ２０ＢからＣＰＵ−Ｄ２０Ｄへのパケット通信に係る情報（入力側）７８Ｉがログとして記録される。
【００５２】
ここで、図４に示したような１サイクル分のヘッダ部と５サイクル分のデータ部とを有する６サイクル型のパケットがＣＰＵ−Ａ２０ＡからＣＰＵ−Ｄ２０ＤへＣＰＵ−Ｃ２０Ｃを介して転送されるときのログの記録状態の一例を示す。図７Ａ〜図７Ｃに示すように、パケットがＣＰＵ−Ａ→ＣＰＵ−Ｃ→ＣＰＵ−Ｄと転送されるとき、ＣＰＵ−Ａ２０Ａ、ＣＰＵ−Ｃ２０Ｃ、ＣＰＵ−Ｄ２０Ｄのそれぞれにおいてパケットについての情報がログとして記録される。ＣＰＵ−Ａ２０Ａでは、ＣＰＵ−Ａ２０ＡからＣＰＵ−Ｃ２０Ｃへ向かう方向（出力側）のログ記録部（ＣＰＵ−Ａ  Ａ→Ｃ：ＯＵＴ）にログが記録される。ＣＰＵ−Ｃ２０Ｃでは、ＣＰＵ−Ａ２０ＡからＣＰＵ−Ｃ２０Ｃへ向かう方向（入力側）のログ記録部（ＣＰＵ−Ｃ  Ａ→Ｃ：ＩＮ）、及びＣＰＵ−Ｃ２０ＣからＣＰＵ−Ｄ２０Ｄへ向かう方向（出力側）のログ記録部（ＣＰＵ−Ｃ  Ｃ→Ｄ：ＯＵＴ）にログが記録される。また、ＣＰＵ−Ｄ２０Ｄでは、ＣＰＵ−Ｃ２０ＣからＣＰＵ−Ｄ２０Ｄへ向かう方向（入力側）のログ記録部（ＣＰＵ−Ｄ  Ｃ→Ｄ：ＩＮ）にログが記録される。
【００５３】
図７Ａは、パケット転送前における各ログ記録部での記録状態の一例を模式的に示しており、過去にログとして記録された情報ＰＤＡＴＡ１〜ＰＤＡＴＡ１０が記録されている。なお、各ログ記録部においては、ログとして記録する情報が入力された順に上から順次プッシュされ、記憶領域を超えたものについては消去される（追い出される）ものとする。すなわち、図７Ａ〜図７Ｃに示す例においては下側に行くほど時間的に古い情報であることを意味する。
【００５４】
図７Ｂは、第１の実施形態におけるパケット転送後の各ログ記録部でのログの記録状態の一例を模式的に示している。第１の実施形態では、パケットの送信元ＩＤと自ＣＰＵのＩＤとが一致する場合にパケットについての完全な情報を記録し、それ以外ではパケットについての情報を省略して記録する。したがって、図７Ｂに示すように、送信元であるＣＰＵ−Ａ２０Ａの出力側のログ記録部（ＣＰＵ−Ａ  Ａ→Ｃ：ＯＵＴ）には、パケットのヘッダ部（ＨＥＡＤＥＲ）及びすべてのデータ部（ＤＡＴＡ１〜ＤＡＴＡ５）が記録される。一方、その他のＣＰＵ−Ｃ２０Ｃ及びＣＰＵ−Ｄ２０Ｄのログ記録部には、パケットのヘッダ部（ＨＥＡＤＥＲ）と、データ部（ＤＡＴＡ１〜ＤＡＴＡ５）に基づいた加工データＣＤＡＴＡとが記録される。
【００５５】
図７Ｃは、パケット転送後のログの記録状態の比較参考例を模式的に示しており、ログ記録部の各々がパケットのヘッダ部（ＨＥＡＤＥＲ）及びすべてのデータ部（ＤＡＴＡ１〜ＤＡＴＡ５）をログとして記録する例を示している。
【００５６】
図７Ｂ及び図７Ｃを比較すれば明らかなように、本実施形態においては、パケットの送信元ＩＤと自ＣＰＵのＩＤとが一致しない場合には、パケットのヘッダ部とデータ量を低減した加工データとをログとして記録するので、ログの記録に要する記憶容量（記憶領域）を低減することができる。また、ログとして記録するデータ量が少なくなるので、新たな情報の記録に伴って追い出される古い情報が少なくなり、記憶容量（記憶領域）の大きさが同様である場合には、より長い期間のログを記録することができる。また、パケットの送信元ＩＤとＩＤが一致するＣＰＵにはパケットのヘッダ部及びデータ部のすべてが記録されるので、それを参照することによりデータ部についての解析も可能となる。
【００５７】
第１の実施形態によれば、送受信されるパケットの送信元ＩＤと自ＣＰＵのＩＤとが一致する場合には、パケットについての完全な情報であるパケットのヘッダ部及びデータ部のすべてをログとして記録する。一方、送受信されるパケットの送信元ＩＤと自ＣＰＵのＩＤとが一致しない場合には、パケットについての情報を省略し、パケットのヘッダ部とデータ量を低減した加工データとをログとして記録する。これにより、ログとして記録するデータ量を低減し、より長い期間のログを記録することができる。したがって、長い期間についてハードウェアの状態遷移を追跡することが可能になり、例えば通信異常が発生した際に故障原因の解析が容易になる。また、送信元のＣＰＵには、パケットのすべてのデータ部が記録されているのでデータ部に係る故障解析も行うことができる。このように、より長い期間のログと、すべてのデータ部を含むパケットについての完全な情報を提供することが可能になり、故障の確実な検出及び故障箇所の特定が容易になる。
【００５８】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
前述した第１の実施形態は、送受信されるパケットの送信元ＩＤが自ＣＰＵのＩＤと一致する場合にはログ記録部がパケットについて完全な情報を記録し、一致しない場合には情報を省略して記録する。以下に説明する第２の実施形態は、送受信されるパケットの送信先ＩＤが自ＣＰＵのＩＤと一致する場合にはパケットについて完全な情報をログ記録部に記録し、一致しない場合には情報を省略して記録するものである。なお、第２の実施形態においては、ログ記録部２５が有する選択回路５４の構成が前述の第１の実施形態と異なる。第２の実施形態におけるその他の構成は第１の実施形態と同様であるので、それらについての説明は省略する。
【００５９】
図８は、第２の実施形態における選択回路５４の構成例を示すブロック図である。判定部８１は、各バスＤＡＴＢ、ＣＴＬＢを伝送される信号に基づいて、データバスＤＡＴＢ上を伝送されるデータ又はデータ部加工回路５３から出力される加工データのどちらを書き込みデータＷＤＴとして出力させるかを判定する。判定部８１は、データバスＤＡＴＢ上を伝送されるデータがパケットの先頭（ヘッダ部）である場合には、書き込みデータＷＤＴとしてデータバスＤＡＴＢ上を伝送されるデータを出力させるよう選択信号ＳＥＬを出力する。
【００６０】
また、判定部８１は、パケットのヘッダ部の送信先ＩＤ部ＨＤ２に記録されている送信先ＩＤとレジスタ８２に格納されている自ＣＰＵのＩＤとを比較する。比較の結果、送信先ＩＤと自ＣＰＵのＩＤとが一致する場合には、判定部８１は、データバスＤＡＴＢ上を伝送されるパケットにおけるすべてのデータ部を書き込みデータＷＤＴとして出力させるよう選択信号ＳＥＬを出力する。一方、送信先ＩＤと自ＣＰＵのＩＤとが一致しない場合には、判定部８１は、データ部加工回路５３から出力される加工データを書き込みデータＷＤＴとして出力させるよう選択信号ＳＥＬを出力する。
【００６１】
したがって、第２の実施形態では、パケットの送信先ＩＤと自ＣＰＵのＩＤとが一致する場合には、データバスＤＡＴＢ上を伝送されるパケットのヘッダ部及びデータ部のすべてがログ記録部２５にログ情報として記録される。一方、パケットの送信先ＩＤと自ＣＰＵのＩＤとが一致しない場合には、データバスＤＡＴＢ上を伝送されるパケットのヘッダ部及びデータ部加工回路５３から出力される加工データがログ記録部２５にログ情報として記録される。すなわち、送信先のＣＰＵの入力側のログ記録部２５にパケットについての完全な情報が記録され、それ以外の各ＣＰＵのログ記録部２５にはパケットについての省略された情報が記録される。これにより、故障により通信途中でパケットにエラーが発生した場合には加工データが途中で変化するので、各ＣＰＵに記録されたログを確認することにより加工データの変化地点で故障が発生したことがわかる。また、送信先のＣＰＵのログに記録されているパケットについての完全な情報を参照することで、どのようなパケットを送信したが判明する。また、各ＣＰＵのログを参照することで、異常が検出された時点からログが残されている時点までのＣＰＵ間通信の通信ログを再構築することができる。
【００６２】
図９は、パケットがＣＰＵ−Ａ→ＣＰＵ−Ｃ→ＣＰＵ−Ｄと転送されるとき、第２の実施形態におけるパケット転送後の各ログ記録部でのログの記録状態の一例を模式的に示している。図９に示すように第２の実施形態では、送信先であるＣＰＵ−Ｄ２０Ｄの入力側のログ記録部（ＣＰＵ−Ｄ  Ｃ→Ｄ：ＩＮ）に、パケットのヘッダ部（ＨＥＡＤＥＲ）及びすべてのデータ部（ＤＡＴＡ１〜ＤＡＴＡ５）が記録される。一方、その他のＣＰＵ−Ａ２０Ａ及びＣＰＵ−Ｃ２０Ｃのログ記録部には、パケットのヘッダ部（ＨＥＡＤＥＲ）と、データ部（ＤＡＴＡ１〜ＤＡＴＡ５）に基づいた加工データＣＤＡＴＡとが記録される。
【００６３】
このように第２の実施形態によれば、送受信されるパケットの送信先ＩＤと自ＣＰＵのＩＤとが一致する場合には、パケットについての完全な情報であるパケットのヘッダ部及びデータ部のすべてをログとして記録する。一方、送受信されるパケットの送信先ＩＤと自ＣＰＵのＩＤとが一致しない場合には、パケットについての情報を省略し、パケットのヘッダ部とデータ量を低減した加工データとをログとして記録する。これにより、第１の実施形態と同様の効果が得られる。すなわち、ログとして記録するデータ量を低減し、より長い期間のログを記録することができ、長い期間についてハードウェアの状態遷移を追跡することが可能になり、例えば通信異常が発生した際に故障原因の解析が容易になる。また、送信先のＣＰＵには、パケットのすべてのデータ部が記録されているのでデータ部に係る故障解析も行うことができる。このように、より長い期間のログと、すべてのデータ部を含むパケットについての完全な情報を提供することが可能になり、故障の確実な検出及び故障箇所の特定が容易になる。
【００６４】
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】
【００６５】
マルチプロセッサシステムにおけるプロセッサ装置間の通信にて、パケットが有する通信情報に応じて、パケットのデータ又は加工データをログ情報に選択して記録することが可能になる。ログ情報として記録するデータ量が低減し、限られた記憶領域で、長期間かつ通信異常を確実に検出可能なログ記録が可能になる。
【図１】
2013098954.tif 000003
【図２】
2013098954.tif 000004
【図３】
2013098954.tif 000005
【図４】
2013098954.tif 000006
【図５】
2013098954.tif 000007
【図６】
2013098954.tif 000008
【図７Ａ】
2013098954.tif 000009
【図７Ｂ】
2013098954.tif 000010
【図７Ｃ】
2013098954.tif 000011
【図８】
2013098954.tif 000012
【図９】
2013098954.tif 000013
【国際調査報告】
2013098954.tif 000014
2013098954.tif 000015
2013098954.tif 000016
2013098954.tif 000017