(57)【要約】【課題】  通信装置の制御方法において、発生するコマンドを一時的に格納するバッファを多段階に配置することで容易に処理速度を制御可能とし、オーバーフローによる障害を抑止可能とする方法、装置及びプログラムを提供する。【解決手段】  通信装置の制御方法において、バッファを多段階に構成し、各バッファのオーバーフローを監視する手段と、各バッファのオーバーフローの発生を通知する手段と、オーバーフローが解消されたことを通知する手段により構成される。  例えば、着信が発生した際、ＣＰＵが各バッファのオーバーフローを監視し、オーバーフローが発生したバッファ毎にオーバーフロー発生を示すフラグをセットし、次段のバッファに着信の命令コードを積み重ねる。最後のバッファがオーバーフローしたときは命令コードを破棄する。その後、オーバーフローが解消してオーバーフローしたバッファに空き容量ができ、次段のバッファが空になった場合、オーバーフロー発生を示すフラグをリセットする。これらのフラグを用いてオーバーフロー発生の通知を行う。【選択図】        図４
2006033348.tif 000002
【特許請求の範囲】
【請求項１】
多段階のバッファ部を構成するバッファのオーバーフローを監視するステップと、
前記バッファにデータを格納するステップと、
前記バッファの前記オーバーフローの発生を通知するステップと、
前記オーバーフローの発生後、前記バッファ部のうち空き容量のある次段バッファに前記データを格納するステップと、
前記バッファに格納されている前記データをＦＩＦＯで順次処理するステップと、
前記バッファに空き容量ができたとき、前記オーバーフローの解消を通知するステップと、
前記次段バッファから前記バッファに前記データ又は前記データの書き込み位置を示すポインタを戻すステップと
を具備する
処理速度調整方法。
【請求項２】
請求項１に記載の処理速度調整方法において、
前記オーバーフローの発生時に、前記バッファに前記オーバーフローが発生したことを示すためにバッファオーバーフローフラグをセットするステップと、
前記オーバーフローの解消時に、前記バッファオーバーフローフラグをリセットするステップと
を具備する
処理速度調整方法。
【請求項３】
請求項１に記載の処理速度調整方法において、
前記オーバーフローの発生時に、前記バッファに前記オーバーフローが発生したことを示すためにバッファオーバーフローフラグをリセットするステップと、
初期状態又は前記オーバーフローの解消時に、前記バッファオーバーフローフラグをセットするステップと
を具備する
処理速度調整方法。
【請求項４】
請求項２又は３に記載の処理速度調整方法において、
前記バッファオーバーフローフラグの値を検出し、発着信の発生数の増加を検出するステップを具備する
処理速度調整方法。
【請求項５】
請求項１乃至４のいずれか一項に記載の処理速度調整方法において、
前記バッファ部の段数を変更するステップを具備する
処理速度調整方法。
【請求項６】
請求項１乃至５のいずれか一項に記載の処理速度調整方法において、
前記バッファのサイズを変更するステップを具備する
処理速度調整方法。
【請求項７】
請求項１乃至６のいずれか一項に記載の処理速度調整方法において、
前記バッファ部を構成する全てのバッファに前記オーバーフローが発生したとき、前記データを破棄するステップを具備する
処理速度調整方法。
【請求項８】
制御部と、
前記制御部に接続された呼制御モジュールと、
前記呼制御モジュールに接続された入出力制御モジュールと、
前記入出力制御モジュールに接続された通信ボードと、
前記通信ボードから前記入出力制御モジュールを経由して通知された着信に基づいて前記呼制御モジュールがデータを格納するバッファ部と
を具備し、
前記バッファ部はバッファを多段階に構成したものであり、制御部は、前記バッファの各々についてオーバーフローを監視し、前記オーバーフローの発生を通知し、前記オーバーフローの解消を通知する
通信装置。
【請求項９】
請求項８に記載の通信装置において、
前記バッファに前記オーバーフローが発生すると、前記制御部は前記オーバーフローが発生した前記バッファに対応するバッファオーバーフローフラグをセットし、
前記オーバーフローが発生した前記バッファに空き容量ができると、前記制御部は前記バッファオーバーフローフラグをリセットする
通信装置。
【請求項１０】
請求項８に記載の通信装置において、
前記バッファに前記オーバーフローが発生すると、前記制御部は前記オーバーフローが発生した前記バッファに対応するバッファオーバーフローフラグをリセットし、
前記オーバーフローが発生した前記バッファに空き容量ができると、前記制御部は前記バッファオーバーフローフラグをセットする
通信装置。
【請求項１１】
請求項９又は１０に記載の通信装置において、
前記制御部は前記バッファオーバーフローフラグの値を検出し、発着信の発生数の増加を検出する
通信装置。
【請求項１２】
請求項８乃至１１のいずれか一項に記載の通信装置において、
前記バッファの一つである第１バッファ及び第２バッファについて、前記制御部は前記第１バッファに前記オーバーフローが発生したとき、空き容量のある前記第２バッファに前記データを格納する
通信装置。
【請求項１３】
請求項８乃至１２のいずれか一項に記載の通信装置において、
前記制御部は前記バッファ部の段数を変更する第１プログラムを実行する
通信装置。
【請求項１４】
請求項８乃至１３のいずれか一項に記載の通信装置において、
前記制御部は前記バッファのサイズを変更する第２プログラムを実行する
通信装置。
【請求項１５】
請求項８乃至１４のいずれか一項に記載の処理速度調整方法において、
前記バッファ部を構成する全てのバッファに前記オーバーフローが発生したとき、前記制御部が前記データを破棄する
通信装置。
【請求項１６】
多段階のバッファ部を構成するバッファのオーバーフローを監視するステップと、
前記バッファにデータを格納するステップと、
前記バッファの前記オーバーフローの発生を通知するステップと、
前記オーバーフローの発生後、前記バッファ部のうち空き容量のある次段バッファに前記データを格納するステップと、
前記バッファに格納されている前記データをＦＩＦＯで順次処理するステップと、
前記バッファに空き容量ができたとき、前記オーバーフローの解消を通知するステップと、
前記次段バッファから前記バッファに前記データ又は前記データの書き込み位置を示すポインタを戻すステップと
を具備する
プログラム。
【請求項１７】
請求項１６に記載のプログラムにおいて、
前記オーバーフローの発生時に、前記バッファに前記オーバーフローが発生したことを示すために前記バッファオーバーフローフラグをセットするステップと、
前記オーバーフローの解消時に、前記バッファオーバーフローフラグをリセットするステップと
を具備する
プログラム。
【請求項１８】
請求項１６に記載のプログラムにおいて、
前記オーバーフローの発生時に、前記バッファに前記オーバーフローが発生したことを示すためにバッファオーバーフローフラグをリセットするステップと、
初期状態又は前記オーバーフローの解消時に、前記バッファオーバーフローフラグをセットするステップと
を具備する
プログラム。
【請求項１９】
請求項１７又は１８に記載のプログラムにおいて、
前記バッファオーバーフローフラグの値を検出し、発着信の発生数の増加を検出するステップを具備する
プログラム。
【請求項２０】
請求項１６乃至１９のいずれか一項に記載のプログラムにおいて、
前記バッファ部の段数を変更するステップを具備する
プログラム。
【請求項２１】
請求項１６乃至２０のいずれか一項に記載のプログラムにおいて、
前記バッファのサイズを変更するステップを具備する
プログラム。
【請求項２２】
請求項１６乃至２１のいずれか一項に記載の処理速度調整方法において、
前記バッファ部を構成する全てのバッファに前記オーバーフローが発生したとき、前記データを破棄するステップを具備する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多段バッファのオーバーフローによる処理速度調整方法、該方法を用いた通信装置及びプログラムに関する。
【背景技術】
【０００２】
通信装置としてボタン電話装置を例に挙げる。ボタン電話装置の制御において、過度の発信や着信が発生した場合の対策として内部にはウォッチドッグタイマーを持ち、設定時間以上内部の動作が停滞した場合に自らプログラムをリセットし、初期化することが一般的である。
なお、ウォッチドッグタイマーとは、常にシステムの監視を行ない、プログラムやシステムの暴走やソフトウェアのバグにより一定の時間応答がない場合、それを検出するための回路である。
【０００３】
しかし、一般的なボタン電話装置では多大な入力（異常な数の着信や発信）に対して発生数をカウントする手段を有していない。外線からの着信や内線の発信が想定以上に発生した場合は、内部でのバッファオーバーフローが発生し、発生コマンドの欠落や、発生コマンドの滞留からシステムのスローダウンが発生する。また、最終的にはウォッチドッグタイマーが起動し、システムリセットが発生する。
【０００４】
ボタン電話装置のシステムにリセットが発生すると、通話中であれば通話が切断されてしまい製品の信頼性を損なうこととなる。一方、実際の発信数や着信数をカウントすることは計数処理自体が負荷となりかねない。
【０００５】
バッファオーバーフローを回避するための従来技術として、入力したセルをバッファリングして出力する各パス毎に設けられた複数のセルバッファ部と、複数のセルバッファ部に対して共通に接続される予備セルバッファ部と、セルバッファ部内のセルの数がバーストトラフィック発生によりバッファの容量を越えるときに、予備セルバッファを当該セルバッファ部に対して追加接続する制御を行う制御部を備え、バッファ量の送料を小さく抑えると共に、バーストトラフィックによるセル損失を適切に回避するためのセル損失回避システムがある（特許文献１参照）。
【０００６】
しかし、前述した従来技術は、ＡＴＭネットワーク内におけるバーストトラフィック発生時のセル損失を適切に回避することを目的としており、多大な入力による負荷への対策について触れられていない。また、発生したバッファオーバーフローからの復帰についても述べられていない。
【０００７】
ＣＰＵに負荷を与えることなく発着信のイベント数の増加を検出し、ＣＰＵが内部の処理速度を調整可能とすれば、前述の問題の解決を図ることができると考えられる。
【０００８】
【特許文献１】特開平９―２３３０９９
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、ボタン電話装置を始めとする通信装置の制御方法において、容易に処理速度を制御可能とする処理速度調整方法、通信装置及びプログラムを提供することである。
本発明の他の目的は、ボタン電話装置を始めとする通信装置の制御方法において、オーバーフローによる障害を抑止可能とする処理速度調整方法、通信装置及びプログラムを提供することである。
本発明の他の目的は、ＣＰＵに負荷を与えることなく発着信のイベント数の増加を検出し、ＣＰＵが内部の処理速度を調整できる処理速度調整方法、通信装置及びプログラムを提供することである。
本発明の他の目的は、使用するバッファの段数やサイズをプログラムにより可変とする処理速度調整方法、通信装置及びプログラムを提供することである。
【課題を解決するための手段】
【００１０】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１１】
本発明の処理速度調整方法は、多段階のバッファ部（１８）を構成するバッファ（４１）のオーバーフローを監視するステップと、前記バッファ（４１）にデータを格納するステップと、前記バッファ（４１）の前記オーバーフローの発生を通知するステップと、前記オーバーフローの発生後、前記バッファ部（１８）のうち空き容量のある次段バッファ（４２）に前記データを格納するステップと、前記バッファ（４１）に格納されている前記データをＦＩＦＯで順次処理するステップと、前記バッファ（４１）に空き容量ができたとき、前記オーバーフローの解消を通知するステップと、前記次段バッファ（４２）から前記バッファ（４１）に前記データ又は前記データの書き込み位置を示すポインタを戻すステップとを具備する。
【００１２】
本発明の処理速度調整方法は、前記オーバーフローの発生時に、前記バッファ（４１）に前記オーバーフローが発生したことを示すためにバッファオーバーフローフラグ（４４）をセットするステップと、前記オーバーフローの解消時に、前記バッファオーバーフローフラグ（４４）をリセットするステップとを具備する。
【００１３】
本発明の他の処理速度調整方法は、前記オーバーフローの発生時に、前記バッファ（４１）に前記オーバーフローが発生したことを示すためにバッファオーバーフローフラグ（４４）をリセットするステップと、初期状態又は前記オーバーフローの解消時に、前記バッファオーバーフローフラグ（４４）をセットするステップとを具備する。
【００１４】
本発明の処理速度調整方法は、前記バッファオーバーフローフラグ（４４）の値を検出し、発着信の発生数の増加を検出するステップを具備する。
【００１５】
本発明の処理速度調整方法は、前記バッファ部（１８）の段数を変更するステップを具備する。
【００１６】
本発明の処理速度調整方法は、前記バッファ（４１）のサイズを変更するステップを具備する。
【００１７】
本発明の処理速度調整方法は、前記バッファ部（１８）を構成する全てのバッファ（４１）（４２）（４３）に前記オーバーフローが発生したとき、前記制御部（１１）が前記データを破棄するステップを具備する。
【００１８】
本発明の通信装置は、制御部（１１）と、前記制御部（１１）に接続された呼制御モジュール（１２）と、前記呼制御モジュール（１２）に接続された入出力制御モジュール（１３）と、前記入出力制御モジュール（１３）に接続された通信ボード（１５）と、前記通信ボード（１５）から前記入出力制御モジュール（１３）を経由して通知された着信に基づいて前記呼制御モジュール（１２）がデータを格納するバッファ部（１８）とを具備する。
前記バッファ部（１８）はバッファ（４１）（４２）（４３）を多段階に構成したものであり、制御部（１１）は、前記バッファ（４１）（４２）（４３）の各々についてオーバーフローを監視し、前記オーバーフローの発生を通知し、前記オーバーフローの解消を通知する。
【００１９】
本発明の通信装置は、前記バッファ（４１）に前記オーバーフローが発生すると、前記制御部（１１）は前記オーバーフローが発生した前記バッファ（４１）に対応するバッファオーバーフローフラグ（４４）をセットする。前記オーバーフローが発生した前記バッファ（４１）に空き容量ができると、前記制御部（１１）は前記バッファオーバーフローフラグ（４４）をリセットする。
【００２０】
本発明の通信装置は、前記バッファ（４１）に前記オーバーフローが発生すると、前記制御部（１１）は前記オーバーフローが発生した前記バッファ（４１）に対応するバッファオーバーフローフラグ（４４）をリセットし、前記オーバーフローが発生した前記バッファ（４１）に空き容量ができると、前記制御部（１１）は前記バッファオーバーフローフラグ（４４）をセットする。
【００２１】
本発明の通信装置は、前記制御部（１１）は前記バッファオーバーフローフラグ（４４）の値を検出し、発着信の発生数の増加を検出する。
【００２２】
本発明の通信装置は、前記バッファ（４１）の一つである第１バッファ（４１）及び第２バッファ（４２）について、前記制御部（１１）は前記第１バッファ（４１）に前記オーバーフローが発生したとき、空き容量のある前記第２バッファ（４２）に前記データを格納する。
【００２３】
本発明の通信装置は、前記制御部（１１）は前記バッファ部（１８）の段数を変更する第１プログラムを実行する。
【００２４】
本発明の通信装置は、前記制御部（１１）は前記バッファ（４１）のサイズを変更する第２プログラムを実行する。
【００２５】
本発明の通信装置は、前記バッファ部（１８）を構成する全てのバッファ（４１）（４２）（４３）に前記オーバーフローが発生したとき、前記制御部（１１）が前記データを破棄するステップを具備する。
【００２６】
本発明のプログラムは、多段階のバッファ部（１８）を構成するバッファ（４１）のオーバーフローを監視するステップと、前記バッファ（４１）にデータを格納するステップと、前記バッファ（４１）の前記オーバーフローの発生を通知するステップと、前記オーバーフローの発生後、前記バッファ部（１８）のうち空き容量のある次段バッファ（４２）に前記データを格納するステップと、前記バッファ（４１）に格納されている前記データをＦＩＦＯで順次処理するステップと、前記バッファ（４１）に空き容量ができたとき、前記オーバーフローの解消を通知するステップと、前記次段バッファ（４２）から前記バッファ（４１）に前記データ又は前記データの書き込み位置を示すポインタを戻すステップとを具備する。
【００２７】
本発明のプログラムは、前記オーバーフローの発生時に、前記バッファ（４１）に前記オーバーフローが発生したことを示すためにバッファオーバーフローフラグ（４４）をセットするステップと、前記オーバーフローの解消時に、前記バッファオーバーフローフラグ（４４）をリセットするステップとを具備する。
【００２８】
本発明の他のプログラムは、前記オーバーフローの発生時に、前記バッファ（４１）に前記オーバーフローが発生したことを示すためにバッファオーバーフローフラグ（４４）をリセットするステップと、初期状態又は前記オーバーフローの解消時に、前記バッファオーバーフローフラグ（４４）をセットするステップとを具備する。
【００２９】
本発明のプログラムは、前記バッファオーバーフローフラグ（４４）の値を検出し、発着信の発生数の増加を検出するステップを具備する。
【００３０】
本発明のプログラムは、前記バッファ部（１８）の段数を変更するステップを具備する。
【００３１】
本発明のプログラムは、前記バッファ（４１）のサイズを変更するステップを具備する。
【００３２】
本発明のプログラムは、前記バッファ部（１８）を構成する全てのバッファ（４１）（４２）（４３）に前記オーバーフローが発生したとき、前記制御部（１１）が前記データを破棄するステップを具備する。
【発明の効果】
【００３３】
通信装置の制御方法において、発生する命令コードを一時的に格納するバッファを多段階に配置することで容易に処理速度を制御可能とし、オーバーフローによる障害を抑止可能とする。
バッファがオーバーフローしたときは命令コードを空き容量のある他のバッファに格納し、オーバーフローしたバッファに空き容量ができると再び先のバッファに命令コードが戻ることを可能とする。
バッファのオーバーフローの発生又はオーバーフローの解消を通知することを可能とする。
また、ＣＰＵに負荷を与えることなく発着信のイベント数の増加を検出し、ＣＰＵが内部の処理速度を調整可能とする。
【発明を実施するための最良の形態】
【００３４】
以下に本発明の第１実施形態について添付図面を参照して説明する。
ここでは、通信装置の例として、ボタン電話装置を使用する場合について説明する。
図１にボタン電話装置を用いたボタン電話システムの構成を示す。
ボタン電話システム１００は、ボタン電話装置１０と、公衆網１９と、外線電話機２０と、内線電話機３０とを有している。
【００３５】
ボタン電話装置１０は、ＣＰＵ１１と、呼制御モジュール１２と、Ｉ／Ｏ制御モジュール１３と、Ｉ／Ｏ制御モジュール１４と、外線インターフェースボード１５と、内線インターフェースボード１６と、メモリ部１７と、バッファ部１８とを備えている。
【００３６】
ボタン電話装置１０にはＣＰＵ１１が内蔵され、ボタン電話装置全体を制御する。
ＣＰＵ１１は電話機の発信動作、着信動作及び外線からの発信動作、着信動作を制御する呼制御モジュール１２と接続されている。
呼制御モジュール１２はボタン電話装置１０に収容される機能ボード毎に入出力を制御するＩ／Ｏ制御モジュール１３、Ｉ／Ｏ制御モジュール１４と接続されている。
Ｉ／Ｏ制御モジュール１３、Ｉ／Ｏ制御モジュール１４はそれぞれが担当する機能ボードである外線インターフェースボード１５、内線インターフェースボード１６に接続されている。
メモリ部１７はＣＰＵ１１と接続され、各種プログラムを格納している。
バッファ部１８は呼制御モジュール１２と接続されている。
公衆網１９は外線インターフェースボード１５と接続されている。
外線電話機２０は公衆網１９と接続されている。
内線電話機３０は内線インターフェースボード１６と接続されている。
【００３７】
なお、Ｉ／Ｏ制御モジュール１３とＩ／Ｏ制御モジュール１４は一体となっていても良い。同様に、外線インターフェースボード１５と内線インターフェースボード１６は一体となっていても良い。
【００３８】
図２を参照して外線からの着信が発生した場合の動作を説明する。
図２の構成では、図１の構成に加えて、更に、公衆網１９には外線電話機２１が接続されており、内線インターフェースボード１６には内線電話機３１が接続されている。
公衆網１９に接続された外線電話機２０及び外線電話機２１が発信動作を行う。公衆網１９は外線電話機２０及び外線電話機２１が送出する発信番号を検出すると、ボタン電話装置１０に収容されている外線インターフェースボード１５に着信信号を送出する。
外線インターフェースボード１５は外線からの着信を検出すると、Ｉ／Ｏ制御モジュール１３を経由して呼制御モジュール１２に着信を通知する。呼制御モジュール１２はバッファ部１８に着信の命令コードを積み重ねる。命令コードは着信に対応するデータとしても良い。なお、命令コードを積み重ねるとは、命令コードをスタックすることである。命令コードは着信に含まれており、着信のイベントの発生を示す。ここでは、外線から着信が来ていることを示す。
ＣＰＵ１１はバッファ部１８に積み重ねられた命令コードをＦｉｒｓｔ−ｉｎ／Ｆｉｒｓｔ−ｏｕｔ（先入れ先出し）で順次処理を行う。ＣＰＵ１１はメモリ部１７に格納されたプログラムに従い、Ｉ／Ｏ制御モジュール１４に着信を通知する。プログラムは通信制御を行うためのプログラムである。Ｉ／Ｏ制御モジュール１４は内線インターフェースボード１６に着信を通知し、最終的に内線電話機３０及び内線電話機３１に着信が通知され、内線電話機３０及び内線電話機３１が鳴動する。
【００３９】
図３に、図２における外線からの着信が発生した場合の動作のフローチャートを示す。動作については、ボタン電話装置１０自体が有する機能による場合と、動作を命令するプログラムによる場合とがある。
外線電話機２０及び外線電話機２１は公衆網１９を介してボタン電話装置１０に発信動作を行う（ステップＳ３０１）。
【００４０】
公衆網１９は外線電話機２０及び外線電話機２１が送出する発信番号を検出すると、ボタン電話装置１０に収容されている外線インターフェースボード１５に着信信号を送出する（ステップＳ３０２）。ここでは、図２を参照して、外線電話機２０の発信番号に対応する着信信号を着信１、外線電話機２１の発信番号に対応する着信信号を着信２とする。
【００４１】
外線インターフェースボード１５は外線からの着信である着信１及び着信２を検出する（ステップＳ３０３）。ここでは、図２を参照して、外線インターフェースボード１５が着信１を検出した外線を外線１、外線インターフェースボード１５が着信２を検出した外線を外線２とする。
ここからボタン電話装置１０の内部での処理となる。
【００４２】
外線インターフェースボード１５はＩ／Ｏ制御モジュール１３を経由して呼制御モジュール１２に着信１、着信２を通知する（ステップＳ３０４）。まず、外線インターフェースボード１５がＩ／Ｏ制御モジュール１３に着信１、着信２を通知し、Ｉ／Ｏ制御モジュール１３が呼制御モジュール１２に着信１、着信２を通知する。
【００４３】
呼制御モジュール１２はバッファ部１８に着信１、着信２の命令コードを積み重ねる（ステップＳ３０５）。バッファ部１８は多段階に構成されたバッファであり、一つのバッファにオーバーフローが発生すると、空き領域がある他のバッファに命令コードを積み重ね、空き領域があるバッファが存在しないときは命令コードを破棄する仕組みになっている。バッファの容量はＣＰＵ１１が監視する。
なお、複数回線からの着信が同時に発生した場合、積み重ねる命令コードの件数がバッファ容量をオーバーし、オーバーフローが発生してしまう場合もある。この場合については後で詳しく説明する。
【００４４】
呼制御モジュール１２はＣＰＵ１１に着信１、着信２を通知する（ステップＳ３０６）。
ＣＰＵ１１はバッファ部１８に積み重ねられた命令コードをＦｉｒｓｔ−ｉｎ／Ｆｉｒｓｔ−ｏｕｔ（先入れ先出し）で順次処理を行う（ステップＳ３０７）。Ｆｉｒｓｔ−ｉｎ／Ｆｉｒｓｔ−ｏｕｔ（先入れ先出し）とは、ある領域に保存されたデータを、保存された順番で処理する方式のことである。
【００４５】
ＣＰＵ１１はメモリ部１７に格納されたプログラムに従い、再び呼制御モジュール１２に着信１、着信２を通知する（ステップＳ３０８）。ここで、プログラムとは、ＣＰＵ１１が呼制御モジュール１２を制御するためのプログラムや、ボタン電話装置１０の通信制御に用いるプログラムのことである。
その後、呼制御モジュール１２からＩ／Ｏ制御モジュール１４に着信１、着信２を通知する（ステップＳ３０９）。
【００４６】
なお、場合によっては、ステップＳ３０６において、呼制御モジュール１２は、ＣＰＵ１１に着信１、着信２を通知せず、そのままステップＳ３０９に移行し、直にＩ／Ｏ制御モジュール１４に着信１、着信２を通知するようにしても良い。
【００４７】
Ｉ／Ｏ制御モジュール１４は内線インターフェースボード１６に着信１、着信２を通知する（ステップＳ３１０）。ここでは、着信１の通知を受けた内線を内線１、着信２の通知を受けた内線を内線２とする。内線１は内線電話機３０に接続され、内線２は内線電話機３１に接続されている。
ここから再びボタン電話装置１０の外部での処理となる。
【００４８】
内線インターフェースボード１６から内線１、内線２を介して最終的に内線電話機３０及び内線電話機３１に着信１、着信２が通知され、内線電話機３０及び内線電話機３１が鳴動する（ステップＳ３１１）。
【００４９】
上記動作の説明においては、発信動作を行う外線電話機は外線電話機２０及び外線電話機２１の２台で説明しているが、実際には、複数台の電話機からの着信が同時に発生する。コールセンターなどでは数分間に数千件〜１万件などの着信が発生することもある。内線電話機についても同様である。
外線インターフェースボード１５及び内線インターフェースボード１６の回線数も、ボタン電話装置１０の規模によるが、１回線〜１０００回線規模が構成可能である。
【００５０】
複数回線からの着信が同時に発生した場合、呼制御モジュール１２がバッファ部１８に積み重ねる命令コードの件数に対して、ＣＰＵ１１がバッファ部１８に積み重ねられた命令コードを処理するスピードが間に合わず、バッファ部１８の内部滞留件数が増加し、最終的にはバッファ容量をオーバーし、オーバーフローが発生してしまう。
【００５１】
図４に本実施形態でのバッファ部１８の具体的な構造を示す。
本実施形態では、バッファ部１８が、第１バッファ４１と、第２バッファ４２と、第３バッファ４３とで多段階に構成される例を示している。実際には、バッファの数はこの限りではない。なお、バッファは物理的に複数である必要はなく、一つのバッファの記憶領域を複数に区切ることで仮想的に複数のバッファとしたものでも良い。
第１バッファオーバーフローフラグ４４は、第１バッファ４１がオーバーフローしたことを示すフラグである。
第２バッファオーバーフローフラグ４５は、第２バッファ４２がオーバーフローしたことを示すフラグである。
第３バッファオーバーフローフラグ４６は、第３バッファ４３がオーバーフローしたことを示すフラグである。
各バッファオーバーフローフラグは、各バッファにおけるオーバーフローの検出や通知に用いられる。
【００５２】
ＣＰＵ１１は、バッファのオーバーフロー発生時に、オーバーフローしたバッファに対応するバッファオーバーフローフラグをセットする。同様に、バッファのオーバーフロー解消時に、オーバーフローしたバッファに対応するバッファオーバーフローフラグをリセットする。
【００５３】
また、呼制御モジュール１２又はバッファ部１８が、バッファの容量を監視する機能を有し、オーバーフローが発生又は解消したときに、ＣＰＵ１１に負荷を与えることなくバッファオーバーフローフラグをセット又はリセットするようにしても良い。
あるいは、ボタン電話装置１０が更に具備するＣＰＵ１１以外の制御部が、バッファの容量を監視し、バッファオーバーフローフラグをセット又はリセットするようにしても良い。
ＣＰＵ１１を使用せずに、バッファオーバーフローフラグをセット又はリセットした場合、これらのバッファオーバーフローフラグが、オーバーフローの発生又は解消をＣＰＵ１１に通知するために用いられる。
【００５４】
ここで、バッファのオーバーフロー発生時に、オーバーフローしたバッファに対応するバッファオーバーフローフラグをセットするとは、バッファオーバーフローフラグの値を、オーバーフローの発生を示す値にすることである。同様に、バッファのオーバーフロー解消時に、オーバーフローしたバッファに対応するバッファオーバーフローフラグをリセットするとは、バッファオーバーフローフラグの値を、オーバーフローの解消を示す値にすることである。
但し、上記の内容は例示であり、実際にはこれらの内容に限定されるものではない。
【００５５】
なお、前述の説明中のバッファとは、第１バッファ４１、第２バッファ４２、第３バッファ４３のことを指し、前述の説明中のバッファオーバーフローフラグとは、第１バッファオーバーフローフラグ４４、第２バッファオーバーフローフラグ４５、第３バッファオーバーフローフラグ４６のことを指す。
【００５６】
第１バッファ４１は、呼制御モジュール１２から着信の入力を受ける。第１バッファ４１がオーバーフローすると、ＣＰＵ１１が、オーバーフローした命令コードを第２バッファ４２に積み重ねると同時に第１バッファオーバーフローフラグ４４をセットする。同様に第２バッファ４２がオーバフローすると、ＣＰＵ１１が、オーバーフローした命令コードを第３バッファ４３に積み重ねると同時に第２バッファオーバーフローフラグ４５をセットする。続いて第３バッファ４３がオーバーフローすると、ＣＰＵ１１が、第３バッファオーバーフローフラグ４６をセットし、オーバフローした命令コードを廃棄する。
【００５７】
着信の入力が減少してＣＰＵ１１の処理が進むと第１バッファ４１が容量以下となる。第１バッファ４１に空き容量ができると、上記のオーバーフローと逆に第２バッファ４２から第１バッファ４１に命令コードが戻る仕組みとしている。但し、実際には命令コード自体が戻る仕組みとする必要はなく、例えば、バッファ内で命令コードを書き込む位置を示すライトポインタ（Ｗｒｉｔｅ  Ｐｏｉｎｔｅｒ）が戻る仕組みとしても良い。
【００５８】
第１バッファ４１に命令コードを戻し第２バッファ４２が空となった場合は、ＣＰＵ１１が、上記でセットした第１バッファオーバーフローフラグ４４をリセットする。第３バッファ４３が空となった場合も同様に、ＣＰＵ１１が、第２バッファオーバーフローフラグ４５をリセットする。第３バッファ４３に空き容量ができると、ＣＰＵ１１が、第３バッファオーバーフローフラグ４６をリセットする。
バッファオーバーフローフラグ４４〜４６の値をＣＰＵ１１が検出することで、発着信の発生数の増加を検出することが可能となる。
なお、命令コードの代わりにライトポインタが戻る仕組みとなっている場合は、例えば、第１バッファのオーバーフローが解消し、ライトポインタが第１バッファに戻った時点で、ＣＰＵ１１が第１バッファオーバーフローフラグ４４をリセットするようにしても良い。
【００５９】
ここで、ＣＰＵ１１がバッファオーバーフローフラグ４４〜４６の値に基づいて、オーバーフローの発生や解消、オーバーフローしたバッファの数といった情報を、音声又は信号又はデータ送信により、ボタン電話装置１０の利用者又は管理者に通知するようにしても良い。このとき、ボタン電話装置１０は、音声を発生する音声出力部と、受信した信号により点灯又は点滅する点灯部と、ディスプレイに表示する表示部のうち、通知に必要な装置を備えているものとする。また、必要であれば、外線電話機又は内線電話機に対して通知するようにしても良い。この場合、外線電話機又は内線電話機が、前述した通知に必要な装置を備えているものとする。
【００６０】
図５にバッファ部１８を構成する第１バッファ４１と、第２バッファ４２と、第３バッファ４３とのバッファオーバーフロー時の動作を示す。動作はＣＰＵ１１により制御されるものとする。動作については、ＣＰＵ１１又は各バッファ自体が有する機能による場合と、動作を命令するプログラムによる場合とがある。
【００６１】
まず、第１バッファ４１がオーバーフローしたとする（ステップＳ５０１）。
このとき、ＣＰＵ１１はオーバーフローした命令コードを第２バッファ４２に積み重ねると同時に第１バッファオーバーフローフラグ４４をセットする（ステップＳ５０２）。
なお、先に述べた通り、第１バッファ４１に空き容量ができ、その後、第１バッファ４１に命令コードを戻し第２バッファ４２が空となった場合、ＣＰＵ１１は上記でセットした第１バッファオーバーフローフラグ４４をリセットする。
【００６２】
第２バッファ４２がオーバフローすると（ステップＳ５０３）、ＣＰＵ１１はオーバーフローした命令コードを第３バッファ４３に積み重ねると同時に第２バッファオーバーフローフラグ４５をセットする（ステップＳ５０４）。
なお、先に述べた通り、第２バッファ４２に空き容量ができ、その後、第２バッファ４２に命令コードを戻し第３バッファ４３が空となった場合、ＣＰＵ１１は上記でセットした第２バッファオーバーフローフラグ４５をリセットする。
【００６３】
更に、第３バッファ４３がオーバーフローすると（ステップＳ５０５）、ＣＰＵ１１は第３バッファオーバーフローフラグ４６をセットし、以降オーバフローした命令コードを廃棄する（ステップＳ５０６）。
なお、第３バッファ４５に空き容量ができた場合、ＣＰＵ１１は第３バッファオーバーフローフラグ４６をリセットするものとする。
【００６４】
本発明の第２実施形態として、その基本的構成は第１実施形態と同じであるが、バッファの段数をプログラムにより可変とすることが考えられる。
バッファ部１８の記憶領域を複数に区切り、仮想的に多段階バッファとしている場合は、プログラムにより区切る数を変更するようにしても良い。例えば、３つに区切っていたバッファ部１８の記憶領域を、４つに区切るように変更する。
物理的に多段階バッファである場合には、プログラムにより、全てのバッファを統合して一つのバッファとみなして、仮想的に所望する段数に区切るようにしても良い。
なお、プログラムの実行については、ユーザの指示による実行の他、実行条件に基づいて、ＣＰＵ１１が自動的に実行するようにしても良い。
バッファ段数を変更させることで、オーバーフローの制御を細かく行うことが可能となる。
【００６５】
本発明の第３実施形態として、バッファのサイズをプログラムにより変更可能とすることが考えられる。
この場合、全てのバッファを同サイズにしても良いし、個々のバッファ毎にサイズを変えても良い。例えば、先頭のバッファのサイズを他のバッファより大きくして、残りのバッファのサイズは均等にしても良い。
なお、プログラムの実行については、ユーザの指示による実行の他、実行条件に基づいて、ＣＰＵ１１が自動的に実行するようにしても良い。
バッファのサイズを変更させることで、オーバーフローの制御を細かく行うことが可能となる。
【００６６】
本発明の第４実施形態として、第１実施形態とは逆に、バッファのオーバーフロー発生時に、オーバーフローしたバッファに対応するバッファオーバーフローフラグをリセットし、バッファのオーバーフロー発生時に、オーバーフローしたバッファに対応するバッファオーバーフローフラグをセットするようにしても良い。
【００６７】
本発明における外線電話機や内線電話機は、通常の電話機に限定するものではなく、電話機能を持つ通信機であれば良い。
【００６８】
本発明における通信装置として、交換機又はルータのように中継機としての機能を持つ装置を代わりに使用しても良い。
【００６９】
本発明における内線電話機は、有線の通信機に限定するものではなく、構内ＰＨＳを始めとする無線の通信機を使用しても良い。また、通信装置と内線電話機との間の通信は有線、無線を問わない。
【００７０】
本発明に関わる通信装置は、公衆網に限らず、ＩＳＤＮ、ＡＤＳＬ、光ファイバー、ケーブルテレビ及びその他のディジタル通信網において使用しても良い。但し、実際にはこれらの例に限定されるものではない。
【００７１】
本発明の対象は、電話機を用いた電話システムに限定されるものではなく、発信を行う通信機を用いたデータ通信システムにおいて使用しても良い。この場合、バッファには、着信に含まれるデータが積み重ねられる。
【図面の簡単な説明】
【００７２】
【図１】図１は、ボタン電話システムの構成を示すブロック図である。
【図２】図２は、ボタン電話システムの外線着信時の動作を示すブロック図である。
【図３】図３は、ボタン電話システムの外線着信時の動作を示すフローチャート図である。
【図４】図４は、バッファの構成を示すブロック図である。
【図５】図５は、バッファのオーバーフロー時の動作を示すフローチャート図である。
【符号の説明】
【００７３】
１０…  ボタン電話装置    
１１…  ＣＰＵ
１２…  呼制御モジュール
１３…  Ｉ／Ｏ制御モジュール
１４…  Ｉ／Ｏ制御モジュール
１５…  外線インタフェースボード
１６…  内線インタフェースボード
１７…  メモリ部
１８…  バッファ部
１９…  公衆網
２０…  外線電話機
２１…  外線電話機
３０…  内線電話機
３１…  内線電話機
４１…  第１バッファ
４２…  第２バッファ
４３…  第３バッファ
４４…  第１バッファオーバーフローフラグ
４５…  第２バッファオーバーフローフラグ
４６…  第３バッファオーバーフローフラグ
１００…  ボタン電話システム
【図１】
2006033348.tif 000003
【図２】
2006033348.tif 000004
【図３】
2006033348.tif 000005
【図４】
2006033348.tif 000006
【図５】
2006033348.tif 000007