(57)【要約】【課題】複数のコアを備えるプロセッサにおいて、より簡単な制御で処理効率を向上させることができる調停装置を提供する。【解決手段】調停装置は、プロセッサに備えられた複数のコアそれぞれの温度を検出し、複数のコアのうちいずれかを宛先コアとするパケットのうち、検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行する。【選択図】図１
2020155004.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサに備えられた複数のコアと、
前記複数のコアそれぞれの温度を検出する複数の温度センサと、
前記複数のコアのうちいずれかを宛先コアとするパケットを格納するバッファと、
前記検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行する調停制御部と、
を備える調停装置。
【請求項２】
前記調停制御部は、宛先コアの温度が基準値を超えていないパケットが前記バッファに複数格納されている場合には、前記バッファに格納されている時間が長いパケットを優先して発行する
請求項１に記載の調停装置。
【請求項３】
前記調停制御部は、宛先コアの温度が基準値を超えていないパケットが前記バッファに格納されていない場合には、前記バッファに格納されている時間が長いパケットを優先して発行する
請求項１または請求項２に記載の調停装置。
【請求項４】
前記調停制御部は、宛先コアの温度が基準値を超えている場合であっても、一定時間発行されなかったパケットは優先して発行する
請求項１から請求項３の何れか一項に記載の調停装置。
【請求項５】
リードパケットのアクセス領域と、当該リードパケットに先行するライトパケットのアクセス領域とを比較するアドレス比較部を更に備え、
前記調停制御部は、前記アクセス領域が重なっていない場合にのみ、前記ライトパケットより前記リードパケットを優先して発行する
請求項１から請求項４の何れか一項に記載の調停装置。
【請求項６】
前記複数のコアのうち１つまたは隣接するコア毎にグループとして割り当て、当該割り当てられたグループ毎に前記温度センサがそれぞれ配置される
請求項１から請求項５の何れか一項に記載の調停装置。
【請求項７】
前記基準値は複数あり、それぞれ異なる値であって、
前記調停制御部は、前記基準値と判定した結果に応じた優先順位に従ってパケットを発行する
請求項１から請求項６の何れか一項に記載の調停装置。
【請求項８】
プロセッサに備えられた複数のコアそれぞれの温度を検出し、
前記複数のコアのうちいずれかを宛先コアとするパケットのうち、前記検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行する
調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、調停装置、及び調停方法に関する。
【背景技術】
【０００２】
一般的に、ＬＳＩ（Large Scale Integration）などの半導体装置は、その温度が高くなると、回路のリーク電流が大きくなり、消費電力が増加し、故障率も高くなる。特許文献１には、マルチプロセッサに備えられた複数のＣｏｒｅ（以下、「コア」とする。）毎に温度センサを実装し、その検出温度が高いコアの周波数、または電圧を低く制御することにより、当該コアの温度を下げる技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１３−５４６０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、コアの動作中に周波数や電圧を変更するため、仕掛り中のリクエストの処理やＰＬＬ（Phase Locked Loop）制御などの制御が非常に複雑となる。そのため、より簡単な制御で処理効率を向上させることが求められている。
【０００５】
そこでこの発明は、上述の課題を解決する調停装置、及び調停方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、調停装置は、プロセッサに備えられた複数のコアと、前記複数のコアそれぞれの温度を検出する複数の温度センサと、前記複数のコアのうちいずれかを宛先コアとするパケットを格納するバッファと、前記検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行する調停制御部と、を備えることを特徴とする。
【０００７】
本発明の第２の態様によれば、調停方法は、プロセッサに備えられた複数のコアそれぞれの温度を検出し、前記複数のコアのうちいずれかを宛先コアとするパケットのうち、前記検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数のコアを備えるプロセッサにおいて、より簡単な制御で処理効率を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施形態による調停装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態による第１バス制御部の機能構成図である。
【図３】本発明の第１の実施形態によるリードチャネル制御部が実行する調停処理の手順を示すフローチャートである。
【図４Ａ】本発明の第１の実施形態によるパケットの処理時間の一例を示すタイムチャートである。
【図４Ｂ】本発明の第１の実施形態によるパケットの処理時間の一例を示すタイムチャートである。
【図４Ｃ】本発明の第１の実施形態によるパケットの処理時間の一例を示すタイムチャートである。
【図５】本発明の第２の実施形態による第１バス制御部の機能構成図である。
【図６】本発明の第２の実施形態によるリードチャネル制御部が実行する調停処理の手順を示すフローチャートである。
【図７】本発明の第３の実施形態による第１バス制御部の機能構成図である。
【図８】本発明の第４の実施形態による第１バス制御部の機能構成図である。
【図９】本発明の調停装置の最小構成を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施形態による調停装置を図面を参照して説明する。
【００１１】
＜第１の実施形態＞
まず第１の実施形態について説明する。
図１は、本実施形態による調停装置の構成を示すブロック図である。
調停装置１００は、ＬＳＩ等の半導体装置である。調停装置１００は、演算処理装置であるコアを複数備えるマルチプロセッサである。
【００１２】
図１で示すように調停装置１００は、一例としては、第１バス制御部１と、第２バス制御部２と、複数のコアＣ０〜Ｃ７と、各コアＣ０〜Ｃ７に接続された複数のキャッシュＣＡ０〜ＣＡ７と、各コアＣ０〜Ｃ７に接続された複数のメモリＭ０〜Ｍ７と、各コアＣ０〜Ｃ７間に配置されるパケットを中継する複数のルータＲＴ０〜ＲＴ７と、各コアＣ０〜Ｃ７の温度を検出する複数の温度センサＳ０〜Ｓ７とを含んで構成される。
【００１３】
以下、説明の便宜を図るため、コアＣ０〜Ｃ７を総称してコアＣとし、キャッシュＣＡ０〜ＣＡ７を総称してキャッシュＣＡとし、メモリＭ０〜Ｍ７を総称してメモリＭとし、ルータＲＴ０〜ＲＴ７を総称してルータＲＴとし、温度センサＳ０〜Ｓ７を総称して温度センサＳとすることがある。
【００１４】
第２バス制御部２は、ＰＣＩｅ（Peripheral Component Interconnect express）のバスインタフェースに接続し、バスを介して接続する外部の装置とＰＣＩｅプロトコルで通信する。第２バス制御部２は、外部の装置から入力されたパケットを第１バス制御部１に出力する。また第２バス制御部２は、第１バス制御部１から入力されたパケットを外部の装置に出力する。
【００１５】
第１バス制御部１は、ＡＸＩ（Advanced eXtensible Interface）のバスインターフェースに接続し、バスを介して接続する各コアＣとＡＸＩプロトコルで通信する。第１バス制御部１は、第２バス制御部２から入力されたパケットをコアＣに出力する。また第１バス制御部１は、コアＣから入力されたパケットを第２バス制御部２に出力する。パケットには、アクセス領域から読み込みを行うリードパケットと、アクセス領域へ書き込みを行うライトパケットとがある。アクセス領域は、例えば各メモリＭにある記憶領域である。
【００１６】
ルータＲＴは、第１バス制御部１とコアＣとの通信を中継する中継装置である。各ルータＲＴを接続するバスは２次元のメッシュトポロジのネットワークを構成するが、その他のトポロジのネットワークを構成してもよい。図示する例では、ルータＲＴ０〜ＲＴ７は、マトリクス状に配置され、隣接するルータＲＴと行方向（横方向）及び列方向（縦方向）にそれぞれバスを介して接続されている。
【００１７】
コアＣは、プロセッサに備えられた演算処理装置である。コアＣは、入力されたパケットに基づいて演算処理を実行する。コアＣ０〜Ｃ７は、それぞれルータＲ０〜Ｒ７の近傍に配置され、各ルータＲ０〜Ｒ７とバスを介して接続されている。
キャッシュＣＡは、接続するコアＣが演算処理する際に用いるキャッシュである。
メモリＭは、接続するコアＣが演算処理するための各種データを記憶するメモリである。
【００１８】
温度センサＳは、それぞれ対応するコアＣ内（もしくは近傍）に配置され、対応するコアＣの温度を検出する。温度センサＳは、第１バス制御部１と接続されている。温度センサＳと第１バス制御部１とは、コアＣと第１バス制御部１間のバスを介して接続されてもよいし、その他の配線を介して接続されてもよい。温度センサＳは、検出した温度を示す温度情報を第１バス制御部１に出力する。
【００１９】
図２は、本実施形態による第１バス制御部の機能構成図である。
第１バス制御部１は、プロトコル変換部１１、温度情報管理部１２、リードチャネル制御部１３、ライトチャネル制御部１４、接続部１５を少なくとも備える。
【００２０】
プロトコル変換部１１は、第２バス制御部２から入力されたＰＣＩｅプロトコルのパケットをＡＸＩプロトコルのパケットに変換する。プロトコル変換部１１は、変換したリードパケットをリードチャネル制御部１３に出力する。また、プロトコル変換部１１は、変換したライトパケットをライトチャネル制御部１４に出力する。また、プロトコル変換部１１は、リードチャネル制御部１３またはライトチャネル制御部１４から入力されたＡＸＩプロトコルのパケットをＰＣＩｅプロトコルのパケットに変換して第２バス制御部２に出力する。
【００２１】
温度情報管理部１２は、各温度センサＳそれぞれから温度情報を取得し、取得した温度情報を記憶する。また、温度情報管理部１２は、温度が所定の基準値を超えたコアＣを示す閾値超え情報をリード調停制御部１３２に出力する。基準値は、コアＣの処理負荷が高いとみなす温度の閾値である。なお、基準値は、設定変更が可能である。
【００２２】
リードチャネル制御部１３は、リードパケットの発行を制御する。発行とは、パケットをその宛先のコアＣ（以下、「宛先コアＣ」とする。）に出力することである。リードチャネル制御部１３は、リードバッファ１３１と、リード調停制御部１３２と、セレクタ１３３と、出力レジスタ１３４と、リプライデータ制御部１３５とを備える。
【００２３】
リードバッファ１３１は、プロトコル変換部１１から入力されたリードパケットを格納するバッファである。本実施形態では、一例として、リードバッファ１３１は、番号が割り当てられた８つのエントリを有し、パケットを８つ格納可能である。なお、リードバッファ１３１は、ＬＳＩのサイズや電力等を考慮して８つ以上のエントリを持つことも可能である。リードバッファ１３１は、プロトコル変換部１１から入力されたパケットを、空いているエントリのうち最も番号の小さいエントリに格納する。
【００２４】
リード調停制御部１３２は、温度情報管理部１２から入力された閾値超え情報と、リードバッファ１３１に格納されているパケットに付与されている宛先コアＣを示す宛先コア情報とに基づいて、発行するリードパケットの調停を行う。リード調停制御部１３２は、当該調停により、リードパケット間における発行順の追い越しを可能とする。ここで、温度の高いコアＣは、処理中のパケットが多く負荷が高いため、パケットを処理するまでの待ち時間が長い可能性が高い。逆に温度の低いコアＣは、処理中のパケットが少なく負荷が低いため、パケットを処理するまでの待ち時間が短い可能性が高い。そのため、リード調停制御部１３２は、宛先コアＣの温度が基準値を超えているパケットと宛先コアＣの温度が基準値を超えていないパケットがリードバッファ１３１に格納されている場合、宛先コアＣの温度が基準値を超えたパケットよりも、宛先コアＣの温度が基準値を超えていないパケットを優先して発行する。また、リード調停制御部１３２は、宛先コアＣの温度が基準値を超えていないパケットがリードバッファ１３１に複数格納されている場合には、宛先コアＣの温度が基準値を超えていないパケットのうちリードバッファ１３１に格納されている時間が長いパケットを優先して発行する。同様に、リード調停制御部１３２は、宛先コアＣの温度が基準値を超えていないパケットがリードバッファ１３１に格納されてない場合には、リードバッファ１３１に格納されている時間が長いパケットを優先して発行する。なお、宛先コアＣの温度が基準値を超えているパケットが調停に負け続けて発行できない状態になると、パケットの発行元でタイムアウトを検出してしまう。そのため、リード調停制御部１３２は、宛先コアＣの温度が基準値を超えている場合であっても、一定時間発行されなかったパケットは優先して発行する。当該一定時間は、例えばパケットの発行元でタイムアウトを検出する時間と、コアＣにリードパケットを発行してからリプライデータを受信するまでのレイテンシとに基づく時間である。また、一定時間発行されなかったパケットとは、リードバッファ１３１に格納されている格納時間が一定時間以上であるパケットである。リード調停制御部１３２は、発行するパケットを示すセレクト信号をセレクタ１３３に出力する。
【００２５】
セレクタ１３３は、リード調停制御部１３２から入力されたセレクト信号に従って、リードバッファ１３１からリードパケットを読み出し、読み出したリードパケットを出力レジスタ１３４に格納する。
出力レジスタ１３４は、発行するリードパケットを格納するレジスタである。出力レジスタ１３４は、格納されたリードパケットを接続部１５から発行する。
【００２６】
リプライデータ制御部１３５は、接続部１５を介して、出力レジスタ１３４から発行されたリードパケットに対する応答であるリプライデータを受信する。リプライデータ制御部１３５は、受信したリプライデータをプロトコル変換部１１に出力する。
【００２７】
ライトチャネル制御部１４は、プロトコル変換部１１から入力されたライトパケットを接続部１５から発行する。
接続部１５は、プロセッサに備えられた複数のコアＣとバスを介して接続する。接続部１５は、ＡＸＩプロトコルの内部ロジックに従ってパケットを入出力する。
【００２８】
図３は、本実施形態によるリードチャネル制御部が実行する調停処理の手順を示すフローチャートである。
次に、リードチャネル制御部１３による調停処理を説明する。
リードチャネル制御部１３は、出力レジスタ１３４がパケットを発行して空いたときに本図に示す処理を実行する。
【００２９】
まず、リードチャネル制御部１３のリード調停制御部１３２は、一定時間以上発行されていないパケットがリードバッファ１３１に格納されているか否かを判定する（ステップＳ１０１）。
【００３０】
リード調停制御部１３２は、一定時間以上発行されていないパケットがある場合（ステップＳ１０１；ＹＥＳ）、一定時間以上発行されていないパケットのうち格納時間が最も長いパケットを選択する（ステップＳ１０２）。
【００３１】
一方、リード調停制御部１３２は、一定時間以上発行されていないパケットがない場合（ステップＳ１０１；ＮＯ）、温度情報管理部１２から閾値超え情報を取得する（ステップＳ１０３）。
【００３２】
続いて、リード調停制御部１３２は、閾値超え情報に基づいて、宛先コアＣの温度が基準値以下であるパケットがリードバッファ１３１に格納されているか否かを判定する（ステップＳ１０４）。
【００３３】
リード調停制御部１３２は、宛先コアＣの温度が基準値以下であるパケットがリードバッファ１３１に格納されている場合（ステップＳ１０４；ＹＥＳ）、宛先コアＣの温度が基準値以下であるパケットのうち格納時間が最も長いパケットを選択する（ステップＳ１０５）。
【００３４】
一方、リード調停制御部１３２は、宛先コアＣの温度が基準値以下であるパケットがリードバッファ１３１に格納されていない場合（ステップＳ１０４；ＮＯ）、すなわち宛先コアＣの温度が基準値を超えたパケットのみがリードバッファ１３１に格納されている場合、格納時間が最も長いパケットを選択する（ステップＳ１０６）。
【００３５】
リード調停制御部１３２は、選択したパケットを示すセレクト信号をセレクタ１３３に出力する。セレクタ１３３は、入力されたセレクト信号が示すパケットをリードバッファ１３１から読み出し、読み出したパケットを出力レジスタ１３４に格納する。出力レジスタ１３４は、格納されたパケットを発行する（ステップＳ１０７）。その後、処理を終了する。
【００３６】
上述の処理により、リード調停制御部１３２は、検出した温度が基準値を超えた宛先コアＣのパケットよりも基準値を超えていない宛先コアＣのパケットを優先して発行する。これにより、温度の低い、つまり負荷の低いコアＣを宛先とするパケットを優先して発行することができる。すなわち、負荷の低いコアＣのパケット処理の優先順位を上げて、そのコアＣの動作率を上げることにより、プロセッサ全体としての処理効率を向上させることができる。
【００３７】
図４Ａ〜図４Ｃは、パケットの処理時間の一例を示すタイムチャートである。
本図を参照して具体的な効果について説明する。本図には、第１バス制御部１がリードパケットを発行してからそのリプライデータを受信するまでのレイテンシが１００Ｔである場合を例示している。Ｔは所定時間を示す単位である。またリードバッファ１３１には、古い（格納時間の長い）順に宛先がそれぞれコアＣ０〜コアＣ７であるリードパケットＲ１〜Ｒ８が格納されている。
【００３８】
図４Ａは、全てのコアの温度が基準値を超えていない場合におけるパケットの処理時間の一例を示すタイムチャートである。
この場合には、第１バス制御部１は、格納時間の長い順にリードパケットＲ１〜Ｒ８を発行する。具体的には、第１バス制御部１は、タイミングＴ１にリードパケットＲ１を発行し、その後タイミングＴ２にリードパケットＲ２を発行し、その後タイミングＴ３にリードパケットＲ３を発行し、その後タイミングＴ４にリードパケットＲ４を発行し、その後タイミングＴ５にリードパケットＲ５を発行し、その後タイミングＴ６にリードパケットＲ６を発行し、その後タイミングＴ７にリードパケットＲ７を発行し、その後タイミングＴ８にリードパケットＲ８を発行する。
【００３９】
全てのコアＣは温度が基準値以下であるため、その負荷が低い。よって、第１バス制御部１は、リードパケットＲ１〜Ｒ８に対するリプライデータＲＤ１〜ＲＤ８を通常のレイテンシ１００Ｔで受信する。具体的には、第１バス制御部１は、リードパケットＲ１を発行してからレイテンシ１００Ｔ後のタイミングＴ１０１にリプライデータＲＤ１を受信する。また、第１バス制御部１は、リードパケットＲ２を発行してからレイテンシ１００Ｔ後のタイミングＴ１０２にリプライデータＲＤ２を受信する。また、第１バス制御部１は、リードパケットＲ３を発行してからレイテンシ１００Ｔ後のタイミングＴ１０３にリプライデータＲＤ３を受信する。また、第１バス制御部１は、リードパケットＲ４を発行してからレイテンシ１００Ｔ後のタイミングＴ１０４にリプライデータＲＤ４を受信する。また、第１バス制御部１は、リードパケットＲ５を発行してからレイテンシ１００Ｔ後のタイミングＴ１０５にリプライデータＲＤ５を受信する。また、第１バス制御部１は、リードパケットＲ６を発行してからレイテンシ１００Ｔ後のタイミングＴ１０６にリプライデータＲＤ６を受信する。また、第１バス制御部１は、リードパケットＲ７を発行してからレイテンシ１００Ｔ後のタイミングＴ１０７にリプライデータＲＤ７を受信する。また、第１バス制御部１は、リードパケットＲ８を発行してからレイテンシ１００Ｔ後のタイミングＴ１０８にリプライデータＲＤ８を受信する。これは、各コアＣの温度を考慮せずにパケットを発行する関連する技術においても同様である。
【００４０】
図４Ｂ及び図４Ｃは、一部のコアの温度が基準値を超えている場合におけるパケットの処理時間の一例を示すタイムチャートである。
本図には、コアＣ０〜Ｃ３の温度が基準値を超えており、コアＣ４〜Ｃ７の温度が基準値を超えていない場合を例示する。
【００４１】
図４Ｂは、関連する技術におけるパケットの処理時間の一例を示すタイムチャートである。
宛先コアＣの温度を考慮した調停を行わない関連する技術では、全てのコアＣ０〜Ｃ７の温度が基準値以下である場合と同様に、格納時間の長い順にリードパケットＲ１〜Ｒ８を発行する（タイミングＴ１〜Ｔ８）。温度が基準値以下であるコアＣ４〜Ｃ７は、その負荷が低いため、通常のレイテンシ１００ＴでリプライデータＲＤ５〜ＲＤ８を返信する（タイミングＴ１０５〜Ｔ１０８）。一方、温度が基準値を超えたコアＣ０〜Ｃ３では、その負荷が高いため処理待ちが発生し、リプライデータＲＤ１〜ＲＤ４を返信する時間が通常のレイテンシ１００Ｔより長くなる（タイミングＴ１６１〜Ｔ１６４）。
【００４２】
図４Ｃは、本実施形態におけるパケットの処理時間の一例を示すタイムチャートである。
一方、本実施形態における第１バス制御部１は、宛先コアＣの温度が基準値を超えていないリードパケットＲ５〜Ｒ８を優先して発行する。すなわち、第１バス制御部１は、まず宛先コアＣの温度が基準値以下であるリードパケットＲ５〜Ｒ８をその順に発行し（タイミングＴ１〜Ｔ４）、その後宛先コアＣの温度が基準値を超えるリードパケットＲ１〜Ｒ４をその順に発行する（タイミングＴ５〜Ｔ８）。コアＣ４〜Ｃ７は温度が低いため、その負荷が低い。よって、第１バス制御部１は、リードパケットＲ５〜Ｒ８に対するリプライデータＲＤ５〜ＲＤ８を通常のレイテンシ１００Ｔで受信する（タイミングＴ１０１〜Ｔ１０４）。その結果、第１バス制御部１は、温度が基準値以下であるコアＣ４〜Ｃ７からのリプライデータを関連する技術よりも４Ｔ早く受信することが可能である。
【００４３】
このように、本実施形態によれば、リード調停制御部１３２は、検出した温度が基準値を超えた宛先コアＣのパケットよりも基準値を超えていない宛先コアＣのパケットを優先して発行する。これにより、負荷の低いコアＣを宛先とするパケットを優先して発行することができる。すなわち、負荷の低いコアＣのパケット処理の優先順位を上げて、そのコアＣの動作率を上げることにより、プロセッサ全体としての処理効率を向上させることができる。また、負荷の高いコアＣの消費電力を削減し、故障率の低減を図ることができる。
【００４４】
また、リード調停制御部１３２は、宛先コアＣの温度が基準値を超えていないパケットがリードバッファ１３１に複数格納されている場合には、リードバッファ１３１に格納されている時間が長いパケットを優先して発行する。同様に、リード調停制御部１３２は、宛先コアＣの温度が基準値を超えていないパケットがリードバッファ１３１に格納されていない場合には、リードバッファ１３１に格納されている時間が長いパケットを優先して発行する。これにより、格納時間の長いパケットを優先して発行することができるため、パケットの発行元でタイムアウトが検出されることを防ぐことができる。
【００４５】
また、リード調停制御部１３２は、宛先コアＣの温度が基準値を超えている場合であっても、一定時間発行されなかったパケットは優先して発行する。これにより、負荷の高いコアＣを宛先とするパケットが調停に負け続けて発行できない状態となることがないため、パケットの発行元でタイムアウトが検出されることを防ぐことができる。
【００４６】
＜第２の実施形態＞
続いて第２の実施形態について説明する。
図５は、本実施形態による第１バス制御部の機能構成図である。
本図において第１の実施形態と同一の構成には同一の符号を付し、その説明を省略する。
第１の実施形態では、第１バス制御部１は宛先コアＣの温度情報に基づいてリードパケットの発行のみを調停しているが、本実施形態では、第１バス制御部１Ａは宛先コアＣの温度情報に基づいて更にライトパケットの発行についても調停している点が異なる。
【００４７】
本実施形態による第１バス制御部１Ａのライトチャネル制御部１４Ａは、ライトバッファ１４１と、ライト調停制御部１４２と、セレクタ１４３と、出力レジスタ１４４とを備える。
【００４８】
ライトバッファ１４１は、プロトコル変換部１１から入力されたライトパケットを格納するバッファである。本実施形態では、一例として、ライトバッファ１４１は、番号が割り当てられた８つのエントリを有し、パケットを８つ格納可能である。ライトバッファ１４１は、プロトコル変換部１１から入力されたパケットを、空いているエントリのうち最も番号の小さいエントリに格納する。
【００４９】
ライト調停制御部１４２は、温度情報管理部１２から入力された閾値超え情報と、ライトバッファ１４１に格納されているパケットに付与されている宛先コア情報とに基づいて、発行するライトパケットの調停を行う。ライト調停制御部１４２は、当該調停により、ライトパケット間における発行順の追い越しを可能とする。例えば、ライト調停制御部１４２は、宛先コアＣの温度が基準値を超えているパケットと宛先コアＣの温度が基準を超えていないパケットがライトバッファ１４１に格納されている場合、宛先コアＣが基準値を超えたパケットよりも、宛先コアＣが基準値を超えていないパケットを優先して発行する。また、ライト調停制御部１４２は、宛先コアＣの温度が基準値を超えていないパケットがライトバッファ１４１に複数格納されている場合には、ライトバッファ１４１に格納されている時間が長いパケットを優先して発行する。同様に、ライト調停制御部１４２は、宛先コアＣの温度が基準値を超えていないパケットがライトバッファ１４１に格納されてない場合には、ライトバッファ１４１に格納されている時間が長いパケットを優先して発行する。なお、ライト調停制御部１４２は、宛先コアＣの温度が基準値を超えている場合であっても、一定時間発行されなかったパケットは優先して発行する。ライト調停制御部１４２は、発行するパケットを示すセレクト信号をセレクタ１４３に出力する。
【００５０】
セレクタ１４３は、ライト調停制御部１４２から入力されたセレクト信号に従って、ライトバッファ１４１からライトパケットを読み出し、読み出したライトパケットを出力レジスタ１４４に格納する。
出力レジスタ１４４は、発行するライトパケットを格納するレジスタである。出力レジスタ１４４は、格納されたライトパケットを接続部１５から発行する。
【００５１】
また本実施形態による第１バス制御部１Ａは、第１の実施形態による第１バス制御部１の構成に加えてアドレス比較部１６を更に備える。
アドレス比較部１６は、リードバッファ１３１に格納されている各リードパケットのアドレスと読み出しサイズとを読み出す。リードパケットのアドレスとは、リードパケットによる読み出しを開始する記憶領域のアドレスである。また、アドレス比較部１６は、当該リードパケットに先行するライトパケットのアドレスと書き込みサイズとをライトバッファ１４１から読み出す。リードパケットに先行するライトパケット（以下、「先行ライトパケット」とする。）とは、当該リードパケットより先に第１バス制御部１Ａに入力されたライトパケットである。また、ライトパケットのアドレスとは、ライトパケットによる書き込みを開始する記憶領域のアドレスである。そして、アドレス比較部１６は、読み出した情報に基づいて、リードパケットのアクセス領域と、先行するライトパケットのアクセス領域とを比較し、アクセス領域が重なる（被る）か否かを判定する。アクセス領域が重なるとは、アクセス領域の一部または全部のアドレスが同一であることである。アドレス比較部１６は、その判定結果を示す追い越し情報をリード調停制御部１３２Ａに出力する。
【００５２】
本実施形態による第１バス制御部１Ａのリードチャネル制御部１３Ａは、第１の実施形態におけるリード調停制御部１３２に代えてリード調停制御部１３２Ａを備える。
リード調停制御部１３２Ａは、第１の実施形態におけるリード調停制御部１３２の機能に加えて、リードパケットによるライトパケットの追い越し機能を有する。ここで、リードパケットとその先行ライトパケットとのアクセス領域が重なっている場合には、リードパケットが先行ライトパケットより先に発行されると、読み込むデータに欠損や不整合が生じる可能性がある。そこで、リード調停制御部１３２Ａは、リードパケットのアクセス領域と先行ライトパケットのアクセス領域とが重なっていない場合にのみ、先行ライトパケットよりリードパケットを優先して発行する。具体的には、リード調停制御部１３２Ａは、リードパケットのアクセス領域と先行ライトパケットのアクセス領域とが重なっていない場合に、リードパケットの宛先コアＣの温度が基準値を超えておらず、先行ライトパケットの宛先コアＣの温度が基準値を超えているときには、先行ライトパケットよりリードパケットを優先して発行する。
【００５３】
次に、ライトチャネル制御部１４Ａによる処理を説明する。
本実施形態におけるライトチャネル制御部１４Ａが実行するパケット発行の調停処理は、図３に示す第１の実施形態におけるリードチャネル制御部１３が実行するパケット発行の調停処理と同様である。
【００５４】
すなわち、ライトチャネル制御部１４Ａのライト調停制御部１４２は、検出した温度が基準値を超えた宛先コアＣのパケットよりも基準値を超えていない宛先コアＣのパケットを優先して発行する。これにより、負荷の低いコアＣを宛先とするパケットを優先して発行することができる。すなわち、負荷の低いコアＣのパケット処理の優先順位を上げて、そのコアＣの動作率を上げることにより、プロセッサ全体としての処理効率を向上させることができる。
【００５５】
図６は、本実施形態によるリードチャネル制御部が実行する調停処理の手順を示すフローチャートである。
次に、リードチャネル制御部１３Ａによる処理を説明する。
リードチャネル制御部１３Ａは、出力レジスタ１３４がパケットを発行して空いたときに本図に示す処理を実行する。
【００５６】
ステップＳ２０１〜ステップＳ２０６の処理は、上述したステップＳ１０１〜ステップＳ１０６の処理と同様であるため、その説明を省略する。
【００５７】
リード調停制御部１３２Ａは、追い越し情報に基づいて、選択したリードパケットに先行するライトパケットのうちアクセス領域が重なるものがライトバッファ１４１に格納されているか否かを判定する（ステップＳ２０７）。リード調停制御部１３２Ａは、アクセス領域の重なる先行ライトパケットがある場合（ステップＳ２０７；ＹＥＳ）、当該リードパケットを選択対象から外し、ステップＳ２０１の処理に戻る。
【００５８】
一方、リード調停制御部１３２Ａは、アクセス領域の重なる先行ライトパケットがない場合（ステップＳ２０７；ＮＯ）、選択したパケットを示すセレクト信号をセレクタ１３３に出力する。セレクタ１３３は、入力されたセレクト信号が示すパケットをリードバッファ１３１から読み出し、読み出したパケットを出力レジスタ１３４に格納する。出力レジスタ１３４は、格納されたパケットを発行する（ステップＳ２０８）。その後、処理を終了する。
【００５９】
このように、本実施形態によれば、リード調停制御部１３２Ａは、リードパケットのアクセス領域と先行ライトパケットのアクセス領域とが重なっていない場合に、リードパケットの宛先コアＣの温度が基準値を超えておらず、先行ライトパケットの宛先コアＣの温度が基準値を超えているときには、先行ライトパケットよりリードパケットを優先して発行する。つまり、リード調停制御部１３２Ａは、リードパケットのアクセス領域と先行ライトパケットのアクセス領域とが重なっていない場合にのみ、先行ライトパケットよりリードパケットを優先して発行するため、データに欠損や不整合が生じない。よって、データの整合性を保ちつつ、リードパケットによるライトパケットの追い越しが可能となる。これにより、負荷の低いコアＣの動作率を更に上げて、プロセッサ全体としての処理効率を更に向上させることができる。
【００６０】
また、ライト調停制御部１４２は、宛先コアＣの温度が基準値を超えている場合であっても、一定時間発行されなかったパケットは優先して発行する。これにより、ライトパケット間の追い越しやリードパケットによるライトパケットの追い越しにより、負荷の高いコアＣを宛先とするライトパケットが調停に負け続けて発行できない状態となることがないため、パケットの発行元でタイムアウトが検出されることを防ぐことができる。
【００６１】
＜第３の実施形態＞
続いて第３の実施形態について説明する。
図７は、本実施形態による第１バス制御部の機能構成図である。
本図において第１の実施形態と同一の構成には同一の符号を付し、その説明を省略する。
ＬＳＩのレイアウトにおける実装制限や混雑の回避のため、コアＣ毎に温度センサＳを配置できないことがある。そのため、本実施形態では、コアＣ毎の温度センサＳが配置できない場合に、温度センサＳの配置数とその位置について工夫している。第１の実施形態では、複数のコアＣ毎にそれぞれ温度センサＳを配置しているが、本実施形態では、ＬＳＩにおけるコアＣのレイアウトに基づいて複数のコアＣに対して１つの温度センサＳを配置する点が異なる。つまり、調停装置１００は、複数のコアＣのうち１つまたは隣接するコアＣ毎にグループとして割り当て、当該割り当てられたグループ毎に温度センサＳがそれぞれ配置される。
【００６２】
一例として、調停装置１００は、コアＣ０とコアＣ１とをエリアＡ１のグループとし、コアＣ２とコアＣ３とをエリアＡ２のグループとし、コアＣ４とコアＣ５とをエリアＡ３のグループとし、コアＣ６とコアＣ７とをエリアＡ４のグループとして、２つの隣接するコアＣ毎にグループとして割り当てる。そして、複数の温度センサＳは、グループ毎にそれぞれ１つ配置される。例えば、温度センサＳは、グループに属する２つのコアＣの中間に配置される。つまり、各温度センサＳは、それぞれ対応するグループの温度を検出する。
【００６３】
本実施形態による第１バス制御部１Ｂのリードチャネル制御部１３Ｂは、第１の実施形態におけるリード調停制御部１３２に代えてリード調停制御部１３２Ｂを備える。
リード調停制御部１３２Ｂは、グループの温度が基準値を超えた宛先コアＣのパケットよりも、グループの温度が基準値を超えていない宛先コアＣのパケットを優先して発行する。また、リード調停制御部１３２Ｂは、グループの温度が基準値を超えていない宛先コアＣのパケットがリードバッファ１３１に複数格納されている場合には、グループの温度が基準値を超えていない宛先コアＣのパケットのうちリードバッファ１３１に格納されている時間が長いパケットを優先して発行する。同様に、リード調停制御部１３２Ｂは、グループの温度が基準値を超えていない宛先コアＣのパケットがリードバッファ１３１に格納されてない場合には、リードバッファ１３１に格納されている時間が長いパケットを優先して発行する。なお、リード調停制御部１３２Ｂは、宛先コアＣのグループの温度が基準値を超えている場合であっても、一定時間発行されなかったパケットは優先して発行する。リード調停制御部１３２Ｂは、発行するパケットを示すセレクト信号をセレクタ１３３に出力する。
【００６４】
このように、本実施形態によれば、複数のコアＣのうち１つまたは隣接するコアＣ毎にグループとして割り当て、当該割り当てられたグループ毎に温度センサＳがそれぞれ配置される。これにより、ＬＳＩのレイアウトによりコアＣ毎に温度センサＳを配置できない場合であっても、温度が基準値を超えていないグループに属するコアＣのパケットを優先して発行することにより、負荷の低いコアＣ動作率を上げて、プロセッサ全体の処理効率を向上させることができる。また、温度センサＳの配置数を減らしてコストを削減することができる。
【００６５】
＜第４の実施形態＞
続いて第４の実施形態について説明する。
図８は、本実施形態による第１バス制御部の機能構成図である。
本図において第１の実施形態と同一の構成には同一の符号を付し、その説明を省略する。
第１の実施形態では、温度の基準値を１つのみ設定しているが、本実施形態では、基準値の設定を細分化している点が異なる。
【００６６】
すなわち、本実施形態における基準値は複数あり、それぞれ異なる値である。例えば、本実施形態による第１バス制御部１Ｃの温度情報管理部１２Ｃは、第１基準値を５０度、第２基準値を７０度、第３基準値を９０度と設定する。そして、温度情報管理部１２Ｃは、温度が第１基準値を超えかつ第２基準値を超えないコアＣを第１基準値超えコアＣとし、温度が第２基準値を超えかつ第３基準値を超えないコアＣを第２基準値超えコアＣとし、温度が第３基準値を超えたコアＣを第３基準値超えコアＣとして、閾値超え情報をリード調停制御部１３２Ｃに出力する。
【００６７】
本実施形態による第１バス制御部１Ｃのリードチャネル制御部１３Ｃは、第１の実施形態におけるリード調停制御部１３２に代えてリード調停制御部１３２Ｃを備える。
リード調停制御部１３２Ｃは、基準値と判定した結果に応じた優先順位に従ってパケットを発行する。具体的には、リード調停制御部１３２Ｃは、宛先コアＣの温度が第１基準値を超えていないパケットの優先順位を最も高い「１」にし、宛先コアＣが第１基準値超えコアＣであるパケットの優先順位をその次に高い「２」にし、宛先コアＣが第２基準値超えコアＣであるパケットの優先順位をその次に高い「３」にし、宛先コアＣが第３基準値超えコアＣであるパケットの優先順位を最も低い「４」にする。そして、リード調停制御部１３２Ｃは、その優先順位に従ってパケットを発行する。すなわち、リード調停制御部１３２Ｃは、優先順位の高いパケットを優先して発行する。また、リード調停制御部１３２Ｃは、優先順位が同一であるパケットについては、リードバッファ１３１に格納されている時間が長いパケットを優先して発行する。
【００６８】
なお、実施形態では、基準値が３つである場合を例に説明したが、これに限らず、基準値は２つであってもよいし、４つ以上であってもよい。
【００６９】
このように、本実施形態によれば、温度の基準値は複数あり、それぞれ異なる値であって、リード調停制御部１３２Ｃは、基準値と判定した結果に応じた優先順位に従ってパケットを発行する。このように基準値を細分化することにより、温度の低いコアＣから順に効率的に動作率を上げて、プロセッサ全体としての処理効率を向上させることができる。
【００７０】
＜第５の実施形態＞
続いて第５の実施形態について説明する。
図９は、調停装置の最小構成を示す図である。
調停装置１００は、少なくとも、プロセッサに備えられた複数のコアＣと、複数の温度センサＳと、リードバッファ１３１と、リード調停制御部１３２とを備えればよい。
温度センサＳは、複数のコアＣそれぞれの温度を検出する。
リードバッファ１３１は、複数のコアＣのうちいずれかを宛先コアＣとするパケットを格納する。
リード調停制御部１３２は、検出した温度が基準値を超えた宛先コアＣのパケットよりも基準値を超えていない宛先コアＣのパケットを優先して発行する。
【００７１】
本実施形態によれば、負荷の低いコアＣを宛先とするパケットを優先して発行することができる。すなわち、負荷の低いコアＣのパケット処理の優先順位を上げて、そのコアＣの動作率を上げることにより、プロセッサ全体としての処理効率を向上させることができる。また、負荷の高いコアＣの消費電力を削減し、故障率の低減を図ることができる。
【００７２】
以上本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【００７３】
例えば、上述した実施形態では、リード調停制御部１３２，１３２Ａ，１３２Ｂ，１３２Ｃ、及びライト調停制御部１４２は、温度情報、パケットに付与されている宛先コア情報、及びパケットの格納時間に基づいてパケットの発行を調停しているが、これに限らず、例えば各コアＣへのレイテンシなど優先順位をつけられる他の情報を用いて調停してもよい。
【００７４】
また、上述した各実施形態や各変形例の１つまたは複数、上述した各実施形態や各変形例の一部または全部を組み合わせて本発明の一態様を実現するようにしてもよい。
【００７５】
上述の調停装置１００は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００７６】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００７７】
１００・・・調停装置
１，１Ａ，１Ｂ，１Ｃ・・・第１バス制御部
１１・・・プロトコル変換部
１２，１２Ｃ・・・温度情報管理部
１３，１３Ａ，１３Ｂ，１３Ｃ・・・リードチャネル制御部
１３１・・・リードバッファ
１３２，１３２Ａ，１３２Ｂ，１３２Ｃ・・・リード調停制御部
１３３・・・セレクタ
１３４・・・出力レジスタ
１３５・・・リプライデータ制御部
１４，１４Ａ・・・ライトチャネル制御部
１４１・・・ライトバッファ
１４２・・・ライト調停制御部
１４３・・・セレクタ
１４４・・・出力レジスタ
１５・・・接続部
１６・・・アドレス比較部
２・・・第２バス制御部
Ｃ・・・コア
Ｓ・・・温度センサ
ＣＡ・・・キャッシュ
Ｍ・・・メモリ
ＲＴ・・・ルータ
【図１】
2020155004.tif 000003
【図２】
2020155004.tif 000004
【図３】
2020155004.tif 000005
【図４Ａ】
2020155004.tif 000006
【図４Ｂ】
2020155004.tif 000007
【図４Ｃ】
2020155004.tif 000008
【図５】
2020155004.tif 000009
【図６】
2020155004.tif 000010
【図７】
2020155004.tif 000011
【図８】
2020155004.tif 000012
【図９】
2020155004.tif 000013
【手続補正書】
【提出日】令和2年4月30日(2020.4.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサに備えられた複数のコアと、
前記複数のコアそれぞれの温度を検出する複数の温度センサと、
前記複数のコアのうちいずれかを宛先コアとするパケットを格納するバッファと、
前記宛先コアに接続されるメモリにおける記憶領域から読み込みを行うリードパケットによって示されるアドレスであり前記記憶領域のうち読み出し対象の記憶領域のアドレスと、前記メモリの記憶領域へ書き込みを行うライトパケットのうち前記リードパケットに先行するライトパケットによって示されるアドレスであって前記記憶領域のうち書き込み対象の記憶領域のアドレスとを比較するアドレス比較部と、
前記検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行する調停制御部と、を有し、
前記調停制御部は、前記読み出し対象の記憶領域のアドレスと前記書き込み対象の記憶領域のアドレスとが重なっていない場合に、前記ライトパケットより前記リードパケットを優先して発行する
調停装置。
【請求項２】
前記調停制御部は、宛先コアの温度が基準値を超えていないパケットが前記バッファに複数格納されている場合には、前記バッファに格納されている時間が長いパケットを優先して発行する
請求項１に記載の調停装置。
【請求項３】
前記調停制御部は、宛先コアの温度が基準値を超えていないパケットが前記バッファに格納されていない場合には、前記バッファに格納されている時間が長いパケットを優先して発行する
請求項１または請求項２に記載の調停装置。
【請求項４】
前記調停制御部は、宛先コアの温度が基準値を超えている場合であっても、一定時間発行されなかったパケットは優先して発行する
請求項１から請求項３の何れか一項に記載の調停装置。
【請求項５】
前記複数のコアのうち１つまたは隣接するコア毎にグループとして割り当て、当該割り当てられたグループ毎に前記温度センサがそれぞれ配置される
請求項１から請求項４の何れか一項に記載の調停装置。
【請求項６】
前記基準値は複数あり、それぞれ異なる値であって、
前記調停制御部は、前記基準値と当該基準値を用いて判定した結果との組み合わせに応じて優先順位を決定し、当該決定された優先順位に従ってパケットを発行する
請求項１から請求項５の何れか一項に記載の調停装置。
【請求項７】
温度センサが、プロセッサに備えられた複数のコアそれぞれの温度を検出し、
バッファが、前記複数のコアのうちいずれかを宛先コアとするパケットを格納し、
アドレス比較部が、前記宛先コアに接続されるメモリにおける記憶領域から読み込みを行うリードパケットによって示されるアドレスであり前記記憶領域のうち読み出し対象の記憶領域のアドレスと、前記メモリの記憶領域へ書き込みを行うライトパケットのうち前記リードパケットに先行するライトパケットによって示されるアドレスであって前記記憶領域のうち書き込み対象の記憶領域のアドレスとを比較し、
調停制御部が、前記検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行し、
前記調停制御部が、前記読み出し対象の記憶領域のアドレスと前記書き込み対象の記憶領域のアドレスとが重なっていない場合に、前記ライトパケットより前記リードパケットを優先して発行する
調停方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の第１の態様は、プロセッサに備えられた複数のコアと、前記複数のコアそれぞれの温度を検出する複数の温度センサと、前記複数のコアのうちいずれかを宛先コアとするパケットを格納するバッファと、前記宛先コアに接続されるメモリにおける記憶領域から読み込みを行うリードパケットによって示されるアドレスであり前記記憶領域のうち読み出し対象の記憶領域のアドレスと、前記メモリの記憶領域へ書き込みを行うライトパケットのうち前記リードパケットに先行するライトパケットによって示されるアドレスであって前記記憶領域のうち書き込み対象の記憶領域のアドレスとを比較するアドレス比較部と、前記検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行する調停制御部と、を有し、前記調停制御部は、前記読み出し対象の記憶領域のアドレスと前記書き込み対象の記憶領域のアドレスとが重なっていない場合に、前記ライトパケットより前記リードパケットを優先して発行する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の第２の態様は、温度センサが、プロセッサに備えられた複数のコアそれぞれの温度を検出し、バッファが、前記複数のコアのうちいずれかを宛先コアとするパケットを格納し、アドレス比較部が、前記宛先コアに接続されるメモリにおける記憶領域から読み込みを行うリードパケットによって示されるアドレスであり前記記憶領域のうち読み出し対象の記憶領域のアドレスと、前記メモリの記憶領域へ書き込みを行うライトパケットのうち前記リードパケットに先行するライトパケットによって示されるアドレスであって前記記憶領域のうち書き込み対象の記憶領域のアドレスとを比較し、調停制御部が、前記検出した温度が基準値を超えた宛先コアのパケットよりも基準値を超えていない宛先コアのパケットを優先して発行し、前記調停制御部が、前記読み出し対象の記憶領域のアドレスと前記書き込み対象の記憶領域のアドレスとが重なっていない場合に、前記ライトパケットより前記リードパケットを優先して発行する調停方法である。