(57)【要約】【課題】通信装置において、待機系に十分な性能を発揮させ呼制御ＤＢの再構成に要する時間を短縮する。【解決手段】一例において、通信装置は、運用系呼制御装置と、複数プロセッサコアを含み、系切り替え後に呼制御に関する情報を処理する待機系呼制御装置と、を含む。待機系呼制御装置は、運用系呼制御装置から呼制御情報を受信する。待機系呼制御装置は、系切り替えにおいて、待機系呼制御装置のハードウェアリソース情報を使用して、呼制御情報を使用した呼制御データベースの再構成処理を割り当て可能なプロセッサコアの数を決定する。待機系呼制御装置は、前記決定したプロセッサコアの数に基づき、前記呼制御データベースの再構成を行う処理単位の数を決定する。【選択図】図６
2014229089.tif 000002
【特許請求の範囲】
【請求項１】
呼制御に関する情報を処理する運用系呼制御装置と、
複数プロセッサコアを含み、系切り替え後に呼制御に関する情報を処理する待機系呼制御装置と、を含み、
前記運用系呼制御装置は、呼を制御するための呼制御情報及び前記呼制御情報から生成可能な管理情報を含む呼制御データベースを有し、前記呼制御データベースを参照して前記呼制御に関する情報を処理し、
前記待機系呼制御装置は、
前記待機系呼制御装置のハードウェアリソースを監視して、前記複数プロセッサコアの情報を含む前記ハードウェアリソースの情報を取得し、
前記運用系呼制御装置から前記呼制御情報を受信し、
前記系切り替えにおいて、前記ハードウェアリソースの情報を使用して、前記呼制御情報を使用した前記呼制御データベースの再構成処理を割り当て可能なプロセッサコアの数を決定し、
前記決定した割り当て可能なプロセッサコアの数に基づき、前記呼制御データベースの再構成を行う処理単位の数を決定し、
前記決定した数の処理単位により前記呼制御データベースを再構成する、通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記待機系呼制御装置は、前記割り当て可能なプロセッサコアを決定し、
前記待機系呼制御装置は、前記決定した割り当て可能なプロセッサコアのそれぞれに前記処理単位を割り当てる、通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記待機系呼制御装置は、前記割り当て可能なプロセッサコアの数を前記処理単位の数と決定する、通信装置。
【請求項４】
請求項１、２又は３に記載の通信装置であって、
前記ハードウェアリソースの情報は、動作しているプロセッサコアのそれぞれの使用率の情報を含み、
前記待機系呼制御装置は、前記使用率の情報を使用して前記割り当て可能なプロセッサコアの数を決定する、通信装置。
【請求項５】
請求項１、２又は３に記載の通信装置であって、
前記ハードウェアリソースの情報は、キャッシュメモリを使用しているプロセッサコア数の情報と、前記キャッシュメモリのサイズの情報と、を含み、
前記待機系呼制御装置は、前記キャッシュメモリを使用しているプロセッサコア数の情報と、前記キャッシュメモリのサイズの情報とを使用して、前記割り当て可能なプロセッサコア当たりのキャッシュサイズが閾値以上となるように、前記割り当て可能なプロセッサコアの数を決定する、通信装置。
【請求項６】
請求項１、２又は３に記載の通信装置であって、
前記ハードウェアリソースの情報は、動作しているプロセッサコアのそれぞれの使用率の情報と、キャッシュメモリを共有しているプロセッサコア数の情報と、前記キャッシュメモリのサイズの情報と、を含み、
前記待機系呼制御装置は、
前記使用率の情報を使用して前記使用可能プロセッサコアおいて前記使用率が閾値以下であるプロセッサコアの数Ｎ１を決定し、
前記キャッシュメモリを共有しているプロセッサコア数の情報と、前記キャッシュメモリのサイズの情報とを使用して、前記割り当て可能なプロセッサコア当たりのキャッシュサイズが閾値以上となるプロセッサコアの数Ｎ２を決定し、
前記Ｎ１と前記Ｎ２のうち最小値を、前記割り当て可能なプロセッサコアの数と決定する、通信装置。
【請求項７】
呼を制御するための呼制御情報及び前記呼制御情報から生成可能な管理情報を含む呼制御データベースを有し、前記呼制御データベースを参照して呼制御に関する情報を処理する運用系呼制御装置と、
複数プロセッサコアを含み、系切り替え後に呼制御に関する情報を処理する待機系呼制御装置と、を含む通信装置における、系を切り替える方法であって、
前記待機系呼制御装置が、
前記複数プロセッサコアの情報を含む前記待機系呼制御装置のハードウェアリソースの情報を取得し、
前記運用系呼制御装置から前記呼制御情報を受信し、
前記系切り替えにおいて、前記ハードウェアリソースの情報を使用して、前記呼制御データベースの再構成処理を割り当て可能なプロセッサコアの数を決定し、
前記決定した割り当て可能なプロセッサコアの数に基づき、前記呼制御情報を使用した前記呼制御データベースの再構成を行う処理単位の数を決定し、
前記決定した数の処理単位により前記呼制御データベースを再構成する、方法。
【請求項８】
請求項７に記載の方法であって、
前記待機系呼制御装置が、
前記割り当て可能なプロセッサコアを決定し、前記決定した割り当て可能なプロセッサコアのそれぞれに前記処理単位を割り当てる、方法。
【請求項９】
請求項７又は８に記載の方法であって、
前記待機系呼制御装置が、前記割り当て可能なプロセッサコアの数を前記処理単位の数と決定する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び通信装置における系の切り替え方法に関する。
【背景技術】
【０００２】
従来、通信装置において、通信を行うためのデータを複数の機能プレーンに分離して処理する（通信プロトコルを複数のプレーンに分割する）モデルが考えられている。その一つに、制御プレーン：Ｃ−Ｐｌａｎｅ（Ｃｏｎｔｒｏｌ  Ｐｌａｎｅ）とユーザプレーン：Ｕ−Ｐｌａｎｅ（Ｕｓｅｒ  Ｐｌａｎｅ）の二つの機能プレーンに分離してサービスを提供するモデルがある。
【０００３】
Ｃ−Ｐｌａｎｅは呼制御のためのシグナリングを行う。Ｕ−Ｐｌａｎｅは、呼制御に従ってユーザデータを転送する。一般的に、Ｃ−Ｐｌａｎｅの機能とＵ−Ｐｌａｎｅの機能は異なるハードウェアに実装される。これにより、Ｕ−Ｐｌａｎｅはユーザデータ転送に専念することができ、ユーザデータの転送速度を向上させる。以下において、Ｃ−Ｐｌａｎｅ及びＵ−Ｐｌａｎｅの機能をそれぞれ実装する装置を、Ｃ−Ｐｌａｎｅ装置及びＵ−Ｐｌａｎｅ装置と呼ぶ。
【０００４】
Ｃ−Ｐｌａｎｅ装置は、呼制御データベース（ＤＢ）を保持し、当該呼制御ＤＢ内で呼制御情報を管理する。呼制御情報は、それぞれの呼を制御するための情報であり、呼ごとに管理される。また、呼制御ＤＢは、呼制御情報の他に、呼制御情報の検索を効率化するための管理情報を保持する。Ｃ−Ｐｌａｎｅ装置は、例えば、パケット転送先を決定し、課金処理を行う他、他の制御処理を行う。
【０００５】
Ｕ−Ｐｌａｎｅ装置は、呼のユーザデータを処理する。Ｕ−Ｐｌａｎｅ装置は、ユーザデータの処理に必要な呼制御情報をＣ−Ｐｌａｎｅ装置から取得し、保持する。必要な呼制御情報は、Ｃ−Ｐｌａｎｅ装置が保持する呼制御情報の一部である。Ｕ−Ｐｌａｎｅ装置は、保持する呼制御情報に従って、ユーザデータを処理する。
【０００６】
サービスの停止が許されない通信装置は、障害に備え、運用系と待機系から成る冗長構成を有する。これによって、サービス停止を回避することが可能である。この通信装置は、障害発生時、サービス提供のための使用する系を、運用系から待機系へ切り替える。この際、現在の呼へのサービスを維持するため、通信装置は、運用系から待機系へ呼制御情報をミラーリングする。ミラーリングは、全く同一の複製データを別の記憶装置に書き込む手法である。
【０００７】
近年、多様なサービス内容と収容する呼量の増加から、呼制御情報が肥大化し、膨大な量となっている。よって、通信装置は、待機系で呼制御ＤＢを再構成するために必要な情報のみを、運用系から待機系へ転送することが好ましい。待機系は、受信した情報から、呼制御ＤＢを再構成する。
【０００８】
系切り替えにおける待機系の呼制御ＤＢ再構成の完了まで、サービスは停止する。近年の通信サービスの品質要件を満たすには、サービス停止時間をできる限り短くすることが必要である。つまり、待機系による呼制御ＤＢの再構成の時間を、できる限り短縮することが要求される。
【０００９】
例えば、特許文献１は、呼制御ＤＢの再構成に必要な時間を短縮し、系切り替え時間の短縮を実現する方法を開示する。特許文献１に開示されている通信装置は、１台の運用系Ｃ−Ｐｌａｎｅ装置、１台の待機系Ｃ−Ｐｌａｎｅ装置、そして、複数台のＵ−Ｐｌａｎｅ装置を有する。１台の運用系又は待機系Ｃ−Ｐｌａｎｅ装置が、複数台のＵ−Ｐｌａｎｅ装置の呼制御情報を収容する。
【００１０】
待機系Ｃ−Ｐｌａｎｅ装置は、複数のスレッドを生成する。待機系Ｃ−Ｐｌａｎｅ装置は、呼制御ＤＢを複数の領域に分割し、各分割領域の再構成を一つのスレッドに割り当てる。待機系Ｃ−Ｐｌａｎｅ装置は、マルチコアＣＰＵを備えており、生成したスレッドを複数ＣＰＵコアに割り当て、並列に分割領域を再構成する。これにより、系切り替え時間を短縮する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１０−１６０５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上記従来の通信装置は、待機系Ｃ−Ｐｌａｎｅ装置が、複数のスレッドを用いて並列に呼制御ＤＢを再構成することで、サービス停止時間を短縮し、信頼性の高いサービス提供を実現する。
【００１３】
しかし、上記従来の通信装置において、生成されるスレッド数は、待機系Ｃ−Ｐｌａｎｅ装置のハードウェアリソースと係わりなく決定される。そのため、生成されるスレッド数により、待機系のハードウェエアが、十分の処理性能を発揮することができない場合がある。従って、通信装置において、待機系に十分な性能を発揮させ、呼制御ＤＢの再構成に要する時間を短縮することができる技術が望まれる。
【課題を解決するための手段】
【００１４】
本発明の一態様は、呼制御に関する情報を処理する運用系呼制御装置と、複数プロセッサコアを含み、系切り替え後に呼制御に関する情報を処理する待機系呼制御装置と、を含む通信装置である。前記運用系呼制御装置は、呼を制御するための呼制御情報及び前記呼制御情報から生成可能な管理情報を含む呼制御データベースを有し、前記呼制御データベースを参照して前記呼制御に関する情報を処理する。前記待機系呼制御装置は、前記待機系呼制御装置のハードウェアリソースを監視して、前記複数プロセッサコアの情報を含む前記ハードウェアリソースの情報を取得する。前記待機系呼制御装置は、前記運用系呼制御装置から前記呼制御情報を受信する。前記待機系呼制御装置は、前記系切り替えにおいて、前記ハードウェアリソースの情報を使用して、前記呼制御情報を使用した前記呼制御データベースの再構成処理を割り当て可能なプロセッサコアの数を決定する。前記待機系呼制御装置は、前記決定した割り当て可能なプロセッサコアの数に基づき、前記呼制御データベースの再構成を行う処理単位の数を決定する。前記待機系呼制御装置は、前記決定した数の処理単位により前記呼制御データベースを再構成する。
【発明の効果】
【００１５】
本発明の一態様によれば、通信装置において、待機系に十分な性能を発揮させ呼制御ＤＢの再構成に要する時間を短縮することができる。
【図面の簡単な説明】
【００１６】
【図１】実施例１における通信装置の構成例を模式的に示すブロック図である。
【図２】実施例１における呼制御ＤＢの構成例を示す。
【図３】実施例１におけるマルチコアＣＰＵを備えたＣ−Ｐｌａｎｅ装置のハードウェアリソース構成例を示す、ブロック図である。
【図４】実施例１において、運用系Ｃ−Ｐｌａｎｅ装置と待機系Ｃ−Ｐｌａｎｅ装置との間における、使用する系の切り替えを示すシーケンス図である。
【図５】実施例１において、待機系Ｃ−Ｐｌａｎｅ装置の呼制御ＤＢの再構成処理を示すシーケンス図である。
【図６】実施例１において、Ｃ−Ｐｌａｎｅ装置の並列処理制御に関連する機能ブロックの一例を模式的に示すブロック図である。
【図７Ａ】実施例１における、並列処理制御プログラムの並列処理制御の一例を示すフローチャートである。
【図７Ｂ】実施例１における、並列処理制御プログラムの並列処理制御の一例を示すフローチャートである。
【図８】実施例２における、並列処理制御プログラムのキャッシュサイズを考慮した並列処理制御の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。特に説明のない場合、各図において共通の構成については同一の参照符号が付されている。
【００１８】
本実施形態の通信装置は、冗長構成を有する。通信装置は、運用系において障害が発生すると、通信サービスの提供に使用する系を、運用系から待機系へ切り替える。通信装置は、待機系のハードウェアリソース情報を取得し、当該ハードウェアリソース情報に基づいて、待機系において系切り替えのための処理を分割して行うための、処理単位の数を決定する。
【００１９】
処理単位は、例えば、プロセス又はスレッドであり、以下に説明する実施例は、ハードウェアリソースに応じた数のスレッドを生成する。通信装置における系切り替えにおいて、待機系は、呼制御データベース（ＤＢ）を再構成する。再構成は、運用系における呼制ＤＢから待機系に送信された制御情報から、制御ＤＢを構成する。待機系は、当該待機系のハードウェアリソースに応じた数のスレッドを生成し、生成したスレッドにより呼制御ＤＢを再構成する。これにより、変化しうる待機系のハードウェアリソースに適した数の処理単位を生成し、系切り替えの時間を短縮することができる。
【００２０】
以下の説明において、ハードウェアリソース構成は、プロセッサコアの数、プロセッサコアが使用するキャッシュメモリのレベル数、キャッシュメモリを使用しているプロセッサコアの数、キャッシュメモリサイズなど、ハードウェアリソースにおいて使用されている静的構成を示す。
【００２１】
ハードウェアリソース負荷状態は、ＣＰＵコア使用率のように、ハードウェアリソース構成において動作している構成要素の変化する負荷状態を示す。ハードウェアリソースは、ハードウェアリソース構成及びハードウェアリソース負荷状態を包含する。ハードウェアリソース情報は、ハードウェアリソースについての情報である。
【００２２】
以下に説明する例において、通信装置は、呼制御のための情報を処理する呼制御装置である制御プレーン装置（Ｃ−Ｐｌａｎｅ装置）と、ユーザデータを処理するユーザデータ処理装置であるユーザプレーン装置（Ｕ−Ｐｌａｎｅ装置）とを含む。通信装置は冗長構成を含み、当該冗長構成は、少なくとも一つの運用系Ｃ−Ｐｌａｎｅ装置及び少なくとも一つの待機系Ｃ−Ｐｌａｎｅ装置を含む。通信装置は、複数のＵ−Ｐｌａｎｅ装置を含む。
【００２３】
運用系Ｃ−Ｐｌａｎｅ装置は、呼を制御するために使用される呼制御情報を格納する呼制御ＤＢを保持している。呼制御ＤＢは、さらに、呼制御情報と異なる管理情報を含む。管理情報は、例えば、ＤＢ検索のための情報を含む。
【００２４】
運用系Ｃ−Ｐｌａｎｅ装置において障害が発生すると、通信装置は、待機系Ｃ−Ｐｌａｎｅ装置へ、通信サービス提供に使用する系を切り替える。系切り替えにおいて、待機系Ｃ−Ｐｌａｎｅ装置は、運用系Ｃ−Ｐｌａｎｅ装置から受信した呼制御情報を使用して呼制御ＤＢを再構成する。
【００２５】
待機系Ｃ−Ｐｌａｎｅ装置は、当該待機系Ｃ−Ｐｌａｎｅ装置のハードウェアリソースを監視する。待機系Ｃ−Ｐｌａｎｅ装置は、予め定められたイベントに応答して、当該待機系Ｃ−Ｐｌａｎｅ装置のハードウェアリソースの情報を取得する。取得されるハードウェアリソース情報の例は、プロセッサコア数、プロセッサコア使用率、キャッシュメモリサイズ等である。
【００２６】
待機系Ｃ−Ｐｌａｎｅ装置は、複数のプロセッサコアを含み、並列処理を行うことができる。複数のプロセッサコアは、一つ又は複数のプロセッサチップに実装されている。一つのプロセッサチップは一つのみ又は複数のプロセッサコアを含む。系切り替えにおいて、待機系Ｃ−Ｐｌａｎｅ装置は、取得したハードウェアリソース情報を使用して生成するスレッド数を決定する。
【００２７】
待機系Ｃ−Ｐｌａｎｅ装置は、生成したスレッドによる並列処理により呼制御ＤＢを再構成する。これにより、例えば、待機系Ｃ−Ｐｌａｎｅ装置がリプレースされてそのハードウェアリソース構成が変化した場合にも、そのハードウェアリソース構成に応じた呼制御ＤＢの再構成処理を行うことができる。
【実施例１】
【００２８】
本実施例は、呼制御ＤＢ再構成のスレッド数の決定において参照するハードウェアリソース情報として、ＣＰＵコア数（プロセッサコア数）と、各ＣＰＵコアのＣＰＵコア使用率を用いる例を説明する。以下の説明において、ＣＰＵコア数は、動作しているＣＰＵコアの数である。
【００２９】
以下の説明において、ＣＰＵコア数は、ハードウェアリソースにおける実際のＣＰＵコアの数又はＯＳが認識するＣＰＵコアの数を示す。例えば、ＯＳがハイパースレッディング機能を有する場合、ＯＳが認識するＣＰＵコア数は、実際のハードウェアＣＰＵコア数よりも多い。また、通信装置が複数のＣＰＵを含む場合、本例は、複数ＣＰＵの総ＣＰＵコア数の情報を使用する。
【００３０】
待機系Ｃ−Ｐｌａｎｅ装置は、当該装置のＣＰＵコア数及びＣＰＵコア使用率に基づいて、呼制御ＤＢの再構成処理を割り当て可能なＣＰＵコアの数を決定する。待機系Ｃ−Ｐｌａｎｅ装置は、当該決定したＣＰＵコアの数に基づいて生成するスレッド数を決定する。一例において、待機系Ｃ−Ｐｌａｎｅ装置は、割り当て可能なＣＰＵコアの数と同一数のスレッドを生成する。
【００３１】
図１を参照して、Ｃ−Ｐｌａｎｅ装置を冗長化した通信装置を説明する。図１は、本実施例の通信装置５００の構成例を模式的に示すブロック図である。図１において、通信装置５００は、スイッチングハブ３００に接続された、運用系Ｃ−Ｐｌａｎｅ装置１００Ａ、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂ、（ｎ＋１）台のＵ−Ｐｌａｎｅ装置２００−０〜２００−ｎを含む。
【００３２】
運用系Ｃ−Ｐｌａｎｅ装置１００Ａ及び待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、それぞれ、ＯＳ１０７Ａ、１０７Ｂ、切り替え制御プログラム１０５Ａ、１０５Ｂ、呼処理アプリケーション１０３Ａ、１０３Ｂ、並列処理制御プログラム１０１Ａ、１０１Ｂを含む。
【００３３】
図１の例において、Ｃ−Ｐｌａｎｅ装置１００Ａ、１００Ｂは、同じプログラムを有している。このため、系切り替え後、運用系Ｃ−Ｐｌａｎｅ装置１００Ａは待機系Ｃ−Ｐｌａｎｅ装置として動作し、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは運用系Ｃ−Ｐｌａｎｅ装置として動作することができる。
【００３４】
呼処理アプリケーション１０３Ａ、１０３Ｂは、それぞれ、運用状態にある場合にシグナリング処理を行なう。切り替え制御プログラム１０５Ａ、１０５Ｂは、運用系から待機系への系切り替えを制御する。並列処理制御プログラム１０１Ａ、１０１Ｂは、切り替えにおいて待機系に含まれている場合に、待機系で生成するスレッド数を決定する。
【００３５】
図１において、運用系Ｃ−Ｐｌａｎｅ装置１００Ａ及び待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、それぞれ、呼制御ＤＢ１９０Ａ及び１９０Ｂを保持している。後述するように、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、系切り替え時の他、系切り替え前に適宜、運用系Ｃ−Ｐｌａｎｅ装置１００Ａから制御情報を受信し、呼制御ＤＢ１９０Ｂを再構成する。
【００３６】
待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、系切り替えにおいてのみ制御情報を受信して呼制御ＤＢ１９０Ｂを再構成してもよいし、定期的に制御情報を受信し、系切り替えにおいてのみ呼制御ＤＢ１９０Ｂを再構成してもよい。呼制御ＤＢ１９０Ａ、１９０Ｂについては後述する。
【００３７】
Ｕ−Ｐｌａｎｅ装置２００−０〜２００−ｎは、それぞれ、ＣＰＵ２５１−０〜２５１−ｎ及び主記憶装置２５２−０〜２５２−ｎを含む。Ｕ−Ｐｌａｎｅ装置２００−０〜２００−ｎは、これらの他、不図示のインタフェース及び二次記憶装置等を含む。主記憶装置２５２−０〜２５２−ｎは、それぞれ、ＯＳ２０３−０〜２０３−ｎ、呼処理アプリケーション２０１−０〜２０１−ｎ及び呼制御ＤＢ２９０〜２９０−ｎを格納している。
【００３８】
運用系Ｃ−Ｐｌａｎｅ装置１００Ａは、各呼を、Ｕ−Ｐｌａｎｅ装置２００−０〜２００−ｎのいずれか一つに割り当てる。運用系Ｃ−Ｐｌａｎｅ装置１００Ａは、呼のシグナリング処理実行中に、当該呼のユーザデータを処理するＵ−Ｐｌａｎｅ装置２００−ｋ（ｋ＝１〜ｎ）を決定する。
【００３９】
Ｕ−Ｐｌａｎｅ装置の呼制御ＤＢ２９０−０〜２９０−ｎは、それぞれ、割り当てられている呼の制御情報を格納している。Ｕ−Ｐｌａｎｅ装置２００−０〜２００−ｎは、それぞれ、割り当てられている呼のユーザデータを、呼制御ＤＢ２９０〜２９０−ｎの情報に従って処理する。
【００４０】
運用系Ｃ−Ｐｌａｎｅ１００Ａは、各呼のシグナリング処理を行い、それにより得られる各呼の呼制御情報（呼を制御するための情報）を、呼制御ＤＢ１９０Ａに格納する。呼制御ＤＢ１９０は、全Ｕ−Ｐｌａｎｅ装置２００−０〜２００−ｎに収容される全ての呼の呼制御情報を管理する。運用系Ｃ−Ｐｌａｎｅ１００Ａは、呼制御情報を使用して、呼制御に関する情報を処理する。
【００４１】
図２は、呼制御ＤＢ１９０Ａの構成例を示す。呼制御ＤＢ１９０Ｂも同様の構成を有する。呼制御ＤＢ１９０Ａにおける最新の制御情報から再構成された呼制御ＤＢ１９０Ｂは、呼制御ＤＢ１９０Ａのコピーであり、同一構成を有し、同一内容の情報を有する。
【００４２】
呼制御ＤＢ１９０Ａは、Ｕ−Ｐｌａｎｅ装置２００−０〜２００−ｎのための複数の領域（Ｕ−Ｐｌａｎｅ装置領域とも呼ぶ）１９７−０〜１９７−ｎを含む。各領域は、一つのＵ−Ｐｌａｎｅ装置２００−ｋ（ｋは、０〜ｎのいずれか）に割り当てられており、そのＵ−Ｐｌａｎｅ装置２００−ｋが使用する制御情報のほか、運用系Ｃ−Ｐｌａｎｅ１００ＡがＵ−Ｐｌａｎｅ装置２００−ｋの制御に要する情報を含む。各領域は、他の領域に割り当てられているＵ−Ｐｌａｎｅ装置２００−ｋが必要とする制御情報を含まない。
【００４３】
各領域は、上記の呼制御情報１９５及び管理情報１９６を含む。呼制御ＤＢ１９０Ａは、呼制御情報を、呼毎に管理する。呼制御情報１９５において、対応するＵ−Ｐｌａｎｅ装置に割り当てられている各呼に、呼番号が割り当てられている。呼制御情報１９５に含まれる各呼の主な呼制御情報は、例えば、端末のＭＡＣアドレス、端末のＩＰアドレス、接続先上位装置のＩＰアドレス、呼状態、タイマ値、課金情報、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）情報等である。
【００４４】
管理情報１９６は、呼制御情報１９５から生成される。管理情報１９６が含む情報は、例えば、呼番号の利用状況を管理するテーブルや呼制御情報１９５の検索を効率化するためのテーブルなどである。検索効率化のためのテーブルの一例は、呼制御情報１９５に含まれる端末のＭＡＣアドレスやＩＰアドレスをキーとしてハッシュを用いて構築されるハッシュテーブルである。
【００４５】
運用系Ｃ−Ｐｌａｎｅ１００Ａは、各呼の呼制御情報のうちユーザデータ処理に必要な一部の呼制御情報を、各呼を担当するＵ−Ｐｌａｎｅ装置２００−ｋに送信する。Ｕ−Ｐｌａｎｅ装置２００−ｋは、受信した呼制御情報を自身が保持する呼制御ＤＢ２９０―ｋへ格納する。ユーザデータ処理に必要な呼制御情報は、例えば、ユーザデータの通過許可／拒否を行なうフィルタ情報、ＱｏＳ処理を行うための情報および長時間無通信を検出するためのタイマ値等である。
【００４６】
運用系Ｃ−Ｐｌａｎｅ装置１００Ａは、例えば、呼制御ＤＢ１９０Ｂの再構成のための情報を、系切り替え時の他、定期的に、ホットスタンバイ状態で待機している待機系Ｃ−Ｐｌａｎｅ装置１００Ｂに送信する。運用系Ｃ−Ｐｌａｎｅ装置１００Ａが管理する呼制御ＤＢ１９０Ａの全ての情報を待機系Ｃ−Ｐｌａｎｅ装置１００Ｂへ転送することは、回線帯域を圧迫する。
【００４７】
運用系Ｃ−Ｐｌａｎｅ装置１００Ａは、呼制御ＤＢ１９０Ａにおける一部の情報のみを待機系Ｃ−Ｐｌａｎｅ装置１００Ｂへ転送する。例えば、待機系サーバで呼制御ＤＢを再構成するために必要な最少の呼制御情報を転送する。転送される情報は、呼制御ＤＢ１９０Ｂに含まれるがその再構成に必須ではない情報を含んでいてもよい。
【００４８】
待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、呼制御情報を受信する度に呼制御ＤＢ１９０Ｂを再構成する。待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、系切り替え時のみ呼制御ＤＢ１９０Ｂを再構成してもよいし、系切り替え時のみ呼制御情報を受信して呼制御ＤＢ１９０Ｂを再構成してもよい。系切り替え時に不要であれば、呼制御情報の送信しなくてもよい。
【００４９】
待機系における呼制御ＤＢの再構成により、運用系における呼制御ＤＢ１９０Ａと同一の制御ＤＢ１９０Ｂが生成される。以下に説明する例において、制御ＤＢの再構成は、運用系Ｃ−Ｐｌａｎｅ装置１００Ａから転送された呼制御情報をもとに管理情報を生成し、受信した呼制御情報と管理情報により制御ＤＢ１９０Ｂを再構成する。
【００５０】
系切り替えは、制御ＤＢ１９０Ｂの再構成が完了するまで完了せず、通信装置５００は、その間サービスを停止する。呼処理アプリケーション１０３Ｂは、呼制御ＤＢの再構成をマルチスレッド化し並列に処理する。これにより、系切り替えに要する時間を短縮することができる。
【００５１】
並列処理制御プログラム１０１Ｂは、呼制御ＤＢ再構成処理が、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂのハードウェアリソースに適切なプログラム構成により実行されるように、再構成処理を制御する。本例において参照されるハードウェアリソース情報は、ＣＰＵコア数及びＣＰＵコア使用率である。
【００５２】
図３を参照して、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂのハードウェアリソース構成例を説明する。運用系Ｃ−Ｐｌａｎｅ装置１００Ａも同様のハードウェアリソース構成を有していてもよいし、異なるハードウェアリソース構成を有していてもよい。
【００５３】
図３は、マルチコアＣＰＵを備えた待機系Ｃ−Ｐｌａｎｅ装置１００Ｂのハードウェアブロック図である。図３において、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、マルチコアＣＰＵ１２０、主記憶装置１１０、チップセット１４０、メモリバス１８１、ＣＰＵバス１８２を含む。
【００５４】
ＣＰＵバス１８２は、マルチコアＣＰＵ１２０をチップセット１４０に接続する。メモリバス１８１は、主記憶装置１１０をチップセット１４０に接続する。メモリバス１８１は、主記憶装置１１０とマルチコアＣＰＵ１２０を直接接続していてもよい。図示しない内部バスは、チップセット１４０と図示しない各種コントローラを接続する。チップセット１４０は、マルチコアＣＰＵ１２０と図示しないコントローラとの処理速度差の吸収、データフォーマットの変換等を実行する。
【００５５】
マルチコアＣＰＵ１２０は、複数のＣＰＵコア１２５−０〜１２５−ｌを含む。それぞれのＣＰＵコア１２５−０〜１２５−ｌは、１次キャッシュメモリ１２７−０〜１２７−ｌを有する。
【００５６】
マルチコアＣＰＵ１２０内のＣＰＵコア１２５−０〜１２５−ｌは、２次キャッシュメモリ１２９を共有する。待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、マルチコアＣＰＵ１２０によって、呼制御ＤＢ１９０Ｂの再構成を、複数のスレッドを用いて並列に行う。これにより、系切り替え時間を短縮することができる。
【００５７】
主記憶装置１１０は、図１に示すＯＳ１０７Ｂ、呼処理アプリケーション１０３Ｂ、切り替え制御プログラム１０５Ｂ、並列処理制御プログラム１０１Ｂ等のプログラムを記憶する。また、主記憶装置１１０は呼制御ＤＢ１９０Ｂを保持する。系切り替え時、呼処理アプリケーション１０３Ｂは、１次キャッシュメモリ１２７−０〜１２７−ｌや２次キャッシュメモリ１２９へ呼制御ＤＢ１９０Ｂの再構成に必要な情報を、主記憶装置１１０からコピーする。
【００５８】
プログラムは、例えば、不図示の不揮発性補助記憶装置から、主記憶装置１１０にロードされる。いずれかのＣＰＵコア１２５−ｊ（ｊは０からｌのいずれかの数）が、主記憶装置１１０に格納されているプログラムに従って動作する。
【００５９】
図４を参照して、系切り替えにおける処理シーケンスを説明する。図４は、運用系Ｃ−Ｐｌａｎｅ装置１００Ａと待機系Ｃ−Ｐｌａｎｅ装置１００Ｂとの間の、系切り替えシーケンス図である。以下において、系間の呼制御情報及び通知の送受信は、例えば、呼処理アプリケーション１０３Ａ、１０３Ｂが行う。
【００６０】
図４において、運用状態（Ｓ４０１）である運用系Ｃ−Ｐｌａｎｅ装置１００Ａは、障害発生又は保守者（ユーザ）からの系切り替え指示を検知する（Ｓ４０５）。これを契機に、運用系Ｃ−Ｐｌａｎｅ装置１００Ａは、未転送の呼制御情報４０７を、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂに転送する。本シーケンス例において、Ｃ−Ｐｌａｎｅ装置１００Ａは、運用中、適宜、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂへ呼制御情報を転送する。
【００６１】
待機状態（Ｓ４０３）であるＣ−Ｐｌａｎｅ装置１００Ｂは、運用系Ｃ−Ｐｌａｎｅ装置１００Ａから転送された呼制御情報４０７を主記憶装置１１０に保持する（Ｓ４０９）。待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、運用系Ｃ−Ｐｌａｎｅ装置１００Ａに対し、呼制御情報保持成功通知４１１を返す。通知４１１を受けた運用系Ｃ−Ｐｌａｎｅ装置１００Ａは、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂに対し、系切り替え通知４１３を送信する。運用系Ｃ−Ｐｌａｎｅ装置１００Ａは、待機状態移行処理を実行し（Ｓ４１５）、待機状態（Ｓ４１７）へ移行する。
【００６２】
系切り替え通知４１３を受信した待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、呼制御ＤＢ再構成を行なう（Ｓ４１９）。ここで、呼制御ＤＢ再構成は、運用系Ｃ−Ｐｌａｎｅ装置１００Ａから受信した呼制御情報を、呼制御ＤＢ１９０Ｂへ変換する。待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、呼制御ＤＢ１９０Ｂにより、サービスの提供が可能である。呼制御ＤＢ１９０Ｂの再構成が完了すると、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、運用状態移行処理を行ない（Ｓ４２１）、運用状態（Ｓ４２３）へ移行する。
【００６３】
図５を参照して、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂによる、呼制御ＤＢ再構成処理（Ｓ４１９）を説明する。図５は、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂにおける、呼制御ＤＢ再構成処理のシーケンス図である。
【００６４】
図５において、呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）は、呼処理アプリケーション１０３Ｂのスレッドであり、呼制御ＤＢ１９０Ｂの再構成処理を行う。呼処理アプリケーション１０３Ｂにおけるメインスレッド１０３１は、呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）を生成する。
【００６５】
メインスレッド１０３１は、再構成すべき呼制御ＤＢ１９０Ｂを複数の領域に分割し、分割領域を、それぞれ、呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）に割り当てる。全呼制御ＤＢ再構成スレッドの再構成処理の終了を以って系切り替えが完了する。
【００６６】
各分割領域は、呼制御ＤＢ１９０Ｂにおける一つ又は複数のＵ−Ｐｌａｎｅ装置領域で構成されている。呼制御ＤＢ１９０Ｂは、呼制御ＤＢ１９０Ａと同一であり、Ｕ−Ｐｌａｎｅ装置領域１９７−０〜１９７−ｎからなる（図２参照）。各Ｕ−Ｐｌａｎｅ装置領域の情報は独立であり、呼制御ＤＢ再構成スレッドは、一つのＵ−Ｐｌａｎｅ装置領域１９７−ｍ（ｍは０〜ｎのいずれか）を、当該Ｕ−Ｐｌａｎｅ装置領域１９７−ｍの制御情報のみから再構成することができる。
【００６７】
呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）に割り当てるＵ−Ｐｌａｎｅ装置領域数は、同一でもよいし、異なっていてもよい。例えば、同一ＣＰＵ内では、各コア上で動作する呼制御ＤＢ再構成スレッドの処理性能は同一と考える。例えば、呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）に割り当てるＵ−Ｐｌａｎｅ装置領域の数は均一化され、スレッド間の割り当てＵ−Ｐｌａｎｅ装置領域数の差は１以下である。
【００６８】
図５において、待機状態（Ｓ４０３）にある待機系Ｃ−Ｐｌａｎｅ装置１００Ｂのメインスレッド１０３１は、運用系Ｃ−Ｐｌａｎｅ装置１００Ａからの系切り替え通知４１３を受信する（Ｓ５２１）。これを契機に、メインスレッド１０３１は、各呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）へ再構成処理通知５２３−０〜５２３−Ｎを送信し、全呼制御ＤＢ再構成スレッドの完了を待ち合わせる。
【００６９】
各呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）は、メインスレッド１０３１からの通知を契機に、呼制御ＤＢの再構成処理を行なう（Ｓ５２９−０〜Ｓ５２９−Ｎ）。
【００７０】
呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）は、系切り替え時に自身が担当している呼制御ＤＢ１９０Ｂにおける分割領域を再構成する。呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）は、それぞれが独立したデータ（情報）からなる分割領域を担当することで、競合による排他処理を必要とせず、同時に処理することができる。
【００７１】
呼制御ＤＢ再構成処理（Ｓ５２９−０〜Ｓ５２９−Ｎ）が完了した後、呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）は、それぞれ、メインスレッド１０３１に対して、再構成完了通知５３５−０〜５３５−Ｎを送信する。全ての呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）から再構成完了通知５３５−０〜５３５−Ｎを受信したメインスレッド１０３１は、運用状態移行処理を行い（Ｓ４２１）、運用状態（Ｓ４２３）へ移行する。
【００７２】
図６を参照して、呼制御ＤＢ再構成処理の並列処理を最適化するための制御について説明する。ここで、図６は待機系Ｃ−Ｐｌａｎｅ装置１００Ｂの並列処理制御に関連する構成例を示すブロック図である。
【００７３】
図６において、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂ内の呼処理アプリケーション１０３Ｂは、系切り替え時の呼制御ＤＢ再構成処理を行なう呼制御ＤＢ再構成スレッド＃０〜＃Ｎ（１０３２−０〜１０３２−Ｎ）、シグナリング処理を行う呼処理スレッド１０３３、メインスレッド１０３１を含む。
【００７４】
呼処理スレッド１０３３は、通信装置５００が受信したメッセージを解析し、編集、送信する。呼処理スレッド１０３３は、サービス開始時にメインスレッド１０３１により起動され、シグナリング処理を行う。また、サービス終了時、呼処理スレッド１０３３は、メインスレッド１０３１から通知を受け、処理を停止する。
【００７５】
並列処理制御プログラム１０１Ｂは、プロセスとして主記憶装置１１０に常駐し、定期的に待機系Ｃ−Ｐｌａｎｅ装置１００Ｂ内のハードウェアリソースを監視する。並列処理制御プログラム１０１Ｂは、ハードウェアリソース情報管理プログラム１０９に問い合わせ、ハードウェアリソースの情報を取得する。
【００７６】
ハードウェアリソース情報管理プログラム１０９は、ＯＳ１０７Ｂから取得したＣＰＵコア数、各ＣＰＵコアの使用率、ＣＰＵキャッシュサイズを含むハードウェアリソースの情報を返す。本実施例では、ＣＰＵキャッシュサイズは含まれなくてもよい。
【００７７】
待機系Ｃ−Ｐｌａｎｅ装置１００Ｂは、ハードウェアリソース情報管理プログラム１０９を持たなくてもよい。並列処理制御プログラム１０１Ｂは、直接ＯＳ１０７Ｂからハードウェアリソース情報を取得してもよい。
【００７８】
並列処理制御プログラム１０１Ｂは、初回起動時の場合、及び、運用中のハードウェア監視で得た情報から待機系Ｃ−Ｐｌａｎｅ装置１００Ｂのハードウェアリソース構成の変化を検知した場合に、処理を行う。並列処理制御プログラム１０１Ｂは、ハードウェア状態に適した、呼制御ＤＢ再構成のための並列動作スレッド数を決定し、さらに、各スレッドを実行するＣＰＵコアを決定する。
【００７９】
並列処理制御プログラム１０１Ｂは、呼制御ＤＢ再構成スレッド数及び各スレッドを割り当てるＣＰＵコアを指定する情報を並列処理制御情報に含め、メインスレッド１０３１に通知する。
【００８０】
メインスレッド１０３１は、現在の起動している呼制御ＤＢ再構成スレッド数Ｎと並列処理制御情報が示す呼制御ＤＢ再構成スレッド数を比較する。それらの値が異なる場合、メインスレッド１０３１は、現在常駐している呼制御ＤＢ再構成スレッドを全て削除し、通知された数の呼制御ＤＢ再構成スレッドを新たに生成する。メインスレッド１０３１は、呼制御ＤＢ再構成スレッド数が増加する場合に追加分の呼制御ＤＢ再構成スレッドだけ新規に生成する、又は、呼制御ＤＢ再構成スレッド数が減少する場合に減少分の呼制御ＤＢ再構成スレッドだけ削除してもよい。
【００８１】
図７Ａ、７Ｂを参照して、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂの並列処理制御プログラム１０１Ｂの動作を説明する。本例において、並列処理制御プログラム１０１Ｂは、動作しているＣＰＵコアの数及びそれらの各使用率に基づき、呼制御ＤＢ再構成処理を割り当て可能なＣＰＵコア数を決定する。これにより、特定のＣＰＵコアの負荷が大きくなり過ぎることを防ぎ、効率的に呼制御ＤＢの再構成処理を行うことができる。
【００８２】
図７Ａは並列処理制御プログラム１０１Ｂによる、呼制御ＤＢ再構成処理の並列処理制御動作例のフローチャートを示す。図７Ｂは、図７Ａにおける並列処理制御ステップＦ６０５の詳細を示すフローチャートである。
【００８３】
図７Ａにおいて、並列処理制御プログラム１０１Ｂは、プロセス起動時の初期化処理において、構成ファイルを読み込む（Ｆ６０１）。構成ファイルは、通信装置５００内に保存された通信装置５００の各種パラメータを記載するファイルである。
【００８４】
本例において、構成ファイルから読み込むパラメータは、予め定められたＣＰＵコア使用率閾値を含む。並列処理制御プログラム１０１Ｂは、この閾値を、呼制御ＤＢ再構成スレッドの並列動作数を決定するために用いる。以下に説明する例において、ＣＰＵコア使用率閾値は全てのＣＰＵコアに共通であるが、異なるＣＰＵコア使用率閾値を異なるＣＰＵコアに適用してもよい。
【００８５】
並列処理制御プログラム１０１Ｂは、ハードウェアリソース監視を行い、ハードウェアリソースの情報を取得する（Ｆ６０２）。具体的には、並列処理制御プログラム１０１Ｂは、ＣＰＵコア数（動作している使用可能なＣＰＵコアの数）や動作しているＣＰＵコアのそれぞれの使用率の情報を、ハードウェアリソース情報管理プログラム１０９を使用して、ＯＳ１０７Ｂから所定タイミングで収集する。並列処理制御プログラムで１０１Ｂは、並列制御において、ハードウェアリソース（構成及び／又は負荷状態）に対して適切な呼制御ＤＢ再構成スレッド数を決定する。
【００８６】
通信装置５００が初回起動時の場合、呼制御ＤＢ再構成スレッドはまだ生成されていない。呼処理アプリケーション１０３Ｂのメインスレッド１０３１は、本フローにおいて決定された数の呼制御ＤＢ再構成スレッドを生成する。並列処理制御プログラム１０１Ｂは、通信装置５００が初回起動時かどうかをチェックする（Ｆ６０３）。
【００８７】
通信装置５００が初回起動時の場合（Ｆ６０３：ＹＥＳ）、並列処理制御プログラム１０１Ｂは、生成する呼制御ＤＢ再構成スレッド数を決定するために、並列処理制御ステップ（Ｆ６０５）を行う。
【００８８】
通信装置５００が初回起動時でない場合（Ｆ６０３：ＮＯ）、並列処理制御プログラム１０１Ｂは、待機系Ｃ−Ｐｌａｎｅ装置１００Ｂのハードウェアリソース構成に変化があるかをチェックする（Ｆ６０４）。本例において、並列処理制御プログラム１０１Ｂは、使用可能なＣＰＵコア数に変化があるかチェックする。
【００８９】
ハードウェアリソース構成に変化がある場合（Ｆ６０４：ＹＥＳ）、呼制御ＤＢ再構成スレッド数を見直す必要がある。並列処理制御プログラム１０１Ｂは、そのハードウェアリソース構成に適切な呼制御ＤＢ再構成スレッド数を決定するために並列処理制御ステップ（Ｆ６０５）を行う。
【００９０】
通信装置５００が初回起動時ではなく（Ｆ６０３：ＮＯ）、ハードウェアリソース構成に変化がない場合（Ｆ６０４：ＮＯ）、生成する呼制御ＤＢ再構成スレッド数を見直す必要がない。並列処理制御プログラム１０１Ｂは、並列処理制御ステップＦ６０５をスキップする。
【００９１】
並列処理制御プログラム１０１Ｂは、並列処理制御ステップＦ６０５において生成する呼制御ＤＢスレッド数を決定した後、決定したスレッド数及び各呼制御ＤＢ再構成スレッドをどのＣＰＵコアで動作させるかを示す情報を含む、並列処理動作情報を、としてメインスレッドに通知する（Ｆ６０６）。並列処理制御プログラムは本フロー（Ｆ６０２〜Ｆ６０６）を一定周期で定期的に実行する。
【００９２】
次に、図７Ｂを参照して、並列処理制御ステップＦ６０５における呼制御ＤＢ再構成スレッド数の決定方法を説明する。並列処理制御ステップＦ６０５において、並列処理制御プログラム１０１Ｂは、ハードウェア監視で得た使用可能な（動作している）ＣＰＵコア数（以下において、単にＣＰＵコア数とも呼ぶ）とＣＰＵコア使用率の情報を用いて、そのハードウェアリソースの構成及び負荷状態に適切な呼制御ＤＢ再構成スレッド数を決定する。ＣＰＵコア使用率は次々刻々と変化する値であり、並列処理制御プログラム１０１Ｂは、例えば、複数測定値の平均値を用いる。
【００９３】
呼制御ＤＢ再構成スレッド数がＣＰＵコア数を超えている場合、複数の呼制御ＤＢ再構成スレッドが一つのＣＰＵコアで動作し競合する。そのため、十分な処理性能が得られない可能性がある。一方、呼制御ＤＢ再構成スレッド数がＣＰＵコア数より少ない場合、ハードウェアリソースを有効に利用できていないとも考えられる。また、通信装置５００内では、呼制御ＤＢ再構成スレッドの他にもスレッドが常駐する。
【００９４】
以下に説明する例は、各ＣＰＵコアの使用率を測定し、構成ファイルから読み込んだＣＰＵ使用率の閾値を超過するＣＰＵコア上で、呼制御ＤＢ再構成スレッドが動作することを禁止する。
【００９５】
まず、並列処理制御プログラム１０１Ｂは、ＯＳ１０７Ｂから取得したＣＰＵコア数の情報から、生成可能な呼制御ＤＢ再構成スレッド数の上限Ｎｔ１を、上記ＣＰＵコア数と決定するする（Ｆ６０７）。次に、並列処理制御プログラム１０１Ｂは、取得したＣＰＵコア使用率の情報から、呼制御ＤＢ再構成スレッドの割り当て不可コア数Ｎｔ２を、ＣＰＵコア使用率が上記閾値を超えるＣＰＵコアの数と決定する（Ｆ６０８）。
【００９６】
並列処理制御プログラム１０１Ｂは、Ｎｔ１及びＮｔ２から、割り当て可コア数Ｎｔ＝（Ｎｔ１−Ｎｔ２）と決定する（Ｆ６０９）。本並列処理制御ステップで算出した割り当て可コア数は、通信装置５００で生成する適切な呼制御ＤＢ再構成スレッド数である。
【００９７】
並列処理制御プログラム１０１Ｂは、さらに、ＣＰＵコア使用率が閾値を超えるＣＰＵコアを割り当て不可ＣＰＵコアと決定し、ＣＰＵコア使用率が閾値以下であるＣＰＵコアを割り当て可ＣＰＵコアと決定する。並列処理制御プログラム１０１Ｂは、並列処理制御情報に、生成する呼制御ＤＢ再構成スレッド数の情報と、呼制御ＤＢ再構成スレッドをそれぞれ異なる割り当て可ＣＰＵコアに割り当てることを示す情報と、を含め、メインスレッド１０３１に送信する。これにより、各スレッドを確実に割り当て可ＣＰＵコアに割り当てることができる。
【００９８】
例えば、ハードウェアリソース情報が、ＣＰＵコア数が４、第１のＣＰＵコアの使用率が１０％、第２のＣＰＵコアの使用率が５０％、他のＣＰＵコアの使用率が０％であると示しているとする。構成ファイルから読み込んだパラメータであるＣＰＵ使用率の閾値が、２０％であるとする。
【００９９】
第２のＣＰＵコアの使用率が上記閾値を超えるため、割り当て不可コア数Ｎｔ２は、１である。割り当て可コア数Ｎｔ＝Ｎｔ１−Ｎｔ２＝４−１＝３である。並列処理制御プログラム１０１Ｂは、割り当て可コア数Ｎｔが３であること、及び、呼制御ＤＢ再構成スレッドをそれぞれ異なる割り当て可ＣＰＵコアに割り当てることを示す並列処理制御情報を、メインスレッド１０３１に通知する。並列処理制御情報を受け取ったメインスレッド１０３１は、三つの呼制御ＤＢ再構成スレッドを生成し、指定された異なる三つのＣＰＵコアに割り当てる。
【０１００】
なお、上記例において、並列処理制御プログラム１０１Ｂは、呼制御ＤＢ再構成スレッド数に加え、呼制御ＤＢ再構成スレッドを割り当てる（再構成処理を割り当てる）ＣＰＵコアを指定するが、並列処理制御プログラム１０１Ｂは、呼制御ＤＢ再構成スレッドを割り当てるＣＰＵコアを指定しなくともよい。ＯＳ１０７Ｂは、所定アルゴリズムに従って、指定された数の呼制御ＤＢ再構成スレッドのそれぞれを、いずれかのＣＰＵコアに割り当てる。
【０１０１】
並列処理制御プログラム１０１Ｂは、割り当て可ＣＰＵコア数よりも多くの呼制御ＤＢ再構成スレッドを生成するように決定してもよい。並列処理制御プログラム１０１Ｂは、ＣＰＵコア使用率を使用することなく呼制御ＤＢ再構成スレッド数を決定してもよい。例えば、並列処理制御プログラム１０１Ｂは、呼制御ＤＢ再構成スレッド数を、動作しているＣＰＵコア数から規定数を引いた値に決定する。規定数が０である場合、呼制御ＤＢ再構成スレッド数は、動作しているＣＰＵコア数と一致する。
【０１０２】
本実施例は、ハードウェアリソースに応じて動的に呼制御ＤＢ再構成処理の並列処理の制御を行うことで、ハードウェアリソースが変化した場合にも、ソフトウェア処理に関する再検討を行うことなく、ハードウェアリソースに応じた適切な系切り替え処理を可能とし、サービス断が低時間な系切り替えを実現することができる。
【０１０３】
例えば、近年では、ハードウェアの技術の急速な進歩、エンドユーザ数の増加、サービスの多様化に対応するため、高速化や大容量化されたハードウェアが短周期で公開される。そのため、長期運用される通信装置では、性能向上のためにＣ−Ｐｌａｎｅ装置が新しいハードウェア構成にリプレースされることがある。上記例は、起動時のハードウェア監視によりハードウェアリソース情報を取得し、変更されたハードウェアリソース構成に適切なスレッド数で並列に再構成処理を行うことで、切り替え性能を向上することができる。
【０１０４】
若しくは、運用中の故障に伴い、ハードウェアリソース構成が変化することがある。本実施例は、運用中のハードウェア監視によりその故障を検知し、呼制御ＤＢ再構成スレッド数を動的に決定することで、ハードウェアリソースに応じた適切な系切り替えを実現することができる。
【実施例２】
【０１０５】
実施例２は、呼制御ＤＢ再構成スレッド数の決定において参照するハードウェアリソース情報として、実施例１で用いたＣＰＵコア数及びＣＰＵコア使用率の他に、キャッシュサイズを加えた、３種類の情報を用いる。
【０１０６】
図８を参照して、ＣＰＵのキャッシュサイズを考慮した並列処理制御について説明する。図８は並列処理制御プログラム１０１Ｂの動作例を示すフローチャートである。図８において、並列処理制御プログラム１０１Ｂの基本的な動作は、実施例１の図７Ａ、７Ｂを参照して説明した動作と同様である。以下においては、主に、実施例１と異なる点を説明する。
【０１０７】
実施例１は、ハードウェアリソースを監視し、ＣＰＵコア数とＣＰＵコア使用率の情報を取得して、並列処理制御を行う。本実施例は、それらの情報に加え、ハードウェアリソース情報管理プログラム１０９を使用して、ＯＳ１０７Ｂから、ＣＰＵのキャッシュメモリサイズの情報を取得する。本例は、複数のＣＰＵコアに共有されるキャッシュメモリのキャッシュサイズを使用する。
【０１０８】
以下において、図３に示すように、全てのＣＰＵコアが一つの２次キャッシュメモリ１２９を共有する例を説明する。呼制御ＤＢ再構成スレッドは、主記憶装置１１０に格納された呼制御情報をＣＰＵキャッシュに読み込んで、再構成処理を行う。呼制御ＤＢ再構成処理を行うコア数が多い場合、多くのＣＰＵコアが再構成処理のために２次キャッシュメモリ１２９を使用し、１ＣＰＵコアあたりで使用できる２次キャッシュサイズが小さくなる。その結果、キャッシュヒット率が低下し、主記憶装置１１０へのアクセスが増加するため、再構成処理速度が低下する。
【０１０９】
以下に説明する例は、複数のＣＰＵコアが共有する２次キャッシュメモリ１２９のサイズ及び共有ＣＰＵコア数に基づき、呼制御ＤＢ再構成スレッド数を決定する。本例において、並列処理制御プログラム１０１Ｂは、構成ファイルから、ＣＰＵ使用率の閾値（パラメータ）及び１コアあたりの２次キャッシュサイズの閾値（パラメータ）Ｃ２を読み込む。
【０１１０】
１コアあたりの２次キャッシュサイズＣ２は、各ＣＰＵコア上でスレッドが動作するときに、十分な処理性能を得ることのできる２次キャッシュサイズである。並列処理制御プログラム１０１Ｂは、これらのパラメータを用いて、並列動作する呼制御ＤＢ再構成スレッド数を決定する。
【０１１１】
図８を参照して、並列処理制御プログラム１０１Ｂは、並列処理制御ステップＦ６０５において実施例１と同様の処理を行い、ＣＰＵコア数とＣＰＵコア使用率を使用して、割り当て可コア数Ｎｔを決定する（Ｆ６０７〜Ｆ６０９）。ここで、割り当て可コア数Ｎｔは、最終的な割り当て可コア数の候補である。
【０１１２】
並列処理制御プログラム１０１Ｂは、取得したハードウェアリソース情報から、２次キャッシュメモリ１２９のサイズＣ１を決定する（Ｆ６１０）。上述のように、並列処理制御プログラム１０１Ｂは、１コアあたりの２次キャッシュサイズを、構成ファイルから読み出されるＣ２と決定する（Ｆ６１１）。
【０１１３】
並列処理制御プログラム１０１Ｂは、Ｃ１とＣ２とから、２次キャッシュサイズを考慮した割り当て可コア数Ｎｃを決定する。ここで、割り当て可コア数Ｎｃは、最終的な割り当て可コア数の候補である。一例において、並列処理制御プログラム１０１Ｂは、割り当て可コア数ＮｃをＣ１／Ｃ２と決定する（Ｆ６１２）。次に、並列処理制御プログラム１０１Ｂは、ＣＰＵコア数とＣＰＵ使用率から決定した割り当て可コア数ＮｔとＮｃを比較する（Ｆ６１３）。
【０１１４】
ＮｃがＮｔより小さい場合（Ｆ６１３：ＹＥＳ）、並列処理制御プログラム１０１Ｂは、生成スレッド数Ｎを、Ｎｃと決定する（Ｆ６１４）。ＮｃがＮｔ以上の場合（Ｆ６１３：ＮＯ）、並列処理制御プログラム１０１Ｂは、生成するスレッド数Ｎを、Ｎｔと決定する（Ｆ６１５）。並列処理制御プログラム１０１Ｂは、Ｎｔ及びＮｃから、最小数を選択する。
【０１１５】
なお、並列処理制御プログラム１０１Ｂは、ＣＰＵコア使用率を使用することなく、割り当て可コア数Ｎｃのみを算出し、呼制御ＤＢ再構成スレッド数を決定してもよい。並列処理制御プログラム１０１Ｂは、最終的に決定したＣＰＵコア数と異なる数の呼制御ＤＢ再構成スレッドを生成することを決定してもよい。
【０１１６】
複数のキャッシュメモリがそれぞれ複数ＣＰＵコアに共有されている場合、並列処理制御プログラム１０１Ｂは、各キャッシュメモリについて、上記方法に従って割り当て可コア数を決定し、それらの値から割り当て可コア数の総数を算出してもよい。
【０１１７】
本実施例は、ＣＰＵコア当たりのキャッシュメモリサイズが閾値以下となるように呼制御ＤＢ再構成処理を割り当て可能なＣＰＵコア数を決定することで、待機系−Ｐｌａｎｅ装置のキャッシュ構成に応じた効率的な処理を実現できる。
【０１１８】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１１９】
また、上記の各構成・機能・処理部等は、それらの一部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【符号の説明】
【０１２０】
１００Ａ…運用系Ｃ−Ｐｌａｎｅ装置、１００Ｂ…待機系Ｃ−Ｐｌａｎｅ装置、１０１Ａ、１０１Ｂ…並列処理制御プログラム、１０３Ａ、１０３Ｂ…呼処理アプリケーション、１０５Ａ、１０５Ｂ…切り替え制御プログラム、１０７Ａ、１０７Ｂ…オペレーティングシステム、１１０…主記憶装置、１２０…ＣＰＵ、１２５−０〜１２５−ｌ…ＣＰＵコア、１２７−０〜１２７−ｌ…１次キャッシュメモリ、１２９…２次キャッシュメモリ、１４０…チップセット、１９０Ａ、１９０Ｂ…呼制御ＤＢ、２００−０〜２００−ｎ…Ｕ−Ｐｌａｎｅ装置
【図１】
2014229089.tif 000003
【図２】
2014229089.tif 000004
【図３】
2014229089.tif 000005
【図４】
2014229089.tif 000006
【図５】
2014229089.tif 000007
【図６】
2014229089.tif 000008
【図７Ａ】
2014229089.tif 000009
【図７Ｂ】
2014229089.tif 000010
【図８】
2014229089.tif 000011