Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6607069B2 - MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, PROGRAM - Google Patents
[go: Go Back, main page]

JP6607069B2 - MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, PROGRAM - Google Patents

MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, PROGRAM Download PDF

Info

Publication number
JP6607069B2
JP6607069B2 JP2016024896A JP2016024896A JP6607069B2 JP 6607069 B2 JP6607069 B2 JP 6607069B2 JP 2016024896 A JP2016024896 A JP 2016024896A JP 2016024896 A JP2016024896 A JP 2016024896A JP 6607069 B2 JP6607069 B2 JP 6607069B2
Authority
JP
Japan
Prior art keywords
access
memory access
memory
unit
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016024896A
Other languages
Japanese (ja)
Other versions
JP2017142730A (en
Inventor
太一 影山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016024896A priority Critical patent/JP6607069B2/en
Publication of JP2017142730A publication Critical patent/JP2017142730A/en
Application granted granted Critical
Publication of JP6607069B2 publication Critical patent/JP6607069B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Description

本発明は、メモリアクセス制御装置、メモリアクセス制御方法、プログラムに関し、特にレイテンシを抑制するメモリアクセス制御装置、メモリアクセス制御方法、プログラムに関する。   The present invention relates to a memory access control device, a memory access control method, and a program, and more particularly to a memory access control device, a memory access control method, and a program that suppress latency.

複数のプロセッサがメモリを共有する共有メモリシステムが知られている。このような共有メモリシステムの場合、複数の命令が競合することなどを起因として、レイテンシ(遅延)が生じることがある。そこで、上記のようなレイテンシに対する対策が様々考えられている。   A shared memory system in which a plurality of processors share a memory is known. In such a shared memory system, latency (delay) may occur due to a plurality of instructions competing. Therefore, various countermeasures against the above latency are considered.

例えば、特許文献1には、データ処理部を複数のグループに分けた際のグループ間の優先順位が予め設定されたアクセス調停部を有するシステムが記載されている。特許文献1によると、アクセス調停部は、競合が生じた場合に、優先順位に従ってアクセスの調停を行う。また、アクセス調停部は、許容アクセス回数を超えるアクセス要求が発生した場合、優先順位の低いデータ処理部に対して、ウェイト指令信号を送信する。特許文献1によると、このような構成により、応答時間の増加を抑制することが出来る。   For example, Patent Document 1 describes a system having an access arbitration unit in which priorities among groups are set in advance when a data processing unit is divided into a plurality of groups. According to Patent Literature 1, the access arbitration unit performs access arbitration according to priority when a conflict occurs. In addition, when an access request exceeding the allowable access count occurs, the access arbitration unit transmits a wait command signal to the data processing unit with a low priority. According to Patent Document 1, such a configuration can suppress an increase in response time.

また、例えば、特許文献2には、記憶手段と登録手段と送信手段とを備えるレイテンシ短縮システムが記載されている。特許文献2によると、登録手段は、共有メモリの同一アドレスに対して同時にリクエストが発行された場合に、該リクエストを発行した発行元を特定する制御情報を記憶手段に記憶する。また、送信手段は、同時に送信されたリクエストのうち、最初に発行されたリクエストに対して当該リクエストの発行元にデータを返信するとき、当該発行元を制御情報に基づいて決定する。特許文献2によると、このような構成により、複数のプロセッサからの所定のリクエストを同時に処理することができ、その結果、レイテンシを短縮することが出来る。   Further, for example, Patent Literature 2 describes a latency shortening system including a storage unit, a registration unit, and a transmission unit. According to Patent Document 2, when a request is issued at the same time to the same address in the shared memory, the registration unit stores control information for specifying an issuer that issued the request in the storage unit. In addition, when sending data to the issuer of the request with respect to the request issued first among the requests transmitted at the same time, the transmission unit determines the issuer based on the control information. According to Patent Document 2, with such a configuration, predetermined requests from a plurality of processors can be processed simultaneously, and as a result, latency can be shortened.

特開第2005−242408号公報JP-A-2005-242408 特開第2011−002986号公報JP 2011-002986 A

特許文献1に記載されている技術の場合、アクセス調停の結果アクセスが許可された複数のデータ処理部が同一のアドレス(又は、同一のアドレスレンジ)に対してアクセスすることがある。このような場合、同一のアドレスに対するアクセス集中が起こり、その結果として、コヒーレンシ処理などに時間がかかり、ロードやストア命令が通常よりも大幅に遅延するおそれがあった。このように、特許文献1に記載されている技術の場合、同一アドレスに対するアクセスの集中によりレイテンシが発生してしまうおそれがあった。   In the case of the technique described in Patent Document 1, a plurality of data processing units permitted to access as a result of access arbitration may access the same address (or the same address range). In such a case, access concentration to the same address occurs, and as a result, it takes time for coherency processing and the like, and load and store instructions may be significantly delayed than usual. Thus, in the case of the technique described in Patent Document 1, there is a possibility that latency may occur due to concentration of accesses to the same address.

また、特許文献2に記載されている技術は、所定のリクエストを同時に処理することでレイテンシを抑制している。そのため、同時に処理できないリクエスト等に対して、必ずしも十分な対応となっていなかった。このように、特許文献2に記載されている技術の場合でも、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しいおそれがあった。   The technique described in Patent Document 2 suppresses latency by processing predetermined requests simultaneously. Therefore, it has not always been sufficient for requests that cannot be processed simultaneously. Thus, even in the case of the technique described in Patent Document 2, it may be difficult to suppress latency due to concentration of accesses to the same address.

以上のように、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題が生じていた。   As described above, in a system having a shared memory, there is a problem that it is difficult to suppress latency due to concentration of accesses to the same address.

そこで、本発明の目的は、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題を解決するメモリアクセス制御装置を提供することにある。   Therefore, an object of the present invention is to provide a memory access control device that solves the problem that it is difficult to suppress latency due to concentration of accesses to the same address in a system having a shared memory.

かかる目的を達成するため本発明の一形態であるメモリアクセス制御装置は、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有する
という構成を採る。
In order to achieve such an object, a memory access control device according to one aspect of the present invention provides:
Accepting means for accepting an access request to a memory address;
An issuing unit that issues an access instruction to instruct the memory access unit to access a memory address in response to the access request received by the receiving unit;
A control unit that refers to status information indicating a status of access by the memory access unit with respect to a memory address to which the access request requests access, and suppresses issuance of the access command by the issuing unit for a predetermined time based on the status information; ,
It has a configuration of having

また、本発明の他の形態であるメモリアクセス制御方法は、
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させる、
という構成を採る。
In addition, a memory access control method according to another aspect of the present invention includes:
Accept access request to memory address,
In response to the received access request, issue an access instruction to instruct the memory access means to access the memory address,
The access request refers to status information indicating a status of access by the memory access means for a memory address that requests access, and based on the status information, issuance of the access command is suppressed for a predetermined time.
The structure is taken.

また、本発明の他の形態であるプログラムは、
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させるためのプログラムである。
Moreover, the program which is the other form of this invention is:
In the information processing device,
Accepting means for accepting an access request to a memory address;
An issuing unit that issues an access instruction to instruct the memory access unit to access a memory address in response to the access request received by the receiving unit;
A control unit that refers to status information indicating a status of access by the memory access unit with respect to a memory address to which the access request requests access, and suppresses issuance of the access command by the issuing unit for a predetermined time based on the status information; ,
It is a program for realizing.

本発明は、以上のように構成されることにより、共有メモリを有するシステムにおいて、同一アドレスに対するアクセスの集中によるレイテンシを抑制することが難しい、という問題を解決するメモリアクセス制御装置を提供することが可能となる。   The present invention is configured as described above to provide a memory access control device that solves the problem that it is difficult to suppress latency due to concentration of accesses to the same address in a system having a shared memory. It becomes possible.

本発明の第1の実施形態におけるメモリアクセス制御装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the memory access control apparatus in the 1st Embodiment of this invention. メモリアクセス制御装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of a memory access control apparatus. 図2で示す遅延予測テーブルの構成の一例を示す図である。It is a figure which shows an example of a structure of the delay prediction table shown in FIG. メモリアクセス要求機構とメモリアクセス手段の構成の一例を示す図である。It is a figure which shows an example of a structure of a memory access request | requirement mechanism and a memory access means. メモリアクセス要求制御機構の動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of a memory access request control mechanism. メモリアクセス要求制御機構の動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of a memory access request control mechanism. メモリアクセス要求機構の動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of a memory access request | requirement mechanism. メモリアクセス管理機構の動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of a memory access management mechanism. メモリアクセス要求制御機構の実装例を示すブロック図である。It is a block diagram which shows the example of mounting of a memory access request control mechanism. メモリアクセス要求制御機構の動作の一例を記述した擬似コードの一例である。It is an example of the pseudo code describing an example of the operation of the memory access request control mechanism. 本発明の第2の実施形態におけるNUMA型システムの全体の構成の一例を示す図である。It is a figure which shows an example of the whole structure of the NUMA type | system | group system in the 2nd Embodiment of this invention. 図11で示すNUMA型システムにおけるメモリアクセスの流れの一例を示す図である。It is a figure which shows an example of the flow of the memory access in the NUMA type | system | group system shown in FIG. 図11で示すNUMA型システムにおけるメモリアクセスの流れの一例を示す図である。It is a figure which shows an example of the flow of the memory access in the NUMA type | system | group system shown in FIG. 本発明の第2の実施形態における遅延予測テーブルの構成の一例を示す図である。It is a figure which shows an example of a structure of the delay prediction table in the 2nd Embodiment of this invention. 本発明の第3の実施形態におけるメモリアクセス制御装置の構成の一例を示す概略ブロック図である。It is a schematic block diagram which shows an example of a structure of the memory access control apparatus in the 3rd Embodiment of this invention.

[第1の実施形態]
本発明の第1の実施形態を図1乃至図10を参照して説明する。図1、図2は、メモリアクセス制御装置1の構成の一例を示すブロック図である。図3は、遅延予測テーブル42の構成の一例を示す図である。図4は、メモリアクセス要求機構3とメモリアクセス手段43の構成の一例を示す図である。図5、図6は、メモリアクセス要求制御機構2の動作の一例を示すフローチャートである。図7は、メモリアクセス要求機構3の動作の一例を示すフローチャートである。図8は、メモリアクセス管理機構4の動作の一例を示すフローチャートである。図9は、メモリアクセス要求制御機構2の実装例を示すブロック図である。図10は、メモリアクセス要求制御機構2の動作の一例を記述した擬似コードの一例である。
[First Embodiment]
A first embodiment of the present invention will be described with reference to FIGS. 1 and 2 are block diagrams showing an example of the configuration of the memory access control device 1. FIG. FIG. 3 is a diagram illustrating an example of the configuration of the delay prediction table 42. FIG. 4 is a diagram showing an example of the configuration of the memory access request mechanism 3 and the memory access means 43. 5 and 6 are flowcharts showing an example of the operation of the memory access request control mechanism 2. FIG. 7 is a flowchart showing an example of the operation of the memory access request mechanism 3. FIG. 8 is a flowchart showing an example of the operation of the memory access management mechanism 4. FIG. 9 is a block diagram illustrating an implementation example of the memory access request control mechanism 2. FIG. 10 is an example of pseudo code describing an example of the operation of the memory access request control mechanism 2.

本発明の第1の実施形態では、同一アドレスレンジに対するアクセスの集中により生じるレイテンシを抑制するメモリアクセス制御装置1について説明する。本実施形態におけるメモリアクセス制御装置1は、後述するように、アドレスレンジごとに処理中のリクエスト数を示すキュー長を計測する。そして、同一のアドレスレンジに対するアクセスが集中していると判断される場合、メモリアクセス制御装置1は、メモリアクセス命令の発行を一時的に抑制するよう構成されている。このような構成により、メモリアクセス制御装置1は、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。   In the first embodiment of the present invention, a memory access control device 1 that suppresses latency caused by concentration of accesses to the same address range will be described. As will be described later, the memory access control device 1 in this embodiment measures a queue length indicating the number of requests being processed for each address range. When it is determined that accesses to the same address range are concentrated, the memory access control device 1 is configured to temporarily suppress issuance of memory access instructions. With such a configuration, the memory access control device 1 can refrain from memory access in a situation where a memory access delay is predicted. As a result, deterioration of delay can be prevented. That is, the latency can be suppressed.

なお、本実施形態において、アドレスレンジが同一であるとは、メモリアドレスのうち1つ目から所定数までの値が一致することをいう。アドレスレンジの粒度(所定数をいくつに設定するか)は、メモリアクセス制御装置1を用いるシステムに応じて任意に設定して構わない。   In the present embodiment, the same address range means that values from the first to a predetermined number of memory addresses match. The granularity of the address range (how many the predetermined number is set) may be arbitrarily set according to the system using the memory access control device 1.

図1を参照すると、本実施形態におけるメモリアクセス制御装置1は、メモリアクセス要求を受信するメモリアクセス要求制御機構2と、メモリアクセス要求機構3a、3b、3c、3d、3e、3f(以下、特に区別しない場合はメモリアクセス要求機構3とする)と、メモリアクセス管理機構4と、を有している。   Referring to FIG. 1, a memory access control device 1 according to the present embodiment includes a memory access request control mechanism 2 that receives a memory access request, and memory access request mechanisms 3a, 3b, 3c, 3d, 3e, and 3f (hereinafter, particularly The memory access request mechanism 3 and the memory access management mechanism 4 are provided.

図1で示すように、メモリアクセス要求制御機構2とメモリアクセス要求機構3とは、通信可能なよう接続されている。同様に、メモリアクセス要求機構3とメモリアクセス管理機構4、メモリアクセス管理機構4とメモリアクセス要求制御機構2とも、通信可能なよう接続されている。   As shown in FIG. 1, the memory access request control mechanism 2 and the memory access request mechanism 3 are connected so as to communicate with each other. Similarly, the memory access request mechanism 3 and the memory access management mechanism 4 and the memory access management mechanism 4 and the memory access request control mechanism 2 are also connected so as to be communicable.

メモリアクセス要求制御機構2は、特定のメモリアドレスへのメモリアクセス要求(アクセス要求)を外部から受け付ける。すると、メモリアクセス要求制御機構2は、受け付けたメモリアクセス要求に応じて、当該メモリアクセス要求が要求するメモリアドレスへのアクセスを指示するメモリアクセス命令(アクセス命令)を発行する。また、本実施形態におけるメモリアクセス要求制御機構2は、後述する遅延予測テーブル42(状況情報)に基づいて、同一アドレスレンジへのアクセスが集中していると判断される場合、メモリアクセス命令の発行を一時的に抑制する。換言すると、メモリアクセス要求制御機構2は、アクセス集中によりメモリアクセス要求がアクセスを要求するメモリアドレスに対するアクセスが遅延すると判断される場合、当該メモリアドレスに対するメモリアクセス命令の発行を一時的に抑制する。   The memory access request control mechanism 2 receives a memory access request (access request) to a specific memory address from the outside. Then, in response to the accepted memory access request, the memory access request control mechanism 2 issues a memory access command (access command) that instructs access to the memory address requested by the memory access request. Further, the memory access request control mechanism 2 in this embodiment issues a memory access instruction when it is determined that accesses to the same address range are concentrated based on a delay prediction table 42 (status information) described later. Is temporarily suppressed. In other words, the memory access request control mechanism 2 temporarily suppresses the issuance of a memory access instruction for the memory address when it is determined that access to the memory address that requests access is delayed due to concentration of access.

図2を参照すると、本実施形態におけるメモリアクセス要求制御機構2は、遅延認識手段21と、遅延予測フラグ22と、メモリアクセス命令発行準備手段23と、遅延アドレス確認手段24と、遅延抑制手段25と、メモリアクセス命令発行手段26と、を有している。メモリアクセス要求制御機構2は、例えば、図示しない演算装置と記憶装置とを有しており、記憶装置が記憶するプログラムを演算装置が実行することで、上記各手段を実現する。   Referring to FIG. 2, the memory access request control mechanism 2 in this embodiment includes a delay recognition unit 21, a delay prediction flag 22, a memory access instruction issue preparation unit 23, a delay address confirmation unit 24, and a delay suppression unit 25. And a memory access instruction issuing means 26. The memory access request control mechanism 2 includes, for example, an arithmetic device and a storage device (not shown), and the arithmetic device executes the program stored in the storage device, thereby realizing each of the above means.

遅延認識手段21は、遅延予測フラグ22を更新する。例えば、遅延認識手段21は、メモリアクセス管理機構4が管理するアドレスレンジにおける遅延を予測する遅延予測通知をメモリアクセス管理機構4の遅延予測通知手段47から受信する。また、遅延認識手段21は、メモリアクセス管理機構4が管理するアドレスレンジにおける遅延の予測を解消する遅延解消通知を遅延予測通知手段47から受信する。そして、遅延認識手段21は、受信した遅延予測通知や遅延解消通知に基づいて、遅延予測フラグ22を更新する。   The delay recognition unit 21 updates the delay prediction flag 22. For example, the delay recognition unit 21 receives a delay prediction notification for predicting a delay in the address range managed by the memory access management mechanism 4 from the delay prediction notification unit 47 of the memory access management mechanism 4. Further, the delay recognizing unit 21 receives from the delay prediction notifying unit 47 a delay cancellation notification for canceling the delay prediction in the address range managed by the memory access management mechanism 4. Then, the delay recognizing means 21 updates the delay prediction flag 22 based on the received delay prediction notification and delay cancellation notification.

具体的には、遅延予測フラグ22はカウンタとして実装され、遅延認識手段21は、遅延予測通知を受信した場合、遅延予測フラグ22をインクリメントする(1増加させる)。また、遅延認識手段21は、遅延解消通知を受信した場合、遅延予測フラグ22をデクリメントする(1減少させる)。このように、遅延認識手段21は、遅延予測通知手段47から受信した通知に応じて、遅延予測フラグ22を更新する。   Specifically, the delay prediction flag 22 is implemented as a counter, and the delay recognition unit 21 increments (increases by 1) the delay prediction flag 22 when receiving the delay prediction notification. Further, when the delay recognizing unit 21 receives the delay cancellation notification, the delay recognizing unit 21 decrements the delay prediction flag 22 (decreases it by 1). As described above, the delay recognition unit 21 updates the delay prediction flag 22 in accordance with the notification received from the delay prediction notification unit 47.

遅延予測フラグ22は、メモリアクセス管理機構4において遅延が発生している可能性があるか否かという情報を示している。上記のように、遅延予測フラグ22は、例えばカウンタとして実装される。遅延予測フラグ22の値が0である場合は遅延が発生していないことを示しており、遅延予測フラグ22の値が1以上である場合は遅延が発生している可能性があることを示している。   The delay prediction flag 22 indicates information indicating whether or not there is a possibility that a delay has occurred in the memory access management mechanism 4. As described above, the delay prediction flag 22 is implemented as a counter, for example. When the value of the delay prediction flag 22 is 0, it indicates that no delay has occurred, and when the value of the delay prediction flag 22 is 1 or more, it indicates that a delay may have occurred. ing.

メモリアクセス命令発行準備手段23(受付手段)は、遅延予測フラグ22に基づいて、受信したメモリアクセス要求を遅延アドレス確認手段24に送信するか否かを判断する。例えば、メモリアクセス命令発行準備手段23は、外部からメモリアクセス要求を受信する。すると、メモリアクセス命令発行準備手段23は、遅延予測フラグ22を参照して、メモリアクセス管理機構4が管理するアドレスレンジにおける直近のアクセスに対して遅延が予測されているか否かを判断する。そして、遅延予測フラグ22が立っている場合(値が1以上で遅延が予測されている場合)、メモリアクセス命令発行準備手段23は、メモリアクセス要求を遅延アドレス確認手段24に送信する。一方、遅延予測フラグ22が立っていない場合(値が0であり遅延が予測されていない場合)、メモリアクセス命令発行準備手段23は、メモリアクセス要求をメモリアクセス命令発行手段26に送信する。   Based on the delay prediction flag 22, the memory access command issue preparation unit 23 (accepting unit) determines whether or not to transmit the received memory access request to the delay address confirmation unit 24. For example, the memory access command issuance preparation unit 23 receives a memory access request from the outside. Then, the memory access instruction issuance preparation means 23 refers to the delay prediction flag 22 and determines whether or not a delay is predicted for the latest access in the address range managed by the memory access management mechanism 4. When the delay prediction flag 22 is set (when the value is 1 or more and a delay is predicted), the memory access instruction issuance preparation means 23 transmits a memory access request to the delay address confirmation means 24. On the other hand, when the delay prediction flag 22 is not set (when the value is 0 and the delay is not predicted), the memory access instruction issue preparing unit 23 transmits a memory access request to the memory access instruction issuing unit 26.

遅延アドレス確認手段24(抑制手段の一部)は、メモリアクセス要求がアクセスを要求するメモリアドレスに対応するエントリが、後述するメモリアクセス管理機構4の遅延予測テーブル42に存在しているか否か、当該エントリにアラートが立っているか否かを確認する。例えば、遅延アドレス確認手段24は、メモリアクセス命令発行準備手段23からメモリアクセス要求を受信する。すると、遅延アドレス確認手段24は、遅延予測テーブル42を参照して、受信したメモリアクセス要求がアクセスを要求するメモリアドレスに該当するエントリが遅延予測テーブル42に存在するか否かを確認する。換言すると、遅延アドレス確認手段24は、メモリアクセス要求がアクセスを要求するメモリアドレスが含まれるアドレスレンジのエントリが遅延予測テーブル42に存在するか否かを確認する。また、遅延アドレス確認手段24は、該当するエントリが存在する場合、当該エントリにアラートが立っているか否かを確認する。そして、該当するエントリが存在し、かつ、当該エントリにアラートが立っている場合、遅延アドレス確認手段24は、メモリアクセス要求を遅延抑制手段25に送信する。一方、該当するエントリが存在しない場合やエントリにアラートが立っていない場合、遅延アドレス確認手段24は、メモリアクセス要求をメモリアクセス命令発行手段26に送信する。   The delay address confirmation unit 24 (a part of the suppression unit) determines whether or not an entry corresponding to the memory address requested by the memory access request exists in the delay prediction table 42 of the memory access management mechanism 4 described later. Check whether there is an alert in the entry. For example, the delay address confirmation unit 24 receives a memory access request from the memory access instruction issue preparation unit 23. Then, the delay address confirmation unit 24 refers to the delay prediction table 42 and confirms whether or not an entry corresponding to the memory address at which the received memory access request requests access exists in the delay prediction table 42. In other words, the delay address confirmation unit 24 confirms whether or not an entry in the address range including the memory address requested by the memory access request exists in the delay prediction table 42. Further, when there is a corresponding entry, the delay address confirmation unit 24 confirms whether or not an alert is set for the entry. When the corresponding entry exists and an alert is set for the entry, the delay address confirmation unit 24 transmits a memory access request to the delay suppression unit 25. On the other hand, when the corresponding entry does not exist or when no alert is raised in the entry, the delay address confirmation unit 24 transmits a memory access request to the memory access instruction issue unit 26.

遅延抑制手段25(抑制手段の一部)は、予め定められた時間(遅延抑制時間)分該当メモリアドレスへのアクセスを抑制する。例えば、遅延抑制手段25は、遅延アドレス確認手段24からメモリアクセス要求を受信する。すると、遅延抑制手段25は、予め定められた時間分待機する。その後、遅延抑制手段25は、受信したメモリアクセス要求をメモリアクセス命令発行手段26に送信する。遅延抑制手段25は、例えば、このようにして、予め定められた時間分待機した後メモリアクセス要求をメモリアクセス命令発行手段26に送信することで、メモリアクセス命令発行手段26によるメモリアクセス命令の発行を所定時間抑制させることになる。   The delay suppression unit 25 (a part of the suppression unit) suppresses access to the corresponding memory address for a predetermined time (delay suppression time). For example, the delay suppression unit 25 receives a memory access request from the delay address confirmation unit 24. Then, the delay suppression unit 25 waits for a predetermined time. Thereafter, the delay suppressing unit 25 transmits the received memory access request to the memory access command issuing unit 26. The delay suppression unit 25, for example, issues a memory access instruction by the memory access instruction issuing unit 26 by transmitting a memory access request to the memory access instruction issuing unit 26 after waiting for a predetermined time in this way. Is suppressed for a predetermined time.

メモリアクセス命令発行手段26(発行手段)は、受信したメモリアクセス要求に基づいて、当該メモリアクセス要求が示すメモリアドレスへのアクセスを指示するメモリアクセス命令をメモリアクセス要求機構3に対して発行する。例えば、メモリアクセス命令発行手段26は、メモリアクセス命令発行準備手段23、遅延アドレス確認手段24、遅延抑制手段25、からメモリアクセス要求を受信する。そして、メモリアクセス命令発行手段26は、受信したメモリアクセス要求に基づいて、メモリアクセス要求機構3に対してメモリアクセス命令を発行する。   Based on the received memory access request, the memory access command issuing unit 26 (issuing unit) issues to the memory access request mechanism 3 a memory access command that instructs access to the memory address indicated by the memory access request. For example, the memory access instruction issue unit 26 receives a memory access request from the memory access instruction issue preparation unit 23, the delay address confirmation unit 24, and the delay suppression unit 25. Then, the memory access command issuing means 26 issues a memory access command to the memory access request mechanism 3 based on the received memory access request.

メモリアクセス要求機構3は、図2で示すように、メモリアクセス判断手段31とキャッシュ32とを有している。メモリアクセス要求機構3は既存技術で実現可能な機構であり、例えば、プロセッサなどのような機構である。   As shown in FIG. 2, the memory access request mechanism 3 includes a memory access determination unit 31 and a cache 32. The memory access request mechanism 3 is a mechanism that can be realized by the existing technology, and is a mechanism such as a processor.

メモリアクセス判断手段31は、メモリアクセス命令に応じて、キャッシュ32を利用するか実際にメモリアクセスを行うかを判断する。例えば、メモリアクセス判断手段31は、メモリアクセス命令発行手段26から、メモリアクセス命令を受信する。すると、メモリアクセス判断手段31は、受信したメモリアクセス命令を解釈する。そして、メモリアクセス判断手段31は、解釈結果に応じて、キャッシュ32を利用するか、メモリアクセスを実際に行うかを判断する。また、メモリアクセス判断手段31は、メモリアクセスを実際に行うと判断した場合、メモリアクセス命令をメモリアクセス管理機構4のメモリアクセス監視手段41に送信する。   The memory access determination unit 31 determines whether to use the cache 32 or to actually perform memory access according to the memory access command. For example, the memory access determining unit 31 receives a memory access command from the memory access command issuing unit 26. Then, the memory access determination unit 31 interprets the received memory access command. Then, the memory access determination unit 31 determines whether to use the cache 32 or to actually perform the memory access according to the interpretation result. Further, when it is determined that the memory access is actually performed, the memory access determination unit 31 transmits a memory access command to the memory access monitoring unit 41 of the memory access management mechanism 4.

メモリアクセス管理機構4は、受信したメモリアクセス命令に応じて、メモリ44にアクセスする。また、メモリアクセス管理機構4は、特定アドレスレンジへのアクセス集中を検出して、メモリアクセス要求制御機構2に対して遅延予測通知を通知する。また、メモリアクセス管理機構4は、遅延発生の可能性が低くなった段階で、メモリアクセス要求制御機構2に対して遅延解消通知を通知する。   The memory access management mechanism 4 accesses the memory 44 in response to the received memory access command. The memory access management mechanism 4 detects concentration of access to a specific address range and notifies the memory access request control mechanism 2 of a delay prediction notification. In addition, the memory access management mechanism 4 notifies the memory access request control mechanism 2 of a delay cancellation notification when the possibility of occurrence of delay is low.

図2を参照すると、本実施形態におけるメモリアクセス管理機構4は、メモリアクセス監視手段41と遅延予測テーブル42とメモリアクセス手段43とメモリ44と遅延発生予測手段45と遅延解消予測手段46と遅延予測通知手段47とを有している。メモリアクセス管理機構4は、例えば、図示しない演算装置と記憶装置とを有しており、記憶装置が記憶するプログラムを演算装置が実行することで、上記各手段を実現する。また、メモリアクセス管理機構4は、メモリなどの記憶装置を有しており、当該記憶装置に遅延予測テーブル42を格納する。   Referring to FIG. 2, the memory access management mechanism 4 in this embodiment includes a memory access monitoring unit 41, a delay prediction table 42, a memory access unit 43, a memory 44, a delay occurrence prediction unit 45, a delay elimination prediction unit 46, and a delay prediction. Notification means 47. The memory access management mechanism 4 includes, for example, an arithmetic device and a storage device (not shown), and the arithmetic device executes the program stored in the storage device, thereby realizing each of the above means. The memory access management mechanism 4 has a storage device such as a memory, and stores the delay prediction table 42 in the storage device.

メモリアクセス監視手段41は、メモリアクセス要求機構3からメモリアクセス命令を受け付け、受け付けたメモリアクセス命令をメモリアクセス手段43に送信する。また、メモリアクセス監視手段41は、遅延予測テーブル42を管理する。後述するように、メモリアクセス監視手段41は、遅延予測テーブル42を管理することで、キュー長の計測などを行うことになる。   The memory access monitoring unit 41 receives a memory access command from the memory access request mechanism 3 and transmits the received memory access command to the memory access unit 43. Further, the memory access monitoring unit 41 manages the delay prediction table 42. As will be described later, the memory access monitoring unit 41 measures the queue length by managing the delay prediction table 42.

例えば、メモリアクセス監視手段41は、メモリアクセス要求機構3からメモリアクセス命令を受信する。すると、メモリアクセス監視手段41は、受信したメモリアクセス命令に基づいて遅延予測テーブル42を更新する。例えば、メモリアクセス監視手段41は、メモリアクセス命令を受信すると、受信したメモリアクセス命令が要求するメモリアドレスが属するアドレスレンジに対するエントリが遅延予測テーブル42に既に存在しているか否かを確認する。そして、対応するエントリが存在する場合、メモリアクセス監視手段41は、該当メモリアドレスに対応するキュー長をインクリメントする。一方、対応するエントリが存在しない場合、メモリアクセス監視手段41は、対応するエントリを新規エントリとして遅延予測テーブル42に登録する。この際、新規に登録されるエントリのキュー長は1の状態となる。また、メモリアクセス監視手段41は、メモリアクセス命令をメモリアクセス手段43に送信するとともに、必要に応じて遅延発生予測手段45を起動する。例えば、メモリアクセス監視手段41は、キュー長をインクリメントしたエントリにアラートが立っていない場合に遅延発生予測手段45を起動する。   For example, the memory access monitoring unit 41 receives a memory access command from the memory access request mechanism 3. Then, the memory access monitoring unit 41 updates the delay prediction table 42 based on the received memory access command. For example, when the memory access monitoring unit 41 receives a memory access command, the memory access monitoring unit 41 checks whether an entry for the address range to which the memory address requested by the received memory access command belongs already exists in the delay prediction table 42. If a corresponding entry exists, the memory access monitoring unit 41 increments the queue length corresponding to the corresponding memory address. On the other hand, when there is no corresponding entry, the memory access monitoring unit 41 registers the corresponding entry as a new entry in the delay prediction table 42. At this time, the queue length of the newly registered entry is 1. The memory access monitoring means 41 transmits a memory access command to the memory access means 43 and activates the delay occurrence prediction means 45 as necessary. For example, the memory access monitoring unit 41 activates the delay occurrence prediction unit 45 when no alert is raised in the entry with the queue length incremented.

また、メモリアクセス監視手段41は、メモリアクセス手段43からメモリアクセスの完了を通知されると、遅延予測テーブル42を更新する。例えば、メモリアクセス監視手段41は、メモリアクセスが完了した旨の通知を受信すると、対応するエントリのキュー長をデクリメントする。また、その結果として、キュー長が0になった場合、メモリアクセス監視手段41は、該当するエントリを遅延予測テーブル42から削除する。また、メモリアクセス監視手段41は、必要に応じて遅延解消予測手段46を起動する。例えば、メモリアクセス監視手段41は、キュー長をデクリメントしたエントリにアラートが立っている場合に遅延解消予測手段46を起動する。   When the memory access monitoring unit 41 is notified of the completion of the memory access from the memory access unit 43, the memory access monitoring unit 41 updates the delay prediction table 42. For example, when the memory access monitoring unit 41 receives a notification that the memory access is completed, the memory access monitoring unit 41 decrements the queue length of the corresponding entry. As a result, when the queue length becomes 0, the memory access monitoring unit 41 deletes the corresponding entry from the delay prediction table 42. Further, the memory access monitoring unit 41 activates the delay elimination prediction unit 46 as necessary. For example, the memory access monitoring unit 41 activates the delay elimination prediction unit 46 when an alert is set for the entry decremented by the queue length.

遅延予測テーブル42(状況情報)は、メモリアクセス手段43によるアクセスの状況を示しており、例えば、メモリアドレスに対するアクセスの数を示している。具体的には、遅延予測テーブル42は、アドレスレンジごとにキュー長(処理中のリクエスト数。例えば、メモリアクセス手段43(メモリアクセス管理機構4)が受け付けた後実行完了前のメモリアクセス命令の数)を管理している。   The delay prediction table 42 (status information) indicates the status of access by the memory access means 43, for example, the number of accesses to the memory address. Specifically, the delay prediction table 42 indicates the queue length for each address range (number of requests being processed. For example, the number of memory access instructions received after the memory access unit 43 (memory access management mechanism 4) has received and before execution is completed. ).

図3は、遅延予測テーブル42の構成の一例である。図3を参照すると、遅延予測テーブル42は、アドレスレンジと、キューと、キュー長と、H−WM(High Watermark)(遅延閾値)と、L−WM(Low Watermark)(解消閾値)と、アラートと、を対応付けている。上記遅延予測テーブル42には、メモリアクセス監視手段41により、メモリアクセス監視手段41で監視中のリクエスト(メモリアクセス命令)が登録される。   FIG. 3 is an example of the configuration of the delay prediction table 42. Referring to FIG. 3, the delay prediction table 42 includes an address range, a queue, a queue length, an H-WM (High Watermark) (delay threshold), an L-WM (Low Watermark) (resolution threshold), an alert. Are associated with each other. In the delay prediction table 42, a request (memory access instruction) being monitored by the memory access monitoring unit 41 is registered by the memory access monitoring unit 41.

上述したように、キュー長は処理中のリクエスト数を示している。キュー長は、メモリアクセス手段43にメモリアクセス命令が1つ送信される度に1増加するようメモリアクセス監視手段41により管理される。また、キュー長は、メモリアクセス命令の実行完了ごとに1減少するようメモリアクセス監視手段41により管理される。   As described above, the queue length indicates the number of requests being processed. The queue length is managed by the memory access monitoring means 41 so that it increases by 1 every time one memory access command is transmitted to the memory access means 43. The queue length is managed by the memory access monitoring means 41 so that the queue length is decreased by 1 every time the execution of the memory access instruction is completed.

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以下となるまで、メモリアクセス命令の発行を所定時間抑制させる状態を持続することになる。   H-WM is a threshold value used to determine whether or not access to an address range is concentrated. The H-WM is compared with the queue length by the delay occurrence prediction unit 45, and when the queue length becomes equal to or greater than H-WM, an alert for the corresponding entry is set. L-WM is a value smaller than, for example, H-WM, and is a threshold value used to determine whether or not concentration of access to the address range has been eliminated. The L-WM is compared with the queue length by the delay elimination prediction means 46, and when the queue length becomes equal to or less than L-WM, the alert of the corresponding entry is overwritten (deleted). As described above, the alert is set when the queue length is equal to or greater than H-WM, and is overwritten when the queue length is equal to or less than L-WM. Due to such a configuration, the delay address confirmation unit 24 has a queue length greater than that of the H-WM in a state in which the memory access instruction issuance unit 26 suppresses the issuance of the memory access instruction for a predetermined time (in an alert state). Until the value becomes less than L-WM, which is a small value, the state in which the issue of the memory access instruction is suppressed for a predetermined time is maintained.

なお、H−WM及びL−WMの値は、例えば、予め定められた値である。H−WM及びL−WMの値は、例えば、システム仕様や経験則に基づいてシステム固有の値として予め定められている。   Note that the values of H-WM and L-WM are, for example, predetermined values. The values of H-WM and L-WM are predetermined as system-specific values based on, for example, system specifications and empirical rules.

メモリアクセス手段43は、メモリ44へのメモリアクセスを行うとともにメモリアクセス要求機構3が有するキャッシュ32の内容の一貫性、コヒーレンシを保つよう動作する。メモリアクセス手段43には、既存の様々な技術を採用することが出来る。   The memory access unit 43 performs memory access to the memory 44 and operates to maintain consistency and coherency of the contents of the cache 32 included in the memory access request mechanism 3. Various existing technologies can be employed for the memory access means 43.

メモリ44は、ハードディスクやメモリなどの記憶装置である。上記のように、メモリ44は、メモリアクセス手段43によりアクセスされることになる。   The memory 44 is a storage device such as a hard disk or a memory. As described above, the memory 44 is accessed by the memory access means 43.

遅延発生予測手段45は、遅延予測テーブル42を情報源として遅延発生予測を行う。具体的には、上述したように、遅延発生予測手段45は、メモリアクセス監視手段41により起動される。すると、遅延発生予測手段45は、遅延予測テーブル42を参照して、該当するエントリ(例えば、起動の起因となったエントリ)のキュー長がH−WM以上であるか否かを確認する。そして、キュー長がH−WM以上である場合、遅延発生予測手段45は、該当するエントリのアラートを立てる。また、遅延発生予測手段45は、アラートを立てた旨を遅延予測通知手段47に通知する。一方、キュー長がH−WMよりも小さい場合、遅延発生予測手段45は、その処理を終了する。   The delay occurrence prediction unit 45 performs delay occurrence prediction using the delay prediction table 42 as an information source. Specifically, as described above, the delay occurrence prediction unit 45 is activated by the memory access monitoring unit 41. Then, the delay occurrence prediction unit 45 refers to the delay prediction table 42 and confirms whether or not the queue length of the corresponding entry (for example, the entry causing the activation) is equal to or greater than H-WM. When the queue length is equal to or greater than H-WM, the delay occurrence prediction unit 45 raises an alert for the corresponding entry. Further, the delay occurrence prediction unit 45 notifies the delay prediction notification unit 47 that an alert has been set. On the other hand, when the queue length is smaller than H-WM, the delay occurrence predicting unit 45 ends the process.

遅延解消予測手段46は、遅延予測テーブル42を情報源として遅延解消予測を行う。具体的には、上述したように、遅延解消予測手段46は、メモリアクセス監視手段41により起動される。すると、遅延解消予測手段46は、遅延予測テーブル42を参照して、該当するエントリ(例えば、起動の起因となったエントリ)のキュー長がL−WM以下であるか否かを確認する。そして、キュー長がL−WM以下である場合、遅延解消予測手段46は、該当するエントリのアラートを倒す。また、遅延解消予測手段46は、アラートを倒した旨を遅延予測通知手段47に通知する。一方、キュー長がL−WMよりも大きい場合、遅延解消予測手段46は、その処理を終了する。   The delay elimination prediction means 46 performs delay elimination prediction using the delay prediction table 42 as an information source. Specifically, as described above, the delay elimination prediction unit 46 is activated by the memory access monitoring unit 41. Then, the delay elimination prediction unit 46 refers to the delay prediction table 42 and confirms whether or not the queue length of the corresponding entry (for example, the entry causing the activation) is equal to or less than L-WM. When the queue length is equal to or shorter than L-WM, the delay elimination prediction unit 46 defeats the alert for the corresponding entry. Further, the delay elimination prediction means 46 notifies the delay prediction notification means 47 that the alert has been defeated. On the other hand, when the queue length is larger than L-WM, the delay cancellation prediction unit 46 ends the process.

遅延予測通知手段47(送信手段)は、メモリアクセス要求制御機構2に対して、遅延予測通知や遅延解消通知を送信する。例えば、遅延予測通知手段47は、遅延発生予測手段45からアラートを立てた旨の通知を受信する。すると、遅延予測通知手段47は、当該受信した通知に応じて、遅延を予測する遅延予測通知を送信する。また、遅延予測通知手段47は、遅延解消予測手段46からアラートを倒した旨の通知を受信する。すると、遅延予測通知手段47は、当該受信した通知に応じて、遅延の予測を解消する遅延解消通知を送信する。   The delay prediction notification unit 47 (transmission unit) transmits a delay prediction notification and a delay cancellation notification to the memory access request control mechanism 2. For example, the delay prediction notification unit 47 receives a notification from the delay occurrence prediction unit 45 that an alert has been raised. Then, the delay prediction notification unit 47 transmits a delay prediction notification for predicting the delay according to the received notification. Further, the delay prediction notification unit 47 receives a notification that the alert has been defeated from the delay cancellation prediction unit 46. Then, the delay prediction notification unit 47 transmits a delay cancellation notification for canceling the delay prediction in response to the received notification.

以上が、メモリアクセス制御装置1の構成の一例についての説明である。   The above is an example of the configuration of the memory access control device 1.

なお、メモリアクセス要求機構3及びメモリアクセス管理機構4のメモリアクセス手段43は、例えば既存技術により実現可能な手段である。メモリアクセス要求機構3やメモリアクセス手段43は、例えば図4で示すようなシステム5(5a、5b)においては、それぞれ一般的なプロセッサ51(CPU(Central Processing Unit))やメモリコントローラ52のように動作する。   Note that the memory access means 43 of the memory access request mechanism 3 and the memory access management mechanism 4 are means that can be realized by, for example, existing technology. For example, in the system 5 (5a, 5b) as shown in FIG. 4, the memory access request mechanism 3 and the memory access means 43 are respectively similar to a general processor 51 (CPU (Central Processing Unit)) and a memory controller 52. Operate.

また、上記のようなシステム5は、例えば、以下のような特徴を有している。
特徴1.各プロセッサ51からメモリコントローラ52に対して同時にメモリアクセス命令(メモリ53に対するアクセスを要求する命令)を出すことが出来る。
特徴2.各プロセッサ51からの要求がそれぞれ異なるアドレスレンジへのアクセスであった場合、メモリコントローラ52の処理は多くの場合において並列動作可能である。そのため、このような場合、遅延は少ないことになる(図4のシステム5a参照)。
特徴3.各プロセッサ51からの要求が同一アドレスレンジへのアクセスであった場合、メモリ及び各プロセッサ51内のキャッシュのコヒーレンシ維持が必要となり、処理がシリアライズ(逐次化)される。そのため、多数のプロセッサ51が同一メモリアドレスにアクセスし続けるような場合、多数のプロセッサ51上のキャッシュに該当メモリアドレスが載っているためコヒーレンシ維持のための更新処理、同期処理が重くなることになる。その結果、遅延が大きくなることになる(図4のシステム5b参照)。
Further, the system 5 as described above has, for example, the following characteristics.
Features 1. A memory access instruction (an instruction requesting access to the memory 53) can be issued simultaneously from each processor 51 to the memory controller 52.
Feature 2. When the request from each processor 51 is an access to a different address range, the processing of the memory controller 52 can be performed in parallel in many cases. Therefore, in such a case, the delay is small (see the system 5a in FIG. 4).
Feature 3. When the request from each processor 51 is an access to the same address range, it is necessary to maintain the coherency of the memory and the cache in each processor 51, and the processing is serialized (serialized). For this reason, when a large number of processors 51 continue to access the same memory address, the corresponding memory address is stored in a cache on the large number of processors 51, so that update processing and synchronization processing for maintaining coherency become heavy. . As a result, the delay increases (see the system 5b in FIG. 4).

なお、図4は本実施形態におけるメモリアクセス制御装置1が用いられるシステムのうち非常に単純な一例を示している。本実施形態におけるメモリアクセス制御装置1は、例えば、上記のような特徴を持つ比較的大規模なシステムの性能向上を図るために用いられることが考えられるが、それ以外の装置、システムに適用されても構わない。   FIG. 4 shows a very simple example of the system in which the memory access control device 1 in this embodiment is used. The memory access control device 1 in the present embodiment can be used, for example, to improve the performance of a relatively large-scale system having the above-described characteristics, but is applied to other devices and systems. It doesn't matter.

続いて、図5乃至図8を参照して、メモリアクセス制御装置1の動作の一例について説明する。まず、図5を参照して、メモリアクセス要求を受信した際のメモリアクセス要求制御機構2の動作の一例について説明する。   Next, an example of the operation of the memory access control device 1 will be described with reference to FIGS. First, an example of the operation of the memory access request control mechanism 2 when a memory access request is received will be described with reference to FIG.

図5を参照すると、メモリアクセス命令発行準備手段23は、外部装置や外部のソフトウェアなどからメモリアクセス要求を受信する(ステップS001)。すると、メモリアクセス命令発行準備手段23は、遅延予測フラグ22を参照してメモリアクセス管理機構4において遅延が予測されているか否かを判断する。   Referring to FIG. 5, the memory access command issuance preparation means 23 receives a memory access request from an external device or external software (step S001). Then, the memory access instruction issuance preparation unit 23 refers to the delay prediction flag 22 and determines whether or not a delay is predicted in the memory access management mechanism 4.

遅延予測フラグ22の値が1以上である場合(遅延が予測されている場合)(ステップS002、True)、メモリアクセス命令発行準備手段23は、メモリアクセス要求を遅延アドレス確認手段24に送信する。一方、遅延予測フラグ22の値が0である場合(遅延が予測されていない場合)(ステップS002、False)、メモリアクセス命令発行準備手段23は、メモリアクセス要求をメモリアクセス命令発行手段26に送信する。   When the value of the delay prediction flag 22 is 1 or more (when a delay is predicted) (step S002, True), the memory access instruction issue preparation unit 23 transmits a memory access request to the delay address confirmation unit 24. On the other hand, when the value of the delay prediction flag 22 is 0 (when the delay is not predicted) (step S002, False), the memory access instruction issue preparation unit 23 transmits a memory access request to the memory access instruction issue unit 26. To do.

遅延アドレス確認手段24は、メモリアクセス命令発行準備手段23からメモリアクセス要求を受信する。すると、遅延アドレス確認手段24は、メモリアクセス管理機構4の遅延予測テーブル42を参照して、受信したメモリアクセス要求が要求するメモリアドレスに該当するエントリが遅延予測テーブル42に存在し、かつ、当該エントリにアラートが立っているか否かを確認する。   The delay address confirmation unit 24 receives the memory access request from the memory access instruction issue preparation unit 23. Then, the delay address confirmation unit 24 refers to the delay prediction table 42 of the memory access management mechanism 4 and an entry corresponding to the memory address requested by the received memory access request exists in the delay prediction table 42. Check if there is an alert on the entry.

該当するエントリが存在し、アラートが立っている場合(ステップS003、True)、遅延アドレス確認手段24は、メモリアクセス要求を遅延抑制手段25に送信する。一方、該当するエントリが存在しない場合やエントリにアラートが立っていない場合(ステップS003、False)、遅延アドレス確認手段24は、メモリアクセス要求をメモリアクセス命令発行手段26に送信する。   When the corresponding entry exists and an alert is raised (step S003, True), the delay address confirmation unit 24 transmits a memory access request to the delay suppression unit 25. On the other hand, when there is no corresponding entry or when no alert is raised in the entry (step S003, False), the delay address confirmation unit 24 transmits a memory access request to the memory access instruction issue unit 26.

遅延抑制手段25は、遅延アドレス確認手段24からメモリアクセス要求を受信する。すると、遅延抑制手段25は、予め定められた時間分待機する。つまり、遅延抑制手段25は、遅延抑制処理を行う(ステップS004)。その後、遅延抑制手段25は、受信したメモリアクセス要求をメモリアクセス命令発行手段26に送信する。   The delay suppression unit 25 receives the memory access request from the delay address confirmation unit 24. Then, the delay suppression unit 25 waits for a predetermined time. That is, the delay suppression unit 25 performs a delay suppression process (step S004). Thereafter, the delay suppressing unit 25 transmits the received memory access request to the memory access command issuing unit 26.

メモリアクセス命令発行手段26は、受信したメモリアクセス要求に基づいて、当該メモリアクセス要求が示すメモリアドレスへのアクセスを指示するメモリアクセス命令をメモリアクセス要求機構3に対して発行する(ステップS005)。   Based on the received memory access request, the memory access command issuing means 26 issues a memory access command for instructing access to the memory address indicated by the memory access request to the memory access request mechanism 3 (step S005).

以上が、メモリアクセス要求を受信した際のメモリアクセス要求制御機構2の動作の一例である。次に、図6を参照して遅延予測フラグ22を更新する際のメモリアクセス要求制御機構2の動作の一例について説明する。   The above is an example of the operation of the memory access request control mechanism 2 when a memory access request is received. Next, an example of the operation of the memory access request control mechanism 2 when the delay prediction flag 22 is updated will be described with reference to FIG.

図6を参照すると、メモリアクセス要求制御機構2の遅延認識手段21は、メモリアクセス管理機構4の遅延予測通知手段47から遅延予測通知や遅延解消通知を受信する(ステップS101)。   Referring to FIG. 6, the delay recognition unit 21 of the memory access request control mechanism 2 receives a delay prediction notification and a delay cancellation notification from the delay prediction notification unit 47 of the memory access management mechanism 4 (step S101).

すると、遅延認識手段21は、通知に応じた更新を行う。具体的には、遅延予測通知を受け取った場合(ステップS102、遅延予測通知)、遅延認識手段21は、遅延予測フラグ22をインクリメントする(ステップS103)。一方、遅延解消通知を受け取った場合(ステップS102、遅延解消通知)、遅延認識手段21は、遅延予測フラグ22をデクリメントする(ステップS104)。遅延認識手段21は、例えば、このように受信した通知に応じて遅延予測フラグ22を更新する。   Then, the delay recognition unit 21 performs an update according to the notification. Specifically, when a delay prediction notification is received (step S102, delay prediction notification), the delay recognition unit 21 increments the delay prediction flag 22 (step S103). On the other hand, when a delay cancellation notification is received (step S102, delay cancellation notification), the delay recognizing means 21 decrements the delay prediction flag 22 (step S104). The delay recognizing means 21 updates the delay prediction flag 22 according to the notification received in this way, for example.

以上が、遅延予測フラグ22を更新する際のメモリアクセス要求制御機構2の動作の一例である。続いて、図7を参照して、メモリアクセス要求機構3の動作の一例について説明する。   The above is an example of the operation of the memory access request control mechanism 2 when the delay prediction flag 22 is updated. Next, an example of the operation of the memory access request mechanism 3 will be described with reference to FIG.

図7を参照すると、メモリアクセス要求機構3は、メモリアクセス命令発行手段26からメモリアクセス命令を受信する(ステップS201)。具体的には、メモリアクセス要求機構3のメモリアクセス判断手段31がメモリアクセス命令を受信する。   Referring to FIG. 7, the memory access request mechanism 3 receives a memory access command from the memory access command issuing unit 26 (step S201). Specifically, the memory access determination unit 31 of the memory access request mechanism 3 receives a memory access command.

メモリアクセス判断手段31は、受信したメモリアクセス命令を解釈し、キャッシュ32を確認した上で、必要であればキャッシュ32の更新を行なったり、メモリアクセス管理機構4に対するメモリアクセスの要求を行ったりする(ステップS202)。   The memory access determination means 31 interprets the received memory access instruction, confirms the cache 32, updates the cache 32 if necessary, or makes a memory access request to the memory access management mechanism 4. (Step S202).

以上が、メモリアクセス要求機構3の動作の一例である。続いて、図8を参照して、メモリアクセス管理機構4の動作の一例について説明する。   The above is an example of the operation of the memory access request mechanism 3. Next, an example of the operation of the memory access management mechanism 4 will be described with reference to FIG.

図8を参照すると、メモリアクセス管理機構4のメモリアクセス監視手段41は、メモリアクセス命令を受信する(ステップS301)。すると、メモリアクセス監視手段41は、受信したメモリアクセス命令が要求するメモリアドレスが属するアドレスレンジに対するエントリが遅延予測テーブル42に既に存在しているか否かを確認する(ステップS302)。   Referring to FIG. 8, the memory access monitoring unit 41 of the memory access management mechanism 4 receives a memory access command (step S301). Then, the memory access monitoring unit 41 checks whether or not an entry for the address range to which the memory address requested by the received memory access instruction belongs already exists in the delay prediction table 42 (step S302).

対応するエントリが存在する場合(ステップS302、True)、メモリアクセス監視手段41は、該当メモリアドレスのキュー長をインクリメントする(ステップS303)。一方、対応するエントリが存在しない場合(ステップS302、False)、メモリアクセス監視手段41は、対応するエントリを新規エントリとして遅延予測テーブル42に登録する(ステップS304)。この際、新規に登録されるエントリのキュー長は1の状態となる。   If there is a corresponding entry (step S302, True), the memory access monitoring unit 41 increments the queue length of the corresponding memory address (step S303). On the other hand, if there is no corresponding entry (step S302, False), the memory access monitoring unit 41 registers the corresponding entry as a new entry in the delay prediction table 42 (step S304). At this time, the queue length of the newly registered entry is 1.

メモリアクセス監視手段41は、並列動作可能な処理として、該当エントリにアラートが立っているか否かを確認する(ステップS305)とともに、受信したメモリアクセス命令をメモリアクセス手段43に送信する。   The memory access monitoring unit 41 confirms whether an alert is set in the corresponding entry as a process capable of parallel operation (step S305), and transmits the received memory access command to the memory access unit 43.

アラートが立っている場合(ステップS305、False)、メモリアクセス監視手段41のこの並行処理の一つを終了する。一方、アラートが立っていない場合(ステップS305、True)、メモリアクセス監視手段41は、遅延発生予測手段45を起動する。   If an alert is set (step S305, False), one of the parallel processes of the memory access monitoring unit 41 is terminated. On the other hand, if no alert is raised (step S305, True), the memory access monitoring unit 41 activates the delay occurrence prediction unit 45.

遅延発生予測手段45は、遅延予測テーブル42を参照して、起動の起因となったエントリのキュー長がH−WM以上であるか否かを確認する(ステップS306)。キュー長がH−WM以上である場合(ステップS306、True)、遅延発生予測手段45は、該当するエントリのアラートを立てる(ステップS307)。また、遅延発生予測手段45は、アラートを立てた旨を遅延予測通知手段47に通知する。その後、上記通知を受領した遅延予測通知手段47は、受信した通知に基づいて、遅延予測通知をメモリアクセス要求制御機構2に対して通知する(ステップS308)。一方、キュー長がH−WMよりも小さい場合(ステップS306、False)、遅延発生予測手段45は、その処理を終了する。   The delay occurrence prediction unit 45 refers to the delay prediction table 42 and confirms whether or not the queue length of the entry that caused the activation is equal to or greater than H-WM (step S306). If the queue length is equal to or longer than H-WM (step S306, True), the delay occurrence prediction unit 45 raises an alert for the corresponding entry (step S307). Further, the delay occurrence prediction unit 45 notifies the delay prediction notification unit 47 that an alert has been set. After that, the delay prediction notifying unit 47 that has received the notification notifies the memory access request control mechanism 2 of the delay prediction notification based on the received notification (step S308). On the other hand, when the queue length is smaller than H-WM (step S306, False), the delay occurrence prediction unit 45 ends the process.

メモリアクセス命令を受信したメモリアクセス手段43は、例えば、当該メモリアクセス命令がアクセスを要求するアクセスレンジに対応するキューにリクエストを追加して、メモリアクセスを行う(ステップS309)。この処理は例えば既存の技術により行われる。   The memory access means 43 that has received the memory access instruction adds a request to a queue corresponding to the access range to which the memory access instruction requests access, for example, and performs memory access (step S309). This process is performed by, for example, an existing technique.

メモリアクセスが完了すると、メモリアクセス手段43は、メモリアクセスが完了した旨をメモリアクセス監視手段41に通知する。メモリアクセスが完了した旨の通知を受信すると、メモリアクセス監視手段41は、対応するエントリのキュー長をデクリメントする(ステップS310)。そして、デクリメントの結果、キュー長が0になった場合(ステップS311、True)、メモリアクセス監視手段41は、該当するエントリを遅延予測テーブル42から削除する(ステップS312)。一方、キュー長が0にならなかった場合(ステップS311、False)、メモリアクセス監視手段41は、該当するエントリにアラートが立っているか否かを確認する(ステップS313)。なお、この処理は並列処理の同期により、同一アクセスリクエストにおけるステップS307の後に実行される事が保証される。   When the memory access is completed, the memory access unit 43 notifies the memory access monitoring unit 41 that the memory access is completed. When the notification indicating that the memory access is completed is received, the memory access monitoring unit 41 decrements the queue length of the corresponding entry (step S310). If the queue length becomes 0 as a result of the decrement (step S311, True), the memory access monitoring unit 41 deletes the corresponding entry from the delay prediction table 42 (step S312). On the other hand, when the queue length does not become 0 (step S311, False), the memory access monitoring unit 41 confirms whether an alert is set in the corresponding entry (step S313). Note that this processing is guaranteed to be executed after step S307 in the same access request due to synchronization of parallel processing.

アラートが立っていない場合(ステップS313、True)、メモリアクセス監視手段41は、処理を終了する。一方、アラートが立っている場合(ステップS313、False)、メモリアクセス監視手段41は、遅延解消予測手段46を起動する。   If no alert is raised (step S313, True), the memory access monitoring unit 41 ends the process. On the other hand, when an alert is raised (step S313, False), the memory access monitoring unit 41 activates the delay elimination prediction unit 46.

遅延解消予測手段46は、遅延予測テーブル42を参照して、起動の起因となったエントリのキュー長がL−WM以下であるか否かを確認する(ステップS314)。キュー長がL−WM以下である場合(ステップS314、True)、遅延解消予測手段46は、該当するエントリのアラートを倒す(ステップS315)。また、遅延解消予測手段46は、アラートを倒した旨を遅延予測通知手段47に通知する。その後、上記通知を受領した遅延予測通知手段47は、受信した通知に基づいて、遅延解消通知をメモリアクセス要求制御機構2に対して通知する(ステップS316)。一方、キュー長がL−WMよりも大きい場合(ステップS314、False)、遅延解消予測手段46は、その処理を終了する。   The delay elimination prediction means 46 refers to the delay prediction table 42 and confirms whether or not the queue length of the entry that caused the activation is equal to or less than L-WM (step S314). When the queue length is equal to or shorter than L-WM (step S314, True), the delay elimination prediction unit 46 defeats the alert of the corresponding entry (step S315). Further, the delay elimination prediction means 46 notifies the delay prediction notification means 47 that the alert has been defeated. After that, the delay prediction notification unit 47 that has received the notification notifies the memory access request control mechanism 2 of a delay cancellation notification based on the received notification (step S316). On the other hand, when the queue length is larger than L-WM (step S314, False), the delay elimination prediction unit 46 ends the process.

以上が、メモリアクセス管理機構4の動作の一例である。   The above is an example of the operation of the memory access management mechanism 4.

このように、本実施形態におけるメモリアクセス制御装置1は、遅延アドレス確認手段24と、遅延抑制手段25とを有している。また、遅延予測テーブル42を有している。このような構成により、遅延アドレス確認手段24は、遅延予測テーブル42を参照して、メモリアクセス要求がアクセスを要求するメモリアドレスが属するアドレスレンジに対してアクセスが集中しているか否かを確認することが出来る。また、遅延抑制手段25は、遅延アドレス確認手段24による確認結果に基づいて、アクセスの集中によりメモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。   As described above, the memory access control device 1 according to the present embodiment includes the delay address confirmation unit 24 and the delay suppression unit 25. In addition, a delay prediction table 42 is provided. With this configuration, the delay address confirmation unit 24 refers to the delay prediction table 42 and confirms whether or not the memory access request is concentrated in the address range to which the memory address requesting access belongs. I can do it. In addition, the delay suppression unit 25 can refrain from memory access in a situation where memory access delay is predicted due to concentration of access based on the confirmation result by the delay address confirmation unit 24. As a result, deterioration of delay can be prevented. That is, the latency can be suppressed.

また、本実施形態におけるメモリアクセス制御装置1は、遅延予測通知手段47を有している。このような構成により、メモリアクセス管理機構4は、遅延が発生している可能性があることをメモリアクセス要求制御機構2に伝えることが出来る。その結果、メモリアクセス要求制御機構2は、遅延発生の可能性に応じて、メモリアクセス命令を発行するか抑制するかを判断すること(または、判断するための情報の確認を行うか否かを判断すること)が可能となる。   Further, the memory access control device 1 in the present embodiment has a delay prediction notification means 47. With such a configuration, the memory access management mechanism 4 can inform the memory access request control mechanism 2 that there is a possibility that a delay has occurred. As a result, the memory access request control mechanism 2 determines whether or not to issue a memory access instruction according to the possibility of occurrence of delay (or whether or not to confirm information for determination). Judgment).

また、本実施形態におけるメモリアクセス制御装置1によると、効率的にメモリアクセスを制御して効率的に遅延の発生を抑制することが出来る。そのため、システムに搭載するCPUの数を増やした場合の遅延の増加を効率的に防ぐことが出来る。その結果、CPUの数を容易に増やすことが容易となる。また、遅延予測テーブル42を活用することで、システムに発生した問題の原因がメモリアクセス遅延によるものか否かを容易に判断することが可能となる。   Further, according to the memory access control device 1 of the present embodiment, it is possible to efficiently control memory access and efficiently suppress the occurrence of delay. Therefore, it is possible to efficiently prevent an increase in delay when the number of CPUs mounted in the system is increased. As a result, it becomes easy to easily increase the number of CPUs. Further, by utilizing the delay prediction table 42, it is possible to easily determine whether or not the cause of the problem occurring in the system is due to a memory access delay.

なお、本実施形態におけるメモリアクセス命令発行準備手段23は、メモリアクセス要求を受信すると、一律に遅延予測フラグ22を確認するとした。しかしながら、メモリアクセス命令発行準備手段23は、必ずしも受信した全てのメモリアクセス要求に対して遅延予測フラグ22を確認しなくても構わない。メモリアクセス命令発行準備手段23は、例えば、同時期に受信したメモリアクセス要求の全てがロード要求である場合、遅延予測フラグ22の確認を省略するよう構成しても構わない。このように、メモリアクセス命令発行準備手段23は、受信したメモリアクセス要求の内容や種類などに応じて遅延予測フラグ22を確認するか否か判断するよう構成することが出来る。また、メモリアクセス命令発行準備手段23は、例えば、予め定められたソフトウェアから発行されるメモリアクセス命令に対してのみ遅延予測フラグ22を確認するよう構成しても構わない。   Note that the memory access instruction issuance preparation unit 23 in the present embodiment uniformly checks the delay prediction flag 22 when a memory access request is received. However, the memory access instruction issuance preparation unit 23 does not necessarily have to check the delay prediction flag 22 for all received memory access requests. For example, the memory access instruction issue preparation means 23 may be configured to omit the confirmation of the delay prediction flag 22 when all the memory access requests received at the same time are load requests. As described above, the memory access instruction issuance preparation means 23 can be configured to determine whether or not to confirm the delay prediction flag 22 according to the content or type of the received memory access request. Further, the memory access instruction issue preparation means 23 may be configured to confirm the delay prediction flag 22 only for a memory access instruction issued from predetermined software, for example.

また、本実施形態におけるメモリアクセス要求制御機構2は、図9で示すような、CPUなどのハードウェアにプログラムが読み込まれることで実現されるソフトウェアで実装しても構わない。図9の割り込みハンドラ61は、割り込みに応じて遅延フラグ62を更新する。また、処理63は、例えば、遅延予測情報(遅延フラグ62、遅延予測テーブル64)を利用することで遅延を大幅に遅らせることが可能な処理のみに、本発明を適用して、遅延フラグ62(図2の遅延予測フラグ22に相当する)及び遅延予測テーブル64(遅延予測テーブル42に相当する)の確認を行う。なお、処理内容はシステム処理であっても構わないし、ユーザーアプリケーション処理であっても構わない。   Further, the memory access request control mechanism 2 in the present embodiment may be implemented by software realized by reading a program into hardware such as a CPU as shown in FIG. The interrupt handler 61 in FIG. 9 updates the delay flag 62 in response to the interrupt. Further, the process 63 applies the present invention only to a process that can significantly delay the delay by using, for example, the delay prediction information (delay flag 62, delay prediction table 64), and the delay flag 62 ( 2) and a delay prediction table 64 (corresponding to the delay prediction table 42) are confirmed. The processing content may be system processing or user application processing.

また、例えば、図10の擬似コードのようなプログラムをハードウェアに読み込ませることで実現されるソフトウェア実装を行っても構わない。ここで、図10におけるis_delay関数は遅延アドレス確認手段24に相当し、lazy_spinlock関数は遅延抑制手段25に相当する。図10によると、is_delay関数が遅延を予測した場合、通常のspinlock関数ではなく、lazy_spinlock関数が利用される。lazy_spinlock関数では、lock->nop_times回、nop命令のような何もしない命令を繰り返す事で、一定期間、遅延を悪化させる無駄なlock->next_ticketが指すメモリアドレスへのアクセス抑制を実現している。   Further, for example, software implementation realized by loading a program such as the pseudo code in FIG. 10 into hardware may be performed. Here, the is_delay function in FIG. 10 corresponds to the delay address confirmation unit 24, and the lazy_spinlock function corresponds to the delay suppression unit 25. According to FIG. 10, when the delay is predicted by the is_delay function, the lazy_spinlock function is used instead of the normal spinlock function. The lazy_spinlock function achieves the suppression of access to the memory address pointed to by useless lock-> next_ticket that worsens the delay for a certain period by repeating the lock-> nop_times number of instructions that do nothing, such as the nop instruction. .

なお、上記記載の場合、どの程度アクセスを抑制するかを示すlock->nop_timesを変数とすることで、抑制時間を特定のアルゴリズムを用いて動的に変化させる事も可能である。このように、遅延抑制手段25がアクセスを抑制する時間は動的に変化するよう構成しても構わない。また、例えば、抑制時間を遅延予測テーブル42の新規項目として追加して、メモリアクセス管理機構4から抑制時間を取得するよう構成することも出来る。   In the case described above, the lock time can be dynamically changed using a specific algorithm by using lock-> nop_times indicating how much access is suppressed as a variable. As described above, the time during which the delay suppression unit 25 suppresses access may be configured to change dynamically. Further, for example, it is possible to add the suppression time as a new item in the delay prediction table 42 and acquire the suppression time from the memory access management mechanism 4.

また、本実施形態においては、メモリアクセス管理機構4は、対象を全アドレスレンジとしたグローバルな遅延予測テーブル42を有するとした。また、遅延予測テーブル42において、H−WM及びL−WMは固定値であるとし、遅延抑制時間はメモリアクセス要求制御機構2に予め定められているものとした。しかしながら、メモリアクセス管理機構4の構成は、上記場合に限定されない。例えば、1つの遅延予測テーブル42に格納するアドレスレンジを区切り、複数の遅延予測テーブル42に分散するよう構成し、遅延予測テーブル42の数だけ遅延予測フラグ22を構成したり、一部のメモリアドレスレンジの遅延予測テーブルだけを活用したりしても構わない。また、H−WM及びL―WMは、例えばメモリアクセス制御装置1を有するシステムに対する負荷の状況などに応じて動的に変更可能なよう構成しても構わない。また、遅延抑制時間は、メモリアクセス管理機構4により制御可能なよう構成しても構わない。例えば、遅延抑制時間は、遅延予測テーブル42に含まれていても構わない。また、遅延抑制時間は、例えば、キュー長が長くなるほど長くなるなど、例えばメモリアクセス監視手段41などにより動的に制御されても構わない。   Further, in the present embodiment, the memory access management mechanism 4 has the global delay prediction table 42 in which the target is the entire address range. In the delay prediction table 42, H-WM and L-WM are fixed values, and the delay suppression time is set in advance in the memory access request control mechanism 2. However, the configuration of the memory access management mechanism 4 is not limited to the above case. For example, the address range stored in one delay prediction table 42 is divided and distributed to a plurality of delay prediction tables 42, and the delay prediction flags 22 are configured by the number of delay prediction tables 42, or some memory addresses You may use only the range delay prediction table. Further, the H-WM and L-WM may be configured to be dynamically changeable depending on, for example, the load status on the system having the memory access control device 1. The delay suppression time may be configured to be controllable by the memory access management mechanism 4. For example, the delay suppression time may be included in the delay prediction table 42. The delay suppression time may be dynamically controlled by, for example, the memory access monitoring unit 41, for example, as the queue length becomes longer.

また、本実施形態においては、メモリアクセス管理機構4は、遅延の発生の予測をキュー長に基づいて行うとした。しかしながら、メモリアクセス管理機構4は、キュー長以外に基づいて遅延の発生を予測しても構わない。メモリアクセス管理機構4は、例えば、メモリアクセスにかかる時間などを計測して、計測結果に基づいて遅延の発生を予測するよう構成しても構わない。このように、メモリアクセス管理機構4は、キュー長以外に基づいて遅延の発生を予測して遅延予測通知を送信するよう構成しても構わない。   In the present embodiment, the memory access management mechanism 4 predicts the occurrence of delay based on the queue length. However, the memory access management mechanism 4 may predict the occurrence of delay based on other than the queue length. For example, the memory access management mechanism 4 may be configured to measure the time required for memory access and predict the occurrence of delay based on the measurement result. As described above, the memory access management mechanism 4 may be configured to predict the occurrence of delay based on other than the queue length and transmit the delay prediction notification.

[第2の実施形態]
続いて、第2の実施形態では、第1の実施形態で説明したメモリアクセス制御装置1を、NUMA(Non-Uniform Memory Access)構成を持つNUMA型システム7のノードコントローラ71(ノードコントローラ71a、71b、71c、71d。特に区別しない場合は、ノードコントローラ71と表記する。以下、同様)に適用する場合の一例について説明する。なお、以下においては、第1の実施形態と重複する説明については省略する。
[Second Embodiment]
Subsequently, in the second embodiment, the memory access control device 1 described in the first embodiment is replaced with the node controller 71 (node controllers 71a and 71b) of the NUMA type system 7 having a NUMA (Non-Uniform Memory Access) configuration. 71c, 71d, unless otherwise distinguished, will be referred to as a node controller 71. Hereinafter, an example in the case of application to the same will be described. In the following description, descriptions overlapping with those of the first embodiment are omitted.

図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の構成を有している。   Referring to FIG. 11, the NUMA type system 7 in the present embodiment has, for example, four nodes, and four node controllers 71 (71a, 71b, 71c, 71d) corresponding to the respective nodes; Four CPUs 72 (72a, 72b, 72c, 72d) composed of a plurality of CPUs, four memory controllers 73 (73a, 74b, 73c, 73d), and 16 memories 74 (74a, 74b, 74c, 74d) 4). Further, as described above, each node controller 71 has the configuration of the memory access control device 1 described in the first embodiment.

