(実施の形態に至る検討)
実施の形態の説明の前に、特許文献1に基づいた参考例について説明する。
図17は、NoCにおいてCore間のパケットを中継する参考例のルータの構成を示している。図17に示すように、参考例のルータ900は、隣接するCoreからの入力ポートに対応する入力バッファ制御部1−1〜1−5、パケットの調停を行う調停制御部3、クロスバ4、出力レジスタ5−1〜5−5を備えている。
各ポートに対応した入力バッファ制御部1−1〜1−5は、各ポート(Core)から入力されるパケットを格納する。調停制御部3は、各入力バッファのパケット自身が持つ宛先Core情報と締切時刻情報を用いて調停を行う。調停制御部3の優先度の決定により求められている性能(遅延とスループット)を保証するために、締切時刻が小さい(早い)パケットを優先して伝送する。出力レジスタ5−1〜5−5は、調停制御部3の調停により選択されたパケットを格納し、格納したパケットを各出力ポートに発行(出力)する。
締切時刻は、Coreでの要求の発生時刻とルータのパケット送信時刻の二つの選択が可能である。要求の発生時刻を選択した場合、本来の締切時刻は要求の発生時刻+許容遅延時間となる。例えば、CoreC1(ポートP1)が時刻t0に複数パケットの要求を発行し、CoreC4(ポートP4)が時刻t1(t0<t1)に1パケットの要求を発行し、各Coreの許容遅延時間が共通の値dのとき、ポートP1の複数パケットの締切時刻は全てt0+d、ポートP4のパケットの締切時刻はt1+dとなる。
優先順位を決定する締切時刻の関係はt0+d<t1+dとなるため、ポートP1の複数パケットが優先され、出力ポートにポートP1の複数パケットが全て出力された後で、ポートP4のパケットが出力される。このように特定の入力ポートを優先して処理して、他のポートの処理が遅れてしまい、ルータに入力してから出力されるまでの平均遅延が大きくなってしまう場合があった。
これを防ぐために、締切情報をパケットの送信時刻+許容遅延時間として付与する。例えば、CoreC1(ポートP1)が時刻t0に複数パケットを要求し、CoreC4(ポートP4)が時刻t1(t0<t1)に1パケットの要求を発行したとする。各Coreからルータに到達するまでにΔtかかるとする。この場合、ポートP1、P4の各パケットの送信時刻はそれぞれ、時刻t0+n×Δt(1≦n)、時刻t1+Δtとなる。つまり、ポートP1の1パケット目の時刻は(t0+Δt)、2パケット目の時刻は(t0+2×Δt)、ポートP4の1パケットの時刻はt1+Δtとなる。
そして、ポートP1の1パケット目の時刻<ポートP4の1パケットの時刻<ポートP1の2パケット目の時刻という関係が成り立つとき、締切時刻の小さい順に調停されるとポートP1の1パケット目、ポートP4の1パケット、そしてポートP1の2つ目以降のパケットの順に出力ポートに伝送される。このようにしてルータに入力されてから出力されるまでの平均遅延を低減させることができ、伝送性能の向上が見込める。
以上から、特許文献1のような参考例では、締切時刻を遵守しようとパケット間の調停を行うため、伝送性能の向上が見込める。しかしながら、参考例では、性能を優先するために、各Coreの動作率が上がり、故障率への影響が無視できないほどLSI温度が高くなる可能性があった。このため、実施の形態では、伝送性能を確保しつつ、故障率が高くならない程度にLSI温度を保つNoC回路の提供を可能とする。
(実施の形態の概要)
図1は、実施の形態に係る中継装置の概要を示す構成図である。図1に示すように、実施の形態に係る中継装置10は、NoCのルータなどであり、複数の入力バッファ11、複数の出力バッファ12、スイッチ13、調停制御部14を備えている。
複数の入力バッファ11は、複数のノード20とバスを介して接続される複数の入力ポート11aに対応している。複数の出力バッファ12は、複数のノード20とバスを介して接続される複数の出力ポート12aに対応している。スイッチ13は、複数の入力バッファ11に格納されたパケットを、パケットの宛先に応じて、複数の出力バッファ12に転送する。調停制御部14は、複数のノード20の温度に基づいて、転送される複数のパケットを調停する。
このように、実施の形態では、Coreなどの複数のノードの温度に基づいて調停を制御するため、ノードの温度に応じた優先度でパケットを転送できる。これにより、ノードの温度上昇を抑えることができ、ノードを搭載する装置の故障率を低減することができる。
(実施の形態1)
以下、図面を参照して実施の形態1について説明する。本実施の形態は、Core毎に温度センサを実装し、ルータがその温度情報をもとに温度の高いCoreから来たパケットより、温度の低いCoreから来たパケットを優先して出力することにより、温度の高いCoreの処理を遅らせ、動作率を落とし、LSIの温度を下げることにより、LSIの故障率を低減させることを特徴とする。
<実施の形態の構成>
まず、図2〜図5を用いて実施の形態の構成について説明する。図2は、本実施の形態に係るNoCの構成を示している。
図2に示すように、本実施の形態に係るNoC(LSI)100は、演算処理を行う16個のCoreC0〜C15(CoreCもしくは端にCoreとも言う)、各CoreC0〜C15の温度を観測する温度センサS0〜S15(温度センサSもしくは単に温度センサとも言う)、各CoreC0〜C15間に配置されるパケットを中継するルータR0〜R15(ルータRもしくは単にルータとも言う)を備えている。なお、ルータに限らず、ノード間のパケットを中継するその他の中継装置でもよい。
例えば、NoC100は2次元のメッシュトポロジのネットワークを構成するが、その他のトポロジのネットワークを構成してもよい。図2の例では、ルータR0〜R15は、4行×4列のマトリクス状に配置され、隣接するルータと行方向(横方向)及び列方向(縦方向)にそれぞれバスを介して接続されている。CoreC0〜C15は、それぞれルータR0〜R15の近傍に配置され、各ルータR0〜R15とバスを介して接続されている。温度センサS0〜S15は、それぞれCoreC0〜C15内(もしくは近傍)に配置され、各ルータR0〜R15と接続されている。温度センサS0〜S15とルータR0〜R15は、CoreC0〜C15とルータR0〜R15間のバスを介して接続されてもよいし、その他の配線を介して接続されてもよい。
図3に示すように、本実施の形態に係るルータR(例えばR5)は、温度センサS0〜S15から、全てのCoreC0〜C15の温度を取得する。そして、例えば、図4に示すように、ルータR5が、CoreC0からのパケットPKT1をルータR0を介して受信し、CoreC2からのパケットPKT2をルータR2を介して受信し、受信したPKT1及びPKT2をルータR9へ出力しようとすると、ルータR5の出力先でパケットPKT1及びPKT2が競合する。本実施の形態では、競合したパケットを、図3のように取得したCoreの温度に基づいて調停する。例えば、パケットPKT1及びPKT2の発行元のCoreC0及びC2の温度に応じた優先順位でパケットを選択し出力する。
図5は、図2のNoC100内のルータRのうち、例えば、ルータR5の構成を示している。なお、ルータR0〜R15は同様の構成である。
図5に示すように、本実施の形態に係るルータR5は、隣接するCoreCからの入力ポートに対応する入力バッファ制御部1−1〜1−5、各CoreCの温度情報を管理する温度情報管理部2、パケットの調停を行う調停制御部3、クロスバ4、出力レジスタ5−1〜5−5を備えている。
入力バッファ制御部(入力バッファ)1−1〜1−5は、各入力ポートP1、P4、P6、P5に対応しており、各ポート(CoreC)から入力されるパケットを格納する。入力バッファ制御部1−1は、4つの出力ポートP1、P4、P6、P9に対応したそれぞれ1つの出力先レジスタ1−1−2〜1−1−5と、4つのポートと共有する4エントリ可能な共有バッファ1−1−1を有する。入力バッファ制御部1−2〜1−5も入力バッファ制御部1−1と同様の構成である。なお、共有バッファ1−1−1は性能、LSIサイズ、電力などを考慮して上記以上のエントリ数を持つことが可能である。
クロスバ(切替部)4は、入力バッファ制御部1−1〜1−5と出力レジスタ5−1〜5−5との間で、パケットの宛先に応じてスイッチングするクロスバスイッチである。クロスバ4は、入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のパケットを、調停制御部3の調停にしたがい、出力レジスタ5−1〜5−5へ出力する。
出力レジスタ(出力バッファ)5−1〜5−5は、各出力ポートP1、P4、P6、P5に対応しており、調停制御部3の調停により選択されたパケットを格納し、格納したパケットを各出力ポートに発行(出力)する。例えば、入力ポートP1、P4、P6、P5と出力ポートP1、P4、P6、P5は同じポートであるが、異なるポートでもよい。(入力及び出力)ポートP1は、ルータR1(CoreC1)と接続し、ポートP4は、ルータR4(CoreC4)と接続し、ポートP6は、ルータR6(CoreC6)と接続し、ポートP5は、CoreC5と接続する。
温度情報管理部(温度取得部または温度判定部)2は、各CoreC0〜C15の温度情報を収集し、ある閾値の温度を超えたCoreの有無を監視しており、閾値を超えたCoreの情報を調停制御部3に渡す。なお、温度の閾値は可変に設定可能である。
調停制御部(調停部)3は、温度情報管理部2から入手した閾値を超えたCore情報と、入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5に格納されているパケット自身が持つ発行元Core情報と、仕掛りTAT情報とを用いて調停を行う。例えば、調停制御部3が調停により優先させるパケットを選択すると、クロスバ4が選択されたパケットを出力レジスタへ出力する。仕掛りTAT(Turn Around Time)情報は、パケットが送信元から発行されてからのレイテンシを示す。仕掛りTAT情報は、入力バッファ制御部1−1〜1−5に格納されている間、常にカウントして更新している。すなわち、入力バッファ制御部1−1〜1−5は、仕掛りTAT情報をカウントするカウンタ(不図示)を備えている。
<実施の形態の動作>
具体的な動作について、図5のブロック図を参照しつつ、図6及び図7を用いて説明する。
図6に示すように、本実施の形態に係るルータRは、各ポート(Core)からのパケットを、各ポートに対応した入力バッファ制御部1−1〜1−5に格納する(S101)。
ルータR自身の入力バッファ制御部1−1〜1−5において、出力ポートに対応した出力先レジスタ1−1−2〜1−1−5が空いている場合は、対応する出力先レジスタ1−1−2〜1−1−5にパケットを格納する。対応する出力先レジスタ1−1−2〜1−1−5にパケットが格納されている場合は、共有バッファ1−1−1にパケットを格納する。対応する出力先レジスタ1−1−2〜1−1−5に格納されているパケットが、出力レジスタ5−1〜5−5に出力されて空き状態になると、共有バッファ1−1−1に格納されたパケットを、出力先レジスタ1−1−2〜1−1−5に格納する。
温度情報管理部2は、各CoreC0〜C15の温度情報を収集し(S102)、温度がある閾値を超えたCoreの有無を判定する(S103)。温度情報管理部2は、定期的に温度情報収集及び閾値との比較を繰り返すことで、閾値を超えたCoreの有無を監視し、閾値を超えたCoreの情報を調停制御部3に渡す。
調停制御部3は、閾値を超えた発行元Coreと仕掛りTAT情報に基づいて調停を行う(S104)。すなわち、調停制御部3は、温度情報管理部2から入手した閾値を超えたCoreの情報と、入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5に格納されているパケットに付与されている発行元Core情報と仕掛りTAT情報を用いて調停を行う。本実施の形態では、調停制御部3は、複数のパケットのうち発行元ノードの温度がより低いパケットの転送を優先させ、特に、発行元ノードの温度が閾値よりも低いパケットの転送を優先させ、さらに、複数のパケットのうち、レイテンシがより大きいパケットの転送を優先させる。
具体的には、S104では、図7に示すS111〜S118のように調停を行う。図7に示すように、調停制御部3は、同じ出力ポート(出力レジスタ5−1〜5−5)へ出力される複数のパケットが競合する場合に(S111)、S112以降で調停を行う。
調停制御部3は、複数のパケットのうち一部のパケットの発行元Coreが閾値を超えているかどうか判定する(S112)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)に発行元Coreの温度が閾値を超えているパケットと閾値を超えていない発行元Coreのパケットが格納されて、競合が発生した場合、調停制御部3は、発行元Coreが閾値を超えたパケットよりも、発行元Coreが閾値を超えていないパケットを優先して発行(出力レジスタ5−1〜5−5へ出力)する(S113)。
また、調停制御部3は、発行元Coreの温度が閾値を超えているパケットについては、仕掛りTAT情報に基づいて調停を行う(S114)。すなわち、発行元Coreの温度が閾値を超えているパケットが調停に負け続けて発行元Coreにてタイムアウトを検出しないように、仕掛りTAT情報がある値になった場合に優先して発行する。
一方、調停制御部3は、複数のパケットの全ての発行元Coreが閾値を超えているかどうか判定する(S115)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)の全てに発行元Coreの温度が閾値を超えているパケットが格納されている場合、調停制御部3は、仕掛りTAT情報が大きいパケット、つまり処理に時間がかかっているパケットを優先して発行し、さらに仕掛りTAT情報が同じときはラウンドロビンにて優先順位を決める(S116)。
他方、調停制御部3は、複数のパケットの全ての発行元Coreが閾値以下かどうか判定する(S117)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)の全てに発行元Coreの温度が閾値を超えていないパケットが格納されている場合、調停制御部3は、仕掛りTAT情報の大きな値のパケットを優先して発行し、さらに仕掛りTAT情報が同じときはラウンドロビンにて優先順位を決める(S118)。
一般的にあるCoreからのパケットがリードでCoreがそのリプライを受け取ってから次の処理を開始する、またはパケットがライトでそれが完了したかどうかを後続のリードで確認するような動作を行うことが多いが、閾値を超えたCoreからのパケットの優先順位を落とすと上記動作の完了が遅れ、次の処理が行われるまでの時間がかかり、動作率は低くなり、Coreの温度も低くなる。このように、温度の高いCoreのパケットの処理の優先順位を落とすことにより、LSI内の温度が下がり、LSIの故障率を低減させることを可能とする。
なお、調停制御部3の動作としては、前述の通り発行元Coreの温度が閾値を超えたパケットの優先順位を落とすだけでなく、発行元Coreの温度が閾値を超えたパケットはある一定時間発行しない、もしくは発行間隔を空けることにより、さらに早く発行元Coreの温度を下げることが可能である。また、パケットに付与されている調停に使用する情報は、本案の仕掛りTAT情報ではなく、関連する技術の締切時間情報などパケット間で優先順位をつけることが可能な情報であれば良い。
<実施の形態の効果>
本実施の形態に係るNoCの調停方法によれば、パケットに発行元のCore情報、Core毎に温度センサ、ルータに各Coreの温度情報をもとにパケットの優先順位を決める回路を追加し、温度の高いCoreのパケットの優先度を下げることにより、Coreの動作率を落として温度を下げることができる。特に、パケットの発行元Coreの温度上昇を抑えることができる。したがって、本実施の形態によれば、LSIの発熱を抑え、LSIの故障率の低減、つまり、システムの可用性向上が可能となる。
(実施の形態2)
実施の形態2では、その基本的構成は実施の形態1の図2及び図5と同様であるが、LSIの温度を下げるために、調停制御部3の調停方法について工夫している。
図8は、本実施の形態に係るルータR(例えばR5)の構成を示している。図8において、実施の形態1の図5と異なる点は調停制御部3がパケットの発行元Core情報ではなく、宛先Core情報を入手し、宛先Coreの温度状態をもとに調停を行う点である。
図9及び図10を用いて、本実施の形態の動作について説明する。図9に示すように、実施の形態1と同様に、ルータRは、各ポートからのパケットを、各ポートに対応した入力バッファ制御部1−1〜1−5に格納し(S201)、温度情報管理部2は、各Coreの温度情報を収集し(S202)、温度がある閾値を超えたCoreの有無を判定する(S203)。
さらに、本実施の形態に係る調停制御部3は、閾値を超えた宛先Coreと仕掛りTAT情報に基づいて調停を行う(S204)。すなわち、調停制御部3は、温度情報管理部2から入手した閾値を超えたCoreの情報と、入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5に格納されているパケットに付与されている宛先Core情報と仕掛りTAT情報を用いて調停を行う。本実施の形態では、調停制御部3は、複数のパケットのうち宛先ノードの温度がより低いパケットの転送を優先させ、特に、宛先ノードの温度が閾値よりも低いパケットの転送を優先させ、さらに、複数のパケットのうち、レイテンシがより大きいパケットの転送を優先させる。
具体的には、S204では、図10に示すS211〜S218のように調停を行う。図10に示すように、調停制御部3は、同じ出力ポート(出力レジスタ5−1〜5−5)へ出力される複数のパケットが競合する場合に(S211)、S212以降で調停を行う。
調停制御部3は、複数のパケットのうち一部のパケットの宛先Coreが閾値を超えているかどうか判定する(S212)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)に宛先Coreの温度が閾値を超えているパケットと閾値を超えていない宛先Coreのパケットが格納されて、競合が発生した場合、調停制御部3は、宛先Coreが閾値を超えたパケットよりも、宛先Coreが閾値を超えていないパケットを優先して発行する(S213)。
また、調停制御部3は、宛先Coreの温度が閾値を超えているパケットが調停に負け続けて発行元Coreにてタイムアウトを検出しないように、仕掛りTAT情報がある値になった場合は優先して発行する(S214)。
一方、調停制御部3は、複数のパケットの全ての宛先Coreが閾値を超えているかどうか判定する(S215)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)の全てに宛先Coreの温度が閾値を超えているパケットが格納されている場合、調停制御部3は、仕掛りTAT情報が大きいパケット、つまり処理に時間がかかっているパケットを優先して発行し、さらに仕掛りTAT情報が同じときはラウンドロビンにて優先順位を決める(S216)。
他方、調停制御部3は、複数のパケットの全ての宛先Coreが閾値以下かどうか判定する(S217)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)の全てに宛先Coreの温度が閾値を超えていないパケットが格納されている場合、調停制御部3は、仕掛りTAT情報の大きな値のパケットを優先して発行し、さらに仕掛りTAT情報が同じときはラウンドロビンにて優先順位を決める(S218)。
このように、本実施の形態によれば、閾値を超えた宛先Coreに対するアクセスを遅らせ、宛先Coreの動作率を下げ、LSI内の温度を下げることにより、実施の形態1と同様にLSI故障率を低減させることが可能となる。特に、パケットの宛先Coreの温度上昇を抑えることができる。
(実施の形態3)
実施の形態3では、その基本的構成は実施の形態1の図2及び図5と同様であるが、LSIの温度を下げるために、調停制御部3の調停方法について工夫している。
図11は、本実施の形態に係るルータR(例えばR5)の構成を示している。図11において、実施の形態1の図5と異なる点は調停制御部3がパケットの発行元Core情報と宛先Core情報を入手し、発行元Coreと宛先Coreの両方の温度状態をもとに調停を行う点である。
図12及び図13を用いて、本実施の形態の動作について説明する。図12に示すように、実施の形態1と同様に、ルータRは、各ポートからのパケットを、各ポートに対応した入力バッファ制御部1−1〜1−5に格納し(S301)、温度情報管理部2は、各Coreの温度情報を収集し(S302)、温度がある閾値を超えたCoreの有無を判定する(S303)。
さらに、本実施の形態に係る調停制御部3は、閾値を超えた発行元Core及び宛先Coreと仕掛りTAT情報に基づいて調停を行う(S304)。すなわち、調停制御部3は、温度情報管理部2から入手した閾値を超えたCoreの情報と、入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5に格納されているパケットに付与されている発行元Core及び宛先Core情報と仕掛りTAT情報を用いて調停を行う。本実施の形態では、調停制御部3は、複数のパケットのうち発行元ノード及び宛先ノードの温度がより低いパケットの転送を優先させ、特に、発行元ノード及び宛先ノードの温度が閾値よりも低いパケットの転送を優先させ、次に、宛先ノードまたは発行元ノードの温度が閾値よりも低いパケットの転送を優先させ、さらに、複数のパケットのうち、レイテンシがより大きいパケットの転送を優先させる。
具体的には、S304では、図13に示すS311〜S318のように調停を行う。図13に示すように、調停制御部3は、同じ出力ポート(出力レジスタ5−1〜5−5)へ出力される複数のパケットが競合する場合に(S311)、S312以降で調停を行う。
調停制御部3は、複数のパケットのうち一部のパケットの発行元Core及び/または宛先Coreが閾値を超えているかどうか判定する(S312)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)に発行元Core及び/または宛先Coreの温度が閾値を超えているパケットと閾値を超えていない発行元Core及び/または宛先Coreのパケットが格納されて、競合が発生した場合、調停制御部3は、発行元Core及び/または宛先Coreが閾値を超えたパケットよりも、発行元Core及び/または宛先Coreが閾値を超えていないパケットを優先して発行する(S313)。
具体的には、閾値を超えたパケット、閾値以下のパケット間の優先順位を以下のようにして調停を行う。
宛先Coreと発行元Coreの両方の温度が閾値を超えたパケット<宛先Coreの温度が閾値を超えたパケット<発行元Coreの温度が閾値を超えたパケット<宛先Coreの温度が閾値以下のパケット<発行元Coreの温度が閾値以下のパケット
また、調停制御部3は、発行元Coreまたは宛先Coreの温度が閾値を超えているパケットが調停に負け続けて発行元Coreにてタイムアウトを検出しないように、仕掛りTAT情報がある値になった場合は優先して発行する(S314)。
一方、調停制御部3は、複数のパケットの全ての発行元Core及び宛先Coreが閾値を超えているかどうか判定する(S315)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)の全てに発行元Core及び宛先Coreの温度が閾値を超えているパケットが格納されている場合、調停制御部3は、仕掛りTAT情報が大きいパケット、つまり処理に時間がかかっているパケットを優先して発行し、さらに仕掛りTAT情報が同じときはラウンドロビンにて優先順位を決める(S316)。
他方、調停制御部3は、複数のパケットの全ての発行元Core及び宛先Coreが閾値以下かどうか判定する(S317)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)の全てに発行元Core及び宛先Coreの温度が閾値を超えていないパケットが格納されている場合、調停制御部3は、仕掛りTAT情報の大きな値のパケットを優先して発行し、さらに仕掛りTAT情報が同じときはラウンドロビンにて優先順位を決める(S318)。
このように、本実施の形態によれば、閾値を超えた宛先Coreと発行元Coreの両方に関係するアクセスを遅らせることにより、更に効率よく宛先Coreと発行元Coreの動作率を下げ、LSI内の温度を下げることにより、LSI故障率を低減させることが可能となる。
(実施の形態4)
実施の形態4では、その基本的構成は実施の形態1の図2及び図5と同様であるが、LSIの温度を下げるために、温度情報管理部2と調停制御部3について工夫している。
図14は、本実施の形態に係るルータR(例えばR5)の構成を示している。図14において、実施の形態1の図5と異なる点は温度情報管理部2が各Coreからの温度情報を入手し、そのCoreの温度がある閾値を超えたかどうかだけを判断するのではなく、閾値の設定を細分化、例えば閾値1=40℃、閾値2=60℃、閾値3=80℃のように設定し、各Coreがどの状態にあるかを調停制御部3に渡し、調停制御部3はその情報をもとに優先制御を行う。なお、閾値は3つに限らず、任意の数の閾値を設定してもよい。また、閾値に限らず、温度と優先度を関連付けておき、温度に対応する優先度によって優先制御してもよい。
図15及び図16を用いて、本実施の形態の動作について説明する。図15に示すように、実施の形態1と同様に、ルータRは、各ポートからのパケットを、各ポートに対応した入力バッファ制御部1−1〜1−5に格納する(S401)。温度情報管理部2は、各Coreの温度情報を収集し(S402)、温度が閾値1、閾値2、閾値3を超えたCoreの有無を判定する(S403)。
さらに、本実施の形態に係る調停制御部3は、閾値1、閾値2、閾値3を超えた発行元Coreと仕掛りTAT情報に基づいて調停を行う(S404)。すなわち、調停制御部3は、温度情報管理部2から入手した閾値1、閾値2、閾値3を超えたCoreの情報と、入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5に格納されているパケットに付与されている発行元Core情報と仕掛りTAT情報を用いて調停を行う。本実施の形態では、調停制御部3は、複数のパケットのうち発行元ノードの温度がより低いパケットの転送を優先させ、特に、発行元ノードの温度と複数の閾値との比較結果に応じてパケットを調停し、さらに、複数のパケットのうち、レイテンシがより大きいパケットの転送を優先させる。
具体的には、S404では、図16に示すS411〜S418のように調停を行う。図16に示すように、調停制御部3は、同じ出力ポート(出力レジスタ5−1〜5−5)へ出力される複数のパケットが競合する場合に(S411)、S412以降で調停を行う。
調停制御部3は、複数のパケットのうち一部のパケットの発行元Coreが閾値1、閾値2、または閾値3を超えているかどうか判定する(S412)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)に発行元Coreの温度が閾値1、閾値2、または閾値3を超えているパケットと閾値1、閾値2、または閾値3を超えていない発行元Coreのパケットが格納されて、競合が発生した場合、調停制御部3は、発行元Coreが閾値1、閾値2、または閾値3を超えたパケットよりも、発行元Coreが閾値1、閾値2、または閾値3を超えていないパケットを優先して発行する(S413)。
具体的には、閾値1、閾値2、閾値3前後のパケット間の優先順位を以下のようにして調停を行う。
発行元Coreの温度が閾値3を超えたパケット<発行元Coreの温度が閾値2と閾値3の間のパケット<発行元Coreの温度が閾値1と閾値2の間のパケット<発行元Coreの温度が閾値1より低いパケット
また、調停制御部3は、発行元Coreの温度が閾値1、閾値2、または閾値3を超えているパケットが調停に負け続けて発行元Coreにてタイムアウトを検出しないように、仕掛りTAT情報がある値になった場合は優先して発行する(S414)。
一方、調停制御部3は、複数のパケットの全ての発行元Coreが全閾値を超えているかどうか判定する(S415)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)の全てに発行元Coreの温度が全閾値を超えているパケットが格納されている場合、調停制御部3は、仕掛りTAT情報が大きいパケット、つまり処理に時間がかかっているパケットを優先して発行し、さらに仕掛りTAT情報が同じときはラウンドロビンにて優先順位を決める(S416)。
他方、調停制御部3は、複数のパケットの全ての発行元Coreが全閾値以下かどうか判定する(S417)。すなわち、同じ出力ポートへの出力先レジスタ(入力バッファ制御部1−1〜1−5の出力先レジスタ1−1−2〜1−1−5のいずれか)の全てに発行元Coreの温度が全閾値を超えていないパケットが格納されている場合、調停制御部3は、仕掛りTAT情報の大きな値のパケットを優先して発行し、さらに仕掛りTAT情報が同じときはラウンドロビンにて優先順位を決める(S418)。
このように、本実施の形態によれば、閾値を細分化することにより、温度の高いCoreから効率良く温度を下げることが可能となる。なお、実施の形態2及び3についても、本実施の形態を適用し、複数の閾値を使用することができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
上述の実施形態における各構成は、ハードウェア又はソフトウェア、もしくはその両方によって構成され、1つのハードウェア又はソフトウェアから構成してもよいし、複数のハードウェア又はソフトウェアから構成してもよい。情報処理装置の各機能(各処理)を、CPUやメモリ等を有するコンピュータにより実現してもよい。例えば、記憶装置に実施形態における調停方法を行うためのプログラムを格納し、各機能を、記憶装置に格納されたプログラムをCPUで実行することにより実現してもよい。
このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。