(57)【特許請求の範囲】
【請求項１】
他の演算処理装置に対して通信を行う通信部と、
クロック信号の周波数の変更を要求するクロック制御部と、
前記クロック制御部により前記クロック信号の周波数の変更が要求されると、前記他の演算処理装置が自装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置に指示するシーケンス制御部と、
自装置が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置から指示された場合、前記通信部が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更する変更部とを有し、
前記シーケンス制御部は、前記クロック制御部が前記クロック信号の周波数を下げる要求をすると、前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更前よりも小さくする旨を指示し、前記他の演算処理装置から前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更完了通知を受信すると、前記クロック信号の周波数を下げる要求を許可することを特徴とする演算処理装置。
【請求項２】
他の演算処理装置に対して通信を行う通信部と、
クロック信号の周波数の変更を要求するクロック制御部と、
前記クロック制御部により前記クロック信号の周波数の変更が要求されると、前記他の演算処理装置が自装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置に指示するシーケンス制御部と、
自装置が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置から指示された場合、前記通信部が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更する変更部とを有し、
前記シーケンス制御部は、前記クロック制御部が前記クロック信号の周波数を上げる要求をすると、前記クロック信号の周波数を上げる要求を許可し、前記クロック信号の周波数を上げる処理の完了通知を入力すると、前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を大きくする旨を指示することを特徴とする演算処理装置。
【請求項３】
前記シーケンス制御部は、前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を大きくする旨を指示した後、かつ前記他の演算処理装置から前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更完了通知を受信する前に、前記クロック制御部により次の前記クロック信号の周波数の変更が要求されると、前記要求を保持し、前記他の演算処理装置から前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更完了通知を受信するまで待機することを特徴とする請求項２記載の演算処理装置。
【請求項４】
さらに、前記他の演算処理装置から受信した無効データを書き込まず、有効データを書き込む受信バッファを有し、
前記変更部は、送信する有効データに対する無効データの数の割合を変更することにより、前記通信部が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更することを特徴とする請求項１〜３のいずれか１項に記載の演算処理装置。
【請求項５】
他の演算処理装置に対して通信を行う通信部を有する演算処理装置の制御方法であって、
前記演算処理装置が有するクロック制御部が、クロック信号の周波数の変更を要求し、
前記演算処理装置が有するシーケンス制御部が、前記クロック信号の周波数の変更が要求されると、前記他の演算処理装置が自装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置に指示し、
前記演算処理装置が有する変更部が、自装置が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置から指示された場合、前記通信部が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更し、
前記シーケンス制御部が、前記クロック制御部が前記クロック信号の周波数を下げる要求をすると、前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更前よりも小さくする旨を指示し、前記他の演算処理装置から前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更完了通知を受信すると、前記クロック信号の周波数を下げる要求を許可することを特徴とする演算処理装置の制御方法。
【請求項６】
他の演算処理装置に対して通信を行う通信部を有する演算処理装置の制御方法であって、
前記演算処理装置が有するクロック制御部が、クロック信号の周波数の変更を要求し、
前記演算処理装置が有するシーケンス制御部が、前記クロック信号の周波数の変更が要求されると、前記他の演算処理装置が自装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置に指示し、
前記演算処理装置が有する変更部が、自装置が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置から指示された場合、前記通信部が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更し、
前記シーケンス制御部が、前記クロック制御部が前記クロック信号の周波数を上げる要求をすると、前記クロック信号の周波数を上げる要求を許可し、前記クロック信号の周波数を上げる処理の完了通知を入力すると、前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を大きくする旨を指示することを特徴とする演算処理装置の制御方法。
【請求項７】
前記シーケンス制御部が、前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を大きくする旨を指示した後、かつ前記他の演算処理装置から前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更完了通知を受信する前に、前記クロック制御部により次の前記クロック信号の周波数の変更が要求されると、前記要求を保持し、前記他の演算処理装置から前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更完了通知を受信するまで待機することを特徴とする請求項６記載の演算処理装置の制御方法。
【請求項８】
前記演算処理装置は、さらに、前記他の演算処理装置から受信した無効データを書き込まず、有効データを書き込む受信バッファを有し、
前記変更部が、送信する有効データに対する無効データの数の割合を変更することにより、前記通信部が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更することを特徴とする請求項５〜７のいずれか１項に記載の演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【０００２】
シリアルＡＴＡ（Serial AT Attachment）バスを介してデータ転送を行うデータ転送制御装置が知られている（例えば、特許文献１参照）。データ転送制御装置は、基準クロックである第１のクロックに基づき物理層回路により生成された第２のクロックが供給され、第２のクロックに基づき動作するトランスポートコントローラと、第１、第２のクロックが供給され、第１、第２のクロックに基づき動作するリンクコントローラとを含む。リンクコントローラは、第２のクロックに基づき動作し、リンクコントローラのステート制御を行うリンクステート制御回路と、第１のクロックに基づき動作し、パワーマネージメントのステート制御を行うパワーマネージメント制御回路を含む。
【０００３】
また、ＣＰＵクロック及び内部クロックを供給制御するクロック制御回路を内蔵した１チップＬＳＩ構成のシステムコントローラが知られている（例えば、特許文献２参照）。システムコントローラは、ＣＰＵクロックの周波数切替えに連動して内部クロックの周波数を可変制御するクロック制御手段を含む。
【０００４】
また、対向配置された２台のネットワーク機器のうちの少なくとも一方では、データフレーム、トレーニングフレーム、ＰＡＵＳＥフレーム又はＰＵＡＳＥフレームに類するフレームの３種類のフロー制御フレームを送受信する技術が知られている（例えば、特許文献３参照）。フロー制御フレームが受信部の出力から検知されたときには送信部の送信クロック周波数を低下させる第１の指示を発生し、フロー制御フレームが送信部の出力から検知されたときには送信部の送信クロック周波数を上昇させる第２の指示を発生する。第１の指示又は第２の指示に従い、かつ送信クロック周波数の最新の設定値を参照して、予め設定された収束アルゴリズムに基づき、送信クロック周波数の新たな設定値を決定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２３３９９８号公報
【特許文献２】特開平１０−１２４１６９号公報
【特許文献３】特開２００５−２１７５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
１つの側面では、本発明の目的は、クロック信号の周波数を変更することにより、消費電力を低減することができる演算処理装置及び演算処理装置の制御方法を提供することである。
【課題を解決するための手段】
【０００７】
演算処理装置は、他の演算処理装置に対して通信を行う通信部と、クロック信号の周波数の変更を要求するクロック制御部と、前記クロック制御部により前記クロック信号の周波数の変更が要求されると、前記他の演算処理装置が自装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置に指示するシーケンス制御部と、自装置が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置から指示された場合、前記通信部が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更する変更部とを有し、前記シーケンス制御部は、前記クロック制御部が前記クロック信号の周波数を下げる要求をすると、前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更前よりも小さくする旨を指示し、前記他の演算処理装置から前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更完了通知を受信すると、前記クロック信号の周波数を下げる要求を許可する。
また、演算処理装置は、他の演算処理装置に対して通信を行う通信部と、クロック信号の周波数の変更を要求するクロック制御部と、前記クロック制御部により前記クロック信号の周波数の変更が要求されると、前記他の演算処理装置が自装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置に指示するシーケンス制御部と、自装置が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量の変更を、前記他の演算処理装置から指示された場合、前記通信部が前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を変更する変更部とを有し、前記シーケンス制御部は、前記クロック制御部が前記クロック信号の周波数を上げる要求をすると、前記クロック信号の周波数を上げる要求を許可し、前記クロック信号の周波数を上げる処理の完了通知を入力すると、前記他の演算処理装置に送信する場合の単位時間当たりの転送データ量を大きくする旨を指示する。
【発明の効果】
【０００８】
クロック信号の周波数を変更することにより、消費電力を低減することができる。その際、他の演算処理装置の単位時間当たりの転送データ量を変更することにより、受信バッファのオーバーフローを防止することができる。
【図面の簡単な説明】
【０００９】
【図１】図１（Ａ）は実施形態による演算処理システムの構成例を示す図であり、図１（Ｂ）は第１の中央演算処理装置の構成例を示す図である。
【図２】図２（Ａ）及び（Ｂ）はクロック信号の周波数を変更する場合の第１の中央演算処理装置及び第２の中央演算処理装置の処理例を説明するための図である。
【図３】図３は第１の中央演算処理装置の一部の詳細な構成例を示す図である。
【図４】図４は図３のスループット制限部の構成例を示す図である。
【図５】図５はパケットのフォーマット例を示す図である。
【図６】図６は周波数及び無効データ数の関係を記憶するテーブルの例を示す図である。
【図７】図７は第１の中央演算処理装置のコア用クロック信号の周波数を下げる場合の制御方法による処理例を示すフローチャートである。
【図８】図８は第１の中央演算処理装置のコア用クロック信号の周波数を上げる場合の制御方法による処理例を示すフローチャートである。
【図９】図９は第１の中央演算処理装置のコア用クロック信号の周波数を上げる場合の制御方法による他の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
図１（Ａ）は、実施形態による演算処理システムの構成例を示す図である。演算処理システムは、例えばサーバ又はスーパーコンピュータであり、第１の中央演算処理装置（ＣＰＵ：Central Processing Unit）１０１ａ、第２の中央演算処理装置１０１ｂ、第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄを有する。第１〜第４の中央演算処理装置１０１ａ〜１０１ｄは、相互にバス１０２により接続され、双方向通信を行うことができる。
【００１１】
図１（Ｂ）は、第１の中央演算処理装置１０１ａの構成例を示す図である。以下、第１の中央演算処理装置１０１ａの構成を例に説明するが、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄの構成も第１の中央演算処理装置１０１ａの構成と同様である。第１の中央演算処理装置１０１ａは、３個のスループット調整回路１１１、コア１１２、キャッシュメモリ１１３、入出力（Ｉ／Ｏ：Input/Output）コントローラ１１４及び割り込み制御部１１５を有する。３個のスループット調整回路１１１は、それぞれ、バス１０２を介して、第２の中央演算処理装置１０１ｂ、第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄに対して、データを送受信することができる。また、３個のスループット調整回路１１１は、それぞれ、第１の中央演算処理装置１０１ａから第２の中央演算処理装置１０１ｂ、第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄへの送信のスループットを調整することができる。スループットは、バス１０２の単位時間当たりの転送データ量である。
【００１２】
第１の中央演算処理装置１０１ａは、コア１１２に割り当てるタスクがない又は少ないと判断すると、そのコア１１２の動作周波数を低下させ、消費電力を低減することができる。その余った電力は、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄで使用することにより、リソースを効率よく使用することができる。動的に動作周波数を低下させると、第１の中央演算処理装置１０１ａの処理能力が低下するため、バス１０２上のデータ量を制御する必要がある。すなわち、第１の中央演算処理装置１０１ａは、バス１０２から受信したデータを受信バッファに書き込むが、動作周波数が低下すると、受信バッファの読み出し速度が低下するため、受信バッファがオーバーフローし、データが消失してしまう。そこで、本実施形態では、そのような場合には、スループット調整回路１１１がスループットを調整することにより、受信バッファのオーバーフローを防止する。
【００１３】
図２（Ａ）は、クロック信号の周波数を下げる場合の第１の中央演算処理装置１０１ａ及び第２の中央演算処理装置１０１ｂの処理例を説明するための図である。第１の中央演算処理装置１０１ａのコア１１２は、自己のコア１１２に割り当てるタスクがない又は少ないと判断すると、クロック信号の周波数を下げる要求Ｓ２０１を自己のスループット調整回路１１１に出力する。すると、スループット調整回路１１１は、送信のスループットを減少させる要求Ｓ２０２を、第２の中央演算処理装置１０１ｂに送信する。第２の中央演算処理装置１０１ｂのスループット調整回路１１１は、上記のスループットを減少させる要求Ｓ２０２を受信すると、第２の中央演算処理装置１０１ｂから第１の中央演算処理装置１０１ａへの送信のスループットを減少させ、スループットの変更完了通知Ｓ２０３を第１の中央演算処理装置１０１ａに送信する。第１の中央演算処理装置１０１ａのスループット調整回路１１１は、上記のスループットの変更完了通知Ｓ２０３を受信すると、上記のクロック信号の周波数を下げる要求Ｓ２０１に対する周波数変更許可通知Ｓ２０４をコア１１２に出力する。すると、コア１１２は、クロック信号の周波数を下げる制御を行い、動作周波数を低下させる。これにより、コア１１２の消費電力を低減することができる。また、第２の中央演算処理装置１０１ｂの送信スループットを減少させてから、第１の中央演算処理装置１０１ａのクロック信号の周波数を下げることにより、受信バッファのオーバーフローを防止することができる。スループットは、クロック信号の周波数に合ったスループットに減少させる。
【００１４】
なお、第１の中央演算処理装置１０１ａは、第２の中央演算処理装置１０１ｂの他、第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄに対しても、スループットを減少させる要求Ｓ２０２を送信する。第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄは、それぞれ、上記のスループットを減少させる要求Ｓ２０２を受信すると、第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄから第１の中央演算処理装置１０１ａへの送信のスループットを減少させ、スループットの変更完了通知Ｓ２０３を第１の中央演算処理装置１０１ａに送信する。第１の中央演算処理装置１０１ａのスループット調整回路１１１は、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄからスループットの変更完了通知Ｓ２０３を受信すると、上記のクロック信号の周波数を下げる要求Ｓ２０１に対する周波数変更許可通知Ｓ２０４をコア１１２に出力する。すると、コア１１２は、クロック信号の周波数を下げる制御を行い、動作周波数を低下させる。以上のように、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから第１の中央演算処理装置１０１ａへの送信のスループットが減少するので、第１の中央演算処理装置１０１ａの受信バッファのオーバーフローを防止することができる。
【００１５】
図２（Ｂ）は、クロック信号の周波数を上げる場合の第１の中央演算処理装置１０１ａ及び第２の中央演算処理装置１０１ｂの処理例を説明するための図である。第１の中央演算処理装置１０１ａのコア１１２は、自己のコア１１２に割り当てるタスクが多いと判断すると、クロック信号の周波数を上げる要求Ｓ２１１を自己のスループット調整回路１１１に出力する。すると、スループット調整回路１１１は、上記のクロック信号の周波数を上げる要求Ｓ２１１に対する周波数変更許可通知Ｓ２１２をコア１１２に出力する。すると、コア１１２は、クロック信号の周波数を上げる制御を行い、動作周波数を上昇させ、クロック信号の周波数を上げる処理の完了通知をスループット調整回路１１１に出力する。すると、スループット調整回路１１１は、送信のスループットを増加させる要求Ｓ２１３を、第２の中央演算処理装置１０１ｂに出力する。第２の中央演算処理装置１０１ｂのスループット調整回路１１１は、上記のスループットを増加させる要求Ｓ２１３を受信すると、第２の中央演算処理装置１０１ｂから第１の中央演算処理装置１０１ａへの送信のスループットを増加させ、スループットの変更完了通知Ｓ２１４を第１の中央演算処理装置１０１ａに送信する。以上のように、クロック信号の周波数を上げることにより、コア１１２の動作速度を速くすることができる。また、クロック信号の周波数を上げる要求Ｓ２１１が入力された場合には、クロック信号の周波数を上げてから、送信スループットを増加させることにより、受信バッファのオーバーフローを防止することができる。スループットを増加させることにより、クロック信号の周波数に合ったスループットに性能を向上させることができる。
【００１６】
なお、第１の中央演算処理装置１０１ａは、第２の中央演算処理装置１０１ｂの他、第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄに対しても、スループットを増加させる要求Ｓ２１３を送信する。第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄは、それぞれ、上記のスループットを増加させる要求Ｓ２１３を受信すると、第３の中央演算処理装置１０１ｃ及び第４の中央演算処理装置１０１ｄから第１の中央演算処理装置１０１ａへの送信のスループットを増加させ、スループットの変更完了通知Ｓ２１４を第１の中央演算処理装置１０１ａに送信する。以上のように、第１の中央演算処理装置のクロック信号の周波数を上げてから、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから第１の中央演算処理装置１０１ａへの送信のスループットを増加させることにより、第１の中央演算処理装置１０１ａの受信バッファのオーバーフローを防止することができる。
【００１７】
図３は、第１の中央演算処理装置１０１ａの一部の詳細な構成例を示す図である。以下、第１の中央演算処理装置１０１ａの構成を例に説明するが、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄの構成も第１の中央演算処理装置１０１ａの構成と同様である。また、図３では、３個のスループット調整回路１１１のうちの１個のスループット調整回路１１１の詳細な構成例を例に示すが、他の２個のスループット調整回路１１１の構成も同様である。ここで、実線の矢印は周波数変更の流れを示し、破線の矢印は送信スループット変更の流れを示す。
【００１８】
第１の中央演算処理装置１０１ａは、３個のスループット調整回路１１１及びコア１１２の他、２個の位相ロックループ（ＰＬＬ：Phase Locked Loop）回路３２１及び３２２を有する。
【００１９】
位相ロックループ回路３２１は、コア用クロック信号ＣＫｃを生成し、ブロック３４１にコア用クロック信号ＣＫｃを供給する。ブロック３４１は、コア１１２及びスループット調整回路１１１の一部を含み、コア用クロック信号ＣＫｃに同期して動作する。コア１１２内のＰＬＬ制御部（クロック制御部）３０１は、位相ロックループ回路３２１が生成するコア用クロック信号ＣＫｃの周波数を制御することができる。具体的には、ＰＬＬ制御部３０１は、コア１１２に割り当てるタスクがない又は少ないときにはコア用クロック信号ＣＫｃの周波数を低くし、コア１１２に割り当てるタスクが多いときにはコア用クロック信号ＣＫｃの周波数を高くすることができる。
【００２０】
位相ロックループ回路３２２は、バス用クロック信号ＣＫｉを生成し、ブロック３４２にバス用クロック信号ＣＫｉを供給する。ブロック３４２は、スループット調整回路１１１の他の一部を含み、バス用クロック信号ＣＫｉに同期して動作する。バス用クロック信号ＣＫｉの周波数は、図１（Ａ）及び（Ｂ）のバス１０２の動作周波数と同じであり、固定値である。
【００２１】
スループット調整回路１１１は、トランザクション層３３１、データリンク層３３２及び物理層３３３を有する。トランザクション層３３１は、パケット生成部３０２を有する。データリンク層３３２は、シーケンス制御部３０３、送信制御部３０４及びパケット解析部３０５を有する。物理層３３３は、スループット制限部３０８、送信側同期化バッファ（送信バッファ）３０９及び受信側同期化バッファ（受信バッファ）３１１を有する。
【００２２】
まず、パケットの送信処理を説明する。コア１１２は、パケット生成部３０２に通常データを出力する。パケット生成部３０２は、通常データのパケットを生成し、そのパケットを送信制御部３０４に出力する。送信制御部３０４は、コア用クロック信号ＣＫｃに同期して、書き込みレジスタ３０６を介して、送信側同期化バッファ（送信バッファ）３０９にパケットを書き込む。シリアライザ／デシリアライザ３１４は、バス用クロック信号ＣＫｉに同期して、読み出しレジスタ３１２を介して、送信側同期化バッファ３０９からパケットを読み出す。送信側同期化バッファ３０９は、クロック乗り換え用の同期化バッファである。そして、シリアライザ／デシリアライザ３１４は、パケットをパラレルからシリアルに変換し、シリアルデータをバス１０２に送信する。
【００２３】
次に、パケットの受信処理を説明する。シリアライザ／デシリアライザ３１５は、バス１０２からパケットを受信し、その受信したパケットをシリアルからパラレルに変換する。シリアライザ／デシリアライザ３１４及び３１５は、他の中央演算処理装置１０１ｂ〜１０１ｄに対して通信を行う通信部である。そして、シリアライザ／デシリアライザ３１５は、バス用クロック信号ＣＫｉに同期して、書き込みレジスタ３１３を介して、受信したパケットを受信側同期化バッファ（受信バッファ）３１１に書き込む。パケット解析部３０５は、コア用クロック信号ＣＫｃに同期して、読み出しレジスタ３０７を介して、受信側同期化バッファ３１１からパケットを読み出し、読み出したパケットを解析し、パケット内の通常データをコア１１２に出力する。受信側同期化バッファ３１１は、クロック乗り換え用の同期化バッファである。通常動作時、受信側同期化バッファ３１１は、読み出しデータ量が書き込みデータ量より多いため、オーバーフローすることはない。しかし、ＰＬＬ制御部３０１がコア用クロック信号ＣＫｃの周波数を低くすると、受信側同期化バッファ３１１は、読み出しデータ量が書き込みデータ量より少なくなり、オーバーフローしてしまう。したがって、その場合には、書き込みデータ量を少なくするため、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから第１の中央演算処理装置１０１ａへの送信スループットを減少させる必要がある。
【００２４】
図４は、図３のスループット制限部３０８の構成例を示す図である。スループット制限部３０８は、無効データ数レジスタ４０１、タグ判定部４０２、２０ビットシフトレジスタ４０３、カウンタ４０４及び比較部４０５を有する。レジスタ４１１は、図３のシリアライザ／デシリアライザ３１４内に設けられる。
【００２５】
図５は、パケットのフォーマット例を示す図である。縦軸は、サイクル数を示す。第１の中央演算装置１０１ａは、各サイクル毎に、パケットを送信する。図５では、１７サイクルで１７個のパケットを送信する例を示す。各パケットは、２ビットのタグ部５０１及び８バイト（６４ビット）のデータ部５０２を有する。２ビットのタグ部５０１は、例えば、「０」が無効データを示し、「１」が先頭パケットを示し、「２」が転送中パケットを示し、「３」が最終パケットを示す。転送中パケットは、先頭パケットと最終パケットとの間のパケットである。例えば、第１サイクルのパケットはタグ部５０１が「１」であり、第２〜第１６サイクルのパケットはタグ部５０１が「２」であり、第１７サイクルのパケットはタグ部５０１が「３」である。タグ部５０１が「０」のパケットは、データ部５０２が無効データであることを示す。これに対し、タグ部５０１が「１」〜「３」のパケットは、データ部５０２が有効データであることを示す。送信データがない場合には、タグ部５０１が「０」の無効データを送信する。すべてのサイクルで、必ず有効データ又は無効データを送信する。データ部５０２は、ヘッダ情報ＨＥＡＤ又はデータＤＡＴＡを有する。ヘッダ情報ＨＥＡＤは、特殊パケット（リンク制御用パケット）又は通常データパケットのパケット種別情報を含む。特殊パケットは、上記のスループットを変更指示するためのパケットである。通常データパケットは、通常データのパケットである。
【００２６】
図６は、周波数及び無効データ数の関係を記憶するテーブルの例を示す図である。周波数は、コア用クロック信号ＣＫｃの最高周波数を１００％とした場合のコア用クロック信号ＣＫｃの周波数である。無効データ数は、最近の２０サイクルのパケット内の無効データ数を示す。すなわち、無効データ数は、タグ部５０１が「０」であるパケット数を意味する。スループット制限部３０８は、コア用クロック信号ＣＫｃの周波数に応じて、無効データ数を制御する。例えば、周波数が１００％の場合には無効データ数が０であり、周波数が９０％の場合には無効データ数が２になる。周波数が高いほど無効データ数が少なくなり、周波数が低いほど無効データ数が多くなる。シリアライザ／デシリアライザ３１５は、すべてのサイクルで、必ず有効データ又は無効データを受信する。シリアライザ／デシリアライザ３１５は、バス１０２から受信したパケットのタグ部５０１が「０」であるときには無効データを意味するので、受信したパケットを受信側同期化バッファ３１１に書き込まない。これに対し、シリアライザ／デシリアライザ３１５は、バス１０２から受信したパケットのタグ部５０１が「１」〜「３」であるときには有効データを意味するので、受信したパケットを受信側同期化バッファ３１１に書き込む。例えば、２０サイクル分の受信パケットにおいて、無効データ数が少ないと、有効データ数が多くなるので、受信側同期化バッファ３１１は書き込みデータ量が多くなり、オーバーフローし易くなる。これに対し、２０サイクル分の受信パケットにおいて、無効データ数が多いと、有効データ数が少なくなるので、受信側同期化バッファ３１１は書き込みデータ量が少なくなり、オーバーフローし難くなる。第１の中央演算処理装置１０１ａのコア用クロック信号ＣＫｃの周波数を高くするときには、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから第１の中央演算処理装置１０１ａへの送信無効データ数を少なくすることにより、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄの送信スループットを増加させる。これに対し、第１の中央演算処理装置１０１ａのコア用クロック信号ＣＫｃの周波数を低くするときには、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから第１の中央演算処理装置１０１ａへの送信無効データ数を多くすることにより、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄの送信スループットを減少させる。これにより、第１の中央演算処理装置１０１ａの受信側同期化バッファ３１１のオーバーフローを防止することができる。
【００２７】
図７は、第１の中央演算処理装置１０１ａのコア用クロック信号ＣＫｃの周波数を下げる場合の制御方法による処理例を示すフローチャートである。第１の中央演算処理装置１０１ａのＰＬＬ制御部３０１は、ステップＳ７１１、Ｓ７１９及びＳ７２０の処理を行う。第１の中央演算処理装置１０１ａの３個のスループット調整回路１１１は、ステップＳ７１２、Ｓ７１６、Ｓ７１７及びＳ７１８の処理を行う。ステートマシン７００は、第１の中央演算処理装置１０１ａのシーケンス制御部３０３のステートマシンであり、ＩＤＬＥステート７０１、ＳＴＬＳステート７０２、ＳＴＬＲステート７０３及びＦＲＯＫステート７０４の間の遷移を制御する。バス１０２は、ステップＳ７１３及びＳ７１５の通信を行う。第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのスループット調整回路１１１は、ステップＳ７１４の処理を行う。
【００２８】
初期時には、ステートマシン７００は、ＩＤＬＥステート７０１に遷移している。ＩＤＬＥステート７０１は、シーケンス制御部３０３がＰＬＬ制御部３０１からの周波数変更要求を入力可能な状態である。
【００２９】
まず、ステップＳ７１１では、第１の中央演算処理装置１０１ａのＰＬＬ制御部３０１は、コア１１２に割り当てるタスクがない又は少ないときにはコア用クロック信号ＣＫｃの周波数を低くするための周波数変更要求を、３個のスループット調整回路１１１のシーケンス制御部３０３に出力する。例えば、ＰＬＬ制御部３０１は、コア用クロック信号ＣＫｃの周波数を１００％から９０％に下げる場合には、９０％の値を周波数変更要求として、シーケンス制御部３０３に出力する。
【００３０】
次に、ステップＳ７１２では、第１の中央演算処理装置１０１ａの３個のスループット調整回路１１１は、入力した周波数変更要求が周波数を下げる要求であると判断する。具体的には、３個のシーケンス制御部３０３は、現在のコア用クロック信号ＣＫｃの周波数を保持しており、現在のコア用クロック信号ＣＫｃの周波数（例えば１００％）と周波数変更要求の周波数（例えば９０％）を比較することにより、入力した周波数変更要求が周波数を下げる要求であると判断することができる。次に、３個のシーケンス制御部３０３は、周波数変更指示（例えば９０％）をそれぞれ３個のパケット生成部３０２に出力する。この周波数変更指示は、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから第１の中央演算処理装置１０１ａへの送信スループットの変更指示を意味する。これにより、ステートマシン７００は、ＳＴＬＳステート７０２に遷移する。
【００３１】
次に、３個のパケット生成部３０２は、上記の周波数変更指示の入力をトリガとして、周波数変更指示の特殊パケットを生成する。特殊パケットは、ヘッダ情報ＨＥＡＤが特殊パケットのパケット種別情報を有し、さらに、ヘッダ情報ＨＥＡＤが周波数変更指示のコード及びコア用クロック信号ＣＫｃの周波数（例えば９０％）の情報を有する。
【００３２】
次に、ステップＳ７１３では、３個のスループット調整回路１１１の送信制御部３０４は、それぞれ、３個のパケット生成部３０２により生成された特殊パケットを、送信側同期化バッファ３０９、シリアライザ／デシリアライザ３１４及びバス１０２を介して、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのスループット調整回路１１１に送信する。
【００３３】
次に、ステップＳ７１４では、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのパケット解析部３０５は、バス１０２、シリアライザ／デシリアライザ３１５及び受信側同期化バッファ３１１を介して、上記の特殊パケットを第１の中央演算処理装置１０１ａから受信する。
【００３４】
以下、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄの処理を説明する。第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのパケット解析部３０５は、受信パケットのヘッダ情報ＨＥＡＤが特殊パケットを示す場合には、周波数変更指示（例えば９０％）をスループット制限部３０８及びパケット生成部３０２に出力する。
【００３５】
次に、図４において、スループット制限部３０８は、上記の周波数変更指示を入力すると、図６のテーブルを参照し、周波数変更指示のコア用クロック信号ＣＫｃの周波数（例えば９０％）に応じた無効データ数（例えば２）を無効データ数レジスタ４０１に書き込み、周波数変更処理完了通知（例えば９０％）をＰＬＬ制御部３０１に出力する。すると、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのコア１１２は、第１の中央演算処理装置１０１ａのコア用クロック信号ＣＫｃの周波数を認識し、コア１１２に割り当てるタスクを再構成し、第１の中央演算処理装置１０１ａへの送信有効データ量を減らし、その代わりに、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄへの送信有効データ量を増やす等の効率的な処理が可能になる。
【００３６】
次に、図４のスループット制限部３０８の処理例を説明する。上記のように、無効データ数レジスタ４０１には、周波数（例えば９０％）に応じた無効データ数（例えば２）が記憶される。読み出しレジスタ３１２には、上記のように、送信側同期化バッファ３０９から読み出された送信パケットがサイクル単位で書き込まれる。タグ判定部４０２は、読み出しレジスタ３１２に記憶されているパケットのタグ部５０１が「０」であるときには、無効データを意味するので、２０ビットシフトレジスタ４０３のデータを右にシフトし、初段のレジスタに「１」のデータを書き込む。これに対し、タグ判定部４０２は、読み出しレジスタ３１２に記憶されているパケットのタグ部５０１が「１」〜「３」であるときには、有効データを意味するので、２０ビットシフトレジスタ４０３のデータを右にシフトし、初段のレジスタに「０」のデータを書き込む。この処理をサイクル単位で繰り返すことにより、２０ビットシフトレジスタには、最近の２０パケット分の有効データ又は無効データの識別情報を記憶させることができる。カウンタ４０４は、２０ビットシフトレジスタ４０３内の「１」のデータ数をカウントする。比較部４０５は、カウンタ４０４のカウント値と無効データ数レジスタ４０１の無効データ数とを比較する。カウンタ４０４のカウント値が無効データ数レジスタ４０１の無効データ数未満であるときには、送信スループットが多すぎるので、読み出しレジスタ３１２の書き換えを停止し、レジスタ４１１に無効データの挿入指示を出力する。すると、レジスタ４１１には、タグ部５０１が「０」である無効データのパケットが生成及び記憶される。また、タグ判定部４０２は、２０ビットシフトレジスタ４０３のデータを右にシフトし、初段のレジスタに無効データを示す「１」のデータを書き込む。これに対し、カウンタ４０４のカウント値が無効データ数レジスタ４０１の無効データ数以上であるときには、所望の送信スループットが達成されているので、比較器４０５は、上記の読み出しレジスタ３１２及びレジスタ４１１の制御を行わない。これにより、最近の２０パケット分の中に、無効データ数レジスタ４０１に記憶されている無効データ数の無効データパケットを挿入することができる。スループット制限部３０８は、送信する有効データに対する無効データの数の割合を変更することにより、送信スループットを変更することができる。これにより、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから第１の中央演算処理装置１０１ａへの送信スループットを減少させ、第１の中央演算処理装置１０１ａの受信側同期化バッファ３１１のオーバーフローを防止することができる。
【００３７】
各パケット生成部３０２は、上記のように、パケット解析部３０５から特殊パケットの周波数変更指示を入力すると、スループット変更完了の特殊パケットを生成する。
【００３８】
次に、ステップＳ７１５では、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄの送信制御部３０４は、各パケット生成部３０２により生成された特殊パケットを、送信側同期化バッファ３０９、シリアライザ／デシリアライザ３１４及びバス１０２を介して、それぞれ第１の中央演算処理装置１０１ａの３個のスループット調整回路１１１に送信する。
【００３９】
次に、第１の中央演算処理装置１０１ａの３個のスループット調整回路１１１は、上記のスループット変更完了の特殊パケットを第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから受信する。以下、第１の中央演算処理装置１０１ａの処理を説明する。第１の中央演算処理装置１０１ａの３個のパケット解析部３０５は、上記のように、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから上記のスループット変更完了の特殊パケットを受信すると、スループット変更完了通知を、それぞれ３個のシーケンス制御部３０３に出力する。
【００４０】
次に、ステップＳ７１６では、上記の３個のシーケンス制御部３０３において、各シーケンス制御部３０３は、上記のスループット変更完了通知を入力すると、他の２個のシーケンス制御部３０３にスループット変更完了通知を出力する。これにより、ステートマシン７００は、ＳＴＬＲステート７０３に遷移する。
【００４１】
次に、ステップＳ７１７では、各シーケンス制御部３０３は、上記のパケット解析部３０５からスループット変更完了通知を入力し、かつ、上記の他の２個のシーケンス制御部３０３からスループット変更完了通知を入力すると、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのスループット変更が完了したと判断する。これにより、ステートマシン７００は、ＦＲＯＫステート７０４に遷移する。
【００４２】
次に、ステップＳ７１８では、各シーケンス制御部３０３は、上記のステップＳ７１１の周波数変更要求に対する周波数変更許可通知をＰＬＬ制御部３０１に出力する。これにより、ステートマシン７００は、ＩＤＬＥステート７０１に遷移する。
【００４３】
次に、ステップＳ７１９では、第１の中央演算処理装置１０１ａのＰＬＬ制御部３０１は、コア用クロック信号ＣＫｃの周波数変更指示（例えば９０％）を位相ロックループ回路３２１に出力する。
【００４４】
次に、ステップＳ７２０では、位相ロックループ回路３２１は、上記の周波数変更指示により指示された周波数（例えば９０％）のコア用クロック信号ＣＫｃを生成し、ブロック３４１に出力する。これにより、コア用クロック信号ＣＫｃの周波数を下げる処理が完了する。
【００４５】
図８は、第１の中央演算処理装置１０１ａのコア用クロック信号ＣＫｃの周波数を上げる場合の制御方法による処理例を示すフローチャートである。第１の中央演算処理装置１０１ａのＰＬＬ制御部３０１は、ステップＳ８１１、Ｓ８１４及びＳ８１５の処理を行う。第１の中央演算処理装置１０１ａの３個のスループット調整回路１１１は、ステップＳ８１２、Ｓ８１３、Ｓ８１６、Ｓ８１９及びＳ８２０の処理を行う。ステートマシン７００は、第１の中央演算処理装置１０１ａのシーケンス制御部３０３のステートマシンであり、ＩＤＬＥステート７０１、ＳＴＬＳステート７０２、ＳＴＬＲステート７０３及びＦＲＯＫステート７０４の間の遷移を制御する。バス１０２は、ステップＳ８１８の通信を行う。第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのスループット調整回路１１１は、ステップＳ８１７の処理を行う。
【００４６】
初期時には、ステートマシン７００は、ＩＤＬＥステート７０１に遷移している。ＩＤＬＥステート７０１は、シーケンス制御部３０３がＰＬＬ制御部３０１からの周波数変更要求を入力可能な状態である。
【００４７】
まず、ステップＳ８１１では、第１の中央演算処理装置１０１ａのＰＬＬ制御部３０１は、コア１１２に割り当てるタスクが多いときにはコア用クロック信号ＣＫｃの周波数を高くするための周波数変更要求を、３個のスループット調整回路１１１のシーケンス制御部３０３に出力する。例えば、ＰＬＬ制御部３０１は、コア用クロック信号ＣＫｃの周波数を９０％から１００％に上げる場合には、１００％の値を周波数変更要求として、シーケンス制御部３０３に出力する。
【００４８】
次に、ステップＳ８１２では、第１の中央演算処理装置１０１ａの３個のスループット調整回路１１１は、入力した周波数変更要求が周波数を上げる要求であると判断する。具体的には、３個のシーケンス制御部３０３は、現在のコア用クロック信号ＣＫｃの周波数を保持しており、現在のコア用クロック信号ＣＫｃの周波数（例えば９０％）と周波数変更要求の周波数（例えば１００％）を比較することにより、入力した周波数変更要求が周波数を上げる要求であると判断することができる。これにより、ステートマシン７００は、ＦＲＯＫステート７０４に遷移する。
【００４９】
次に、ステップＳ８１３では、各シーケンス制御部３０３は、上記のステップＳ８１１の周波数変更要求に対する周波数変更許可通知をＰＬＬ制御部３０１に出力する。
【００５０】
次に、ステップＳ８１４では、第１の中央演算処理装置１０１ａのＰＬＬ制御部３０１は、コア用クロック信号ＣＫｃの周波数変更指示（例えば１００％）を位相ロックループ回路３２１に出力し、周波数変更完了通知を３個のシーケンス制御部３０３に出力する。
【００５１】
次に、ステップＳ８１５では、位相ロックループ回路３２１は、上記の周波数変更指示により指示された周波数（例えば１００％）のコア用クロック信号ＣＫｃを生成し、ブロック３４１に出力する。これにより、コア用クロック信号ＣＫｃの周波数を上げる処理が完了する。
【００５２】
次に、３個のシーケンス制御部３０３は、上記の周波数変更完了通知をＰＬＬ制御部３０１から入力すると、周波数変更指示（例えば１００％）をそれぞれ３個のパケット生成部３０２に出力する。これにより、ステートマシン７００は、ＳＴＬＳステート７０２に遷移する。
【００５３】
次に、３個のパケット生成部３０２は、上記の周波数変更指示の入力をトリガとして、周波数変更指示の特殊パケットを生成する。特殊パケットは、ヘッダ情報ＨＥＡＤが特殊パケットのパケット種別情報を有し、さらに、ヘッダ情報ＨＥＡＤが周波数変更指示のコード及びコア用クロック信号ＣＫｃの周波数（例えば１００％）の情報を有する。
【００５４】
次に、ステップＳ８１６では、３個のスループット調整回路１１１の送信制御部３０４は、それぞれ、３個のパケット生成部３０２により生成された特殊パケットを、送信側同期化バッファ３０９、シリアライザ／デシリアライザ３１４及びバス１０２を介して、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのスループット調整回路１１１に送信する。
【００５５】
次に、ステップＳ８１７では、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのパケット解析部３０５は、バス１０２、シリアライザ／デシリアライザ３１５及び受信側同期化バッファ３１１を介して、上記の特殊パケットを第１の中央演算処理装置１０１ａから受信する。
【００５６】
以下、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄの処理を説明する。第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのパケット解析部３０５は、受信パケットのヘッダ情報ＨＥＡＤが特殊パケットを示す場合には、周波数変更指示（例えば１００％）をスループット制限部３０８及びパケット生成部３０２に出力する。
【００５７】
次に、図４のスループット制限部３０８の処理例を説明する。上記のように、無効データ数レジスタ４０１には、周波数（例えば１００％）に応じた無効データ数（例えば０）が記憶される。以下、スループット制限部３０８は、図７と同様の処理を行う。コア用クロック信号ＣＫｃを上げる場合には、第１の中央演算処理装置１０１ａの受信側同期化バッファ３１１はオーバーフローしないので、上記の処理により、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから第１の中央演算処理装置１０１ａへの送信スループットを増加させ、性能を向上させることができる。
【００５８】
各パケット生成部３０２は、上記のように、パケット解析部３０５から特殊パケットの周波数変更指示を入力すると、スループット変更完了の特殊パケットを生成する。
【００５９】
次に、ステップＳ８１８では、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄの送信制御部３０４は、各パケット生成部３０２により生成された特殊パケットを、送信側同期化バッファ３０９、シリアライザ／デシリアライザ３１４及びバス１０２を介して、それぞれ第１の中央演算処理装置１０１ａの３個のスループット調整回路１１１に送信する。
【００６０】
次に、第１の中央演算処理装置１０１ａの３個のスループット調整回路１１１は、上記のスループット変更完了の特殊パケットを第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから受信する。以下、第１の中央演算処理装置１０１ａの処理を説明する。第１の中央演算処理装置１０１ａの３個のパケット解析部３０５は、上記のように、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄから上記のスループット変更完了の特殊パケットを受信すると、スループット変更完了通知を、それぞれ３個のシーケンス制御部３０３に出力する。
【００６１】
次に、ステップＳ８１９では、上記の３個のシーケンス制御部３０３において、各シーケンス制御部３０３は、上記のスループット変更完了通知を入力すると、他の２個のシーケンス制御部３０３にスループット変更完了通知を出力する。これにより、ステートマシン７００は、ＳＴＬＲステート７０３に遷移する。
【００６２】
次に、ステップＳ８２０では、各シーケンス制御部３０３は、上記のパケット解析部３０５からスループット変更完了通知を入力し、かつ、上記の他の２個のシーケンス制御部３０３からスループット変更完了通知を入力すると、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄのスループット変更が完了したと判断する。これにより、ステートマシン７００は、ＩＤＬＥステート７０１に遷移する。
【００６３】
図９は、第１の中央演算処理装置１０１ａのコア用クロック信号ＣＫｃの周波数を上げる場合の制御方法による他の処理例を示すフローチャートである。図９のフローチャートは、図８のフローチャートに対して、ステップＳ９１１及びＳ９１２が追加されたものである。以下、図９のフローチャートが図８のフローチャートと異なる点を説明する。図８の処理の途中のステップＳ９１１で、第１の中央演算処理装置１０１ａのＰＬＬ制御部３０１が次の周波数変更要求を３個のスループット調整回路１１１内のシーケンス制御部３０３に出力する場合を説明する。すると、特殊パケットの待ち状態のＳＴＬＳステート７０２又はＳＴＬＲステート７０３において、３個のシーケンス制御部３０３は、入力した次の周波数変更要求を保持し、次の周波数変更要求の処理を保留し、現在の周波数変更の図８の処理を続行する。現在の周波数変更の処理が終了すると、ステップＳ８２０の後、ステートマシン７００がＩＤＬＥステート７０１に遷移する。すると、３個のシーケンス制御部３０３は、上記の保持した次の周波数変更要求に従い、図７又は図８の処理を開始する。
【００６４】
各シーケンス制御部３０３は、他の中央演算処理装置１０１ｂ〜１０１ｄに送信のスループットの増加を指示（Ｓ８１６）した後、かつ他の中央演算処理装置１０１ｂ〜１０１ｄからスループットの変更完了通知を受信（Ｓ８２０）する前に、ＰＬＬ制御部３０１により次のコア用クロック信号ＣＫｃの周波数の変更が要求されると、その要求を保持し、他の中央演算処理装置１０１ｂ〜１０１ｄからスループットの変更完了通知を受信（Ｓ８２０）するまで待機する。その後、保持している次のコア用クロック信号ＣＫｃの周波数変更処理を開始する。
【００６５】
上記では、第１の中央演算処理装置１０１ａが周波数を変更する例を説明したが、同様に、第２〜第４の中央演算処理装置１０１ｂ〜１０１ｄも周波数を変更することができる。スループット調整回路１１１は、送信側中央演算処理装置のスループット調整回路１１１及び受信側中央処理装置のスループット調整回路１１１で独立して動作できるため、すべての中央演算処理装置１０１ａ〜１０１ｄで周波数を変更することができる。
【００６６】
また、省電力機能のために中央演算処理装置１０１ａの周波数を動的に変更する時に、相手側の中央演算処理装置１０１ｂ〜１０１ｄの送信スループットを動的に変更することにより、中央演算処理装置１０１ａの受信側同期化バッファ３１１のオーバーフローを防止することができる。動作周波数を落とす中央演算処理装置１０１ａが相手の中央演算処理装置１０１ｂ〜１０１ｄに周波数変更を通知することにより、最高動作周波数時にバス１０２のリソースを使い切り、かつ、コア用クロック信号ＣＫｃの周波数をバス用クロック信号ＣＫｉの周波数より低い周波数に変更することができる。これにより、通常より低い周波数まで下げることが可能になり、省電力効果が高くなる。また、受信側同期化バッファ３１１を大きくする場合及びバス１０２の幅を広くする場合よりも、実装コストがかからず、回路量を減らすことが可能であり、通常動作時に必要な分の資源（バッファ）だけで継続動作できる。
【００６７】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６８】
１０１ａ〜１０１ｄ  中央演算処理装置
１０２  バス
１１１  スループット調整回路
１１２  コア
１１３  キャッシュメモリ
１１４  Ｉ／Ｏコントローラ
１１５  割り込み制御部
３０１  ＰＬＬ制御部
３０２  パケット生成部
３０３  シーケンス制御部
３０４  送信制御部
３０５  パケット解析部
３０６，３１３  書き込みレジスタ
３０７，３１２  読み出しレジスタ
３０８  スループット制限部
３０９  送信側同期化バッファ
３１１  受信側同期化バッファ
３１４，３１５  シリアライザ／デシリアライザ
３２１，３２２  位相ロックループ回路
３３１  トランザクション層
３３２  データリンク層
３３３  物理層
【図１】
0005935484.tif 000002
【図２】
0005935484.tif 000003
【図３】
0005935484.tif 000004
【図４】
0005935484.tif 000005
【図５】
0005935484.tif 000006
【図６】
0005935484.tif 000007
【図７】
0005935484.tif 000008
【図８】
0005935484.tif 000009
【図９】
0005935484.tif 000010