(57)【特許請求の範囲】
【請求項１】
複数種類の信号の送受信に際してバッファを介して行うようにした通信システムにおいて、前記信号の種別に応じて、各信号が使用可能なバッファ数を制限する制御手段を含むバッファ制御システムであって、
前記制御手段は、
使用可能なバッファ数（バッファ制限値）に達した状態において、前記信号の前記バッファへの書き込みを禁止して待機せしめる手段と、
この待機中において所定間隔で前記バッファに対して再アクセスを行う再アクセス手段と、
この再アクセスによっても前記バッファに空きがない場合には前記信号を破棄する破棄手段と、
前記破棄手段による破棄数をカウントしてこの破棄数の統計を取り、この統計結果に応じて前記バッファ制限値を可変制御する制限値可変制御手段とを有することを特徴とするバッファ制御システム。
【請求項２】
前記信号の種別は優先順位であり、前記制御手段は、優先順位の高い信号は低い信号よりも前記バッファ制限値を多く設定するようにしたことを特徴とする請求項１記載のバッファ制御システム。
【請求項３】
前記再アクセス手段は、前記再アクセスを所定回数以下繰り返し行うようにしたことを特徴とする請求項２記載のバッファ制御システム。
【請求項４】
前記破棄手段は、前記再アクセスを所定回数繰り返しても前記バッファに空きがない場合に前記信号を破棄するようにしたことを特徴とする請求項３記載のバッファ制御システム。
【請求項５】
前記制限値可変制御手段は、前記破棄数を所定周期でカウントし、このカウントされた破棄数が所定設定値に達した時に前記バッファ制限値を所定数増加するようにしたことを特徴とする請求項１〜４いずれか記載のバッファ制御システム。
【請求項６】
前記制限値可変制御手段は、カウントされた前記破棄数が所定回数連続して前記所定設定値に達した時に前記バッファ制限値を所定数増加するようにしたことを特徴とする請求項５記載のバッファ制御システム。
【請求項７】
前記制御手段は、前記破棄数が所定回数連続して前記所定設定値に達した回数をカウントしてこの回数が所定規制値になったときに当該信号の発生に規制をかける規制制御手段を有することを特徴とする請求項６記載のバッファ制御システム。
【請求項８】
前記制限値可変制御手段は、カウントされた前記破棄数が予め設定された正常数より小となったときに前記バッファ制限値を元に戻すようにしたことを特徴とする請求項６または７記載のバッファ制御システム。
【請求項９】
前記通信システムは前記複数種類の信号の送受信をなす複数の通信装置により構成されており、前記制限値可変制御手段はこれ等複数の通信装置の各々に設けられていることを特徴とする請求項１〜８いずれか記載のバッファ制御システム。
【請求項１０】
前記バッファは、書き込み位置を示すライトポインタと読出し位置を示すリードポインタとを有し、前記制御手段は、前記ライトポインタとリードポインタとの差により前記信号の各々が使用可能なバッファ数を判定するようにしたことを特徴とする請求項１〜９いずれか記載のバッファ制御システム。
【請求項１１】
前記バッファ数（バッファ制限値）、前記再アクセスを繰り返す回数、前記破棄数をカウントする周期、前記バッファ制限値を増加するための破棄数の設定値、前記正常数の各パラメータは設定自在に構成されていることを特徴とする請求項１〜１０いずれか記載のバッファ制御システム。
【請求項１２】
複数種類の信号の送受信に際してバッファを介して行うようにした通信システムにおいて、前記信号の種別に応じて、各信号が使用可能なバッファ数を制限する制御ステップを含むバッファ制御方法であって、
前記制御ステップは、
使用可能なバッファ数（バッファ制限値）に達した状態において、前記信号の前記バッファへの書き込みを禁止して待機せしめるステップと、
この待機中において所定間隔で前記バッファに対して再アクセスを行う再アクセスステップと、
この再アクセスによっても前記バッファに空きがない場合には当該信号を破棄する破棄ステップと、
前記破棄ステップによる破棄数をカウントしてこの破棄数の統計を取り、この統計結果に応じて前記バッファ制限値を可変制御する制限値可変制御ステップとを有することを特徴とするバッファ制御方法。
【請求項１３】
前記信号の種別は優先順位であり、前記制御ステップは、優先順位の高い信号は低い信号よりも前記バッファ制限値を多く設定するようにしたことを特徴とする請求項１２記載のバッファ制御方法。
【請求項１４】
前記再アクセスステップは、前記再アクセスを所定回数以下繰り返し行うようにしたことを特徴とする請求項１３記載のバッファ制御方法。
【請求項１５】
前記破棄ステップは、前記再アクセスを所定回数繰り返しても前記バッファに空きがない場合に当該信号を破棄するようにしたことを特徴とする請求項１４記載のバッファ制御方法。
【請求項１６】
前記制限値可変制御ステップは、前記破棄数を所定周期でカウントし、このカウントされた破棄数が所定設定値に達した時に前記バッファ制限値を所定数増加するようにしたことを特徴とする請求項１２〜１５いずれか記載のバッファ制御方法。
【請求項１７】
前記制限値可変制御ステップは、カウントされた前記破棄数が所定回数連続して前記所定設定値に達した時に前記バッファ制限値を所定数増加するようにしたことを特徴とする請求項１６記載のバッファ制御方法。
【請求項１８】
前記制御ステップは、前記破棄数が所定回数連続して前記所定設定値に達した回数をカウントしてこの回数が所定規制値になったときに当該信号の発生に規制をかけるステップを有することを特徴とする請求項１７記載のバッファ制御方法。
【請求項１９】
前記制限値可変制御ステップは、カウントされた前記破棄数が予め設定された正常数より小となったときに前記バッファ制限値を元に戻すようにしたことを特徴とする請求項１７または１８記載のバッファ制御方法。
【請求項２０】
前記通信システムは前記複数種類の信号の送受信をなす複数の通信装置により構成されており、前記制限値可変制御ステップをこれ等複数の通信装置の各々が有することを特徴とする請求項１２〜１９いずれか記載のバッファ制御方法。
【請求項２１】
前記バッファは、書き込み位置を示すライトポインタと読出し位置を示すリードポインタとを有し、前記制御ステップは、前記ライトポインタとリードポインタとの差により前記信号の各々が使用可能なバッファ数を判定するようにしたことを特徴とする請求項１２〜２０いずれか記載のバッファ制御方法。
【請求項２２】
前記バッファ数（バッファ制限値）、前記再アクセスを繰り返す回数、前記破棄数をカウントする周期、前記バッファ制限値を増加するための破棄数の設定値、前記正常数の各パラメータは設定自在に構成されていることを特徴とする請求項１２〜２１いずれか記載のバッファ制御方法。
【請求項２３】
複数種類の信号の送受信に際してバッファを介して行うようにした通信システムにおけるバッファ制御をコンピュータに実行させるための制御プログラムを記録した記録媒体であって、
前記制御プログラムは、
前記信号の種別に応じて、各信号が使用可能なバッファ数を制限する制御ステップを含み、
前記制御ステップは、
使用可能なバッファ数（バッファ制限値）に達した状態において、前記信号の前記バッファへの書き込みを禁止して待機せしめるステップと、
この待機中において所定間隔で前記バッファに対して再アクセスを行う再アクセスステップと、
この再アクセスによっても前記バッファに空きがない場合には当該信号を破棄する破棄ステップと、
前記破棄ステップによる破棄数をカウントしてこの破棄数の統計を取り、この統計結果に応じて前記バッファ制限値を可変制御する制限値可変制御ステップとを有することを特徴とする記録媒体。
【請求項２４】
前記信号の種別は優先順位であり、前記制御ステップは、優先順位の高い信号は低い信号よりも前記バッファ制限値を多く設定するようにしたことを特徴とする請求項２３記載の記録媒体。
【請求項２５】
前記再アクセスステップは、前記再アクセスを所定回数以下繰り返し行うようにしたことを特徴とする請求項２４記載の記録媒体。
【請求項２６】
前記破棄ステップは、前記再アクセスを所定回数繰り返しても前記バッファに空きがない場合に当該信号を破棄するようにしたことを特徴とする請求項２５記載の記録媒体。
【請求項２７】
前記制限値可変制御ステップは、前記破棄数を所定周期でカウントし、このカウントされた破棄数が所定設定値に達した時に前記バッファ制限値を所定数増加するようにしたことを特徴とする請求項２３〜２６いずれか記載の記録媒体。
【請求項２８】
前記制限値可変制御ステップは、カウントされた前記破棄数が所定回数連続して前記所定設定値に達した時に前記バッファ制限値を所定数増加するようにしたことを特徴とする請求項２７記載の記録媒体。
【請求項２９】
前記制御ステップは、前記破棄数が所定回数連続して前記所定設定値に達した回数をカウントしてこの回数が所定規制値になったときに当該信号の発生に規制をかけるステップを有することを特徴とする請求項２８記載の記録媒体。
【請求項３０】
前記制限値可変制御ステップは、カウントされた前記破棄数が予め設定された正常数より小となったときに前記バッファ制限値を元に戻すようにしたことを特徴とする請求項２８または２９記載の記録媒体。
【請求項３１】
前記バッファは、書き込み位置を示すライトポインタと読出し位置を示すリードポインタとを有し、前記制御ステップは、前記ライトポインタとリードポインタとの差により前記信号の各々が使用可能なバッファ数を判定するようにしたことを特徴とする請求項２３〜３０いずれか記載の記録媒体。
【請求項３２】
前記バッファ数（バッファ制限値）、前記再アクセスを繰り返す回数、前記破棄数をカウントする周期、前記バッファ制限値を増加するための破棄数の設定値、前記正常数の各パラメータは設定自在に構成されていることを特徴とする請求項２３〜３１いずれか記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバッファ制御システム及びその方法並びにその制御プログラム記録媒体に関し、特に交換機、伝送装置、制御装置等におけるデータ転送の際に複数のデータが流れるなかで効率的なデータ伝送を可能としたバッファ制御方式に関するものである。
【０００２】
【従来の技術】
このようなデータ転送システムにおいては、一般的にバッファを使用してデータ通信を行うが、近年伝送データ量の増加で送受信のバッファ量が足りなくなり、このとき優先順位の高い信号を有効的に通すことが要求される。かかる要求に応えるために、例えば、特開平４−１３０８３６号公報に開示されているように、未使用の送受信バッファの容量が少なくなったときは、特定の送信元のデータのみを送受信バッファに格納し、他のデータについては、送受信のバッファの容量不足により複数の局間にわたって同時にデータを廃棄するようにした技術が提案されている。
【０００３】
この従来技術の手法を図５３に示す。この図において、送信元局アドレス検出器４は切り替え器８に接続され、自局宛の受信データの送信元局アドレスを受信判定器５に送る。受信頻度検出器６は未使用の送受信バッファの容量を監視し、未使用の送受信バッファが規定された容量よりも少なくなると、受信頻度が大きいデータの検出出力を発生して受信判定器５に送ると同時に、スイッチ９１及び９２を制御して、切り替え器１０の接点ｂ側の系統に切替える。受信判定器５は受信頻度検出器６の受信頻度検出出力を受けたとき、送信元局アドレス検出器４にて検出される受信データの送信元局が、特定の送信元局からの受信データであるかどうかを判定し、特定の送信元局以外のときには、切替器１０を接点ｂ側に切り替えて受信データを破棄するものである。
【０００４】
なお、図において、１は宛先局アドレス、２は比較器、３は自局アドレス登録器、７はデータ送受信部である。
【０００５】
【発明が解決しようとする課題】
ところが、当該技術では、信号送受信のばたつきが多いときの伝送においては、バッファを切り替えるので、ばたつきが生じる。また、切替には同期がとれなくばたつきが多いと破棄され、データが破壊されることが多くなる。特定の信号も１種類だけ限定され、仮に複数の信号を優先したいときには、切り替え数が多くなるという動作となるため、回路規模が多くなるという問題がある。更には、設置した局によって信号のばらつきが発生するので、初回に設定した値と反したときに有効的な使い方が出来なくなる。このため、設置した局の見直しが必要となり、再設計を行わなければならないという問題もある。
【０００６】
本発明の主な目的は、送受信に対するデータの量が増えたときに伝送タイミングに関係せずに優先順位が低い信号よりも高い信号を有効的に通すことが可能なバッファ制御システム及びその方法並びにその制御プログラム記録媒体を提供することである。
【０００７】
本発明の他の目的は、データ伝送タイミングのばたつきがある伝送路でも、データ破棄をできるだけ少なくするようにしたバッファ制御システム及びその方法並びにその制御プログラム記録媒体を提供することである。
【０００８】
【課題を解決するための手段】
本発明によるバッファ制御システムは、複数種類の信号の送受信に際してバッファを介して行うようにした通信システムにおいて、前記信号の種別に応じて、各信号が使用可能なバッファ数を制限する制御手段を含むバッファ制御システムであって、前記制御手段は、使用可能なバッファ数（バッファ制限値）に達した状態において、前記信号の前記バッファへの書き込みを禁止して待機せしめる手段と、この待機中において所定間隔で前記バッファに対して再アクセスを行う再アクセス手段と、この再アクセスによっても前記バッファに空きがない場合には前記信号を破棄する破棄手段と、前記破棄手段による破棄数をカウントしてこの破棄数の統計を取り、この統計結果に応じて前記バッファ制限値を可変制御する制限値可変制御手段とを有することを特徴とする。
【００１２】
本発明によるバッファ制御方法は、複数種類の信号の送受信に際してバッファを介して行うようにした通信システムにおいて、前記信号の種別に応じて、各信号が使用可能なバッファ数を制限する制御ステップを含むバッファ制御方法であって、前記制御ステップは、使用可能なバッファ数（バッファ制限値）に達した状態において、前記信号の前記バッファへの書き込みを禁止して待機せしめるステップと、この待機中において所定間隔で前記バッファに対して再アクセスを行う再アクセスステップと、この再アクセスによっても前記バッファに空きがない場合には当該信号を破棄する破棄ステップと、前記破棄ステップによる破棄数をカウントしてこの破棄数の統計を取り、この統計結果に応じて前記バッファ制限値を可変制御する制限値可変制御ステップとを有することを特徴とする。
【００１６】
本発明による記録媒体は、複数種類の信号の送受信に際してバッファを介して行うようにした通信システムにおけるバッファ制御をコンピュータに実行させるための制御プログラムを記録した記録媒体であって、前記制御プログラムは、前記信号の種別に応じて、各信号が使用可能なバッファ数を制限する制御ステップを含み、前記制御ステップは、使用可能なバッファ数（バッファ制限値）に達した状態において、前記信号の前記バッファへの書き込みを禁止して待機せしめるステップと、この待機中において所定間隔で前記バッファに対して再アクセスを行う再アクセスステップと、この再アクセスによっても前記バッファに空きがない場合には当該信号を破棄する破棄ステップと、前記破棄ステップによる破棄数をカウントしてこの破棄数の統計を取り、この統計結果に応じて前記バッファ制限値を可変制御する制限値可変制御ステップとを有することを特徴とする。
【００２０】
本発明の作用を述べる。本発明によるバッファ制御方式では、通信で使用するバッファ部分に、データの種類（例えば、優先度）に応じて制限数を設けるように構成する。このバッファ制限は、複数の局間を通信する信号の数が多い時、信号の種類によってその制限量を変化させるものであり、これにより、使用するバッファの制限値が多い信号は、他の信号がバッファフルの状態においても信号を送受信できることになる。従って、信号の優先順位に従ってバッファの量を変えることにより、バッファの有効的な利用ができ、かつ優先信号の効率的な伝送が出来るという効果が得られる。
【００２１】
また、バッファフル時にバッファに溜まっているデータを破棄する場合、一定時間すぎたときにデータを破棄する様に制御する。すなわち、バッファフル時にＣＰＵがタイマをスタートしてタイムアウトをしたらデータを１バイト破棄する。従って、バッファの送信が一定時間以上行われないときでも、古いデータは破棄されるという効果が得られる。
【００２２】
更に、データ破棄量の監視を行い、破棄量の統計を行ってこの統計データによりバッファの制限制御をなす。この統計データによるバッファ数の変更方法としは、一定時間毎に、また信号毎に、データ破棄量を集計し、データ破棄量が制限値を所定回数連続して越えると、バッファ制限値を増加する様にする。そして、このバッファ制限値を増加した状態で以後運用されるが、この状態で自身の信号に影響がない場合には（自身の信号が破棄されることなく順調にバッファに書き込まれている場合には）、増加した制限値を元に戻すようにする。
【００２３】
信号種別が多い通信システムにおいて、ＣＰＵ間通信を行う通信装置が各地に設置されている様な場合に、装置を工場出荷する時点では、信号の種類に応じてＣＰＵ間のデータ転送量が判明しておらず、最適値設定することは困難であるが、本手法を使用することで、各信号における優先度における信号破棄数の制限値を初期値として設定することにより、各設置された装置毎にデータ破棄量に応じてＣＰＵが自動的に当該制限値を補正することになるので、汎用性が著しく大となる。
【００２４】
【発明の実施の形態】
以下に、本発明の実施の形態につき図面を参照しつつ詳細に説明する。図１は本発明の一実施の形態の全体ブロック図であり、図２は図１のブロック間で授受される信号を示しており、図３は同じく図１のブロック間で授受されるデータの種類を説明するための図である。先ず、図２を参照すると、本回路１００は、ＣＰＵ１０１を含んだＣＰＵ周辺回路１０２と、２つのバッファＡ１０３，Ｂ１０４とにより構成される。そして、本回路１００は他回路Ａ１１７及び他回路Ｂ１１８とデータを送受信を行うものとする。
【００２５】
ＣＰＵ周辺回路１０２は、ＣＰＵ１０１が実行するバッファ制御プログラム１０５を格納したメモリ１０６を有する。メモリ１０６には、その他に、各バッファの管理のために、バッファＡ用テーブル１０７とバッファＢ用テーブル１０８とが設けられている。ＣＰＵ周辺回路１０２はその他にタイマ−１１９と割り込みコントローラ１２０とを有する。
【００２６】
図２を参照すると、他回路Ｂ１１８から他回路Ａ１１７への信号を下り信号１０９とし、他回路Ａ１１７から他回路Ｂ１１８への信号を上り信号１１０とする。下り信号１０９は信号の種類によって信号Ａ１２１、信号Ｂ１２２、信号Ｃ１２３、信号Ｄ１２４があり、他回路Ｂ１１８からＣＰＵ１０１を経由して他回路Ａ１１７へ送出する信号Ａ１２１及び信号Ｂ１２２の場合と、他回路Ｂ１１８からＣＰＵ１０１宛の信号Ｃ１２３の場合と、ＣＰＵ１０１発で他回路Ａ１１７行きの信号Ｄ１２４の場合とがある。
【００２７】
上り信号１１０は信号Ａ’１２５、信号Ｂ’１２６、信号Ｃ’１２８、信号Ｄ’１２７があり、他回路Ａ１１７からＣＰＵ１０１を経由して他回路Ｂ１１８へ送出する信号Ａ’１２５及び信号Ｂ’１２６の場合と、他回路Ａ１１７からＣＰＵ１０１宛の信号Ｄ’１２７の場合と、ＣＰＵ１０１発で他回路Ｂ１１８行きの信号Ｃ’１２８の場合とがある。
【００２８】
バッファＡ１０３は、ＣＰＵ１０１から他回路Ａ１１７への下り信号１０９を送受するための下りバッファＡ１１３と、他回路Ａ１１７からＣＰＵ１０１への上り信号１１０を送受するための上りバッファＡ１１４とを有している。バッファＢ１０４は、ＣＰＵ１０１から他回路Ｂ１１８への上り信号１１０を送受するための上りバッファＢ１１６と、他回路Ｂ１１８からＣＰＵ１０１への下り信号１０９を送受するための下りバッファＢ１１５とを有している。
【００２９】
ＣＰＵ１０１は各信号の信号種別を判別して処理を行う。下り信号の場合、他回路Ｂ１１８からの信号Ａ１２１、信号Ｂ１２２、信号Ｃ１２３は下りバッファＢ１１５を経由してＣＰＵ１０１へ送られる。ＣＰＵ１０１は、ＡＡ、ＢＢ、ＣＣの信号から各信号種別を判別して、信号Ａ１２１及び信号Ｂ１２２ならば下りバッファＡ１１３へ信号を書き込み、他回路Ａ１１７に送出する。信号Ｃ１２３ならば自分宛の信号と判断し、ＣＰＵ１０１が自己処理を行う。また、信号Ｄ１２４はＣＰＵ１０１により発生されて他回路Ａ１１７へ送られる信号なので、下りバッファＡ１１３へ書き込まれて他回路Ａ１１７へ送出される。
【００３０】
上り信号１１０の場合、他回路Ａ１１７からの信号Ａ’１２４、信号Ｂ’１２５、信号Ｄ’１２７は上りバッファＡ１１４を経由してＣＰＵ１０１へ送られ、ＣＰＵ１０１はＡ’Ａ’、Ｂ’Ｂ’、Ｄ’Ｄ’の信号から各信号種別を判別して信号Ａ’１２５及び信号Ｂ’１２６ならば上りバッファＢへ信号を書き込み、他回路Ｂ１１８へ送出する。信号Ｄ’１２７ならば自分宛の信号と判断し、ＣＰＵ１０１が自己処理を行う。また、信号Ｃ’１２８はＣＰＵ１０１により発生されて他回路Ｂ１１８へ送られる信号なので、上りバッファＢ１１６へ書き込まれて他回路Ｂ１１８へ送出される。
【００３１】
バッファＡ１０３及びバッファＢ１０４のバッファをバッファ制御プログラム１０５にて管理するために、バッファＡ用テーブル１０７とバッファＢ用テーブル１０８とが設けられている。バッファＡテーブル１０７には、各信号に応じてバッファの数の制限をする機能と、バッファの使用状態を監視して信号の規制を与える機能とがある。また、他回路からの信号を規制するために、下り信号規制機能１１１と上り信号規制機能１１２とがある。
【００３２】
下り信号規制機能１１１は他回路Ｂ１１８からの下り信号を抑制するために、他回路Ｂ１１８へ下り信号１０９の規制信号を送付する。上り信号規制機能１１２は他回路Ａ１１７からの上り信号を抑制するために、他回路Ａ１１７へ上り信号１１０の規制信号を送付する。
【００３３】
図３を参照すると、各信号の種類における行き先を示している。各信号は他回路Ａ’１２９、他回路Ａ１１７、本回路１００、他回路Ｂ１１８、他回路Ｂ’１３０の各回路間のデータを送受している。各信号は信号の種類によって転送される部分が異なり、信号Ａ１２１と信号Ａ’１２５とは他回路Ａ’１２９と他回路Ｂ’１３０間で送受される。そのために、間にある他回路Ａ１１７、本回路１００、他回路Ｂ１１８は信号Ａ１２１と信号Ａ’１２５を中継する。信号Ｂ１２２と信号Ｂ’１２６とは他回路Ａ１１７と他回路Ｂ１１８の間で送受される。そのため、間にある本回路１００は信号Ｂ１２２及び信号Ｂ’１２６を中継する。信号Ｃ１２３と信号Ｃ’１２８とは本回路１００と他回路Ｂ１１８とで送受される。信号Ｄ１２４と信号Ｄ’１２７とは本回路１００と他回路Ａ１１７とで送受される。
【００３４】
図４を参照すると、図３で示す各信号の構成を示している。各信号は信号種別１３１、信号長１３２、信号内容１３３にて構成され、例えば下り信号１０９で信号Ａ１２１の場合は、信号種別１３１はＡＡとなり、信号長１３２はＡＡＡ、信号内容はＡＡＡＡとなる。信号の全体の長さは、信号種別１３１で１バイト、信号長１３２で１バイト、信号内容１３３でｎバイトであることから、１＋１＋ｎバイトとなる。このとき、信号長１３２は信号内容１３３の長さを示し、例えば、信号Ａの信号内容がｎバイトあるときは、信号長１３２のＡＡＡ＝ｎとなる。他に信号Ｂ１２２、信号Ｃ１２３、信号Ｄ１２４、信号Ａ’１２５、信号Ｂ’１２６、信号Ｃ’１２８、信号Ｄ’１２７も同様の構成となっている。
【００３５】
図５を参照すると、図１で使用しているバッファの構成を示している。下りバッファＡ１１３、上りバッファＡ１１４、下りバッファＢ１１５、上りバッファＢ１１６は同等の構成されている。本図は、下りバッファＡ１１３の構成について示す。
【００３６】
下りバッファＡ１１３は、バッファの内容はバッファ部１４１とポインタ部１４２で構成されている。バッファ部１４１はｈ分ある。＃０〜＃ｈどのバッファとも同様の構成をしている。＃ｈバッファ１４４を例にとると、＃ｈバッファ１１４は、図４の信号構成がそのままバッファの構成となり、信号種別用バッファ１４５が１バイト、信号長用バッファ１４６が１バイト、信号内容用バッファが信号内容最大長のｍバイトある。すなわち、１つのバッファ＃ｈのバッファ量としてはｐ＝１＋１＋ｍとなり、バッファ部全体として（ｈ＋１）×ｐバイトの容量がある。ポインタ部１４２はバッファに書き込むときにアクセスするライトポインタ１４８と、バッファ部から読み込む時にアクセスするリードポインタ１４９とが、各１バイトづつある。
【００３７】
図６を参照すると、図１で使用しているバッファＡテーブル１０７とバッファＢテーブル１０８との構成が示されている。バッファＡテーブル１０７には、下りバッファＡ１１３用として、下りバッファＡ管理テーブル１５１と下りバッファＡ信号破棄統計テーブル１５２とがある。上りバッファＡ１１４用として、上りバッファＡ管理テーブル１５３がある。上りバッファＡ１１４用のテーブルに信号破棄統計テーブルが無いのは、下りバッファＡはＣＰＵ１０１から信号を書き込む部分であり、上りバッファＡは読み込み部分であるので、管理内容が異なるからである。同様に、バッファＢテーブル１０８には、下りバッファＢ管理テーブル１５４、上り管理テーブル１５５、上りバッファＢ信号破棄統計テーブル１５６がある。
【００３８】
図７を参照すると、図６で使用している下りバッファＡ管理テーブル１５１の詳細が示されている。下りバッファＡ管理テーブルは下りバッファを通る信号Ａ、信号Ｂ、信号Ｄの通過の制限を与えるために設けられており、下りバッファＡ管理テーブル１５１にはバッファ制限設定部と信号カウント部とが設けられている。バッファ制限設定部は下りバッファＡを通過する信号Ａ１２１、信号Ｂ１２２、信号Ｄ１２４のバッファの使用量を制限する値を設定できるようなっており、信号Ａバッファ制限数設定値、信号Ｂバッファ制限数設定値、信号Ｄバッファ制限数設定値がある。
【００３９】
その他に、ＣＰＵ１０１が下りバッファＡ１１３に信号Ａ１２１，信号Ｂ１２２、信号Ｄ１２４を書き込めないときに書き込みのリサイクルをなす周期の設定値として、信号書き込み監視周期Ｅ設定値と、各信号Ａ，Ｂ，Ｄのリサイクルの回数を制限する信号Ａ，Ｂ，Ｄの各書き込みリサイクル回数設定値とがある。また、信号カウント部は、リサイクル回数を各信号毎に管理を行うために、信号Ａリサイクルカウント値、信号Ｂリサイクルカウント値、信号Ｃリサイクルカウント値がある。そして、各リサイクル設定値を各リサイクル数が越えたときに信号を破棄する回数のカウントのために、信号Ａ破棄数カウント値、信号Ｂ破棄数カウント値、信号Ｄ破棄数カウント値がある。
【００４０】
図８を参照すると、図６で使用している下りバッファＡ信号破棄統計テーブルの詳細が示されている。下りバッファＡ信号破棄統計テーブル１５２は、信号の破棄状態を常時監視して規制信号を出すために管理をするものであり、信号破棄数注意／警告設定部１８１と信号破棄数注意／警告カウント部１８２とを有する。信号破棄数注意／警告設定部１８１は、信号Ａ１２１、信号Ｂ１２２、信号Ｄ１２４の信号破棄数の上昇に伴う注意と警告の数を設定するために、信号Ａ破棄数注意設定値、信号Ｂ破棄数注意設定値、信号Ｄ破棄数注意設定値、信号Ａ破棄数警告設定値、信号Ｂ破棄数警告設定値、信号Ｄ破棄数警告設定値を有し、更に、各信号Ａ，Ｂ，Ｄの注意数設定値、各信号Ａ，Ｂ，Ｄの正常数設定値、各信号Ａ，Ｂ，Ｄの規制設定値を有する。
【００４１】
更にはまた、一定周期Ｇで信号破棄量のカウントを行うために破棄量カウント周期Ｇ設定値、一定周期Ｈで注意数及び警告数のカウントを行うために注意／警告数カウント周期Ｈを有する。
【００４２】
信号破棄数注意／警告カウント部１８２は、信号Ａ１２１、信号Ｂ１２２、信号Ｄ１２４の信号破棄数の注意及び警告数を注意／警告数カウント周期Ｈ毎に越えた数として、信号Ａ注意数カウント値、信号Ｂ注意数カウント値、信号Ｄ注意数カウント値、信号Ａ警告数カウント値、信号Ｂ警告数カウント値、信号Ｄ警告数カウント値を有する。また、各信号Ａ，Ｂ，Ｄの正常数カウント値をも有する。
【００４３】
図９を参照すると、図６で使用している上りバッファＡ管理テーブルの詳細が示されている。上りバッファＡ管理テーブル１５３は、バッファ読み込み設定部として、一定周期でバッファ読み込みための設定のためのバッファ読み込み周期Ｉ設定値を有する。図１０を参照すると、図６で使用している下りバッファＢ管理テーブル１５４の詳細が示されている。下りバッファＢ管理テーブル１５４は、図９の上りバッファＡ管理テーブルと同様に、バッファ読み込み設定部としてバッファ読み込み周期Ｊ設定値を有する。
【００４４】
図１１を参照すると、図６で使用している上りバッファＢ管理テーブル１５５の詳細が示されている。上りバッファＢ管理テーブル１５５は、図７の下りバッファＡ管理テーブルと同様に、バッファＢを通過する信号Ａ’、信号Ｂ’、信号Ｃ’の対応として、バッファ制限設定部には、信号Ａ’バッファ制限数設定値、信号Ｂ’バッファ制限数設定値、信号Ｃ’バッファ制限数設定値、上り信号書き込み監視周期Ｋ設定値、信号書き込みリサイクル回数Ｌ設定値を有する。
【００４５】
信号カウント部は、リサイクル回数を各信号毎に管理するために、信号Ａ’リサイクルカウント値、信号Ｂ’リサイクルカウント値、信号Ｃ’リサイクルカウント値を有する。そして、各リサイクル設定値を各リサイクル数が越えた時に、信号を破棄する回数をカウントするために、信号Ａ’破棄数カウント値、信号Ｂ’破棄数カウント値、信号Ｃ’破棄数カウント値を有する。
【００４６】
図１２を参照すると、図６で使用している上りバッファＢ信号破棄統計テーブルの詳細が示されている。上りバッファＢ信号破棄統計テーブルは、図８の下りバッファＡ信号破棄統計テーブル１５２と同様に、バッファＢの通過する信号Ａ’、信号Ｂ’、信号Ｃ’の対応として、信号破棄数注意／警告設定部２４１は、信号Ａ’破棄数注意設定値、信号Ｂ’破棄数注意設定値、信号Ｃ’破棄数注意設定値と、また、信号Ａ’破棄数警告設定値、信号Ｂ’破棄数警告設定値、信号Ｃ’破棄数警告設定値とを有し、更に、破棄量カウント周期Ｍ設定値と、注意／警告数カウント周期Ｎとを有する。
【００４７】
注意／警告カウント部２４２は、信号Ａ’注意数カウント値、信号Ｂ’注意数カウント値、信号Ｃ’注意数カウント値と、信号Ａ’警告数カウント値、信号Ｂ’警告数カウント値、信号Ｃ’警告数カウント値と、各信号の正常数カウント値とを有する。
【００４８】
図１３を参照すると、図１におけるバッファ制御プログラム１０５の構成が示されている。バッファ制御プログラムは、アイドルタスク、バッファＡ制御タスク部、バッファＢ制御タスク部、アプリケーション動作部に分割され、各ブロックとも独立に動作をしている。各信号の流れに対する構成は図１４に示す。
【００４９】
アイドルタスクは、バッファＡ制御部、バッファＢ制御タスク部、アプリケーション動作部が動作していない時に実行される部分である。バッファＡ制御タスク部には、下り信号送信タスク部と、上り信号受信タスクと、下り信号破棄カウントタスクと、下り信号制御タスクとがあり、バッファＡの制御をする部分である。下り信号送信タスク部には、信号Ａタスク、信号Ｂタスク、信号Ｄタスクがあり、信号Ａ、信号Ｂ、信号Ｄを他回路Ａへ送信する機能であり、下り信号受信タスク部からの信号Ａ，ＢとＣＰＵ１０１の信号Ｄが受信された時に、バッファＡへ書き込み処理を行う。
【００５０】
上り信号受信タスクは他回路Ａからの上り信号を受信する機能であり、バッファＡ上り信号読み込みタイマがタイムアウト後毎に上りバッファＡを監視し、バッファＡからの信号Ａ’，Ｂ’，Ｄ’が受信されると、信号によって行き先を変える。信号Ａ’及びＢ’ならばバッファＢへの信号なので、上り信号送信タスクへ信号を渡し、信号Ｄ’ならばＣＰＵ１０１への信号なので、信号Ｄ’制御部に渡す。
【００５１】
下り信号破棄カウントタスクは、下り信号が信号破棄する状態をバッファＡ下り破棄カウントタイマ毎に集計し、一定値を上回ったら使用出来るバッファ数を変更する機能である。下り信号規制タスクは、下り信号の警報数をバッファＡ下り信号規制タイマ−毎にカウントを行い、信号毎に規制を行う機能である。信号Ａ及び信号Ｂの規制は他回路Ｂへ送出し、信号Ｄの規制は信号Ｄ発生部に規制信号を送付する。
【００５２】
バッファＢ制御タスク部には、上り信号送信タスク部と、下り信号受信タスクと、上り信号破棄カウントタスクと、上り信号制御タスクとがあり、バッファＢの制御をする部分である。上り信号送信タスク部には、信号Ａ’タスク、信号Ｂ’タスク、信号Ｃ’タスクがあり、信号Ａ’、信号Ｂ’、信号Ｃ’を他回路Ｂへ送信する機能であり、信号Ａ’，信号Ｂ’，信号Ｃ’が信号受信又は信号発生した時に動作を行う。下り信号受信タスクは他回路Ｂからの下り信号を受信する機能であり、バッファＢ下り信号読み込みタイマがタイムアウト後毎に下りバッファＢを監視する。
【００５３】
上り信号破棄カウントタスクは上り信号が信号破棄する状態をバッファＢ上り破棄カウントタイマ毎に集計し、一定値を上回ったら使用出来るバッファ数を変更する機能である。上り信号規制タスクは、上り信号の警報数をバッファＢ上り信号規制タイマ毎にカウントを行い、信号毎に規制を行う機能である。
【００５４】
アプリケーション動作部には、信号Ｄ発生部、信号Ｃ’発生部、信号Ｃ制御部、信号Ｄ制御部がある。信号Ｄ発生部は他回路Ａへ送信するデータの発生部分であり、信号Ｄが発生すると、下り信号送信タスク部へ信号Ｄを送出する。また、規制タスクからの信号Ｄ規制を受けると信号Ｄの発生を調整する。信号Ｃ’発生部は他回路Ｂへ送信するデータの発生部分であり、信号Ｃ’が発生すると、上り信号送信タスク部へ信号Ｃ’を送出する。また、規制タスクからの信号Ｃ’規制を受けると信号Ｃ’の発生を調整する。
【００５５】
信号Ｃ制御部は、信号Ｃが下り信号受信タスクから来ると信号Ｃ制御部で処理を行う。信号Ｃ制御部の処理がオーバーとなった場合には、他回路Ｂへ信号Ｃの規制を掛ける機能がある。信号Ｄ’制御部は、信号Ｄ’上り信号が受信タスクから来ると信号Ｄ制御部で処理を行う。信号Ｄ制御部の処理がオーバーとなった場合には他回路Ａへ信号Ｄの規制を掛ける機能がある。
【００５６】
図１５を参照すると、図１におけるタイマ１１９と割り込みコントローラ１２０との関係の詳細を示している。タイマ１１９には、各信号Ａ，Ｂ，Ｄに対応する書き込みリサイクルタイマと、各信号Ａ’，Ｂ’，Ｃ’に対応する書き込みリサイクルタイマと、バッファＡ上り信号読み込みタイマと、バッファＢ下り信号読み込みタイマと、バッファＡ下り信号破棄カウントタイマと、バッファＢ上り信号破棄カウントタイマと、バッファＡ下り信号規制タイマと、バッファＢ上り信号規制タイマとがある。
【００５７】
以下に、本発明の実施の形態の動作を先の図面に基づいて詳細に順を追って説明する。特に、本発明の特徴部分の動作については詳細に説明する。本発明では、ＣＰＵと他回路との通信を行う。そこで、バッファの使用方法、ＣＰＵから他回路への信号送信時の方法、他回路からＣＰＵへの信号受信時方法、信号破棄の統計と信号規制の方法、立ち上げ時の処理について詳細に説明する。
【００５８】
図５に各バッファの構成を示しており、バッファの使用方法は、図１６〜１８にて説明をする。バッファへの書き込み方法は、図１６に示すようにバッファにデータがないバッファ部にデータを書き込むことが出来る。バッファにおいては、初期状態ではライトポインタとリードポインタは＃０を示している。いま、ＣＰＵ１０１はライトポインタを読み込みむと＃０を指示しているので、データを＃０バッファにデータを書き込む。そして、ライトポインタを＋１更新してライトポインタとにデータを書き込むときにポインタを更新することによりデータをバッファ＃０へ書き込むことが出来る。
【００５９】
バッファからの読み込みの方法は、図１７に示すように＃０のみ信号が存在するときは、ライトポインタが＃１でリードポインタが＃０である。リードポインタの値のバッファ部分を読み込む。今回はリードポインタ値が＃０なので、ＣＰＵ１０１は＃０バッファに蓄積されている信号をデータを読み出す。
【００６０】
図１６の最初と図１７の最後の状態は、いずれもバッファにデータが書かれていない状態であるが、リードポインタとライトポインタは同数だが状態は＃０同士と＃１同士で状態が違う。バッファは読み込み書き込みの状態で、＃０→＃１→＃２→…＃ｈ→＃０→…とバッファを一周して再使用をしていく。図１８では、ライトポインタとリードポインタ共に＃ｈなので、バッファにはデータが書かれていない状態であるが、次にはライトポインタが指示している＃ｈにデータを書き込みライトポインタを＃０にする。
【００６１】
以下に信号の送信方法を示す。図１において、ＣＰＵ１０１からデータを送信するのは、信号Ａ，Ｂ，Ｄ，Ａ’，Ｂ’，Ｃ’である。送信に使用するバッファは下りバッファＡと上りバッファＢとであり、バッファ用テーブルは下りバッファＡ管理テーブルと上りバッファＢ管理テーブルを使用する。
【００６２】
ＣＰＵから他回路への信号送信時の詳細を、信号Ａ，Ｂ，Ｄについて下りバッファＡ及び下りバッファＡ管理テーブルを使用した例を、図１９〜２４を使用して説明する。信号Ａ’，Ｂ’，Ｃ’について上りバッファＢ及び上りバッファＢ管理テーブルの使用方法についても同様の動作となる。図１９に、信号Ａ，Ｂ，Ｄを送出する詳細の構成を示し、図２０，２１に信号を送信するＣＰＵ１０１で動作しているバッファ制御プログラムのフローチャートを示す。
【００６３】
なお、図２０では、各信号Ａ，Ｂ，Ｄ，Ａ’，Ｂ’，Ｃ’の送信タスクの動作フローであり、各タスクのタイマのタイムアップに応答して各タスクが立上がり、各タスクの再立上げのためにタイマスタートとなることが示されている。図２１のフローチャートでは、信号Ｄを例として、この信号Ｄ送信タスクが立ち上がった場合を説明する。
【００６４】
ＣＰＵ１０１で発生した信号Ｄを下りバッファＡにデータを書き込むときに、ライトポインタの読み込みとリードポインタの読み込みとが行われる（ステップＳ１，２）。（ライトポインタ）−（リードポインタ）の値が０よりも多く、かつ信号Ｄバッファ制限値よりも少ない数のときは（ステップＳ３）、下りバッファＡのバッファ部に信号Ｄを書き込む（ステップＳ４）。そして、ライトポインタのカウントを＋１足して書き込み（ステップＳ５）、信号Ｄリサイクルカウント値をクリアすることでデータを書き込む処理の基本的な動作が終了する（ステップＳ６）。
【００６５】
（ライトポインタ）−（リードポインタ）の値が信号Ｄバッファ制限値と同等または多い時は、バッファ部に書き込めない状態なので、リサイクルをする処理に移る（ステップＳ７）。信号Ｄリサイクルカウント値が信号Ｄ書き込みリサイクル回数設定値よりも少ないときは、リサイクル可能状態であるので、信号Ｄリサイクルカウント値を＋１して（ステップＳ８）、信号書き込み監視周期Ｅ（ｍｓ）のタイマを発行する。そして、Ｅｍｓ後にタイムアップしたら再びライトポインタを読み込み、リードポインタを読み込んで（ライトポインタ）−（リードポインタ）の値を確認し、ポインタの状況が変化して、信号Ｄバッファ制限数設定値よりも少なくなったときはバッファ部にデータを書き込む動作に移る。
【００６６】
しかし、バッファの状態が変化せずに信号Ｄバッファ制限数設定値より多い時で、かつ信号Ｄリサイクルのカウント値が信号Ｄ書き込みリサイクル回数設定値よりも数値が少ないときは、再びリサイクル動作を行う。しかし、当該カウント値が信号Ｄ書き込みリサイクル回数設定値よりも同じか多いときは、信号Ｄを破棄して（ステップＳ９）、信号Ｄ破棄数カウント値を＋１する（ステップＳ１０）。このとき、信号Ｄリサイクルカウント値をクリアする（ステップＳ１１）。なお、ステップＳ１２については、図２６の説明の際に説明するものとし、また信号Ａ及び信号Ｂも図１４の動作と同様のフローチャートに従って動作するものとする。
【００６７】
上記説明において、信号Ａ，Ｂ，Ｄ毎に各バッファ制限数を変えた時のポインタの使い方の具体例を図２２〜２６に示す。信号Ａ，Ｂ，Ｄの各々に対して、＃ｈ＋１まであるバッファの数のうち、それぞれ使用できる制限数である信号Ａバッファ制限設定値はＸ（＝３）、信号Ｂバッファ制限設定値はＹ（＝６）、信号Ｄバッファ制限設定値はＺ（＝ｈ）であるものとし、また蓄積できるバッファ数はＸ＜Ｙ＜Ｚ≦ｈ＋１の値となっているものとする。図２２では、バッファに溜まっているバッファ量がＸ以下の時の動きを示している。
【００６８】
バッファ部の＃２のみ信号が存在しているため、ライトポインタは＃３、リードポインタは＃２を指示している。ここで、信号Ａを送信するときは、バッファ制限数Ｘよりも（ライトポインタ）−（リードポインタ）の数が少ないので、＃３のバッファにデータを書き込み、ライトポインタを＃４にする。信号Ｂ．Ｄも制限数がＹ，Ｚよりも少ない値なので同様な動作を行える。
【００６９】
図２３では、＃２〜＃４まで信号が存在している状態であり、制限数Ｘ（＝３）だけデータがバッファにある場合である。ここで、信号Ｂ，Ｄの信号を送信するときはバッファ制限値Ｙ，Ｚよりも（ライトポインタ）−（リードポインタ）の数が少ないので、＃５のバッファにデータを書き込みライトポインタを＃６にすることができる。しかし、（ライトポインタ）−（リードポインタ）の数が制限値Ｘと同じなので、信号Ａを送信することは出来ない。
【００７０】
そこで、信号書き込み監視周期のタイマ値を発行し、タイムアップしたときに再度アクセス（リサイクル）を行う。再度アクセスした場合、状態図２４のように＃２のデータが他回路Ａより読まれたならば、制限数Ｘよりも数が少なくなるので、＃５に信号Ａを書き込むことができる。しかし、再度アクセスしたときに、状態が変化しないときは、再度信号書き込み監視周期のタイマを発行して待つのだが、延々に待つことは出来なので、信号Ａリサイクルカウント値をカウントして、信号Ａ書き込みリサイクル回数設定値よりも少ない時ときだけ、リサイクル出来る。
【００７１】
図２５では、＃２〜＃７まで信号が存在している状態であり、ライトポインタは＃８でリードポインタは＃２となり、制限数Ｙ（＝６）まで信号が存在するので、信号Ｄは＃８に信号を書き込みライトポインタを＃９にすることが出来るが、信号Ｂは＃２の信号が他回路Ａによって読まれなければアクセス出来ない。また、信号Ａは＃２〜６の信号が他回路Ａによって読まれなければアクセス出来ないので、再アクセスのタイマを発行する。
【００７２】
図２６では、＃２〜＃ｈと＃０に信号が存在している。状態はライトポインタは＃１でリードポインタは＃２であり、（ライトポインタ）−（リードポインタ）は（１−２）＝−１となるため、ライトポインタ＋（ｈ＋１）をすると（図２１のステップＳ１２参照）、（ライトポインタ）−（リードポインタ）は（１＋ｈ＋１）−２＝ｈとなり、制限数Ｚ（＝ｈ）と同等まで信号が存在するので、信号Ａ，Ｂ，Ｄとも書き込みが出来ないので再度アクセスのタイマを発行する。
【００７３】
以下に信号の受信方法を示す。図１，２において、ＣＰＵ１０１で信号を受信するのは、信号Ａ，Ｂ，Ｃ，Ａ’，Ｂ’，Ｄ’である。受信に使用するバッファは上りバッファＡ１１４と下りバッファＢ１１５とであり、バッファ用テーブルは図６に示す上りバッファＡ管理テーブル１５３と下りバッファＢ管理テーブル１５３とを使用する。他回路Ａ１１７からＣＰＵ１０１への信号受信時の詳細を、信号Ａ’，Ｂ’，Ｄ’について上りバッファＡ及び上りバッファＡ管理テーブルをを使用した例を、図２７〜２９を使用して説明する。信号Ａ，Ｂ，Ｄについて下りバッファＢ及び下りバッファＢ管理テーブルを使用する場合の方法も同様の動作である。
【００７４】
図２７に、信号Ａ’，Ｂ’，Ｄ’を受信する詳細の構成と、図２８，２９に信号を送信するＣＰＵ１０１で動作しているバッファ制御プログラムのフローチャートを示す。なお、図２８は上り信号及び下り信号の各受信タスクの立ち上がりを示すものである。以下の説明では、信号Ａ’を例とする。
【００７５】
他回路Ａ１１７からの上り信号Ａ’が到来すると、上り信号受信タスクが起動される。こりにより信号Ａ’はバッファＡへ書き込まれ、この書き込まれた信号Ａ’は、ＣＰＵ１０１が上りバッファＡにデータのライトポインタの読み込みとリードポインタの読み込みを行う（ステップＳ２１，２２）。信号読み込みはバッファ読み込み周期のタイムアップ後に常に行われる。タイマのタイムアップ後に（ライトポインタ）−（リードポインタ）の値が０よりも多いときは（ステップＳ２３）、上りバッファＡのバッファ部の信号種別を読み込み（ステップＳ２４）、信号種別でＡ’のとき上りバッファＡで信号Ａ’の制限をしていないときに（ステップＳ２５）、信号Ａ’を読み込む（ステップＳ２６）。
【００７６】
そして、リードポインタのカウントを＋１して（ステップＳ２７）、リードポインタ部へそれを書き込むことでデータ読み込みの１処理の基本的な動きが終了する。その後、再度（ライトポインタ）−（リードポインタ）の値が０よりも大きいときは再度読み込み動作を行い、（ライトポインタ）−（リードポインタ）＝０まで読み込み動作を行う。（ライトポインタ）−（リードポインタ）の値が０の時は、バッファ部にデータが何も書き込まれていない状態なので、読み込みを行わないで、次の読み込みに移るためにタイマを発行する。なお、ステップＳ２８は、図２１の場合のステップＳ１２と同様に、（ライトポインタ）−（リードポインタ）の値が負の場合の動作である。
【００７７】
図３０，３１に、データの読み出しが出来ない条件を示す。図３０では、（ライトポインタ）−（リードポインタ）＝０の時の状態時を示す。ライトポインタの値が＃１６を示し、リードポインタの値が＃１６を示している。このときは（ライトポインタ）−（リードポインタ）が０なので、バッファに蓄積されているデータは無く、読み出しを禁止する。
【００７８】
図３１では、上りバッファＡが信号制限している時を示す。上りバッファＡは上りデータ信号Ａ’，Ｂ’の制限を行うと、上り信号Ａ’が上りバッファＡに他回路から供給された時は読み込みをしない。上りバッファＡが信号Ａ’の制限を解除したときに、バッファ読み込み周期がタイムアップ後に信号Ａ’を読み込む。
【００７９】
次に、信号を破棄した時の集計と信号規制について図３２にて説明する。下りバッファＡを通過する信号Ａ，Ｂ，Ｄに対しバッファに信号を書き込むときに書き込めずにデータを破棄する場合、バッファ管理テーブル内の信号破棄カウント値を使用して、下りバッファ信号破棄統計テーブルで破棄数の注意数及び警告数を設定し、この設定値をオーバーすると、バッファの制限値の変更及び信号の規制をかける。図３２には、信号Ａの時のポインタ等の構成を示し、以下図３３〜３６に動作の詳細を示す。その他に信号Ｂ，Ｄ及び上りバッファＢを使用した信号Ａ’，Ｂ’，Ｃ’も同様の動作である。
【００８０】
また、図３３，３４に信号Ａ，Ｂ，Ｄを送信するＣＰＵ１０１で動作しているバッファ制御プログラムのフローチャートを示す。図３３に示す様に、破棄数カウント周期設定値のタイマがタイムアップすると、常に下り信号破棄集計プログラムのタスクが動作して、信号Ａ破棄集計カウント部は信号Ａの破棄状況を計測して、信号Ａ破棄数注意設定値、注意数、信号Ａ破棄数警告設定値及び信号Ａ正常数設定値及び各カウント値により判断を行い処理をする。
【００８１】
図３４を参照すると、信号Ａ破棄数カウント値が信号Ａ破棄数注意設定値よりも同等または少ない時は（ステップＳ３１）、正常時なので正常処理を行う。信号Ａ破棄数設定値よりも多いときは、信号Ａ注意数のカウントを行う（ステップＳ３２，３３，３４）。注意数が信号Ａ注意設定値よりも越えた時は、信号警告処理になる。信号警告処理では、信号破棄数カウント値が信号Ａ破棄数警告設定値よりも多くなると（ステップＳ３５）、信号Ａバッファ制限数の数を＋１にする（ステップＳ３６）。そして、信号注意数カウントクリアを行い（ステップＳ４１）、信号Ａ警告数カウント値を＋１する（ステップＳ４２）。
【００８２】
正常処理では、信号Ａ正常のカウントを行い、信号Ａになったときにカウント値は常にカウントして（ステップＳ３７，３８）、信号Ａ正常数設定値よりも多くなったときに信号Ａバッファ制限値を−１して（ステップＳ３９）、信号Ａ正常カウント値をクリアする（ステップＳ４０）。そして、信号Ａ注意数カウントをクリアして（ステップＳ４３）、信号Ａ破棄数カウント値をクリアする（ステップＳ４４）。ステップＳ３４，４２からもステップＳ４４へ移行する。
【００８３】
具体的な例を図３５，３６を使用して説明する。信号Ａは信号数カウント周期毎に信号破棄数をカウントし、信号Ａ破棄数が信号Ａ注意設定値よりも少ないときは信号Ａ正常カウントを行う。信号Ａ破棄数注意設定値よりも多くなったときは、信号注意カウントを行い、正常カウント値をクリアする。
【００８４】
信号Ａ破棄数が連続して信号注意数設定値（本例では３回）よりも越えて、信号破棄数警告設定値よりも多くなったときは、信号Ａバッファ制限数設定値を＋１にする（ステップＳ３６参照）。このとき、警報の数はその後の規制情報のためにカウントし、注意数のカウントをクリアする（ステップＳ４１参照）。この時、信号Ａ警告数カウント値は＋１となる（ステップＳ４２参照）。正常値に戻ったら信号Ａ正常カウント値をカウントする（ステップＳ３８参照）。
【００８５】
ステップＳ３８，４０の後は、信号Ａ注意数カウント値をクリアして（ステップＳ４３参照）、信号Ａ廃棄数カウント値をクリアする（ステップＳ４４参照）。警告値を越えた時の制限値の変化は、図３６に示す様に、設定値が変わる前は設定値がＸで、＃２〜＃４までデータが有るときは＃５には信号は書き込めなかったが、制限値を＋１にして、Ｘ＋１にすると信号Ａは書き込める状態となる。
【００８６】
信号規制について図３７，３８にフローを示す。警告数カウント周期設定値がタイムアップすると、信号Ａ警告数が信号Ａ規制値よりも多いときは（ステップＳ５１）、信号Ａ規制信号が他回路Ｂ１１８へ出力される（ステップＳ５２）。また、警報数のカウント値が規制値よりも少ない時は（ステップＳ５１）、規制を解除する（ステップＳ５３）。このことにより信号の受け取った他回路Ｂ１１８は信号Ａを出力することを控えるように制御をする。そして、警告数カウント値をクリアする（ステップＳ５４）。
【００８７】
また、信号Ｄ及び信号Ｃの発生はＣＰＵ１０１のプログラムであり、図３９に示すように、実行プログラム内で信号送受タスクから信号Ｄ発生タスク及び信号Ｃ’タスクに規制を掛ける。
【００８８】
次に、本プログラムであるバッファ制御プログラムの立ち上がりについて図４０，４１を用いて説明する。本発明の回路上には不揮発性のメモリと揮発性のメモリがあり、本プログラムとバッファ制御設定部とは不揮発性のメモリに入っており、取り外しが可能な構造となっている。プログラムにリセットを解除すると不揮発でのプログラムが実行され、バッファ制御プログラムとバッファ制御部の各設定値が揮発プログラムに転送され（ステップＳ６１，６２）、バッファＡとバッファＢのテーブルを作成する（ステップＳ６３，６４）。その後、揮発性に転送したバッファ転送プログラムに転送して実行される（ステップＳ６５）。揮発性でのプログラムでは、各タスクの初期設定を行う（ステップＳ６６，６７）。
【００８９】
下りバッファＡ用破棄数カウント周期Ｇ、下りバッファＡ用警報数カウント周期、上りバッファＡ用バッファ読み込み周期、上りバッファＢ破棄周期、上りＢ用警報カウント周期を、それぞれスタートさせて、実際のプログラムが動作する。なお、図４２に下りバッファＡ信号破棄統計テーブル５１２の内容を、また図４３に上りバッファＢ信号破棄統計テーブル５１６の内容を、それぞれ示している。
【００９０】
本発明の他の実施の形態を図４４に示す。上述の構成例では、全てのバッファサイズを同一としているが、本例では、下りバッファＡ１１３のバッファサイズと下りバッファＢ１１５のバッファサイズとを、下りバッファＡ＜下りバッファＢとしており、また上り信号に対しても、上りバッファＡ＞上りバッファＢとしている。図４５はこの場合の上りバッファ１１４の具体的構成例を示しており、図５の構成例に比較してバッファ部１４１が増加している。他の構成は図１のそれと同一である。
【００９１】
図４６は下り信号Ａの発生量（流量であって中継量でもある）及びそれ以外の下り信号発生量と、これ等下りバッファＢ１１５で許容できる信号量（点線で示す）との関係の一例を、時間的変化で示したものである。この場合、当該信号Ａの優先度は最小であるとする。この場合、下り信号Ａが図４６に示す様にバースト的に発生した場合でも、バッファＢ１１５の容量をより大きくしておけば、この下り信号ＡのバッファＢ１１５による中継量（破棄など）の影響をより少なくすることができるようになる。
【００９２】
図４７は本発明の更に他の実施例を示すブロック図であり、図１と同等部分は同一符号にて示している。本例では、本回路１００（図１参照）のＣＰＵ１０１から他回路Ｂ１１８（図１参照）のＣＰＵ６０１への信号規制１１１をなす場合の図であり、下り信号Ａ，Ｂ，Ｃの送信規制を行う場合のものである。このときのＣＰＵ６０１のタイマ６０２は、図４８に示す様に、信号Ｂ，Ｃの規制が発生したときのタイマである。
【００９３】
信号Ｂ，Ｃの各規制信号監視タイマはＣＰＵ６０１が各信号規制及び規制解除を監視するポーリング用のタイマであり、常時動作しているものである。信号Ｂ，Ｃの規制状態タイマは規制を受けたときにスタートするタイマであり、図５１の様に段階的に規制をかけるために、規制状態タイマがタイムアウトしたときは、信号発生をそれぞれ２５％ダウンする様にする。信号Ｂ，Ｃの規制解除状態タイマは規制を解除したときにスタートするタイマであり、図５１の様に段階的に規制を解除するために、規制解除タイマがタイムアウトしたときに、信号発生を２５％アップする様にする。
【００９４】
信号規制を段階的に行うのは、一時的な規制の場合に信号を全てストップすると、サービスに影響するので、段階的に規制及び解除するのが好ましいからである。図４９，５０はこの信号規制時の動作を示すフローチャートである。図４９は信号Ｂ，Ｃの規制処理立ち上がりを示すフローである。
【００９５】
図５０を参照すると、信号Ｂに関する信号規制処理動作が示されている。信号Ｂ規制監視タイマがタイムアップすると、信号Ｂ規制状態の読み込みがなされる（ステップＳ７１）。信号規制が発生すると（ステップＳ７２）、信号規制状態タイマ発行中かどうかが検出され（ステップＳ７３）、そうでなければ、規制状態タイマをスタートさせる。同時に規制解除状態タイマはストップとなる。ステップＳ７２で信号規制が発生されていなければ、信号規制解除状態タイマ発行中かどうかが検出され（ステップＳ７４）、ＮＯであれば、信号規制解除状態タイマをスタートさせ、同時に信号規制状態タイマをストップさせる。
【００９６】
また、信号規制状態タイマがタイムアップすると、図５１に示す様に、信号Ｂの発生を２５％ダウンさせるが（ステップＳ７５）、このとき発生率が０％になれば（ステップＳ７６）、終了となり、そうでなければ信号規制状態タイマが再度スタートする。一方、信号規制解除状態タイマがタイムアップすると（ステップＳ７７）、図５１に示す様に、信号発生を２５％アップさせるが、このとき発生率が１００％になれば（ステップＳ７８）、終了となり、そうでなければ信号規制解除状態タイマが再度スタートする。
【００９７】
図５２（Ａ）は本発明の応用例のブロック図であり、図１と同等部分は同一符号にて示している。図５２（Ａ）において、図１の他回路１１８が信号フォーマット変換７０１であり、更にその上り方向に別の信号フォーマット変換７０２が存在する場合である。図５２（Ｂ）はこれ等回路間の信号の伝送方向を示し、図５２（Ｃ）は信号Ａのフォーマット例である。本例では、例えば、信号フォーマット変換回路７０１，７０２がデータリンク層であり、これ等データリンク層では、ＨＤＬＣ（Ｈｉｇｈ  Ｌｅｖｅｌ  Ｄａｔａ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ  Ｐｒｏｃｅｄｕｒｅｓ  ）信号と本回路１００の架内信号との間の信号フォーマット変換をなす場合の応用例である。
【００９８】
【発明の効果】
本発明によれば、通信で使用するバッファ部分に、データの種類（例えば、優先度）に応じて制限数を設け、複数の局間を通信する信号の数が多い時、信号の種類によってその制限量を変化させる様にしており、使用するバッファの制限値が多い信号は、他の信号がバッファフルの状態においても信号を送受信できることになるので、データ種別（優先度）に従ってバッファの量を変えることにができ、バッファの有効的な利用ができ、かつ優先信号の効率的な伝送が出来るという効果が得られる。
【００９９】
また、バッファフル時にバッファに溜まっているデータを破棄する場合、一定時間すぎたときにデータを破棄する様に制御する、すなわち、バッファフル時にＣＰＵがタイマをスタートしてタイムアウトをしたらデータを破棄するように制御しているので、バッファの送信が一定時間以上行われないときでも、古いデータは破棄されるという効果が得られる。
【０１００】
更に、データ破棄量の監視を行い、破棄量の統計を行ってこの統計データによりバッファの制限制御を行っており、この統計データによるバッファ数の変更方法としは、一定時間毎に、また信号毎に、データ破棄量を集計し、データ破棄量が制限値を所定回数連続して越えると、バッファ制限値を増加する様にしたので、信号種別が多い通信システムにおいて、ＣＰＵ間通信を行う通信装置が各地に設置されている様な場合に、装置を工場出荷する時点では、信号の種類に応じてＣＰＵ間のデータ転送量が判明しておらず、最適値設定することは困難であるが、本手法を使用することで、各信号における優先度における信号破棄数の制限値を初期値として設定することにより、各設置された装置毎にデータ破棄量に応じてＣＰＵが自動的に当該制限値を補正することになり、汎用性が著しく大となるという効果もある。
【図面の簡単な説明】
【図１】本発明の実施の形態を示すブロック図である。
【図２】図１のブロック間で授受される信号を示す図である。
【図３】図１のブロック間で授受されるデータの種類を説明する図である。
【図４】図３の信号の各構成を示す図である。
【図５】図１の下りバッファＡの構成を示す図である。
【図６】各バッファの管理テーブルの例を示す図である。
【図７】下りバッファＡ管理テーブルの例を示す図である。
【図８】下りバッファＡ信号破棄統計テーブルの例を示す図である。
【図９】上りバッファＡ管理テーブルの例を示す図である。
【図１０】下りバッファＢ管理テーブルの例を示す図である。
【図１１】上りバッファＢ管理テーブルの例を示す図である。
【図１２】上りバッファＢ信号破棄統計テーブルの例を示す図である。
【図１３】図１のバッファ制御プログラムの構成を示す図である。
【図１４】図１３に示した各プログラムの各信号の流れに対する構成を示す図である。
【図１５】タイマと割り込みコントローラとの関係を示す図である。
【図１６】バッファの使用方法の一例を示す図である。
【図１７】バッファの使用方法の一例を示す図である。
【図１８】バッファの使用方法の一例を示す図である。
【図１９】ＣＰＵから他回路へ信号Ａ，Ｂ，Ｄを送信する場合の説明図である。
【図２０】信号を送信しているバッファ制御プログラムのフローチャートである。
【図２１】信号を送信しているバッファ制御プログラムのフローチャートである。
【図２２】信号Ａ，Ｂ，Ｄ毎に各バッファ制限数を変えたときのポインタの使い方の例を示し、バッファに溜まっているバッファ量がＸ以下のときの動作を示す図である。
【図２３】バッファに溜まっているバッファ量がＸのときの動作を示す図である。
【図２４】図２３においてデータが一つ読まれた場合の動作を示す図である。
【図２５】バッファに溜まっているバッファ量がＹのときの動作を示す図である。
【図２６】バッファに溜まっているバッファ量がＺのときの動作を示す図である。
【図２７】上り信号Ａ’，Ｂ’，Ｄ’を上りバッファＡにて受信する場合を説明するための図である。
【図２８】上り信号及び下り信号の受信タスクの動作を示す図である。
【図２９】信号送信時のバッファ制御プログラムのフローチャートである。
【図３０】バッファのデータ読出しができない状態の一例を示す図である。
【図３１】バッファのデータ読出しができない状態の他の例を示す図である。
【図３２】信号破棄時の集計と信号規制について説明する図である。
【図３３】送信時のバッファ制御プログラムの動作を示す図である。
【図３４】送信時のバッファ制御のプログラムの動作を示すフローチャートである。
【図３５】信号Ａの破棄数の具体例を示す図である。
【図３６】図３５の例におけるバッファ制限数の変化の例を示す図である。
【図３７】信号規制時の動作を示す図である。
【図３８】信号規制時の動作を示すフローチャートである。
【図３９】信号規制時の一態様を示す図である。
【図４０】バッファ制御プログラムの立上りを説明する図である。
【図４１】バッファ制御プログラムの立上りを説明する図である。
【図４２】下りバッファＡ信号破棄統計テーブルの例を示す図である。
【図４３】上りバッファＢ信号破棄統計テーブルの例を示す図である。
【図４４】本発明の他の実施の形態を示すブロック図である。
【図４５】図４４の上りバッファＡの一例を示す図である。
【図４６】下り信号Ａの発生量（中継量）及びそれ以外の下り信号発生量と、下りバッファＢで許容できる信号量との関係を示す図である。
【図４７】本発明の更に他の実施の形態を示すブロック図である。
【図４８】図４７のタイマ６０２の例を示す図である。
【図４９】信号Ｂ，Ｃの規制処理立上り動作を示すフローである。
【図５０】信号Ｂに関する信号規制処理動作を示すフローチャートである。
【図５１】信号Ｂに関する信号規制及びその解除の一態様を示す図である
【図５２】本発明の応用例を示す図であり、（Ａ）はそのブロック図、（Ｂ）はその信号の伝送方向、（Ｃ）は信号Ａのフォーマット図である。
【図５３】従来例を示すブロック図である。
【符号の説明】
１００    本回路
１０１，６０１    ＣＰＵ
１０２    ＣＰＵ周辺回路
１０３    バッファＡ
１０４    バッファＢ
１０５    バッファ制御プログラム
１０６    メモリ
１０７    バッファＡ制御用プログラム
１０８    バッファＢ制御用プログラム
１０９    下り信号
１１０    上り信号
１１１    下り信号規制機能
１１２    上り信号規制機能
１１３    下りバッファＡ
１１４    上りバッファＡ
１１５    下りバッファＢ
１１６    上りバッファＢ
１１７    他回路Ａ
１１８    他回路Ｂ
１１９，６０２    タイマ
１２０    割り込みコントローラ
１２９    他回路Ａ’
１３０    他回路Ｂ’
７０１，７０２    信号フォーマット変換回路
【図１】
0003623712.tif 000002
【図２】
0003623712.tif 000003
【図３】
0003623712.tif 000004
【図４】
0003623712.tif 000005
【図５】
0003623712.tif 000006
【図６】
0003623712.tif 000007
【図７】
0003623712.tif 000008
【図８】
0003623712.tif 000009
【図９】
0003623712.tif 000010
【図１０】
0003623712.tif 000011
【図１１】
0003623712.tif 000012
【図１２】
0003623712.tif 000013
【図１３】
0003623712.tif 000014
【図１４】
0003623712.tif 000015
【図１５】
0003623712.tif 000016
【図１６】
0003623712.tif 000017
【図１７】
0003623712.tif 000018
【図１８】
0003623712.tif 000019
【図１９】
0003623712.tif 000020
【図２０】
0003623712.tif 000021
【図２１】
0003623712.tif 000022
【図２２】
0003623712.tif 000023
【図２３】
0003623712.tif 000024
【図２４】
0003623712.tif 000025
【図２５】
0003623712.tif 000026
【図２６】
0003623712.tif 000027
【図２７】
0003623712.tif 000028
【図２８】
0003623712.tif 000029
【図２９】
0003623712.tif 000030
【図３０】
0003623712.tif 000031
【図３１】
0003623712.tif 000032
【図３２】
0003623712.tif 000033
【図３３】
0003623712.tif 000034
【図３４】
0003623712.tif 000035
【図３５】
0003623712.tif 000036
【図３６】
0003623712.tif 000037
【図３７】
0003623712.tif 000038
【図３８】
0003623712.tif 000039
【図３９】
0003623712.tif 000040
【図４０】
0003623712.tif 000041
【図４１】
0003623712.tif 000042
【図４２】
0003623712.tif 000043
【図４３】
0003623712.tif 000044
【図４４】
0003623712.tif 000045
【図４５】
0003623712.tif 000046
【図４６】
0003623712.tif 000047
【図４７】
0003623712.tif 000048
【図４８】
0003623712.tif 000049
【図４９】
0003623712.tif 000050
【図５０】
0003623712.tif 000051
【図５１】
0003623712.tif 000052
【図５２】
0003623712.tif 000053
【図５３】
0003623712.tif 000054