このようなシステムにおいては、図12で示す経路C01のようにノードコントローラ71を経由する(経由C01の場合、ノードコントローラ71a、71bを経由する)アクセスを行う場合、CPU72からメモリ74までの経路(経由C01の場合、CPU72aからメモリ74b)が長くなるためレイテンシが大きくなる。このため、図13で示すように多数のCPU72から同一メモリアドレスへのアクセスが集中した場合、つまり、例えばノードコントローラ71bを経由した同一メモリアドレスへのアクセスが多い場合、ノードコントローラ71b経由のメモリアクセスのレイテンシに引きずられ、すべての経路においてレイテンシが発生しやすくなる。そこで、本発明をノードコントローラ71に対して適用することで、ノードコントローラ71を経由する経路経由でのメモリアクセスを監視することが可能となり、大きな効果を得ることが出来るものと考えられる。   In such a system, when accessing via the node controller 71 (in the case of via C01, via the node controllers 71a and 71b) as in the path C01 shown in FIG. 12, the path from the CPU 72 to the memory 74 ( In the case of the via C01, the memory 74b) becomes longer from the CPU 72a, so that the latency is increased. For this reason, as shown in FIG. 13, when accesses to the same memory address from many CPUs 72 are concentrated, that is, for example, when there are many accesses to the same memory address via the node controller 71b, memory access via the node controller 71b is performed. Therefore, latency is likely to occur in all paths. Therefore, it is considered that by applying the present invention to the node controller 71, it is possible to monitor memory access via a route passing through the node controller 71, and a great effect can be obtained.

