(57)【特許請求の範囲】
【請求項１】
入力されるデータを格納する入力バッファメモリと、前記入力バッファメモリから読み出された前記データに係る処理を行う第１の処理部と、前記入力バッファメモリの使用率を監視する第１のバッファ監視部と、前記第１のバッファ監視部によって得られた前記入力バッファメモリの使用率に応じて前記入力バッファメモリおよび前記第１の処理部の動作周波数である第１の動作周波数を制御する第１の動作周波数制御部とを有する複数の入力ポートと、
前記複数の入力ポートのうちのいずれか一の入力ポートから出力されたデータを、複数の出力ポートの内、当該データの宛先に対応した出力ポートに出力するスイッチ部と、
前記スイッチ部から出力されたデータを格納する出力バッファメモリと、前記出力バッファメモリから読み出された前記データに係る処理を行う第２の処理部と、前記出力バッファメモリの使用率を監視する第２のバッファ監視部と、前記第２のバッファ監視部によって得られた前記出力バッファメモリの使用率に応じて前記出力バッファメモリおよび前記第２の処理部の動作周波数である第２の動作周波数を制御する第２の動作周波数制御部とを有する複数の出力ポートと、
を有するデータ転送装置。
【請求項２】
前記入力ポートが有する前記第１のバッファ監視部は、更に、当該入力ポートの前記入力バッファメモリが格納するデータの宛先に対応する、前記複数の出力ポートのうちの一又は複数の出力ポートが夫々有する出力バッファメモリの使用率を監視し、
当該入力ポートの前記第１の動作周波数制御部は、前記第１のバッファ監視部によって得られた、当該入力ポートの前記入力バッファメモリの使用率と、当該入力ポートの前記入力バッファメモリが格納するデータの宛先に対応する、前記複数の出力ポートのうちの一又は複数の出力ポートが有する出力バッファメモリの使用率とに応じて、当該入力ポートの前記第１の動作周波数を制御することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記入力ポートが有する前記第１の動作周波数制御部は、当該入力ポートの第１の動作周波数を、当該入力ポートが有する前記入力バッファメモリの使用率が第１のしきい値以下の場合或いは当該入力ポートの格納データに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率がいずれも第５のしきい値以上であり且つ前記第５のしきい値より大きい第６のしきい値以上の使用率を含む場合、第１の所定の周波数を第１の割合で減少させた周波数とし、前記入力バッファメモリの使用率が前記第１のしきい値を超えて第２のしきい値以下の場合或いは当該入力ポートの格納データに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率がいずれも前記第５のしきい値以上であり且つ前記第６のしきい値以上の使用率を含まない場合、前記第１の所定の周波数を前記第１の割合よりも小さい第２の割合で減少させた周波数とし、前記入力バッファメモリの使用率が第２のしきい値を超える場合或いは当該入力ポートに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率が前記第５のしきい値未満のものを含む場合、前記第１の所定の周波数とし、
前記出力ポートが有する前記第２の動作周波数制御部は、当該出力ポートの第２の動作周波数を、当該出力ポートが有する前記出力バッファメモリの使用率が第３のしきい値以下の場合、第２の所定の周波数を第３の割合で減少させた周波数とし、前記出力バッファメモリの使用率が前記第３のしきい値を超えて第４のしきい値以下の場合、前記第２の所定の周波数を前記第３の割合よりも小さい第４の割合で減少させた周波数とし、前記出力バッファメモリの使用率が第４のしきい値を超える場合、前記第２の所定の周波数とすることを特徴とする請求項２に記載のデータ転送装置。
【請求項４】
入力されるデータを格納する入力バッファメモリと、前記入力バッファメモリから読み出された前記データに係る処理を行う第１の処理部とを有する複数の入力ポートと、前記複数の入力ポートのうちのいずれか一の入力ポートから出力されたデータを、複数の出力ポートの内、当該データの宛先に対応した出力ポートに出力するスイッチ部と、前記スイッチ部から出力されたデータを格納する出力バッファメモリと、前記出力バッファメモリから読み出された前記データに係る処理を行う第２の処理部とを有する複数の出力ポートとを有するデータ転送装置の動作周波数制御方法であって、
前記入力ポートの前記入力バッファメモリの使用率を監視する第１の監視ステップと、
前記第１の監視ステップで得られた前記入力バッファメモリの使用率に応じて前記入力バッファメモリおよび前記第１の処理部の動作周波数である第１の動作周波数を制御する第１の制御ステップと、
前記出力ポートの前記出力バッファメモリの使用率を監視する第２の監視ステップと、
前記第２の監視するステップで得られた前記出力バッファメモリの使用率に応じて前記出力バッファメモリおよび前記第２の処理部の動作周波数である第２の動作周波数を制御する第２の制御ステップとを有する、データ転送装置の動作周波数制御方法。
【請求項５】
前記第１の監視ステップでは、更に、前記入力ポートの前記入力バッファメモリが格納するデータの宛先に対応する、前記複数の出力ポートのうちの一又は複数の出力ポートが夫々有する出力バッファメモリの使用率を監視し、
前記第１の制御ステップでは、前記第１の監視ステップにて得られた、前記入力ポートの前記入力バッファメモリの使用率と、前記入力ポートの前記入力バッファメモリが格納するデータの宛先に対応する、前記複数の出力ポートのうちの一又は複数の出力ポートが有する出力バッファメモリの使用率とに応じて、前記入力ポートの前記第１の動作周波数を制御することを特徴とする請求項４に記載のデータ転送装置の動作周波数制御方法。
【請求項６】
前記第１の制御ステップでは、前記入力ポートの第１の動作周波数を、当該入力ポートが有する前記入力バッファメモリの使用率が第１のしきい値以下の場合或いは当該入力ポートの格納データに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率がいずれも第５のしきい値以上であり且つ前記第５のしきい値より大きい第６のしきい値以上のものを含む場合、第１の所定の周波数を第１の割合で減少させた周波数とし、前記入力バッファメモリの使用率が前記第１のしきい値を超えて第２のしきい値以下の場合或いは当該入力ポートの格納データに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率がいずれも前記第５のしきい値以上であり且つ前記第６のしきい値以上のものを含まない場合、前記第１の所定の周波数を前記第１の割合よりも小さい第２の割合で減少させた周波数とし、前記入力バッファメモリの使用率が第２のしきい値を超える場合或いは当該入力ポートに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率が前記第５のしきい値未満のものを含む場合、前記第１の所定の周波数とし、
前記第２の制御ステップでは、前記出力ポートの第２の動作周波数を、当該出力ポートが有する前記出力バッファメモリの使用率が第３のしきい値以下の場合、第２の所定の周波数を第３の割合で減少させた周波数とし、前記出力バッファメモリの使用率が前記第３のしきい値を超えて第４のしきい値以下の場合、前記第２の所定の周波数を前記第３の割合よりも小さい第４の割合で減少させた周波数とし、前記出力バッファメモリの使用率が第４のしきい値を超える場合、前記第２の所定の周波数とすることを特徴とする請求項５に記載のデータ転送装置の動作周波数制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置及びデータ転送装置の動作周波数制御方法に関する。
【背景技術】
【０００２】
データ転送装置において、前段のバッファメモリおよび後段のバッファメモリの各々の使用量に応じて上記前後段のバッファメモリの間のデータ処理装置のスループットを制御するデータ転送装置が提案されている。
【０００３】
またパケット転送装置において、端末間でやり取りされる情報を基に、使用される帯域を予測し、転送性能を増減させることで省電力を実現するパケット転送装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−４２６５４号公報
【特許文献２】特開２００９−１４７６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
１つの側面では、データ転送装置において省電力を実現することを目的とする。
【課題を解決するための手段】
【０００６】
データ転送装置は、複数の入力ポートと、複数の出力ポートと、スイッチ部とを有する。複数の入力ポートのうちの少なくとも一の入力ポートは、入力されるデータを格納する入力バッファメモリと、入力バッファメモリから読み出されたデータに係る処理を行う第１の処理部とを有する。また当該一の入力ポートは更に、入力バッファメモリの使用率を監視する第１のバッファ監視部を有する。当該一の入力ポートは更に、第１のバッファ監視部によって得られた入力バッファメモリの使用率に応じて入力バッファメモリおよび第１の処理部の動作周波数である第１の動作周波数を制御する第１の動作周波数制御部を有する。
【０００７】
スイッチ部は、複数の入力ポートのうちのいずれか一のものから出力されたデータを、複数の出力ポートの内、当該データの宛先に対応した出力ポートに出力する。
【０００８】
複数の出力ポートのうちの少なくとも一の出力ポートは、スイッチ部から出力されたデータを格納する出力バッファメモリと、出力バッファメモリからデータに係る処理を行う第２の処理部とを有する。当該一の出力ポートは更に、出力バッファメモリの使用率を監視する第２のバッファ監視部と、第２の動作周波数制御部とを有する。第２の動作周波数制御部は、第２のバッファ監視部によって得られた出力バッファメモリの使用率に応じて出力バッファメモリおよび第２の処理部の動作周波数である第２の動作周波数を制御する。
【発明の効果】
【０００９】
データ転送装置において省電力を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例によるデータ転送装置のブロック図である。
【図２】図１に示す同期回路の回路例を示す回路図である。
【図３】図１に示すデータ転送装置において適用可能なクロックゲーティングによる動作周波数の変更の方法について説明するための回路図である。
【図４】図１に示すデータ転送装置において適用可能なバッファメモリの使用率に応じた動作周波数の制御方法（その１）について説明するための図である。
【図５】図１に示すデータ転送装置において適用可能なバッファメモリの使用率に応じた動作周波数の制御方法（その２）について説明するための図である。
【図６】図１に示すデータ転送装置において適用可能な輻輳情報を使用した動作周波数の制御方法について説明するための図である。
【図７】図１に示すデータ転送装置において適用可能なクロスバアービトレーションウィンドウについて説明するための図である。
【図８】図１に示すデータ転送装置において適用可能な動作周波数の制御方法（出力ポート）について説明するためのフローチャートである。
【図９】図１に示すデータ転送装置において適用可能な動作周波数の制御方法（入力ポート）について説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下に本発明の実施例の説明を行う。
【実施例１】
【００１２】
以下に図１乃至５とともに本発明の実施例１の説明を行う。
【００１３】
図１は本発明の実施例１に係る、ネットワークスイッチ或いはルータとしてのデータ転送装置１００のブロック図を示す。当該データ転送装置１００は例えばＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）の形態を有する。
【００１４】
当該データ転送装置１００は、外部の通信網からデータ（例えばフレーム、以下同様）が入力される複数（図１の例の場合、Ｎ個）の入力ポート１０−１〜１０−Ｎを有する。当該Ｎ個の入力ポート１０−１〜１０−Ｎは、例えば外部の通信網が有する相異なるＮ個の通信回線に夫々接続される。当該Ｎ個の入力ポート１０−１〜１０−Ｎと外部の通信網との間にはパラレル−シリアル変換およびシリアル−パラレル変換回路（以下単にＰＨＹ回路と称する）５−１〜５−Ｎが設けられている。パラレル−シリアル変換およびシリアル−パラレル変換器５−１〜５−Ｎは、例えば外部の通信網から高速のシリアル転送方式（例えば１０［Ｇｂ／ｓ］）で転送されてきたデータをパラレル転送方式（例えば３１２．５［ＭＨｚ］）のデータ形式に変換して入力ポート１０−１〜１０−Ｎに夫々渡す。
【００１５】
当該データ転送装置１００はまた、外部の通信網へデータを送出する複数（図１の例の場合、Ｍ個）の出力ポート２０−１〜２０−Ｍを有する。当該Ｍ個の出力ポート２０−１〜２０−Ｍは、例えば外部の通信網が有する相異なるＭ個の通信回線に夫々接続される。当該Ｍ個の出力ポート２０−１〜２０−Ｍと外部の通信網との間にはパラレル−シリアル変換およびシリアル−パラレル変換回路（以下単にＰＨＹ回路と称する）３５−１〜３５−Ｍが設けられている。パラレル−シリアル変換およびシリアル−パラレル変換器３５−１〜３５−Ｍは、例えば当該データ転送装置１００内部のデータ形式がパラレル転送方式（上記の例では３１２．５［ＭＨｚ］）のデータ形式であった場合、当該パラレル転送方式のデータ形式を高速のシリアル転送方式（上記の例では１０［Ｇｂ／ｓ］）のデータに変換して外部の通信網に送出する。
【００１６】
Ｎ個の入力ポート１０−１〜１０−ＮとＭ個の出力ポート２０−１〜２０−Ｍとの間はクロスバ回路（スイッチ部の一例）３０で接続される。クロスバ回路３０はＮ個の入力ポート１０−１〜１０−Ｎのいずれかの入力ポートから出力されるデータを、当該データの宛先に対応した、Ｍ個の出力ポート２０−１〜２０−Ｍのうちのいずれかの出力ポートに入力する。ここで上記データの宛先に対応する出力ポートとは、当該データの宛先に当該データが届く通信経路に沿う通信回線に接続された出力ポートを意味し、上記通信経路は経路制御によって決定される。
【００１７】
次に、Ｎ個の入力ポート１０−１〜１０−Ｎに含まれる各入力ポート（以下単に「入力ポート１０」と称する場合がある）の構成について述べる。
【００１８】
入力ポート１０は、宛先問合せ部１１，入力バッファメモリ１２，論理部（第１の処理部の一例）１３，バッファ監視部（第１のバッファ監視部の一例）１４、クロック制御部（第１の動作周波数制御部の一例）１５および同期回路１６を有する。宛先問合せ部１１は、当該入力ポート１０に入力されたデータのヘッダ部から当該データの宛先情報を取得する。
【００１９】
入力バッファメモリ１２は当該入力ポート１０に入力されたデータを順次格納する。論理部１３は、ＡＣＬ（Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）などによるパケット処理を行う。尚、ＡＣＬとは、ＩＰアドレスやポート番号などを指定してパケット通信の可否を設定する機能、又はその対応テーブルをいう。
【００２０】
同期回路１６は、データが２つの相異なるクロックドメインを跨いで転送される際、当該データの状態を、第１のクロックドメイン内の第１のクロック信号に同期した状態から、第２のクロックドメイン内の第２のクロック信号に同期した状態へと遷移させる。ここで当該入力ポート１０の論理部１３が属するクロックドメイン１７が上記第１のクロックドメインである。また当該入力ポート１０から出力されたデータを処理するクロスバ回路３０内のクロックドメインが上記第２のクロックドメインである。尚、クロックドメインとは、ある特定のクロック信号により駆動される回路領域（部分回路）を指す。図２とともに、同期回路１６の回路例について説明する。
【００２１】
図２に示す如く、同期回路１６は、例えば相互に直列接続された３個のフリップフロップＦＦ１，ＦＦ２，ＦＦ３を有する。フリップフロップＦＦ１は第１のクロックドメイン（クロックドメインＡ）に属し、フリップフロップＦＦ２，ＦＦ３は、第２のクロックドメイン（クロックドメインＢ）に属する。フリップフロップＦＦ１はクロックドメインＡの第１のクロック信号（クロックＡ）で駆動され、フリップフロップＦＦ２、ＦＦ３はクロックドメインＢの第２のクロック信号（クロックＢ）で駆動される。ここで受信側のクロックドメインＢにおいて２個のフリップフロップＦＦ２，ＦＦ３の直列回路を設けるのは以下の理由による。すなわち、１個目のフリップフロップＦＦ２において、いわゆるメタステーブル状態が発生し、受信信号が不安定となった場合でも、当該受信信号を更に２個目のフリップフロップＦＦ３に通すことによって安定した受信信号を得ることができる。ここでメタステーブル状態とは、異なるクロックドメインの信号を受信する際、受信側のフリップフロップのセットアップタイム及びホールドタイムの関係上、受信信号が不安定になる状態を言う。
【００２２】
バッファ監視部１４は、入力バッファメモリ１２の現在の使用率を取得する。入力バッファメモリ１２の現在の使用率とは、入力バッファメモリ１２が有する全記憶容量に対する、データの格納によって当該入力バッファメモリ１２が現在使用されている部分の割合を言う。例えば全記憶容量の半分がデータの格納によって使用されている場合、入力バッファメモリ１２の使用率は５０％であり、全記憶容量の７５％がデータの格納によって使用されている場合、入力バッファメモリ１２の使用率は７５％である。
【００２３】
クロック制御部１５は、バッファ監視部１４によって得られた入力バッファメモリ１２の現在の使用率に応じて入力バッファメモリ１２および論理部１３の動作周波数を制御する。ここで入力ポート１０において、入力バッファメモリ１２および論理部１３は同一のクロックドメイン１７に属する。すなわち入力バッファメモリ１２および論理部１３は同一のクロック信号によって駆動される。したがって入力バッファメモリ１２および論理部１３の動作周波数は当該クロック信号の周波数を意味する。
【００２４】
次に、Ｍ個の出力ポート２０−１〜２０−Ｍに含まれる各出力ポート（以下単に「出力ポート２０」と称する場合がある）の構成について述べる。出力ポート２０は、出力バッファメモリ２２，論理部（第２の処理部）２３，バッファ監視部（第２のバッファ監視部）２４、クロック制御部（第２の動作周波数制御部）２５および同期回路２６を有する。
【００２５】
出力バッファメモリ２２はクロスバ回路３０から当該出力ポート２０に入力されたデータを順次格納する。論理部２３は出力バッファメモリ２２に格納されたデータの当該出力ポート２０からの送出に関し、フロー制御を行う。フロー制御では、例えばデータの受信側のデバイスの処理能力が追いつけなくなった際に当該受信側のデバイスが送信側の当該データ転送装置１００に指示を出し、論理部２３はこれを受けてデータの送出を一時中断し、データ転送速度が適切になるように調整する。
【００２６】
同期回路２６は上記同期回路１６同様の構成を有し、当該出力ポート２０の出力バッファメモリ２２および論理部１３が属するクロックドメイン２７が上記第１のクロックドメインである。また、出力バッファメモリ２２から取り出され、論理部２３を経て当該出力ポート２０から送出されるデータを処理するＰＨＹ回路３５−１乃至３５−Ｍのうちの該当するものが属するクロックドメインが上記第２のクロックドメインである。
【００２７】
バッファ監視部２４は、出力バッファメモリ２２の現在の使用率を取得する。出力バッファメモリ２２の現在の使用率とは、出力バッファメモリ２２が有する全記憶容量に対する、データの格納によって当該出力バッファメモリ２２が現在使用されている部分の割合を言う。例えば全記憶容量の半分がデータの格納によって使用されている場合、出力バッファメモリ２２の使用率は５０％であり、全記憶容量の７５％がデータの格納によって使用されている場合、出力バッファメモリ２２の使用率は７５％である。
【００２８】
クロック制御部２５は、バッファ監視部２４によって得られた出力バッファメモリ２２の現在の使用率に応じて出力バッファメモリ２２および論理部２３の動作周波数を制御する。ここで出力ポート２０において、出力バッファメモリ２２および論理部２３は同一のクロックドメイン２７に属する。すなわち出力バッファメモリ２２および論理部２３は同一のクロック信号によって駆動される。したがって出力バッファメモリ２２および論理部２３の動作周波数は当該クロック信号の周波数を意味する。
【００２９】
次に図３とともに、入力ポート１０の入力バッファメモリ１２および論理部１３の動作周波数の制御方法、および出力ポート２０の出力バッファメモリ２２および論理部２３の動作周波数の制御方法について説明する。
【００３０】
入力ポート１０および出力ポート２０の各々では、入力バッファメモリ１２或いは出力バッファメモリ２２および論理部１３または２３内の各半導体素子に対し、クロックツリーによってクロック信号が分配される。クロックツリーは図３に示す如く、クロックバッファＢ２〜Ｂ１１等を含む。その結果、当該クロック信号により、入力バッファメモリ１２或いは出力バッファメモリ２２および論理部１３または２３が駆動される。
【００３１】
次に、当該クロックツリーへのクロック信号の供給について説明する。図１とともに上述したデータ転送装置１００に対し、外部からクロック信号が供給され、当該クロック信号は図３に示されるＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）４０に入力される。当該ＰＬＬ４０はデータ転送装置１００内において、ＰＨＹ回路５−１〜５−Ｎ，入力ポート１０−１〜１０−Ｎ，クロスバ回路３０、出力ポート２０−１〜２０−Ｍ、ＰＨＹ回路３５−１〜３５−Ｍとは別個に設けられる。ＰＬＬ４０は上記外部から供給されたクロック信号を使用して当該データ転送装置１００の内部に供給するクロック信号を生成する。当該生成されたクロック信号は、入力ポート１０−１〜１０−Ｎ，クロスバ回路３０、出力ポート２０−１〜２０−Ｍ、ＰＨＹ回路３５−１〜３５−Ｍに夫々供給される。
【００３２】
図３に示すように、入力ポート１０および出力ポート２０は各々クロックバッファＢ１およびアンド（論理積）回路Ａ１を有し、ＰＬＬ４０から供給されたクロック信号ＣＬＫは当該クロックバッファＢ１を経由し、アンド回路Ａ１に入力される。またアンド回路Ａ１の他の入力として、イネーブル信号ＥＮがクロック制御部１５または２５から入力される。その結果、アンド回路Ａ１に入力されるクロック信号ＣＬＫは、イネーブル信号ＥＮがアサートされている間、当該アンド回路Ａ１を通過して上記クロックツリーに出力される．他方、イネーブル信号ＥＮがネゲートされている間、アンド回路Ａ１に入力されるクロック信号ＣＬＫは当該アンド回路Ａ１を通過せず、遮断される。
【００３３】
そこでクロック制御部１５または２５はイネーブル信号ＥＮを周期的にネゲートすることにより、ＰＬＬ４０から供給されるクロック信号ＣＬＫから周期的にクロックパルスを間引く。その結果クロック信号ＣＬＫの周波数が減少され、当該周波数が減少されたクロック信号が上記クロックツリーによって入力バッファメモリ１２または出力バッファメモリ２２および論理部１３または２３に供給される。上記クロック信号の周波数の減少により、入力バッファメモリ１２または出力バッファメモリ２２および論理部１３または２３の動作周波数が減少し、入力バッファメモリ１２または出力バッファメモリ２２および論理部１３または２３による消費電力が減少する。その結果、入力ポート１０或いは出力ポート２０の省電力を図ることができる。尚、このようにクロック信号の供給路にゲート回路（図３の例の場合、アンド回路Ａ１）を挿入し、当該ゲート回路以降の回路領域へのクロックパルスを遮断したり通過させたりする方法をクロックゲーティング方式と称する場合がある。
【００３４】
次に図４とともに、入力ポート１０或いは出力ポート２０における動作周波数制御の数値例について説明する。図４は、入力バッファメモリ１２または出力バッファメモリ２２を模式化して示す。また図４では説明の便宜上、入力バッファメモリ１２または出力バッファメモリ２２の全記憶容量を８分割（０〜７）して示す。そして、入力バッファメモリ１２または出力バッファメモリ２２の使用率のしきい値として、ＴＨ１（第２或いは第４のしきい値），ＴＨ２（第１或いは第３のしきい値）を設ける。ここでＴＨ１はＴＨ２より大きい。しきい値ＴＨ１は入力バッファメモリ１２または出力バッファメモリ２２の使用率＝３／４（＝６／８＝０．７５）に対応する。他方、しきい値ＴＨ２は入力バッファメモリ１２または出力バッファメモリ２２の使用率＝１／２（＝４／８＝０．５）に対応する。
【００３５】
そして図４に示される如く、例えば図３とともに上述した動作周波数の制御方法によって、動作周波数が制御される。すなわち、入力バッファメモリ１２の使用率（Ｒ）がしきい値ＴＨ２以下の場合（Ｒ≦ＴＨ２）、当該入力ポート１０のクロック制御部１５は、クロックドメイン１７内の動作周波数を、ＰＬＬ４０から供給されたクロック信号ＣＬＫの周波数の１／４（第１の割合）に減少させる。入力バッファメモリ１２の使用率がしきい値ＴＨ２を超えてしきい値ＴＨ１以下の場合（ＴＨ２＜Ｒ≦ＴＨ１）、当該入力ポート１０のクロック制御部１５は、クロックドメイン１７内の動作周波数を、上記クロック信号ＣＬＫの周波数の１／２（第２の割合）に減少させる。第１の割合は第２の割合より大きい。更に、入力バッファメモリ１２の使用率がしきい値ＴＨ１を超える場合（ＴＨ１＜Ｒ）、当該入力ポート１０のクロック制御部１５は、クロックドメイン１７内の動作周波数として、上記クロック信号ＣＬＫの周波数を減少させず、上記クロック信号ＣＬＫをそのまま（１／１）適用する。
【００３６】
出力バッファメモリ２２の使用率がしきい値ＴＨ２以下の場合（Ｒ≦ＴＨ２）、当該出力ポート２０のクロック制御部２５は、クロックドメイン２７内の動作周波数を、ＰＬＬ４０から供給されたクロック信号ＣＬＫの周波数の１／４（第３の割合）に減少させる。同様に出力バッファメモリ２２の使用率がしきい値ＴＨ２を超えてしきい値ＴＨ１以下の場合（ＴＨ２＜Ｒ≦ＴＨ１）、当該出力ポート２０のクロック制御部２５は、クロックドメイン２７内の動作周波数を、上記クロック信号ＣＬＫの周波数の１／２（第４の割合）に減少させる。第３の割合は第４の割合より大きい。更に、出力バッファメモリ２２の使用率がしきい値ＴＨ１を超える場合（ＴＨ１＜Ｒ）、当該出力ポート２０のクロック制御部２５は、クロックドメイン２７内の動作周波数として、上記クロック信号ＣＬＫの周波数を減少させず、上記クロック信号ＣＬＫをそのまま（１／１）適用する。
【００３７】
尚、データ転送装置１００では、図４とともに上述した、入力バッファメモリ１２または出力バッファメモリ２２の使用率に応じて動作周波数を制御する「省電力モード」の適用の有無を設定可能とし得る。この目的のため、クロック制御部１５および２５の各々は、例えば１ビットの第１のレジスタ（図示を省略）を有することができる。またクロック制御部１５および２５の各々は、上記の如く記憶容量を８分割した入力バッファメモリ１２または出力バッファメモリ２２の使用率のしきい値ＴＨ１，ＴＨ２を夫々指定する第２のレジスタとして各３ビットのレジスタを有することができる。当該３ビットとすることによって、上記８分割した記憶容量の使用率を示す０〜７の計８通りの数値を指定することができる。更に、クロック制御部１５および２５の各々は、動作周波数の減少の割合（分周比）を指定する第３のレジスタとして、２ビットのレジスタを有することができる。例えば、当該２ビットにより０〜３の計４通りの数値を指定し得、これらのうち、０により上記減少割合１／１を、１により上記減少割合１／２を、２により上記減少割合１／４を指定することができ、３段階の設定を行うことができる。
【００３８】
次に図５とともに、実施例１の変形例について説明する。当該変形例では、入力バッファメモリ１２または出力バッファメモリ２２を複数に分割し、当該分割された各部分の使用率に応じた動作周波数の制御を行う。他の構成は実施例１と同様であり、重複する説明を省略する。
【００３９】
上記入力バッファメモリ１２または出力バッファメモリ２２の分割は、以下の通りに行う。一例として、入力バッファメモリ１２の場合であれば、当該入力バッファメモリ１２に格納されるデータの宛先に対応する出力ポート２０−１〜２０−Ｍをグループ分けし、当該グループ別に入力バッファメモリ１２を分割（例えば２分割）する。同様に出力バッファメモリ２２の場合であれば、当該出力バッファメモリ２２に格納されるデータを出力する入力ポート１０−１〜１０−Ｎをグループ分けし、当該グループ別に出力バッファメモリ２２を分割（例えば２分割）する。また他の例として、データが優先度を有する場合、優先度毎に入力バッファメモリ１２および出力バッファメモリ２２の各々を分割する。
【００４０】
図５は、入力バッファメモリおよび出力バッファメモリ２２の各々を上記の如くデータの優先度毎に分割する場合について示す。入力バッファメモリおよび出力バッファメモリ２２の各々はその全記憶容量が図示の如く８分割（０〜７）され、そのうち、０〜３の領域が優先度１のデータを格納する部分Ｆ１とされ、４〜７の領域が優先度２のデータを格納する部分Ｆ２とされる。
【００４１】
この場合、当該入力ポート１０および出力ポート２０の論理部１３および２３並びに同期回路１６および２６を、入力バッファメモリ１２および出力バッファメモリ２２同様、夫々部分Ｆ１のデータを処理する部分と部分Ｆ２のデータを処理する部分とに分割してもよい。その場合、当該入力ポート１０および出力ポート２０のクロック制御部１５および２５は、部分Ｆ１の使用率に応じて、当該入力ポート１０および出力ポート２０のクロックドメイン１７および２７中、当該部分Ｆ１のデータを処理する部分の動作周波数を制御する。同様に当該入力ポート１０および出力ポート２０のクロック制御部１５および２５は、部分Ｆ２の使用率に応じて、当該入力ポート１０および出力ポート２０のクロックドメイン１７および２７中、当該部分Ｆ２のデータを処理する部分の動作周波数を制御する。この場合、使用するレジスタとして、上記第１のレジスタ以外の第２、第３のレジスタは、入力バッファメモリ１２および出力バッファメモリ２２の各々につき、上記分割数に応じた数設ける。すなわち２分割の際には第２，第３のレジスタを２セット設ける。
【００４２】
或いは当該入力ポート１０および出力ポート２０の論理部１３および２３並びに同期回路１６および２６が、部分Ｆ１、Ｆ２の両方の部分のデータを共通して処理するようにしても良い。その場合、当該入力ポート１０および出力ポート２０のクロック制御部１５および２５は、部分Ｆ１およびＦ２のうちの何れか一方の使用率に応じて当該入力ポート１０および出力ポート２０のクロックドメイン１７および２７の動作周波数を制御する。上記部分Ｆ１およびＦ２のうちの何れか一方のみを、設定可能としても良い。またこの場合、第２，第３のレジスタを各々１セット設け、分割された２つの部分につき、共有とすることができる。
【００４３】
また図５に示すように、部分Ｆ１では、データが０〜３まで格納された場合（使用率＝１００％）、上記動作周波数として、上記クロック信号ＣＬＫの周波数をそのまま減少させずに適用する。データが０〜２まで格納された場合（使用率＝７５％）、上記動作周波数として、上記クロック信号ＣＬＫの周波数の１／２に減少させたものを適用する。データが０〜１まで格納された場合（使用率＝５０％）、上記動作周波数として、上記クロック信号ＣＬＫの周波数の１／４に減少させたものを適用する。同様に部分Ｆ２では、データが４〜７まで格納された場合（使用率＝１００％）、上記動作周波数として、上記クロック信号ＣＬＫの周波数をそのまま減少させずに適用する。データが４〜６まで格納された場合（使用率＝７５％）、上記動作周波数として、上記クロック信号ＣＬＫの周波数の１／２に減少させたものを適用する。データが４〜５まで格納された場合（使用率＝５０％）、上記動作周波数として、上記クロック信号ＣＬＫの周波数の１／４に減少させたものを適用する。
【００４４】
これまで図５とともに入力バッファメモリ１２および出力バッファメモリ２２をデータの優先度別に分割した場合における、バッファメモリの使用率に応じた動作周波数の制御方法について説明した。ここで、上記の如くデータの宛先の出力ポートのグループ別に入力バッファメモリ１２を分割する場合も、図５とともに上述した方法と同様の方法によってバッファメモリの使用率に応じた動作周波数の制御を行うことができる。同様に、上記の如くデータを出力する入力ポートのグループ別に出力バッファメモリ２２を分割する場合も、図５とともに上述した方法と同様の方法によってバッファメモリの使用率に応じた動作周波数の制御を行うことができる。
【００４５】
このように本発明の実施例１によれば、入力ポート１０および出力ポート２０の各々において、自己の入力バッファメモリ１２または出力バッファメモリ２２の使用率が低いほど、動作周波数をより大きな割合で減少させる。その結果、効果的に省電力が図れる。他方、入力バッファメモリ１２または出力バッファメモリ２２の使用率が高いほど、動作周波数をより小さな割合で減少させ、或いは減少させない。その結果、入力バッファメモリ１２または出力バッファメモリ２２の使用率が高い状態で動作周波数を大きく減少させた結果入力バッファメモリ１２または出力バッファメモリ２２の使用率が１００％となり当該入力ポート１０または出力ポートへの入力ができなくなるような事態の発生を遅くすることができる。
【実施例２】
【００４６】
以下に図６乃至９とともに本発明の実施例２について説明を行う。
【００４７】
実施例２によるデータ転送装置は図１乃至５とともに上述した実施例１によるデータ転送装置と同様の構成を有するため、実施例１と相違する点についての説明を行い、実施例１と同様な点についての重複する説明を適宜省略する。
【００４８】
実施例２では、各入力ポート１０のクロックドメイン１７内の動作周波数の制御に当たり、当該入力ポートの入力バッファメモリ１２の使用率のみではなく、出力ポート２０の出力バッファメモリ２２の使用率も考慮に入れて行う。すなわち、当該入力バッファ１２に格納されたデータの宛先に対応する出力ポート２０の出力バッファメモリ２２の使用率が高い場合には、適宜当該入力ポート１０のクロックドメイン１７内の動作周波数を減少させて省電力の実現を図る。
【００４９】
ここでは、出力ポート２０から送出されるデータ量に比して入力ポート１０から出力ポート２０に入力されるデータ量が多い場合（いわゆる輻輳の発生）を想定する。このような場合、出力バッファメモリ２２の使用率が１００％となり、以後当該出力バッファメモリ２２に空きが生ずる迄の間、当該出力ポート２０に対し入力ポート１０からデータの入力を行うことができない事態が生じ得る。
【００５０】
そこで実施例２では上記の如く、入力バッファメモリ１２に格納されたデータの宛先に対応する出力ポート２０の出力バッファメモリ２２の使用率が高い場合には、適宜当該入力ポート１０のクロックドメイン１７内の動作周波数を減少させる。その結果当該入力ポート１０から出力されるデータ量が減少し、当該入力ポート１０の入力バッファメモリ１２に格納された、当該出力ポート２０に対応する宛先を有するデータが当該出力ポートに入力されるタイミングが遅くなる。その結果当該出力ポート２０に入力されるデータ量が減少し、上記の如くの事態、すなわち当該出力ポート２０の出力バッファメモリ２２の使用率が１００％となり以後当該出力ポート２０にデータを入力できない事態を回避することができる。このように実施例２によれば、輻輳時に適宜入力ポート１０のクロックドメイン１７内の動作周波数を減少させることで、省電力を実現するとともに出力バッファメモリ２２の使用率が１００％となり以後当該出力ポート２０がデータを入力できなくなる事態を回避する。
【００５１】
図６は実施例２によるデータ転送装置１００において適用可能な、上記輻輳時に入力ポート１０のクロックドメイン１７内の動作周波数を減少させる制御を行う構成について説明するための図である。尚、説明の便宜上、図６、図７および以下の説明において、「データの宛先に対応する出力ポート」を単に「宛先ポート」或いは「宛先」等と称する場合がある。
【００５２】
図６の構成の場合、各入力ポート１０のクロック制御部１５は、アンド（論理積）回路Ａ１０，Ａ１１，Ａ１２，Ａ１３、オア（論理和）回路Ｏ１１，アンド回路Ａ２０，Ａ２１，Ａ２２，Ａ２３、オア（論理和）回路Ｏ２１、およびアンド回路Ａ３１、オア回路Ｏ３１を有する。尚、ここでは説明の便宜上、当該データ転送装置１００は出力ポート２０を４個有するものとし、夫々出力ポート０〜３と称する。
【００５３】
アンド回路Ａ１０には、出力ポート０からの輻輳情報と、当該入力ポート１０が有する入力バッファメモリ１２中、１番目の格納領域１２−１における、宛先が出力ポート０に対応するデータの格納状態を示す情報とが入力される。尚、図６の例の場合、説明の便宜上、入力バッファメモリ１２は１２−１〜１２−６の計６個の格納領域を有し、入力ポート１０に入力されるデータは、その入力の早い順に、順次格納領域１２−１〜１２−６に格納されるものとする。そして入力バッファメモリ１２からデータが出力されて格納領域に空きが生ずると、残ったデータは相互の順番を維持した状態で、当該格納領域の空きを埋めるように、常に前方に詰められるものとする。ここで前方とは１２−１の側を意味し、図６の場合、下方向が前方である。したがって図６の場合、入力バッファメモリ１２は下から上に向かってデータが格納され、当該入力ポート１０への入力が早いデータほど下側に格納される。
【００５４】
また上記出力ポート０からの輻輳情報とは、出力ポート０が有する出力バッファメモリ２２の使用率を示す。例えば当該出力バッファメモリ２２の使用率（Ｒ）が７５％以上の場合（０．７５≦Ｒ）を重度の輻輳状態、使用率が７５％未満５０％以上の場合（０．５≦Ｒ＜０．７５）を軽度の輻輳状態、使用率が５０％未満の場合（Ｒ＜０．５）を輻輳無しの状態、と夫々定義する。ここで上記７５％（図９中、ｖ％）は第６のしきい値に対応し、５０％（同ｗ％）は第５のしきい値に対応する。また図６に示す如く、上記輻輳情報は、上記輻輳無しの状態では“０”、軽度の輻輳状態では“１”、重度の輻輳状態では“３”の値を、夫々有する。また当該輻輳情報は２ビットを有し、上記輻輳無しの状態では“０”（２進数で“００”とする）、軽度の輻輳状態では“１”（同“０１”とする）、重度の輻輳状態では“３”（同“１１”とする）の値を、夫々有する。
【００５５】
また上記宛先が出力ポート０に対応するデータの格納状態を示す情報とは、当該格納領域に宛先が出力ポート０に対応するデータが格納されている場合“１”、格納されていない場合“０”の値を、夫々有するものとする。
【００５６】
したがってこの場合、アンド回路Ａ１０は以下の出力を行う。すなわち入力バッファメモリ１２中、１番目（１２−１）に格納されたデータが、宛先が出力ポート０に対応するデータを含み、かつ、出力ポート０の出力バッファメモリ２２の使用率が７５％以上の場合（０．７５≦Ｒ）、“３”（＝１１）を出力する。同様に入力バッファメモリ１２中、１番目（１２−１）に格納されたデータが、宛先が出力ポート０に対応するデータを含み、かつ、出力ポート０の出力バッファメモリ２２の使用率が７５％未満５０％以上の場合（０．５≦Ｒ＜０．７５）、“１”（＝０１）を出力する。同様に入力バッファメモリ１２中、１番目（１２−１）に格納されたデータが、宛先が出力ポート０に対応するデータを含み、かつ、出力ポート０の出力バッファメモリ２２の使用率が５０％未満の場合（Ｒ＜０．５）、“０”（＝００）を出力する。また入力バッファメモリ１２中、１番目（１２−１）に格納されたデータが、宛先が出力ポート０に対応するデータを含まない場合、“０”（＝００）を出力する。
【００５７】
すなわちアンド回路Ａ１０は、入力バッファメモリ１２中、１番前（１２−１）に格納されたデータの宛先が出力ポート０に対応する場合に、出力ポート０の出力バッファメモリ２２の使用率に応じた値を出力する。出力バッファメモリ２２の使用率に応じた値とは、重度の輻輳状態（０．７５≦Ｒ）では“３”、軽度の輻輳状態（０．５≦Ｒ＜０．７５）では“１”、輻輳無しの状態（Ｒ＜０．５）では“０”である。他方、入力バッファメモリ１２中、１番前（１２−１）に格納されたデータの宛先が出力ポート０に対応しない場合には、“０”を出力する。
【００５８】
同様にアンド回路Ａ１１は、入力バッファメモリ１２中、１番前（１２−１）に格納されたデータの宛先が出力ポート１に対応する場合に、出力ポート１の出力バッファメモリ２２の使用率に応じた値を出力する。出力バッファメモリ２２の使用率に応じた値は上記と同様である。他方、入力バッファメモリ１２中、１番前（１２−１）に格納されたデータの宛先が出力ポート１に対応しない場合には、“０”を出力する。
【００５９】
同様にアンド回路Ａ１２は、入力バッファメモリ１２中、１番前（１２−１）に格納されたデータの宛先が出力ポート２に対応する場合に、出力ポート２の出力バッファメモリ２２の使用率に応じた値を出力する。出力バッファメモリ２２の使用率に応じた値は上記と同様である。他方、入力バッファメモリ１２中、１番前（１２−１）に格納されたデータの宛先が出力ポート２に対応しない場合には、“０”を出力する。
【００６０】
同様にアンド回路Ａ１３は、入力バッファメモリ１２中、１番前（１２−１）に格納されたデータの宛先が出力ポート３に対応する場合に、出力ポート３の出力バッファメモリ２２の使用率に応じた値を出力する。出力バッファメモリ２２の使用率に応じた値は上記と同様である。他方、入力バッファメモリ１２中、１番前（１２−１）に格納されたデータの宛先が出力ポート３に対応しない場合には、“０”を出力する。
【００６１】
同様にアンド回路Ａ２０は、入力バッファメモリ１２中、２番目（１２−２）に格納されたデータの宛先が出力ポート０に対応する場合に、出力ポート０の出力バッファメモリ２２の使用率に応じた値を出力する。出力バッファメモリ２２の使用率に応じた値は上記と同様である。他方、入力バッファメモリ１２中、２番目（１２−２）に格納されたデータの宛先が出力ポート０に対応しない場合には、“０”を出力する。
【００６２】
同様にアンド回路Ａ２１は、入力バッファメモリ１２中、２番目（１２−２）に格納されたデータの宛先が出力ポート１に対応する場合に、出力ポート１の出力バッファメモリ２２の使用率に応じた値を出力する。出力バッファメモリ２２の使用率に応じた値は上記と同様である。他方、入力バッファメモリ１２中、２番目（１２−２）に格納されたデータの宛先が出力ポート１に対応しない場合には、“０”を出力する。
【００６３】
同様にアンド回路Ａ２２は、入力バッファメモリ１２中、２番目（１２−２）に格納されたデータの宛先が出力ポート２に対応する場合に、出力ポート２の出力バッファメモリ２２の使用率に応じた値を出力する。出力バッファメモリ２２の使用率に応じた値は上記と同様である。他方、入力バッファメモリ１２中、２番目（１２−２）に格納されたデータの宛先が出力ポート２に対応しない場合には、“０”を出力する。
【００６４】
同様にアンド回路Ａ２３は、入力バッファメモリ１２中、２番目（１２−２）に格納されたデータの宛先が出力ポート３に対応する場合に、出力ポート３の出力バッファメモリ２２の使用率に応じた値を出力する。出力バッファメモリ２２の使用率に応じた値は上記と同様である。他方、入力バッファメモリ１２中、２番目（１２−２）に格納されたデータの宛先が出力ポート３に対応しない場合には、“０”を出力する。
【００６５】
尚、図６の例では、クロック制御部１５は入力バッファメモリ１２中、１番目（１２−１）、２番目（１２−２）の計２個の格納領域に夫々格納された２個のデータ（フレーム）の宛先に対応する出力ポートの出力バッファメモリ２２の使用率（輻輳情報）を使用する。これは、当該例では、クロスバアービトレーションウインドウサイズが２であり、且つクロスバアービトレーションウインドウサイズ分の格納領域のデータを使用するものとしているためである。ここでクロスバアービトレーションウインドウサイズとは、入力バッファメモリ１２中、図７とともに後述するクロスバアービトレーションの対象となるデータ数（フレーム数）を意味する。クロスバアービトレーションウインドウサイズが３以上の場合、そのサイズに応じ、４個のアンド回路（Ａ１０〜Ａ１３またはＡ２０〜Ａ２３）および１個のオア回路（Ｏ１１またはＯ２１）の組（図６の例では２組）を、更に増設することで対応する。
【００６６】
また図６の例では、クロック制御部１５による、上記輻輳情報を使用した動作周波数の制御において使用する輻輳情報として、入力バッファメモリ１２中、クロスバアービトレーションウインドウサイズ分の格納領域、すなわち２番目迄の格納領域に格納されたデータの宛先に係る輻輳状態を使用する。しかしながらこの例に限られることなく、上記輻輳情報を使用した動作周波数の制御において使用する輻輳情報として、入力バッファメモリ１２中、何番目迄の格納領域に格納されたデータの宛先に係る輻輳状態を使用するかにつき、任意に設定可能としてもよい。例えば当該設定のために、クロック制御部１５に２ビットの第４のレジスタを設け、図４の例では入力バッファメモリ１２の８個の格納領域中、１番目のみ、２番目迄、４番目迄および８番目迄の格納領域の計４種類の異なる設定を可能にすることができる。
【００６７】
図６の説明に戻り、オア回路Ｏ１１には、アンド回路Ａ１０，Ａ１１，Ａ１２，Ａ１３の出力が入力される。また当該４個のアンド回路Ａ１０，Ａ１１，Ａ１２，Ａ１３のうち、入力バッファメモリ１２中、１番目の格納領域に格納されたデータの宛先に対応する出力ポートに応じた１個のアンド回路は、当該出力ポートの出力バッファメモリ２２の使用率を示す値を出力する。他方、当該１個のアンド回路以外の３個のアンド回路の出力は全て“０”（＝００）となる。
【００６８】
したがって、入力バッファメモリ１２中、第１番前の格納領域に格納されたデータの宛先に対応する出力ポートの出力バッファメモリ２２の使用率が「重度の輻輳状態」を示す場合、オア回路Ｏ１１は「重度の輻輳状態」を示す出力（“３”＝１１）を行う。同様に入力バッファメモリ１２中、第１番前の格納領域に格納されたデータの宛先に対応する出力ポートの出力バッファメモリ２２の使用率が「軽度の輻輳状態」を示す場合、オア回路Ｏ１１は「軽度の輻輳状態」を示す出力（“１”＝０１）を行う。同様に入力バッファメモリ１２中、第１番前の格納領域に格納されたデータの宛先に対応する出力ポートの出力バッファメモリ２２の使用率が「輻輳無しの状態」を示す場合、オア回路Ｏ１１は「輻輳無し状態」を示す出力（“０”＝００）を行う。
【００６９】
同様に、入力バッファメモリ１２中、第２番目の格納領域に格納されたデータの宛先に対応する出力ポートの出力バッファメモリ２２の使用率が「重度の輻輳状態」を示す場合、オア回路Ｏ２１は「重度の輻輳状態」を示す出力（“３”＝１１）を行う。同様に入力バッファメモリ１２中、第２番目の格納領域に格納されたデータの宛先に対応する出力ポートの出力バッファメモリ２２の使用率が「軽度の輻輳状態」を示す場合、オア回路Ｏ２１は「軽度の輻輳状態」を示す出力（“１”＝０１）を行う。同様に入力バッファメモリ１２中、第２番目の格納領域に格納されたデータの宛先に対応する出力ポートの出力バッファメモリ２２の使用率が「輻輳無しの状態」を示す場合、オア回路Ｏ２１は「輻輳無し状態」を示す出力（“０”＝００）を行う。
【００７０】
アンド回路Ａ３１およびオア回路Ｏ３１の各々には、夫々オア回路Ｏ１１，Ｏ２１の出力が夫々入力される。その結果アンド回路Ａ３１およびオア回路Ｏ３１の各々は、２つのオア回路Ｏ１１，Ｏ２１の各々の２ビットの出力００（“０”），０１（“１”），または１１（“３”）に応じ、以下の出力を行う。オア回路Ｏ１１，Ｏ２１の何れかの出力が００（“０”）の場合、アンド回路Ａ３１は００（“０”）を出力する。その場合クロック制御部１５はクロックドメイン１７内の動作周波数の減少を行わず、動作周波数は上記クロック信号ＣＬＫの周波数とする。すなわち、入力バッファメモリ１２の２番目までの格納領域のそれぞれに格納された２個のデータの宛先に対応する出力ポートの出力バッファメモリ２２のいずれかの使用率が５０％未満の場合（輻輳無し）には、クロック制御部１５は動作周波数の減少を行わない。
【００７１】
他方、オア回路Ｏ１１，Ｏ２１の何れの出力も００（“０”）ではない場合、アンド回路Ａ３１は００（“０”）以外の値（０１または１１）を出力する。その場合、クロック制御部１５はクロックドメイン１７内の動作周波数の減少を行う。すなわち、入力バッファメモリ１２の２番目までの格納領域のそれぞれに格納された２個のデータの宛先に対応する出力ポートの出力バッファメモリ２２のいずれの使用率も５０％以上の場合（重度或いは軽度の輻輳状態）には、クロック制御部１５は動作周波数の減少を行う。より具体的には、オア回路Ｏ１１，Ｏ２１の何れかの出力が１１（“３”）（重度の輻輳状態）の場合、オア回路Ｏ３１は１１（“３”）を出力する。その場合、クロック制御部１５はクロックドメイン１７内の動作周波数をクロック信号ＣＬＫの周波数の１／４（第１の割合）とする。他方、オア回路Ｏ１１，Ｏ２１の何れの出力も０１（“１”）（軽度の輻輳状態）の場合、オア回路Ｏ３１は０１（“１”）を出力する。その場合、クロック制御部１５はクロックドメイン１７内の動作周波数をクロック信号ＣＬＫの周波数の１／２（第２の割合）とする。
【００７２】
すなわちクロック制御部１５はアンド回路Ａ３１およびオア回路Ｏ３１の出力に応じ以下の制御を行う。すなわち入力バッファメモリ１２の２番目迄の格納領域（１２−１，１２−２）の夫々の格納データ（２個）の宛先に対応する出力ポートの出力バッファメモリ２２の使用率の少なくともいずれか一方が輻輳無しの状態を示す場合（５０％未満）、動作周波数の減少を行わない。他方、上記格納データ（２個）の宛先に対応する出力ポートの出力バッファメモリ２２の使用率のいずれもが輻輳無し以外の状態（重度または軽度の輻輳状態）を示す場合（５０％以上）、動作周波数の減少を行う。その場合、上記格納データ（２個）の宛先に対応する出力ポートの出力バッファメモリ２２の使用率が示す輻輳状態に応じた制御を行う。すなわちクロック制御部１５は、上記格納データ（２個）の宛先に係る輻輳情報が重度或いは軽度の輻輳状態を示す場合、当該輻輳状態のうち最も重い輻輳状態に応じ、当該入力ポートのクロックドメイン１７内の動作周波数を制御する。
【００７３】
より具体的には、図６の例の場合のクロック制御部１５は以下の制御を行う。すなわち、当該入力ポートが格納するデータの宛先に係る上記輻輳状態に応じた動作周波数の減少の割合と、当該入力ポートの入力バッファ１２の使用率に応じた動作周波数の減少の割合とのうち、より大きい減少の割合を採用する。
【００７４】
すなわち、上記入力バッファメモリ１２の２番目までの２個の格納データに係る出力ポートの輻輳状態が重度または軽度の輻輳状態であり、且つ上記最も重い輻輳状態が重度の輻輳状態であった場合、当該入力ポート１０の入力バッファメモリ１０の使用率にかかわらず、上記動作周波数を、上記クロック信号ＣＬＫの周波数の１／４（第１の割合）の周波数にする。
【００７５】
他方上記２個の格納データに係る出力ポートの輻輳状態が重度または軽度の輻輳状態であり、且つ、上記最も重い輻輳状態が軽度の輻輳状態であった場合、当該入力ポート１０の入力バッファメモリ１０の使用率に応じ、以下の制御を行う。すなわち、入力バッファメモリ１２の使用率が５０％以下（Ｒ≦５０）の場合、上記動作周波数を、上記クロック信号ＣＬＫの周波数の１／４の周波数にする。入力バッファメモリ１２の使用率が５０％を超えて７５％以下（０．５＜Ｒ≦０．７５）の場合、上記動作周波数を、上記クロック信号ＣＬＫの周波数の１／２（第２の割合）の周波数にする。入力バッファメモリ１２の使用率が７５％を超える（０．７５＜Ｒ）の場合、上記軽度の輻輳状態に応じ、上記動作周波数を、上記クロック信号ＣＬＫの周波数の１／２の周波数にする。
【００７６】
上記２個の格納データのいずれに係る輻輳状態も輻輳無しの状態の場合、当該入力ポート１０の入力バッファメモリ１０の使用率に応じ、以下の制御を行う。すなわち、入力バッファメモリ１２の使用率が５０％以下（Ｒ＜５０）の場合、上記動作周波数を、上記クロック信号ＣＬＫの周波数の１／４の周波数にする。入力バッファメモリ１２の使用率が５０％を超え７５％以下（０．５＜Ｒ≦０．７５）の場合、上記動作周波数を、上記クロック信号ＣＬＫの周波数の１／２の周波数にする。入力バッファメモリ１２の使用率が７５％を超える（０．７５＜Ｒ）の場合、上記動作周波数を、上記クロック信号ＣＬＫの周波数と同一の周波数にする。
【００７７】
このように本発明の実施例２によれば、入力ポート１０の動作周波数の制御を以下のように行う。すなわち、入力ポートが格納するデータの宛先に係る輻輳状態（第１の要因）に応じた動作周波数の減少の割合と、当該入力ポートの入力バッファ１２の使用率（第２の要因）に応じた動作周波数の減少の割合とのうち、より大きい減少の割合を採用する。すなわち当該入力ポート１０の入力バッファメモリ１２の使用率（第１の要因）が高い場合、外部からの入力に障害が生じないように当該使用率の上昇を抑え或いは低下させるという観点によれは、動作周波数をあまり減少させずに処理を進めることが望ましい（第１の要請）。他方、当該入力ポートが格納するデータの宛先に係る輻輳状態（第２の要因）が重い場合には、当該輻輳状態を軽減するという観点から、動作周波数を減少させて処理を遅らせ出力を抑えることが望ましい（第２の要請）。したがって、実施例２では上記第１の要請および第２の要請を併せて考慮し、たとえ入力バッファメモリ１２の使用率（第１の要因）が高い場合であっても、当該入力ポートが格納するデータの宛先に係る輻輳状態（第２の要因）が重い場合には、第２の要請を重視し、動作周波数を減少させる場合がある。その結果、第１の要請および第２の要請との間のバランス（トレードオフ）を図り、適切な動作周波数の制御を実現し得る。
【００７８】
また当該実施例２の場合にも、実施例１の変形例として図５とともに説明した、入力バッファメモリ１２および出力バッファメモリ２２の各々をデータの優先度別に分割した場合における、バッファメモリの使用率に応じた動作周波数の制御方法を適用し得る。この場合にはデータの優先度別に、入力バッファメモリ１２を分割した各部分につき、当該部分に格納されたデータの宛先に係る出力ポートの出力バッファメモリ２２の該当する部分に係る輻輳情報が使用され、当該入力ポート１０中、該当する部分の動作周波数の制御がなされる。
【００７９】
また実施例２においても、実施例１の変形例として上記の如く、データの宛先の出力ポートのグループ別に入力バッファメモリ１２を分割する場合も、以下のように制御を行うことができる。すなわち、図５とともに上述した方法と同様の方法によって、入力バッファメモリ１２の各部分毎に、格納データの宛先の出力ポートの輻輳状態に応じた動作周波数の制御を行うことができる。
【００８０】
同様に実施例２においても、実施例１の変形例として上記の如く、データを出力する入力ポートのグループ別に出力バッファメモリ２２を分割する場合も、図５とともに上述した方法と同様の方法によって当該出力バッファメモリの各部分毎の使用率に応じた動作周波数の制御を行うことができる。
【００８１】
また、このように実施例２において実施例１の変形例を適用する場合、上記第１のレジスタ以外の第２乃至第４のレジスタを、分割した２つの部分毎に、計２セット設けることができる。或いは実施例１の変形例において第２，第３のレジスタを各々１セット設け、分割された２つの部分につき共有とすることができる場合と同様の構成とすることによって、第２乃至第４のレジスタを各々１セット設け、分割された２つの部分につき共有とすることができる。
【００８２】
次に図７とともに、上記クロスバアービトレーションウィンドウについて説明を行う。この場合、上記同様、クロスバアービトレーションウインドウサイズを２とする。すなわち、各入力ポート１０の入力バッファメモリ１２中、２番目までの格納領域のそれぞれに格納された２個のデータにつき、夫々の入力ポート１０間の競合を調停する。
【００８３】
すなわち図７中、入力ポート１０−１の１番目の格納領域のデータ（宛先＝出力ポート２０−４）は、いずれもが同じ宛先を有する入力ポート１０−２の１番目および２番目の格納領域のデータ並びに入力ポート１０−３の１番目の格納領域のデータと競合する。ここでは入力ポート１０−１の１番目の格納領域のデータが競合に勝ち、クロスバ３０を介して出力ポート２０−４に入力される。当該競合の勝敗の理由は、例えば入力ポート間の優先順位による。
【００８４】
また図７中、入力ポート１０−２では、上記の如く、１番目と２番目の格納領域のデータは入力ポート１０−１との競合で負け、出力できない。また、３番目の格納領域のデータは他の入力ポートの間で競合は生じないが、上記の如くクロスバアービトレーションウインドウサイズが２であるため、当該３番目の格納領域のデータは出力対象とならない。
【００８５】
図７中、入力ポート１０−３では、１番目の格納領域のデータは上記の如く入力ポート１０−１との競合に負け出力できないが、２番目の格納領域のデータは宛先が出力ポート２０−３であるため、他の入力ポートの間で競合が生じず、クロスバ３０を介して出力ポート２０−３に入力される。
【００８６】
データ転送装置１００ではこのようにクロスバアービトレーションにより、各入力ポート１０の入力バッファメモリ２２の格納領域中、クロスバアービトレーションウインドウサイズ分の格納領域のデータにつき、他の入力ポートとの間で競合の調停がなされる。他の入力ポートとの間で競合が無ければ、当該データを宛先の出力ポートに入力する。他方、他の入力ポートとの間で競合が生じると、当該競合で勝った場合にのみ、当該データを宛先の出力ポートに入力し、負けた場合には、当該競合が解消するまで待つ。その後、競合が無くなるか或いは競合に勝った場合にのみ、当該データを宛先の出力ポートに入力する。
【００８７】
次に図８，図９とともに、実施例２の場合のクロック制御部１５、２５による制御動作の流れについて説明する。
【００８８】
図８は各出力ポート２０におけるクロック制御部２５による制御動作の流れを示すフローチャートである。
【００８９】
図８中、データ転送装置１００が起動すると、クロックドメイン２７内の動作周波数を上記クロック信号ＣＬＫの周波数とする（ステップＳ１）。次に上記省電力モードが有効か否かを判断する（ステップＳ２）。省電力モードが無効の場合にはステップＳ８に移行し、所定の時間待ち（ステップＳ８）、再びステップＳ２に移行する。
【００９０】
ステップＳ２にて省電力モードが有効の場合、当該出力ポート２０の出力バッファメモリ２２の使用率がｘ％（＝５０％）（第３のしきい値＝ＴＨ２）以下か判断される（ステップＳ３）。上記使用率がｘ％以下の場合（Ｒ≦０．５）、上記動作周波数をクロック信号ＣＬＫの１／Ａ（＝１／４）（第３の割合）とし（ステップＳ４）、ステップＳ８に移行する。
【００９１】
ステップＳ３にて上記使用率がｘ％を超える場合、当該使用率がｘ％より大きいｙ％（＝７５％）（第４のしきい値＝ＴＨ１）以下か否か判定する（ステップＳ５）。ここで第４のしきい値（ｙ％＝７５％）は第３のしきい値（ｘ％＝５０％）より大きい。使用率がｘ％を超えてｙ％以下の場合（０．５＜Ｒ≦０．７５）、上記動作周波数をクロック信号ＣＬＫの１／Ｂ（＝１／２）（第４の割合）とし（ステップＳ６）、ステップＳ８に移行する。ここで第４の割合（１／Ｂ＝１／２）は第３の割合（１／Ａ＝１／４）より小さい。ステップＳ５にて上記使用率がｙ％を超える場合（０．７５＜Ｒ）、上記動作周波数をクロック信号ＣＬＫの周波数そのままとし（ステップＳ７）、ステップＳ８に移行する。
【００９２】
図９は各入力ポート１０におけるクロック制御部１５による動作の流れを示すフローチャートである。
【００９３】
図９中、データ転送装置１００が起動すると、クロックドメイン１７内の動作周波数をクロック信号ＣＬＫの周波数とする（ステップＳ２１）。次に省電力モードが有効か否かを判断する（ステップＳ２２）。省電力モードが無効の場合にはステップＳ２８に移行し、所定の時間待ち（ステップＳ２８）、再びステップＳ２２に移行する。ステップＳ２２にて省電力モードが有効の場合、ステップＳ２３およびＳ３２に移行する。
【００９４】
一方、当該入力ポート１０の入力バッファメモリ１２の格納領域中、上記クロスバアービトレーションウインドウサイズ分の格納領域のデータの宛先に夫々対応する出力ポート２０の出力バッファメモリ２２の使用率を取得する（ステップＳ３１）。上記クロスバアービトレーションウインドウサイズ分の格納領域とは、図６の例の場合、２番目までの格納領域（１２−１，１２−２）である。
【００９５】
ステップＳ３２では、当該取得した使用率がいずれもｗ％（＝５０％）（第５のしきい値）以上であり且つｖ％（＝７５％）（第６のしきい値）以上の使用率を含むか否かを判断する。ここで第６のしきい値（ｖ％＝７５％）は第５のしきい値（ｗ％＝５０％）より大きい。
【００９６】
そして上記取得した使用率がいずれもｗ％以上であり且つｖ％以上の使用率を含む（Ｓ３２のＹＥＳ）か、或いは当該入力ポート１０の入力バッファメモリ１２の使用率がｘ％（＝５０％）（第１のしきい値＝ＴＨ２）以下かを判断する（ステップＳ２３）。
【００９７】
上記取得した使用率がいずれもｗ％以上であり且つｖ％以上の使用率を含む（Ｓ３２のＹＥＳ）か、或いは当該入力ポート１０の入力バッファメモリ１２の使用率がｘ％以下の場合、ステップＳ２４に移行する。ステップＳ２４では、上記動作周波数をクロック信号ＣＬＫの１／Ａ（＝１／４）（第１の割合）とし、ステップＳ２８に移行する。
【００９８】
上記取得した使用率がいずれもｗ％以上であり且つｖ％以上の使用率を含むという条件が満たされず（Ｓ３２のＮＯ）、且つ当該入力ポート１０の入力バッファメモリ１２の使用率がｘ％を超える場合（ステップＳ２３のＮＯ）、ステップＳ３３およびステップＳ２５に移行する。
【００９９】
ステップＳ３３では、上記取得した使用率がいずれもｗ％以上であるがｖ％以上の使用率を含まないかを判断する。そして、上記取得した使用率がいずれもｗ％以上であるがｖ％以上の使用率を含まない（ステップＳ３３のＹＥＳ）か、或いは上記入力バッファメモリ１２の使用率がｘ％を超えてｙ％（第２のしきい値）以下（０．５＜Ｒ≦０．７５）かを判断する（ステップＳ２５）。
【０１００】
ステップＳ２５で、上記取得した使用率がいずれもｗ％以上であるがｖ％以上の使用率を含まない（ステップＳ３３のＹＥＳ）か、或いは上記入力バッファメモリ１２の使用率がｘ％を超えてｙ％（第２のしきい値）以下（０．５＜Ｒ≦０．７５）の場合、ステップＳ２６に移行する。
【０１０１】
ステップＳ２６では、上記動作周波数をクロック信号ＣＬＫの１／Ｂ（＝１／２）（第２の割合）とし（ステップＳ２６）、ステップＳ２８に移行する。ここで第２のしきい値（ｘ％＝５０％）は第１のしきい値（ｙ％＝７５％）より小さく、第２の割合（１／Ｂ＝１／２）は第１の割合（１／Ａ＝１／４）より小さい。
【０１０２】
ステップＳ２５で、上記取得した使用率がいずれもｗ％以上であるがｖ％以上の使用率を含まないという条件が満たされず（ステップＳ３３のＮＯ）且つ、上記入力バッファメモリ１２の使用率がｙ％を超える（０．７５＜Ｒ）場合（ステップＳ２５のＮＯ）、ステップＳ２７に移行する。
【０１０３】
ステップＳ２７では、上記動作周波数をクロック信号ＣＬＫの周波数そのままとし、ステップＳ２８に移行する。
【０１０４】
尚、ステップＳ３３にて、上記取得した使用率がいずれもｗ％以上であるがｖ％以上の使用率を含まないという条件が満たされない（ステップＳ３３のＮＯ）場合とは、当該使用率にｗ％未満のもの（Ｒ＜０．５）が含まれている場合である。
【０１０５】
以上の実施例１，２を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
入力されるデータを格納する入力バッファメモリと、前記入力バッファメモリから読み出された前記データに係る処理を行う第１の処理部と、前記入力バッファメモリの使用率を監視する第１のバッファ監視部と、前記第１のバッファ監視部によって得られた前記入力バッファメモリの使用率に応じて前記入力バッファメモリおよび前記第１の処理部の動作周波数である第１の動作周波数を制御する第１の動作周波数制御部とを有する複数の入力ポートと、
前記複数の入力ポートのうちのいずれか一の入力ポートから出力されたデータを、複数の出力ポートの内、当該データの宛先に対応した出力ポートに出力するスイッチ部と、
前記スイッチ部から出力されたデータを格納する出力バッファメモリと、前記出力バッファメモリから読み出された前記データに係る処理を行う第２の処理部と、前記出力バッファメモリの使用率を監視する第２のバッファ監視部と、前記第２のバッファ監視部によって得られた前記出力バッファメモリの使用率に応じて前記出力バッファメモリおよび前記第２の処理部の動作周波数である第２の動作周波数を制御する第２の動作周波数制御部とを有する複数の出力ポートとを有するデータ転送装置。
（付記２）
前記入力ポートが有する前記第１のバッファ監視部は、更に、当該入力ポートの前記入力バッファメモリが格納するデータの宛先に対応する、前記複数の出力ポートのうちの一又は複数の出力ポートが夫々有する出力バッファメモリの使用率を監視し、
当該入力ポートの前記第１の動作周波数制御部は、前記第１のバッファ監視部によって得られた、当該入力ポートの前記入力バッファメモリの使用率と、当該入力ポートの前記入力バッファメモリが格納するデータの宛先に対応する、前記複数の出力ポートのうちの一又は複数の出力ポートが有する出力バッファメモリの使用率とに応じて、当該入力ポートの前記第１の動作周波数を制御することを特徴とする付記１に記載のデータ転送装置。
（付記３）
前記入力ポートが有する前記第１の動作周波数制御部は、当該入力ポートの第１の動作周波数を、当該入力ポートが有する前記入力バッファメモリの使用率が第１のしきい値以下の場合、第１の所定の周波数を第１の割合で減少させた周波数とし、前記入力バッファメモリの使用率が前記第１のしきい値を超えて第２のしきい値以下の場合、前記第１の所定の周波数を前記第１の割合よりも小さい第２の割合で減少させた周波数とし、前記入力バッファメモリの使用率が第２のしきい値を超える場合、前記第１の所定の周波数とし、
前記出力ポートが有する前記第２の動作周波数制御部は、当該出力ポートの第２の動作周波数を、当該出力ポートが有する前記出力バッファメモリの使用率が第３のしきい値以下の場合、第２の所定の周波数を第３の割合で減少させた周波数とし、前記出力バッファメモリの使用率が前記第３のしきい値を超えて第４のしきい値以下の場合、前記第２の所定の周波数を前記第３の割合よりも小さい第４の割合で減少させた周波数とし、前記出力バッファメモリの使用率が第４のしきい値を超える場合、前記第２の所定の周波数とすることを特徴とする付記１に記載のデータ転送装置。
（付記４）
前記入力ポートが有する前記第１の動作周波数制御部は、当該入力ポートの第１の動作周波数を、当該入力ポートが有する前記入力バッファメモリの使用率が第１のしきい値以下の場合或いは当該入力ポートの格納データに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率がいずれも第５のしきい値以上であり且つ前記第５のしきい値より大きい第６のしきい値以上の使用率を含む場合、第１の所定の周波数を第１の割合で減少させた周波数とし、前記入力バッファメモリの使用率が前記第１のしきい値を超えて第２のしきい値以下の場合或いは当該入力ポートの格納データに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率がいずれも前記第５のしきい値以上であり且つ前記第６のしきい値以上の使用率を含まない場合、前記第１の所定の周波数を前記第１の割合よりも小さい第２の割合で減少させた周波数とし、前記入力バッファメモリの使用率が第２のしきい値を超える場合或いは当該入力ポートに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率が前記第５のしきい値未満のものを含む場合、前記第１の所定の周波数とし、
前記出力ポートが有する前記第２の動作周波数制御部は、当該出力ポートの第２の動作周波数を、当該出力ポートが有する前記出力バッファメモリの使用率が第３のしきい値以下の場合、第２の所定の周波数を第３の割合で減少させた周波数とし、前記出力バッファメモリの使用率が前記第３のしきい値を超えて第４のしきい値以下の場合、前記第２の所定の周波数を前記第３の割合よりも小さい第４の割合で減少させた周波数とし、前記出力バッファメモリの使用率が第４のしきい値を超える場合、前記第２の所定の周波数とすることを特徴とする付記２に記載のデータ転送装置。
（付記５）
前記入力ポートの前記入力バッファメモリは複数に分割され、当該入力ポートの前記第１の監視部は、当該分割された部分毎に前記入力バッファメモリの使用率を監視し、当該入力ポートの前記第１の動作周波数制御部は、当該部分毎に得られた前記入力バッファメモリの使用率に応じて当該入力ポートの前記第１の動作周波数を制御し、
前記出力ポートの前記出力バッファメモリは複数に分割され、当該出力ポートの前記第２の監視部は、当該分割された部分毎に前記出力バッファメモリの使用率を監視し、当該出力ポートの前記第２の動作周波数制御部は、当該部分毎に得られた前記出力バッファメモリの使用率に応じて当該出力ポートの前記第２の動作周波数を制御することを特徴とする付記１乃至４のうちの何れか一項に記載のデータ転送装置。
（付記６）
当該入力ポートの前記第１の監視部は前記部分毎に前記入力バッファメモリの使用率を監視するとともに、前記複数の出力ポートのうち前記入力バッファメモリの前記部分に格納されたデータの宛先に対応する一又は複数の出力ポートが夫々有する前記出力バッファメモリの使用率を監視し、当該入力ポートの前記第１の動作周波数制御部は、当該分割された部分毎に得られた前記入力バッファメモリの使用率および前記一又は複数の出力ポートが有する前記出力バッファメモリの使用率に応じて当該入力ポートの前記第１の動作周波数を制御することを特徴とする付記５に記載のデータ転送装置。
（付記７）
入力されるデータを格納する入力バッファメモリと、前記入力バッファメモリから読み出された前記データに係る処理を行う第１の処理部とを有する複数の入力ポートと、前記複数の入力ポートのうちのいずれか一の入力ポートから出力されたデータを、複数の出力ポートの内、当該データの宛先に対応した出力ポートに出力するスイッチ部と、前記スイッチ部から出力されたデータを格納する出力バッファメモリと、前記出力バッファメモリから読み出された前記データに係る処理を行う第２の処理部とを有する複数の出力ポートとを有するデータ転送装置の動作周波数制御方法であって、
前記入力ポートの前記入力バッファメモリの使用率を監視する第１の監視ステップと、
前記第１の監視ステップで得られた前記入力バッファメモリの使用率に応じて前記入力バッファメモリおよび前記第１の処理部の動作周波数である第１の動作周波数を制御する第１の制御ステップと、
前記出力ポートの前記出力バッファメモリの使用率を監視する第２の監視ステップと、
前記第２の監視するステップで得られた前記出力バッファメモリの使用率に応じて前記出力バッファメモリおよび前記第２の処理部の動作周波数である第２の動作周波数を制御する第２の制御ステップとを有する、データ転送装置の動作周波数制御方法。
（付記８）
前記第１の監視ステップでは、更に、前記入力ポートの前記入力バッファメモリが格納するデータの宛先に対応する、前記複数の出力ポートのうちの一又は複数の出力ポートが夫々有する出力バッファメモリの使用率を監視し、
前記第１の制御ステップでは、前記第１の監視ステップにて得られた、前記入力ポートの前記入力バッファメモリの使用率と、前記入力ポートの前記入力バッファメモリが格納するデータの宛先に対応する、前記複数の出力ポートのうちの一又は複数の出力ポートが有する出力バッファメモリの使用率とに応じて、前記入力ポートの前記第１の動作周波数を制御することを特徴とする付記７に記載のデータ転送装置の動作周波数制御方法。
（付記９）
前記第１の制御ステップでは、前記入力ポートの第１の動作周波数を、当該入力ポートが有する前記入力バッファメモリの使用率が第１のしきい値以下の場合、第１の所定の周波数を第１の割合で減少させた周波数とし、前記入力バッファメモリの使用率が前記第１のしきい値を超えて第２のしきい値以下の場合、前記第１の所定の周波数を前記第１の割合よりも小さい第２の割合で減少させた周波数とし、前記入力バッファメモリの使用率が第２のしきい値を超える場合、前記第１の所定の周波数とし、
前記第２の制御ステップでは、前記出力ポートの第２の動作周波数を、当該出力ポートが有する前記出力バッファメモリの使用率が第３のしきい値以下の場合、第２の所定の周波数を第３の割合で減少させた周波数とし、前記出力バッファメモリの使用率が前記第３のしきい値を超えて第４のしきい値以下の場合、前記第２の所定の周波数を前記第３の割合よりも小さい第４の割合で減少させた周波数とし、前記出力バッファメモリの使用率が第４のしきい値を超える場合、前記第２の所定の周波数とすることを特徴とする付記７に記載のデータ転送装置の動作周波数制御方法。
（付記１０）
前記第１の制御ステップでは、前記入力ポートの第１の動作周波数を、当該入力ポートが有する前記入力バッファメモリの使用率が第１のしきい値以下の場合或いは当該入力ポートの格納データに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率がいずれも第５のしきい値以上であり且つ前記第５のしきい値より大きい第６のしきい値以上のものを含む場合、第１の所定の周波数を第１の割合で減少させた周波数とし、前記入力バッファメモリの使用率が前記第１のしきい値を超えて第２のしきい値以下の場合或いは当該入力ポートの格納データに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率がいずれも前記第５のしきい値以上であり且つ前記第６のしきい値以上のものを含まない場合、前記第１の所定の周波数を前記第１の割合よりも小さい第２の割合で減少させた周波数とし、前記入力バッファメモリの使用率が第２のしきい値を超える場合或いは当該入力ポートに係る前記一又は複数の出力ポートが夫々有する出力バッファメモリの使用率が前記第５のしきい値未満のものを含む場合、前記第１の所定の周波数とし、
前記第２の制御ステップでは、前記出力ポートの第２の動作周波数を、当該出力ポートが有する前記出力バッファメモリの使用率が第３のしきい値以下の場合、第２の所定の周波数を第３の割合で減少させた周波数とし、前記出力バッファメモリの使用率が前記第３のしきい値を超えて第４のしきい値以下の場合、前記第２の所定の周波数を前記第３の割合よりも小さい第４の割合で減少させた周波数とし、前記出力バッファメモリの使用率が第４のしきい値を超える場合、前記第２の所定の周波数とすることを特徴とする付記８に記載のデータ転送装置の動作周波数制御方法。
（付記１１）
前記入力ポートの前記入力バッファメモリは、複数に分割され、前記第１の監視ステップでは、当該分割された部分毎に前記入力バッファメモリの使用率を監視し、前記第１の制御ステップでは、当該部分毎に得られた前記入力バッファメモリの使用率に応じて当該入力ポートの前記第１の動作周波数を制御し、
前記出力ポートの前記出力バッファメモリは、複数の系統に分割され、前記第２の監視ステップでは、当該分割された部分毎に前記出力バッファメモリの使用率を監視し、前記第２の制御ステップでは、当該部分毎に得られた前記出力バッファメモリの使用率に応じて当該出力ポートの前記第２の動作周波数を制御することを特徴とする付記７乃至１０のうちの何れか一項に記載のデータ転送装置の動作周波数制御方法。
（付記１２）
前記第１の監視ステップでは前記部分毎に前記入力バッファメモリの使用率を監視するとともに、前記複数の出力ポートのうち前記入力バッファメモリの前記部分に格納されたデータの宛先に対応する一又は複数の出力ポートが夫々有する前記出力バッファメモリの使用率を監視し、前記第１の制御ステップでは、当該分割された部分毎に得られた前記入力バッファメモリの使用率および前記一又は複数の出力ポートが有する前記出力バッファメモリの使用率に応じて当該入力ポートの前記第１の動作周波数を制御することを特徴とする付記１１に記載のデータ転送装置の動作周波数制御方法。
【符号の説明】
【０１０６】
５−１〜５−Ｎ  パラレル−シリアル変換およびシリアル−パラレル変換回路（ＰＨＹ回路）
１０−１〜１０−Ｎ  入力ポート
１１  宛先問合せ部
１２  入力バッファメモリ
１３  論理部（入力ポート内）
１４  バッファ監視部（入力ポート内）
１５  クロック制御部（入力ポート内）
１６  同期回路（入力ポート内）
１７  クロックドメイン（入力ポート内）
２０−１〜２０−Ｍ  出力ポート
２２  出力バッファメモリ
２３  論理部（出力ポート内）
２４  バッファ監視部（出力ポート内）
２５  クロック制御部（出力ポート内）
２６  同期回路（出力ポート内）
２７  クロックドメイン（出力ポート内）
３０  クロスバ回路
３５−１〜３５−Ｍ  パラレル−シリアル変換およびシリアル−パラレル変換回路（ＰＨＹ回路）
１００  データ転送装置
【図１】
0005482466.tif 000002
【図２】
0005482466.tif 000003
【図３】
0005482466.tif 000004
【図４】
0005482466.tif 000005
【図５】
0005482466.tif 000006
【図６】
0005482466.tif 000007
【図７】
0005482466.tif 000008
【図８】
0005482466.tif 000009
【図９】
0005482466.tif 000010