JP6402657B2 - ハングアップ監視装置及びパケット転送装置 - Google Patents

ハングアップ監視装置及びパケット転送装置 Download PDF

Info

Publication number
JP6402657B2
JP6402657B2 JP2015047353A JP2015047353A JP6402657B2 JP 6402657 B2 JP6402657 B2 JP 6402657B2 JP 2015047353 A JP2015047353 A JP 2015047353A JP 2015047353 A JP2015047353 A JP 2015047353A JP 6402657 B2 JP6402657 B2 JP 6402657B2
Authority
JP
Japan
Prior art keywords
count value
packet transfer
core
processing
monitoring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015047353A
Other languages
English (en)
Other versions
JP2016167223A (ja
Inventor
雅季 田代
雅季 田代
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2015047353A priority Critical patent/JP6402657B2/ja
Publication of JP2016167223A publication Critical patent/JP2016167223A/ja
Application granted granted Critical
Publication of JP6402657B2 publication Critical patent/JP6402657B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

本発明は、ハングアップ監視装置及びパケット転送装置に関し、例えば、音声やビデオ等の各メディアのNAT(スペルアウトは実施形態の項に記載)変換をサポートするメディア変換装置に適用し得るものである。
一般に、ソフトウェアのハングアップを検出するためには、CPUのウォッチドッグタイマを使用する(特許文献1参照)。ウォッチドッグタイマは、CPU又はデバイスにハードウェア的に1つ実装され、ウォッチドッグタイマがタイムアップするのに要する時間以内にソフトウェアによりリセットを行う。上述した時間以内に、ウォッチドッグタイマがリセットされない場合には、ソフトウェアのハングアップとみなし、ハードウェア的に割り込みを発生させ、プロセッサのリセットやソフトウェアの停止を行う。このようなウォッチドッグタイマのリセットは、OS(Operating System)のスケジューリング機能により行われる。
マルチコアのCPUをSMP(Symmetric Multiprocessing;対称型マルチプロセッシング)で使用する場合には、ウォッチドッグタイマを使用することが可能である。しかし、パケット転送ソフトウェア(以下、パケット転送機能やパケット転送機能部と呼ぶ)など、転送遅延をできるだけ避けて高い転送性能を求められる場合には、プロセッサをAMP(Asymmetric Multiprocessing;非対称型マルチプロセッシング)で使用し、OSの介在なしで各コアにパケット転送機能を占有させる。この場合、OSを介在させないので、各コアにて動作するパケット転送機能のハングアップの検出に、ウォッチドックタイマを使用する方法は適用できない。
そのため、監視ソフトウェア(以下、監視機能や監視機能部と呼ぶ)とパケット転送機能との間で、ICMP ECHO(RFC792)等に従った(pingの)情報交換(ハートビート)を行うことで、パケット転送機能のハングアップを検出する必要があった。
特開平3−268143号公報
しかしながら、ハートビートがパケット転送機能にオーバヘッドとなり、転送遅延等の要因となってしまう。また、パケット転送機能が処理限界(CPUの使用率が限界に近いこと)で動作している場合、ハートビートを実行することによってパケットの欠落が発生する。パケットの欠落を避けるため、パケット転送機能の処理を優先してハートビート用の情報の到来を無視した場合には、監視機能が誤ってハングアップが生じていると判断してしまう。
そのため、本来のソフトウェア処理にさほど負担を掛けずにハングアップを検出できるハングアップ監視装置及びパケット転送装置が望まれている。
第1の発明のハングアップ監視装置は、(1)所定処理をプロセッサに実行させる処理プログラムである所定処理機能部を有する、並列処理可能な少なくとも1個の処理用コアと、(2)上記各処理用コアにおける上記処理プログラムのハングアップを監視する制御用コアと、(3)上記各処理用コアと上記制御用コアが共にアクセス可能な共通メモリとを有し、(4)上記共通メモリには、クロックに基づいて現カウント値を更新する、上記各処理用コア毎の現カウンタが設定され、(5)上記制御用コアが有するローカルメモリ若しくは上記共通メモリには、転送されてきた現カウント値を直前カウント値として保存する、上記各処理用コア毎の直前カウント値保存域が設定され、(6)上記各処理用コアは、上記処理プログラムの所定部分の開始から終了までの期間、上記処理プログラムからの起動により、当該処理用コアについての上記現カウンタをカウント動作させる、ハードウェア要素としてのカウント指示部を有し、(7)上記制御用コアは、上記各処理用コアについての現カウント値と直前カウント値との照合を間欠的に実行し、両カウント値の一致時に処理対象の上記処理用コアにおける上記処理プログラムはハングアップと判断し、両カウント値の不一致時に現カウント値を直前カウント値として上記直前カウント値保存域に保存させる監視機能部を有することを特徴とする。
第2の本発明は、パケット転送プログラムを有する、複数のパケット処理用コアを備えたパケット転送装置において、上記パケット転送プログラムのハングアップを監視するハングアップ監視装置として、第1の本発明のハングアップ監視装置を適用していることを特徴とする。
本発明によれば、本来のソフトウェア処理にさほど負担を掛けずにハングアップを検出できるハングアップ監視装置及びパケット転送装置を実現できる。
第1の実施形態のメディア変換装置におけるハングアップ検出の観点から見た特徴的な構成部分を示すブロック図である。 第1の実施形態のメディア変換装置におけるCPU内に設けられた監視テーブルと監視テーブル保存域との構成を示す説明図である。 第1の実施形態のメディア変換装置におけるCPU内のあるパケット転送用コアのパケット転送機能部での処理の流れを示すフローチャートである。 第1の実施形態のメディア変換装置におけるCPU内の制御用コアの監視機能部での処理の流れを示すフローチャートである。 第2の実施形態のメディア変換装置におけるCPU内に設けられた転送処理監視テーブルと転送処理監視テーブル保存域との構成を示す説明図である。 第2の実施形態のメディア変換装置におけるCPU内のあるパケット転送用コアのパケット転送機能部での処理の流れを示すフローチャートである。 第2の実施形態のメディア変換装置におけるCPU内の制御用コアの監視機能部での処理の流れを示すフローチャートである。
(A)第1の実施形態
以下、本発明によるハングアップ監視装置及びパケット転送装置の第1の実施形態を、図面を参照しながら説明する。第1の実施形態のパケット転送装置はメディア変換装置であり、以下、第1の実施形態のパケット転送装置をメディア変換装置と呼ぶ。
(A−1)第1の実施形態の構成
図1は、第1の実施形態のメディア変換装置におけるハングアップ検出の観点から見た特徴的な構成部分を示すブロック図である。
図1において、第1の実施形態のメディア変換装置1は、マルチコアCPUパッケージ(以下、CPUと呼ぶ)2と、ネットワークインタフェース部3とを有している。
第1の実施形態のメディア変換装置1が適用しているCPU2は、複数のプロセッサコア(以下、単にコアと呼ぶ)11、12−1〜12−Nを備え、各コア11、12−1〜12−Nにおけるプログラム格納部に、所望のソフトウェアを書き込んで所望の機能を発揮させるものである。また、CPU2は、各コア11、12−1〜12−Nがそれぞれ、ハードウェア要素としてパフォーマンスモニタ23、32−1〜32−Nを予め備えているものである。
CPU2は、共通メモリ10と、制御用コア11と、複数(図1ではN個)のパケット転送用コア12−1〜12−Nと、ハードウェア要素であるクロック発生部13とを有する。
共通メモリ10は、制御用コア11及びパケット転送用コア12−n(nは1〜N)が共にアクセスできるメモリである。第1の実施形態の場合、共通メモリ10には、後述する図2に示す監視テーブルTBL1が設けられている。
制御用コア11は、後述するパケット転送機能部30−1〜30−Nのハングアップを監視するソフトウェアである監視機能部(図1では監視機能と表記)20と、図2に示す監視テーブル保存域ARTBL1が設けられているローカルメモリ21と、OS22と、パフォーマンスモニタ23とを有する。
監視機能部20は、一定周期で、監視テーブルTBL1におけるあるパケット転送用コア12−nについての現カウント値(後述する現カウンタの値)と、監視テーブル保存域ARTBL1におけるそのパケット転送用コア12−nについての直前カウント値とを照合させ、現カウント値と直前カウント値が一致しているときにハングアップが生じていると判断させ、現カウント値と直前カウント値が異なるときに正常(ハングアップが生じていない)と判断させるようなソフトウェアとなっている。監視機能部20には、パケット転送用コア12−nが正常と判断されたときに、直前カウント値を現カウント値に更新させるソフトウェア部分が含まれている。
各パケット転送用コア12−nは、受信パケットに所定の処理を施して送信させるためのソフトウェアであるパケット転送機能部30−nと、所定処理待ちの受信パケットをキューイングしておく受信キュー31−nと、当該パケット転送用コア12−nにおけるパフォーマンスをモニタする上述したハードウェア要素であるパフォーマンスモニタ32−nとを有する。
ここで、パケット転送機能部30−nの実行によってなされる所定処理は、例えば、NAT(Network Address Translation;ネットワークアドレス変換)、NAT−PT(NAT Protocol Translation;ネットワークアドレス変換−プロトコル変換)、NAPT(Network Address Port Translation;ネットワークアドレスポート変換)、NAPT−PT(NAPT Protocol Translation;ネットワークアドレスポート変換−プロトコル変換)等である。
また、各パケット転送用コア12−nは、それぞれが独立して動作できるように、OSが介在しないものとなっている。すなわち、プロセッサをAMPで使用し、OSの介在なしで(スケジューリングされることなく)各パケット転送用コア12−1〜12−Nのパケット転送機能部30−1〜30−Nが並列処理されるようになされている。
第1の実施形態では、全てのパケット転送用コア12−1〜12−Nのそれぞれに、ハードウェア要素として設けられているパフォーマンスモニタ32−1〜32−Nをハングアップの監視に利用することとしている(なお、上述したように制御用コア11もパフォーマンスモニタを有している)。各パフォーマンスモニタ32−nは、自己が設けられているコア(パケット転送用コア12−n)のパフォーマンスをモニタし得るように、予め各コアに設けられているものである。各パフォーマンスモニタ32−nは、当該コアのソフトウェアからの要請により、共通メモリ10上の監視テーブルTBL1における当該コアの現カウンタのカウント値の更新開始と、更新停止を指示し、その更新期間だけ、カウント値を、クロック発生部13による発生クロックに応じてカウントアップさせ得るものである。
第1の実施形態の場合、各パフォーマンスモニタ32−nは、例えば、パケット転送機能部30−nが受信キュー31−nのキューイング状態を確認している期間だけ、監視テーブルTBL1に用意されている、当該パケット転送用コア12−n用の現カウンタをカウントアップさせるものである。より具体的に言えば、各パフォーマンスモニタ32−nは、監視テーブルTBL1のアドレスを与えて現カウンタを特定させ、その現カウンタのカウントアップの開始を指示すると共に、監視テーブルTBL1のアドレスを与えて現カウンタを特定させ、その現カウンタのカウントアップの停止の指示するものである。
ネットワークインタフェース部3は、ネットワーク4から到来したパケットを、パケット転送用コア12−1〜12−Nのいずれかに振り分けたり、パケット転送用コア12−1〜12−Nから出力された所定処理後のパケットをネットワーク4に送り出したりするものである。
ここで、パケット転送用コア12−1〜12−Nへのパケットの振分けを、セッションや当該メディア変換装置1からの出方路や当該メディア変換装置1への入方路などの相違により行うようにしても良く、パケットの種別や優先度や入出力ポートに応じて行うようにしても良く、振分けの観点は限定されるものではない。
図2は、監視テーブルTBL1及び監視テーブル保存域ARTBL1の構成を示す説明図である。
監視テーブルTBL1は、図2(A)に示すように、パケット転送用コア12−nの識別情報(図2(A)では「コア番号」と表記)と、そのパケット転送用コア12−nについての現カウンタのカウント値との対情報が、全てのパケット転送用コア12−1〜12−Nについて記述されている。現カウンタのカウント値の更新は、共通メモリ10をアクセスするハードウェアによってクロック周期で実行されるようになされており、パフォーマンスモニタ32−nは、そのような更新の開始と停止とを指示するものであり、開始が指示された以降、停止が指示するまでの間、現カウンタはカウントアップされる。現カウンタは、例えば、64ビットカウンタであり、カウント値が最大値のときにクロックが生じると最小値に変更する巡回カウンタとなっている。
監視テーブル保存域ARTBL1は、図2(B)に示すように、パケット転送用コア12−nの識別情報(図2(B)では「コア番号」と表記)と、そのパケット転送用コア12−nについての直前カウント値との対情報が、全てのパケット転送用コア12−1〜12−Nについて記述されている。直前カウント値は、監視機能部20の処理により、所定条件が成立したときに監視テーブルTBL1の現カウント値が新たな直前カウント値として上書きされる値である。すなわち、直前カウント値は、カウントアップされたりカウントダウンされたりすることはない、外部から監視テーブル保存域ARTBL1に設定される値である。
(A−2)第1の実施形態の動作
次に、第1の実施形態のメディア変換装置1におけるハングアップの検出に関連する動作を説明する。
ネットワーク4から到来したパケット(メディアパケット)はネットワークインタフェース部3に与えられ、ネットワークインタフェース部3によって、その受信パケットに対応するパケット転送用コア(ここでは、パケット転送用コア12−nであるとする)が判別されて、受信パケットが、そのパケット転送用コア12−nの受信キュー31−nにキューイングされる。
パケット転送用コア12−nのパケット転送機能部30−nの処理の流れ(ソフトウェア)を、図3のフローチャートに示している。
パケット転送用コア12−nに係るプロセッサ(以下、図3についての説明では、パケット転送用コア12−nと呼ぶ)は、受信パケットの新たな処理を行うことができる状態になると、パフォーマンスモニタ32−nによるモニタを開始させた後(ステップS100)、受信キュー31−nの状態をチェックし(ステップS101)、チェック終了後に、パフォーマンスモニタ32−nによるモニタを終了させる(ステップS102)。
パフォーマンスモニタ32−nは、モニタの開始時に、共通メモリ10のアクセス構成に対して、当該パケット転送用コア12−nの識別情報や当該パケット転送用コア12−nについての現カウンタ(の記憶エリア)のアドレスを与えて、クロックによるカウントアップを起動させる。また、パフォーマンスモニタ32−nは、モニタの終了時に、共通メモリ10のアクセス構成に対して、当該パケット転送用コア12−nの識別情報や当該パケット転送用コア12−nについての現カウンタ(の記憶エリア)のアドレスを与えて、クロックによるカウントアップを終了させる。
従って、パケット転送機能部30−nがハングアップしておらず、上述したステップS100からS102の処理が適切に実行された際には、モニタ終了時の現カウント値は、モニタ開始時のカウント値と異なったものとなっている(大半の場合、モニタ終了時の現カウント値は大きくなっている)。
パケット転送用コア12−nは、パフォーマンスモニタ32−nによるモニタを終了させた後では、受信キュー31−nにキューイングされている受信パケットがあるか否かを判別する(ステップS103)。キューイングされている受信パケットがなければ、パケット転送用コア12−nは、上述したステップS100の処理に戻る。これに対して、キューイングされている受信パケットがあれば、パケット転送用コア12−nは、受信キュー31−nにキューイングされている最古の受信パケットを取り出して、上述したような所定の処理を施し、その処理後のパケットを、ネットワークインタフェース部3からネットワーク4へ送信させる(ステップS104、S105)。その後、上述したステップS100の処理に戻る。
例えば、ステップS104やS105の処理途中でパケット転送機能部30−nがハングアップしていると、上述したステップS100の処理に戻ることができず、パフォーマンスモニタ32−nによる現カウント値の更新が実行されず、現カウント値として同一の値が継続する。
制御用コア11における監視機能部20は、このような現カウント値が更新されていないことを検出し、パケット転送機能部30−nのハングアップを検出しようとしたものである。図4は、制御用コア11の監視機能部20における処理の流れ(ソフトウェア)を示すフローチャートである。
制御用コア11に係るプロセッサ(以下、図4についての説明では、制御用コア11と呼ぶ)は、パケット転送用コア12−1〜12−N毎に定まっているタイミングで定期的に図4に示す処理(監視機能部20を構成するソフトウェアの処理)を開始する。例えば、定期的な周期をTとすると、その周期をパケット転送用コアの数Nで割った時間T/Nずつずらして、各パケット転送用コア12−nについての図4の処理を開始する。すなわち、パケット転送用コア12−1についての図4の処理を開始したタイミングから、時間T/N後に、パケット転送用コア12−2についての図4の処理を開始し、以下、同様にして、監視対象のパケット転送用コアを切り替えていく。なお、ハングアップを起こしていないパケット転送用コア12−nについての図4の処理は時間T/N以内で終了するようになっている。ここで、時間Tは、この時間T内に、少なくとも1回は図3の処理が実行される時間に選定されている。
制御用コア11は、その時点で処理対象のパケット転送用コア12−nについての図4に示す処理を開始し、まず、パケット転送用コア12−nについての監視テーブルTBL1における現カウンタのカウント値(現カウント値)から、パケット転送用コア12−nについての監視テーブル保存域ARTBL1における直前カウント値を減算する(ステップS150)。そして、制御用コア11は、現カウント値と直前カウント値とに差分があるか否か、言い換えると、現カウント値と直前カウント値とが一致しているか否かを判断する(ステップS151)。
制御用コア11は、現カウント値と直前カウント値とに差分がある場合には(この場合はパケット転送用コア12−nがハングアップしていない正常な場合である)、そのときのパケット転送用コア12−nについての監視テーブルTBL1における現カウンタのカウント値(現カウント値)を、パケット転送用コア12−nについての監視テーブル保存域ARTBL1に新たな直前カウント値として上書きし(ステップS152)、図4の一連の処理を終了する。これにより、処理対象のパケット転送用コアがパケット転送用コア12−(n+1)に切り替わり(但し、直前のnがNの場合にはパケット転送用コア12−1に切り替わる)、同様な処理が実行される。また、現カウンタが巡回カウンタであるため、上述した不一致を表す差分は、正の値に限定されず負の値であっても良い。
一方、制御用コア11は、現カウント値と直前カウント値とに差分がある場合には、処理対象のパケット転送用コア12−nがハングアップしていると検出した際の処理を実行する(ステップS153)。例えば、制御用コア11は、OS22を介して、当該メディア変換装置1が有する発光素子をハングアップア障害発生用のパターンで点滅したり、当該メディア変換装置1が有するブザーをハングアップア障害発生用のパターンで断続的に鳴動したりする。また例えば、制御用コア11は、信号線の図示は省略しているが、ネットワークインタフェース部3を介して、予め定められた宛先アドレスを有するハングアップア障害発生通知のパケットを所定の装置に向けて送信する。
(A−3)第1の実施形態の効果
第1の実施形態によれば、OSの介在なしに独立して動作するソフトウェアである複数のパケット転送機能部30−1〜30−Nのうちのいずれかのハングアップを、最小のオーバヘッドで検出することができる。すなわち、パケット転送機能部30−nの処理の中で、ハングアップ検出のための処理はパフォーマンスモニタ32−nへのモニタ開始の指示とモニタ終了の指示であり、パケット転送機能部30−nの本来のパケット転送のための処理にほとんど負担を掛けずにハングアップを検出することができる。その結果、ハングアップの検出のための処理が負荷となって生じていた不必要な受信パケットの廃棄などを未然に防止することができる。
(B)第2の実施形態
次に、本発明によるハングアップ監視装置及びパケット転送装置の第2の実施形態を、図面を参照しながら説明する。第2の実施形態のパケット転送装置はメディア変換装置であり、以下、第2の実施形態のパケット転送装置をメディア変換装置と呼ぶ。
(B−1)第2の実施形態の構成
第2の実施形態のメディア変換装置1Aの全体構成も、第1の実施形態の説明で用いた図1で表すことができる。
しかし、第2の実施形態のメディア変換装置1Aは、以下のような点が、第1の実施形態と構成上若しくは機能上異なっている。
第2の実施形態の共通メモリ10には、第1の実施形態の場合に適用されていた監視テーブルTBL1に加え、転送処理監視テーブルTBL2も設けられる。また、第2の実施形態のローカルメモリ20には、第1の実施形態の場合に適用されていた監視テーブル保存域ARTBL1に加え、転送処理監視テーブル保存域ARTBL2も設けられる。
なお、第2の実施形態の説明では、第1の実施形態と同様な監視テーブルTBL1を「受信キュー確認処理監視テーブル」と呼び、第1の実施形態と同様な監視テーブル保存域ARTBL1を「受信キュー確認処理監視テーブル保存域」と呼ぶこととする。
受信キュー確認処理監視テーブルTBL1におけるパケット転送用コア12−nの現カウンタは、第1の実施形態で説明したように、パケット転送用コア12−nのパケット転送機能部30−nが受信キュー31−nにキューイングされているパケットがあるか否かを確認している期間、パフォーマンスモニタ32−nによってカウントアップされるものであった。また、受信キュー確認処理監視テーブル保存域ARTBL1は、第1の実施形態で説明したように、監視機能部20の機能により、制御用コア20が、パケット転送用コア12−nにハングアップが生じていないと判断したときに、受信キュー確認処理監視テーブルTBL1における現カウンタの値が上書きされるものであった。
この第2の実施形態で新たに設けられた転送処理監視テーブルTBL2は、パケット転送用コア12−nのパケット転送機能部30−nが受信パケットに対する加工(上述したNAT等)や加工後のパケットの送出を実行している期間、パフォーマンスモニタ32−nによってカウントアップされる現カウンタを有するものである。また、第2の実施形態で新たに設けられた転送処理監視テーブル保存域ARTBL2は、監視機能部20の機能により、制御用コア20が、パケット転送用コア12−nにハングアップが生じていないと判断したときに、転送処理監視テーブルTBL2における現カウンタの値が上書きされるものである。
図5は、転送処理監視テーブルTBL2及び転送処理監視テーブル保存域ARTBL2の構成を示す説明図である。
転送処理監視テーブルTBL2も、受信キュー確認処理監視テーブルTBL1と同様に、パケット転送用コア12−nの識別情報(図5(A)では「コア番号」と表記)と、そのパケット転送用コア12−nについての現カウンタのカウント値との対情報を、全てのパケット転送用コア12−1〜12−Nについて記述するように構成されている。
また、転送処理監視テーブル保存域ARTBL2も、受信キュー確認処理監視テーブル保存域ARTBL1と同様に、パケット転送用コア12−nの識別情報(図5(B)では「コア番号」と表記)と、そのパケット転送用コア12−nについての直前カウント値との対情報を、全てのパケット転送用コア12−1〜12−Nについて記述するように構成されている。
第2の実施形態のパケット転送機能部30−nは、パフォーマンスモニタ32−nに指令を与えて、受信キュー確認処理監視テーブルTBL1や転送処理監視テーブルTBL2における現カウンタの値の更新を開始させたり停止させたりするソフトウェア部分を含んでいる(後述する図6参照)。
第2の実施形態の監視機能部20は、受信キュー確認処理監視テーブルTBL1における現カウント値と受信キュー確認処理監視テーブル保存域ARTBL1における直前カウント値の照合や、転送処理監視テーブルTBL2における現カウント値と転送処理監視テーブル保存域ARTBL2における直前カウント値の照合などにより、パケット転送機能部30−nに生じたハングアップを検出するソフトウェア部分を含んでいる(後述する図7参照)。
(B−2)第2の実施形態の動作
次に、第1の実施形態のメディア変換装置1Aにおけるハングアップの検出に関連する動作を説明する。
図6は、第2の実施形態のパケット転送用コア12−nのパケット転送機能部30−nにおける処理の流れを示すフローチャートであり、第1の実施形態の説明で用いた図3の同一、対応ステップには同一符号を付して示している。
パケット転送用コア12−nに係るプロセッサ(以下、図6についての説明では、パケット転送用コア12−nと呼ぶ)は、受信パケットの新たな処理を行うことができる状態になると、第1の実施形態と同様に、パフォーマンスモニタ32−nによる前半のモニタを開始させた後(ステップS100)、受信キュー31−nの状態をチェックし(ステップS101)、チェック終了後に、パフォーマンスモニタ32−nによる前半のモニタを終了させる(ステップS102)。この前半のモニタの開始から終了までの期間において、受信キュー確認処理監視テーブルTBL1における当該パケット転送用コア12−nについての現カウンタ(の記憶エリア)がクロックに従ってカウントアップされる。但し、パケット転送機能部30−nがハングアップしていて、上述したステップS100からS102の処理が適切に実行されない場合には、現カウンタの値(現カウント値)のカウントアップは実行されず、現カウント値が同一値を維持する。
第2の実施形態においても、パケット転送用コア12−nは、パフォーマンスモニタ32−nによる前半のモニタを終了させた後では、受信キュー31−nにキューイングされている受信パケットがあるか否かを判別する(ステップS103)。キューイングされている受信パケットがなければ、パケット転送用コア12−nは、上述したステップS100の処理に戻る。
これに対して、キューイングされている受信パケットがあれば、パケット転送用コア12−nは、パフォーマンスモニタ32−nによる後半のモニタを開始させた後(ステップS120)、受信キュー31−nにキューイングされている最古の受信パケットを取り出して、上述したような所定の処理を施し、その処理後のパケットを、ネットワークインタフェース部3から送信させ(ステップS104、S105)、パフォーマンスモニタ32−nによる後半のモニタを終了させる(ステップS121)。その後、上述したステップS100の処理に戻る。
パフォーマンスモニタ32−nは、後半のモニタの開始時に、共通メモリ10のアクセス構成に対して、当該パケット転送用コア12−nの識別情報や当該パケット転送用コア12−nについての転送処理監視テーブルTBL2における現カウンタ(の記憶エリア)のアドレスを与えて、クロックに基づいたカウントアップを起動させる。また、パフォーマンスモニタ32−nは、後半のモニタの終了時に、共通メモリ10のアクセス構成に対して、当該パケット転送用コア12−nの識別情報や当該パケット転送用コア12−nについての転送処理監視テーブルTBL2における現カウンタ(の記憶エリア)のアドレスを与えて、クロックに基づいたカウントアップを終了させる。
例えば、ステップS104の処理を開始する前にパケット転送機能部30−nがハングアップしていると、後半のモニタが起動されず、パフォーマンスモニタ32−nによる転送処理監視テーブルTBL2における現カウント値の更新が実行されず、現カウント値として同一の値が継続する。
制御用コア11における監視機能部20は、このような受信キュー確認処理監視テーブルTBL1における現カウント値や転送処理監視テーブルTBL2における現カウント値が更新されていないことを検出し、パケット転送機能部30−nのハングアップを検出しようとしたものである。
図7は、第2の実施形態の制御用コア11の監視機能部20における流れを示すフローチャートであり、第1の実施形態の説明で用いた図4の同一、対応ステップには同一符号を付して示している。
第2の実施形態の制御用コア11も、パケット転送用コア12−1〜12−N毎に定まっているタイミングで定期的に図7に示す処理(監視機能部20を構成するソフトウェアの処理)を開始する。
制御用コア11は、その時点で処理対象のパケット転送用コア12−nについての図7に示す処理を開始し、まず、パケット転送用コア12−nについての受信キュー確認処理監視テーブルTBL1における現カウンタのカウント値(現カウント値)から、パケット転送用コア12−nについての受信キュー確認処理監視テーブル保存域ARTBL1における直前カウント値を減算し(ステップS150)、現カウント値と直前カウント値とに差分があるか否か(言い換えると、現カウント値と直前カウント値とが一致しているか否か)を判断する(ステップS151)。
制御用コア11は、受信キュー確認処理監視テーブルTBL1における現カウン値と受信キュー確認処理監視テーブル保存域ARTBL1における直前カウント値とに差分がある場合には、そのときのパケット転送用コア12−nについての受信キュー確認処理監視テーブルTBL1における現カウント値を、パケット転送用コア12−nについての受信キュー確認処理監視テーブル保存域ARTBL1に新たな直前カウント値として上書きすると共に(ステップS152)、そのときのパケット転送用コア12−nについての転送処理監視テーブルTBL2における現カウント値を、パケット転送用コア12−nについての転送処理監視テーブル保存域ARTBL2に新たな直前カウント値として上書きし(ステップS170)、図7の一連の処理を終了する。これにより、処理対象のパケット転送用コアがパケット転送用コア12−(n+1)に切り替わり、同様な処理が実行される。
一方、制御用コア11は、受信キュー確認処理に係る現カウント値と直前カウント値とに差分がある場合には、パケット転送用コア12−nについての転送処理監視テーブルTBL2における現カウント値から、パケット転送用コア12−nについての転送処理監視テーブル保存域ARTBL2における直前カウント値を減算し(ステップS171)、現カウント値と直前カウント値とに差分があるか否か(言い換えると、現カウント値と直前カウント値とが一致しているか否か)を判断する(ステップS172)。
制御用コア11は、転送処理監視テーブルTBL2における現カウン値と転送処理監視テーブル保存域ARTBL2における直前カウント値とに差分がある場合には、上述したステップS152及びS170の処理を実行する。
一方、制御用コア11は、転送処理に係る現カウント値と直前カウント値とに差分がある場合には、処理対象のパケット転送用コア12−nがハングアップしていると検出した際の処理を実行する(ステップS153)。
(B−3)第2の実施形態の効果
第2の実施形態によっても、OSの介在なしに独立して動作するソフトウェアである複数のパケット転送機能部30−1〜30−Nのうちのいずれかのハングアップを、最小のオーバヘッドで検出することができる。
動作の項で説明は省略しているが、受信キュー確認処理に要する時間を計時すると共に、転送処理に要する時間を計時しているので、パケット転送用コア毎のCPU使用率等を容易に算出(測定)することができる。言い換えると、CPU使用率の測定用に用いるカウンタの値を利用して、パケット転送機能部のハングアップを検出することができる。
(C)他の実施形態
上記各実施形態の説明においても、種々変形実施形態に言及したが、さらに、以下に例示するような変形実施形態を挙げることができる。
上記各実施形態では、受信キュー確認処理監視テーブル保存域ARTBL1や転送処理監視テーブル保存域ARTBL2を、制御用コア11のローカルメモリ21に設けたものを示したが、これら保存域の少なくとも一方を共通メモリ10に設けるようにしても良い。
上記各実施形態では、共通メモリ10が全てのコア11、12−1〜12−Nに共通な場合を示したが、共通メモリが一部のコアに共通なように設けるようにしても良い。例えば、制御用コア11とパケット転送用コア12−1に共通なメモリ、制御用コア11とパケット転送用コア12−2に共通なメモリ、…のように、共通なメモリを複数に分けて設けるようにしても良い。特許請求の範囲の用語「共通メモリ」は、この変形実施形態のように、複数の共通メモリに分かれている場合も含むものとする。
上記各実施形態では、監視機能部20が、各パケット転送用コア12−1〜12−Nがハングアップしているかを監視する周期が同じである場合を示したが、監視周期が各パケット転送用コア12−1〜12−Nで異なるようにしても良い。例えば、第2の実施形態の説明で言及した使用率(CPU使用率)をパケット転送用コア毎に算出し、使用率が高いパケット転送用コアほど、監視周期を短くするようにしても良い。
上記第2の実施形態では、受信キュー確認処理監視テーブルTBL1における現カウント値と受信キュー確認処理監視テーブル保存域ARTBL1における直前カウント値が一致し、かつ、転送処理監視テーブルTBL2における現カウント値と転送処理監視テーブル保存域ARTBL2における直前カウント値が一致するときに、パケット転送用コア12−nがハングアップしたと判断する場合を示したが、受信キュー確認処理監視テーブルTBL1における現カウント値と受信キュー確認処理監視テーブル保存域ARTBL1における直前カウント値との一致と、転送処理監視テーブルTBL2における現カウント値と転送処理監視テーブル保存域ARTBL2における直前カウント値との一致の少なくとも一方が成立したときに、パケット転送用コア12−nがハングアップしたと判断するようにしても良い。このようにした場合には、例えば、図6のステップS102のカウンタの終了処理が実行されず、受信キュー確認処理監視テーブルTBL1のカウントアップが半永久的に実行されている場合であっても、転送処理監視テーブルTBL2における現カウント値と転送処理監視テーブル保存域ARTBL2における直前カウント値との照合に基づいて、パケット転送用コア12−nがハングアップしたことを検出することができる。
上記第1の実施形態では、監視機能部20の図4に示す1回のループで、監視テーブルと監視テーブル保存域のカウント値が一致すると直ちにパケット転送用コア12−nがハングアップしたと確定する場合を示したが、図4に示す処理ループの連続所定回数(例えば2回)で全て監視テーブルと監視テーブル保存域のカウント値が一致するという結果を得たときに、パケット転送用コア12−nがハングアップしたと確定するようにしても良い。第2の実施形態についても、同様な変形実施形態を挙げることができる。
上記第2の実施形態では、監視テーブルと監視テーブル保存域との組の数が2組の場合を示したが、監視テーブルと監視テーブル保存域との組が3組以上あっても良い。この場合には、パケット転送機能部の処理を3以上の処理部分に区分することを要する。
上記各実施形態では、各パケット転送用コア12−1〜12−Nのパフォーマンスモニタ32−1〜32−Nを使用して所定のカウンタを動作させてパケット転送機能部30−1〜30−Nのハングアップを監視する場合を示したが、パフォーマンスモニタ以外の既存の構成要素を利用してパケット転送機能部30−1〜30−Nのハングアップを監視するようにしても良い。例えば、各パケット転送用コアが、ハードウェア要素としてのクロックカウンタを具備している場合には、パフォーマンスモニタの代りにクロックカウンタをパケット転送機能部30−1〜30−Nのハングアップの監視に使用することができる。この場合、パケット転送機能部30−nがクロックカウンタを読み出して現カウント値(図2若しくは図5参照)を更新する。
上記各実施形態では、監視機能部がソフトウェアでなるものを示したが、監視機能部をハードウェア要素として構築するようにしても良い。
上記各実施形態では、パケット転送コアが複数あるものを示したが、パケット転送コアが1個の場合にも、本発明の技術思想を適用することができる。
上記各実施形態は、本発明の技術思想をメディア変換装置に適用したものであったが、本発明の技術思想を他のパケット転送装置に適用することもできる。また、ハングアップの監視対象のコアが行う処理も、パケット転送処理に限定されるものではなく、他種類の処理を行うものであっても良い。さらに、監視対象の一部のコアがパケット転送処理を行い、残部のコアが他種類の処理を行うものであっても良い。
上記各実施形態は、複数のコアを有するCPUパッケージに対して、本発明の技術思想を適用した場合を示したが、監視用コアに相当する処理部や、各パケット転送用コアに相当する処理部が、別個のパッケージやチップで構成されている場合にも、本発明の技術思想を適用することができる。なお、特許請求の範囲では用語「コア」を用いているが、このような変形実施形態を含むものとする。
1、1A…メディア変換装置、2…CPU、3…ネットワークインタフェース部、
10…共通メモリ、11…制御用コア、12−1〜12−N…パケット転送用コア、13…クロック発生部、
20…監視機能部、21…ローカルメモリ、
30−1〜30−N…パケット転送機能部、31−1〜31−N…受信キュー、32−1〜32−N…パフォーマンスモニタ、
TBL1…監視テーブル(受信キュー確認処理監視テーブル)、ARTBL1…監視テーブル保存域(受信キュー確認処理監視テーブル保存域)、TBL2…転送処理監視テーブル、ARTBL2…転送処理監視テーブル保存域。

Claims (6)

  1. 所定処理をプロセッサに実行させる処理プログラムである所定処理機能部を有する、並列処理可能な少なくとも1個の処理用コアと、
    上記各処理用コアにおける上記処理プログラムのハングアップを監視する制御用コアと、
    上記各処理用コアと上記制御用コアが共にアクセス可能な共通メモリとを有し、
    上記共通メモリには、クロックに基づいて現カウント値を更新する、上記各処理用コア毎の現カウンタが設定され、
    上記制御用コアが有するローカルメモリ若しくは上記共通メモリには、転送されてきた現カウント値を直前カウント値として保存する、上記各処理用コア毎の直前カウント値保存域が設定され、
    上記各処理用コアは、上記処理プログラムの所定部分の開始から終了までの期間、上記処理プログラムからの起動により、当該処理用コアについての上記現カウンタをカウント動作させる、ハードウェア要素としてのカウント指示部を有し、
    上記制御用コアは、上記各処理用コアについての現カウント値と直前カウント値との照合を間欠的に実行し、両カウント値の一致時に処理対象の上記処理用コアにおける上記処理プログラムはハングアップと判断し、両カウント値の不一致時に現カウント値を直前カウント値として上記直前カウント値保存域に保存させる監視機能部を有する
    ことを特徴とするハングアップ監視装置。
  2. 上記各カウント指示部として、当該処理用コアが有するパフォーマンスモニタを適用していることを特徴とする請求項1に記載のハングアップ監視装置。
  3. 上記処理プログラムを複数の部分に分割し、
    分割部分毎に、別個の上記現カウンタと上記直前カウント値保存域とを設定し、
    上記監視機能部が、各組の上記現カウンタと上記直前カウント値保存域とのカウント値の照合を行い、上記処理プログラムのハングアップ発生を判断する
    ことを特徴とする請求項1又は2に記載のハングアップ監視装置。
  4. 上記監視機能部は、上記共通メモリをアクセスする構成部分を除き、プロセッサとそのプロセッサが実行するプログラムとで構成されていることを特徴とする請求項1〜3のいずれかに記載のハングアップ監視装置。
  5. 上記各処理用コアにおける上記処理プログラムがパケット転送に係る処理プログラムであることを特徴とする請求項1〜4のいずれかに記載のハングアップ監視装置。
  6. パケット転送プログラムを有する、複数のパケット処理用コアを備えたパケット転送装置において、
    上記パケット転送プログラムのハングアップを監視するハングアップ監視装置として、請求項5に記載のハングアップ監視装置を適用していることを特徴とするパケット転送装置。
JP2015047353A 2015-03-10 2015-03-10 ハングアップ監視装置及びパケット転送装置 Active JP6402657B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015047353A JP6402657B2 (ja) 2015-03-10 2015-03-10 ハングアップ監視装置及びパケット転送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015047353A JP6402657B2 (ja) 2015-03-10 2015-03-10 ハングアップ監視装置及びパケット転送装置

Publications (2)

Publication Number Publication Date
JP2016167223A JP2016167223A (ja) 2016-09-15
JP6402657B2 true JP6402657B2 (ja) 2018-10-10

Family

ID=56897765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015047353A Active JP6402657B2 (ja) 2015-03-10 2015-03-10 ハングアップ監視装置及びパケット転送装置

Country Status (1)

Country Link
JP (1) JP6402657B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0222743A (ja) * 1988-07-12 1990-01-25 Nec Corp クロツクカウンタ付プロセツサ
JPH0477935A (ja) * 1990-07-19 1992-03-12 Mitsubishi Electric Corp 故障検出回路

Also Published As

Publication number Publication date
JP2016167223A (ja) 2016-09-15

Similar Documents

Publication Publication Date Title
US9218203B2 (en) Packet scheduling in a multiprocessor system using inter-core switchover policy
US9596187B2 (en) Time-triggered Ethernet-based data transmission method and node device
US8385354B2 (en) Scalable hardware mechanism to implement time outs for pending POP requests to blocking work queues
WO2016192408A1 (zh) 集群系统中节点的故障检测方法和装置
US9323596B2 (en) Network apparatus and method of monitoring processor
TWI631841B (zh) 開放流協定硬體加速計時器實施系統與方法
TW201837699A (zh) 同步硬體事件收集
US8174980B2 (en) Methods, systems, and computer readable media for dynamically rate limiting slowpath processing of exception packets
US10896001B1 (en) Notifications in integrated circuits
CN107977302B (zh) 一种cpu使用率输出方法及装置
US9455907B1 (en) Multithreaded parallel packet processing in network devices
US11196647B2 (en) Area efficient traffic generator
US9667722B2 (en) Method and system for non-tagged based latency calculation
JP5672504B2 (ja) 振分先を切り替える並列パケット処理方法および装置
US20150089101A1 (en) Managing network interface controller-generated interrupts
Chakraborty et al. A low-latency multipath routing without elephant flow detection for data centers
JP6402657B2 (ja) ハングアップ監視装置及びパケット転送装置
US9608888B2 (en) Transmitting device, method for monitoring memory, and transmission system
JP6402576B2 (ja) 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
US20160224502A1 (en) Synchronization in a Computing System with Multi-Core Processing Devices
US10050897B2 (en) Control method and topology network structure for transmitting packet
Kristiansen et al. Extending network simulators with communication software execution models
JP2016012801A (ja) 通信装置、通信システム及び通信装置制御方法
JP2018182688A (ja) 情報処理装置、情報処理システムおよび情報処理システムの制御方法
US20180076973A1 (en) Transmission system and transmission station

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180718

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180814

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180827

R150 Certificate of patent or registration of utility model

Ref document number: 6402657

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150