また、図12で示す経路C02や経路C03などノードコントローラ71を経由しない経路を使用した同一メモリアドレスへのアクセスの集中による遅延は、上記ノードコントローラ71を経由した場合に発生する遅延と比較して、相対的に小さいものと考えられる。そのため、各ノードコントローラ71は、例えば、図14で示すように、自分が直接管理するメモリコントローラ73の負荷状況だけを管理する(例えば、ノードコントローラ71aは、メモリコントローラ73aの負荷状況を管理する)。これにより、効率的な管理を行うことが可能となる。図14では、ノードコントローラ71aは、メモリコントローラ73a(MC1)の負荷状況を管理していることを示している。なお、図14では、各ノードコントローラ71において、図3で示すキューを各メモリコントローラ用のキューとし、キュー長を各メモリコントローラ73向けへのアクセス数とした遅延予測テーブル42の一例を示している。また、H−WM及びL―WMを動的に変更(例えば、各ノードに対する負荷などに応じて動的に変更する)した場合を示しており、遅延抑制時間を動的に制御している場合を示している。   Further, the delay due to the concentration of access to the same memory address using the path not passing through the node controller 71 such as the path C02 and the path C03 shown in FIG. 12 is compared with the delay occurring when passing through the node controller 71. It is considered relatively small. Therefore, each node controller 71 manages, for example, only the load status of the memory controller 73 that is directly managed by itself (for example, the node controller 71a manages the load status of the memory controller 73a) as shown in FIG. . Thereby, efficient management can be performed. FIG. 14 shows that the node controller 71a manages the load status of the memory controller 73a (MC1). 14 shows an example of the delay prediction table 42 in each node controller 71 where the queue shown in FIG. 3 is a queue for each memory controller and the queue length is the number of accesses to each memory controller 73. . Also, the case where the H-WM and L-WM are dynamically changed (for example, dynamically changed according to the load on each node, etc.) is shown, and the delay suppression time is dynamically controlled Is shown.

