(57)【要約】【課題】  安価にバッファメモリの効率的使用を実現する。【解決手段】  減算器６でメモリアレイ１１に現在格納されているデータ数を算出し、そのデータ数が、入力データの転送速度が低いほど大きい値に設定されたしきい値を超えたことをコンパレータ７により判定したときに、読出要求信号ＯＵＴＲＥＱ（Ｈレベル）を出力する。この要求を受けた出力側コントローラ３は、データ読み出しのためのリード信号ＲＤを出力する。また、待ち時間の最大値の間にメモリアレイ１１に書き込まれるデータ数と、減算器６の出力値がしきい値を超えたときのメモリアレイ１１に格納されているデータ数との和が、メモリアレイ１１に格納できる最大のデータ数を超えないようにしきい値を設定する。これにより、しきい値の設定に応じてデータ格納数を制御できるとともに、出力側システムの都合のために読出要求からしばらくしてデータを読み出す場合にオーバーフローを回避できる。【選択図】  図１
2005141369.tif 000002
【特許請求の範囲】
【請求項１】
バッファメモリへの入力データの転送速度が前記バッファメモリからの出力データの転送速度より低いシステムにおいて設けられるバッファメモリ制御装置であって、
前記バッファメモリにデータを書き込む毎に前記バッファメモリにおけるデータの書込位置を特定する書込ポインタを加算する書込ポインタ加算手段と、
前記バッファメモリからデータを読み出す毎に前記バッファメモリにおけるデータの読出位置を特定する読出ポインタを加算する読出ポインタ加算手段と、
前記書込ポインタ加算手段による加算値から前記読出ポインタ加算手段による加算値を減算することにより前記バッファメモリに格納されているデータを計数するデータ計数手段と、
入力データの転送速度が低いほど大きく設定される複数の異なるしきい値を出力するしきい値出力手段と、
前記複数のしきい値から入力データの速度速度に応じたしきい値を選択するしきい値選択手段と、
計数されたデータ数を選択されたしきい値と比較し、前記データ数が該しきい値を超えたか否かを判定する判定手段と、
前記データ数がしきい値を超えたと判定されると前記バッファメモリからデータを読み出すように要求する読出要求手段とを備えていることを特徴とするバッファメモリ制御装置。
【請求項２】
前記読出要求手段が前記バッファメモリにデータの読み出しを要求したときに前記バッファメモリに格納されているデータ数と、このときから所定時間経過するまでに書き込まれるデータ数との和が、前記バッファメモリに格納できる最大のデータ数を超えないように前記しきい値が設定されていることを特徴とする請求項１に記載のバッファメモリ制御装置。
【請求項３】
バッファメモリへの入力データの転送速度が前記バッファメモリからの出力データの転送速度より高いシステムにおいて設けられるバッファメモリ制御装置であって、
前記バッファメモリにデータを書き込む毎に前記バッファメモリにおけるデータの書込位置を特定する書込ポインタを加算する書込ポインタ加算手段と、
前記バッファメモリからデータを読み出す毎に前記バッファメモリにおけるデータの読出位置を特定する読出ポインタを加算する読出ポインタ加算手段と、
前記書込ポインタ加算手段による加算値から前記読出ポインタ加算手段による加算値を減算することにより前記バッファメモリに格納されているデータを計数するデータ計数手段と、
出力データの転送速度が低いほど小さく設定される複数の異なるしきい値を出力するしきい値出力手段と、
前記複数のしきい値から入力データの速度速度に応じたしきい値を選択するしきい値選択手段と、
計数されたデータ数を選択されたしきい値と比較し、前記データ数が該しきい値を超えたか否かを判定する判定手段と、
前記データ数がしきい値を超えたと判定されると前記バッファメモリへのデータ入力の停止を要求する入力停止要求手段とを備えていることを特徴とするバッファメモリ制御装置。
【請求項４】
前記入力要求手段が前記バッファメモリへのデータ入力の停止を要求したときに前記バッファメモリに格納されているデータ数と、このときから所定時間経過するまでに書き込まれるデータ数との和から、データ入力停止要求時から前記所定時間経過するまでに読み出されるデータ数を減じた値が、前記バッファメモリに格納できる最大のデータ数を超えないように前記しきい値が設定されていることを特徴とする請求項３に記載のバッファメモリ制御装置。
【請求項５】
データの書き込みまたは読み出しに同期したパルスを有する書き込みまたは読み出しのための制御信号のパルスを計数するパルス計数手段と、
計数されたパルス数を転送速度に応じて設定された異なる大きさの速度しきい値と個々に比較し、各速度しきい値を超えたか否かを判定する複数の順位付けられた速度判定手段と、
前記パルス数が各速度しきい値を超えたと判定した速度判定手段のうち最も順位の高い速度判定手段に対応する大きさの速度値を出力する速度値出力手段とを備えていることを特徴とする請求項１または３に記載のバッファメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスのトラフィックの状態が変化するシステムにおいて用いられるバッファメモリを効率的に使用するための制御装置に関するものである。
【背景技術】
【０００２】
処理速度またはクロックタイミングの異なるシステム間などでは、データの転送速度が異なるため、そのようなシステム間に転送速度の相違を吸収するためのバッファメモリが設けられている。バッファメモリの使用においては、入力と出力とのトラフィックの差によってバッファメモリがオーバーフローするのを防止する技術が提案されている。
【０００３】
例えば、特許文献１には、トラフィックの状態を監視しておき、トラフィック量に応じてバッファメモリに実際に蓄積できる容量を変更することが開示されている。また、特許文献２には、バッファメモリのフル状態に近い輻輳状態を検出するためのフラグを設け、フル状態に近い輻輳状態を検出することが開示されている。
【特許文献１】特願２００２−９８２１号公報（２００２年１月１１日公開）
【特許文献２】特開平１１−５５２８７号公報（１９９９年２月２６日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記のようなトラフィックの異なるシステム間のデータ転送において、バッファメモリによるデータの書き込みおよび読み出しを行う際には、バッファの容量をほぼフルに利用することが効率的な処理を行う上で重要となる。
【０００５】
しかしながら、上記の特許文献１に開示された技術では、パケット通信システムにおける実時間性の要求のために、トラフィック量が低いときに遅延量を小さくする目的で、メモリの容量を減少させているので、バッファメモリの最大容量をフルに利用することができず、非効率的である。
【０００６】
また、上記の特許文献２に開示された技術は、メモリ容量に関わらずフル状態に近い輻輳状態を検出できるので、バッファメモリを効率的に使用することが可能である。しかしながら、この技術では、バッファメモリを構成する複数のパケットバッファ毎に輻輳フラグを設けるので、汎用のバッファメモリを使用することができず、コストの上昇を招くという不都合がある。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、安価にバッファメモリの効率的使用を実現することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の第１のバッファメモリ制御装置は、上記課題を解決するために、バッファメモリへの入力データの転送速度が前記バッファメモリからの出力データの転送速度より低いシステムにおいて設けられるバッファメモリ制御装置であって、前記バッファメモリにデータを書き込む毎に前記バッファメモリにおけるデータの書込位置を特定する書込ポインタを加算する書込ポインタ加算手段と、前記バッファメモリからデータを読み出す毎に前記バッファメモリにおけるデータの読出位置を特定する読出ポインタを加算する読出ポインタ加算手段と、前記書込ポインタ加算手段による加算値から前記読出ポインタ加算手段による加算値を減算することにより前記バッファメモリに格納されているデータを計数するデータ計数手段と、入力データの転送速度が低いほど大きく設定される複数の異なるしきい値を出力するしきい値出力手段と、前記複数のしきい値から入力データの速度速度に応じたしきい値を選択するしきい値選択手段と、前記データ数を選択されたしきい値と比較し、計数されたデータ数が該しきい値を超えたか否かを判定する判定手段と、前記データ数がしきい値を超えたと判定されると前記バッファメモリからデータを読み出すように要求する読出要求手段とを備えていることを特徴としている。
【０００９】
第１のバッファメモリ制御装置において、前記読出要求手段が前記バッファメモリにデータの読み出しを要求したときに前記バッファメモリに格納されているデータ数と、このときから所定時間経過するまでに書き込まれるデータ数との和が、前記バッファメモリに格納できる最大のデータ数を超えないように前記しきい値が設定されていることが好ましい。
【００１０】
また、本発明の第２のバッファメモリ制御装置は、上記の課題を解決するために、バッファメモリへの入力データの転送速度が前記バッファメモリからの出力データの転送速度より高いシステムにおいて設けられるバッファメモリ制御装置であって、前記バッファメモリにデータを書き込む毎に前記バッファメモリにおけるデータの書込位置を特定する書込ポインタを加算する書込ポインタ加算手段と、前記バッファメモリからデータを読み出す毎に前記バッファメモリにおけるデータの読出位置を特定する読出ポインタを加算する読出ポインタ加算手段と、前記書込ポインタ加算手段による加算値から前記読出ポインタ加算手段による加算値を減算することにより前記バッファメモリに格納されているデータを計数するデータ計数手段と、出力データの転送速度が低いほど小さく設定される複数の異なるしきい値を出力するしきい値出力手段と、前記複数のしきい値から入力データの速度速度に応じたしきい値を選択するしきい値選択手段と、計数されたデータ数を選択されたしきい値と比較し、前記データ数が該しきい値を超えたか否かを判定する判定手段と、前記データ数がしきい値を超えたと判定されると前記バッファメモリへのデータ入力の停止を要求する入力停止要求手段とを備えていることを特徴としている。
【００１１】
第２のバッファメモリ制御装置において、前記入力要求手段が前記バッファメモリへのデータ入力の停止を要求したときに前記バッファメモリに格納されているデータ数と、このときから所定時間経過するまでに書き込まれるデータ数との和から、データ入力停止要求時から前記所定時間経過するまでに読み出されるデータ数を減じた値が、前記バッファメモリに格納できる最大のデータ数を超えないように前記しきい値が設定されていることが好ましい。
【００１２】
第１または第２のバッファメモリ制御装置は、データの書き込みまたは読み出しに同期したパルスを有する書き込みまたは読み出しのための制御信号のパルスを計数するパルス計数手段と、計数されたパルス数を転送速度に応じて設定された異なる大きさの速度しきい値と個々に比較し、各速度しきい値を超えたか否かを判定する複数の順位付けられた速度判定手段と、前記パルス数が各速度しきい値を超えたと判定した速度判定手段のうち最も順位の高い速度判定手段に対応する大きさの速度値を出力する速度値出力手段とを備えていることが好ましい。例えば、パルス数計数手段はカウンタにより構成され、速度判定手段はコンパレータにより構成され、速度判定手段はプライオリティエンコーダにより構成されることが好ましい。
【発明の効果】
【００１３】
第１のバッファメモリ制御装置においては、データの書き込みに伴って、書込ポインタ加算手段によって書込ポインタの値が増加していくが、バッファメモリの容量に十分な余裕がある場合、バッファメモリからデータが読み出されない。このため、データ計数手段での減算によって得られる書込ポインタと読出ポインタとの差、すなわちバッファメモリに格納されているデータ数が、書き込まれるデータの増加にしたがって増加していく。
【００１４】
一方、しきい値選択手段により、入力データの転送速度に応じたしきい値が選択されると、判定手段により、上記のデータ数がそのしきい値と比較される。その比較の結果、データ数がしきい値より大きいと判定されると、読出要求手段により、バッファメモリからデータを読み出すように要求される。この要求に応じて、バッファメモリからデータが読み出される。
【００１５】
このように、第１のバッファメモリ制御装置は、バッファメモリに現在格納されているデータ数を算出し、そのデータ数が、入力データの転送速度が低いほど大きい値に設定されたしきい値を超えたことが判定されたときにデータの読み出しを要求している。これにより、入力データの転送速度に応じて入出力トラフィックの差が変化しても、それに関係なくバッファメモリに十分なデータを格納してから読み出すことができる。これは、バッファメモリに特別なフラグを設けることなく実現できるので、汎用のバッファメモリを使用することができる。したがって、しきい値を入力データの転送速度に応じて適切に設定することにより、オーバーフローすることなく、バッファメモリを安価に有効利用することが可能になる。
【００１６】
上記のようにデータ読み出しが要求されても、出力側システムのデータ処理などの都合により、直ちに読み出しできない場合がある。しかしながら、この待ち時間においても、バッファメモリにデータが書き込まれていくので、バッファメモリがフル状態となってオーバーフローしないように、バッファメモリの容量に、その待ち時間にデータの書き込みを受け入れることができる余裕が必要となる。
【００１７】
そこで、バッファメモリに読出要求手段によるデータ読み出しが要求されたときにバッファメモリに格納されているデータ数Ｎｔｈ１と、このときから所定時間経過するまでに書き込まれるデータ数Ｎｗ１との和が、バッファメモリに格納できる最大のデータ数Ｎｍ１を超えないように（Ｎｔｈ１＋Ｎｗ１＜Ｎｍ１）、しきい値が設定されることにより、データ数Ｎｔｈ１が入力側の転送速度に応じて定められるように、データ数Ｎｗ１も入力側の転送速度に応じて定められる。これにより、入力データの転送速度が低ければ、データ数Ｎｗ１が少なくて済むので、データ数Ｎｔｈ１が大きくなり、逆に、入力側の転送速度が高ければ、データ数Ｎｗ１を多く必要とするので、データ数Ｎｔｈ１が小さくなる。
【００１８】
このようなしきい値の設定によって、データ数Ｎｗの書き込みを行うことができる容量の余裕がバッファメモリに確保されるので、読み出しまでにできるだけ多くのデータを書き込みながら、オーバーフローを回避することができる。
【００１９】
第２のバッファメモリ制御装置においては、データの書き込みに伴って、書込ポインタ加算手段によって書込ポインタの値が増加していくが、それよりも遅くバッファメモリからデータが読み出される。したがって、データ計数手段での減算によって得られる書込ポインタと読出ポインタとの差、すなわちバッファメモリに格納されているデータ数が書き込まれるデータの増加にしたがって増加していく。第２のバッファメモリ制御装置は、入力データの転送速度が出力データの転送速度より高いので、データの書き込みが読み出しよりも速く行われることにより、バッファメモリ内のデータが徐々に増加していく。その増加速度は、出力データの転送速度が低いほど高くなる。
【００２０】
一方、しきい値選択手段により、出力データの転送速度に応じたしきい値が選択されると、判定手段により、上記のデータ数がそのしきい値と比較される。その比較の結果、データ数がしきい値より大きいと判定されると、入力停止要求手段によって、バッファメモリへのデータ入力の停止が要求される。この要求に応じて、バッファメモリへのデータの入力が停止されると、バッファメモリへのデータの書き込みも停止する。
【００２１】
このように、第２のバッファメモリ制御装置は、バッファメモリに現在格納されているデータ数を算出し、そのデータ数が、出力データの転送速度が低いほど小さい値に設定されたしきい値を超えたことが判定されたときに、バッファメモリへのデータ入力の停止を要求している。これにより、出力データの転送速度に応じて入出力トラフィックの差が変化しても、それに関係なくバッファメモリに十分なデータを格納してから読み出すことができる。これは、バッファメモリに特別なフラグを設けることなく実現できるので、汎用のバッファメモリを使用することができる。したがって、しきい値を出力データの転送速度に応じて適切に設定することにより、オーバーフローすることなく、バッファメモリを安価に有効利用することが可能になる。
【００２２】
上記のように、バッファメモリへのデータ入力の停止が要求されても、出力側システムのデータ処理などの都合により、直ちにデータ入力が停止されない場合がある。しかしながら、この待ち時間においても、バッファメモリにデータが書き込まれていくので、バッファメモリがフル状態となってオーバーフローしないように、バッファメモリの容量に、その待ち時間にデータの書き込みを受け入れることができる余裕が必要となる。
【００２３】
そこで、入力停止要求手段によりバッファメモリへのデータの停止が要求されたときにバッファメモリに格納されているデータ数Ｎｔｈ２と、このときから所定時間経過するまでに書き込まれるデータ数Ｎｗ２との和から、所定時間が経過する間にバッファメモリから読み出されるデータ数Ｎｒ２を減じた値が、バッファメモリに格納できる最大のデータ数Ｎｍ２を超えないように（Ｎｔｈ２＋Ｎｗ２−Ｎｒ２＜Ｎｍ２）、しきい値が設定されることにより、データ数Ｎｔｈ２が出力側の転送速度に応じて定められるように、データ数Ｎｗ２，Ｎｒ２も入力側の転送速度に応じて定められる。これにより、出力データの転送速度が高ければ、データ数Ｎｗ２が少なくて済むので、データ数Ｎｔｈ２が大きくなり、逆に、入力データの転送速度が低ければ、データ数Ｎｗ２を多く必要とするので、データ数Ｎｔｈ２が小さくなる。
【００２４】
このようなしきい値の設定によって、データ数Ｎｗ２の書き込みを行うことができる容量の余裕がバッファメモリに確保されるので、読み出しまでにできるだけ多くのデータを書き込みながら、オーバーフローを回避することができる。
【００２５】
第１または第２のバッファメモリ制御装置は、前記のパルス数計数手段と、複数の速度判定手段と、速度値出力手段とを備えることにより、例えば、パルス数計数手段によるパルス数が最も小さいしきい値のみを超えていると速度判定手段により判定された場合、その速度判定手段が最も高い順位の速度判定手段であるため、速度値出力手段により、その速度判定手段に対応する大きさの速度値が出力される。速度判定手段の順位が高くなるほど速度値が大きくなるように対応させれば、この場合は、最も小さい速度値が出力される。また、パルス数が最も大きい速度しきい値を超えている場合は、最も順位の高い速度判定手段を含む全ての速度判定手段により、パルス数が各速度しきい値を超えていると判定されるので、速度値出力手段により、最も順位の高い速度判定手段に対応する大きさの速度値、すなわち最も大きい速度値が出力される。
【００２６】
このように、上記の構成では、書き込みの制御信号または読み出しの制御信号のパルス数を速度しきい値と比較して入力データの転送速度または出力データの転送速度を判定しているので、速度判定手段および速度しきい値の数を適宜変更することにより、転送速度の判定区分を所望に設定することができる。
【発明を実施するための最良の形態】
【００２７】
本発明の実施形態について図１ないし図４に基づいて説明すると、以下の通りである。
【００２８】
図１および図２は、本実施の形態に係るバッファメモリ制御装置としてのバッファシステムを示している。まず、第１のバッファシステムについて説明する。
【００２９】
図１に示すように、第１のバッファシステムは、ＦＩＦＯ（First-In/First-Out）メモリ１、入力側コントローラ２、出力側コントローラ３、しきい値テーブル４、セレクタ５、減算器６、コンパレータ７，８およびＲＳフリップフロップ９を備えている。この第１のバッファシステムでは、入力側の転送速度（トラフィック）が出力側の転送速度より低く、かつ入力側の転送速度のみが変動する。
【００３０】
ＦＩＦＯメモリ１は、書き込み用と読み出し用との２つのポートを有するメモリである。このＦＩＦＯメモリ１は、入力側コントローラ２からのライト信号ＷＴによりバッファメモリとしてのメモリアレイ１１にデータを書き込み、出力側コントローラ３からのリード信号ＲＤにより書き込んだ順にメモリアレイ１１からデータを読み出す。
【００３１】
書込ポインタ加算手段としての書込ポインタ管理部１２は、メモリアレイ１１においてデータを書き込むアドレス（データの書込位置）を定める書込ポインタを管理しており、ライト信号ＷＴのパルスが１つ入力される毎に１つずつ書込ポインタをインクレメント（加算）する。読出ポインタ加算手段としての読出ポインタ管理部１３は、メモリアレイ１１においてデータを読み出すアドレス（データの読出位置）を定める読出ポインタを管理しており、リード信号ＲＤのパルスが１つ入力される毎に１つずつ読出ポインタをインクレメント（加算）する。書込ポインタ管理部１２および読出ポインタ管理部１３は、それぞれメモリアレイ１１の容量（格納可能なデータ数の最大値）に達すると、書込ポインタおよび読出ポインタが０にリセットされる。
【００３２】
入力側コントローラ２は、書込データＷＤＡＴＡに同期したライト信号ＷＴを発生してＦＩＦＯメモリ１に与える。また、入力側コントローラ２は、入力データの転送速度（トラフィック）を示すデータとしての２ビットの入力トラフィックデータＴＦＣＩＮを出力する。入力トラフィックデータＴＦＣＩＮは、最も低速でデータが転送される場合に“００”であり、“０１”，“１０”，“１１”の順で転送速度が高くなる。一方、出力側コントローラ３は、読出データＲＤＡＴＡに同期したリード信号ＲＤを発生してＦＩＦＯメモリ１に与える。
【００３３】
しきい値テーブル４は、セレクタ５に与えるためのしきい値をしきい値データＴｈ０〜Ｔｈ３（Ｔｈ０＞Ｔｈ１＞Ｔｈ２＞Ｔｈ３）として記憶している。しきい値は、データの読み出しを開始するときのメモリアレイ１１に格納されたデータの最大数を定めるために設けられており、入力データ（書込データ）の転送速度が低いほど大きい値に設定される。これは、入力データの転送速度が低いほど入出力トラフィックの差が大きくなることから、メモリアレイ１１に十分にデータを格納してからデータを読み出すためである。
【００３４】
セレクタ５は、入力コントローラ２からの入力トラフィックデータＴＦＣＩＮに基づいて、しきい値テーブル４からのしきい値データＴｈ０〜Ｔｈ３より１つを選択して出力する。このセレクタ５は、入力トラフィックデータＴＦＣＩＮが“００”，“０１”，“１０”，“１１”であるときにそれぞれしきい値データＴｈ０，Ｔｈ１，Ｔｈ２，Ｔｈ３を出力する。
【００３５】
減算器６は、入力端子Ａに入力される書込ポインタ管理部１２からの書込ポインタより、入力端子Ｂに入力される読出ポインタ管理部１３からの読出ポインタを減算する回路である。書込ポインタがすでに書き込まれたデータ数を表す一方、読出ポインタがすでに読み出されたデータ数を表すことから、データ計数手段としての減算器６の出力値は、現在メモリアレイ１１に格納されているデータ数を表している。
【００３６】
コンパレータ７は、入力端子Ｘに入力される減算器６からの出力値と入力端子Ｙに入力されるセレクタ５からの出力値とを比較して、入力端子Ｘの値が入力端子Ｙの値以下であるとき（Ｘ≦Ｙ）にＬレベルを出力する一方、入力端子Ｘの値が入力端子Ｙの値より大きいとき（Ｘ＞Ｙ）にＨレベルを出力する。このコンパレータ７は、出力値Ｘ，Ｙの比較により、現在メモリアレイ１１に格納されているデータ数がしきい値を超えたか否かを判定する。
【００３７】
コンパレータ８は、入力端子Ｘに入力される減算器６からの出力値と入力端子Ｙに入力される０とを比較して、入力端子Ｘの値が０と等しくないとき（Ｘ≠０）にＬレベルを出力する一方、入力端子Ｘの値が０と等しいとき（Ｘ＝０）にＨレベルを出力する。このコンパレータ８は、出力値Ｘ＝０により、ＦＩＦＯメモリ１がデータを格納していない状態（エンプティ状態）にあると判定する。
【００３８】
ＲＳフリップフロップ９は、コンパレータ７からのＨレベル出力の立ち上がりに同期してセットされて出力をＬレベルからＨレベルに変化させる一方、コンパレータ８からのＨレベル出力の立ち上がりに同期してリセットされて出力をＨレベルからＬレベルに変化させる。読出要求手段としてのＲＳフリップフロップ９のＨレベルの出力は、読出要求信号ＯＵＴＲＥＱとして出力側コントローラ３に与えられる。出力側コントローラ３は、読出要求信号ＯＵＴＲＥＱがＨレベルであるとき、データを読み出すように出力側の転送速度のタイミングに同期したリード信号ＲＤを出力する。
【００３９】
続いて、上記のように構成される第１のバッファシステムにおける動作について説明する。
【００４０】
書込データＷＤＡＴＡがＦＩＦＯメモリ１に入力される毎に、入力側コントローラ２からライト信号ＷＴが出力されると、ライト信号ＷＴの１パルスによってＦＩＦＯメモリ１における書込ポインタが書込ポインタ管理部１２によってインクレメントされる。メモリアレイ１１において、書込データＷＤＡＴＡは、この更新された書込ポインタで定まる書込アドレスに書き込まれる。このようにしてメモリアレイ１１に書込データＷＴが書き込まれていく。
【００４１】
メモリアレイ１１に書き込まれたデータが読み出される場合は、出力側コントローラ３から出力されるリード信号ＲＤの１パルスによって読出ポインタが読出ポインタ管理部１３によってインクレメントされる。これにより、メモリアレイ１１において、この読出ポインタで定まる読出アドレスに格納されている最も先に書き込まれたデータが読出データＲＤＡＴＡとして読み出される。このようにしてメモリアレイ１１から読出データＲＤが読み出されていく。
【００４２】
書込データＷＤＡＴＡの書き込みに伴って、書込ポインタの値が増加していくが、メモリアレイ１１の容量に十分な余裕がある場合、メモリアレイ１１から読出データＲＤＡＴＡが読み出されない。したがって、減算器６での減算によって得られる書込ポインタと読出ポインタとの差が書き込まれるデータの増加にしたがって増加していく。
【００４３】
一方、セレクタ５では、入力側コントローラ２から出力される入力トラフィックデータＴＦＣＩＮに基づいて、しきい値テーブル４からのしきい値データＴｈ０〜Ｔｈ３より１つが選択されて、コンパレータ７に出力される。例えば、入力側の転送速度が最も低い場合は、入力トラフィックデータＴＦＣＩＮが“００”であるので、最も大きいしきい値データＴｈ０が選択される。
【００４４】
コンパレータ７では、減算器６からの出力値がセレクタ５からのしきい値データと比較され、減算値がしきい値以下である場合は、Ｌレベルを出力する。これにより、ＲＳフリップフロップ９はセットされないのでＬレベルを出力し、出力側コントローラ３へのデータ読出の要求はしない。一方、減算値がしきい値を超えたときには、コンパレータ７がＨレベルを出力するため、ＲＳフリップフロップ９がセットされてＨレベルを読出要求信号ＯＵＴＲＥＱとして出力する。
【００４５】
出力側コントローラ３は、読出要求信号ＯＵＴＲＥＱを受けると、リード信号ＲＤを出力する。これにより、読出ポインタ管理部１３の値が１つずつインクレメントされる毎に、その値に対応するメモリアレイ１１の読出アドレスからデータが１つずつ読み出される。第１のバッファシステムでは、出力側の転送速度が入力側の転送速度より高いので、データの読み出しが書き込みよりも速く行われることにより、メモリアレイ１１内のデータが徐々に減少していく。
【００４６】
そして、メモリアレイ１１から格納していた全てのデータが読み出されると、書込ポインタと読出ポインタとが同じになるため、減算器６の出力が０となり、コンパレータ８がＨレベルを出力する。これにより、ＲＳフリップフロップ９がリセットされてＬレベルを出力するので、出力側コントローラ３は、ＦＩＦＯメモリ１からのデータ読み出しを終えるように、リード信号ＲＤの出力を停止する。
【００４７】
このように、第１のバッファシステムは、減算器６でメモリアレイ１１に現在格納されているデータ数を算出し、そのデータ数が、入力データ（書込データ）の転送速度が低いほど大きい値に設定されたしきい値を超えたことがコンパレータ７により判定されたときに、ＲＳフリップフロップ９から出力されるＨレベルの読出要求信号ＯＵＴＲＥＱを受けた出力側コントローラ３がＦＩＦＯメモリ１からデータを読み出すようにリード信号ＲＤを出力する。
【００４８】
これにより、入力データの転送速度に応じて入出力トラフィックの差が変化しても、それに関係なくＦＩＦＯメモリ１に十分なデータを格納してから読み出すことができる。これは、ＦＩＦＯメモリ１に特別なフラグを設けることなく実現できるので、ＦＩＦＯメモリ１として汎用のバッファメモリを使用することができる。したがって、しきい値を入力側の転送速度に応じて適切に設定することにより、オーバーフローすることなく、ＦＩＦＯメモリ１を安価に有効利用することが可能になる。
【００４９】
ところで、出力側コントローラ３は、上記のように読出要求信号ＯＵＴＲＥＱを受けても、出力側システムのデータ処理などの都合により、直ちにリード信号ＲＤを出力して読み出しを開始することができない場合がある。しかしながら、この待ち時間においても、ＦＩＦＯメモリ１にデータが書き込まれていくので、ＦＩＦＯメモリ１がフル状態となってオーバーフローしないように、メモリアレイ１１の容量に、その待ち時間にデータの書き込みを受け入れることができる余裕が必要となる。ただし、このような待ち時間の最大値は、出力側のシステム仕様などによって、通常、既知であり変動しない（固定値である）。
【００５０】
そこで、ＦＩＦＯメモリ１がオーバーフローしないための余裕を設けるには、所定の待ち時間の最大値の間（読出要求信号ＯＵＴＲＥＱの出力から最大値時間を経過するまで）にメモリアレイ１１に書き込まれるデータ数Ｎｗ１と、減算器６の出力値がしきい値を超えて出力側コントローラ３に読出要求信号ＯＵＴＲＥＱが出力されるときのメモリアレイ１１に格納されているデータ数Ｎｔｈ１との和が、メモリアレイ１１に格納できる最大のデータ数Ｎｍ１を超えないように（Ｎｔｈ１＋Ｎｗ１＜Ｎｍ１）、しきい値データＴｈ０〜Ｔｈ３の値（しきい値）が設定される。当然ながら、Ｎｔｈ１が入力側の転送速度に応じて定められるように、データ数Ｎｗ１も入力側の転送速度に応じて定められる。したがって、入力側の転送速度が低ければ、データ数Ｎｗ１が少なくて済むので、データ数Ｎｔｈ１が大きくなり、逆に、入力側の転送速度が高ければ、データ数Ｎｗ１を多く必要とするので、データ数Ｎｔｈ１が小さくなる。
【００５１】
これにより、出力側コントローラ３に読出要求信号ＯＵＴＲＥＱが与えられたときに、上記の都合によってしばらくしてからデータの読み出しを開始する場合には、上記のようなしきい値データの設定によって、データ数Ｎｗの書き込みを行うことができる容量の余裕がメモリアレイ１１に確保されるので、読み出しまでにできるだけ多くのデータを書き込みながら、オーバーフローを回避することができる。
【００５２】
引き続き、第２のバッファシステムについて説明する。
【００５３】
図２に示すように、第２のバッファシステムは、ＦＩＦＯメモリ１、入力側コントローラ２２、出力側コントローラ２３、しきい値テーブル２４、セレクタ２５、減算器２６、コンパレータ２７，２８およびＲＳフリップフロップ２９を備えている。この第２のバッファシステムでは、出力側の転送速度（トラフィック）が入力側の転送速度より低く、かつ出力側の転送速度のみが変動する。
【００５４】
入力側コントローラ２２は、書込データＷＤＡＴＡに同期したライト信号ＷＴを発生してＦＩＦＯメモリ１に与える。一方、出力側コントローラ２３は、読出データＲＤＡＴＡに同期したリード信号ＲＤを発生してＦＩＦＯメモリ１に与える。また、出力側コントローラ２３は、出力データの転送速度（トラフィック）を示すデータとしての２ビットの出力トラフィックデータＴＦＣＯＵＴを出力する。出力トラフィックデータＴＦＣＯＵＴは、最も低速でデータが転送される場合に“００”であり、“０１”，“１０”，“１１”の順で転送速度が高くなる。
【００５５】
しきい値テーブル２４は、セレクタ２５に与えるためのしきい値データＴｈ１０〜Ｔｈ１３（Ｔｈ１０＜Ｔｈ１１＜Ｔｈ１２＜Ｔｈ１３）を記憶している。しきい値は、データの読み出しを開始するときのメモリアレイ１１に格納されたデータの最大数を定めるために設けられており、出力データ（読出データ）の転送速度が低いほど小さい値に設定される。これは、出力データの転送速度が低いほど入出力トラフィックの差が大きくなることから、メモリアレイ１１に十分にデータを格納してからデータを読み出すためである。
【００５６】
セレクタ２５は、入力コントローラ２３からの出力トラフィックデータＴＦＣＯＵＴに基づいて、しきい値テーブル２４からのしきい値データＴｈ１０〜Ｔｈ１３より１つを選択して出力する。このセレクタ２５は、出力トラフィックデータＴＦＣＯＵＴが“００”，“０１”，“１０”，“１１”であるときにそれぞれしきい値データＴｈ１０，Ｔｈ１１，Ｔｈ１２，Ｔｈ１３を出力する。
【００５７】
減算器２６は、入力端子Ａに入力される書込ポインタより、入力端子Ｂに入力される読出ポインタを減算する回路である。書込ポインタがすでに書き込んだデータ数を表す一方、読出ポインタがすでに読み出したデータ数を表すことから、減算器２６の出力値は、現在メモリアレイ１１に格納されているデータ数を表している。
【００５８】
コンパレータ２７は、入力端子Ｘに入力される減算器２６からの出力値と入力端子Ｙに入力されるセレクタ２５からの出力値とを比較して、入力端子Ｘの値が入力端子Ｙの値以下であるとき（Ｘ≦Ｙ）にＬレベルを出力する一方、入力端子Ｘの値が入力端子Ｙの値より大きいとき（Ｘ＞Ｙ）にＨレベルを出力する。このコンパレータ２７は、出力値Ｘ，Ｙの比較により、現在メモリアレイ１１に格納されているデータ数がしきい値を超えたか否かを判定する。
【００５９】
コンパレータ２８は、入力端子Ｘに入力される減算器２６からの出力値と入力端子Ｙに入力されるしきい値Ｌlimit とを比較して、入力端子Ｘの値がしきい値Ｌlimit と等しくないとき（Ｘ≠Ｌlimit ）にＬレベルを出力する一方、入力端子Ｘの値がしきい値Ｌlimit と等しいとき（Ｘ＝Ｌlimit ）にＨレベルを出力する。このコンパレータ２８は、出力値Ｘ＝Ｌlimit により、ＦＩＦＯメモリ１に格納されたデータ数が書き込みを再開できるための最低数であると判定する。
【００６０】
ＲＳフリップフロップ２９は、コンパレータ２７からのＨレベル出力の立ち上がりに同期してセットされて出力をＬレベルからＨレベルに変化させる一方、コンパレータ２８からのＨレベル出力の立ち上がりに同期してリセットされて出力をＨレベルからＬレベルに変化させる。ＲＳフリップフロップ２９のＨレベルの出力は、入力停止要求信号ＩＮＳＵＳＰＥＮＤとして入力側コントローラ２２に与えられる。入力側コントローラ２２は、入力停止要求信号ＩＮＳＵＳＰＥＮＤがＨレベルであるとき、入力側システムにデータの入力の停止を要求する。
【００６１】
続いて、上記のように構成される第２のバッファシステムにおける動作について説明する。
【００６２】
書込データＷＤＡＴＡがＦＩＦＯメモリ１に入力される毎に、入力側コントローラ２２からライト信号ＷＴが出力されると、ＦＩＦＯメモリ１における書込ポインタが、ライト信号ＷＴの１パルスにより書込ポインタ管理部１２においてインクレメントされる。メモリアレイ１１において、書込データＷＤＡＴＡは、書込ポインタで定まる書込アドレスに書き込まれる。このようにしてメモリアレイ１１に書込データＷＴが書き込まれていく。
【００６３】
メモリアレイ１１に書き込まれたデータが読み出される場合は、読出ポインタが、出力側コントローラ２３から出力されるリード信号ＲＤの１パルスにより、読出ポインタ管理部１３においてインクレメントされる。これにより、メモリアレイ１１において、読出ポインタで定まる読出アドレスに格納されている最も先に書き込まれたデータが読出データＲＤＡＴＡとして読み出される。このようにしてメモリアレイ１１に書込データＷＴが書き込まれていく。
【００６４】
書込データＷＤＡＴＡの書き込みに伴って、書込ポインタの値が増加していくが、それよりも遅くメモリアレイ１１から読出データＲＤＡＴＡが読み出される。したがって、減算器２６での減算によって得られる書込ポインタと読出ポインタとの差が書き込まれるデータの増加にしたがって増加していく。
【００６５】
一方、セレクタ２５では、出力側コントローラ２２から出力される出力トラフィックデータＴＦＣＯＵＴに基づいて、しきい値テーブル２４からのしきい値データＴｈ１０〜Ｔｈ１３より１つが選択されて、コンパレータ２７に出力される。例えば、出力側の転送速度が最も低い場合は、入力トラフィックデータＴＦＣＩＮが“００”であるので、最も小さいしきい値データＴｈ１０が選択される。
【００６６】
コンパレータ２７では、減算器２６からの出力値がセレクタ２５からのしきい値データと比較され、減算値がしきい値以下である場合は、Ｌレベルを出力する。これにより、ＲＳフリップフロップ２９は、セットされないので、Ｌレベルを出力し、入力停止要求信号ＩＮＳＵＳＰＥＮＤ（Ｈレベル）を出力しない。第２のバッファシステムでは、入力側の転送速度が出力側の転送速度より高いので、データの書き込みが読み出しよりも速く行われることにより、メモリアレイ１１内のデータが徐々に増加していく。その増加速度は、出力側の転送速度が低いほど高くなる。そして、減算値がしきい値を超えたときには、コンパレータ２７がＨレベルを出力するため、ＲＳフリップフロップ２９がセットされてＨレベルを入力停止要求信号ＩＮＳＵＳＰＥＮＤとして出力する。
【００６７】
入力側コントローラ２３は、入力停止要求信号ＩＮＳＵＳＰＥＮＤを受けると、入力側システムにデータの入力停止を要求する。これにより、入力側システムからのデータ転送が停止するので、入力側コントローラ２２は、それに応じてライト信号ＷＴの出力を停止する。この結果、メモリアレイ１１へのデータの書き込みが停止する。
【００６８】
書き込みの停止後は、メモリアレイ１１からデータが読み出される一方であり、格納していたデータがある程度読み出されると、書込ポインタと読出ポインタとの差である減算器２６の出力がしきい値Ｌlimit となり、コンパレータ２８がＨレベルを出力する。これにより、ＲＳフリップフロップ２９がリセットされてＬレベルを出力するので、入力停止要求信号ＩＮＳＵＳＰＥＮＤの出力が停止する。すると、入力側コントローラ２２は、入力側システムにデータの入力を要求するとともに、書込データＷＤＡＴＡの入力に合わせてライト信号ＷＴを出力して、データの書き込みを再開する。
【００６９】
このように、第２のバッファシステムは、減算器２６でメモリアレイ１１に現在格納されているデータ数を算出し、そのデータ数が、出力データ（読出データ）の転送速度が低いほど小さい値に設定されたしきい値を超えたことがコンパレータ２７により判定されたときに、ＲＳフリップフロップ２９から出力されるＨレベルの入力停止要求信号ＩＮＳＵＳＰＥＮＤを受けた入力側コントローラ２２がＦＩＦＯメモリ１へのデータの書き込みを停止するように入力側システムにデータの入力停止を要求する。
【００７０】
これにより、出力データの転送速度に応じて入出力トラフィックの差が変化しても、それに関係なくＦＩＦＯメモリ１に十分なデータを格納してから読み出すことができる。これは、ＦＩＦＯメモリ１に特別なフラグを設けることなく実現できるので、ＦＩＦＯメモリ１として汎用のバッファメモリを使用することができる。したがって、しきい値を出力側の転送速度に応じて適切に設定することにより、オーバーフローすることなく、ＦＩＦＯメモリ１を安価に有効利用することが可能になる。
【００７１】
ところで、入力側コントローラ２２は、上記のように入力停止要求信号ＩＮＳＵＳＰＥＮＤを受けることによって入力側システムにデータの入力停止を要求しても、入力側システムのデータ処理などの都合により、直ちにデータの入力が停止されない場合がある。しかしながら、この待ち時間においても、ＦＩＦＯメモリ１からデータが読み出されていくが、データの書き込みがそれより速く行われるため、ＦＩＦＯメモリ１がフル状態となってオーバーフローしないように、メモリアレイ１１の容量に、その待ち時間にデータの書き込みを受け入れることができる余裕が必要となる。ただし、このような待ち時間の最大値は、入力側のシステム仕様などによって、通常、既知であり変動しない（固定値である）。
【００７２】
そこで、ＦＩＦＯメモリ１がオーバーフローしないための余裕を設けるには、所定の待ち時間の最大値の間（入力停止要求信号ＩＮＳＵＳＰＥＮＤの出力から最大値時間を経過するまで）にメモリアレイ１１に書き込まれるデータ数Ｎｗ２と、減算器２６の出力値がしきい値を超えて入力側コントローラ２２に入力停止要求信号ＩＮＳＵＳＰＥＮＤが出力されるときのメモリアレイ１１に格納されているデータ数Ｎｔｈ２との和から、待ち時間の最大値の間にメモリアレイ１１から読み出されるデータ数Ｎｒ２を減じた値が、メモリアレイ１１に格納できる最大のデータ数Ｎｍ２を超えないように（Ｎｔｈ２＋Ｎｗ２−Ｎｒ２＜Ｎｍ２）、しきい値データＴｈ１０〜Ｔｈ１３の値（しきい値）が設定される。当然ながら、データ数Ｎｔｈ２が出力側の転送速度に応じて定められるように、データ数Ｎｗ２，Ｎｒ２も入力側の転送速度に応じて定められる。したがって、出力側の転送速度が高ければ、データ数Ｎｗ２が少なくて済むので、データ数Ｎｔｈ２が大きくなり、逆に、入力側の転送速度が低ければ、データ数Ｎｗ２を多く必要とするので、データ数Ｎｔｈ２が小さくなる。
【００７３】
これにより、入力側コントローラ２２に入力停止要求信号ＩＮＳＵＳＰＥＮＤが与えられたときに、上記の都合によってしばらくしてからデータの書き込みを停止する場合には、上記のようなしきい値データの設定によって、データ数Ｎｗ２の書き込みを行うことができる容量の余裕がメモリアレイ１１に確保されるので、読み出しまでにできるだけ多くのデータを書き込みながら、オーバーフローを回避することができる。
【００７４】
前述の第１のバッファシステムにおいては、入力側コントローラ２が入力トラフィックデータＴＦＣＩＮを出力する一方、前述の第２のバッファシステムにおいては、出力側コントローラ２３が出力トラフィックデータＴＦＣＯＵＴを出力する。しかしながら、入力側コントローラ２が入力トラフィックデータＴＦＣＩＮを出力する機能を備えていなかったり、出力側コントローラ２３が出力トラフィックデータＴＦＣＯＵＴを出力する機能を備えていなかったりする構成においては、これらのデータを生成する回路が必要となる。以下に、そのための転送速度検出回路について説明する。
【００７５】
図３に示すように、転送速度検出回路は、バイナリカウンタ３１、インバータ３２、しきい値テーブル３３、コンパレータ３４〜３７、プライオリティエンコーダ３８およびＤフリップフロップ（図中、Ｆ／Ｆ）３９を備えている。
【００７６】
パルス計数手段としてのバイナリカウンタ３１は、入力側コントローラ２からのライト信号ＷＴまたは出力側コントローラ２３からのリード信号のパルス数をカウント（計数）するカウンタである。このバイナリカウンタ３１は、図４に示す速度クロックＳＰＥＥＤＣＬＫがインバータ３２により反転された反転クロックによりリセットされる。バイナリカウンタ３１は、速度クロックＳＰＥＥＤＣＬＫによって定まる一定周期Ｔで入力データの転送速度に同期したライト信号または出力データの転送速度に同期したリード信号ＲＤをカウントすることにより、転送速度を検出する。このため、速度クロックＳＰＥＥＤＣＬＫは、最低速で転送されるライト信号ＷＴまたはリード信号ＲＤを検出できるように、周期Ｔがそれらの１周期よりも長く設定されている。
【００７７】
しきい値テーブル３３は、コンパレータ３４〜３７でそれぞれ用いるしきい値データＳＰＥＥＤ０〜ＳＰＥＥＤ３を記憶している。しきい値データＳＰＥＥＤ０〜ＳＰＥＥＤ３は、転送速度を４段階に区分するための各区分の最も小さい値に設定されており、しきい値データＳＰＥＥＤ３の値が最も大きく設定される（ＳＰＥＥＤ０＜ＳＰＥＥＤ１＜ＳＰＥＥＤ２＜ＳＰＥＥＤ３）。
【００７８】
速度判定手段としてのコンパレータ３４〜３７は、それぞれ入力端子Ｘに入力されるバイナリカウンタ３１からの出力値と入力端子Ｙに入力されるしきい値データＳＰＥＥＤ０〜ＳＰＥＥＤ３（速度しきい値）とを比較して、入力端子Ｘの値が入力端子Ｙの値以下であるとき（Ｘ≦Ｙ）にＬレベルを出力する一方、入力端子Ｘの値が入力端子Ｙの値より大きいとき（Ｘ＞Ｙ）にＨレベルを出力する。コンパレータ３４〜３７は、コンパレータ３４からコンパレータ３７へ順位が大きくなるように順位付けられている。
【００７９】
速度値出力手段としてのプライオリティエンコーダ３８は、順位付けられた入力端子Ｄ０〜Ｄ３（Ｄ０＜Ｄ１＜Ｄ２＜Ｄ３）にそれぞれ同順位のコンパレータ３４〜３７の出力値が入力され、入力端子Ｄ０〜Ｄ３に入力されるＨレベルのうち最も順位の高い入力端子Ｄ０，Ｄ１，Ｄ２またはＤ３（コンパレータ３４，３５，３６または３７）に応じた２ビットの信号（速度値）を出力端子Ｑ０，Ｑ１（Ｑ０は下位ビットであり、Ｑ１は上位ビットである）から出力する。つまり、プライオリティエンコーダ３８は、Ｄ０＝Ｈ，Ｄ１＝Ｌ，Ｄ２＝Ｌ，Ｄ３＝Ｌの場合はＱ０＝Ｌ，Ｑ１＝Ｌを出力し、Ｄ１＝Ｈ，Ｄ２＝Ｌ，Ｄ３＝Ｌの場合はＱ０＝Ｈ，Ｑ１＝Ｌを出力し、Ｄ２＝Ｈ，Ｄ３＝Ｌの場合はＱ０＝Ｌ，Ｑ１＝Ｈを出力し、Ｄ３＝Ｈの場合はＱ０＝Ｈ，Ｑ１＝Ｈを出力する。
【００８０】
Ｄフリップフロップ３９は、速度クロックＳＰＥＥＤＣＬＫのタイミングでプライオリティエンコーダ３９の出力値を保持して、入力トラフィックデータＴＦＣＩＮまたは出力トラフィックデータＴＦＣＯＵＴとして出力する。
【００８１】
上記のように構成される転送速度検出回においては、バイナリカウンタ３１の出力値（カウント値）に応じて、次のようにトラフィックデータが得られる。カウント値がしきい値データＳＰＥＥＤ０の値のみを超えている場合、コンパレータ３４により最も低速であると判定され、Ｄフリップフロップ３９からトラフィックデータ“００”が出力される。カウント値がしきい値データＳＰＥＥＤ０，ＳＰＥＥＤ１の値のみを超えている場合、コンパレータ３５により３番目の速さであると判定され、Ｄフリップフロップ３９からトラフィックデータ“０１”が出力される。カウント値がしきい値データＳＰＥＥＤ０，ＳＰＥＥＤ１，ＳＰＥＥＤ２の値のみを超えている場合、コンパレータ３６により２番目の速さであると判定され、Ｄフリップフロップ３９からトラフィックデータ“１０”が出力される。カウント値がしきい値データＳＰＥＥＤ３の値を超えている場合、コンパレータ３７により最も高速であると判定され、Ｄフリップフロップ３９からトラフィックデータ“１１”が出力される。
【００８２】
このように、コンパレータ３４〜３７により得たライト信号またはリード信号のパルス数を転送速度を区分するためのしきい値と比較して入力データの転送速度または出力データの転送速度を判定しているので、コンパレータおよびしきい値の数を適宜変更することにより、転送速度の判定区分を所望に設定することができる。
【産業上の利用可能性】
【００８３】
本発明のバッファメモリ制御装置は、変化する入出力データの転送速度差に応じたしきい値を用いて、オーバーフローが生じないようにできるだけ多くのデータをバッファメモリに格納し、かつデータ出力要求やデータ入力停止要求にすぐに応じられないときにバッファメモリにデータの書き込みを許容する余裕を設けるように上記のしきい値を設定しているので、オーバーフローによるデータ再送が不可能なデータ転送システムに適用できる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施形態の第１のバッファシステムの構成を示すブロック図である。
【図２】本発明の実施形態の第２のバッファシステムの構成を示すブロック図である。
【図３】第１または第２のバッファシステムに適用される転送速度検出回路の構成を示すブロック図である。
【図４】上記転送速度検出回路の動作を示すタイミングチャートである。
【符号の説明】
【００８５】
１            ＦＩＦＯメモリ（バッファメモリ）
２            入力側コントローラ
３            出力側コントローラ
４            しきい値テーブル
５            セレクタ（しきい値選択手段）
６            減算器（データ計数手段）
７            コンパレータ（判定手段）
８            コンパレータ
９            Ｄフリップフロップ（読出要求手段）
１１            メモリアレイ（バッファメモリ）
１２            書込ポインタ管理部（書込ポインタ加算手段）
１３            読出ポインタ管理部（読出ポインタ加算手段）
２２            入力側コントローラ
２３            出力側コントローラ
２４            しきい値テーブル
２５            セレクタ（しきい値選択手段）
２６            減算器（データ計数手段）
２７            コンパレータ（判定手段）
２８            コンパレータ
２９            Ｄフリップフロップ（入力停止要求手段）
３１            バイナリカウンタ（パルス計数手段）
３３            しきい値テーブル
３４〜３７      コンパレータ（速度判定手段）
３８            プライオリティエンコーダ（速度値出力手段）
Ｔｈ０〜Ｔｈ３  しきい値データ（しきい値）
ＳＰＥＥＤ０〜
ＳＰＥＥＤ３    しきい値データ（速度しきい値）
【図１】
2005141369.tif 000003
【図２】
2005141369.tif 000004
【図３】
2005141369.tif 000005
【図４】
2005141369.tif 000006