特許第6607069号(P6607069)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許6607069メモリアクセス制御装置、メモリアクセス制御方法、プログラム
<>
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000002
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000003
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000004
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000005
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000006
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000007
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000008
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000009
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000010
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000011
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000012
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000013
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000014
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000015
  • 特許6607069-メモリアクセス制御装置、メモリアクセス制御方法、プログラム 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6607069
(24)【登録日】2019年11月1日
(45)【発行日】2019年11月20日
(54)【発明の名称】メモリアクセス制御装置、メモリアクセス制御方法、プログラム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20191111BHJP
【FI】
   G06F12/00 571A
【請求項の数】7
【全頁数】23
(21)【出願番号】特願2016-24896(P2016-24896)
(22)【出願日】2016年2月12日
(65)【公開番号】特開2017-142730(P2017-142730A)
(43)【公開日】2017年8月17日
【審査請求日】2019年1月16日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【弁理士】
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【弁理士】
【氏名又は名称】境 廣巳
(72)【発明者】
【氏名】影山 太一
【審査官】 津幡 貴生
(56)【参考文献】
【文献】 特開2011−159069(JP,A)
【文献】 特開2007−334748(JP,A)
【文献】 特開2011−238256(JP,A)
【文献】 米国特許出願公開第2006/0179197(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有し、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御装置。
【請求項2】
請求項に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記キュー長が予め定められた遅延閾値以上である場合、対応するメモリアドレスに対するアクセスを指示する前記アクセス命令の発行を所定時間抑制させる
メモリアクセス制御装置。
【請求項3】
請求項に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記発行手段に対して前記アクセス命令の発行を所定時間抑制させる状態において、前記キュー長が前記遅延閾値よりも小さな値である解消閾値以下となるまで、当該アクセス命令の発行を所定時間抑制させる状態を持続する
メモリアクセス制御装置。
【請求項4】
請求項1乃至3のいずれかに記載のメモリアクセス制御装置であって、
前記抑制手段は、前記受付手段から前記アクセス要求を受信した後当該受信したアクセス要求を前記発行手段に送信するよう構成され、前記状況情報に基づいて遅延が生じると判断される前記アクセス要求に対しては、前記受付手段から前記アクセス要求を受信した後、所定時間待機した後に、当該受信したアクセス要求を前記発行手段に送信する
メモリアクセス制御装置。
【請求項5】
請求項に記載のメモリアクセス制御装置であって、
前記状況情報に基づいて遅延が生じると判断される場合に、遅延の発生を予測する遅延予測情報を前記受付手段に対して送信する送信手段を有し、
前記受付手段は、前記遅延予測情報に基づいて遅延の発生が予測されている場合、前記アクセス要求を前記抑制手段に送信する
メモリアクセス制御装置。
【請求項6】
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させ
前記状況情報として、前記アクセス命令を受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御方法。
【請求項7】
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させ
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリアクセス制御装置、メモリアクセス制御方法、プログラムに関し、特にレイテンシを抑制するメモリアクセス制御装置、メモリアクセス制御方法、プログラムに関する。
【背景技術】
【0002】
複数のプロセッサがメモリを共有する共有メモリシステムが知られている。このような共有メモリシステムの場合、複数の命令が競合することなどを起因として、レイテンシ(遅延)が生じることがある。そこで、上記のようなレイテンシに対する対策が様々考えられている。
【0003】
例えば、特許文献1には、データ処理部を複数のグループに分けた際のグループ間の優先順位が予め設定されたアクセス調停部を有するシステムが記載されている。特許文献1によると、アクセス調停部は、競合が生じた場合に、優先順位に従ってアクセスの調停を行う。また、アクセス調停部は、許容アクセス回数を超えるアクセス要求が発生した場合、優先順位の低いデータ処理部に対して、ウェイト指令信号を送信する。特許文献1によると、このような構成により、応答時間の増加を抑制することが出来る。
【0004】
また、例えば、特許文献2には、記憶手段と登録手段と送信手段とを備えるレイテンシ短縮システムが記載されている。特許文献2によると、登録手段は、共有メモリの同一アドレスに対して同時にリクエストが発行された場合に、該リクエストを発行した発行元を特定する制御情報を記憶手段に記憶する。また、送信手段は、同時に送信されたリクエストのうち、最初に発行されたリクエストに対して当該リクエストの発行元にデータを返信するとき、当該発行元を制御情報に基づいて決定する。特許文献2によると、このような構成により、複数のプロセッサからの所定のリクエストを同時に処理することができ、その結果、レイテンシを短縮することが出来る。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開第2005−242408号公報
【特許文献2】特開第2011−002986号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載されている技術の場合、アクセス調停の結果アクセスが許可された複数のデータ処理部が同一のアドレス(又は、同一のアドレスレンジ)に対してアクセスすることがある。このような場合、同一のアドレスに対するアクセス集中が起こり、その結果として、コヒーレンシ処理などに時間がかかり、ロードやストア命令が通常よりも大幅に遅延するおそれがあった。このように、特許文献1に記載されている技術の場合、同一アドレスに対するアクセスの集中によりレイテンシが発生してしまうおそれがあった。
【0007】
また、特許文献2に記載されている技術は、所定のリクエストを同時に処理することでレイテンシを抑制している。そのため、同時に処理できないリクエスト等に対して、必ずしも十分な対応となっていなかった。このように、特許文献2に記載されている技術の場合でも、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しいおそれがあった。
【0008】
以上のように、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題が生じていた。
【0009】
そこで、本発明の目的は、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題を解決するメモリアクセス制御装置を提供することにある。
【課題を解決するための手段】
【0010】
かかる目的を達成するため本発明の一形態であるメモリアクセス制御装置は、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有する
という構成を採る。
【0011】
また、本発明の他の形態であるメモリアクセス制御方法は、
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させる、
という構成を採る。
【0012】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させるためのプログラムである。
【発明の効果】
【0013】
本発明は、以上のように構成されることにより、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題を解決するメモリアクセス制御装置を提供することが可能となる。
【図面の簡単な説明】
【0014】
図1】本発明の第1の実施形態におけるメモリアクセス制御装置の構成の一例を示すブロック図である。
図2】メモリアクセス制御装置の構成の一例を示すブロック図である。
図3図2で示す遅延予測テーブルの構成の一例を示す図である。
図4】メモリアクセス要求機構とメモリアクセス手段の構成の一例を示す図である。
図5】メモリアクセス要求制御機構の動作の一例を示すフローチャートである。
図6】メモリアクセス要求制御機構の動作の一例を示すフローチャートである。
図7】メモリアクセス要求機構の動作の一例を示すフローチャートである。
図8】メモリアクセス管理機構の動作の一例を示すフローチャートである。
図9】メモリアクセス要求制御機構の実装例を示すブロック図である。
図10】メモリアクセス要求制御機構の動作の一例を記述した擬似コードの一例である。
図11】本発明の第2の実施形態におけるNUMA型システムの全体の構成の一例を示す図である。
図12図11で示すNUMA型システムにおけるメモリアクセスの流れの一例を示す図である。
図13図11で示すNUMA型システムにおけるメモリアクセスの流れの一例を示す図である。
図14】本発明の第2の実施形態における遅延予測テーブルの構成の一例を示す図である。
図15】本発明の第3の実施形態におけるメモリアクセス制御装置の構成の一例を示す概略ブロック図である。
【発明を実施するための形態】
【0015】
[第1の実施形態]
本発明の第1の実施形態を図1乃至図10を参照して説明する。図1図2は、メモリアクセス制御装置1の構成の一例を示すブロック図である。図3は、遅延予測テーブル42の構成の一例を示す図である。図4は、メモリアクセス要求機構3とメモリアクセス手段43の構成の一例を示す図である。図5図6は、メモリアクセス要求制御機構2の動作の一例を示すフローチャートである。図7は、メモリアクセス要求機構3の動作の一例を示すフローチャートである。図8は、メモリアクセス管理機構4の動作の一例を示すフローチャートである。図9は、メモリアクセス要求制御機構2の実装例を示すブロック図である。図10は、メモリアクセス要求制御機構2の動作の一例を記述した擬似コードの一例である。
【0016】
本発明の第1の実施形態では、同一アドレスレンジに対するアクセスの集中により生じるレイテンシを抑制するメモリアクセス制御装置1について説明する。本実施形態におけるメモリアクセス制御装置1は、後述するように、アドレスレンジごとに処理中のリクエスト数を示すキュー長を計測する。そして、同一のアドレスレンジに対するアクセスが集中していると判断される場合、メモリアクセス制御装置1は、メモリアクセス命令の発行を一時的に抑制するよう構成されている。このような構成により、メモリアクセス制御装置1は、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。
【0017】
なお、本実施形態において、アドレスレンジが同一であるとは、メモリアドレスのうち1つ目から所定数までの値が一致することをいう。アドレスレンジの粒度(所定数をいくつに設定するか)は、メモリアクセス制御装置1を用いるシステムに応じて任意に設定して構わない。
【0018】
図1を参照すると、本実施形態におけるメモリアクセス制御装置1は、メモリアクセス要求を受信するメモリアクセス要求制御機構2と、メモリアクセス要求機構3a、3b、3c、3d、3e、3f(以下、特に区別しない場合はメモリアクセス要求機構3とする)と、メモリアクセス管理機構4と、を有している。
【0019】
図1で示すように、メモリアクセス要求制御機構2とメモリアクセス要求機構3とは、通信可能なよう接続されている。同様に、メモリアクセス要求機構3とメモリアクセス管理機構4、メモリアクセス管理機構4とメモリアクセス要求制御機構2とも、通信可能なよう接続されている。
【0020】
メモリアクセス要求制御機構2は、特定のメモリアドレスへのメモリアクセス要求(アクセス要求)を外部から受け付ける。すると、メモリアクセス要求制御機構2は、受け付けたメモリアクセス要求に応じて、当該メモリアクセス要求が要求するメモリアドレスへのアクセスを指示するメモリアクセス命令(アクセス命令)を発行する。また、本実施形態におけるメモリアクセス要求制御機構2は、後述する遅延予測テーブル42(状況情報)に基づいて、同一アドレスレンジへのアクセスが集中していると判断される場合、メモリアクセス命令の発行を一時的に抑制する。換言すると、メモリアクセス要求制御機構2は、アクセス集中によりメモリアクセス要求がアクセスを要求するメモリアドレスに対するアクセスが遅延すると判断される場合、当該メモリアドレスに対するメモリアクセス命令の発行を一時的に抑制する。
【0021】
図2を参照すると、本実施形態におけるメモリアクセス要求制御機構2は、遅延認識手段21と、遅延予測フラグ22と、メモリアクセス命令発行準備手段23と、遅延アドレス確認手段24と、遅延抑制手段25と、メモリアクセス命令発行手段26と、を有している。メモリアクセス要求制御機構2は、例えば、図示しない演算装置と記憶装置とを有しており、記憶装置が記憶するプログラムを演算装置が実行することで、上記各手段を実現する。
【0022】
遅延認識手段21は、遅延予測フラグ22を更新する。例えば、遅延認識手段21は、メモリアクセス管理機構4が管理するアドレスレンジにおける遅延を予測する遅延予測通知をメモリアクセス管理機構4の遅延予測通知手段47から受信する。また、遅延認識手段21は、メモリアクセス管理機構4が管理するアドレスレンジにおける遅延の予測を解消する遅延解消通知を遅延予測通知手段47から受信する。そして、遅延認識手段21は、受信した遅延予測通知や遅延解消通知に基づいて、遅延予測フラグ22を更新する。
【0023】
具体的には、遅延予測フラグ22はカウンタとして実装され、遅延認識手段21は、遅延予測通知を受信した場合、遅延予測フラグ22をインクリメントする(1増加させる)。また、遅延認識手段21は、遅延解消通知を受信した場合、遅延予測フラグ22をデクリメントする(1減少させる)。このように、遅延認識手段21は、遅延予測通知手段47から受信した通知に応じて、遅延予測フラグ22を更新する。
【0024】
遅延予測フラグ22は、メモリアクセス管理機構4において遅延が発生している可能性があるか否かという情報を示している。上記のように、遅延予測フラグ22は、例えばカウンタとして実装される。遅延予測フラグ22の値が0である場合は遅延が発生していないことを示しており、遅延予測フラグ22の値が1以上である場合は遅延が発生している可能性があることを示している。
【0025】
メモリアクセス命令発行準備手段23(受付手段)は、遅延予測フラグ22に基づいて、受信したメモリアクセス要求を遅延アドレス確認手段24に送信するか否かを判断する。例えば、メモリアクセス命令発行準備手段23は、外部からメモリアクセス要求を受信する。すると、メモリアクセス命令発行準備手段23は、遅延予測フラグ22を参照して、メモリアクセス管理機構4が管理するアドレスレンジにおける直近のアクセスに対して遅延が予測されているか否かを判断する。そして、遅延予測フラグ22が立っている場合(値が1以上で遅延が予測されている場合)、メモリアクセス命令発行準備手段23は、メモリアクセス要求を遅延アドレス確認手段24に送信する。一方、遅延予測フラグ22が立っていない場合(値が0であり遅延が予測されていない場合)、メモリアクセス命令発行準備手段23は、メモリアクセス要求をメモリアクセス命令発行手段26に送信する。
【0026】
遅延アドレス確認手段24(抑制手段の一部)は、メモリアクセス要求がアクセスを要求するメモリアドレスに対応するエントリが、後述するメモリアクセス管理機構4の遅延予測テーブル42に存在しているか否か、当該エントリにアラートが立っているか否かを確認する。例えば、遅延アドレス確認手段24は、メモリアクセス命令発行準備手段23からメモリアクセス要求を受信する。すると、遅延アドレス確認手段24は、遅延予測テーブル42を参照して、受信したメモリアクセス要求がアクセスを要求するメモリアドレスに該当するエントリが遅延予測テーブル42に存在するか否かを確認する。換言すると、遅延アドレス確認手段24は、メモリアクセス要求がアクセスを要求するメモリアドレスが含まれるアドレスレンジのエントリが遅延予測テーブル42に存在するか否かを確認する。また、遅延アドレス確認手段24は、該当するエントリが存在する場合、当該エントリにアラートが立っているか否かを確認する。そして、該当するエントリが存在し、かつ、当該エントリにアラートが立っている場合、遅延アドレス確認手段24は、メモリアクセス要求を遅延抑制手段25に送信する。一方、該当するエントリが存在しない場合やエントリにアラートが立っていない場合、遅延アドレス確認手段24は、メモリアクセス要求をメモリアクセス命令発行手段26に送信する。
【0027】
遅延抑制手段25(抑制手段の一部)は、予め定められた時間(遅延抑制時間)分該当メモリアドレスへのアクセスを抑制する。例えば、遅延抑制手段25は、遅延アドレス確認手段24からメモリアクセス要求を受信する。すると、遅延抑制手段25は、予め定められた時間分待機する。その後、遅延抑制手段25は、受信したメモリアクセス要求をメモリアクセス命令発行手段26に送信する。遅延抑制手段25は、例えば、このようにして、予め定められた時間分待機した後メモリアクセス要求をメモリアクセス命令発行手段26に送信することで、メモリアクセス命令発行手段26によるメモリアクセス命令の発行を所定時間抑制させることになる。
【0028】
メモリアクセス命令発行手段26(発行手段)は、受信したメモリアクセス要求に基づいて、当該メモリアクセス要求が示すメモリアドレスへのアクセスを指示するメモリアクセス命令をメモリアクセス要求機構3に対して発行する。例えば、メモリアクセス命令発行手段26は、メモリアクセス命令発行準備手段23、遅延アドレス確認手段24、遅延抑制手段25、からメモリアクセス要求を受信する。そして、メモリアクセス命令発行手段26は、受信したメモリアクセス要求に基づいて、メモリアクセス要求機構3に対してメモリアクセス命令を発行する。
【0029】
メモリアクセス要求機構3は、図2で示すように、メモリアクセス判断手段31とキャッシュ32とを有している。メモリアクセス要求機構3は既存技術で実現可能な機構であり、例えば、プロセッサなどのような機構である。
【0030】
メモリアクセス判断手段31は、メモリアクセス命令に応じて、キャッシュ32を利用するか実際にメモリアクセスを行うかを判断する。例えば、メモリアクセス判断手段31は、メモリアクセス命令発行手段26から、メモリアクセス命令を受信する。すると、メモリアクセス判断手段31は、受信したメモリアクセス命令を解釈する。そして、メモリアクセス判断手段31は、解釈結果に応じて、キャッシュ32を利用するか、メモリアクセスを実際に行うかを判断する。また、メモリアクセス判断手段31は、メモリアクセスを実際に行うと判断した場合、メモリアクセス命令をメモリアクセス管理機構4のメモリアクセス監視手段41に送信する。
【0031】
メモリアクセス管理機構4は、受信したメモリアクセス命令に応じて、メモリ44にアクセスする。また、メモリアクセス管理機構4は、特定アドレスレンジへのアクセス集中を検出して、メモリアクセス要求制御機構2に対して遅延予測通知を通知する。また、メモリアクセス管理機構4は、遅延発生の可能性が低くなった段階で、メモリアクセス要求制御機構2に対して遅延解消通知を通知する。
【0032】
図2を参照すると、本実施形態におけるメモリアクセス管理機構4は、メモリアクセス監視手段41と遅延予測テーブル42とメモリアクセス手段43とメモリ44と遅延発生予測手段45と遅延解消予測手段46と遅延予測通知手段47とを有している。メモリアクセス管理機構4は、例えば、図示しない演算装置と記憶装置とを有しており、記憶装置が記憶するプログラムを演算装置が実行することで、上記各手段を実現する。また、メモリアクセス管理機構4は、メモリなどの記憶装置を有しており、当該記憶装置に遅延予測テーブル42を格納する。
【0033】
メモリアクセス監視手段41は、メモリアクセス要求機構3からメモリアクセス命令を受け付け、受け付けたメモリアクセス命令をメモリアクセス手段43に送信する。また、メモリアクセス監視手段41は、遅延予測テーブル42を管理する。後述するように、メモリアクセス監視手段41は、遅延予測テーブル42を管理することで、キュー長の計測などを行うことになる。
【0034】
例えば、メモリアクセス監視手段41は、メモリアクセス要求機構3からメモリアクセス命令を受信する。すると、メモリアクセス監視手段41は、受信したメモリアクセス命令に基づいて遅延予測テーブル42を更新する。例えば、メモリアクセス監視手段41は、メモリアクセス命令を受信すると、受信したメモリアクセス命令が要求するメモリアドレスが属するアドレスレンジに対するエントリが遅延予測テーブル42に既に存在しているか否かを確認する。そして、対応するエントリが存在する場合、メモリアクセス監視手段41は、該当メモリアドレスに対応するキュー長をインクリメントする。一方、対応するエントリが存在しない場合、メモリアクセス監視手段41は、対応するエントリを新規エントリとして遅延予測テーブル42に登録する。この際、新規に登録されるエントリのキュー長は1の状態となる。また、メモリアクセス監視手段41は、メモリアクセス命令をメモリアクセス手段43に送信するとともに、必要に応じて遅延発生予測手段45を起動する。例えば、メモリアクセス監視手段41は、キュー長をインクリメントしたエントリにアラートが立っていない場合に遅延発生予測手段45を起動する。
【0035】
また、メモリアクセス監視手段41は、メモリアクセス手段43からメモリアクセスの完了を通知されると、遅延予測テーブル42を更新する。例えば、メモリアクセス監視手段41は、メモリアクセスが完了した旨の通知を受信すると、対応するエントリのキュー長をデクリメントする。また、その結果として、キュー長が0になった場合、メモリアクセス監視手段41は、該当するエントリを遅延予測テーブル42から削除する。また、メモリアクセス監視手段41は、必要に応じて遅延解消予測手段46を起動する。例えば、メモリアクセス監視手段41は、キュー長をデクリメントしたエントリにアラートが立っている場合に遅延解消予測手段46を起動する。
【0036】
遅延予測テーブル42(状況情報)は、メモリアクセス手段43によるアクセスの状況を示しており、例えば、メモリアドレスに対するアクセスの数を示している。具体的には、遅延予測テーブル42は、アドレスレンジごとにキュー長(処理中のリクエスト数。例えば、メモリアクセス手段43(メモリアクセス管理機構4)が受け付けた後実行完了前のメモリアクセス命令の数)を管理している。
【0037】
図3は、遅延予測テーブル42の構成の一例である。図3を参照すると、遅延予測テーブル42は、アドレスレンジと、キューと、キュー長と、H−WM(High Watermark)(遅延閾値)と、L−WM(Low Watermark)(解消閾値)と、アラートと、を対応付けている。上記遅延予測テーブル42には、メモリアクセス監視手段41により、メモリアクセス監視手段41で監視中のリクエスト(メモリアクセス命令)が登録される。
【0038】
上述したように、キュー長は処理中のリクエスト数を示している。キュー長は、メモリアクセス手段43にメモリアクセス命令が1つ送信される度に1増加するようメモリアクセス監視手段41により管理される。また、キュー長は、メモリアクセス命令の実行完了ごとに1減少するようメモリアクセス監視手段41により管理される。
【0039】
H−WMは、アドレスレンジに対するアクセスが集中しているか否かを判断するために用いられる閾値である。H−WMは、遅延発生予測手段45によりキュー長と比較され、キュー長がH−WM以上になった場合に、該当するエントリのアラートが立てられることになる。また、L−WMは、例えばH−WMよりも小さな値であり、アドレスレンジに対するアクセスの集中が解消しているか否かを判断するために用いられる閾値である。L−WMは、遅延解消予測手段46によりキュー長と比較され、キュー長がL−WM以下となった場合に、該当するエントリのアラートが倒される(削除される)ことになる。また、上記のように、アラートは、キュー長がH−WM以上となった場合に立てられ、キュー長がL−WM以下となった場合に倒されることになる。このような構成のため、遅延アドレス確認手段24は、メモリアクセス命令発行手段26に対してメモリアクセス命令の発行を所定時間抑制させる状態(アラートが立った状態)において、キュー長がH−WMよりも小さな値であるL−WM以下となるまで、メモリアクセス命令の発行を所定時間抑制させる状態を持続することになる。
【0040】
なお、H−WM及びL−WMの値は、例えば、予め定められた値である。H−WM及びL−WMの値は、例えば、システム仕様や経験則に基づいてシステム固有の値として予め定められている。
【0041】
メモリアクセス手段43は、メモリ44へのメモリアクセスを行うとともにメモリアクセス要求機構3が有するキャッシュ32の内容の一貫性、コヒーレンシを保つよう動作する。メモリアクセス手段43には、既存の様々な技術を採用することが出来る。
【0042】
メモリ44は、ハードディスクやメモリなどの記憶装置である。上記のように、メモリ44は、メモリアクセス手段43によりアクセスされることになる。
【0043】
遅延発生予測手段45は、遅延予測テーブル42を情報源として遅延発生予測を行う。具体的には、上述したように、遅延発生予測手段45は、メモリアクセス監視手段41により起動される。すると、遅延発生予測手段45は、遅延予測テーブル42を参照して、該当するエントリ(例えば、起動の起因となったエントリ)のキュー長がH−WM以上であるか否かを確認する。そして、キュー長がH−WM以上である場合、遅延発生予測手段45は、該当するエントリのアラートを立てる。また、遅延発生予測手段45は、アラートを立てた旨を遅延予測通知手段47に通知する。一方、キュー長がH−WMよりも小さい場合、遅延発生予測手段45は、その処理を終了する。
【0044】
遅延解消予測手段46は、遅延予測テーブル42を情報源として遅延解消予測を行う。具体的には、上述したように、遅延解消予測手段46は、メモリアクセス監視手段41により起動される。すると、遅延解消予測手段46は、遅延予測テーブル42を参照して、該当するエントリ(例えば、起動の起因となったエントリ)のキュー長がL−WM以下であるか否かを確認する。そして、キュー長がL−WM以下である場合、遅延解消予測手段46は、該当するエントリのアラートを倒す。また、遅延解消予測手段46は、アラートを倒した旨を遅延予測通知手段47に通知する。一方、キュー長がL−WMよりも大きい場合、遅延解消予測手段46は、その処理を終了する。
【0045】
遅延予測通知手段47(送信手段)は、メモリアクセス要求制御機構2に対して、遅延予測通知や遅延解消通知を送信する。例えば、遅延予測通知手段47は、遅延発生予測手段45からアラートを立てた旨の通知を受信する。すると、遅延予測通知手段47は、当該受信した通知に応じて、遅延を予測する遅延予測通知を送信する。また、遅延予測通知手段47は、遅延解消予測手段46からアラートを倒した旨の通知を受信する。すると、遅延予測通知手段47は、当該受信した通知に応じて、遅延の予測を解消する遅延解消通知を送信する。
【0046】
以上が、メモリアクセス制御装置1の構成の一例についての説明である。
【0047】
なお、メモリアクセス要求機構3及びメモリアクセス管理機構4のメモリアクセス手段43は、例えば既存技術により実現可能な手段である。メモリアクセス要求機構3やメモリアクセス手段43は、例えば図4で示すようなシステム5(5a、5b)においては、それぞれ一般的なプロセッサ51(CPU(Central Processing Unit))やメモリコントローラ52のように動作する。
【0048】
また、上記のようなシステム5は、例えば、以下のような特徴を有している。
特徴1.各プロセッサ51からメモリコントローラ52に対して同時にメモリアクセス命令(メモリ53に対するアクセスを要求する命令)を出すことが出来る。
特徴2.各プロセッサ51からの要求がそれぞれ異なるアドレスレンジへのアクセスであった場合、メモリコントローラ52の処理は多くの場合において並列動作可能である。そのため、このような場合、遅延は少ないことになる(図4のシステム5a参照)。
特徴3.各プロセッサ51からの要求が同一アドレスレンジへのアクセスであった場合、メモリ及び各プロセッサ51内のキャッシュのコヒーレンシ維持が必要となり、処理がシリアライズ(逐次化)される。そのため、多数のプロセッサ51が同一メモリアドレスにアクセスし続けるような場合、多数のプロセッサ51上のキャッシュに該当メモリアドレスが載っているためコヒーレンシ維持のための更新処理、同期処理が重くなることになる。その結果、遅延が大きくなることになる(図4のシステム5b参照)。
【0049】
なお、図4は本実施形態におけるメモリアクセス制御装置1が用いられるシステムのうち非常に単純な一例を示している。本実施形態におけるメモリアクセス制御装置1は、例えば、上記のような特徴を持つ比較的大規模なシステムの性能向上を図るために用いられることが考えられるが、それ以外の装置、システムに適用されても構わない。
【0050】
続いて、図5乃至図8を参照して、メモリアクセス制御装置1の動作の一例について説明する。まず、図5を参照して、メモリアクセス要求を受信した際のメモリアクセス要求制御機構2の動作の一例について説明する。
【0051】
図5を参照すると、メモリアクセス命令発行準備手段23は、外部装置や外部のソフトウェアなどからメモリアクセス要求を受信する(ステップS001)。すると、メモリアクセス命令発行準備手段23は、遅延予測フラグ22を参照してメモリアクセス管理機構4において遅延が予測されているか否かを判断する。
【0052】
遅延予測フラグ22の値が1以上である場合(遅延が予測されている場合)(ステップS002、True)、メモリアクセス命令発行準備手段23は、メモリアクセス要求を遅延アドレス確認手段24に送信する。一方、遅延予測フラグ22の値が0である場合(遅延が予測されていない場合)(ステップS002、False)、メモリアクセス命令発行準備手段23は、メモリアクセス要求をメモリアクセス命令発行手段26に送信する。
【0053】
遅延アドレス確認手段24は、メモリアクセス命令発行準備手段23からメモリアクセス要求を受信する。すると、遅延アドレス確認手段24は、メモリアクセス管理機構4の遅延予測テーブル42を参照して、受信したメモリアクセス要求が要求するメモリアドレスに該当するエントリが遅延予測テーブル42に存在し、かつ、当該エントリにアラートが立っているか否かを確認する。
【0054】
該当するエントリが存在し、アラートが立っている場合(ステップS003、True)、遅延アドレス確認手段24は、メモリアクセス要求を遅延抑制手段25に送信する。一方、該当するエントリが存在しない場合やエントリにアラートが立っていない場合(ステップS003、False)、遅延アドレス確認手段24は、メモリアクセス要求をメモリアクセス命令発行手段26に送信する。
【0055】
遅延抑制手段25は、遅延アドレス確認手段24からメモリアクセス要求を受信する。すると、遅延抑制手段25は、予め定められた時間分待機する。つまり、遅延抑制手段25は、遅延抑制処理を行う(ステップS004)。その後、遅延抑制手段25は、受信したメモリアクセス要求をメモリアクセス命令発行手段26に送信する。
【0056】
メモリアクセス命令発行手段26は、受信したメモリアクセス要求に基づいて、当該メモリアクセス要求が示すメモリアドレスへのアクセスを指示するメモリアクセス命令をメモリアクセス要求機構3に対して発行する(ステップS005)。
【0057】
以上が、メモリアクセス要求を受信した際のメモリアクセス要求制御機構2の動作の一例である。次に、図6を参照して遅延予測フラグ22を更新する際のメモリアクセス要求制御機構2の動作の一例について説明する。
【0058】
図6を参照すると、メモリアクセス要求制御機構2の遅延認識手段21は、メモリアクセス管理機構4の遅延予測通知手段47から遅延予測通知や遅延解消通知を受信する(ステップS101)。
【0059】
すると、遅延認識手段21は、通知に応じた更新を行う。具体的には、遅延予測通知を受け取った場合(ステップS102、遅延予測通知)、遅延認識手段21は、遅延予測フラグ22をインクリメントする(ステップS103)。一方、遅延解消通知を受け取った場合(ステップS102、遅延解消通知)、遅延認識手段21は、遅延予測フラグ22をデクリメントする(ステップS104)。遅延認識手段21は、例えば、このように受信した通知に応じて遅延予測フラグ22を更新する。
【0060】
以上が、遅延予測フラグ22を更新する際のメモリアクセス要求制御機構2の動作の一例である。続いて、図7を参照して、メモリアクセス要求機構3の動作の一例について説明する。
【0061】
図7を参照すると、メモリアクセス要求機構3は、メモリアクセス命令発行手段26からメモリアクセス命令を受信する(ステップS201)。具体的には、メモリアクセス要求機構3のメモリアクセス判断手段31がメモリアクセス命令を受信する。
【0062】
メモリアクセス判断手段31は、受信したメモリアクセス命令を解釈し、キャッシュ32を確認した上で、必要であればキャッシュ32の更新を行なったり、メモリアクセス管理機構4に対するメモリアクセスの要求を行ったりする(ステップS202)。
【0063】
以上が、メモリアクセス要求機構3の動作の一例である。続いて、図8を参照して、メモリアクセス管理機構4の動作の一例について説明する。
【0064】
図8を参照すると、メモリアクセス管理機構4のメモリアクセス監視手段41は、メモリアクセス命令を受信する(ステップS301)。すると、メモリアクセス監視手段41は、受信したメモリアクセス命令が要求するメモリアドレスが属するアドレスレンジに対するエントリが遅延予測テーブル42に既に存在しているか否かを確認する(ステップS302)。
【0065】
対応するエントリが存在する場合(ステップS302、True)、メモリアクセス監視手段41は、該当メモリアドレスのキュー長をインクリメントする(ステップS303)。一方、対応するエントリが存在しない場合(ステップS302、False)、メモリアクセス監視手段41は、対応するエントリを新規エントリとして遅延予測テーブル42に登録する(ステップS304)。この際、新規に登録されるエントリのキュー長は1の状態となる。
【0066】
メモリアクセス監視手段41は、並列動作可能な処理として、該当エントリにアラートが立っているか否かを確認する(ステップS305)とともに、受信したメモリアクセス命令をメモリアクセス手段43に送信する。
【0067】
アラートが立っている場合(ステップS305、False)、メモリアクセス監視手段41のこの並行処理の一つを終了する。一方、アラートが立っていない場合(ステップS305、True)、メモリアクセス監視手段41は、遅延発生予測手段45を起動する。
【0068】
遅延発生予測手段45は、遅延予測テーブル42を参照して、起動の起因となったエントリのキュー長がH−WM以上であるか否かを確認する(ステップS306)。キュー長がH−WM以上である場合(ステップS306、True)、遅延発生予測手段45は、該当するエントリのアラートを立てる(ステップS307)。また、遅延発生予測手段45は、アラートを立てた旨を遅延予測通知手段47に通知する。その後、上記通知を受領した遅延予測通知手段47は、受信した通知に基づいて、遅延予測通知をメモリアクセス要求制御機構2に対して通知する(ステップS308)。一方、キュー長がH−WMよりも小さい場合(ステップS306、False)、遅延発生予測手段45は、その処理を終了する。
【0069】
メモリアクセス命令を受信したメモリアクセス手段43は、例えば、当該メモリアクセス命令がアクセスを要求するアクセスレンジに対応するキューにリクエストを追加して、メモリアクセスを行う(ステップS309)。この処理は例えば既存の技術により行われる。
【0070】
メモリアクセスが完了すると、メモリアクセス手段43は、メモリアクセスが完了した旨をメモリアクセス監視手段41に通知する。メモリアクセスが完了した旨の通知を受信すると、メモリアクセス監視手段41は、対応するエントリのキュー長をデクリメントする(ステップS310)。そして、デクリメントの結果、キュー長が0になった場合(ステップS311、True)、メモリアクセス監視手段41は、該当するエントリを遅延予測テーブル42から削除する(ステップS312)。一方、キュー長が0にならなかった場合(ステップS311、False)、メモリアクセス監視手段41は、該当するエントリにアラートが立っているか否かを確認する(ステップS313)。なお、この処理は並列処理の同期により、同一アクセスリクエストにおけるステップS307の後に実行される事が保証される。
【0071】
アラートが立っていない場合(ステップS313、True)、メモリアクセス監視手段41は、処理を終了する。一方、アラートが立っている場合(ステップS313、False)、メモリアクセス監視手段41は、遅延解消予測手段46を起動する。
【0072】
遅延解消予測手段46は、遅延予測テーブル42を参照して、起動の起因となったエントリのキュー長がL−WM以下であるか否かを確認する(ステップS314)。キュー長がL−WM以下である場合(ステップS314、True)、遅延解消予測手段46は、該当するエントリのアラートを倒す(ステップS315)。また、遅延解消予測手段46は、アラートを倒した旨を遅延予測通知手段47に通知する。その後、上記通知を受領した遅延予測通知手段47は、受信した通知に基づいて、遅延解消通知をメモリアクセス要求制御機構2に対して通知する(ステップS316)。一方、キュー長がL−WMよりも大きい場合(ステップS314、False)、遅延解消予測手段46は、その処理を終了する。
【0073】
以上が、メモリアクセス管理機構4の動作の一例である。
【0074】
このように、本実施形態におけるメモリアクセス制御装置1は、遅延アドレス確認手段24と、遅延抑制手段25とを有している。また、遅延予測テーブル42を有している。このような構成により、遅延アドレス確認手段24は、遅延予測テーブル42を参照して、メモリアクセス要求がアクセスを要求するメモリアドレスが属するアドレスレンジに対してアクセスが集中しているか否かを確認することが出来る。また、遅延抑制手段25は、遅延アドレス確認手段24による確認結果に基づいて、アクセスの集中によりメモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。
【0075】
また、本実施形態におけるメモリアクセス制御装置1は、遅延予測通知手段47を有している。このような構成により、メモリアクセス管理機構4は、遅延が発生している可能性があることをメモリアクセス要求制御機構2に伝えることが出来る。その結果、メモリアクセス要求制御機構2は、遅延発生の可能性に応じて、メモリアクセス命令を発行するか抑制するかを判断すること(または、判断するための情報の確認を行うか否かを判断すること)が可能となる。
【0076】
また、本実施形態におけるメモリアクセス制御装置1によると、効率的にメモリアクセスを制御して効率的に遅延の発生を抑制することが出来る。そのため、システムに搭載するCPUの数を増やした場合の遅延の増加を効率的に防ぐことが出来る。その結果、CPUの数を容易に増やすことが容易となる。また、遅延予測テーブル42を活用することで、システムに発生した問題の原因がメモリアクセス遅延によるものか否かを容易に判断することが可能となる。
【0077】
なお、本実施形態におけるメモリアクセス命令発行準備手段23は、メモリアクセス要求を受信すると、一律に遅延予測フラグ22を確認するとした。しかしながら、メモリアクセス命令発行準備手段23は、必ずしも受信した全てのメモリアクセス要求に対して遅延予測フラグ22を確認しなくても構わない。メモリアクセス命令発行準備手段23は、例えば、同時期に受信したメモリアクセス要求の全てがロード要求である場合、遅延予測フラグ22の確認を省略するよう構成しても構わない。このように、メモリアクセス命令発行準備手段23は、受信したメモリアクセス要求の内容や種類などに応じて遅延予測フラグ22を確認するか否か判断するよう構成することが出来る。また、メモリアクセス命令発行準備手段23は、例えば、予め定められたソフトウェアから発行されるメモリアクセス命令に対してのみ遅延予測フラグ22を確認するよう構成しても構わない。
【0078】
また、本実施形態におけるメモリアクセス要求制御機構2は、図9で示すような、CPUなどのハードウェアにプログラムが読み込まれることで実現されるソフトウェアで実装しても構わない。図9の割り込みハンドラ61は、割り込みに応じて遅延フラグ62を更新する。また、処理63は、例えば、遅延予測情報(遅延フラグ62、遅延予測テーブル64)を利用することで遅延を大幅に遅らせることが可能な処理のみに、本発明を適用して、遅延フラグ62(図2の遅延予測フラグ22に相当する)及び遅延予測テーブル64(遅延予測テーブル42に相当する)の確認を行う。なお、処理内容はシステム処理であっても構わないし、ユーザーアプリケーション処理であっても構わない。
【0079】
また、例えば、図10の擬似コードのようなプログラムをハードウェアに読み込ませることで実現されるソフトウェア実装を行っても構わない。ここで、図10におけるis_delay関数は遅延アドレス確認手段24に相当し、lazy_spinlock関数は遅延抑制手段25に相当する。図10によると、is_delay関数が遅延を予測した場合、通常のspinlock関数ではなく、lazy_spinlock関数が利用される。lazy_spinlock関数では、lock->nop_times回、nop命令のような何もしない命令を繰り返す事で、一定期間、遅延を悪化させる無駄なlock->next_ticketが指すメモリアドレスへのアクセス抑制を実現している。
【0080】
なお、上記記載の場合、どの程度アクセスを抑制するかを示すlock->nop_timesを変数とすることで、抑制時間を特定のアルゴリズムを用いて動的に変化させる事も可能である。このように、遅延抑制手段25がアクセスを抑制する時間は動的に変化するよう構成しても構わない。また、例えば、抑制時間を遅延予測テーブル42の新規項目として追加して、メモリアクセス管理機構4から抑制時間を取得するよう構成することも出来る。
【0081】
また、本実施形態においては、メモリアクセス管理機構4は、対象を全アドレスレンジとしたグローバルな遅延予測テーブル42を有するとした。また、遅延予測テーブル42において、H−WM及びL−WMは固定値であるとし、遅延抑制時間はメモリアクセス要求制御機構2に予め定められているものとした。しかしながら、メモリアクセス管理機構4の構成は、上記場合に限定されない。例えば、1つの遅延予測テーブル42に格納するアドレスレンジを区切り、複数の遅延予測テーブル42に分散するよう構成し、遅延予測テーブル42の数だけ遅延予測フラグ22を構成したり、一部のメモリアドレスレンジの遅延予測テーブルだけを活用したりしても構わない。また、H−WM及びL―WMは、例えばメモリアクセス制御装置1を有するシステムに対する負荷の状況などに応じて動的に変更可能なよう構成しても構わない。また、遅延抑制時間は、メモリアクセス管理機構4により制御可能なよう構成しても構わない。例えば、遅延抑制時間は、遅延予測テーブル42に含まれていても構わない。また、遅延抑制時間は、例えば、キュー長が長くなるほど長くなるなど、例えばメモリアクセス監視手段41などにより動的に制御されても構わない。
【0082】
また、本実施形態においては、メモリアクセス管理機構4は、遅延の発生の予測をキュー長に基づいて行うとした。しかしながら、メモリアクセス管理機構4は、キュー長以外に基づいて遅延の発生を予測しても構わない。メモリアクセス管理機構4は、例えば、メモリアクセスにかかる時間などを計測して、計測結果に基づいて遅延の発生を予測するよう構成しても構わない。このように、メモリアクセス管理機構4は、キュー長以外に基づいて遅延の発生を予測して遅延予測通知を送信するよう構成しても構わない。
【0083】
[第2の実施形態]
続いて、第2の実施形態では、第1の実施形態で説明したメモリアクセス制御装置1を、NUMA(Non-Uniform Memory Access)構成を持つNUMA型システム7のノードコントローラ71(ノードコントローラ71a、71b、71c、71d。特に区別しない場合は、ノードコントローラ71と表記する。以下、同様)に適用する場合の一例について説明する。なお、以下においては、第1の実施形態と重複する説明については省略する。
【0084】
図11を参照すると、本実施形態におけるNUMA型システム7は、例えば、4つのノードを有しており、それぞれのノードに対応する、4つのノードコントローラ71(71a、71b、71c、71d)と、複数のCPUから構成される4つのCPU72(72a、72b、72c、72d)と、4つのメモリコントローラ73(73a、74b、73c、73d)と、16のメモリ74(74a、74b、74c、74dが4つずつ)とを有している。また、上記のように、各ノードコントローラ71は、第1の実施形態で説明したメモリアクセス制御装置1の構成を有している。
【0085】
このようなシステムにおいては、図12で示す経路C01のようにノードコントローラ71を経由する(経由C01の場合、ノードコントローラ71a、71bを経由する)アクセスを行う場合、CPU72からメモリ74までの経路(経由C01の場合、CPU72aからメモリ74b)が長くなるためレイテンシが大きくなる。このため、図13で示すように多数のCPU72から同一メモリアドレスへのアクセスが集中した場合、つまり、例えばノードコントローラ71bを経由した同一メモリアドレスへのアクセスが多い場合、ノードコントローラ71b経由のメモリアクセスのレイテンシに引きずられ、すべての経路においてレイテンシが発生しやすくなる。そこで、本発明をノードコントローラ71に対して適用することで、ノードコントローラ71を経由する経路経由でのメモリアクセスを監視することが可能となり、大きな効果を得ることが出来るものと考えられる。
【0086】
また、図12で示す経路C02や経路C03などノードコントローラ71を経由しない経路を使用した同一メモリアドレスへのアクセスの集中による遅延は、上記ノードコントローラ71を経由した場合に発生する遅延と比較して、相対的に小さいものと考えられる。そのため、各ノードコントローラ71は、例えば、図14で示すように、自分が直接管理するメモリコントローラ73の負荷状況だけを管理する(例えば、ノードコントローラ71aは、メモリコントローラ73aの負荷状況を管理する)。これにより、効率的な管理を行うことが可能となる。図14では、ノードコントローラ71aは、メモリコントローラ73a(MC1)の負荷状況を管理していることを示している。なお、図14では、各ノードコントローラ71において、図3で示すキューを各メモリコントローラ用のキューとし、キュー長を各メモリコントローラ73向けへのアクセス数とした遅延予測テーブル42の一例を示している。また、H−WM及びL―WMを動的に変更(例えば、各ノードに対する負荷などに応じて動的に変更する)した場合を示しており、遅延抑制時間を動的に制御している場合を示している。
【0087】
[第3の実施形態]
次に、図15を参照して、第3の実施形態について説明する。第3の実施形態では、同一アドレスレンジに対するアクセスの集中により生じるレイテンシを抑制するメモリアクセス制御装置8について説明する。本実施形態においては、メモリアクセス制御装置8の構成の概要について説明する。
【0088】
図15を参照すると、本実施形態におけるメモリアクセス制御装置8は、受付手段81と発行手段82と抑制手段83とメモリアクセス手段84を有している。
【0089】
受付手段81は、メモリアドレスへのアクセス要求を受け付ける。発行手段82は、受付手段81が受け付けたアクセス要求に応じて、メモリアクセス手段84に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する。
【0090】
抑制手段83は、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段84によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて発行手段82によるアクセス命令の発行を所定時間抑制させる。
【0091】
このように、本実施形態におけるメモリアクセス制御装置8は、発行手段82と抑制手段83とを有している。このような構成により、抑制手段83は、状況情報を参照し、当該状況情報に基づいて、発行手段82によるアクセス命令の発行を所定時間抑制させることが出来る。つまり、抑制手段83は、状況情報に基づいて、例えば、アクセス要求がアクセスを要求するメモリアドレスに対するアクセスが遅延すると判断される場合などにおいて、当該メモリアドレスに対するアクセスを要求するアクセス命令の発行を所定時間抑制させることが出来る。これにより、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。
【0092】
また、上記メモリアクセス制御装置8は、当該メモリアクセス制御装置8に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、情報処理装置に、メモリアドレスへのアクセス要求を受け付ける受付手段と、受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて発行手段によるアクセス命令の発行を所定時間抑制させる抑制手段と、を実現させるためのプログラムである。
【0093】
また、上述したメモリアクセス制御装置8が作動することにより実行されるメモリアクセス制御方法は、メモリアドレスへのアクセス要求を受け付け、受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいてアクセス命令の発行を所定時間抑制させる、という方法である。
【0094】
上述した構成を有する、プログラム、又は、メモリアクセス制御方法、の発明であっても、上記メモリアクセス制御装置8と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【0095】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるメモリアクセス制御装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【0096】
(付記1)
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有する
メモリアクセス制御装置。
【0097】
この構成によると、メモリアクセス制御装置は、発行手段と抑制手段とを有している。このような構成により、抑制手段は、状況情報を参照し、当該状況情報に基づいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。これにより、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。
【0098】
(付記2)
付記1に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
メモリアクセス制御装置。
【0099】
この構成によると、抑制手段は、状況情報として、アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する。これにより、抑制手段は、例えば、アクセスの数が多くアクセスが集中していると判断される場合などにおいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。その結果、メモリアドレスに対するアクセスの集中により生じるレイテンシを抑制することが可能となる。
【0100】
(付記3)
付記1又は2に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
メモリアクセス制御装置。
【0101】
この構成によると、抑制手段は、状況情報として、キュー長を示す情報を参照する。これにより、メモリアクセス手段で実行中(処理中)のアクセス命令の数に基づいて、該当するメモリアドレスに対するアクセスが集中していると判断される場合などにおいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。
【0102】
(付記4)
付記3に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記キュー長が予め定められた遅延閾値以上である場合、対応するメモリアドレスに対するアクセスを指示する前記アクセス命令の発行を所定時間抑制させる
メモリアクセス制御装置。
【0103】
(付記5)
付記3又は4に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記発行手段に対して前記アクセス命令の発行を所定時間抑制させる状態において、前記キュー長が前記遅延閾値よりも小さな値である解消閾値以下となるまで、当該アクセス命令の発行を所定時間抑制させる状態を持続する
メモリアクセス制御装置。
【0104】
(付記6)
付記3乃至5のいずれかに記載のメモリアクセス制御装置であって、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御装置。
【0105】
(付記7)
付記1乃至6のいずれかに記載のメモリアクセス制御装置であって、
前記抑制手段は、前記受付手段から前記アクセス要求を受信した後当該受信したアクセス要求を前記発行手段に送信するよう構成され、前記状況情報に基づいて遅延が生じると判断される前記アクセス要求に対しては、前記受付手段から前記アクセス要求を受信した後、所定時間待機した後に、当該受信したアクセス要求を前記発行手段に送信する
メモリアクセス制御装置。
【0106】
(付記8)
付記7に記載のメモリアクセス制御装置であって、
前記状況情報に基づいて遅延が生じると判断される場合に、遅延の発生を予測する遅延予測情報を前記受付手段に対して送信する送信手段を有し、
前記受付手段は、前記遅延予測情報に基づいて遅延の発生が予測されている場合、前記メモリアクセス要求を前記抑制手段に送信する
メモリアクセス制御装置。
【0107】
(付記9)
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させる、
メモリアクセス制御方法。
【0108】
(付記9−1)
付記9に記載のメモリアクセス制御方法であって、
前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
メモリアクセス制御方法。
【0109】
(付記9−2)
付記9又は9−1に記載のメモリアクセス制御方法であって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
メモリアクセス制御方法。
【0110】
(付記10)
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させるためのプログラム。
【0111】
(付記10−1)
付記10に記載のプログラムであって、
前記抑制手段は、前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
プログラム。
【0112】
(付記10−2)
付記10又は10−1に記載のプログラムであって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
プログラム。
【0113】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【0114】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【0115】
1 メモリアクセス制御装置
2 メモリアクセス要求制御機構
21 遅延認識手段
22 遅延予測フラグ
23 メモリアクセス命令発行準備手段
24 遅延アドレス確認手段
25 遅延抑制手段
26 メモリアクセス命令発行手段
3 メモリアクセス要求機構
31 メモリアクセス判断手段
32 キャッシュ
4 メモリアクセス管理機構
41 メモリアクセス監視手段
42 遅延予測テーブル
43 メモリアクセス手段
44 メモリ
45 遅延発生予測手段
46 遅延解消予測手段
47 遅延予測通知手段
5 システム
51 プロセッサ
52 メモリコントローラ
53 メモリ
61 割り込みハンドラ
62 遅延フラグ
63 処理
64 遅延予測テーブル
7 NUMA型システム
71 ノードコントローラ
72 CPU
73 メモリコントローラ
74 メモリ
8 メモリアクセス制御装置
81 受付手段
82 発行手段
83 抑制手段
84 メモリアクセス手段

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15