[第3の実施形態]
次に、図15を参照して、第3の実施形態について説明する。第3の実施形態では、同一アドレスレンジに対するアクセスの集中により生じるレイテンシを抑制するメモリアクセス制御装置8について説明する。本実施形態においては、メモリアクセス制御装置8の構成の概要について説明する。
[Third Embodiment]
Next, a third embodiment will be described with reference to FIG. In the third embodiment, a memory access control device 8 that suppresses latency caused by concentration of accesses to the same address range will be described. In the present embodiment, an outline of the configuration of the memory access control device 8 will be described.

図15を参照すると、本実施形態におけるメモリアクセス制御装置8は、受付手段81と発行手段82と抑制手段83とメモリアクセス手段84を有している。   Referring to FIG. 15, the memory access control device 8 in the present embodiment includes an accepting unit 81, an issuing unit 82, a suppressing unit 83, and a memory access unit 84.

受付手段81は、メモリアドレスへのアクセス要求を受け付ける。発行手段82は、受付手段81が受け付けたアクセス要求に応じて、メモリアクセス手段84に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する。   The accepting unit 81 accepts an access request to a memory address. In response to the access request received by the receiving unit 81, the issuing unit 82 issues an access command that instructs the memory access unit 84 to access the memory address.

抑制手段83は、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段84によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて発行手段82によるアクセス命令の発行を所定時間抑制させる。   The suppression unit 83 refers to the status information indicating the status of access by the memory access unit 84 to the memory address requested by the access request, and suppresses the issue of the access command by the issuing unit 82 based on the status information for a predetermined time. .

