(57)【特許請求の範囲】
【請求項１】
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有し、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御装置。
【請求項２】
請求項１に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記キュー長が予め定められた遅延閾値以上である場合、対応するメモリアドレスに対するアクセスを指示する前記アクセス命令の発行を所定時間抑制させる
メモリアクセス制御装置。
【請求項３】
請求項２に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記発行手段に対して前記アクセス命令の発行を所定時間抑制させる状態において、前記キュー長が前記遅延閾値よりも小さな値である解消閾値以下となるまで、当該アクセス命令の発行を所定時間抑制させる状態を持続する
メモリアクセス制御装置。
【請求項４】
請求項１乃至３のいずれかに記載のメモリアクセス制御装置であって、
前記抑制手段は、前記受付手段から前記アクセス要求を受信した後当該受信したアクセス要求を前記発行手段に送信するよう構成され、前記状況情報に基づいて遅延が生じると判断される前記アクセス要求に対しては、前記受付手段から前記アクセス要求を受信した後、所定時間待機した後に、当該受信したアクセス要求を前記発行手段に送信する
メモリアクセス制御装置。
【請求項５】
請求項４に記載のメモリアクセス制御装置であって、
前記状況情報に基づいて遅延が生じると判断される場合に、遅延の発生を予測する遅延予測情報を前記受付手段に対して送信する送信手段を有し、
前記受付手段は、前記遅延予測情報に基づいて遅延の発生が予測されている場合、前記アクセス要求を前記抑制手段に送信する
メモリアクセス制御装置。
【請求項６】
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させ、
前記状況情報として、前記アクセス命令を受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御方法。
【請求項７】
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させ、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス制御装置、メモリアクセス制御方法、プログラムに関し、特にレイテンシを抑制するメモリアクセス制御装置、メモリアクセス制御方法、プログラムに関する。
【背景技術】
【０００２】
複数のプロセッサがメモリを共有する共有メモリシステムが知られている。このような共有メモリシステムの場合、複数の命令が競合することなどを起因として、レイテンシ（遅延）が生じることがある。そこで、上記のようなレイテンシに対する対策が様々考えられている。
【０００３】
例えば、特許文献１には、データ処理部を複数のグループに分けた際のグループ間の優先順位が予め設定されたアクセス調停部を有するシステムが記載されている。特許文献１によると、アクセス調停部は、競合が生じた場合に、優先順位に従ってアクセスの調停を行う。また、アクセス調停部は、許容アクセス回数を超えるアクセス要求が発生した場合、優先順位の低いデータ処理部に対して、ウェイト指令信号を送信する。特許文献１によると、このような構成により、応答時間の増加を抑制することが出来る。
【０００４】
また、例えば、特許文献２には、記憶手段と登録手段と送信手段とを備えるレイテンシ短縮システムが記載されている。特許文献２によると、登録手段は、共有メモリの同一アドレスに対して同時にリクエストが発行された場合に、該リクエストを発行した発行元を特定する制御情報を記憶手段に記憶する。また、送信手段は、同時に送信されたリクエストのうち、最初に発行されたリクエストに対して当該リクエストの発行元にデータを返信するとき、当該発行元を制御情報に基づいて決定する。特許文献２によると、このような構成により、複数のプロセッサからの所定のリクエストを同時に処理することができ、その結果、レイテンシを短縮することが出来る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開第２００５−２４２４０８号公報
【特許文献２】特開第２０１１−００２９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されている技術の場合、アクセス調停の結果アクセスが許可された複数のデータ処理部が同一のアドレス（又は、同一のアドレスレンジ）に対してアクセスすることがある。このような場合、同一のアドレスに対するアクセス集中が起こり、その結果として、コヒーレンシ処理などに時間がかかり、ロードやストア命令が通常よりも大幅に遅延するおそれがあった。このように、特許文献１に記載されている技術の場合、同一アドレスに対するアクセスの集中によりレイテンシが発生してしまうおそれがあった。
【０００７】
また、特許文献２に記載されている技術は、所定のリクエストを同時に処理することでレイテンシを抑制している。そのため、同時に処理できないリクエスト等に対して、必ずしも十分な対応となっていなかった。このように、特許文献２に記載されている技術の場合でも、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しいおそれがあった。
【０００８】
以上のように、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題が生じていた。
【０００９】
そこで、本発明の目的は、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題を解決するメモリアクセス制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
かかる目的を達成するため本発明の一形態であるメモリアクセス制御装置は、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有する
という構成を採る。
【００１１】
また、本発明の他の形態であるメモリアクセス制御方法は、
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させる、
という構成を採る。
【００１２】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させるためのプログラムである。
【発明の効果】
【００１３】
本発明は、以上のように構成されることにより、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題を解決するメモリアクセス制御装置を提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態におけるメモリアクセス制御装置の構成の一例を示すブロック図である。
【図２】メモリアクセス制御装置の構成の一例を示すブロック図である。
【図３】図２で示す遅延予測テーブルの構成の一例を示す図である。
【図４】メモリアクセス要求機構とメモリアクセス手段の構成の一例を示す図である。
【図５】メモリアクセス要求制御機構の動作の一例を示すフローチャートである。
【図６】メモリアクセス要求制御機構の動作の一例を示すフローチャートである。
【図７】メモリアクセス要求機構の動作の一例を示すフローチャートである。
【図８】メモリアクセス管理機構の動作の一例を示すフローチャートである。
【図９】メモリアクセス要求制御機構の実装例を示すブロック図である。
【図１０】メモリアクセス要求制御機構の動作の一例を記述した擬似コードの一例である。
【図１１】本発明の第２の実施形態におけるＮＵＭＡ型システムの全体の構成の一例を示す図である。
【図１２】図１１で示すＮＵＭＡ型システムにおけるメモリアクセスの流れの一例を示す図である。
【図１３】図１１で示すＮＵＭＡ型システムにおけるメモリアクセスの流れの一例を示す図である。
【図１４】本発明の第２の実施形態における遅延予測テーブルの構成の一例を示す図である。
【図１５】本発明の第３の実施形態におけるメモリアクセス制御装置の構成の一例を示す概略ブロック図である。
【発明を実施するための形態】
【００１５】
［第１の実施形態］
本発明の第１の実施形態を図１乃至図１０を参照して説明する。図１、図２は、メモリアクセス制御装置１の構成の一例を示すブロック図である。図３は、遅延予測テーブル４２の構成の一例を示す図である。図４は、メモリアクセス要求機構３とメモリアクセス手段４３の構成の一例を示す図である。図５、図６は、メモリアクセス要求制御機構２の動作の一例を示すフローチャートである。図７は、メモリアクセス要求機構３の動作の一例を示すフローチャートである。図８は、メモリアクセス管理機構４の動作の一例を示すフローチャートである。図９は、メモリアクセス要求制御機構２の実装例を示すブロック図である。図１０は、メモリアクセス要求制御機構２の動作の一例を記述した擬似コードの一例である。
【００１６】
本発明の第１の実施形態では、同一アドレスレンジに対するアクセスの集中により生じるレイテンシを抑制するメモリアクセス制御装置１について説明する。本実施形態におけるメモリアクセス制御装置１は、後述するように、アドレスレンジごとに処理中のリクエスト数を示すキュー長を計測する。そして、同一のアドレスレンジに対するアクセスが集中していると判断される場合、メモリアクセス制御装置１は、メモリアクセス命令の発行を一時的に抑制するよう構成されている。このような構成により、メモリアクセス制御装置１は、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。
【００１７】
なお、本実施形態において、アドレスレンジが同一であるとは、メモリアドレスのうち１つ目から所定数までの値が一致することをいう。アドレスレンジの粒度（所定数をいくつに設定するか）は、メモリアクセス制御装置１を用いるシステムに応じて任意に設定して構わない。
【００１８】
図１を参照すると、本実施形態におけるメモリアクセス制御装置１は、メモリアクセス要求を受信するメモリアクセス要求制御機構２と、メモリアクセス要求機構３ａ、３ｂ、３ｃ、３ｄ、３ｅ、３ｆ（以下、特に区別しない場合はメモリアクセス要求機構３とする）と、メモリアクセス管理機構４と、を有している。
【００１９】
図１で示すように、メモリアクセス要求制御機構２とメモリアクセス要求機構３とは、通信可能なよう接続されている。同様に、メモリアクセス要求機構３とメモリアクセス管理機構４、メモリアクセス管理機構４とメモリアクセス要求制御機構２とも、通信可能なよう接続されている。
【００２０】
メモリアクセス要求制御機構２は、特定のメモリアドレスへのメモリアクセス要求（アクセス要求）を外部から受け付ける。すると、メモリアクセス要求制御機構２は、受け付けたメモリアクセス要求に応じて、当該メモリアクセス要求が要求するメモリアドレスへのアクセスを指示するメモリアクセス命令（アクセス命令）を発行する。また、本実施形態におけるメモリアクセス要求制御機構２は、後述する遅延予測テーブル４２（状況情報）に基づいて、同一アドレスレンジへのアクセスが集中していると判断される場合、メモリアクセス命令の発行を一時的に抑制する。換言すると、メモリアクセス要求制御機構２は、アクセス集中によりメモリアクセス要求がアクセスを要求するメモリアドレスに対するアクセスが遅延すると判断される場合、当該メモリアドレスに対するメモリアクセス命令の発行を一時的に抑制する。
【００２１】
図２を参照すると、本実施形態におけるメモリアクセス要求制御機構２は、遅延認識手段２１と、遅延予測フラグ２２と、メモリアクセス命令発行準備手段２３と、遅延アドレス確認手段２４と、遅延抑制手段２５と、メモリアクセス命令発行手段２６と、を有している。メモリアクセス要求制御機構２は、例えば、図示しない演算装置と記憶装置とを有しており、記憶装置が記憶するプログラムを演算装置が実行することで、上記各手段を実現する。
【００２２】
遅延認識手段２１は、遅延予測フラグ２２を更新する。例えば、遅延認識手段２１は、メモリアクセス管理機構４が管理するアドレスレンジにおける遅延を予測する遅延予測通知をメモリアクセス管理機構４の遅延予測通知手段４７から受信する。また、遅延認識手段２１は、メモリアクセス管理機構４が管理するアドレスレンジにおける遅延の予測を解消する遅延解消通知を遅延予測通知手段４７から受信する。そして、遅延認識手段２１は、受信した遅延予測通知や遅延解消通知に基づいて、遅延予測フラグ２２を更新する。
【００２３】
具体的には、遅延予測フラグ２２はカウンタとして実装され、遅延認識手段２１は、遅延予測通知を受信した場合、遅延予測フラグ２２をインクリメントする（１増加させる）。また、遅延認識手段２１は、遅延解消通知を受信した場合、遅延予測フラグ２２をデクリメントする（１減少させる）。このように、遅延認識手段２１は、遅延予測通知手段４７から受信した通知に応じて、遅延予測フラグ２２を更新する。
【００２４】
遅延予測フラグ２２は、メモリアクセス管理機構４において遅延が発生している可能性があるか否かという情報を示している。上記のように、遅延予測フラグ２２は、例えばカウンタとして実装される。遅延予測フラグ２２の値が０である場合は遅延が発生していないことを示しており、遅延予測フラグ２２の値が１以上である場合は遅延が発生している可能性があることを示している。
【００２５】
メモリアクセス命令発行準備手段２３（受付手段）は、遅延予測フラグ２２に基づいて、受信したメモリアクセス要求を遅延アドレス確認手段２４に送信するか否かを判断する。例えば、メモリアクセス命令発行準備手段２３は、外部からメモリアクセス要求を受信する。すると、メモリアクセス命令発行準備手段２３は、遅延予測フラグ２２を参照して、メモリアクセス管理機構４が管理するアドレスレンジにおける直近のアクセスに対して遅延が予測されているか否かを判断する。そして、遅延予測フラグ２２が立っている場合（値が１以上で遅延が予測されている場合）、メモリアクセス命令発行準備手段２３は、メモリアクセス要求を遅延アドレス確認手段２４に送信する。一方、遅延予測フラグ２２が立っていない場合（値が０であり遅延が予測されていない場合）、メモリアクセス命令発行準備手段２３は、メモリアクセス要求をメモリアクセス命令発行手段２６に送信する。
【００２６】
遅延アドレス確認手段２４（抑制手段の一部）は、メモリアクセス要求がアクセスを要求するメモリアドレスに対応するエントリが、後述するメモリアクセス管理機構４の遅延予測テーブル４２に存在しているか否か、当該エントリにアラートが立っているか否かを確認する。例えば、遅延アドレス確認手段２４は、メモリアクセス命令発行準備手段２３からメモリアクセス要求を受信する。すると、遅延アドレス確認手段２４は、遅延予測テーブル４２を参照して、受信したメモリアクセス要求がアクセスを要求するメモリアドレスに該当するエントリが遅延予測テーブル４２に存在するか否かを確認する。換言すると、遅延アドレス確認手段２４は、メモリアクセス要求がアクセスを要求するメモリアドレスが含まれるアドレスレンジのエントリが遅延予測テーブル４２に存在するか否かを確認する。また、遅延アドレス確認手段２４は、該当するエントリが存在する場合、当該エントリにアラートが立っているか否かを確認する。そして、該当するエントリが存在し、かつ、当該エントリにアラートが立っている場合、遅延アドレス確認手段２４は、メモリアクセス要求を遅延抑制手段２５に送信する。一方、該当するエントリが存在しない場合やエントリにアラートが立っていない場合、遅延アドレス確認手段２４は、メモリアクセス要求をメモリアクセス命令発行手段２６に送信する。
【００２７】
遅延抑制手段２５（抑制手段の一部）は、予め定められた時間（遅延抑制時間）分該当メモリアドレスへのアクセスを抑制する。例えば、遅延抑制手段２５は、遅延アドレス確認手段２４からメモリアクセス要求を受信する。すると、遅延抑制手段２５は、予め定められた時間分待機する。その後、遅延抑制手段２５は、受信したメモリアクセス要求をメモリアクセス命令発行手段２６に送信する。遅延抑制手段２５は、例えば、このようにして、予め定められた時間分待機した後メモリアクセス要求をメモリアクセス命令発行手段２６に送信することで、メモリアクセス命令発行手段２６によるメモリアクセス命令の発行を所定時間抑制させることになる。
【００２８】
メモリアクセス命令発行手段２６（発行手段）は、受信したメモリアクセス要求に基づいて、当該メモリアクセス要求が示すメモリアドレスへのアクセスを指示するメモリアクセス命令をメモリアクセス要求機構３に対して発行する。例えば、メモリアクセス命令発行手段２６は、メモリアクセス命令発行準備手段２３、遅延アドレス確認手段２４、遅延抑制手段２５、からメモリアクセス要求を受信する。そして、メモリアクセス命令発行手段２６は、受信したメモリアクセス要求に基づいて、メモリアクセス要求機構３に対してメモリアクセス命令を発行する。
【００２９】
メモリアクセス要求機構３は、図２で示すように、メモリアクセス判断手段３１とキャッシュ３２とを有している。メモリアクセス要求機構３は既存技術で実現可能な機構であり、例えば、プロセッサなどのような機構である。
【００３０】
メモリアクセス判断手段３１は、メモリアクセス命令に応じて、キャッシュ３２を利用するか実際にメモリアクセスを行うかを判断する。例えば、メモリアクセス判断手段３１は、メモリアクセス命令発行手段２６から、メモリアクセス命令を受信する。すると、メモリアクセス判断手段３１は、受信したメモリアクセス命令を解釈する。そして、メモリアクセス判断手段３１は、解釈結果に応じて、キャッシュ３２を利用するか、メモリアクセスを実際に行うかを判断する。また、メモリアクセス判断手段３１は、メモリアクセスを実際に行うと判断した場合、メモリアクセス命令をメモリアクセス管理機構４のメモリアクセス監視手段４１に送信する。
【００３１】
メモリアクセス管理機構４は、受信したメモリアクセス命令に応じて、メモリ４４にアクセスする。また、メモリアクセス管理機構４は、特定アドレスレンジへのアクセス集中を検出して、メモリアクセス要求制御機構２に対して遅延予測通知を通知する。また、メモリアクセス管理機構４は、遅延発生の可能性が低くなった段階で、メモリアクセス要求制御機構２に対して遅延解消通知を通知する。
【００３２】
図２を参照すると、本実施形態におけるメモリアクセス管理機構４は、メモリアクセス監視手段４１と遅延予測テーブル４２とメモリアクセス手段４３とメモリ４４と遅延発生予測手段４５と遅延解消予測手段４６と遅延予測通知手段４７とを有している。メモリアクセス管理機構４は、例えば、図示しない演算装置と記憶装置とを有しており、記憶装置が記憶するプログラムを演算装置が実行することで、上記各手段を実現する。また、メモリアクセス管理機構４は、メモリなどの記憶装置を有しており、当該記憶装置に遅延予測テーブル４２を格納する。
【００３３】
メモリアクセス監視手段４１は、メモリアクセス要求機構３からメモリアクセス命令を受け付け、受け付けたメモリアクセス命令をメモリアクセス手段４３に送信する。また、メモリアクセス監視手段４１は、遅延予測テーブル４２を管理する。後述するように、メモリアクセス監視手段４１は、遅延予測テーブル４２を管理することで、キュー長の計測などを行うことになる。
【００３４】
例えば、メモリアクセス監視手段４１は、メモリアクセス要求機構３からメモリアクセス命令を受信する。すると、メモリアクセス監視手段４１は、受信したメモリアクセス命令に基づいて遅延予測テーブル４２を更新する。例えば、メモリアクセス監視手段４１は、メモリアクセス命令を受信すると、受信したメモリアクセス命令が要求するメモリアドレスが属するアドレスレンジに対するエントリが遅延予測テーブル４２に既に存在しているか否かを確認する。そして、対応するエントリが存在する場合、メモリアクセス監視手段４１は、該当メモリアドレスに対応するキュー長をインクリメントする。一方、対応するエントリが存在しない場合、メモリアクセス監視手段４１は、対応するエントリを新規エントリとして遅延予測テーブル４２に登録する。この際、新規に登録されるエントリのキュー長は１の状態となる。また、メモリアクセス監視手段４１は、メモリアクセス命令をメモリアクセス手段４３に送信するとともに、必要に応じて遅延発生予測手段４５を起動する。例えば、メモリアクセス監視手段４１は、キュー長をインクリメントしたエントリにアラートが立っていない場合に遅延発生予測手段４５を起動する。
【００３５】
また、メモリアクセス監視手段４１は、メモリアクセス手段４３からメモリアクセスの完了を通知されると、遅延予測テーブル４２を更新する。例えば、メモリアクセス監視手段４１は、メモリアクセスが完了した旨の通知を受信すると、対応するエントリのキュー長をデクリメントする。また、その結果として、キュー長が０になった場合、メモリアクセス監視手段４１は、該当するエントリを遅延予測テーブル４２から削除する。また、メモリアクセス監視手段４１は、必要に応じて遅延解消予測手段４６を起動する。例えば、メモリアクセス監視手段４１は、キュー長をデクリメントしたエントリにアラートが立っている場合に遅延解消予測手段４６を起動する。
【００３６】
遅延予測テーブル４２（状況情報）は、メモリアクセス手段４３によるアクセスの状況を示しており、例えば、メモリアドレスに対するアクセスの数を示している。具体的には、遅延予測テーブル４２は、アドレスレンジごとにキュー長（処理中のリクエスト数。例えば、メモリアクセス手段４３（メモリアクセス管理機構４）が受け付けた後実行完了前のメモリアクセス命令の数）を管理している。
【００３７】
図３は、遅延予測テーブル４２の構成の一例である。図３を参照すると、遅延予測テーブル４２は、アドレスレンジと、キューと、キュー長と、Ｈ−ＷＭ（High Watermark）（遅延閾値）と、Ｌ−ＷＭ（Low Watermark）（解消閾値）と、アラートと、を対応付けている。上記遅延予測テーブル４２には、メモリアクセス監視手段４１により、メモリアクセス監視手段４１で監視中のリクエスト（メモリアクセス命令）が登録される。
【００３８】
上述したように、キュー長は処理中のリクエスト数を示している。キュー長は、メモリアクセス手段４３にメモリアクセス命令が１つ送信される度に１増加するようメモリアクセス監視手段４１により管理される。また、キュー長は、メモリアクセス命令の実行完了ごとに１減少するようメモリアクセス監視手段４１により管理される。
【００３９】
Ｈ−ＷＭは、アドレスレンジに対するアクセスが集中しているか否かを判断するために用いられる閾値である。Ｈ−ＷＭは、遅延発生予測手段４５によりキュー長と比較され、キュー長がＨ−ＷＭ以上になった場合に、該当するエントリのアラートが立てられることになる。また、Ｌ−ＷＭは、例えばＨ−ＷＭよりも小さな値であり、アドレスレンジに対するアクセスの集中が解消しているか否かを判断するために用いられる閾値である。Ｌ−ＷＭは、遅延解消予測手段４６によりキュー長と比較され、キュー長がＬ−ＷＭ以下となった場合に、該当するエントリのアラートが倒される（削除される）ことになる。また、上記のように、アラートは、キュー長がＨ−ＷＭ以上となった場合に立てられ、キュー長がＬ−ＷＭ以下となった場合に倒されることになる。このような構成のため、遅延アドレス確認手段２４は、メモリアクセス命令発行手段２６に対してメモリアクセス命令の発行を所定時間抑制させる状態（アラートが立った状態）において、キュー長がＨ−ＷＭよりも小さな値であるＬ−ＷＭ以下となるまで、メモリアクセス命令の発行を所定時間抑制させる状態を持続することになる。
【００４０】
なお、Ｈ−ＷＭ及びＬ−ＷＭの値は、例えば、予め定められた値である。Ｈ−ＷＭ及びＬ−ＷＭの値は、例えば、システム仕様や経験則に基づいてシステム固有の値として予め定められている。
【００４１】
メモリアクセス手段４３は、メモリ４４へのメモリアクセスを行うとともにメモリアクセス要求機構３が有するキャッシュ３２の内容の一貫性、コヒーレンシを保つよう動作する。メモリアクセス手段４３には、既存の様々な技術を採用することが出来る。
【００４２】
メモリ４４は、ハードディスクやメモリなどの記憶装置である。上記のように、メモリ４４は、メモリアクセス手段４３によりアクセスされることになる。
【００４３】
遅延発生予測手段４５は、遅延予測テーブル４２を情報源として遅延発生予測を行う。具体的には、上述したように、遅延発生予測手段４５は、メモリアクセス監視手段４１により起動される。すると、遅延発生予測手段４５は、遅延予測テーブル４２を参照して、該当するエントリ（例えば、起動の起因となったエントリ）のキュー長がＨ−ＷＭ以上であるか否かを確認する。そして、キュー長がＨ−ＷＭ以上である場合、遅延発生予測手段４５は、該当するエントリのアラートを立てる。また、遅延発生予測手段４５は、アラートを立てた旨を遅延予測通知手段４７に通知する。一方、キュー長がＨ−ＷＭよりも小さい場合、遅延発生予測手段４５は、その処理を終了する。
【００４４】
遅延解消予測手段４６は、遅延予測テーブル４２を情報源として遅延解消予測を行う。具体的には、上述したように、遅延解消予測手段４６は、メモリアクセス監視手段４１により起動される。すると、遅延解消予測手段４６は、遅延予測テーブル４２を参照して、該当するエントリ（例えば、起動の起因となったエントリ）のキュー長がＬ−ＷＭ以下であるか否かを確認する。そして、キュー長がＬ−ＷＭ以下である場合、遅延解消予測手段４６は、該当するエントリのアラートを倒す。また、遅延解消予測手段４６は、アラートを倒した旨を遅延予測通知手段４７に通知する。一方、キュー長がＬ−ＷＭよりも大きい場合、遅延解消予測手段４６は、その処理を終了する。
【００４５】
遅延予測通知手段４７（送信手段）は、メモリアクセス要求制御機構２に対して、遅延予測通知や遅延解消通知を送信する。例えば、遅延予測通知手段４７は、遅延発生予測手段４５からアラートを立てた旨の通知を受信する。すると、遅延予測通知手段４７は、当該受信した通知に応じて、遅延を予測する遅延予測通知を送信する。また、遅延予測通知手段４７は、遅延解消予測手段４６からアラートを倒した旨の通知を受信する。すると、遅延予測通知手段４７は、当該受信した通知に応じて、遅延の予測を解消する遅延解消通知を送信する。
【００４６】
以上が、メモリアクセス制御装置１の構成の一例についての説明である。
【００４７】
なお、メモリアクセス要求機構３及びメモリアクセス管理機構４のメモリアクセス手段４３は、例えば既存技術により実現可能な手段である。メモリアクセス要求機構３やメモリアクセス手段４３は、例えば図４で示すようなシステム５（５ａ、５ｂ）においては、それぞれ一般的なプロセッサ５１（ＣＰＵ（Central Processing Unit））やメモリコントローラ５２のように動作する。
【００４８】
また、上記のようなシステム５は、例えば、以下のような特徴を有している。
特徴１．各プロセッサ５１からメモリコントローラ５２に対して同時にメモリアクセス命令（メモリ５３に対するアクセスを要求する命令）を出すことが出来る。
特徴２．各プロセッサ５１からの要求がそれぞれ異なるアドレスレンジへのアクセスであった場合、メモリコントローラ５２の処理は多くの場合において並列動作可能である。そのため、このような場合、遅延は少ないことになる（図４のシステム５ａ参照）。
特徴３．各プロセッサ５１からの要求が同一アドレスレンジへのアクセスであった場合、メモリ及び各プロセッサ５１内のキャッシュのコヒーレンシ維持が必要となり、処理がシリアライズ（逐次化）される。そのため、多数のプロセッサ５１が同一メモリアドレスにアクセスし続けるような場合、多数のプロセッサ５１上のキャッシュに該当メモリアドレスが載っているためコヒーレンシ維持のための更新処理、同期処理が重くなることになる。その結果、遅延が大きくなることになる（図４のシステム５ｂ参照）。
【００４９】
なお、図４は本実施形態におけるメモリアクセス制御装置１が用いられるシステムのうち非常に単純な一例を示している。本実施形態におけるメモリアクセス制御装置１は、例えば、上記のような特徴を持つ比較的大規模なシステムの性能向上を図るために用いられることが考えられるが、それ以外の装置、システムに適用されても構わない。
【００５０】
続いて、図５乃至図８を参照して、メモリアクセス制御装置１の動作の一例について説明する。まず、図５を参照して、メモリアクセス要求を受信した際のメモリアクセス要求制御機構２の動作の一例について説明する。
【００５１】
図５を参照すると、メモリアクセス命令発行準備手段２３は、外部装置や外部のソフトウェアなどからメモリアクセス要求を受信する（ステップＳ００１）。すると、メモリアクセス命令発行準備手段２３は、遅延予測フラグ２２を参照してメモリアクセス管理機構４において遅延が予測されているか否かを判断する。
【００５２】
遅延予測フラグ２２の値が１以上である場合（遅延が予測されている場合）（ステップＳ００２、Ｔｒｕｅ）、メモリアクセス命令発行準備手段２３は、メモリアクセス要求を遅延アドレス確認手段２４に送信する。一方、遅延予測フラグ２２の値が０である場合（遅延が予測されていない場合）（ステップＳ００２、Ｆａｌｓｅ）、メモリアクセス命令発行準備手段２３は、メモリアクセス要求をメモリアクセス命令発行手段２６に送信する。
【００５３】
遅延アドレス確認手段２４は、メモリアクセス命令発行準備手段２３からメモリアクセス要求を受信する。すると、遅延アドレス確認手段２４は、メモリアクセス管理機構４の遅延予測テーブル４２を参照して、受信したメモリアクセス要求が要求するメモリアドレスに該当するエントリが遅延予測テーブル４２に存在し、かつ、当該エントリにアラートが立っているか否かを確認する。
【００５４】
該当するエントリが存在し、アラートが立っている場合（ステップＳ００３、Ｔｒｕｅ）、遅延アドレス確認手段２４は、メモリアクセス要求を遅延抑制手段２５に送信する。一方、該当するエントリが存在しない場合やエントリにアラートが立っていない場合（ステップＳ００３、Ｆａｌｓｅ）、遅延アドレス確認手段２４は、メモリアクセス要求をメモリアクセス命令発行手段２６に送信する。
【００５５】
遅延抑制手段２５は、遅延アドレス確認手段２４からメモリアクセス要求を受信する。すると、遅延抑制手段２５は、予め定められた時間分待機する。つまり、遅延抑制手段２５は、遅延抑制処理を行う（ステップＳ００４）。その後、遅延抑制手段２５は、受信したメモリアクセス要求をメモリアクセス命令発行手段２６に送信する。
【００５６】
メモリアクセス命令発行手段２６は、受信したメモリアクセス要求に基づいて、当該メモリアクセス要求が示すメモリアドレスへのアクセスを指示するメモリアクセス命令をメモリアクセス要求機構３に対して発行する（ステップＳ００５）。
【００５７】
以上が、メモリアクセス要求を受信した際のメモリアクセス要求制御機構２の動作の一例である。次に、図６を参照して遅延予測フラグ２２を更新する際のメモリアクセス要求制御機構２の動作の一例について説明する。
【００５８】
図６を参照すると、メモリアクセス要求制御機構２の遅延認識手段２１は、メモリアクセス管理機構４の遅延予測通知手段４７から遅延予測通知や遅延解消通知を受信する（ステップＳ１０１）。
【００５９】
すると、遅延認識手段２１は、通知に応じた更新を行う。具体的には、遅延予測通知を受け取った場合（ステップＳ１０２、遅延予測通知）、遅延認識手段２１は、遅延予測フラグ２２をインクリメントする（ステップＳ１０３）。一方、遅延解消通知を受け取った場合（ステップＳ１０２、遅延解消通知）、遅延認識手段２１は、遅延予測フラグ２２をデクリメントする（ステップＳ１０４）。遅延認識手段２１は、例えば、このように受信した通知に応じて遅延予測フラグ２２を更新する。
【００６０】
以上が、遅延予測フラグ２２を更新する際のメモリアクセス要求制御機構２の動作の一例である。続いて、図７を参照して、メモリアクセス要求機構３の動作の一例について説明する。
【００６１】
図７を参照すると、メモリアクセス要求機構３は、メモリアクセス命令発行手段２６からメモリアクセス命令を受信する（ステップＳ２０１）。具体的には、メモリアクセス要求機構３のメモリアクセス判断手段３１がメモリアクセス命令を受信する。
【００６２】
メモリアクセス判断手段３１は、受信したメモリアクセス命令を解釈し、キャッシュ３２を確認した上で、必要であればキャッシュ３２の更新を行なったり、メモリアクセス管理機構４に対するメモリアクセスの要求を行ったりする（ステップＳ２０２）。
【００６３】
以上が、メモリアクセス要求機構３の動作の一例である。続いて、図８を参照して、メモリアクセス管理機構４の動作の一例について説明する。
【００６４】
図８を参照すると、メモリアクセス管理機構４のメモリアクセス監視手段４１は、メモリアクセス命令を受信する（ステップＳ３０１）。すると、メモリアクセス監視手段４１は、受信したメモリアクセス命令が要求するメモリアドレスが属するアドレスレンジに対するエントリが遅延予測テーブル４２に既に存在しているか否かを確認する（ステップＳ３０２）。
【００６５】
対応するエントリが存在する場合（ステップＳ３０２、Ｔｒｕｅ）、メモリアクセス監視手段４１は、該当メモリアドレスのキュー長をインクリメントする（ステップＳ３０３）。一方、対応するエントリが存在しない場合（ステップＳ３０２、Ｆａｌｓｅ）、メモリアクセス監視手段４１は、対応するエントリを新規エントリとして遅延予測テーブル４２に登録する（ステップＳ３０４）。この際、新規に登録されるエントリのキュー長は１の状態となる。
【００６６】
メモリアクセス監視手段４１は、並列動作可能な処理として、該当エントリにアラートが立っているか否かを確認する（ステップＳ３０５）とともに、受信したメモリアクセス命令をメモリアクセス手段４３に送信する。
【００６７】
アラートが立っている場合（ステップＳ３０５、Ｆａｌｓｅ）、メモリアクセス監視手段４１のこの並行処理の一つを終了する。一方、アラートが立っていない場合（ステップＳ３０５、Ｔｒｕｅ）、メモリアクセス監視手段４１は、遅延発生予測手段４５を起動する。
【００６８】
遅延発生予測手段４５は、遅延予測テーブル４２を参照して、起動の起因となったエントリのキュー長がＨ−ＷＭ以上であるか否かを確認する（ステップＳ３０６）。キュー長がＨ−ＷＭ以上である場合（ステップＳ３０６、Ｔｒｕｅ）、遅延発生予測手段４５は、該当するエントリのアラートを立てる（ステップＳ３０７）。また、遅延発生予測手段４５は、アラートを立てた旨を遅延予測通知手段４７に通知する。その後、上記通知を受領した遅延予測通知手段４７は、受信した通知に基づいて、遅延予測通知をメモリアクセス要求制御機構２に対して通知する（ステップＳ３０８）。一方、キュー長がＨ−ＷＭよりも小さい場合（ステップＳ３０６、Ｆａｌｓｅ）、遅延発生予測手段４５は、その処理を終了する。
【００６９】
メモリアクセス命令を受信したメモリアクセス手段４３は、例えば、当該メモリアクセス命令がアクセスを要求するアクセスレンジに対応するキューにリクエストを追加して、メモリアクセスを行う（ステップＳ３０９）。この処理は例えば既存の技術により行われる。
【００７０】
メモリアクセスが完了すると、メモリアクセス手段４３は、メモリアクセスが完了した旨をメモリアクセス監視手段４１に通知する。メモリアクセスが完了した旨の通知を受信すると、メモリアクセス監視手段４１は、対応するエントリのキュー長をデクリメントする（ステップＳ３１０）。そして、デクリメントの結果、キュー長が０になった場合（ステップＳ３１１、Ｔｒｕｅ）、メモリアクセス監視手段４１は、該当するエントリを遅延予測テーブル４２から削除する（ステップＳ３１２）。一方、キュー長が０にならなかった場合（ステップＳ３１１、Ｆａｌｓｅ）、メモリアクセス監視手段４１は、該当するエントリにアラートが立っているか否かを確認する（ステップＳ３１３）。なお、この処理は並列処理の同期により、同一アクセスリクエストにおけるステップＳ３０７の後に実行される事が保証される。
【００７１】
アラートが立っていない場合（ステップＳ３１３、Ｔｒｕｅ）、メモリアクセス監視手段４１は、処理を終了する。一方、アラートが立っている場合（ステップＳ３１３、Ｆａｌｓｅ）、メモリアクセス監視手段４１は、遅延解消予測手段４６を起動する。
【００７２】
遅延解消予測手段４６は、遅延予測テーブル４２を参照して、起動の起因となったエントリのキュー長がＬ−ＷＭ以下であるか否かを確認する（ステップＳ３１４）。キュー長がＬ−ＷＭ以下である場合（ステップＳ３１４、Ｔｒｕｅ）、遅延解消予測手段４６は、該当するエントリのアラートを倒す（ステップＳ３１５）。また、遅延解消予測手段４６は、アラートを倒した旨を遅延予測通知手段４７に通知する。その後、上記通知を受領した遅延予測通知手段４７は、受信した通知に基づいて、遅延解消通知をメモリアクセス要求制御機構２に対して通知する（ステップＳ３１６）。一方、キュー長がＬ−ＷＭよりも大きい場合（ステップＳ３１４、Ｆａｌｓｅ）、遅延解消予測手段４６は、その処理を終了する。
【００７３】
以上が、メモリアクセス管理機構４の動作の一例である。
【００７４】
このように、本実施形態におけるメモリアクセス制御装置１は、遅延アドレス確認手段２４と、遅延抑制手段２５とを有している。また、遅延予測テーブル４２を有している。このような構成により、遅延アドレス確認手段２４は、遅延予測テーブル４２を参照して、メモリアクセス要求がアクセスを要求するメモリアドレスが属するアドレスレンジに対してアクセスが集中しているか否かを確認することが出来る。また、遅延抑制手段２５は、遅延アドレス確認手段２４による確認結果に基づいて、アクセスの集中によりメモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。
【００７５】
また、本実施形態におけるメモリアクセス制御装置１は、遅延予測通知手段４７を有している。このような構成により、メモリアクセス管理機構４は、遅延が発生している可能性があることをメモリアクセス要求制御機構２に伝えることが出来る。その結果、メモリアクセス要求制御機構２は、遅延発生の可能性に応じて、メモリアクセス命令を発行するか抑制するかを判断すること（または、判断するための情報の確認を行うか否かを判断すること）が可能となる。
【００７６】
また、本実施形態におけるメモリアクセス制御装置１によると、効率的にメモリアクセスを制御して効率的に遅延の発生を抑制することが出来る。そのため、システムに搭載するＣＰＵの数を増やした場合の遅延の増加を効率的に防ぐことが出来る。その結果、ＣＰＵの数を容易に増やすことが容易となる。また、遅延予測テーブル４２を活用することで、システムに発生した問題の原因がメモリアクセス遅延によるものか否かを容易に判断することが可能となる。
【００７７】
なお、本実施形態におけるメモリアクセス命令発行準備手段２３は、メモリアクセス要求を受信すると、一律に遅延予測フラグ２２を確認するとした。しかしながら、メモリアクセス命令発行準備手段２３は、必ずしも受信した全てのメモリアクセス要求に対して遅延予測フラグ２２を確認しなくても構わない。メモリアクセス命令発行準備手段２３は、例えば、同時期に受信したメモリアクセス要求の全てがロード要求である場合、遅延予測フラグ２２の確認を省略するよう構成しても構わない。このように、メモリアクセス命令発行準備手段２３は、受信したメモリアクセス要求の内容や種類などに応じて遅延予測フラグ２２を確認するか否か判断するよう構成することが出来る。また、メモリアクセス命令発行準備手段２３は、例えば、予め定められたソフトウェアから発行されるメモリアクセス命令に対してのみ遅延予測フラグ２２を確認するよう構成しても構わない。
【００７８】
また、本実施形態におけるメモリアクセス要求制御機構２は、図９で示すような、ＣＰＵなどのハードウェアにプログラムが読み込まれることで実現されるソフトウェアで実装しても構わない。図９の割り込みハンドラ６１は、割り込みに応じて遅延フラグ６２を更新する。また、処理６３は、例えば、遅延予測情報（遅延フラグ６２、遅延予測テーブル６４）を利用することで遅延を大幅に遅らせることが可能な処理のみに、本発明を適用して、遅延フラグ６２（図２の遅延予測フラグ２２に相当する）及び遅延予測テーブル６４（遅延予測テーブル４２に相当する）の確認を行う。なお、処理内容はシステム処理であっても構わないし、ユーザーアプリケーション処理であっても構わない。
【００７９】
また、例えば、図１０の擬似コードのようなプログラムをハードウェアに読み込ませることで実現されるソフトウェア実装を行っても構わない。ここで、図１０におけるis_delay関数は遅延アドレス確認手段２４に相当し、lazy_spinlock関数は遅延抑制手段２５に相当する。図１０によると、is_delay関数が遅延を予測した場合、通常のspinlock関数ではなく、lazy_spinlock関数が利用される。lazy_spinlock関数では、lock->nop_times回、nop命令のような何もしない命令を繰り返す事で、一定期間、遅延を悪化させる無駄なlock->next_ticketが指すメモリアドレスへのアクセス抑制を実現している。
【００８０】
なお、上記記載の場合、どの程度アクセスを抑制するかを示すlock->nop_timesを変数とすることで、抑制時間を特定のアルゴリズムを用いて動的に変化させる事も可能である。このように、遅延抑制手段２５がアクセスを抑制する時間は動的に変化するよう構成しても構わない。また、例えば、抑制時間を遅延予測テーブル４２の新規項目として追加して、メモリアクセス管理機構４から抑制時間を取得するよう構成することも出来る。
【００８１】
また、本実施形態においては、メモリアクセス管理機構４は、対象を全アドレスレンジとしたグローバルな遅延予測テーブル４２を有するとした。また、遅延予測テーブル４２において、Ｈ−ＷＭ及びＬ−ＷＭは固定値であるとし、遅延抑制時間はメモリアクセス要求制御機構２に予め定められているものとした。しかしながら、メモリアクセス管理機構４の構成は、上記場合に限定されない。例えば、１つの遅延予測テーブル４２に格納するアドレスレンジを区切り、複数の遅延予測テーブル４２に分散するよう構成し、遅延予測テーブル４２の数だけ遅延予測フラグ２２を構成したり、一部のメモリアドレスレンジの遅延予測テーブルだけを活用したりしても構わない。また、Ｈ−ＷＭ及びＬ―ＷＭは、例えばメモリアクセス制御装置１を有するシステムに対する負荷の状況などに応じて動的に変更可能なよう構成しても構わない。また、遅延抑制時間は、メモリアクセス管理機構４により制御可能なよう構成しても構わない。例えば、遅延抑制時間は、遅延予測テーブル４２に含まれていても構わない。また、遅延抑制時間は、例えば、キュー長が長くなるほど長くなるなど、例えばメモリアクセス監視手段４１などにより動的に制御されても構わない。
【００８２】
また、本実施形態においては、メモリアクセス管理機構４は、遅延の発生の予測をキュー長に基づいて行うとした。しかしながら、メモリアクセス管理機構４は、キュー長以外に基づいて遅延の発生を予測しても構わない。メモリアクセス管理機構４は、例えば、メモリアクセスにかかる時間などを計測して、計測結果に基づいて遅延の発生を予測するよう構成しても構わない。このように、メモリアクセス管理機構４は、キュー長以外に基づいて遅延の発生を予測して遅延予測通知を送信するよう構成しても構わない。
【００８３】
［第２の実施形態］
続いて、第２の実施形態では、第１の実施形態で説明したメモリアクセス制御装置１を、ＮＵＭＡ（Non-Uniform Memory Access）構成を持つＮＵＭＡ型システム７のノードコントローラ７１（ノードコントローラ７１ａ、７１ｂ、７１ｃ、７１ｄ。特に区別しない場合は、ノードコントローラ７１と表記する。以下、同様）に適用する場合の一例について説明する。なお、以下においては、第１の実施形態と重複する説明については省略する。
【００８４】
図１１を参照すると、本実施形態におけるＮＵＭＡ型システム７は、例えば、４つのノードを有しており、それぞれのノードに対応する、４つのノードコントローラ７１（７１ａ、７１ｂ、７１ｃ、７１ｄ）と、複数のＣＰＵから構成される４つのＣＰＵ７２（７２ａ、７２ｂ、７２ｃ、７２ｄ）と、４つのメモリコントローラ７３（７３ａ、７４ｂ、７３ｃ、７３ｄ）と、１６のメモリ７４（７４ａ、７４ｂ、７４ｃ、７４ｄが４つずつ）とを有している。また、上記のように、各ノードコントローラ７１は、第１の実施形態で説明したメモリアクセス制御装置１の構成を有している。
【００８５】
このようなシステムにおいては、図１２で示す経路Ｃ０１のようにノードコントローラ７１を経由する（経由Ｃ０１の場合、ノードコントローラ７１ａ、７１ｂを経由する）アクセスを行う場合、ＣＰＵ７２からメモリ７４までの経路（経由Ｃ０１の場合、ＣＰＵ７２ａからメモリ７４ｂ）が長くなるためレイテンシが大きくなる。このため、図１３で示すように多数のCPU７２から同一メモリアドレスへのアクセスが集中した場合、つまり、例えばノードコントローラ７１ｂを経由した同一メモリアドレスへのアクセスが多い場合、ノードコントローラ７１ｂ経由のメモリアクセスのレイテンシに引きずられ、すべての経路においてレイテンシが発生しやすくなる。そこで、本発明をノードコントローラ７１に対して適用することで、ノードコントローラ７１を経由する経路経由でのメモリアクセスを監視することが可能となり、大きな効果を得ることが出来るものと考えられる。
【００８６】
また、図１２で示す経路Ｃ０２や経路Ｃ０３などノードコントローラ７１を経由しない経路を使用した同一メモリアドレスへのアクセスの集中による遅延は、上記ノードコントローラ７１を経由した場合に発生する遅延と比較して、相対的に小さいものと考えられる。そのため、各ノードコントローラ７１は、例えば、図１４で示すように、自分が直接管理するメモリコントローラ７３の負荷状況だけを管理する（例えば、ノードコントローラ７１ａは、メモリコントローラ７３ａの負荷状況を管理する）。これにより、効率的な管理を行うことが可能となる。図１４では、ノードコントローラ７１ａは、メモリコントローラ７３ａ（ＭＣ１）の負荷状況を管理していることを示している。なお、図１４では、各ノードコントローラ７１において、図３で示すキューを各メモリコントローラ用のキューとし、キュー長を各メモリコントローラ７３向けへのアクセス数とした遅延予測テーブル４２の一例を示している。また、Ｈ−ＷＭ及びＬ―ＷＭを動的に変更（例えば、各ノードに対する負荷などに応じて動的に変更する）した場合を示しており、遅延抑制時間を動的に制御している場合を示している。
【００８７】
［第３の実施形態］
次に、図１５を参照して、第３の実施形態について説明する。第３の実施形態では、同一アドレスレンジに対するアクセスの集中により生じるレイテンシを抑制するメモリアクセス制御装置８について説明する。本実施形態においては、メモリアクセス制御装置８の構成の概要について説明する。
【００８８】
図１５を参照すると、本実施形態におけるメモリアクセス制御装置８は、受付手段８１と発行手段８２と抑制手段８３とメモリアクセス手段８４を有している。
【００８９】
受付手段８１は、メモリアドレスへのアクセス要求を受け付ける。発行手段８２は、受付手段８１が受け付けたアクセス要求に応じて、メモリアクセス手段８４に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する。
【００９０】
抑制手段８３は、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段８４によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて発行手段８２によるアクセス命令の発行を所定時間抑制させる。
【００９１】
このように、本実施形態におけるメモリアクセス制御装置８は、発行手段８２と抑制手段８３とを有している。このような構成により、抑制手段８３は、状況情報を参照し、当該状況情報に基づいて、発行手段８２によるアクセス命令の発行を所定時間抑制させることが出来る。つまり、抑制手段８３は、状況情報に基づいて、例えば、アクセス要求がアクセスを要求するメモリアドレスに対するアクセスが遅延すると判断される場合などにおいて、当該メモリアドレスに対するアクセスを要求するアクセス命令の発行を所定時間抑制させることが出来る。これにより、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。
【００９２】
また、上記メモリアクセス制御装置８は、当該メモリアクセス制御装置８に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、情報処理装置に、メモリアドレスへのアクセス要求を受け付ける受付手段と、受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて発行手段によるアクセス命令の発行を所定時間抑制させる抑制手段と、を実現させるためのプログラムである。
【００９３】
また、上述したメモリアクセス制御装置８が作動することにより実行されるメモリアクセス制御方法は、メモリアドレスへのアクセス要求を受け付け、受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいてアクセス命令の発行を所定時間抑制させる、という方法である。
【００９４】
上述した構成を有する、プログラム、又は、メモリアクセス制御方法、の発明であっても、上記メモリアクセス制御装置８と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【００９５】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるメモリアクセス制御装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【００９６】
（付記１）
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有する
メモリアクセス制御装置。
【００９７】
この構成によると、メモリアクセス制御装置は、発行手段と抑制手段とを有している。このような構成により、抑制手段は、状況情報を参照し、当該状況情報に基づいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。これにより、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。
【００９８】
（付記２）
付記１に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
メモリアクセス制御装置。
【００９９】
この構成によると、抑制手段は、状況情報として、アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する。これにより、抑制手段は、例えば、アクセスの数が多くアクセスが集中していると判断される場合などにおいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。その結果、メモリアドレスに対するアクセスの集中により生じるレイテンシを抑制することが可能となる。
【０１００】
（付記３）
付記１又は２に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
メモリアクセス制御装置。
【０１０１】
この構成によると、抑制手段は、状況情報として、キュー長を示す情報を参照する。これにより、メモリアクセス手段で実行中（処理中）のアクセス命令の数に基づいて、該当するメモリアドレスに対するアクセスが集中していると判断される場合などにおいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。
【０１０２】
（付記４）
付記３に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記キュー長が予め定められた遅延閾値以上である場合、対応するメモリアドレスに対するアクセスを指示する前記アクセス命令の発行を所定時間抑制させる
メモリアクセス制御装置。
【０１０３】
（付記５）
付記３又は４に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記発行手段に対して前記アクセス命令の発行を所定時間抑制させる状態において、前記キュー長が前記遅延閾値よりも小さな値である解消閾値以下となるまで、当該アクセス命令の発行を所定時間抑制させる状態を持続する
メモリアクセス制御装置。
【０１０４】
（付記６）
付記３乃至５のいずれかに記載のメモリアクセス制御装置であって、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御装置。
【０１０５】
（付記７）
付記１乃至６のいずれかに記載のメモリアクセス制御装置であって、
前記抑制手段は、前記受付手段から前記アクセス要求を受信した後当該受信したアクセス要求を前記発行手段に送信するよう構成され、前記状況情報に基づいて遅延が生じると判断される前記アクセス要求に対しては、前記受付手段から前記アクセス要求を受信した後、所定時間待機した後に、当該受信したアクセス要求を前記発行手段に送信する
メモリアクセス制御装置。
【０１０６】
（付記８）
付記７に記載のメモリアクセス制御装置であって、
前記状況情報に基づいて遅延が生じると判断される場合に、遅延の発生を予測する遅延予測情報を前記受付手段に対して送信する送信手段を有し、
前記受付手段は、前記遅延予測情報に基づいて遅延の発生が予測されている場合、前記メモリアクセス要求を前記抑制手段に送信する
メモリアクセス制御装置。
【０１０７】
（付記９）
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させる、
メモリアクセス制御方法。
【０１０８】
（付記９−１）
付記９に記載のメモリアクセス制御方法であって、
前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
メモリアクセス制御方法。
【０１０９】
（付記９−２）
付記９又は９−１に記載のメモリアクセス制御方法であって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
メモリアクセス制御方法。
【０１１０】
（付記１０）
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させるためのプログラム。
【０１１１】
（付記１０−１）
付記１０に記載のプログラムであって、
前記抑制手段は、前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
プログラム。
【０１１２】
（付記１０−２）
付記１０又は１０−１に記載のプログラムであって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
プログラム。
【０１１３】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１１４】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【０１１５】
１  メモリアクセス制御装置
２  メモリアクセス要求制御機構
２１  遅延認識手段
２２  遅延予測フラグ
２３  メモリアクセス命令発行準備手段
２４  遅延アドレス確認手段
２５  遅延抑制手段
２６  メモリアクセス命令発行手段
３  メモリアクセス要求機構
３１  メモリアクセス判断手段
３２  キャッシュ
４  メモリアクセス管理機構
４１  メモリアクセス監視手段
４２  遅延予測テーブル
４３  メモリアクセス手段
４４  メモリ
４５  遅延発生予測手段
４６  遅延解消予測手段
４７  遅延予測通知手段
５  システム
５１  プロセッサ
５２  メモリコントローラ
５３  メモリ
６１  割り込みハンドラ
６２  遅延フラグ
６３  処理
６４  遅延予測テーブル
７  ＮＵＭＡ型システム
７１  ノードコントローラ
７２  ＣＰＵ
７３  メモリコントローラ
７４  メモリ
８  メモリアクセス制御装置
８１  受付手段
８２  発行手段
８３  抑制手段
８４  メモリアクセス手段
【図１】
0006607069.tif 000002
【図２】
0006607069.tif 000003
【図３】
0006607069.tif 000004
【図４】
0006607069.tif 000005
【図５】
0006607069.tif 000006
【図６】
0006607069.tif 000007
【図７】
0006607069.tif 000008
【図８】
0006607069.tif 000009
【図９】
0006607069.tif 000010
【図１０】
0006607069.tif 000011
【図１１】
0006607069.tif 000012
【図１２】
0006607069.tif 000013
【図１３】
0006607069.tif 000014
【図１４】
0006607069.tif 000015
【図１５】
0006607069.tif 000016