(57)【要約】【課題】急激な負荷に対して有効に対応する。【解決手段】送信バッファ１０７又は受信バッファ１０５の蓄積量を監視することによって、端末間の呼接続を制御する通信制御装置において、少なくとも２以上の呼処理プログラムと、前記受信バッファの占有率を監視するバッファ監視手段１０６と、受信バッファの占有率に基づいて、前記呼処理プログラムを切り替える切替手段と、を備える。【選択図】  図１
2004208181.tif 000002
【特許請求の範囲】
【請求項１】
送信バッファ又は受信バッファの蓄積量を監視することによって、端末間の呼接続を制御する通信制御装置において、
少なくとも２以上の呼処理プログラムと、
前記受信バッファの占有率を監視するバッファ監視手段と、
前記受信バッファの占有率に基づいて、前記呼処理プログラムを切り替える切替手段と、
を備えたことを特徴とする通信制御装置。
【請求項２】
前記呼処理プログラムは、通常負荷時における呼処理を行う呼処理プログラム及び瞬時負荷時における呼処理を行う呼処理プログラムであることを特徴とする請求項１記載の通信制御装置。
【請求項３】
前記瞬時負荷時における呼処理プログラムは、前記通常負荷時における呼処理プログラムよりも長い時間をかけて呼処理を実行することを特徴とする請求項２記載の通信制御装置。
【請求項４】
前記瞬時負荷時における呼処理プログラムは、前記通常負荷時における呼処理プログラムよりも高いタスクプライオリティに設定され、前記通常負荷時における呼処理プログラムと同一機能を備え、タスクロックにより前記通常負荷時における呼処理プログラムよりも長い時間をかけて呼処理を実行することを特徴とする請求項３記載の通信制御装置。
【請求項５】
前記呼処理プログラムは、前記通常負荷時における呼処理を行う呼処理プログラム及び前記継続負荷時における呼処理を行う呼処理プログラムであることを特徴とする請求項１から４のいずれか１項記載の通信制御装置。
【請求項６】
前記継続負荷時における呼処理プログラムは、前記通常負荷時における呼処理プログラムと同一構成で、一定間隔で間引いた呼処理を実行することを特徴とする請求項５記載の通信制御装置。
【請求項７】
前記継続負荷時における呼処理プログラムは、前記通常負荷時における呼処理プログラムよりも高いタスクプライオリティに設定され、前記通常負荷時における呼処理プログラムと同一機能を備えることを特徴とする請求項６記載の通信制御装置。
【請求項８】
前記切替手段は、前記通常負荷状態を基準に前記受信バッファの占有率が所定値を越えたときに判定される前記瞬時負荷状態において、前記通常負荷時における呼処理プログラムから前記瞬時負荷時における呼処理プログラムへ切り替えることを特徴とする請求項２から４のいずれか１項記載の通信制御装置。
【請求項９】
前記切替手段は、前記通常負荷状態を基準に前記受信バッファの占有率が所定値を一定期間越えたときに判定される前記継続負荷状態において、前記通常負荷時における呼処理プログラムから前記継続負荷時における呼処理プログラムへ切り替えることを特徴とする請求項５から７のいずれか１項記載の通信制御装置。
【請求項１０】
前記切替手段は、前記通常負荷状態を基準に前記受信バッファの占有率が所定値を越えてからの周期的監視結果に基づく予測値が所定値を越えたときに判定される前記継続負荷状態において、前記通常負荷時における呼処理プログラムから前記継続負荷時における呼処理プログラムへ切り替えることを特徴とする請求項５から７のいずれか１項記載の通信制御装置。
【請求項１１】
前記送信バッファの占有率を監視するバッファ監視手段と、
前記送信バッファの占有率が所定値を越えた際に、請求項５又は７記載の通常負荷時における呼処理プログラムから継続負荷時における呼処理プログラムへ切り替える切替手段と、
を具備したことを特徴とする請求項１記載の通信制御装置。
【請求項１２】
前記バッファ監視手段は、バッファの特定アドレスへのアクセスの発生をハードウェアで監視し、バッファの占有率を監視することを特徴とする請求項１又は１１に記載の通信制御装置。
【請求項１３】
前記瞬時負荷時における呼処理プログラムが使用する命令を格納するメインメモリと、
前記メインメモリから前記命令を読み込み格納するキャッシュメモリと、
前記瞬時負荷時における呼処理プログラムの実行命令部にキャッシュロック機構を使用するＣＰＵと、を備え、
前記通常負荷時における呼処理プログラムから前記瞬時負荷時における呼処理プログラムへの切り替え時に、キャッシュロックを行い、前記命令を予め前記キャッシュメモリに読み込ませることを特徴とする請求項２から４のいずれか１項記載の通信制御装置。
【請求項１４】
前記ＣＰＵは、前記瞬時負荷時における呼処理プログラムがアクセスする前記メインメモリ上のテーブルに対してのみ、キャッシュロック機構を使用することを特徴とする請求項１３記載の通信制御装置。
【請求項１５】
前記瞬時負荷時における呼処理プログラムから前記通常負荷時における呼処理プログラムへの切り替え時に、前記キャッシュメモリをフラッシュすることを特徴とする請求項１３又は１４記載の通信制御装置。
【請求項１６】
前記瞬時負荷時における呼処理プログラムの上位装置への処理応答時間をあらかじめ測定し、規定値最大になるまで、処理応答を遅延させることを特徴とする請求項２記載の通信制御装置。
【請求項１７】
前記継続負荷時における呼処理プログラムの上位装置への処理応答時間をあらかじめ測定し、規定値最大になるまで、処理応答を遅延させることを特徴とする請求項５記載の通信制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、端末間通信における、通信制御装置の短時間の負荷増大に対処する通信制御装置に関する。
【０００２】
【従来の技術】
不特定多数ユーザによる通信における輻輳制御は、特定日時におけるユーザからの一斉の発呼動作などを除いても、通常の通信ネットワークシステムと比較して、予め想定しにくい瞬間的な負荷がかかる場合がある。特に、音声通信以外のメール、画像通信などのマルチメディア系の通信を含む最新の通信ネットワークは、現在も発展途上にあり、負荷の予測は極めて困難である。このようなネットワークを、瞬間的な最大負荷を処理するハードウェア／ソフトウェアを基準に設計すると、スペックは著しく過剰なものになり、コスト的にも過剰なシステムとなってしまう。したがって、想定される最大負荷の目標値を定め、これを超える過負荷時の処理をあらかじめシステムに組みこむ必要がある。
【０００３】
【発明が解決しようとする課題】
従来の構成では、負荷状態をＣＰＵの使用率やバッファ量の監視から検出し、輻輳状態を上位装置へ通知することで、発信制限をかける輻輳制御を実行している。従来の輻輳制御は、瞬間的な負荷に対してはユーザへの発信拒否を行い、システムの運用が停止しない状態で一部の処理を継続する手段が採られていた。このような運用では、優先制御により緊急度の高い通信制御だけを行うため、全体として呼損率が著しく増加していた。
【０００４】
従来例として、特開平７−５０６７３号公報には、バーストデータと通常データとを区別する方式が開示されている。これは、バーストデータの検出をバッファ使用率を周期的に監視するだけでなく、ある区間の増減差分による変化率から検出し、バッファ使用率が高いという理由だけで通常規制をかけることを回避し、同時に通常の輻輳検出よりも短時間にバーストデータの流入を検出するものである。
【０００５】
しかし、バッファ占有率の変化を短時間の周期で監視した場合、バッファ使用率の変化（例えば０％から１０%）が、ごく短時間の場合がある。このように、急激な変化率の発生をバーストデータの到着と判定したとしても、実際にはすぐに負荷が低減してしまうような単発データで終始してしまう場合がある。
【０００６】
短時間に変化するバッファ占有率の変化をバーストデータと判定しないためには、バッファ占有率の監視周期を長くすればよいが、監視周期が長くなると、監視精度が低下するという問題がある。また、ユーザデータ用通信路と呼接続制御用通信路が分離した通信制御装置では、一斉発呼による呼接続制御負荷の急激な増大を規制するためには、バーストデータの早期検出が必須であるにもかかわらず、バーストデータを有効に検出することができないため、負荷の増大による輻輳が他装置へ波及しないようにしているに過ぎない。
【０００７】
本発明は、かかる点に鑑みてなされたものであり、急激な負荷に対して有効に対応することができる通信制御装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明の通信制御装置は、送信バッファ又は受信バッファの蓄積量を監視することによって、端末間の呼接続を制御する通信制御装置において、少なくとも２以上の呼処理プログラムと、前記受信バッファの占有率を監視するバッファ監視手段と、前記受信バッファの占有率に基づいて、前記呼処理プログラムを切り替える切替手段と、を備える。
【０００９】
本発明の通信制御装置では、処理負荷が急激に変化する呼処理プログラムのタスクを最高位のプライオリティとして別に準備し、さらに通常とは異なるメモリ領域を別に確保し、負荷増大時は高いプライオリティに設定された呼処理プログラムの処理に切り替え、タスクロックにより処理占有時間を確保して呼処理プログラムの処理量を低減する。また、ＣＰＵのデータキャッシュ対象を高プライオリティタスクで使用するメモリ領域にダイナミックにアサインする。さらに、呼処理プログラムが使用する高頻度のインストラクションをキャッシュに読み込ませ、これをロックすることでメモリアクセスを減らして処理時間を短縮することができる。また、あらかじめ測定した通常処理時間と、別の呼処理プログラムへの処理変更時間、キャッシュフィル・ロック時間及び高速化時の処理時間との比較に基づいて、有効な時間処理を継続した後、負荷量を計測し、通常動作に戻ることにより、瞬時負荷増大に対応した処理を行うことができる。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
図１は本発明の一実施の形態に係る通信制御装置の呼接続制御部の構成を示す図である。呼接続制御部１０１は、ＣＰＵ部１０２、インストラクション／データキャッシュメモリ部１０３、メインメモリ１０４、受信バッファ１０５、受信バッファ１０５のバッファ監視回路１０６、送信バッファ７、送信バッファ１０７のバッファ監視回路１０８を備え、外部バス１０９を介して外部装置Ｉ／Ｏ部１１０と接続されている。
【００１１】
図２は呼接続制御部のソフトウェア構成を示す図である。呼接続制御部は上位装置より指示されたサービスごとに呼制御を行い、端末間とのアクセスおよび上位装置とのリンクを確立する通信制御を実行する。図２において、２１０は呼処理部を含む呼制御タスクであり、ウオッチドッグタイマ監視部２０２及び定周期処理部２０３を伴い第１のプログラム群（呼処理プログラム）を構成している。呼制御タスク２２０は第２のプログラム群（呼処理プログラム）であり、第１のプログラム群と同様に、呼処理部、ウオッチドッグタイマ監視部及び定周期処理部を含む。呼制御タスク２３０は第３のプログラム群であり、処理量を減らすために処理を一定量間引く処理間引き部を含む他、第１のプログラム群と同様に、呼処理部、ウオッチドッグタイマ監視部及び定周期処理部を含む。さらに、呼接続制御部は、運用／保守上必要なその他処理部２４０を備える。
【００１２】
呼制御タスク２、３は、呼処理部、過負荷／ソフトウェアの暴走検出のためのウォッチドッグタイマ監視部、定周期処理部を呼制御タスク１から移植して同一構成にすることで、呼制御タスクを切り替えた場合でも、呼制御タスク２、３のプログラム動作中の他機能への影響を低減することができる。
【００１３】
呼処理タスク２、３を備える構成により、タスクロックを行うとウォッチドッグタイマのタイムアウトが発生する長時間処理の場合や、定期的な処理に影響を与えるような場合に対処することができ、瞬時負荷よりも継続負荷が発生しやすい環境において有効である。
【００１４】
この構成により装置全体としては、瞬時負荷を処理するために、タスクロックなどに頼るとウォッチドッグタイマタイムアウトが発生する長時間処理の場合や、保守的に定期的に必ず行わなくてはならない処理に影響を与えないようにするための処理の作りこみであり、比較的瞬時負荷よりも継続負荷が発生しやすい環境において、有効であるといえる。
【００１５】
本発明の通信制御装置は、呼接続処理が瞬時負荷動作状態であることを示すフラグをＣＰＵ内のレジスタに定義し、これを必要に応じてセットする。呼制御タスク１の呼処理プログラムは、新たなユーザサービスの発呼処理を開始する際に常に負荷状態を確認するためにフラグがセットされているレジスタにアクセスする。この結果、瞬時負荷動作状態である場合は、ＯＳにより起動時にあらかじめ設定された通常時と異なる最高位プライオリティに設定された第２の呼制御タスク２のメインプログラムを呼び出す。呼制御タスク２は、メインプログラム部のみ呼び出し形式が異なるが、その他は通常の呼制御タスク１と同一の処理を行うものとし、制御を切り替える際に、ＯＳよりタスクロックを行い占有時間を長くすることで相対的に呼処理の処理時間を長くし負荷の低減を図る。
【００１６】
受信バッファ５は瞬時の負荷増大時のデータを確保するだけの容量を確保する。バッファ容量は、１呼あたりの外部装置から受信すべき制御データ最大データ長（Ａバイト）及び設定する負荷状態に到着する最大データ頻度（Ｂ回／秒）に基づき、Ａ×Ｂバイト以上のデータを保持できるだけの容量である。但し、呼制御タスク２への切り替え時間等、処理の遅延を考慮して、例えば、３秒間負荷が連続しても受信可能な容量であることが好ましい。なお、制御通信はデータの増減が少ないため、おのおの平均データ長から容量を決定してもよい。
【００１７】
バッファ監視回路６は、例えば、３秒間の受信期間の１／３の１秒程度の定周期で受信バッファ５を監視してＣＰＵ負荷率を収集し、この負荷率を呼制御タスク１の負荷の基準に用いる。最大負荷を処理するときでも、２秒間連続して１００％の負荷にならない限り問題にらないため、この周期で受信バッファ５を監視する。
【００１８】
瞬時負荷の検出は、受信バッファ５の占有率の変化を受信バッファ監視部６で周期的に監視し、例えば、次の２秒負荷が続き受信バッファ５がフルになる占有率に達した時点で、これをトリガにして、監視周期を１０ミリ秒間隔の高頻度監視に切り替えて、受信バッファ５の占有率を統計的に保持する。
【００１９】
瞬時負荷状態は、受信データを２秒間継続したときに受信が不可能になるときを定義し、瞬時負荷状態を検出した時点でＣＰＵ２に対して割り込みをかけ、割り込み処理ルーチンの中でＣＰＵレジスタに瞬時負荷状態の状態フラグを書き込む。その後、呼制御タスク２への切り替えが行われる。
【００２０】
瞬時負荷の増大を監視するバッファ監視回路をソフトウェアで構成することは可能だが、ソフトウェア処理を行うためＣＰＵの負荷が増大する。したがって、瞬時負荷を表す受信バッファ占有率をあらかじめ規定し、その占有率に達する際の受信データを格納するアドレスへのアクセスの発生をハードウェアで監視する。また、１０ミリ秒以下程度の短周期でハードウェアがバッファ使用域のアクセスアドレスを監視して、負荷状態をＣＰＵのレジスタにセットし、割り込み制御により呼制御タスク２へ動作変更を実施することが好ましい。ハードウェアで受信バッファの占有率を監視することにより、ソフトウェア処理による負荷が減る。また、バッファ占有率を細かく監視できるため、不連続、不安定な制御データの増減であっても、判定ロジックを準備することで、精度良く負荷状態を監視することができる。例えば、バッファ占有率の増減を１０ミリ秒間隔で１０回分＝１００ミリ秒間分のデータを収集し、これらのデータの推移から時間軸に対する変化量を直線補間することで、次の１００ミリ秒のバッファ占有率の予測、負荷状態からの脱出、バッファフルまでの残り時間算出を、ソフトウェア制御よりも精度良く行うことも可能である。
【００２１】
瞬時負荷及び継続負荷の状態を判別するために、受信バッファ５を瞬時負荷用の数倍確保し、瞬時負荷状態を検出した時点からさらに受信バッファ５を別の指標で監視し、負荷が継続し、例えば１秒以内にバッファがフルになることを検出したときを継続負荷と定義する。その時点で割り込み制御により、ＣＰＵのレジスタに継続負荷の状態フラグを書き込むことで、呼制御タスク３への変更が可能となる。
【００２２】
呼処理プログラムが、新たなユーザサービスの発呼処理を開始する際に常にレジスタにアクセスしており、継続負荷の場合は、ＯＳにより起動時に予め設定された通常時と異なる最高位プライオリティに設定された第３のプログラム群を呼び出す。第３のプラグム群は、第２のプログラム群と同じ位置付けであるが、処理間引き部で一定間隔で処理を間引く（破棄もしくはＮＧ応答する）ことにより通常負荷時以上の処理を行わないことで、占有時間を長くすることで相対的に呼処理の処理時間を長くして負荷の低減を図る。第３のプログラム群による処理を行うことで、ネットワーク全体の輻輳制御が動作し、あらかじめ定められた負荷まで負荷が軽減するまで、システムの運用を正常に継続することができる。
【００２３】
なお、送信バッファ７に瞬時の負荷増大時のデータを確保できる容量を確保させ、ソフトウェアもしくはハードウェアによる送信バッファ監視回路８で送信バッファの占有率を監視し、予め定められた値を超えたとき、呼制御タスク３による呼処理に切り替えることで、上り下り方向の負荷の低減を図ることができる。
【００２４】
また、送信バッファ監視回路８をハードウェアで構成し、送信バッファ内の特定アドレスにアクセスしたことの監視を周期的に行うことにより、監視精度の向上とＣＰＵにかかる監視のための負荷の低減を図ることができる。また、送信バッファ７の特定アドレスとのマッチングを監視することにより、送信バッファの占有率を監視することができる。さらに、監視アドレスポイントを複数個用意すれば、送信バッファ占有率の変化の状況を収集することができる。
【００２５】
また、呼制御タスク２の実行命令部のみを、ＣＰＵのキャッシュ３へのロック機構を使用し、呼制御タスク２への切り替え時に、あらかじめプログラムが使用するマシン語命令を調査し、その全てあるいは一部をメインメモリ４からキャッシュ３に読み込ませ、インストラクションキャッシュのヒット率を上げて、メインメモリ４へのアクセスを低減させることで、呼処理の実行処理性能を一時的に上げることができる。また、通常負荷時に戻ったときは、キャッシュ３のフラッシュとロックの解除を行うことで、他の制御プログラムの相対的な動作速度低下を短時間に抑えることができる。
【００２６】
なお、呼制御タスク２のプログラムがアクセスするメインメモリ４上のテーブルのみＣＰＵのキャッシュ３のロック機構を使用し、呼制御タスク２のプログラムへの切り替え時に、あらかじめプラグラムに必要なテーブルを、その全てあるいは一部をキャッシュ３に読み込ませ、データキャッシュのヒット率を上げて、メインメモリ４へのアクセスを低減させることで、呼処理の実行処理性能を一時的に上げることができる。
【００２７】
但し、メインメモリ４上のテーブルデータのサイズを、キャッシュ３に収まるように制限するため、通常プログラム動作領域とは異なるアドレスに同形式のテーブルをコピーする必要があり、既存のデータを使用したり、書き換えたりする処理には用いず、専ら新規呼設定情報に使用する。したがって、テーブルの選定には他の制御からの使用の可能性があるものは除外しておく。なお、通常動作に戻る場合は、差分をコピーバックする処理を行う。そのため、新規呼設定情報以外の処理は変更せず、通常プログラムが使用するテーブル領域に書き込みを行うように、呼制御タスク２、３の呼処理部は処理を区分して動作させるようにプログラムする。
【００２８】
また、呼制御タスク２、３の上位装置への処理応答時間を予め測定し、規定値が最大になるまで、処理応答を故意に遅延させ、結果的に、単位時間あたりの呼処理量を減らすことができる。なお、ハードウェアタイマを用いて処理応答を遅延させ、ＯＳの機能を用いないことでＣＰＵの負荷を低減することができる。
【００２９】
【発明の効果】
以上説明したように、バッファの占有率に基づいて呼処理を行う呼処理プログラムを変更することで、急激な負荷に対応することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る通信制御装置の呼接続制御部の構成を示すブロック図である。
【図２】呼接続制御部のソフトウェア構成を示す図である。
【符号の説明】
１０１  呼接続制御部
１０２  ＣＰＵ部
１０３  キャッシュ
１０４  メインメモリ
１０５  受信バッファ
１０６  受信バッファ監視回路
１０７  送信バッファ
１０８  送信バッファ監視回路
１０９  外部バス
１１０  外部装置Ｉ／Ｏ部
【図１】
2004208181.tif 000003
【図２】
2004208181.tif 000004