このように、本実施形態におけるメモリアクセス制御装置8は、発行手段82と抑制手段83とを有している。このような構成により、抑制手段83は、状況情報を参照し、当該状況情報に基づいて、発行手段82によるアクセス命令の発行を所定時間抑制させることが出来る。つまり、抑制手段83は、状況情報に基づいて、例えば、アクセス要求がアクセスを要求するメモリアドレスに対するアクセスが遅延すると判断される場合などにおいて、当該メモリアドレスに対するアクセスを要求するアクセス命令の発行を所定時間抑制させることが出来る。これにより、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。   As described above, the memory access control device 8 according to the present embodiment includes the issuing unit 82 and the suppressing unit 83. With such a configuration, the suppressing unit 83 can refer to the situation information and suppress the issuance of the access command by the issuing unit 82 for a predetermined time based on the situation information. That is, based on the status information, for example, when the access request determines that access to the memory address requesting access is delayed, the suppression unit 83 issues an access command requesting access to the memory address. Time can be suppressed. Thereby, it is possible to refrain from memory access in a situation where memory access delay is predicted. As a result, deterioration of delay can be prevented. That is, the latency can be suppressed.

また、上記メモリアクセス制御装置8は、当該メモリアクセス制御装置8に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、情報処理装置に、メモリアドレスへのアクセス要求を受け付ける受付手段と、受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて発行手段によるアクセス命令の発行を所定時間抑制させる抑制手段と、を実現させるためのプログラムである。   The memory access control device 8 can be realized by incorporating a predetermined program into the memory access control device 8. Specifically, a program according to another embodiment of the present invention includes: a receiving unit that receives an access request to a memory address in an information processing device; and a memory that is stored in the memory access unit according to the access request received by the receiving unit. Issuing means for issuing an access instruction for instructing access to an address, and status information indicating the status of access by the memory access means for the memory address to which the access request requests access, and by issuing means based on the status information And a suppressor that suppresses issuance of an access command for a predetermined time.

