(19)【発行国】日本国特許庁(JP)
【公報種別】再公表特許(A1)
(11)【国際公開番号】WO2013098954
(43)【国際公開日】20130704
【発行日】20150430
(54)【発明の名称】情報処理装置、演算処理装置及び情報処理装置の制御方法
(51)【国際特許分類】
   G06F 11/34 20060101AFI20150403BHJP
【FI】
   !G06F11/34 B
【審査請求】有
【予備審査請求】未請求
【全頁数】21
【出願番号】2013551096
(21)【国際出願番号】JP2011080255
(22)【国際出願日】20111227
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,MD,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IS,JP,KE,KG,KM,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US,UZ,VC,VN
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
【住所又は居所】神奈川県川崎市中原区上小田中4丁目1番1号
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】中村 洋介
【住所又は居所】神奈川県川崎市中原区上小田中4丁目1番1号 富士通株式会社内
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA11
5B042MA05
5B042MA08
5B042MA19
5B042MC08
(57)【要約】
データを通信する複数のCPUを備える情報処理装置にて、CPUが、受信した他のCPUから送信されたデータよりもサイズが小さい加工データを生成し、受信したデータに含まれる制御情報に基づき、受信データ又は加工データのいずれかを選択してログ記憶部へ書き込むようにして、記録するログ情報の量の低減を図る。
【特許請求の範囲】
【請求項1】
バスを介してデータを通信する複数の演算処理装置を備える情報処理装置において、
前記複数の演算処理装置のうちのいずれかの演算処理装置は、
他の演算処理装置が送信したデータを受信する受信部と、
前記受信部が受信した受信データに基づき、前記受信部が受信したデータよりもサイズが小さい加工データを生成する生成部と、
前記受信データに含まれる制御情報に基づき、前記受信データ又は前記加工データのいずれかを選択する選択部と、
前記選択部が選択した選択データを記憶部へ書き込む制御部とを有することを特徴とする情報処理装置。
【請求項2】
前記選択部は、
前記選択部を有する演算処理装置を識別する識別情報と、前記他の演算処理装置を特定する識別情報が一致する場合、前記受信データを選択するとともに、前記他の演算処理装置を特定する識別情報が一致しない場合、前記加工データを選択することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記選択部は、
前記選択部を有する演算処理装置を識別する識別情報と、前記データを受信した演算処理装置を特定する識別情報が一致する場合、前記受信データを選択するとともに、前記データを受信した演算処理装置を特定する識別情報が一致しない場合、前記加工データを選択することを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記加工データは、
前記受信データに含まれるデータ本体について、排他的論理和演算を行った結果であることを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記加工データは、
前記受信データに含まれるデータ本体について、生成した巡回冗長符号であることを特徴とする請求項1記載の情報処理装置。
【請求項6】
バスを介してデータを通信する他の演算処理装置に接続する演算処理装置において、
前記他の演算処理装置が送信したデータを受信する受信部と、
前記受信部が受信した受信データに基づき、前記受信部が受信したデータよりもサイズが小さい加工データを生成する生成部と、
前記受信データに含まれる制御情報に基づき、前記受信データ又は前記加工データのいずれかを選択する選択部と、
前記選択部が選択した選択データを記憶部へ書き込む制御部とを有することを特徴とする演算処理装置。
【請求項7】
前記選択部は、
前記選択部を有する演算処理装置を識別する識別情報と、前記他の演算処理装置を特定する識別情報が一致する場合、前記受信データを選択するとともに、前記他の演算処理装置を特定する識別情報が一致しない場合、前記加工データを選択することを特徴とする請求項6記載の演算処理装置。
【請求項8】
前記選択部は、
前記選択部を有する演算処理装置を識別する識別情報と、前記データを受信した演算処理装置を特定する識別情報が一致する場合、前記受信データを選択するとともに、前記データを受信した演算処理装置を特定する識別情報が一致しない場合、前記加工データを選択することを特徴とする請求項6記載の演算処理装置。
【請求項9】
前記加工データは、
前記受信データに含まれるデータ本体について、排他的論理和演算を行った結果であることを特徴とする請求項6記載の演算処理装置。
【請求項10】
前記加工データは、
前記受信データに含まれるデータ本体について、生成した巡回冗長符号であることを特徴とする請求項6記載の演算処理装置。
【請求項11】
バスを介してデータを通信する複数の演算処理装置を備える情報処理装置の制御方法において、
前記演算処理装置が有する受信部が、他の演算処理装置が送信したデータを受信し、
前記演算処理装置が有する生成部が、前記受信部が受信した受信データに基づき、前記受信部が受信したデータよりもサイズが小さい加工データを生成し、
前記演算処理装置が有する選択部が、前記受信データに含まれる制御情報に基づき、前記受信データ又は前記加工データのいずれかを選択し、
前記演算処理装置が有する制御部が、前記選択部が選択した選択データを記憶部へ書き込むことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、演算処理装置及び情報処理装置の制御方法に関する。
【背景技術】
【0002】
信頼性が求められる情報処理装置では高度な耐故障化がなされる一方で、万が一故障が発生した場合の故障の解析が必要である。例えば、1つのシステムボード上に複数の演算処理装置としてのプロセッサ装置が通信可能なようにして搭載された情報処理装置であるマルチプロセッサシステムの故障解析では、プロセッサ装置間の通信内容を示すログ等が使用される。マルチプロセッサシステムにおいて、プロセッサ装置間の通信はパケット単位で行われ、送受信されるパケットの内容に応じてプロセッサ装置の状態が遷移し、システム全体の処理が進む。パケットは、例えば処理の種類等を示すヘッダ部とそれに付随するデータであるデータ部とを有する。
【0003】
パケットを用いて行われるプロセッサ装置間の通信に係るログは、例えばプロセッサ装置内部のRAM(Random Access Memory)等の記憶回路に順次上書きされていく。システムにおいて故障が発生したときには、その時点より前の一定期間分のログが記憶回路に記録されており、その記録されているログを参照することで故障原因を解析する。記録されているログに基づく故障解析では、被疑箇所を限定するために、まずエラーが発生したパケットの存在を追跡し、次にどのようにエラーが発生したかを解析する。
【0004】
プロセッサ装置間の通信に係るログは、プロセッサ装置の記憶領域に記録されるが、記憶領域が大きいほど、記録可能なログの量が大きくなり、より長い期間についてハードウェアの状態遷移を追跡できるため、故障解析の観点で有利である。しかし、一般にプロセッサ装置の記憶領域は、そのほとんどがプロセッサ装置の性能向上に用いられ、通信ログの記録用に与えられる記憶容量は小さい。ここで、通信ログに記録されないパケットが存在すると、故障箇所が絞り込めず故障解析が困難になる。また、パケットについて、どのように、エラーが発生したかを解析することで、例えば具体的な故障箇所の絞り込みが可能になり、具体的な故障内容の特定が容易になる。そのため、通信ログの記録装置には、故障の確実な検出及び故障箇所の特定が可能であることを前提として、多くのログを記録することが求められている。
【0005】
プロセッサ装置間の通信に係るログの記録手法としては、例えば監視対象のバスを介して送受信される有効なパケットをそのまますべて記録する手法(ロギング手法A)がある。また、キャッシュメモリが異常状態に陥った場合に、それから長い時間が経過して初めて転送パケットの異常として検出されることがある。そこで、長期間のログを記録するために、監視対象のバスを介して送受信される有効なパケットのうち、ヘッダ部のみを記録する手法(ロギング手法B)が用いられることがある。
【0006】
また、下記特許文献1には、監視対象計算機のそれぞれで保存しているログ情報を収集し、監視対象計算機の構成又は状態の変更を時系列データとして編集するとともに、同一の事象内容データを略式データに置き換えて編集する情報収集装置を有する障害監視システムが開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−293393号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ここで、プロセッサ装置間でのパケット通信のログの記録に関しては、次の点が求められる。下記(1)〜(3)のすべてを満たすことで、長期間かつ通信異常を確実に検出可能なログを採取し記録できる。
(1)パケットが正確に、確実に、正しい順序で転送され、それが記録される点
(2)パケットのデータ部が正しく転送され、それが記録される点
(3)より小さな記憶領域で、より長い時間のログが記録可能である点
【0009】
前述のロギング手法Aは、有効なパケットをそのまますべて記憶領域に書き込むので、前記(1)及び(2)の点を満たし、通信異常を確実に検出することが可能である。しかし、パケットをそのまますべてログとして書き込むために、記憶領域がすぐに満たされてしまい、古いパケットについての情報が順に消去されてしまう。すなわち、あるパケットについての情報がログに残っている期間が短い。記憶領域を増加させることも考えられるが、実装面積の制約や消費電力の増加等の問題がある。
【0010】
また、前述のロギング手法Bは、有効なパケットのヘッダ部のみを記憶領域に書き込むので、前記(1)及び(3)の点を満たし、長期間のログの記録が可能である。しかし、パケットのデータ部が記録されないので、データ部についての解析ができない。すなわち、ログ自体としては多くのパケットについて記録可能であるが解析の点では不十分な情報であり、パケットのデータ部に発生した通信異常を検出できない可能性がある。
【0011】
本発明は、ログとして記録するデータ量の低減を図ることを目的とする。
【課題を解決するための手段】
【0012】
情報処理装置の一態様は、バスを介してデータを通信する複数の演算処理装置のうちのいずれかの演算処理装置が、他の演算処理装置が送信したデータを受信する受信部と、受信部が受信した受信データに基づき受信したデータよりもサイズが小さい加工データを生成する生成部と、受信データに含まれる制御情報に基づき、受信データ又は加工データのいずれかを選択する選択部と、選択部が選択した選択データを記憶部へ書き込む制御部とを有する。
【発明の効果】
【0013】
記録するログ情報の量の低減を図ることができる。
【図面の簡単な説明】
【0014】
【図1】図1は、本発明の実施形態における情報処理装置の構成例を示す図である。
【図2】図2は、パケットフォーマットの一例を示す図である。
【図3】図3は、第1の実施形態におけるCPUの構成例を示す図である。
【図4】図4は、第1の実施形態におけるログ記録部の構成例を示す図である。
【図5】図5は、第1の実施形態における選択回路の構成例を示す図である。
【図6】図6は、各CPUにてログとして記録される情報を説明するための図である。
【図7A】図7Aは、パケット転送前におけるログの記録状態の一例を示す図である。
【図7B】図7Bは、第1の実施形態におけるパケット転送後のログの記録状態の一例を示す図である。
【図7C】図7Cは、パケット転送後のログの記録状態の比較参考例を示す図である。
【図8】図8は、第2の実施形態における選択回路の構成例を示す図である。
【図9】図9は、第2の実施形態におけるパケット転送後のログの記録状態の一例を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態を図面に基づいて説明する。
【0016】
(第1の実施形態)
本発明の第1の実施形態について説明する。
図1は、第1の実施形態における情報処理装置としてのマルチプロセッサシステムの構成例を示すブロック図である。マルチプロセッサシステム10は、プログラム等に応じた処理を実行する複数のプロセッサ装置(例えば、CPU:Central Processing Unit)を有し、これらプロセッサ装置が1つのシステムボード上に実装されている。
【0017】
図1においては、プロセッサ装置(演算処理装置)としてCPU(Central
Processing Unit)−A20A、CPU−B20B、CPU−C20C、及びCPU−D20Dの4つのCPU(CPUチップ)を有するマルチプロセッサシステムを一例として示している。CPU20A〜20Dは、バス40を介して通信可能に接続されている。なお、本実施形態におけるマルチプロセッサシステムにおいて、1つのシステムボード上に実装されるプロセッサ装置の数は4つに限定されるものではなく、任意である。また、CPU20A〜20Dの接続形態(トポロジー)は、図1に示した接続形態に限定されるものではない。
【0018】
CPU−A20AにはメモリA30Aが接続されており、CPU−B20BにはメモリB30Bが接続されている。また、CPU−C20CにはメモリC30Cが接続されており、CPU−D20DにはメモリD30Dが接続されている。メモリ30A〜30Dの各々は、CPU20A〜20Dでの処理に用いられるデータや処理結果等を記憶する。メモリ30A〜30Dには、互いに異なる記憶領域がマッピングされている。
【0019】
CPU20A〜20Dの各々は、メモリ30A〜30Dのうち、自装置に直接接続されているメモリを管理する。また、CPU20A〜20Dの各々は、他のCPUが管理するメモリに対してもアクセス可能である。すなわち、CPU20A〜20Dは、直接接続されているメモリのメモリ空間だけに限らず、他のCPUに接続されているメモリも含むメモリ空間を参照可能である。他のCPUが管理するメモリに対するアクセスは、バス40を介したCPU間通信(プロセッサ装置間の通信)により実現される。CPU間通信は、図2に一例を示すようなフォーマットのパケットを用いて行われる。
【0020】
また、マルチプロセッサシステム10では、複数のCPU20A〜20Dからの参照を整理することでシステム全体のメモリ空間における一貫性を保ちながら複数の独立したCPUで処理を並列に実行可能である。例えば、CPU−B20BがメモリC30Cを参照する場合には、CPU−B20BからCPU−C20Cへ要求(データ要求)が送られる。そして、CPU−C20Cは、要求されたデータをメモリC30Cから読み出し、CPU−B20Bが使用中であることを記録した上で、データを含むパケットをCPU−B20Bへ送出する。また、複数のCPUが同時にデータの書き込みを要求した場合には競合が発生するので、その書き込み順を制御して一貫性の保たれたメモリ空間をCPUへ見せる。
【0021】
図2は、CPU20A〜20D間での通信において送受信されるパケットの一例を示す図である。パケットは、ヘッダ部及びデータ部を有する。ヘッダ部は、送信元ID部HD1、送信先ID部HD2、コマンド部HD3、及びパケットID部HD4を含む。
【0022】
送信元ID部HD1は、パケットを送出したCPUを一意に識別するための識別情報である送信元ID(ソースID)が記録されている。送信先ID部HD2は、パケットの送信先のCPUを一意に識別するための識別情報である送信先ID(ディスティネーションID)が記録されている。送信元ID、送信先IDは、例えばCPU番号である。コマンド部HD3は、このパケットによってどのような動作を行うかを指示する情報(コマンド)が格納されている。パケットID部HD4は、各パケットを識別するために割り当てられた識別情報(例えば、ID番号)が格納されている。
【0023】
データ部は、コマンドに付随するデータが格納されている。データ長は、コマンドに従った長さを持つ。そのため、パケットの長さは、そのパケットのコマンドによって異なる。図2には、第1データDT1、第2データDT2、第3データDT3、第4データDT4、及び第5データDT5を有するデータ長が5、つまりパケット長が6であるパケットを一例として示している。
【0024】
図3は、本実施形態におけるCPUの構成例を示すブロック図である。図1に示したCPU20A〜20Dのそれぞれが、図3に示す構成を有する。CPU20は、処理部21、キャッシュメモリ22、メモリコントローラ23A、23B、ルーティングユニット24、及びログ記録部25AI、25AO、25BI、25BO、25CI、25COを有する。また、CPU20は、複数のメモリI/O(入出力)ポート26A、26B、及び複数のI/O(入出力)ポート27A、27B、27Cを有する。なお、図3に示す構成は一例であって、CPU20が有するCPUコア、メモリコントローラ、メモリI/Oポート、I/Oポート等の数は、図3に示すものに限定されることなく任意である。
【0025】
処理部21は、プログラム等に応じた演算処理を実行する演算処理部であり、例えば複数のCPUコア21A、21B、21Cを有する。キャッシュメモリ22は、CPU20外部のメモリ等のデータの一部がコピーされるキャッシュメモリである。CPUコア21A、21B、21Cは、キャッシュメモリ22とそれぞれ接続されている。CPUコア21A、21B、21Cの各々は、演算処理等を行うとともに、その処理に必要なデータをキャッシュメモリ22へ要求する。
【0026】
メモリコントローラ23A、23Bは、キャッシュメモリ22及びメモリI/Oポート26A、26Bと接続されている。メモリコントローラ23A、23Bは、対応するメモリI/Oポート26A、26Bに接続されているメモリに対するアクセスの要求(リクエスト)を受け、その要求に応じてメモリに対するデータの読み出しや書き込みを制御する。
【0027】
ルーティングユニット24は、キャッシュメモリ22及びI/Oポート27A、27B、27Cと接続されている。ルーティングユニット24は、要求(リクエスト)やデータを含むパケットに係る通信制御を行う。すなわち、ルーティングユニット24は、入力される要求やデータを受信し、送信先の情報等に基づいて、受信した要求やデータをキャッシュメモリ22及びI/Oポート27A、27B、27Cのうちのいずれかに送信する。I/Oポート27A、27B、27Cは、本CPU20と他のCPUとを通信可能に接続するためのインタフェースである。I/Oポート27A、27B、27Cには、CPU20と同様の機能を有する不図示の他のCPUが接続されている。
【0028】
ログ記録部25AI、25AO、25BI、25BO、25CI、25COは、ルーティングユニット24及びI/Oポート27A、27B、27C間のバスに接続される。I/Oポート毎に、I/Oポートからルーティングユニットへ要求やデータが伝送される入力側のバス、及びルーティングユニットからI/Oポートへ要求やデータが伝送される出力側のバスのそれぞれに対してログ記録部が設けられる。
【0029】
ログ記録部25AI、25AO、25BI、25BO、25CI、25COの各々は、接続されたバスを監視して、そのバス上を送受信されるパケットについての情報を記録する。すなわち、ログ記録部25AI、25AO、25BI、25BO、25CI、25COの各々は、本CPU20とI/Oポートを介して接続される他のCPUとの間におけるCPU間通信に係るログ情報(通信ログ)を記録する。
【0030】
CPU20の動作について説明する。
CPU20において、処理部21が処理の実行に必要なデータをキャッシュメモリ22へ要求したときの動作は、以下のように行われる。処理部21により要求されたデータがキャッシュメモリ22に存在する場合(キャッシュヒット時)には、そのデータがキャッシュメモリ22から読み出されて処理部21に供給される。
【0031】
一方、要求されたデータがキャッシュメモリ22に存在しない場合(キャッシュミス時)には、キャッシュメモリ22にて、要求されたデータがメモリI/Oポート26A、26Bに接続されているメモリに存在するか否かが判断される。その結果、要求されたデータがメモリI/Oポート26A、26Bに接続されているメモリにあると判断されると、キャッシュメモリ22からの要求に応じてメモリコントローラ23A、23Bがそのメモリに対するアクセスを行う。そして、メモリコントローラ23A、23Bによりメモリから読み出されたデータが、キャッシュメモリ22を介して処理部21に供給される。
【0032】
要求されたデータがメモリI/Oポート26A、26Bに接続されているメモリにもないと判断すると、キャッシュメモリ22は、処理部21から要求されたデータを要求するためのパケットをルーティングユニット24に送出する。このパケットは、処理部21から要求されたデータを他のCPUに接続されたメモリから読み出して取得するためのデータ要求に係るパケットである。
【0033】
ルーティングユニット24は、キャッシュメモリ22からデータ要求に係るパケットを受けると、そのパケットが有する送信先の情報等に基づきパケットをI/Oポート27A〜27Cのいずれかを介して送信する。ルーティングユニット24は、送信したデータ要求に係るパケットに対する応答として、要求したデータを含むパケットをI/Oポート27A〜27Cのいずれかを介して受信すると、そのパケットをキャッシュメモリ22に送出する。そして、この受信したパケットに含まれるデータが、キャッシュメモリ22を介して処理部21に供給される。
【0034】
例えば、データ要求に係るパケットがI/Oポート27Aを介して送信され、その応答としてのデータを含むパケットがI/Oポート27Aを介して受信されたとする。この場合、データ要求に係るパケットがルーティングユニット24によりI/Oポート27Aを介して送信される際に、ログ記録部25AOは、データ要求に係るパケットについての情報を記録する。また、データを含むパケットがルーティングユニット24によりI/Oポート27Aを介して受信される際に、ログ記録部25AIは、データを含むパケットについての情報を記録する。
【0035】
また、CPU20において、メモリI/Oポート26A、26Bに接続されているメモリに記憶されているデータを要求する他のCPUからのデータ要求に係るパケットを受信したときの動作は、以下のように行われる。ルーティングユニット24は、I/Oポート27A〜27Cを介して他のCPUからのデータ要求に係るパケットを受信すると、そのパケットをキャッシュメモリ22に送出する。そして、そのデータ要求に係るパケットに基づくキャッシュメモリ22からの要求に応じて、メモリコントローラ23A、23Bがメモリに対するアクセスを行い、メモリから読み出されたデータがキャッシュメモリ22に供給される。キャッシュメモリ22は、データ要求に係るパケットの送信元を送信先とし、メモリから読み出されたデータを含むパケットをルーティングユニット24に送出する。ルーティングユニット24は、キャッシュメモリ22からデータを含むパケットを受けると、そのパケットが有する送信先の情報等に基づきパケットをI/Oポート27A〜27Cを介して送信する。
【0036】
例えば、前述の動作において、データ要求に係るパケットがI/Oポート27Bを介して受信され、その応答としてのデータを含むパケットがI/Oポート27Bを介して送信されたとする。この場合、データ要求に係るパケットがルーティングユニット24によりI/Oポート27Bを介して受信される際に、ログ記録部25BIは、データ要求に係るパケットについての情報を記録する。また、データを含むパケットがルーティングユニット24によりI/Oポート27Bを介して送信される際に、ログ記録部25BOは、データを含むパケットについての情報を記録する。
【0037】
また、CPU20において、データ要求に係るパケットやその応答としてのデータを含むパケット等を中継する、すなわち他のCPUからのパケットを受信して、それを他のCPUに対して送信するときの動作は、以下のように行われる。ルーティングユニット24は、I/Oポート27A〜27Cを介して他のCPUからのパケットを受信すると、そのパケットが有する送信先の情報を確認する。そして、ルーティングユニット24は、受信したパケットを送信先の情報に従ってI/Oポート27A〜27Cを介して送信する。例えば、パケットが、I/Oポート27Aを介して受信されI/Oポート27Bを介して送信されたとする。この場合、パケットが受信される際に、ログ記録部25AIは受信されたパケットについての情報を記録し、パケットが送信される際に、ログ記録部25BOは送信されるパケットについての情報を記録する。
【0038】
ここで、従来、複数のCPUを介してパケットが転送されるとき、転送経路上の各CPUのログにはログ情報として同一の情報が記録される。それに対して、本実施形態では、各々のCPUが持つログを独立したものではなく、パケットの転送経路上の複数のCPUに存在するログを1つのまとまったログとして認識し、重複部分が小さくなるようにログ記録部がログ情報を記録する。本実施形態におけるマルチプロセッサシステムでは、転送経路上の各々のCPUが完全な情報をログとしてそれぞれ持つのではなく、転送経路上の一部のCPUが完全な情報をログとして記録する。そして、他のCPUでは情報を省略して記録し、ログ情報の記録に使用する記憶領域を低減する。なお、完全な情報とは、送受信されるパケットのヘッダ部とデータ部をそのまま含む情報である。これにより、(1)パケットが正確に、確実に、正しい順序で転送され、それが記録されている点、及び(2)パケットのデータ部が正しく転送され、それが記録されている点、をともに満足するようにログ情報が記録される。さらに、(3)より小さな記憶領域で、より長い時間のログが記録可能である点においても高い効果が得られる。
【0039】
ただし、特定のCPUのログに完全な情報が集中してしまうと、特定のCPUのログしか活用されないので、完全な情報の記録は複数のCPUに適当に分散することが望ましい。複数のCPUを介したパケットの転送においては、転送されるパケットについての完全な情報は1回以上記録されていれば良い。そこで、本実施形態では、ログ記録部が、転送経路に係る情報を用いてパケットについての完全な情報を記録するか否かを決定する。例えば、ログ記録部は、パケットに含まれる送信元の情報や送信先の情報に基づいて、完全な情報を記録するか否かを決定する。そして、ログ記録部は、完全な情報を記録する場合にはパケットのヘッダ部とデータ部をそのまま記録し、情報を省略して記録する場合にはパケットのヘッダ部をそのまま記録し、データ部についてはデータ量を低減して記録する。
【0040】
図4は、第1の実施形態におけるログ記録部の構成例を示すブロック図である。第1の実施形態におけるログ記録部は、パケットのヘッダ部の送信元ID部HD1に記録されている送信元IDが、自CPUのIDと一致する場合には完全な情報を記録し、一致しない場合には情報を省略して記録するものである。図4においては、ルーティングユニット24からI/Oポート27へ要求やデータが伝送される出力側のバスに接続されているログ記録部25を示している。なお、I/Oポートからルーティングユニットへ要求やデータが伝送される入力側のバスに接続されるログ記録部についても、I/Oポート及びルーティングユニット間のバス上での信号の伝送方向が逆になるだけで、その他の構成等は同様である。
【0041】
ログ記録部25は、記録回路51、制御回路52、データ部加工回路53、及び選択回路54を有する。記録回路51は、ログとしての情報を記録し保持する回路である。記録回路51は、例えばRAM(Random Access Memory)やレジスタファイルである。制御回路52は、記録回路51を制御し、記録回路51に情報を書き込む記録タイミングを指示する。制御回路52は、データバスDATB及びコントロールバスCTLBを伝送される信号に基づいて、書き込み制御信号WCTLを生成し記録回路51に出力する。
【0042】
ここで、データバスDATBは、伝送されるパケットを構成する実データ(ヘッダ部及びデータ部を含む)が伝送されるバスである。また、コントロールバスCTLBは、データバスDATBを伝送されるデータに同期して、データ以外の制御情報が伝送されるバスである。コントロールバスCTLBを伝送される制御情報には、例えばパケットの先頭部分、データ部分、最終部分等を示す情報が含まれる。また、パケットが破損していることを示すような付随情報を制御情報に含んでいても良い。
【0043】
データ部加工回路53は、データバスDATB上を伝送されるデータを取り込み、そのデータに基づいて加工データを出力する。データ部加工回路53は、パケットのデータが通信途中で変化したことが判定可能で、かつデータサイズが小さくなるように、取り込んだデータを加工して加工データとする。例えば、データ部加工回路53は、特定サイクルのデータ部(例えばデータ部の最終部分)にCRC(Cyclic Redundancy Check:巡回冗長符号)等のデータが記憶されている場合には、パケットからその特定サイクルのデータ部を抽出して加工データとするようにしても良い。また、例えば、データ部加工回路53は、対応するビット毎に各サイクルのデータ部の排他的論理和演算を行い、その演算結果を加工データとするようにしても良い。また、例えば、データ部加工回路53は、各サイクルのデータ部に基づいてCRCを生成し、それを加工データとするようにしても良い。
【0044】
選択回路54は、データバスDATB上を伝送されるデータ又はデータ部加工回路53から出力される加工データのどちらを、記録回路51に書き込みデータWDTとして供給するかを選択する。すなわち、選択回路54は、データバスDATB上を伝送されるデータ又はデータ部加工回路53から出力される加工データを、記録回路51に書き込むログ情報に選択する。選択回路54は、データバスDATB及びコントロールバスCTLBを伝送される信号に基づいて、データ選択に係る選択信号SELを出力する。
【0045】
図5は、第1の実施形態における選択回路54の構成例を示すブロック図である。判定部61は、各バスDATB、CTLBを伝送される信号に基づいて、データバスDATB上を伝送されるデータ又はデータ部加工回路53から出力される加工データのどちらを書き込みデータWDTとして出力させるかを判定する。判定部61は、データバスDATB上を伝送されるデータがパケットの先頭(ヘッダ部)である場合には、書き込みデータWDTとしてデータバスDATB上を伝送されるデータを出力させるよう選択信号SELを出力する。
【0046】
また、判定部61は、パケットのヘッダ部の送信元ID部HD1に記録されている送信元IDとレジスタ62に格納されている自CPUのIDとを比較する。比較の結果、送信元IDと自CPUのIDとが一致する場合には、判定部61は、データバスDATB上を伝送されるパケットにおけるすべてのデータ部を書き込みデータWDTとして出力させるよう選択信号SELを出力する。一方、送信元IDと自CPUのIDとが一致しない場合には、判定部61は、データ部加工回路53から出力される加工データを書き込みデータWDTとして出力させるよう選択信号SELを出力する。
【0047】
以上のように第1の実施形態におけるログ記録部25は、制御回路52によりデータバスDATB及びコントロールバスCTLBを監視して、有効なパケットが伝送される場合には記録回路51に対して情報の書き込み指示を通知する。記録回路51は、制御回路52から出力される書き込み制御信号WCTLの指示する記録タイミングに従って、書き込みデータWDTを保持する。書き込みデータWDTは、選択回路54から出力される選択信号SELの指示に従って、データバスDATB上を伝送されるデータ又はデータ部加工回路53から出力される加工データが出力される。
【0048】
第1の実施形態では、パケットの送信元IDと自CPUのIDとが一致する場合には、データバスDATB上を伝送されるパケットのヘッダ部及びデータ部のすべてがログ記録部25にログ情報として記録される。一方、パケットの送信元IDと自CPUのIDとが一致しない場合には、データバスDATB上を伝送されるパケットのヘッダ部及びデータ部加工回路53から出力される加工データがログ記録部25にログ情報として記録される。すなわち、送信元のCPUの出力側のログ記録部25にパケットについての完全な情報が記録され、以後に通過する各CPUのログ記録部25には省略されたパケットについての情報が記録されていく。
【0049】
これにより、故障により通信途中でパケットにエラーが発生した場合には加工データが途中で変化するので、各CPUに記録されたログを確認することにより加工データの変化地点で故障が発生したことがわかる。また、送信元のCPUのログに記録されているパケットについての完全な情報を参照することで、どのようなパケットを送信したが判明する。また、各CPUのログを参照することで、異常が検出された時点からログが残されている時点までのCPU間通信の通信ログを再構築することができる。
【0050】
本実施形態における具体的なログ情報の記録例を図6及び図7A〜図7Cを参照して説明する。図6に示すように、図1に示したマルチプロセッサシステムでは、CPU−A20Aにおいて、CPU−A20AからCPU−B20Bへのパケット通信に係る情報(出力側)71O及びCPU−B20BからCPU−A20Aへのパケット通信に係る情報(入力側)71Iがログとして記録される。また、CPU−A20Aにおいて、CPU−A20AからCPU−C20Cへのパケット通信に係る情報(出力側)72O及びCPU−C20CからCPU−A20Aへのパケット通信に係る情報(入力側)72Iがログとして記録される。CPU−B20Bにおいて、CPU−B20BからCPU−A20Aへのパケット通信に係る情報(出力側)73O及びCPU−A20AからCPU−B20Bへのパケット通信に係る情報(入力側)73Iがログとして記録される。また、CPU−B20Bにおいて、CPU−B20BからCPU−D20Dへのパケット通信に係る情報(出力側)74O及びCPU−D20DからCPU−B20Bへのパケット通信に係る情報(入力側)74Iがログとして記録される。
【0051】
同様に、CPU−C20Cにおいて、CPU−C20CからCPU−A20Aへのパケット通信に係る情報(出力側)75O及びCPU−A20AからCPU−C20Cへのパケット通信に係る情報(入力側)75Iがログとして記録される。また、CPU−C20Cにおいて、CPU−C20CからCPU−D20Dへのパケット通信に係る情報(出力側)76O及びCPU−D20DからCPU−C20Cへのパケット通信に係る情報(入力側)76Iがログとして記録される。CPU−D20Dにおいて、CPU−D20DからCPU−C20Cへのパケット通信に係る情報(出力側)77O及びCPU−C20CからCPU−D20Dへのパケット通信に係る情報(入力側)77Iがログとして記録される。また、CPU−D20Dにおいて、CPU−D20DからCPU−B20Bへのパケット通信に係る情報(出力側)78O及びCPU−B20BからCPU−D20Dへのパケット通信に係る情報(入力側)78Iがログとして記録される。
【0052】
ここで、図4に示したような1サイクル分のヘッダ部と5サイクル分のデータ部とを有する6サイクル型のパケットがCPU−A20AからCPU−D20DへCPU−C20Cを介して転送されるときのログの記録状態の一例を示す。図7A〜図7Cに示すように、パケットがCPU−A→CPU−C→CPU−Dと転送されるとき、CPU−A20A、CPU−C20C、CPU−D20Dのそれぞれにおいてパケットについての情報がログとして記録される。CPU−A20Aでは、CPU−A20AからCPU−C20Cへ向かう方向(出力側)のログ記録部(CPU−A A→C:OUT)にログが記録される。CPU−C20Cでは、CPU−A20AからCPU−C20Cへ向かう方向(入力側)のログ記録部(CPU−C A→C:IN)、及びCPU−C20CからCPU−D20Dへ向かう方向(出力側)のログ記録部(CPU−C C→D:OUT)にログが記録される。また、CPU−D20Dでは、CPU−C20CからCPU−D20Dへ向かう方向(入力側)のログ記録部(CPU−D C→D:IN)にログが記録される。
【0053】
図7Aは、パケット転送前における各ログ記録部での記録状態の一例を模式的に示しており、過去にログとして記録された情報PDATA1〜PDATA10が記録されている。なお、各ログ記録部においては、ログとして記録する情報が入力された順に上から順次プッシュされ、記憶領域を超えたものについては消去される(追い出される)ものとする。すなわち、図7A〜図7Cに示す例においては下側に行くほど時間的に古い情報であることを意味する。
【0054】
図7Bは、第1の実施形態におけるパケット転送後の各ログ記録部でのログの記録状態の一例を模式的に示している。第1の実施形態では、パケットの送信元IDと自CPUのIDとが一致する場合にパケットについての完全な情報を記録し、それ以外ではパケットについての情報を省略して記録する。したがって、図7Bに示すように、送信元であるCPU−A20Aの出力側のログ記録部(CPU−A A→C:OUT)には、パケットのヘッダ部(HEADER)及びすべてのデータ部(DATA1〜DATA5)が記録される。一方、その他のCPU−C20C及びCPU−D20Dのログ記録部には、パケットのヘッダ部(HEADER)と、データ部(DATA1〜DATA5)に基づいた加工データCDATAとが記録される。
【0055】
図7Cは、パケット転送後のログの記録状態の比較参考例を模式的に示しており、ログ記録部の各々がパケットのヘッダ部(HEADER)及びすべてのデータ部(DATA1〜DATA5)をログとして記録する例を示している。
【0056】
図7B及び図7Cを比較すれば明らかなように、本実施形態においては、パケットの送信元IDと自CPUのIDとが一致しない場合には、パケットのヘッダ部とデータ量を低減した加工データとをログとして記録するので、ログの記録に要する記憶容量(記憶領域)を低減することができる。また、ログとして記録するデータ量が少なくなるので、新たな情報の記録に伴って追い出される古い情報が少なくなり、記憶容量(記憶領域)の大きさが同様である場合には、より長い期間のログを記録することができる。また、パケットの送信元IDとIDが一致するCPUにはパケットのヘッダ部及びデータ部のすべてが記録されるので、それを参照することによりデータ部についての解析も可能となる。
【0057】
第1の実施形態によれば、送受信されるパケットの送信元IDと自CPUのIDとが一致する場合には、パケットについての完全な情報であるパケットのヘッダ部及びデータ部のすべてをログとして記録する。一方、送受信されるパケットの送信元IDと自CPUのIDとが一致しない場合には、パケットについての情報を省略し、パケットのヘッダ部とデータ量を低減した加工データとをログとして記録する。これにより、ログとして記録するデータ量を低減し、より長い期間のログを記録することができる。したがって、長い期間についてハードウェアの状態遷移を追跡することが可能になり、例えば通信異常が発生した際に故障原因の解析が容易になる。また、送信元のCPUには、パケットのすべてのデータ部が記録されているのでデータ部に係る故障解析も行うことができる。このように、より長い期間のログと、すべてのデータ部を含むパケットについての完全な情報を提供することが可能になり、故障の確実な検出及び故障箇所の特定が容易になる。
【0058】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
前述した第1の実施形態は、送受信されるパケットの送信元IDが自CPUのIDと一致する場合にはログ記録部がパケットについて完全な情報を記録し、一致しない場合には情報を省略して記録する。以下に説明する第2の実施形態は、送受信されるパケットの送信先IDが自CPUのIDと一致する場合にはパケットについて完全な情報をログ記録部に記録し、一致しない場合には情報を省略して記録するものである。なお、第2の実施形態においては、ログ記録部25が有する選択回路54の構成が前述の第1の実施形態と異なる。第2の実施形態におけるその他の構成は第1の実施形態と同様であるので、それらについての説明は省略する。
【0059】
図8は、第2の実施形態における選択回路54の構成例を示すブロック図である。判定部81は、各バスDATB、CTLBを伝送される信号に基づいて、データバスDATB上を伝送されるデータ又はデータ部加工回路53から出力される加工データのどちらを書き込みデータWDTとして出力させるかを判定する。判定部81は、データバスDATB上を伝送されるデータがパケットの先頭(ヘッダ部)である場合には、書き込みデータWDTとしてデータバスDATB上を伝送されるデータを出力させるよう選択信号SELを出力する。
【0060】
また、判定部81は、パケットのヘッダ部の送信先ID部HD2に記録されている送信先IDとレジスタ82に格納されている自CPUのIDとを比較する。比較の結果、送信先IDと自CPUのIDとが一致する場合には、判定部81は、データバスDATB上を伝送されるパケットにおけるすべてのデータ部を書き込みデータWDTとして出力させるよう選択信号SELを出力する。一方、送信先IDと自CPUのIDとが一致しない場合には、判定部81は、データ部加工回路53から出力される加工データを書き込みデータWDTとして出力させるよう選択信号SELを出力する。
【0061】
したがって、第2の実施形態では、パケットの送信先IDと自CPUのIDとが一致する場合には、データバスDATB上を伝送されるパケットのヘッダ部及びデータ部のすべてがログ記録部25にログ情報として記録される。一方、パケットの送信先IDと自CPUのIDとが一致しない場合には、データバスDATB上を伝送されるパケットのヘッダ部及びデータ部加工回路53から出力される加工データがログ記録部25にログ情報として記録される。すなわち、送信先のCPUの入力側のログ記録部25にパケットについての完全な情報が記録され、それ以外の各CPUのログ記録部25にはパケットについての省略された情報が記録される。これにより、故障により通信途中でパケットにエラーが発生した場合には加工データが途中で変化するので、各CPUに記録されたログを確認することにより加工データの変化地点で故障が発生したことがわかる。また、送信先のCPUのログに記録されているパケットについての完全な情報を参照することで、どのようなパケットを送信したが判明する。また、各CPUのログを参照することで、異常が検出された時点からログが残されている時点までのCPU間通信の通信ログを再構築することができる。
【0062】
図9は、パケットがCPU−A→CPU−C→CPU−Dと転送されるとき、第2の実施形態におけるパケット転送後の各ログ記録部でのログの記録状態の一例を模式的に示している。図9に示すように第2の実施形態では、送信先であるCPU−D20Dの入力側のログ記録部(CPU−D C→D:IN)に、パケットのヘッダ部(HEADER)及びすべてのデータ部(DATA1〜DATA5)が記録される。一方、その他のCPU−A20A及びCPU−C20Cのログ記録部には、パケットのヘッダ部(HEADER)と、データ部(DATA1〜DATA5)に基づいた加工データCDATAとが記録される。
【0063】
このように第2の実施形態によれば、送受信されるパケットの送信先IDと自CPUのIDとが一致する場合には、パケットについての完全な情報であるパケットのヘッダ部及びデータ部のすべてをログとして記録する。一方、送受信されるパケットの送信先IDと自CPUのIDとが一致しない場合には、パケットについての情報を省略し、パケットのヘッダ部とデータ量を低減した加工データとをログとして記録する。これにより、第1の実施形態と同様の効果が得られる。すなわち、ログとして記録するデータ量を低減し、より長い期間のログを記録することができ、長い期間についてハードウェアの状態遷移を追跡することが可能になり、例えば通信異常が発生した際に故障原因の解析が容易になる。また、送信先のCPUには、パケットのすべてのデータ部が記録されているのでデータ部に係る故障解析も行うことができる。このように、より長い期間のログと、すべてのデータ部を含むパケットについての完全な情報を提供することが可能になり、故障の確実な検出及び故障箇所の特定が容易になる。
【0064】
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】
【0065】
マルチプロセッサシステムにおけるプロセッサ装置間の通信にて、パケットが有する通信情報に応じて、パケットのデータ又は加工データをログ情報に選択して記録することが可能になる。ログ情報として記録するデータ量が低減し、限られた記憶領域で、長期間かつ通信異常を確実に検出可能なログ記録が可能になる。

【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図7C】
【図8】
【図9】
【国際調査報告】