(57)【要約】      （修正有）【課題】共有メモリへアクセスを行うメモリアクセス装置において、的確にアクセス要求の発行を抑止するメモリアクセス装置、メモリアクセス制御方法、プログラム及びマルチコアプロセッサを提供する。【解決手段】複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、メモリアクセス装置と共有メモリとの間に形成されるメモリネットワークに対して発行する発行手段１１を有する。発行手段は、メモリアクセス要求の種類に応じた、メモリネットワークに対する負荷を示す負荷値を計測する計測手段１１２と、計測手段による計測結果に基づいて、メモリネットワークに対するメモリアクセス要求の発行を抑止する抑止手段１１４と、を有する。【選択図】図３
2018169837.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行する発行手段を有し、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有する
メモリアクセス装置。
【請求項２】
請求項１に記載のメモリアクセス装置であって、
前記計測手段は、前記メモリアクセス要求が前記共有メモリに対するデータの書き込みを要求するストア要求である場合と、前記共有メモリからデータを読み出すロード要求である場合と、で、異なる前記負荷値を計測する
メモリアクセス装置。
【請求項３】
請求項１又は２に記載のメモリアクセス装置であって、
前記計測手段は、前記メモリネットワークに対して発行した前記メモリアクセス要求の数を計測するとともに、発行された前記メモリアクセス要求に応じて定まる返信数を計測することで、前記メモリアクセス要求の種類に応じた負荷値を計測する
メモリアクセス装置。
【請求項４】
請求項１乃至３のいずれかに記載のメモリアクセス装置であって、
前記抑止手段は、前記計測手段による計測結果と、閾値を制御する閾値制御手段により定められた閾値と、に基づいて、前記メモリアクセス要求の発行を抑止する
メモリアクセス装置。
【請求項５】
請求項４に記載のメモリアクセス装置であって、
前記閾値制御手段は、動作中のメモリアクセス装置の数に応じて前記閾値を制御する
メモリアクセス装置。
【請求項６】
請求項４又は５に記載のメモリアクセス装置であって、
前記閾値制御手段は、前記メモリネットワークから負荷が過剰である旨を示す過負荷情報を受信すると、前記閾値を予め定められた値分下げる
メモリアクセス装置。
【請求項７】
請求項１乃至６のいずれかに記載のメモリアクセス装置であって、
入力されたクロックのクロックサイクルを計測するとともに、計測したクロックサイクルに応じて前記計測手段に対して負荷値の計測をやり直すよう指示する時間計測手段を有する
メモリアクセス装置。
【請求項８】
メモリアクセス装置が、
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行し、
前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測し、計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する
メモリアクセス制御方法。
【請求項９】
メモリアクセス装置に、
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行する発行手段を実現させ、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有する
プログラム。
【請求項１０】
複数のプロセッサコアを備え、
複数の前記プロセッサコアのそれぞれは、複数の前記プロセッサコアのそれぞれから共有される共有メモリと、前記プロセッサコアと前記共有メモリとの間に形成されるメモリネットワークを介して接続されており、
前記プロセッサコアは、
前記共有メモリに対するアクセスを要求するメモリアクセス要求を前記メモリネットワークに対して発行する発行手段を有し、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有する
マルチコアプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス装置、メモリアクセス制御方法、プログラム、マルチコアプロセッサに関し、特に、共有メモリに対するアクセスを行うメモリアクセス装置、メモリアクセス制御方法、プログラム、マルチコアプロセッサに関する。
【背景技術】
【０００２】
複数のプロセッサコアと共有メモリとを有する情報処理装置が知られている。このような情報処理装置では、複数のプロセッサコアからの共有メモリに対するアクセスが競合して、レイテンシの悪化などを引き起こす輻輳状態となることがある。
【０００３】
このような問題に対処するための技術として、例えば、特許文献１がある。特許文献１には、発行数制御手段と、共有メモリアクセス要求発行手段と、共有メモリアクセス要求のアクセス時間を監視する手段と、予測テーブル格納部と、第１の負荷予測手段と、予測結果監視手段と、を有するメモリアクセス制御方式が記載されている。特許文献１によると、発行数制御手段は、共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する。また、共有メモリアクセス要求発行手段は、新たなアクセス要求がリプライ待ちの要求数と合わせて許容発行数を越える場合、新たなアクセス要求の発行を抑止する。さらに、第１の負荷予測手段は、共有メモリアクセス要求のアクセス時間を監視する手段による監視結果に基づいて予測テーブル格納部から負荷予測値を取得し、取得した負荷予測値に基づいて許容発行数の増減を指示する。また、予測結果監視手段は、増減を行った後の共有メモリアクセス時間の監視結果から予測値の正当性を判定し、判定結果に応じて予測テーブルの予測値を更新する。特許文献１によると、上記構成により、各プロセッサが自律的にメモリアクセス要求発行数を制御することが出来る。その結果、共有メモリ側からの共通のビジー信号で新たなアクセス要求を抑止する方式などに生じる発行再開する際の遅れを低減することが出来る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−９４６５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されている技術の場合、共有メモリアクセス要求の許容発行数を保持し、新たなアクセス要求がリプライ待ちの要求数と合わせて許容発行数を越える場合に、新たなアクセス要求の発行を抑止する。このような構成のため、特許文献１に記載の技術の場合、共有メモリからのリプライの数が異なるアクセス要求を区別せずに一律な制御を行うことになる。その結果、例えば、リプライの数の少ないアクセス要求が続いた後にリプライの数が多いアクセス要求が続いた場合などにおいて、想定以上のリプライが生じてしまい、輻輳状態の発生を的確に抑制できないおそれがある、という問題が生じていた。
【０００６】
このように、共有メモリへアクセスを行うメモリアクセス装置において、的確にアクセス要求の発行を抑止することが難しい、という問題が生じていた。
【０００７】
そこで、本発明の目的は、共有メモリへアクセスを行うメモリアクセス装置において、的確にアクセス要求の発行を抑止することが難しい、という問題を解決するメモリアクセス装置、メモリアクセス制御方法、プログラム、マルチコアプロセッサを提供することにある。
【課題を解決するための手段】
【０００８】
かかる目的を達成するため本発明の一形態であるメモリアクセス装置は、
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行する発行手段を有し、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有する
という構成を採る。
【０００９】
また、本発明の他の形態であるメモリアクセス制御方法は、
メモリアクセス装置が、
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行し、
前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測し、計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する
という構成を採る。
【００１０】
また、本発明の他の形態であるプログラムは、
メモリアクセス装置に、
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行する発行手段を実現させ、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有するプログラムである。
【００１１】
また、本発明の他の形態であるマルチコアプロセッサは、
複数のプロセッサコアを備え、
複数の前記プロセッサコアのそれぞれは、複数の前記プロセッサコアのそれぞれから共有される共有メモリと、前記プロセッサコアと前記共有メモリとの間に形成されるメモリネットワークを介して接続されており、
前記プロセッサコアは、
前記共有メモリに対するアクセスを要求するメモリアクセス要求を前記メモリネットワークに対して発行する発行手段を有し、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有する
という構成を採る。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、共有メモリへアクセスを行うメモリアクセス装置において、的確にアクセス要求の発行を抑止することが難しい、という問題を解決するメモリアクセス装置、メモリアクセス制御方法、プログラム、マルチコアプロセッサを提供することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態における情報処理装置の構成の一例を示すブロック図である。
【図２】図１で示すプロセッサコアの構成の一例を示すブロック図である。
【図３】図２で示すリクエスト発行制御部の構成の一例を示すブロック図である。
【図４】リクエスト発行制御部における情報の流れの一例を示す図である。
【図５】本発明の第１の実施形態における負荷値カウンタの処理の一例を示すフローチャートである。
【図６】本発明の第１の実施形態における閾値制御部の処理の一例を示すフローチャートである。
【図７】本発明の第１の実施形態におけるホールド判定部の処理の一例を示すフローチャートである。
【図８】本発明の第２の実施形態におけるメモリアクセス装置の構成の一例を示すブロック図である。
【図９】本発明の第２の実施形態におけるマルチコアプロセッサの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
［第１の実施形態］
本発明の第１の実施形態を図１乃至図７を参照して説明する。図１は、本発明の第１の実施形態における情報処理装置の構成の一例を示すブロック図である。図２は、プロセッサコア１０の構成の一例を示すブロック図である。図３は、リクエスト発行制御部１１の構成の一例を示すブロック図である。図４は、リクエスト発行制御部１１における情報の流れの一例を示す図である。図５は、負荷値カウンタ１１２の処理の一例を示すフローチャートである。図６は、閾値制御部１１３の処理の一例を示すフローチャートである。図７は、ホールド判定部１１４の処理の一例を示すフローチャートである。
【００１５】
第１の実施形態では、複数のプロセッサコア１０から共有される共有メモリである外部メモリ３を有する情報処理装置について説明する。本実施形態における各プロセッサコア１０は、リクエスト発行制御部１１を有している。リクエスト発行制御部１１は、外部メモリ３に対するアクセスを要求するメモリアクセス要求をメモリネットワーク２に対して発行する。また、リクエスト発行制御部１１は、メモリアクセス要求の発行によりメモリネットワーク２に対して与える負荷を示す負荷値を計測する。例えば、リクエスト発行制御部１１は、外部メモリ３に対するデータの書き込みを要求するストア要求とデータの読み出しを要求するロード要求とで異なる負荷値を計測するなど、メモリアクセス要求の種類に応じた負荷値を計測する。そして、リクエスト発行制御部１１は、予め定められた単位時間あたりの負荷値が閾値制御部１１３により設定された閾値以上となると、メモリネットワーク２に対するメモリアクセス要求の発行を抑止する。このように、本実施形態におけるプロセッサコア１０は、予め定められた単位時間あたりに当該プロセッサコア１０によりメモリネットワーク２に対して与えられた負荷に応じて、メモリネットワーク２に対するメモリアクセス要求の発行を抑止するよう構成されている。なお、本実施形態の場合、単位時間経過後に負荷値はリセットされ、再度のメモリアクセス要求の発行が可能となる。
【００１６】
図１は、情報処理装置の構成の一例を示している。図１を参照すると、情報処理装置は、マルチコアプロセッサ１と、外部メモリ３（外部メモリ３−１、３−２、……、３−ｎ。ｎは任意の整数）と、を有している。また、マルチコアプロセッサ１は、複数のプロセッサコア１０（１０−１、１０−２、……、１０−ｍ。ｍは任意の整数）を有している。プロセッサコア１０は、メモリネットワーク２を介して外部メモリ３と互いに通信可能に接続されている。
【００１７】
プロセッサコア１０は、各種演算処理を実行するとともに、外部メモリ３に対するアクセスを要求するメモリアクセス要求をメモリネットワーク２に対して発行する。なお、メモリアクセス要求としては、例えば、外部メモリ３にデータを書き込むストア要求や外部メモリ３からデータを読み出すロード要求などがある。
【００１８】
図２を参照すると、プロセッサコア１０は、リクエスト発行制御部１１を有している。また、プロセッサコア１０は、外部メモリ３から命令を読み出して解読したり、解読した命令に応じた処理を行ったりするなど、演算装置としての一般的な構成を有している。なお、プロセッサコア１０が有する一般的な構成は、既知であるためその説明を省略する。
【００１９】
リクエスト発行制御部１１は、プロセッサコア１０内部からメモリアクセス要求であるロード要求やストア要求を受ける。そして、リクエスト発行制御部１１は、メモリネットワーク２に対して、ロード要求やストア要求などのメモリアクセス要求（ロード／ストアリクエストパケット）を発行する。また、後述するように、リクエスト発行制御部１１は、当該リクエスト発行制御部１１が発行したメモリアクセス要求によりメモリネットワーク２に対して与える負荷を示す負荷値を計測する。そして、リクエスト発行制御部１１は、計測した負荷値に応じて、メモリネットワーク２に対するメモリアクセス要求の発行を抑止する。
【００２０】
図３は、リクエスト発行制御部１１の構成の一例を示している。図３を参照すると、リクエスト発行制御部１１は、経過時間カウンタ１１１と、負荷値カウンタ１１２と、閾値制御部１１３と、ホールド判定部１１４と、リクエストパイプライン１１５と、を有している。なお、上記各構成は、例えば、論理回路などの組み合わせにより実現される。上記各構成は、例えば、プロセッサコア１０が有する図示しない演算装置が図示しない記憶装置に格納されたプログラムを実行することにより実現されても構わない。
【００２１】
経過時間カウンタ１１１は、内部にクロックサイクルを計測するカウンタを有している。例えば、経過時間カウンタ１１１にはクロックが入力される。すると、経過時間カウンタ１１１は、当該経過時間カウンタ１１１に入力されたクロックのクロックサイクルごとに時間を計上する。そして、経過時間カウンタ１１１は、計上した時間が予め設定された設定値まで達すると、負荷値カウンタ１１２に対してクリア指示を発するとともに、自身のカウンタをクリアして再度時間の計上を始める。このように、経過時間カウンタ１１１は、予め定められた所定時間ごとに負荷値カウンタ１１２に対してクリア指示を送信するよう構成されている。
【００２２】
負荷値カウンタ１１２は、メモリネットワーク２に対して発行したメモリアクセス要求の種類に応じた負荷値を計測する。また、負荷値カウンタ１１２は、経過時間カウンタ１１１からクリア指示を受信すると、自身のカウンタをクリアする。つまり、負荷値カウンタ１１２は、クリア指示を受信すると、計測した負荷値を０に戻し再度の負荷値計測を開始する。
【００２３】
例えば、負荷値カウンタ１１２は、リクエストパイプライン１１５がメモリネットワーク２に対してメモリアクセス要求を発行した際に、リクエストパイプライン１５からリクエスト発行通知を受信する。すると、負荷値カウンタ１１２は、リクエスト発行通知が示すメモリアクセス要求の種類に応じた負荷値をカウントする。
【００２４】
例えば、負荷値カウンタ１１２は、
・リクエストのみでリプライが無いリクエストの場合（例えば、ストア要求）、負荷値「１」を計測する。
・リクエスト１つに対しリプライが１つのリクエストの場合（例えば、ロード要求）、負荷値「２」を計測する。
・リクエスト１つに対しリプライが８つのリクエストの場合（例えば、ロード要求）、負荷値「９」を計測する。
【００２５】
例えば、上記のように、負荷値カウンタ１１２は、ストア要求とロード要求で異なる負荷値をカウントする。また、負荷値カウンタ１１２は、同じロード要求であったとしても、ロード要求に応じたリプライの数に応じて異なる負荷値をカウントする。換言すると、負荷値カウンタ１１２は、メモリネットワーク２に対して発行したメモリアクセス要求の数を計測するとともに、メモリアクセス要求によって発生する（つまり、メモリアクセス要求に応じて定まる）リプライの数（返信数）を計測する。このように、負荷値カウンタ１１２は、負荷値としてリクエスト・リプライパケット数を計測する。
【００２６】
以上のような構成により、負荷値カウンタ１１２は、予め定められた単位時間あたりにプロセッサコア１０がメモリネットワーク２に対して与えた負荷を示す負荷値を計測する。そして、負荷値カウンタ１１２は、計測した負荷値を示す負荷値情報をホールド判定部１１４に通知する。
【００２７】
閾値制御部１１３は、メモリネットワーク２から通知される動作コア数情報と過負荷情報に基づいて、閾値を算出する。そして、閾値制御部１１３は、算出した閾値を示す閾値情報をホールド判定部１１４に通知する。
【００２８】
例えば、閾値制御部１１３は、動作中のプロセッサコア１０の数が１つである場合の閾値である初期閾値を示す初期閾値情報を有している。そして、閾値制御部１１３は、初期閾値情報が示す初期閾値を動作コア数情報が示す動作中のプロセッサコア１０の数で除すことで、閾値を算出する。
【００２９】
例えば、初期閾値が「７００」であるとする。このような仮定において、
・動作中のプロセッサコア１０の数が１だった場合（つまり、自装置のみが動作中の場合）、閾値制御部１１３は、閾値「７００」を算出する。
・動作中のプロセッサコア１０の数が１０だった場合、閾値制御部１１３は、閾値「７０」を算出する。
【００３０】
このように、閾値制御部１１３は、動作コア数情報が示す動作中のプロセッサコア１０の数に応じて、閾値を算出する。なお、上記動作を言い換えると、閾値制御部１１３は、動作中のプロセッサコア１０の数が増えるほど閾値が小さくなるように閾値を制御する、ということも出来る。
【００３１】
また、閾値制御部１１３は、メモリネットワーク２から過負荷情報を受信した場合、算出した閾値から予め定められた値（任意の値で構わない）を減算することで、最終的な閾値を算出する。なお、閾値制御部１１３は、上記予め定められた値として、複数段階の過負荷情報のそれぞれに応じた複数の値を有することが出来る。このように構成することで、例えば、メモリネットワーク２の過負荷の状況（混み具合）に応じてより大きな値を減算するなど、減算する値の調整を行うことが可能となる。
【００３２】
以上のように、閾値制御部１１３は、メモリネットワーク２から通知される動作コア数情報と過負荷情報に基づいて、閾値を算出する。つまり、閾値制御部１１３は、動作コア数情報と過負荷情報に基づいて閾値を制御する。
【００３３】
なお、閾値制御部１１３は、例えば、動作中のプロセッサコア１０の数と、閾値と、を対応付けた対応表を予め有しておき、受信した動作コア数情報が示す動作中のプロセッサコア１０の数と対応付けられた閾値を検索することで、用いる閾値を決定するよう構成しても構わない。このように、閾値制御部１１３による閾値の決定方法は、必ずしも上記例示した場合に限定されない。
【００３４】
ホールド判定部１１４は、リクエストパイプライン１１５に存在するメモリアクセス要求をメモリネットワーク２へ発行するか抑止するか（ホールドするか）判定する。
【００３５】
例えば、ホールド判定部１１４は、リクエストパイプライン１１５がメモリアクセス要求を受け取るごとに、当該メモリアクセス要求をメモリネットワークへ送信するか否か判定する。
【００３６】
例えば、リクエストパイプライン１１５は、プロセッサコア１０の内部からメモリアクセス要求を受けると、メモリアクセス要求を受けた旨をホールド判定部１１４に通知する。当該通知を受けると、ホールド判定部１１４は、予め通知されている閾値情報が示す閾値と予め通知されている負荷値情報が示す負荷値とを比較する。そして、ホールド判定部１１４は、負荷値が閾値以上である場合、リクエストパイプライン１１５に対してホールド指示を通知する。これにより、リクエストパイプライン１１５は、プロセッサコア１０から受けたメモリアクセス要求をメモリネットワーク２に対して発行することを抑止する。一方、ホールド判定部１１４は、閾値が負荷値よりも大きい場合、メモリアクセス要求の発行を許可する旨をリクエストパイプライン１１５に通知する。これにより、リクエストパイプライン１１５は、プロセッサコア１０から受けたメモリアクセス要求をメモリネットワーク２に対して発行する。例えば、このような構成により、ホールド判定部１１４は、リクエストパイプライン１１５がメモリアクセス要求を受け取るごとに、当該メモリアクセス要求をメモリネットワークへ送信するか否か判定する。
【００３７】
なお、上記のように構成すると、負荷値が閾値以上である場合、リクエストパイプライン１１５は、抑止中のメモリアクセス要求を保持し続けることになる。このような事態に対処するため、ホールド判定部１１４は、負荷値カウンタ１１２から負荷値が０になった旨を示す負荷値情報を受け取った場合などに、リクエストパイプライン１１５に対して、待機中のメモリアクセス要求の発行可否の確認を再度行うよう通知することが出来る。なお、上記構成の代わりに、または、追加して、リクエストパイプライン１１５が抑止中のメモリアクセス要求の発行可否の確認を定期的に行うよう構成しても構わない。
【００３８】
以上のように、ホールド判定部１１４は、リクエストパイプライン１１５がメモリアクセス要求を受け取るごとに、当該メモリアクセス要求をメモリネットワークへ送信するか否か判定する。
【００３９】
なお、ホールド判定部１１４は、リクエストパイプライン１１５の状況と関係なく負荷値と閾値との比較を行うよう構成しても構わない。例えば、ホールド判定部１１４は、閾値情報や負荷値情報の通知を受けるごとに、閾値と負荷値との比較を行う。そして、ホールド判定部１１４は、負荷値が閾値以上となったタイミングで、ホールド指示を予めリクエストパイプライン１１５に通知する。このような構成の場合、リクエストパイプライン１１５は、例えば、プロセッサコア１０の内部からメモリアクセス要求を受け取った際に、ホールド通知が通知されているか否かに応じて、メモリネットワーク２に対するメモリアクセス要求の発行を行うか否か判断する。なお、上記のような構成の場合、ホールド判定部１１４は、負荷値カウンタ１１２から負荷値を０にリセットした際の負荷値情報を受信した際など負荷値が閾値よりも小さくなった場合、リクエストパイプライン１１５に対してメモリアクセス要求の発行を再開するよう指示する。負荷値が閾値より小さくなる場合としては、上記場合の他に、動作中のプロセッサコア１０の数が減少することにより閾値が上がった結果、負荷値が閾値より小さくなる場合、メモリネットワーク２の過負荷状態が緩和したことで閾値が上がった結果、負荷値が閾値より小さくなる場合、などがある。
【００４０】
なお、ホールド判定部１１４及びリクエストパイプライン１１５は、上記説明した２つの方法を組み合わせた処理を行うよう構成しても構わないし、上記例示した以外の方法によりメモリアクセス要求を発行するか否か判断するよう構成しても構わない。
【００４１】
リクエストパイプライン１１５は、プロセッサコア１０の内部からメモリアクセス要求を受けると、メモリアクセス要求を受けた旨をホールド判定部１１４に対して通知する。そして、リクエストパイプライン１１５は、ホールド判定部１１４から上記の通知に対する応答に応じて、メモリアクセス要求をメモリネットワーク２に対して発行したり、発行の抑止を行ったりする。なお、リクエストパイプライン１１５は、プロセッサコア１０の内部からメモリアクセス要求を受けとった際に、予めホールド指示を受けているか否かに応じて、メモリアクセス要求をメモリネットワーク２に対して発行するか否か判断するよう構成しても構わない。
【００４２】
また、リクエストパイプライン１１５は、メモリネットワーク２に対してメモリアクセス要求を発行すると、リクエスト発行通知を負荷値カウンタ１１２に対して通知する。リクエスト発行通知には、リクエストパイプライン１１５がメモリネットワーク２に対して発行したメモリアクセス要求の種類を示す情報（例えば、ロード要求であるか、ストア要求であるか、リプライの数、などを示す情報）が含まれている。
【００４３】
以上のように、プロセッサコア１０は、メモリアクセス要求の種類に応じて負荷値を計測する。そして、プロセッサコア１０は、計測した負荷値が閾値以上である場合に、メモリネットワーク２に対するメモリアクセス要求の発行を抑止する。
【００４４】
メモリネットワーク２は、プロセッサコア１０と外部メモリ３との間に形成されている。メモリネットワーク２は、例えば複数の信号線を含むバス接続などにより実現されており、プロセッサコア１０と外部メモリ３とを互いに通信可能なよう接続している。メモリネットワーク２は、オンチップネットワークやプロセッサネットワークなどとも呼ばれ得る。
【００４５】
メモリネットワーク２には、当該メモリネットワーク２にかかる負荷を計測する図示しない負荷計測手段を設けることが出来る。負荷計測手段は、例えば、各プロセッサコア１０が発行するメモリアクセス要求の数を計測したり、メモリアクセス要求に応じたリプライを返信するまでの時間を計測したりすることで、メモリネットワーク２の負荷を計測する。そして、負荷計測手段は、計測した負荷が予め定められた基準値（任意の値で構わない）を超えた場合、過負荷情報を各プロセッサコア１０に対して送信する。なお、負荷計測手段が複数段階の基準値を有することで、複数段階の過負荷情報を各プロセッサコア１０に対して送信することが出来る。
【００４６】
また、メモリネットワーク２には、当該メモリネットワーク２と接続されたプロセッサコア１０（マルチコアプロセッサ１内のプロセッサコア１０）の動作状態を監視する監視手段を設けることが出来る。監視手段は、監視結果である動作中のプロセッサコア１０の数を示す動作コア数情報を各プロセッサコア１０に対して送信する。なお、各プロセッサコア１０は、動作中である旨を他のプロセッサコア１０に対して通知することで、監視手段によらずに動作コア数情報を取得するよう構成しても構わない。
【００４７】
外部メモリ３は、マルチコアプロセッサ１が有する複数のプロセッサコア１０から共有される共有メモリである。外部メモリ３は、例えば、複数のバンクにインタリーブされている。
【００４８】
外部メモリ３は、メモリネットワーク２からメモリアクセス要求を受ける。すると、外部メモリ３は受けたメモリアクセス要求に応じた処理を行い、必要に応じてリプライをメモリネットワーク２に対して返信する。
【００４９】
以上が、マルチコアプロセッサ１を有する情報処理装置の構成の一例である。ここで、本実施形態において説明したプロセッサコア１０が有する各構成間の情報の流れの一例を図４で示す。
【００５０】
図４を参照すると、経過時間カウンタ１１１は、予め定められた単位時間ごとに負荷値カウンタ１１２に対してクリア指示を送信する。クリア指示を受信することで、負荷値カウンタ１１２は負荷値の計測を０からやり直すことになる。
【００５１】
負荷値カウンタ１１２は、リクエストパイプライン１１５からリクエスト発行通知を受信することで、発行したメモリアクセス要求の種類に応じた負荷値を計測する。そして、負荷値カウンタ１１２は、計測した負荷値を示す負荷値情報をホールド判定部１１４に通知する。
【００５２】
閾値制御部１１３は、メモリネットワーク２から動作コア数情報や過負荷情報を受信する。閾値制御部１１３は、受信した動作コア数情報や過負荷情報に基づいて、閾値を算出する。そして、閾値制御部１１３は、算出した閾値を示す閾値情報をホールド判定部１１４に通知する。
【００５３】
ホールド判定部１１４は、負荷値カウンタ１１２から負荷値情報を受信するとともに、閾値制御部１１３から閾値情報を受信する。ホールド判定部１１４は、負荷値情報と閾値情報とに基づいて、負荷値が閾値以上であると判断される場合に、ホールド指示をリクエストパイプライン１１５に送信する。ホールド指示を受信することで、リクエストパイプライン１１５は、メモリネットワーク２に対するメモリアクセス要求の発行を抑止する。
【００５４】
例えば、このように各構成間で情報のやり取りを行うことで、リクエストパイプライン１１５は、必要に応じて、メモリネットワーク２に対するメモリアクセス要求の発行を抑止することが出来る。
【００５５】
続いて、図５乃至図７を参照して、上記説明した各構成のうち、負荷値カウンタ１１２、閾値制御部１１３、ホールド判定部１１４及びリクエストパイプライン１１５、の動作の一例について説明する。まず、図５を参照して、負荷値カウンタ１１２の動作の一例について説明する。
【００５６】
図５を参照すると、負荷値カウンタ１１２は、リクエストパイプライン１１５からリクエスト発行通知を受信すると、リクエスト発行通知が示すメモリアクセス要求の種類に応じた値（リクエスト数とリクエストによって発生するリプライの数）を負荷値に加算する。これにより、負荷値カウンタ１１２は、新たな負荷値を計測する。換言すると、負荷値カウンタ１１２は、リクエストパイプライン１１５がメモリネットワーク２に対してメモリアクセス要求を発行すると（ステップＳ１０１、Ｙｅｓ）、発行したメモリアクセス要求の数と発行したメモリアクセス要求により定まるリプライの数を加算した値を負荷値に加算する。つまり、負荷値カウンタ１１２は、下記数１で示すような計算を行う（ステップＳ１０２）。
【数１】
2018169837.tif 000003
なお、Ｗは負荷値を示している。また、Ｘは、発行したメモリアクセス要求の数と発行したメモリアクセス要求に応じたリプライの数を加算した値である。
【００５７】
また、負荷値カウンタ１１２は、予め定められた単位時間ごとに経過時間カウンタ１１１からクリア指示を受信する。経過時間カウンタ１１１からクリア指示を受信すると（ステップＳ１０３、Ｙｅｓ）、負荷値カウンタ１１２は、負荷値を「０」にリセットし負荷値の計測をやり直す。換言すると、負荷値カウンタ１１２は、下記数２で示すように負荷値Ｗの値を０にする（ステップＳ１０４）。
【数２】
2018169837.tif 000004
【００５８】
負荷値カウンタ１１２は、例えば、上記のようにして、負荷値を計測する。そして、負荷値カウンタ１１２は、計測した負荷値を示す負荷値情報をホールド判定部１１４に通知する。なお、負荷値カウンタ１１２が負荷値情報を送信するタイミングについては、特に限定しない。負荷値カウンタ１１２は、所定時間ごとに負荷値情報を送信するよう構成しても構わないし、負荷値に変動があるごとに負荷値情報を送信するよう構成しても構わない。
【００５９】
続いて、図６を参照して、閾値制御部１１３の動作の一例について説明する。図６を参照すると、閾値制御部１１３は、メモリネットワーク２から受信する動作コア数情報が示す動作中のプロセッサコア１０の数が変更されると（ステップＳ２０１、Ｙｅｓ）、新たな閾値を算出する。つまり、閾値制御部１１３は、下記数３で示すように閾値を新たな閾値に変更する（ステップＳ２０２）。
【数３】
2018169837.tif 000005
なお、Ｔは閾値を示している。また、Ｔｎｅｘｔは、動作中のプロセッサコア１０の数が変更した後の、対応する新たな閾値を示している。
【００６０】
また、閾値制御部１１３は、メモリネットワーク２から過負荷情報を受信すると（ステップＳ２０３、Ｙｅｓ）、閾値から予め定められた所定数を減算することで、最終的な閾値を算出する。つまり、閾値制御部１１３は、下記数４で示すように閾値から予め定められた値を減算することで、最終的な閾値を算出する（ステップＳ２０４）。
【数４】
2018169837.tif 000006
なお、Ｙはあらかじめ設定された値を示している。
【００６１】
閾値制御部１１３は、例えば、上記のようにして、閾値を算出（制御）する。そして、閾値制御部１１３は、算出した閾値を示す閾値情報をホールド判定部１１４に通知する。
【００６２】
続いて、図７を参照して、ホールド判定部１１４及びリクエストパイプライン１１５の動作の一例について説明する。図７を参照すると、ホールド判定部１１４は、リクエストパイプライン１１５からメモリアクセス要求を受けた旨の通知を受信する（ステップＳ３０１、Ｙｅｓ）。すると、ホールド判定部１１４は、閾値と負荷値を比較する（ステップＳ３０２）。
【００６３】
上記比較の結果、閾値の方が負荷値よりも大きかった場合（ステップＳ３０２、Ｙｅｓ）、ホールド判定部１１４は、メモリアクセス要求の発行を許可する旨をリクエストパイプライン１１５に通知する。これにより、リクエストパイプライン１１５は、プロセッサコア１０から受けたメモリアクセス要求をメモリネットワーク２に対して発行する（ステップＳ３０３）。一方、負荷値が閾値以上であった場合（ステップＳ３０２、Ｎｏ）、ホールド判定部１１４は、ホールド指示をリクエストパイプライン１１５に対して通知する。これにより、リクエストパイプライン１１５は、プロセッサコア１０から受けたメモリアクセス要求を発行せずに保持することになる（ステップＳ３０４）。
【００６４】
このように、プロセッサコア１０が有するリクエスト発行制御部１１は、負荷値カウンタ１１２と、閾値制御部１１３と、ホールド判定部１１４と、を有している。このような構成により、負荷値カウンタ１１２は、発行されたメモリアクセス要求の種類に応じた負荷値を計測することが出来る。また、閾値制御部１１３は、動作コア数情報や過負荷情報に応じた閾値を算出することが出来る。そして、ホールド判定部１１４は、負荷値と閾値とに応じて、メモリネットワーク２に対してメモリアクセス要求を発行するか否か判断することが出来る。つまり、上記構成によると、閾値Ｔと負荷値Ｗを適切に制御することが出来る。その結果、プロセッサコア１０からのリクエスト発行数をメモリネットワーク２の負荷に応じて適切に制限することが可能となる。つまり、的確にメモリアクセス要求の発行を抑止することが可能となる。
【００６５】
［第２の実施形態］
次に、図８、図９を参照して、本発明の第２の実施形態について説明する。第２の実施形態では、メモリアクセス装置４の構成の概要と、マルチコアプロセッサ５の構成の概要について説明する。
【００６６】
まず、図８を参照してメモリアクセス装置４の構成の一例について説明する。図８を参照すると、メモリアクセス装置４は、発行手段４１を有している。また、発行手段４１は、計測手段４１１と、抑止手段４１２と、を有している。なお、上記各手段は、例えば、メモリアクセス装置４が有する図示しない演算装置が、図示しない記憶装置に格納されたプログラムを実行することで実現可能である。上記各手段は、例えば、論理回路の組み合わせにより実現されても構わない。
【００６７】
発行手段４１は、複数のメモリアクセス装置４から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、メモリアクセス装置４と共有メモリとの間に形成されるメモリネットワークに対して発行する。
【００６８】
計測手段４１１は、メモリアクセス要求の種類に応じた、メモリネットワークに対する負荷を示す負荷値を計測する。例えば、計測手段４１１は、発行手段４１がメモリアクセス要求を発行するごとに、上記負荷値を計測する。
【００６９】
抑止手段４１２は、計測手段４１１による計測結果に基づいて、メモリネットワークに対するメモリアクセス要求の発行を抑止する。
【００７０】
このように、メモリアクセス装置４は、計測手段４１１と抑止手段４１２とを有する発行手段４１を有している。このような構成により、抑止手段４１２は、計測手段４１１が計測したメモリアクセス要求の種類に応じた負荷値に基づいて、メモリアクセス要求の発行を抑制することが出来る。その結果、的確にメモリアクセス要求の発行を抑止することが可能となる。
【００７１】
また、上述したメモリアクセス装置４は、当該メモリアクセス装置４に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、メモリアクセス装置４に、複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、メモリアクセス装置と共有メモリとの間に形成されるメモリネットワークに対して発行する発行手段を実現させ、発行手段は、メモリアクセス要求の種類に応じた、メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、計測手段による計測結果に基づいて、メモリネットワークに対するメモリアクセス要求の発行を抑止する抑止手段と、を有するプログラムである。
【００７２】
また、上述したメモリアクセス装置４により実行されるメモリアクセス制御方法は、メモリアクセス装置４が、複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、メモリアクセス装置と共有メモリとの間に形成されるメモリネットワークに対して発行し、メモリアクセス要求の種類に応じた、メモリネットワークに対する負荷を示す負荷値を計測し、計測結果に基づいて、メモリネットワークに対するメモリアクセス要求の発行を抑止する、という方法である。
【００７３】
上述した構成を有する、プログラム、又は、メモリアクセス制御方法、の発明であっても、上記メモリアクセス装置４と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【００７４】
また、本発明の目的は、図９で示すようなマルチコアプロセッサ５やマルチコアプロセッサ５を有する情報処理装置などであっても達成することが出来る。図９を参照すると、情報処理装置は、複数のプロセッサコア５０を有するマルチコアプロセッサ５と、プロセッサコア５０のそれぞれから共有される共有メモリ６と、を有している。なお、図９では、情報処理装置が１つの共有メモリ６を有する場合を例示しているが、情報処理装置は複数の共有メモリ６を有しても構わない。
【００７５】
プロセッサコア５０は、計測手段５１１と抑止手段５１２とを有する発行手段を有している。プロセッサコア５０は、プロセッサコア５０と共有メモリ６との間に形成されるメモリネットワーク５２を介して、共有メモリ６と互いに通信可能なよう接続されている。
【００７６】
上述したように、プロセッサコア５０は、計測手段５１１と、抑止手段５１２と、を有する発行手段５１を有している。なお、上記各手段は、例えば、論理回路の組み合わせにより実現される。上記各手段は、プロセッサコア５０が有する図示しない演算装置が、図示しない記憶装置に格納されたプログラムを実行することで実現されても構わない。
【００７７】
発行手段５１は、共有メモリ６に対するアクセスを要求するメモリアクセス要求をメモリネットワーク５２に対して発行する。
【００７８】
計測手段５１１は、メモリアクセス要求の種類に応じた、メモリネットワークに対する負荷を示す負荷値を計測する。例えば、計測手段５１１は、発行手段５１がメモリアクセス要求を発行するごとに、発行したメモリアクセス要求の種類に応じた負荷値を計測する。
【００７９】
抑止手段５１２は、計測手段５１１による計測結果に基づいて、メモリネットワークに対するメモリアクセス要求の発行を抑止する。
【００８０】
このような構成を有するマルチコアプロセッサ５や情報処理装置であっても、メモリアクセス装置４と同様に、本発明の目的を達成することが出来る。
【００８１】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるメモリアクセス装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【００８２】
（付記１）
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行する発行手段を有し、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有する
メモリアクセス装置。
（付記２）
付記１に記載のメモリアクセス装置であって、
前記計測手段は、前記メモリアクセス要求が前記共有メモリに対するデータの書き込みを要求するストア要求である場合と、前記共有メモリからデータを読み出すロード要求である場合と、で、異なる前記負荷値を計測する
メモリアクセス装置。
（付記３）
付記１又は２に記載のメモリアクセス装置であって、
前記計測手段は、前記メモリネットワークに対して発行した前記メモリアクセス要求の数を計測するとともに、発行された前記メモリアクセス要求に応じて定まる返信数を計測することで、前記メモリアクセス要求の種類に応じた負荷値を計測する
メモリアクセス装置。
（付記４）
付記１乃至３のいずれかに記載のメモリアクセス装置であって、
前記抑止手段は、前記計測手段による計測結果と、閾値を制御する閾値制御手段により定められた閾値と、に基づいて、前記メモリアクセス要求の発行を抑止する
メモリアクセス装置。
（付記５）
付記４に記載のメモリアクセス装置であって、
前記閾値制御手段は、動作中のメモリアクセス装置の数に応じて前記閾値を制御する
メモリアクセス装置。
（付記５−１）
付記５に記載のメモリアクセス装置であって、
前記閾値制御手段は、動作中のメモリアクセス装置の数が増えるほど前記閾値が小さくなるように前記閾値を制御する
メモリアクセス装置。
（付記５−２）
付記５又は５−１に記載のメモリアクセス装置であって、
前記閾値制御手段は、予め定められた初期閾値を動作中のメモリアクセス装置の数で除すことで前記閾値を算出する
メモリアクセス装置。
（付記６）
付記４又は５に記載のメモリアクセス装置であって、
前記閾値制御手段は、前記メモリネットワークから負荷が過剰である旨を示す過負荷情報を受信すると、前記閾値を予め定められた値分下げる
メモリアクセス装置。
（付記７）
付記１乃至６のいずれかに記載のメモリアクセス装置であって、
入力されたクロックのクロックサイクルを計測するとともに、計測したクロックサイクルに応じて前記計測手段に対して負荷値の計測をやり直すよう指示する時間計測手段を有する
メモリアクセス装置。
（付記８）
メモリアクセス装置が、
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行し、
前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測し、計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する
メモリアクセス制御方法。
（付記８−１）
付記８に記載のメモリアクセス制御方法であって、
前記メモリアクセス要求が前記共有メモリに対するデータの書き込みを要求するストア要求である場合と、前記共有メモリからデータを読み出すロード要求である場合と、で、異なる前記負荷値を計測する
メモリアクセス制御方法。
（付記８−２）
付記８又は８−１に記載のメモリアクセス制御方法であって、
前記計測結果と、閾値を制御する閾値制御手段により定められた閾値と、に基づいて、前記メモリアクセス要求の発行を抑止する
メモリアクセス制御方法。
（付記９）
メモリアクセス装置に、
複数のメモリアクセス装置から共有される共有メモリに対するアクセスを要求するメモリアクセス要求を、前記メモリアクセス装置と前記共有メモリとの間に形成されるメモリネットワークに対して発行する発行手段を実現させ、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有する
プログラム。
（付記９−１）
付記９に記載のプログラムであって、
前記計測手段は、前記メモリアクセス要求が前記共有メモリに対するデータの書き込みを要求するストア要求である場合と、前記共有メモリからデータを読み出すロード要求である場合と、で、異なる前記負荷値を計測する
プログラム。
（付記９−２）
付記９又は９−１に記載のプログラムであって、
前記抑止手段は、前記計測手段による計測結果と、閾値を制御する閾値制御手段により定められた閾値と、に基づいて、前記メモリアクセス要求の発行を抑止する
プログラム。
（付記１０）
複数のプロセッサコアを備え、
複数の前記プロセッサコアのそれぞれは、複数の前記プロセッサコアのそれぞれから共有される共有メモリと、前記プロセッサコアと前記共有メモリとの間に形成されるメモリネットワークを介して接続されており、
前記プロセッサコアは、
前記共有メモリに対するアクセスを要求するメモリアクセス要求を前記メモリネットワークに対して発行する発行手段を有し、
前記発行手段は、前記メモリアクセス要求の種類に応じた、前記メモリネットワークに対する負荷を示す負荷値を計測する計測手段と、前記計測手段による計測結果に基づいて、前記メモリネットワークに対する前記メモリアクセス要求の発行を抑止する抑止手段と、を有する
マルチコアプロセッサ。
（付記１０−１）
付記１０に記載のマルチコアプロセッサであって、
前記計測手段は、前記メモリアクセス要求が前記共有メモリに対するデータの書き込みを要求するストア要求である場合と、前記共有メモリからデータを読み出すロード要求である場合と、で、異なる前記負荷値を計測する
マルチコアプロセッサ。
（付記１０−２）
付記１０又は１０−１に記載のマルチコアプロセッサであって、
前記抑止手段は、前記計測手段による計測結果と、閾値を制御する閾値制御手段により定められた閾値と、に基づいて、前記メモリアクセス要求の発行を抑止する
マルチコアプロセッサ。
【００８３】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００８４】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【００８５】
１  マルチコアプロセッサ
１０  プロセッサコア
１１  リクエスト発行制御部
１１１  経過時間カウンタ
１１２  負荷値カウンタ
１１３  閾値制御部
１１４  ホールド判定部
１１５  リクエストパイプライン
２  メモリネットワーク
３  外部メモリ
４  メモリアクセス装置
４１  発行手段
４１１  計測手段
４１２  抑止手段
５  マルチコアプロセッサ
５０  プロセッサコア
５１  発行手段
５１１  計測手段
５１２  抑止手段
５２  メモリネットワーク
６  共有メモリ
【図１】
2018169837.tif 000007
【図２】
2018169837.tif 000008
【図３】
2018169837.tif 000009
【図４】
2018169837.tif 000010
【図５】
2018169837.tif 000011
【図６】
2018169837.tif 000012
【図７】
2018169837.tif 000013
【図８】
2018169837.tif 000014
【図９】
2018169837.tif 000015