また、上述したメモリアクセス制御装置8が作動することにより実行されるメモリアクセス制御方法は、メモリアドレスへのアクセス要求を受け付け、受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、アクセス要求がアクセスを要求するメモリアドレスに対するメモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいてアクセス命令の発行を所定時間抑制させる、という方法である。   The memory access control method executed by the operation of the memory access control device 8 described above accepts an access request to a memory address, and responds to the memory address with respect to the memory access means according to the accepted access request. An access instruction for instructing access is issued, the access request refers to the status information indicating the status of access by the memory access means for the memory address requesting access, and the issuance of the access command is suppressed for a predetermined time based on the status information This is the method.

上述した構成を有する、プログラム、又は、メモリアクセス制御方法、の発明であっても、上記メモリアクセス制御装置8と同様の作用を有するために、上述した本発明の目的を達成することが出来る。   Even the invention of the program or the memory access control method having the above-described configuration can achieve the above-described object of the present invention because it has the same operation as the memory access control device 8.

<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるメモリアクセス制御装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
<Appendix>
Part or all of the above-described embodiment can be described as in the following supplementary notes. The outline of the memory access control device and the like in the present invention will be described below. However, the present invention is not limited to the following configuration.

(付記1)
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有する
メモリアクセス制御装置。
(Appendix 1)
Accepting means for accepting an access request to a memory address;
An issuing unit that issues an access instruction to instruct the memory access unit to access a memory address in response to the access request received by the receiving unit;
A control unit that refers to status information indicating a status of access by the memory access unit with respect to a memory address to which the access request requests access, and suppresses issuance of the access command by the issuing unit for a predetermined time based on the status information; ,
A memory access control device.

