(57)【要約】  周波数乗り換え回路は、第１のクロック信号のパルス数を所定期間において計数し第１の計数値を生成する第１の計数回路と、第２のクロック信号のパルス数を所定期間において計数し第２の計数値を生成する第２の計数回路と、第１のクロック信号のパルスに同期してデータが書き込まれ、第２のクロック信号のパルスに同期してデータが読み出されるバッファと、第１の計数値に等しい数の第１のクロック信号の連続するパルスのうち、第２の計数値に等しい数のパルスに対してはバッファを書き込み可の状態にし、残りのパルスに対してはバッファを書き込み不可の状態にする制御回路とを含む。
2013076796.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック信号のパルス数を所定期間において計数し第１の計数値を生成する第１の計数回路と、
第２のクロック信号のパルス数を前記所定期間において計数し第２の計数値を生成する第２の計数回路と、
前記第１のクロック信号のパルスに同期してデータが書き込まれ、前記第２のクロック信号のパルスに同期して前記データが読み出されるバッファと、
前記第１の計数値に等しい数の前記第１のクロック信号の連続するパルスのうち、前記第２の計数値に等しい数のパルスに対しては前記バッファを書き込み可の状態にし、残りのパルスに対しては前記バッファを書き込み不可の状態にする制御回路と
を含むことを特徴とする周波数乗り換え回路。
【請求項２】
前記制御回路は、
前記第１のクロック信号に同期して前記第２の計数値に等しい数だけ順次増加するカウント値を生成するカウンタ回路と、
前記カウント値が前記第１の計数値の正の整数倍である一の数より小さい値から前記一の数以上の値になるタイミングを検出し、前記第１のクロック信号の連続するパルスのうち、前記検出されたタイミングのパルスに対しては第１の信号レベルとなり、前記検出されたタイミング以外のタイミングのパルスに対しては第２の信号レベルとなる制御信号を生成するタイミング検出回路と、
前記制御信号に基づいて前記バッファの書き込み可及び不可の状態を制御する書き込み制御回路と
を含むことを特徴とする請求項１記載の周波数乗り換え回路。
【請求項３】
前記第２の計数回路は、前記所定期間において計数された前記第２のクロック信号のパルス数から２を減算して前記第２の計数値を生成することを特徴とする請求項１又は２記載の周波数乗り換え回路。
【請求項４】
前記制御回路は、前記第２の計数値が前記第１の計数値以上である場合に前記バッファを常時書き込み可の状態とすることを特徴とする請求項１乃至３いずれか一項記載の周波数乗り換え回路。
【請求項５】
第１のクロック信号に同期してデータを送出する第１の回路と、
第２のクロック信号に同期して前記データを受け取る第２の回路と、
前記データを前記第１の回路から受け取り前記第２の回路に送出する周波数乗り換え回路と、
前記第１の回路、前記第２の回路、及び前記周波数乗り換え回路を制御するプロセッサと
を含み、前記周波数乗り換え回路は、
前記第１のクロック信号のパルス数を所定期間において計数し第１の計数値を生成する第１の計数回路と、
前記第２のクロック信号のパルス数を前記所定期間において計数し第２の計数値を生成する第２の計数回路と、
前記第１のクロック信号のパルスに同期して前記データが書き込まれ、前記第２のクロック信号のパルスに同期して前記データが読み出されるバッファと、
前記第１の計数値に等しい数の前記第１のクロック信号の連続するパルスのうち、前記第２の計数値に等しい数のパルスに対しては前記バッファを書き込み可の状態にし、残りのパルスに対しては前記バッファを書き込み不可の状態にする制御回路と
を含むことを特徴とするデータ通信システム。
【請求項６】
前記制御回路は、
前記第１のクロック信号に同期して前記第２の計数値に等しい数だけ順次増加するカウント値を生成するカウンタ回路と、
前記カウント値が前記第１の計数値の正の整数倍である一の数より小さい値から前記一の数以上の値になるタイミングを検出し、前記第１のクロック信号の連続するパルスのうち、前記検出されたタイミングのパルスに対しては第１の信号レベルとなり、前記検出されたタイミング以外のタイミングのパルスに対しては第２の信号レベルとなる制御信号を生成するタイミング検出回路と、
前記制御信号に基づいて前記バッファの書き込み可及び不可の状態を制御する書き込み制御回路と
を含むことを特徴とする請求項５記載のデータ通信システム。
【請求項７】
前記第２の計数回路は、前記所定期間において計数された前記第２のクロック信号のパルス数から２を減算して前記第２の計数値を生成することを特徴とする請求項５又は６記載のデータ通信システム。
【請求項８】
前記制御回路は、前記第２の計数値が前記第１の計数値以上である場合に前記バッファを常時書き込み可の状態とすることを特徴とする請求項５乃至７いずれか一項記載のデータ通信システム。
【請求項９】
第１のクロック信号のパルスに同期してデータが書き込まれ、第２のクロック信号のパルスに同期して前記データが読み出されるバッファを用いた周波数乗り換え方法であり、
前記第１のクロック信号のパルス数を所定期間において計数し第１の計数値を生成し、
前記第２のクロック信号のパルス数を前記所定期間において計数し第２の計数値を生成し、
前記第１の計数値に等しい数の前記第１のクロック信号の連続するパルスのうち、前記第２の計数値に等しい数のパルスに対しては前記バッファを書き込み可の状態にし、残りのパルスに対しては前記バッファを書き込み不可の状態にする
各段階を含むことを特徴とする周波数乗り換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信技術に関する。
【背景技術】
【０００２】
第１の回路から第２の回路にデータを転送する際、２つの回路のクロックが異なる場合、周波数乗り換え回路を用いる。周波数乗り換え回路では、溜め込みバッファを経由してデータを転送する。第１の回路が出力するデータを溜め込みバッファに書き込み、溜め込みバッファから読み出したデータを第２の回路に入力する。ライトポインタとリードポインタとにより、溜め込みバッファに対するデータ書き込み位置とデータ読み出し位置とを制御する。【０００３】
第１の回路のクロック周波数ｃｌｋ＿１が、第２の回路のクロック周波数ｃｌｋ＿２よりも高い場合、溜め込みバッファへの書き込みを連続的に行ったとき、書き込みに対して読み出しが間に合わず、溜め込みバッファがあふれてしまう。これを防ぐため、周波数乗り換え回路では、溜め込みバッファへの書き込みを適当なタイミングで間引くように、溜め込みバッファへの書き込みタイミングの制御を行う。具体的には、溜め込みバッファをあふれさせないために、第１の回路のクロックの連続するパルスのうち、ｃｌｋ＿２／ｃｌｋ＿１以下の割合のパルスにより書き込む。【０００４】
従来のデータ通信システムでは、最初に、システム管理者が各回路のクロック周波数等のシステム構成をシステム監視機構に設定する。システム監視機構はマイクロプロセッサとメモリ等とを含む。データ通信システムの初期化後、システム監視機構が、設定されたシステム構成に対応する周波数比設定値を周波数乗り換え回路のレジスタにセットする。その後、通常のデータ通信が実行される。データ通信中にシステム構成を変更する要件が発生すれば、通信を中断してシステム構成を変更した後、システム管理者がシステム構成の情報を再設定する。【０００５】
システム動作中に、周波数乗り換え回路に接続した回路や機器の周波数が切り替わる場合、想定される全ての周波数比に対して動作可能な周波数比設定値を、周波数乗り換え回路に設定しておくことが考えられる。例えばｃｌｋ＿１：ｃｌｋ＿２の想定される周波数比が１０：１０、１０：９、１０：８の３通りの場合、最も周波数差の大きい周波数比１０：８の設定値を設定しておく。そのような設定をしておかないと、周波数切り替わりにより現れ得る３通りの周波数比の全てに対して、適切に動作することができない。しかしながら最も周波数差の大きい周波数比設定値を用いる場合、実際の動作状態の周波数比に一致する設定値を用いる場合と比較して、周波数乗り換え回路の転送能力が低下してしまう。この問題を避けるためには、随時通信を中断して、システム管理者が、システム構成を最適な周波数比に再設定することが考えられる。この場合、常時システムの状態に注意していること、適宜手間をかけて対応すること、更に実際の周波数比を知っていること等がシステム管理者に要求されることになってしまう。【０００６】
例えば特許文献１には、回路自らが周波数設定を行う方法が開示されている。この方法を用いると、周波数乗り換え回路の入出力の周波数比を自動的に認識することができる。しかし、この方法での認識結果は１：ｎ（ｎは整数）の形となるため、周波数比が１：ｎであるケースにしか対応できず、周波数比がｍ：ｎ（ｍ，ｎは整数）であるようなケースには対応できない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２９４７０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
１つの側面では、本発明は、周波数乗り換え回路がより柔軟に周波数比を設定可能となるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
周波数乗り換え回路は、第１のクロック信号のパルス数を所定期間において計数し第１の計数値を生成する第１の計数回路と、第２のクロック信号のパルス数を前記所定期間において計数し第２の計数値を生成する第２の計数回路と、前記第１のクロック信号のパルスに同期してデータが書き込まれ、前記第２のクロック信号のパルスに同期して前記データが読み出されるバッファと、前記第１の計数値に等しい数の前記第１のクロック信号の連続するパルスのうち、前記第２の計数値に等しい数のパルスに対しては前記バッファを書き込み可の状態にし、残りのパルスに対しては前記バッファを書き込み不可の状態にする制御回路とを含む。【００１０】
データ通信システムは、第１のクロック信号に同期してデータを送出する第１の回路と、第２のクロック信号に同期して前記データを受け取る第２の回路と、前記データを前記第１の回路から受け取り前記第２の回路に送出する周波数乗り換え回路と、前記第１の回路、前記第２の回路、及び前記周波数乗り換え回路を制御するプロセッサとを含み、前記周波数乗り換え回路は、前記第１のクロック信号のパルス数を所定期間において計数し第１の計数値を生成する第１の計数回路と、前記第２のクロック信号のパルス数を前記所定期間において計数し第２の計数値を生成する第２の計数回路と、前記第１のクロック信号のパルスに同期して前記データが書き込まれ、前記第２のクロック信号のパルスに同期して前記データが読み出されるバッファと、前記第１の計数値に等しい数の前記第１のクロック信号の連続するパルスのうち、前記第２の計数値に等しい数のパルスに対しては前記バッファを書き込み可の状態にし、残りのパルスに対しては前記バッファを書き込み不可の状態にする制御回路とを含む。【００１１】
第１のクロック信号のパルスに同期してデータが書き込まれ、第２のクロック信号のパルスに同期して前記データが読み出されるバッファを用いた周波数乗り換え方法は、前記第１のクロック信号のパルス数を所定期間において計数し第１の計数値を生成し、前記第２のクロック信号のパルス数を前記所定期間において計数し第２の計数値を生成し、前記第１の計数値に等しい数の前記第１のクロック信号の連続するパルスのうち、前記第２の計数値に等しい数のパルスに対しては前記バッファを書き込み可の状態にし、残りのパルスに対しては前記バッファを書き込み不可の状態にする各段階を含むことを特徴とする。
【発明の効果】
【００１２】
本願開示の少なくとも１実施態様によれば、周波数乗り換え回路は、より柔軟に周波数比を設定可能することができる
【図面の簡単な説明】
【００１３】
【図１】データ通信システムの構成の一例を示す図である。
【図２】周波数乗り換え回路の動作の一例を示す図である。
【図３】間引き信号生成回路の構成の一例を示す図である。
【図４】図３に示す間引き信号生成回路の動作の一例を示す図である。
【図５】図３に示す間引き信号生成回路の計数動作の一例を示す図である。
【図６】図３に示す間引き信号生成回路の間引き制御信号生成動作の一例を示す図である。
【図７】図１に示すデータ通信システムの動作の一例を示すフローチャートである。
【図８】データ通信システムの別の一例を示す図である。
【図９】図８に示す周波数乗り換え回路の構成の一例を示す図である。
【図１０】図８に示すデータ通信システムの動作の一例を示すフローチャートである。
【図１１】間引き信号生成回路の構成の変形例を示す。
【発明を実施するための形態】
【００１４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１５】
図１は、データ通信システムの構成の一例を示す図である。図１に示すデータ通信システムは、システム監視用マイクロプロセッサ１０、制御回路１１、溜め込みバッファ１２、第１の回路１３、及び第２の回路１４を含む。制御回路１１と溜め込みバッファ１２とが、周波数乗り換え回路に相当する。制御回路１１は、間引き信号生成回路１５、書き込み制御回路１６、読み出し制御回路１７、ｗｐ伝送回路１８、及び有効数カウンタ１９を含む。図１において、第１の回路１３、間引き信号生成回路１５、及び書き込み制御回路１６は、第１のクロック信号ｃｌｋ＿ａに同期して動作する。また第２の回路１４、読み出し制御回路１７、及び有効数カウンタ１９は、第２のクロック信号ｃｌｋ＿ｂに同期して動作する。なお後程説明するように、間引き信号生成回路１５は、第２のクロック信号ｃｌｋ＿ｂに同期して動作する回路部分も含む。第１のクロック信号ｃｌｋ＿ａと第２のクロック信号ｃｌｋ＿ｂとは、互いに同期していてもよいが、基本的には非同期であってよい。第１のクロック信号ｃｌｋ＿ａは、第２のクロック信号ｃｌｋ＿ｂよりも周波数が高いものである状態を想定している。
【００１６】
第１の回路１３が出力するデータｄａｔａ＿ａを溜め込みバッファ１２に書き込み、溜め込みバッファ１２から読み出したデータｄａｔａ＿ｂを第２の回路１４に入力する。溜め込みバッファ１２には、第１のクロック信号ｃｌｋ＿ａのパルスに同期してデータが書き込まれ、溜め込みバッファ１２からは、第２のクロック信号ｃｌｋ＿ｂのパルスに同期してデータが読み出される。書き込み制御回路１６は、ライトイネーブルｗｅとライトポインタｗｐ＿ａとを溜め込みバッファ１２へ供給し、溜め込みバッファ１２へのデータ書き込みを制御する。読み出し制御回路１７は、リードイネーブルｒｅとリードポインタｒｐを溜め込みバッファ１２に供給して、溜め込みバッファ１２からのデータ読み出しを制御する。
【００１７】
間引き信号生成回路１５は、溜め込みバッファ１２への書き込み速度を遅くさせる間引き制御信号ｓｔａｌｌを生成する。クロック信号ｃｌｋ＿ａがクロック信号ｃｌｋ＿ｂよりも周波数が高いため、溜め込みバッファ１２への書き込みを連続的に行ったとき、書き込みに対して読み出しが間に合わず、溜め込みバッファ１２があふれてしまう。これを防ぐため、溜め込みバッファ１２への書き込み動作を間引くことにより（書き込みデータは間引かない）、書き込みデータを書き込むスピードを適宜遅くさせる。基本的にはクロック信号ｃｌｋ＿ａのパルスに同期して溜め込みバッファ１２にデータが書き込まれるが、このパルス毎の書き込み動作を適宜間引いて、適切な割合の数のパルスについてのみ書き込み動作を実行する。この間引き制御を書き込み制御信号ｓｔａｌｌに基づいて行う。間引き制御信号ｓｔａｌｌは、書き込み制御回路１６に入力され、間引き制御信号ｓｔａｌｌに基づいてライトイネーブルｗｅが制御される。例えば、間引き制御信号ｓｔａｌｌ＝０のときに、クロック信号ｃｌｋ＿ａのパルスに同期して溜め込みバッファ１２への書き込みを行ってよい。この場合、間引き制御信号ｓｔａｌｌ＝１のときは、クロック信号ｃｌｋ＿ａのパルスが発生しても、溜め込みバッファ１２への書き込みを行わない。
【００１８】
第１のクロック信号ｃｌｋ＿ａの周波数をｆａとし、第２のクロック信号ｃｌｋ＿ｂの周波数をｆｂとする。溜め込みバッファ１２をあふれさせないためには、第１のクロック信号ｃｌｋ＿ａの連続する複数のパルスに対して、ｆｂ／ｆａ以下の割合のパルスについてのみ書き込み動作を実行する。従って、間引き制御信号ｓｔａｌｌは、第１のクロック信号ｃｌｋ＿ａの連続する複数のパルスに対して、（ｆａ−ｆｂ）／ｆａ以上の割合で１になり、それ以外では０になるように生成される。
【００１９】
ｗｐ伝送回路１８は、第１のクロック信号ｃｌｋ＿ａに同期する溜め込みバッファ１２のライトポインタｗｐ＿ａを、第２のクロック信号ｃｌｋ＿ｂに同期するライトポインタｗｐ＿ｂとして出力する。ｗｐ伝送回路１８は例えば、第１のクロック信号ｃｌｋ＿ａに同期してデータを読み込む１つのフリップフロップと、第２のクロック信号ｃｌｋ＿ｂに同期してデータを読み込む複数のフリップフロップとを、縦続接続したシフトレジスタであってよい。有効数カウンタ１９は、ライトポインタｗｐ＿ｂとリードポインタｒｐとに基づいて、溜め込みバッファ１２内の有効なデータ数を示す信号ｖａｌ＿ｎｕｍを出力する。書き込み動作に対する読み出し動作の追い越しを防ぐため、読み出し制御回路１７は、溜め込みバッファ１２内に有効なデータが存在するときにのみ、読み出し動作を実行する。具体的には、読み出し制御回路１７は、有効なデータ数を示す信号ｖａｌ＿ｎｕｍが１以上のときのみ、溜め込みバッファ１２からのデータ読み出し動作を実行する。
【００２０】
図２は、周波数乗り換え回路の動作の一例を示す図である。図２に示す例では、ｆａ：ｆｂ＝５：２であり、溜め込みバッファ１２のバッファの段数を８段としている。即ち、図１に模式的に示すように、溜め込みバッファ１２はデータを格納する８つのメモリ領域ｂｕｆ＿０乃至ｂｕｆ＿７を含み、８つのデータを保持することができる。間引き制御信号ｓｔａｌｌは、第１のクロック信号ｃｌｋ＿ａの連続する複数のパルスに対して、（ｆａ−ｆｂ）／ｆａ＝３／５の割合のパルスについて１となり、それ以外では０となる。即ち、第１のクロック信号ｃｌｋ＿ａのサイクルに対して、（ｆａ−ｆｂ）／ｆａ＝３／５の割合のサイクルにおいて１となり、それ以外のサイクルでは０となる。間引き制御信号ｓｔａｌｌが０となるサイクルで、即ち間引き制御信号ｓｔａｌｌが０となるときの第１のクロック信号ｃｌｋ＿ａのパルスに応答して、有効なデータｄ０，ｄ１，ｄ２，ｄ３・・・が溜め込みバッファ１２に書き込まれる。具体的には、ライトイネーブルｗｅ＝１となるときに、溜め込みバッファ１２への書き込みが実行される。溜め込みバッファ１２への１つのデータの書き込みが実行される度に、ライトポインタｗｐ＿ａが１ずつ増加する。溜め込みバッファ１２の段数が８段であるので、ライトポインタｗｐ＿ａは０〜７の範囲で循環する。なお図２では、便宜上、４つのデータｄ０，ｄ１，ｄ２，ｄ３のみが示されている。
【００２１】
溜め込みバッファ１２からのデータの読み出しは、第２のクロック信号ｃｌｋ＿ｂのパルスに同期して実行される。第１のクロック信号ｃｌｋ＿ａに同期するライトポインタｗｐ＿ａは、前述のように、第２のクロック信号ｃｌｋ＿ｂに同期するライトポインタｗｐ＿ｂに変換される。信号ｖａｌ＿ｎｕｍは、溜め込みバッファ１２に格納されている有効データ数を示す。有効データ数ｖａｌ＿ｎｕｍが１以上のときのみ、読み出し制御回路１７はリードイネーブルｒｅを１にし、且つリードポインタｒｐを１ずつ順次増加させることにより、溜め込みバッファ１２の格納データを順次読み出す。
【００２２】
図３は、間引き信号生成回路１５の構成の一例を示す図である。間引き信号生成回路１５は、フリップフロップ２１乃至２４、同期化回路２５、減算回路２６、減算回路２７、加算回路２８、セレクタ回路（マルチプレクサ）２９乃至３１、１増加回路３２及び３３、及び比較回路３４を含む。同期化回路２５は、第１のクロック信号ｃｌｋ＿ａに同期してデータを読み込む１つのフリップフロップ３５と、第２のクロック信号ｃｌｋ＿ｂに同期してデータを読み込む複数（図３では２つ）のフリップフロップ３６及び３７とを含む。これらのフリップフロップ３５乃至３７は、縦続接続されて、シフトレジスタを形成してよい。フリップフロップ２２、２３、及び２４の各々は、図３では１ビットのフリップフロップのように示されるが、実際には複数のフリップフロップが並列に設けられた回路であり、複数ビットのデータを格納する。
【００２３】
フリップフロップ２１には、システム監視用マイクロプロセッサ１０により１が書き込まれるとセットされ、システム監視用マイクロプロセッサ１０により０が書き込まれるとリセットされる。フリップフロップ２１の出力ｃｎｔ＿ｅｎｂ＿ａは、セレクタ回路２９に選択制御信号として印加される。フリップフロップ２１が１にセットされると、セレクタ回路２９は、フリップフロップ２２の出力を１増加させる１増加回路３２の出力を選択して、フリップフロップ２２の入力に印加する。この場合、第１のクロック信号ｃｌｋ＿ａをクロック入力に受け取るフリップフロップ２２及び１増加回路３２は、第１のクロック信号ｃｌｋ＿ａのパルスに同期して１ずつカウント値を増加する第１の計数回路として機能する。この第１の計数回路は、第１のクロック信号ｃｌｋ＿ａのパルス数を所定期間において計数し、第１の計数値ｃｎｔ＿ａを生成する。ここで、計数動作が実行される所定期間は、フリップフロップ２１に１が格納されている期間、即ちフリップフロップ２１がセットされてからリセットされる迄の期間である。フリップフロップ２１が０にリセットされると、セレクタ回路２９は、フリップフロップ２２の出力を選択して、フリップフロップ２２の入力に印加する。この場合、フリップフロップ２２は、同一のデータを保持し続けることになる。
【００２４】
フリップフロップ２１の出力ｃｎｔ＿ｅｎｂ＿ａは、同期化回路２５を介して第２のクロック信号ｃｌｋ＿ｂに同期するデータに変更された後に、セレクタ回路３０に供給される。同期化回路２５は、第１のクロック信号ｃｌｋ＿ａから第２のクロック信号ｃｌｋ＿ｂにデータを移すときに、フリップフロップにおいてメタステーブル状態が発生しないように設けられる。例えばクロック信号の立ち上がりのタイミングと略同時にデータがＨＩＧＨに変化してしまうと、短い時間のＨＩＧＨのパルスがフリップフロップ内のインバータループ内を伝搬し、インバータループが発振してしまうメタステーブル状態が発生する。このメタステーブル状態は、ある程度の時間継続し、後段の回路の誤動作を引き起こす恐れがある。同期化回路２５では、第２のクロック信号ｃｌｋ＿ｂに同期してデータを読み込む複数（この例では２つ）のフリップフロップを縦続接続することにより、メタステーブル状態による影響が後続の回路に伝搬することを防いでいる。
【００２５】
同期化回路２５の出力ｃｎｔ＿ｅｎｂ＿ｂは、セレクタ回路３０に選択制御信号として印加される。フリップフロップ２１が１にセットされ同期化回路２５の出力が１になると、セレクタ回路３０は、フリップフロップ２３の出力を１増加させる１増加回路３３の出力を選択して、フリップフロップ２３の入力に印加する。この場合、第２のクロック信号ｃｌｋ＿ｂをクロック入力として受け取るフリップフロップ２３及び１増加回路３３は、第２のクロック信号ｃｌｋ＿ｂのパルスに同期して１ずつカウント値を増加する第２の計数回路として機能する。この第２の計数回路は、第２のクロック信号ｃｌｋ＿ｂのパルス数を所定期間において計数し、第２の計数値ｃｎｔ＿ｂを生成する。ここで、計数動作が実行される所定期間は、フリップフロップ２１に１が格納されている期間に略等しい期間、即ちフリップフロップ２１がセットされてからリセットされる迄の期間に略等しい期間である。フリップフロップ２１が０にリセットされ同期化回路２５の出力が０になると、セレクタ回路３０は、フリップフロップ２３の出力を選択して、フリップフロップ２３の入力に印加する。この場合、フリップフロップ２３は、同一のデータを保持し続けることになる。
【００２６】
上述のようにして、フリップフロップ２１をセットしてからリセットするまでの期間に対して、第１の計数値ｃｎｔ＿ａ及び第２の計数値ｃｎｔ＿ｂが求められ、フリップフロップ２１のリセットにより、それぞれの計数値が保持される。ここでｃｎｔ＿ａ：ｃｎｔ＿ｂ≒ｆａ：ｆｂであり、計数値の比率はクロック信号の周波数の比率と略等しくなる。これら第１の計数値ｃｎｔ＿ａ及び第２の計数値ｃｎｔ＿ｂに基づいて、フリップフロップ２４、減算回路２７、加算回路２８、セレクタ回路３１、及び比較回路３４が、間引き制御信号ｓｔａｌｌを生成する。間引き制御信号ｓｔａｌｌを受け取る図１の書き込み制御回路１６が、第１の計数値に等しい数の第１のクロック信号ｃｌｋ＿ａの連続するパルスのうち、第２の計数値に等しい数のパルスに対しては溜め込みバッファ１２を書き込み可の状態にする。また更に、残りのパルスに対しては溜め込みバッファ１２を書き込み不可の状態にする。これにより、第１のクロック信号ｃｌｋ＿ａの連続する複数のパルスに対して、ｆｂ／ｆａ以下の割合のパルスについてのみ書き込み動作を実行することができる。
【００２７】
ここでｃｎｔ＿ａ：ｃｎｔ＿ｂ≒ｆａ：ｆｂであり、計数値の比率はクロック信号の周波数の比率と略等しくなるが、完全には等しくならない可能性がある。何故なら、同期化回路２５によりフリップフロップ２１の出力ｃｎｔ＿ｅｎｂ＿ａを周波数乗り換えすることにより、ｃｎｔ＿ｅｎｂ＿ａが１である期間とｃｎｔ＿ｅｎｂ＿ｂが１である期間とは、若干異なるからである。ｃｎｔ＿ｅｎｂ＿ａが１である期間が第１のクロック信号ｃｌｋ＿ａの１周期の整数倍である一方、ｃｎｔ＿ｅｎｂ＿ｂが１である期間は第２のクロック信号ｃｌｋ＿ｂの１周期の整数倍となる。
【００２８】
ｃｎｔ＿ｅｎｂ＿ａが１である期間とｃｎｔ＿ｅｎｂ＿ｂが１である期間との誤差は、最大でもｃｌｋ＿ｂの１周期のｚ倍未満（ｚは整数）である。ｃｎｔ＿ｅｎｂ＿ａの立ち上がりが同期化回路２５を介してｃｎｔ＿ｅｎｂ＿ｂの立ち上がりに反映される時、これら立ち上がりのタイミングは、第２のクロック信号ｃｌｋ＿ｂの1周期分ずれる可能性がある。立ち下りについても同様であり、ｃｎｔ＿ｅｎｂ＿ａの立ち下がりのタイミングとｃｎｔ＿ｅｎｂ＿ｂの立ち下がりのタイミングとは、第２のクロック信号ｃｌｋ＿ｂの１周期分ずれる可能性がある。立ち上がりのずれと立ち下りのずれとの両方を考慮すると、最大で第２のクロック信号ｃｌｋ＿ｂの２周期分ずれる可能性があり、上記のｚは２となる。
【００２９】
減算回路２６は、ｚ（＝２）を第２の計数値ｃｎｔ＿ｂから減算することにより、補正後の第２の計数値を求める。第２の計数値が実際の周波数ｆｂに相当する値よりも大きめに設定されてしまうと、溜め込みバッファ１２への書き込み動作を実行するパルスの間引きの割合が小さくなり、溜め込みバッファ１２があふれてしまう可能性がある。それに対して、第２の計数値を実際の周波数ｆｂに相当する値よりも小さめに設定しておけば、溜め込みバッファ１２への書き込み動作を実行するパルスの間引きの割合は、実際に必要な割合よりも若干大きくなり、溜め込みバッファ１２があふれることはない。減算回路２６により第２の計数値ｃｎｔ＿ｂから２を減算することにより得られた補正後の第２の計数値は、実際の周波数ｆｂに相当する値に等しいか或いはそれよりも小さい値となる。これにより、溜め込みバッファ１２があふれることを確実に回避することができる。即ち、第１のクロック信号ｃｌｋ＿ａの連続する複数のパルスに対して、ｆｂ／ｆａに等しい割合のパルス又はｆｂ／ｆａ以下の割合のパルスについてのみ、溜め込みバッファ１２への書き込み動作を実行することができる。
【００３０】
間引き制御信号ｓｔａｌｌが１のとき、セレクタ回路３１はフリップフロップ２４の出力を選択して加算回路２８に供給する。なおフリップフロップ２４は、第１のクロック信号ｃｌｋ＿ａをクロック入力に受け取る。この場合、フリップフロップ２４及び加算回路２８は、カウンタ回路として機能し、フリップフロップ２４の出力を、第１のクロック信号ｃｌｋ＿ａに同期して第２の計数値ｙ（補正後の第２の計数値）に等しい数だけ順次増加するカウント値ｓｔ＿ｃｎｔを生成する。
【００３１】
減算回路２７は、カウント値ｓｔ＿ｃｎｔ（フリップフロップ２４の出力）から第１の計数値ｘを減算し、その結果を出力する。比較回路３４は、減算回路２７の出力（減算結果）が０より小さい間は、間引き制御信号ｓｔａｌｌを１に設定する。即ち、カウント値が例えば初期値０から第２の計数値刻みで順次増加していくとき、カウント値が第１の計数値以上になる迄の期間、間引き制御信号ｓｔａｌｌは１となる。
【００３２】
減算回路２７の出力（減算結果）が０以上になると、比較回路３４は、間引き制御信号ｓｔａｌｌを０に設定する。間引き制御信号ｓｔａｌｌが０の場合、セレクタ回路３１は減算回路２７の出力を選択して加算回路２８に供給する。この場合、フリップフロップ２４の出力であるカウント値ｓｔ＿ｃｎｔから、第１の計数値ｘが減算され、更に第２の計数値ｙ（補正後の第２の計数値）が加算され、次のカウント値が生成される。
【００３３】
その後上記と同様の動作を繰り返すことにより、カウント値ｓｔ＿ｃｎｔは、第２の計数値ｙに等しい数だけ順次増加していくが、第１の計数値ｘ以上になる度に第１の計数値ｘ分減少する数となる。そしてこのカウント値ｓｔ＿ｃｎｔが第１の計数値ｘよりも小さい値である間、間引き制御信号ｓｔａｌｌは１である。そしてカウント値ｓｔ＿ｃｎｔが第１の計数値ｘよりも小さい値から第１の計数値ｘ以上の値になるタイミングを、減算回路２７及び比較回路３４により検出し、そのタイミングで間引き制御信号ｓｔａｌｌが０になる。
【００３４】
カウント値ｓｔ＿ｃｎｔが第１の計数値ｘ分減少する動作は、カウント値ｓｔ＿ｃｎｔが無限に増えていくことを避けるためのものであり、本質的なものではない。理論的には、カウント値ｓｔ＿ｃｎｔが第２の計数値に等しい数だけ順次際限なく増加していき、第１の計数値の正の整数倍である数に到達又は超える度に、そのタイミングで間引き制御信号ｓｔａｌｌが０になるように制御すればよい。前述のようにカウント値が第１の計数値以上になる度に第１の計数値分減少する構成は、実装時の選択事項であり、例えば、カウント値が第１の計数値のＮ倍以上になる度に第１の計数値のＮ倍分減少するようにしてもよい。この場合、カウント値が第１の計数値のＭ倍（Ｍ≦Ｎ）よりも小さい値から第１の計数値のＭ倍以上の値になるタイミングを、減算回路２７及び比較回路３４により検出し、そのタイミングで間引き制御信号ｓｔａｌｌが０になってよい。
【００３５】
つまり理論的には、カウント値が第１の計数値の正の整数倍である一の数より小さい値から上記一の数以上の値になるタイミングを、第１の計数値の正の整数倍である数の各々に対して順次検出していけばよい。ここで上記カウント値は、第１のクロック信号ｃｌｋ＿ａに同期して第２の計数値に等しい数だけ順次増加する値である。そして、第１のクロック信号ｃｌｋ＿ａの連続するパルスのうち、上記検出されたタイミングのパルスに対しては第１の信号レベルとなり、それ以外のタイミングのパルスに対しては第２の信号レベルとなるように、間引き制御信号ｓｔａｌｌを生成すればよい。ここで第１の信号レベルは例えば０であり、第２の信号レベルは例えば１である。
【００３６】
図４は、図３に示す間引き信号生成回路の動作の一例を示す図である。この動作例は、第１の計数値が５であり、第２の計数値が２である場合に相当する。フリップフロップ２４の出力であるカウント値ｓｔ＿ｃｎｔが、第１のクロック信号ｃｌｋ＿ａに同期して初期値０から第２の計数値（＝２）刻みで増加していく。カウント値ｓｔ＿ｃｎｔが第１の計数値（＝５）より小さいとき、間引き制御信号ｓｔａｌｌは１である。カウント値ｓｔ＿ｃｎｔが、第１の計数値（＝５）より小さい値から第１の計数値（＝５）以上になるタイミングで、間引き制御信号ｓｔａｌｌが０になる。またカウント値ｓｔ＿ｃｎｔがあるサイクルにおいて第１の計数値（＝５）以上になると、その次のサイクルでは、カウント値ｓｔ＿ｃｎｔは第１の計数値分減少し、更に第２の計数値分増加した値となる。以上の動作により、５サイクルのうち３サイクルで１になり、残りの２サイクルで０になるような間引き制御信号ｓｔａｌｌを生成することができる。
【００３７】
図５は、図３に示す間引き信号生成回路の計数動作の一例を示す図である。この例では、第１のクロック信号ｃｌｋ＿ａの周波数ｆａと第２のクロック信号ｃｌｋ＿ｂの周波数ｆｂとの比率が、ｆａ：ｆｂ＝５：２である。また図３に示すフリップフロップ２１の出力ｃｎｔ＿ｅｎｂ＿ａが１である期間は、第１のクロック信号ｃｌｋ＿ａのサイクルでカウントして６００サイクルである。図５では、このｃｎｔ＿ｅｎｂ＿ａが１である６００サイクルの期間が、ｃｎｔ＿ｔｉｍｅ＿ａとして示されている。またｃｎｔ＿ｅｎｂ＿ａが同期化回路２５を介してｃｎｔ＿ｅｎｂ＿ｂとなるので、ｃｎｔ＿ｅｎｂ＿ｂはｃｎｔ＿ｅｎｂ＿ａに対して１である期間が遅れている。
【００３８】
ｃｎｔ＿ｅｎｂ＿ａが１である期間において、第１の計数回路の第１の計数値ｃｎｔ＿ａが第１のクロック信号ｃｌｋ＿ａに同期して１ずつ増加し、最終的に６００となる。またｃｎｔ＿ｅｎｂ＿ｂが１である期間において、第２の計数回路の第２の計数値ｃｎｔ＿ｂが第２のクロック信号ｃｌｋ＿ｂに同期して１ずつ増加し、最終的に２４０となる。第１の計数値ｃｎｔ＿ａ（＝６００）は、そのまま第１の計数値ｘとして図３の減算回路２７に供給される。第２の計数値ｃｎｔ＿ｂ（＝２４０）は、２が減算されて２３８となり、この値２３８が第２の計数値ｙとして図３の加算回路２８に供給される。
【００３９】
図６は、図３に示す間引き信号生成回路の間引き制御信号生成動作の一例を示す図である。この動作例は、図５に対応し、第１の計数値が６００であり、第２の計数値が２３８である場合に相当する。フリップフロップ２４の出力であるカウント値ｓｔ＿ｃｎｔが、第１のクロック信号ｃｌｋ＿ａに同期して初期値０から第２の計数値（＝２３８）刻みで増加していく。カウント値ｓｔ＿ｃｎｔが第１の計数値（＝６００）より小さいとき、間引き制御信号ｓｔａｌｌは１である。カウント値ｓｔ＿ｃｎｔが、第１の計数値（＝６００）より小さい値から第１の計数値（＝６００）以上になるタイミングで、間引き制御信号ｓｔａｌｌが０になる。またカウント値ｓｔ＿ｃｎｔがあるサイクルにおいて第１の計数値（＝６００）以上になると、その次のサイクルでは、カウント値ｓｔ＿ｃｎｔは第１の計数値分減少し、更に第２の計数値分増加した値となる。以上の動作により、６００サイクルのうち３６２サイクルで１になり、残りの２３８サイクルで０になるような間引き制御信号ｓｔａｌｌを生成することができる。
【００４０】
図７は、図１に示すデータ通信システムの動作の一例を示すフローチャートである。ステップＳ１において、システム全体の初期化を行う。ステップＳ２において、ファーム等監視機構（図１のシステム監視用マイクロプロセッサ１０）が、間引き信号生成回路１５のレジスタ（図３のフリップフロップ２１）をセットする。ステップＳ３において、ｃｎｔ＿ｅｎｂ＿ａ＝１となり、カウンタａ（第１の計数回路：図３のフリップフロップ２２及び１増加回路３２）がカウントを開始する。ステップＳ４において、ｃｎｔ＿ｅｎｂ＿ｂ＝１となり、カウンタｂ（第２の計数回路：図３のフリップフロップ２３及び１増加回路３３）がカウントを開始する。
【００４１】
ステップＳ５において、ファーム等監視機構が、間引き信号生成回路１５のレジスタ（図３のフリップフロップ２１）をリセットする。ステップＳ６において、ｃｎｔ＿ｅｎｂ＿ａ＝０となり、カウンタａ（第１の計数回路：図３のフリップフロップ２２及び１増加回路３２）がカウントを終了する。ステップＳ７において、ｃｎｔ＿ｅｎｂ＿ｂ＝０となり、カウンタｂ（第２の計数回路：図３のフリップフロップ２３及び１増加回路３３）がカウントを終了する。ステップＳ８において、カウンタａ及びカウンタｂの値に基づいて、周波数比設定値ｘ：ｙが定まる。以上の動作が、図５に示す間引き信号生成回路の計数動作に相当する。
【００４２】
次にステップＳ９において、ファーム等監視機構が、データ通信開始を指示する。ステップＳ１０において、通常のデータ通信が開始される。この通常のデータ通信の実行中は、図６に示す間引き制御信号生成動作が実行され、間引き制御信号ｓｔａｌｌにより、溜め込みバッファ１２への書き込みが適宜間引きされる。前述したような間引き信号生成回路の計数動作による計数結果に基づいて間引き制御信号が生成されるので、任意の周波数比に対して自動で周波数比を設定した上で、適切な間引き動作が可能となる。
【００４３】
ステップＳ１１において、システム構成を変更する要件が発生したか否かを判定する。システム構成を変更する要件が発生すると、ステップＳ１２において、ファーム等監視機構が、データ通信中断指示を行う。即ち、図１に示すシステム監視用マイクロプロセッサ１０が、制御回路１１、第１の回路１３、及び第２の回路１４に対して、データ通信を中断する指示を出す。ステップＳ１３において、システム構成を変更する。即ち、例えば第２の回路１４を別の回路に切り換えたり、第２の回路１４の動作周波数を異なる周波数に切り換えたりする。その後、ステップＳ１に戻り、システムの初期化を行い、以降の処理を繰り返す。
【００４４】
図８は、データ通信システムの別の一例を示す図である。図８のデータ通信システムは、システム監視用マイクロプロセッサ４０、クロスバー回路４１、システムボード（ＳＢ１，ＳＢ２）４２及び４３、及びＩＯユニット（ＩＯＵ０，ＩＯＵ１）４４及び４５を含む。クロスバー回路４１は、スイッチング回路５１及び周波数乗り換え回路５２乃至５５を含む。
【００４５】
クロスバー回路４１は、システムボード４２とシステムボード４３との間、システムボード４２及び４３とＩＯユニット４４及び４５との間のデータ通信のスイッチング制御を行う。即ち、相互にデータ通信を行う回路間に、クロスバー回路４１を介してデータ通信経路が確立される。クロスバー回路４１内のスイッチング回路５１の動作周波数と、システムボード４２及び４３並びにＩＯユニット４４及び４５の動作周波数とが異なるので、周波数乗り換え回路５２乃至５５により、動作周波数の差を吸収する。周波数乗り換え回路５２乃至５５では、接続する回路の実際の動作周波数に応じて、周波数比設定を行う。具体的には、周波数乗り換え回路５２乃至５５に図３に示した間引き信号生成回路１５を用いることにより、任意の周波数比に対して自動で周波数比を設定可能とする。
【００４６】
図８に示す例では、スイッチング回路５１の動作周波数が１．０ＧＨｚである。またシステムボード４２の動作周波数が１．０ＧＨｚ、システムボード４３の動作周波数が０．８ＧＨｚ、ＩＯユニット４４の動作周波数が０．４ＧＨｚ、ＩＯユニット４４の動作周波数が０．１ＧＨｚであり、それぞれポートｐｏｒｔ０〜３に接続される。
【００４７】
図９は、図８に示す周波数乗り換え回路の構成の一例を示す図である。図９において、図１と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図９のクロスバー回路４１では、図示の便宜上、４つの周波数乗り換え回路５２乃至５５のうち２つの周波数乗り換え回路５２及び５４のみを示している。
【００４８】
周波数乗り換え回路５２及び５４の各々は、溜め込みバッファ１２−１及び１２−２、間引き信号生成回路１５、書き込み制御回路１６、読み出し制御回路１７、ｗｐ伝送回路１８、及び有効数カウンタ１９を含む。溜め込みバッファ１２−１及び１２−２は、図１に示す溜め込みバッファ１２と同一の構成である。間引き信号生成回路１５、書き込み制御回路１６、読み出し制御回路１７、ｗｐ伝送回路１８、及び有効数カウンタ１９は、溜め込みバッファ１２−１に対する書き込み制御及び読み出し制御を行う回路である。溜め込みバッファ１２−２に対する書き込み制御及び読み出し制御を行う回路については、便宜上図示を省略するが、溜め込みバッファ１２−１に対する書き込み制御及び読み出し制御を行う回路と同一の構成であってよい。前述と同様の間引き信号生成回路による計数動作及び間引き制御信号生成動作を実行することにより、任意の周波数比に対して自動で周波数比を設定し、適切な間引き動作を実行することができる。
【００４９】
図１０は、図８に示すデータ通信システムの動作の一例を示すフローチャートである。ステップＳ２１乃至Ｓ３０は、図７に示すステップＳ１乃至Ｓ１０と同一であり、その説明を省略する。なおステップＳ３０での通常のデータ通信の実行中は、間引き制御信号生成動作が実行され、間引き制御信号ｓｔａｌｌにより、溜め込みバッファへの書き込みが適宜間引きされる。
【００５０】
ステップＳ３１において、システムボード及び／又はＩＯユニットを交換する要件が発生したか否かを判定する。システムボード又はＩＯユニットを交換する要件が発生すると、ステップＳ３２において、ファーム等監視機構が、データ通信中断指示を行う。即ち、図８に示すシステム監視用マイクロプロセッサ４０が、クロスバー回路４１、システムボード４２及び４３、ＩＯユニット４４及び４５に対して、データ通信を中断する指示を出す。なおこの際、交換する対象となるボード又はユニットに関連する機器に対してのみデータ通信の中断を指示し、それ以外の機器についてはデータ通信を続行してよい。ステップＳ３３において、システムボード及び／又はＩＯユニットを交換する。その後、ステップＳ２１に戻り、システムの初期化を行い、以降の処理を繰り返す。
【００５１】
図１１は、間引き信号生成回路１５の構成の変形例を示す。図１１において、図３と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。図１１に示す間引き信号生成回路１５は、図３に示す間引き信号生成回路１５に加え、更に比較回路３８及びＡＮＤ回路３９を含む。比較回路３８は、減算回路２６の出力である補正後の第２の計数値ｙがフリップフロップ２２の出力ｃｎｔ＿ａである第１の計数値ｘ以上であるか否かを判定する。比較回路３８は、第２の計数値ｙが第１の計数値ｘ以上である場合には、その出力を１にし、第２の計数値ｙが第１の計数値ｘ以上でない場合には、その出力を０にする。ＡＮＤ回路３９は、比較回路３８の出力の反転信号と比較回路３４の出力信号とのＡＮＤ演算を実行し、ＡＮＤ演算の結果を間引き制御信号ｓｔａｌｌとして出力する。従って、第２の計数値ｙが第１の計数値ｘ以上である場合には、間引き制御信号ｓｔａｌｌは０に固定となり、それ以外の場合には、図３の構成の場合と同様に求められる比較回路３４の出力である間引き制御信号ｓｔａｌｌがそのまま出力される。これにより、間引き信号生成回路１５と書き込み制御回路１６とにより、第２の計数値が第１の計数値以上である場合に溜め込みバッファ１２を常時書き込み可の状態とすることが可能となる。即ち、図１に示すデータ通信システムにおいて、第２の回路１４の動作周波数が第１の回路１３の動作周波数以上となった場合、溜め込みバッファ１２に対する間引き制御をやめて、溜め込みバッファ１２を常時書き込み可の状態にする。
【００５２】
図３の構成では、第１のクロック信号ｃｌｋ＿ａの周波数よりも第２のクロック信号ｃｌｋ＿ｂの周波数が高い場合、フリップフロップ２４の出力するカウント値ｓｔ＿ｃｎｔが際限なく増大していき、フリップフロップ２４がオーバーフローを起こしてしまう。このようにオーバーフローが起きると、比較回路３４の出力が１となり、間引き動作が行われてしまう。つまり、第１のクロック信号ｃｌｋ＿ａの周波数よりも第２のクロック信号ｃｌｋ＿ｂの周波数が高く、間引き動作が本来は不要であるにも関わらず、オーバーフローにより間引き動作が行われてしまう。それに対して図１１に示す構成では、第１のクロック信号ｃｌｋ＿ａの周波数よりも第２のクロック信号ｃｌｋ＿ｂの周波数が高い場合には、ＡＮＤ回路３９により間引き制御信号ｓｔａｌｌを０に固定してしまう。これにより、溜め込みバッファ１２に対する間引き制御が行われないようにしている。
【００５３】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００５４】
１０  システム監視用マイクロプロセッサ
１１  制御回路
１２  溜め込みバッファ
１３  第１の回路
１４  第２の回路
１５  間引き信号生成回路
１６  書き込み制御回路
１７  読み出し制御回路
１８  ｗｐ伝送回路
１９  有効数カウンタ
【図１】
2013076796.tif 000003
【図２】
2013076796.tif 000004
【図３】
2013076796.tif 000005
【図４】
2013076796.tif 000006
【図５】
2013076796.tif 000007
【図６】
2013076796.tif 000008
【図７】
2013076796.tif 000009
【図８】
2013076796.tif 000010
【図９】
2013076796.tif 000011
【図１０】
2013076796.tif 000012
【図１１】
2013076796.tif 000013
【国際調査報告】
2013076796.tif 000014
2013076796.tif 000015