この構成によると、メモリアクセス制御装置は、発行手段と抑制手段とを有している。このような構成により、抑制手段は、状況情報を参照し、当該状況情報に基づいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。これにより、メモリアクセス遅延が予測される状況において、メモリアクセスを控えることが出来る。その結果、遅延の悪化を防ぐことが出来る。つまり、レイテンシを抑制することが出来る。   According to this configuration, the memory access control device has the issuing unit and the suppressing unit. With such a configuration, the suppression unit can refer to the situation information and suppress the issuance of the access command by the issuing unit for a predetermined time based on the situation information. Thereby, it is possible to refrain from memory access in a situation where memory access delay is predicted. As a result, deterioration of delay can be prevented. That is, the latency can be suppressed.

(付記2)
付記1に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
メモリアクセス制御装置。
(Appendix 2)
The memory access control device according to attachment 1, wherein
The suppression means refers to information indicating the number of accesses to a memory address to which the access request requests access as the status information.

この構成によると、抑制手段は、状況情報として、アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する。これにより、抑制手段は、例えば、アクセスの数が多くアクセスが集中していると判断される場合などにおいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。その結果、メモリアドレスに対するアクセスの集中により生じるレイテンシを抑制することが可能となる。   According to this configuration, the suppression unit refers to information indicating the number of accesses to the memory address requested by the access request as the status information. Thereby, the suppression means can suppress the issue of the access command by the issuing means for a predetermined time, for example, when it is determined that the number of accesses is large and the access is concentrated. As a result, it is possible to suppress latency caused by concentration of accesses to memory addresses.

(付記3)
付記1又は2に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
メモリアクセス制御装置。
(Appendix 3)
The memory access control device according to appendix 1 or 2,
The memory unit is a memory access control device that refers to information indicating a queue length that is the number of the access instructions after the memory access unit receives and before the execution completion as the status information.

この構成によると、抑制手段は、状況情報として、キュー長を示す情報を参照する。これにより、メモリアクセス手段で実行中(処理中)のアクセス命令の数に基づいて、該当するメモリアドレスに対するアクセスが集中していると判断される場合などにおいて、発行手段によるアクセス命令の発行を所定時間抑制させることが出来る。   According to this configuration, the suppression unit refers to information indicating the queue length as the status information. As a result, when it is determined that access to the corresponding memory address is concentrated based on the number of access instructions being executed (processing) by the memory access means, the issuing means issues the access instructions in a predetermined manner. Time can be suppressed.

(付記4)
付記3に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記キュー長が予め定められた遅延閾値以上である場合、対応するメモリアドレスに対するアクセスを指示する前記アクセス命令の発行を所定時間抑制させる
メモリアクセス制御装置。
(Appendix 4)
The memory access control device according to attachment 3, wherein
The memory access control device that suppresses issuance of the access command that instructs access to a corresponding memory address for a predetermined time when the queue length is equal to or greater than a predetermined delay threshold.

(付記5)
付記3又は4に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記発行手段に対して前記アクセス命令の発行を所定時間抑制させる状態において、前記キュー長が前記遅延閾値よりも小さな値である解消閾値以下となるまで、当該アクセス命令の発行を所定時間抑制させる状態を持続する
メモリアクセス制御装置。
(Appendix 5)
The memory access control device according to appendix 3 or 4,
In a state where the issuing unit suppresses the issuing of the access command for a predetermined time, the suppressing unit issues the access command until the queue length becomes equal to or less than a cancellation threshold that is smaller than the delay threshold. A memory access control device that maintains a state of being suppressed for a predetermined time.

(付記6)
付記3乃至5のいずれかに記載のメモリアクセス制御装置であって、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御装置。
(Appendix 6)
The memory access control device according to any one of appendices 3 to 5,
The queue length is measured for each address range in which values up to a predetermined number of memory addresses coincide with each other.

(付記7)
付記1乃至6のいずれかに記載のメモリアクセス制御装置であって、
前記抑制手段は、前記受付手段から前記アクセス要求を受信した後当該受信したアクセス要求を前記発行手段に送信するよう構成され、前記状況情報に基づいて遅延が生じると判断される前記アクセス要求に対しては、前記受付手段から前記アクセス要求を受信した後、所定時間待機した後に、当該受信したアクセス要求を前記発行手段に送信する
メモリアクセス制御装置。
(Appendix 7)
The memory access control device according to any one of appendices 1 to 6,
The suppressing means is configured to transmit the received access request to the issuing means after receiving the access request from the accepting means, and for the access request that is determined to be delayed based on the status information Then, after receiving the access request from the accepting unit, the memory access control device transmits the received access request to the issuing unit after waiting for a predetermined time.

(付記8)
付記7に記載のメモリアクセス制御装置であって、
前記状況情報に基づいて遅延が生じると判断される場合に、遅延の発生を予測する遅延予測情報を前記受付手段に対して送信する送信手段を有し、
前記受付手段は、前記遅延予測情報に基づいて遅延の発生が予測されている場合、前記メモリアクセス要求を前記抑制手段に送信する
メモリアクセス制御装置。
(Appendix 8)
The memory access control device according to appendix 7,
When it is determined that a delay occurs based on the situation information, the transmission unit has a transmission unit that transmits the delay prediction information for predicting the occurrence of the delay to the reception unit,
The accepting unit is a memory access control device that transmits the memory access request to the suppressing unit when occurrence of a delay is predicted based on the delay prediction information.

(付記9)
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させる、
メモリアクセス制御方法。
(Appendix 9)
Accept access request to memory address,
In response to the received access request, issue an access instruction to instruct the memory access means to access the memory address,
The access request refers to status information indicating a status of access by the memory access means for a memory address that requests access, and based on the status information, issuance of the access command is suppressed for a predetermined time.
Memory access control method.

(付記9−1)
付記9に記載のメモリアクセス制御方法であって、
前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
メモリアクセス制御方法。
(Appendix 9-1)
A memory access control method according to attachment 9, wherein
A memory access control method for referring to information indicating the number of accesses to a memory address to which the access request requests access as the status information.

(付記9−2)
付記9又は9−1に記載のメモリアクセス制御方法であって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
メモリアクセス制御方法。
(Appendix 9-2)
A memory access control method according to appendix 9 or 9-1,
The memory control method according to claim 1, wherein the suppression unit refers to information indicating a queue length that is the number of the access instructions after the memory access unit has received and before completion of execution as the status information.

(付記10)
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させるためのプログラム。
(Appendix 10)
In the information processing device,
Accepting means for accepting an access request to a memory address;
An issuing unit that issues an access instruction to instruct the memory access unit to access a memory address in response to the access request received by the receiving unit;
A control unit that refers to status information indicating a status of access by the memory access unit with respect to a memory address to which the access request requests access, and suppresses issuance of the access command by the issuing unit for a predetermined time based on the status information; ,
A program to realize

(付記10−1)
付記10に記載のプログラムであって、
前記抑制手段は、前記状況情報として、前記アクセス要求がアクセスを要求するメモリアドレスに対するアクセスの数を示す情報を参照する
プログラム。
(Appendix 10-1)
The program according to attachment 10, wherein
The suppression unit refers to information indicating the number of accesses to a memory address to which the access request requests access as the status information.

(付記10−2)
付記10又は10−1に記載のプログラムであって、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照する
プログラム。
(Appendix 10-2)
The program according to appendix 10 or 10-1,
The control unit refers to information indicating a queue length, which is the number of the access instructions after the memory access unit receives and before the execution is completed, as the status information.

なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。   The programs described in the above embodiments and supplementary notes are stored in a storage device or recorded on a computer-readable recording medium. For example, the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.

以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。   Although the present invention has been described with reference to the above embodiments, the present invention is not limited to the above-described embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

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 メモリアクセス手段

DESCRIPTION OF SYMBOLS 1 Memory access control apparatus 2 Memory access request control mechanism 21 Delay recognition means 22 Delay prediction flag 23 Memory access instruction issue preparation means 24 Delay address confirmation means 25 Delay suppression means 26 Memory access instruction issue means 3 Memory access request mechanism 31 Memory access judgment Means 32 Cache 4 Memory access management mechanism 41 Memory access monitoring means 42 Delay prediction table 43 Memory access means 44 Memory 45 Delay occurrence prediction means 46 Delay elimination prediction means 47 Delay prediction notification means 5 System 51 Processor 52 Memory controller 53 Memory 61 Interrupt handler 62 Delay flag 63 Processing 64 Delay prediction table 7 NUMA system 71 Node controller 72 CPU
73 memory controller 74 memory 8 memory access control device 81 receiving means 82 issuing means 83 suppressing means 84 memory access means

Claims (7)

メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を有し、
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御装置。
Accepting means for accepting an access request to a memory address;
An issuing unit that issues an access instruction to instruct the memory access unit to access a memory address in response to the access request received by the receiving unit;
A control unit that refers to status information indicating a status of access by the memory access unit with respect to a memory address to which the access request requests access, and suppresses issuance of the access command by the issuing unit for a predetermined time based on the status information; ,
Have a,
The suppression means refers to information indicating a queue length that is the number of the access instructions after the memory access means has received and before execution completion as the status information,
The queue length is a memory access control device that is measured for each address range in which values up to a predetermined number of memory addresses match .
請求項に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記キュー長が予め定められた遅延閾値以上である場合、対応するメモリアドレスに対するアクセスを指示する前記アクセス命令の発行を所定時間抑制させる
メモリアクセス制御装置。
The memory access control device according to claim 1 ,
The memory access control device that suppresses issuance of the access command that instructs access to a corresponding memory address for a predetermined time when the queue length is equal to or greater than a predetermined delay threshold.
請求項に記載のメモリアクセス制御装置であって、
前記抑制手段は、前記発行手段に対して前記アクセス命令の発行を所定時間抑制させる状態において、前記キュー長が前記遅延閾値よりも小さな値である解消閾値以下となるまで、当該アクセス命令の発行を所定時間抑制させる状態を持続する
メモリアクセス制御装置。
The memory access control device according to claim 2 ,
In a state where the issuing unit suppresses the issuing of the access command for a predetermined time, the suppressing unit issues the access command until the queue length becomes equal to or less than a cancellation threshold that is smaller than the delay threshold. A memory access control device that maintains a state of being suppressed for a predetermined time.
請求項1乃至3のいずれかに記載のメモリアクセス制御装置であって、
前記抑制手段は、前記受付手段から前記アクセス要求を受信した後当該受信したアクセス要求を前記発行手段に送信するよう構成され、前記状況情報に基づいて遅延が生じると判断される前記アクセス要求に対しては、前記受付手段から前記アクセス要求を受信した後、所定時間待機した後に、当該受信したアクセス要求を前記発行手段に送信する
メモリアクセス制御装置。
A memory access control device according to any one of claims 1 to 3 ,
The suppressing means is configured to transmit the received access request to the issuing means after receiving the access request from the accepting means, and for the access request that is determined to be delayed based on the status information Then, after receiving the access request from the accepting unit, the memory access control device transmits the received access request to the issuing unit after waiting for a predetermined time.
請求項に記載のメモリアクセス制御装置であって、
前記状況情報に基づいて遅延が生じると判断される場合に、遅延の発生を予測する遅延予測情報を前記受付手段に対して送信する送信手段を有し、
前記受付手段は、前記遅延予測情報に基づいて遅延の発生が予測されている場合、前記アクセス要求を前記抑制手段に送信する
メモリアクセス制御装置。
The memory access control device according to claim 4 ,
When it is determined that a delay occurs based on the situation information, the transmission unit has a transmission unit that transmits the delay prediction information for predicting the occurrence of the delay to the reception unit,
It said accepting means, when the occurrence of the delay based on the delay prediction information is predicted, before a memory access controller for transmitting Kia access request to the suppressing means.
メモリアドレスへのアクセス要求を受け付け、
受け付けた前記アクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行し、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記アクセス命令の発行を所定時間抑制させ
前記状況情報として、前記アクセス命令を受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
メモリアクセス制御方法。
Accept access request to memory address,
In response to the received access request, issue an access instruction to instruct the memory access means to access the memory address,
With reference to status information indicating the status of access by the memory access means for the memory address to which the access request requests access, issuance of the access command is suppressed for a predetermined time based on the status information ,
As the status information, refer to information indicating a queue length which is the number of the access instructions after the access instruction is received and before the execution is completed,
The queue length is a memory access control method measured for each address range in which values up to a predetermined number of memory addresses match .
情報処理装置に、
メモリアドレスへのアクセス要求を受け付ける受付手段と、
前記受付手段が受け付けたアクセス要求に応じて、メモリアクセス手段に対してメモリアドレスへのアクセスを指示するアクセス命令を発行する発行手段と、
前記アクセス要求がアクセスを要求するメモリアドレスに対する前記メモリアクセス手段によるアクセスの状況を示す状況情報を参照し、当該状況情報に基づいて前記発行手段による前記アクセス命令の発行を所定時間抑制させる抑制手段と、
を実現させ
前記抑制手段は、前記状況情報として、前記メモリアクセス手段が受け付けた後であって実行完了前の前記アクセス命令の数であるキュー長を示す情報を参照し、
前記キュー長は、メモリアドレスのうちの所定数までの値が一致するアドレスレンジごとに計測されている
プログラム。
In the information processing device,
Receiving means for receiving an access request to the memory address;
An issuing unit that issues an access instruction to instruct the memory access unit to access a memory address in response to the access request received by the receiving unit;
A control unit that refers to status information indicating a status of access by the memory access unit with respect to a memory address to which the access request requests access, and suppresses issuance of the access command by the issuing unit for a predetermined time based on the status information; ,
Realized ,
The suppression unit refers to information indicating a queue length that is the number of the access instructions after the memory access unit has received and before execution completion as the status information,
The queue length is measured for each address range in which values up to a predetermined number of memory addresses match .
JP2016024896A 2016-02-12 2016-02-12 MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, PROGRAM Active JP6607069B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016024896A JP6607069B2 (en) 2016-02-12 2016-02-12 MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016024896A JP6607069B2 (en) 2016-02-12 2016-02-12 MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, PROGRAM

Publications (2)

Publication Number Publication Date
JP2017142730A JP2017142730A (en) 2017-08-17
JP6607069B2 true JP6607069B2 (en) 2019-11-20

Family

ID=59627324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016024896A Active JP6607069B2 (en) 2016-02-12 2016-02-12 MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, PROGRAM

Country Status (1)

Country Link
JP (1) JP6607069B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7226084B2 (en) 2019-05-16 2023-02-21 オムロン株式会社 Information processing equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650481B2 (en) * 2004-11-24 2010-01-19 Qualcomm Incorporated Dynamic control of memory access speed
US20060179197A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system, method and interconnect fabric having a partial response rebroadcast
JP4142068B2 (en) * 2006-06-16 2008-08-27 株式会社ソニー・コンピュータエンタテインメント Information processing apparatus and access control method
JP4802284B2 (en) * 2010-01-29 2011-10-26 株式会社東芝 Semiconductor memory device and control method thereof

Also Published As

Publication number Publication date
JP2017142730A (en) 2017-08-17

Similar Documents

Publication Publication Date Title
KR101639672B1 (en) Unbounded transactional memory system and method for operating thereof
US8949547B2 (en) Coherency controller and method for data hazard handling for copending data access requests
US9767027B2 (en) Private memory regions and coherency optimization by controlling snoop traffic volume in multi-level cache hierarchy
JP4474570B2 (en) Cache coherency control method
KR102929297B1 (en) Memory interface having data signal path and tag signal path
US20140006716A1 (en) Data control using last accessor information
US20110320743A1 (en) Memory ordered store system in a multiprocessor computer system
US8635409B2 (en) Dynamic mode transitions for cache instructions
US11687460B2 (en) Network cache injection for coherent GPUs
JP6319473B1 (en) Information processing device
US10997075B2 (en) Adaptively enabling and disabling snooping bus commands
KR101695845B1 (en) Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method
WO2007096979A1 (en) Information processor and data transfer method
JP6607069B2 (en) MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, PROGRAM
JP5527477B2 (en) Arithmetic processing device, information processing device, and control method for arithmetic processing device
JP2008046958A (en) System controller, same address request queuing prevention method, and information processing apparatus
US10775870B2 (en) System and method for maintaining cache coherency
US8719499B2 (en) Cache-line based notification
US8838909B2 (en) Dynamic initial cache line coherency state assignment in multi-processor systems
CN117149278A (en) A command processing system, control method and host device
US20080307190A1 (en) System and Method for Improved Virtual Real Memory
JP4335298B2 (en) Snoop control method and information processing apparatus
EP3332329B1 (en) Device and method for prefetching content to a cache memory
JP2017151856A (en) Arithmetic processing device, information processing device, and control method for information processing device
JP6413605B2 (en) Vector arithmetic device, control method and program, and vector processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190904

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191007

R150 Certificate of patent or registration of utility model

Ref document number: 6607069

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150