[go: up one dir, main page]

JP4186575B2 - Memory access device - Google Patents

Memory access device Download PDF

Info

Publication number
JP4186575B2
JP4186575B2 JP2002286331A JP2002286331A JP4186575B2 JP 4186575 B2 JP4186575 B2 JP 4186575B2 JP 2002286331 A JP2002286331 A JP 2002286331A JP 2002286331 A JP2002286331 A JP 2002286331A JP 4186575 B2 JP4186575 B2 JP 4186575B2
Authority
JP
Japan
Prior art keywords
memory access
memory
bandwidth
request
access device
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.)
Expired - Fee Related
Application number
JP2002286331A
Other languages
Japanese (ja)
Other versions
JP2004126694A (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 JP2002286331A priority Critical patent/JP4186575B2/en
Publication of JP2004126694A publication Critical patent/JP2004126694A/en
Application granted granted Critical
Publication of JP4186575B2 publication Critical patent/JP4186575B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Memory System (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はメモリアクセス装置に関し、特に、マルチプロセッサシステムにおいて、プロセッサから発信されるメモリアクセス要求の頻度に応じてメモリアクセス要求の優先度を決定し、各優先度に割り当てたメモリアクセス帯域を動的に変化させることにより、メモリアクセス要求に対する応答特性の良いメモリアクセス装置に関する。
【0002】
【従来の技術】
共有メモリ型のマルチプロセッサシステムにおいては、複数のプロセッサから共有メモリへのアクセス要求があるため、それらのアクセス要求の競合を防ぐ必要がある。
【0003】
従来のメモリアクセスを行うためのマルチプロセッサシステムとしては、図2に示すような構成例がある。
【0004】
この従来構成例において、複数のCPU101a〜103cから発信された各々の共有メモリ要求信号における発信回数は、要求カウント回路105でカウントされる。この要求カウント回路105は、共有メモリ要求信号の発信回数に応じて共有メモリ要求信号の優先度を決定し、その優先度を調停回路106に通知する。そして、調停回路106は、最も高い優先度を持つCPUからの共有メモリ要求を優先的に処理するようになっている。(例えば、特許文献1参照)
【0005】
また、優先度のクラス分け方法と、クラス分けされた各優先度に対する帯域割り当て方法としては、例えば、IPv4プロトコルにおけるTOS(Type Of Service)情報によるクラス分け方法と、そのTOS情報単位の帯域割り当て方法がある。具体的には、TOS情報によるクラス分け方法においては、あらかじめIPプロトコル上のアプリケーション単位やIP端末単位にTOSのクラスを割り当てる。その上で、それらの各TOS情報単位に帯域を割り当てていく方法がとられている。(例えば、非特許文献1参照)
【0006】
【特許文献1】
特開平1−263762号公報(第4頁、第1図)
【非特許文献1】
University of Southern California、“IETF RFC791”、[online]、
September 1981、Internet Engineering Task Force、[平成14年8
月26日検索]、インターネット<URL:http://www.ietf.org/rfc/
rfc0791.txt?number=791>
【0007】
【発明が解決しようとする課題】
特許文献1に記載されたマルチプロセッサシステムにおける問題点は、マルチプロセッサの内のあるプロセッサ(CPU)の負荷が急激に高くなり、メモリアクセス回数が急激に増えた場合、高負荷CPUの優先度が常に高い状態になってしまう点である。この結果、高負荷CPUへのアクセスが常に優先的に処理されるようになり、他のCPUからのメモリアクセスが不可能となったり、またはメモリアクセス速度の遅延が急激に増加するようになる。そして、マルチプロセッサシステム全体のスループットが低下する恐れがある。
【0008】
また、非特許文献1記載のIPv4プロトコルにおけるTOS(Type Of Service)情報によるクラス分け方法と、そのTOS情報単位の帯域割り当て方法における問題点について以下に述べる。ここで、これらのクラス分けおよび帯域割り当て方法を特許文献1に記載されたマルチプロセッサシステムに適用した場合、各プロセッサはIPプロトコル上のアプリケーションやIP端末相当と考えられ、それらのプロセッサ単位に優先クラスを割り当て、その優先クラスに従って帯域を割り当てることとなる。
【0009】
この場合、各プロセッサの負荷に関わらず、常に高い優先度を持つプロセッサからのメモリアクセス要求が処理されてしまう。その結果、優先度が低いプロセッサの負荷が高くなったとしても、そのプロセッサのメモリアクセス要求が受け付けられることが少なく、そのプロセッサの処理を高速化することができない。そのため、低優先度かつ高負荷のプロセッサにおける処理がボトルネックとなり、やはりマルチプロセッサシステム全体のスループットが低下してしまうという問題が発生する。
【0010】
そこで、本発明の目的は上記の問題を解消した、メモリアクセス装置を提供することにある。
【0011】
【課題を解決するための手段】
上記課題を解決するために、本発明のメモリアクセス装置では、前記メモリアクセス要求を保存する複数のコマンドキューへのメモリアクセスの帯域を管理するスケジューラ部と、前記スケジューラ部からの管理情報を用いて、前記複数のコマンドキューの内の一つのコマンドキューからメモリアクセス要求を読み出し、当該メモリアクセスを実行するメモリアクセス部と、前記複数のコマンドキューの内の一つのコマンドキューへのメモリアクセス要求の発信頻度に対応して、前記スケジューラ部に帯域変更を要求する制御部と、から構成されることを特徴とする。
【0012】
このような構成を採用することにより、本発明のメモリアクセス装置では、各プロセッサの負荷変動に追随したメモリアクセス処理が可能となり、メモリアクセス要求に対する高い応答特性を実現している。
【0013】
【発明の実施の形態】
以下では、図1に示す本願発明のメモリアクセス装置20の内部構成を参照しつつ、本発明の実施例について説明する。
【0014】
プロセッサ10〜1nは、メモリアクセス装置20に接続される複数(n個)のプロセッサである。プロセッサ10〜1nは、メモリアクセス装置20を介して、共有メモリ30に対してデータの読み書きを行っている。
【0015】
メモリアクセス装置20内のメモリアクセス部40は、メモリアクセス装置20と共有メモリ30とのインタフェース機能を持っている。メモリアクセス部40は、コマンドキュー80〜8m内でスケジューラ部60から指示されたコマンドキューからメモリアクセス要求を読み出し、そのコマンドを実行する。
【0016】
スケジューラ部60は、各コマンドキュー80〜8mに対するメモリアクセスの帯域を管理している。
【0017】
インタフェース部70は、制御部50からの指示に従い、プロセッサ10〜1nからのメモリアクセス要求を、コマンドキュー80〜8mへ振り分ける。
【0018】
コマンドキュー80〜8mは、インタフェース部70経由でプロセッサ10〜1nから発信されたメモリアクセス要求を保存する。
【0019】
制御部50は、あるコマンドキューへのメモリアクセス要求の発信頻度が一定量を超えたり下回ったりした場合、スケジューラ部60に対して帯域変更を要求する。
【0020】
以下では、上記の構成を持つメモリアクセス装置20の詳細動作について、一例として、IPパケットの処理を行う場合で説明する。
【0021】
IPパケットのデータは共有メモリ30に格納されており、プロセッサ10〜1nは共有メモリ30から必要なデータを読み書きしてIPパケット処理を行っている。ここで、IPパケット処理におけるプロセッサ10〜1nの負荷は、処理内容やトラヒックの増減によって変化する。それらの変動によって、プロセッサ10〜1nから共有メモリ30へのメモリアクセス要求の発信頻度が変化する。
【0022】
ここで、制御部50は、インタフェース部70を通過するメモリアクセス要求の発信頻度を、プロセッサ10〜1n単位でモニターしている。そして、制御部50は、発信頻度の高いプロセッサからのメモリアクセス要求が、例えば、コマンドキュー80に投入されるようにインタフェース部70を制御する。逆に、発信頻度が低いプロセッサからのメモリアクセス要求は、例えば、コマンドキュー8mに投入されるように、制御部50はインタフェース部70を制御する。
【0023】
すなわち、制御部50は、メモリアクセス要求の発信頻度に応じて、プロセッサ10〜1nからのメモリアクセス要求がコマンドキュー80〜8mに振り分けられるように、インタフェース部70を制御する。ここで、制御部50は、各プロセッサからの一定時間あたりのメモリアクセス要求発信数に対して、複数の閾値を持ち、その閾値を用いてメモリアクセス要求の振り分け先を決定している。
【0024】
一例として、メモリへの1回当たりのアクセス時間を100nsと仮定すると、このメモリには1秒当たり最大10の7乗回(10M回/s)のアクセスが可能となる。よって、閾値として、「4M回/s以上」「3M回/s以上〜4M回/s未満」「2M回/s以上〜3M回/s未満」…というような設定を行う。その上で、「メモリアクセス要求発信数が4M回/s以上の場合には、コマンドキュー80へアクセス要求を投入」「メモリアクセス要求発信数が3M回/s以上〜4M回/s未満の場合には、コマンドキュー81へアクセス要求を投入」「メモリアクセス要求発信数が2M回/s以上〜3M回/s未満の場合には、コマンドキュー82へアクセス要求を投入」…というような振り分けを行うようにする。
【0025】
前述したように、プロセッサ10〜1nからのメモリアクセス要求の発信頻度は、プロセッサの負荷や処理内容によって動的に変化する。例えば、プロセッサ10からのメモリアクセス要求の送信先は、負荷の高いときにはコマンドキュー80となるが、負荷が低くなるとコマンドキュー81〜8mのいずれかに変更される。
【0026】
以上に述べた動作により、コマンドキュー80〜8mには、メモリアクセス要求の発信頻度に応じて、メモリアクセス要求がキューイングされる。
【0027】
スケジューラ部60は、メモリアクセス装置20と共有メモリ30との間のメモリアクセス帯域を、コマンドキュー単位に分割して管理している。そして、コマンドキュー80〜8mへの帯域割り当ては、例えば、共有メモリ30への一定時間あたりのメモリアクセス回数を用いて行う。本実施例では、スケジューラ部60は、コマンドキュー80に最も多くの帯域を割り当て、コマンドキュー8mに最も少ない帯域を割り当てる。スケジューラ部60は、割り当てた帯域に従って、メモリアクセス部40にどのコマンドキューからメモリアクセス要求を読み出すかを指示する。
【0028】
メモリアクセス部40は、スケジューラ部60からの指示に従って、コマンドキューからメモリアクセス要求を読み出し、メモリアクセスを実行する。すなわち、メモリアクセス部40は、メモリアクセス要求の発信元であるプロセッサからのデータ書き込み、または同プロセッサへのデータ読み出しを行う。
【0029】
ここで、ある優先度クラスのコマンドキューより優先度が高いコマンドキューにメモリアクセス要求が滞留していなければ、メモリアクセス部40は、そのコマンドキューからメモリアクセス要求を取り出し、そのメモリアクセス要求の発信元となるプロセッサからのデータ書き込み、または同プロセッサへのデータ読み出しを行う。
【0030】
また、プロセッサ10〜1nのすべての負荷が高くなった場合、コマンドキュー80へのメモリアクセス要求の発信頻度が高くなる。その結果、コマンドキュー80にメモリアクセス要求が滞留することになる。このように、ある特定コマンドキューへのメモリアクセス要求の発信頻度が高くなった場合、制御部50は、スケジューラ部60へ、そのコマンドキューへの帯域変更を要求する。そして、スケジューラ部60は、制御部50からの要求に従って各コマンドキューへの帯域割り当ての再配分を行い、コマンドキュー80への帯域を増加させる。このように、メモリアクセス帯域を動的に変化させると、その時点で、最も負荷の高いプロセッサからのメモリアクセスが優先的に処理される。
【0031】
ここで、同じパケット処理でも、パケット長やパケット種別によって処理内容が異なってくるため、メモリアクセス数も変動することになる。例えば、UDP(User Datagram Protocol)における誤りチェック処理は全体のパケットデータをチェック対象とするため、パケット長によってメモリアクセス数が変動する。また、IPパケットのヘッダ部分にオプションが付加されると、パケット処理内容が通常処理と変わるために、メモリアクセス数が変動する。
【0032】
よって、動的にメモリアクセス帯域を変更することができれば、一定時間あたりに発行できるメモリアクセス数を変動させることが可能となり、上記のようなメモリアクセス数の変動に追随でるようになる。従って、複数のプロセッサ内のあるプロセッサのメモリアクセスだけが遅くなってしまうことがなくなり、マルチプロセッサシステム全体のメモリアクセスに対する応答性能が向上する。
【0033】
なお、上記の第1の実施例では、プロセッサ10〜1nからのメモリアクセス要求の発信頻度により優先クラス分けを行ったが、第2の実施例として、各プロセッサ内の処理タスク単位または処理スレッド単位におけるメモリアクセス要求の発信頻度により、優先クラス分けを行っても良い。
【0034】
また、第3の実施例として、プロセッサと、そのプロセッサ内の処理タスク単位または処理スレッド単位との組み合わせを作り、それら組み合わせ単位におけるメモリアクセス要求の発信頻度により優先クラス分けを行っても良い。
【0035】
さらに、第4の実施例として、メモリアクセス要求の発信頻度のカウントは、メモリ読み出しコマンドとメモリ書き込みコマンドを区別せずにカウントしても良いし、また各々のコマンドを区別してカウントしても良い。そして、区別を行った場合には、メモリ読み出しとメモリ書き込みに対して別々の優先度を与えてクラス分けを行っても良い。
【0036】
【発明の効果】
本発明は、以下に記載するような効果を奏する。
【0037】
第1の効果は、コマンドキューへのメモリアクセス要求の発信頻度に対応して、メモリアクセス帯域を動的に変化させることにより、メモリアクセス要求に対する応答特性を向上させることが可能となり、マルチプロセッサシステムにおけるメモリアクセス競合というボトルネックを解消できることである。
【0038】
第2の効果は、優先度に応じてメモリアクセス帯域を動的に変化させることにより、負荷の高いプロセッサ内の処理の高速化、および負荷の低いプロセッサへのメモリアクセスの保証が可能となり、マルチプロセッサシステム全体のスループットを向上させられることである。
【0039】
第3の効果は、メモリアクセス帯域を動的に変化させることにより、各プロセッサへのトラヒック変動を吸収することが可能となり、各プロセッサに対応したメモリアクセス方法のプログラミングを簡易にできることである。
【図面の簡単な説明】
【図1】本発明のメモリアクセス装置の構成例を示すブロック図である。
【図2】従来のメモリアクセス装置の構成例を示すブロック図である。
【符号の説明】
10〜1n プロセッサ
20 メモリアクセス装置
30 共有メモリ
40 メモリアクセス部
50 制御部
60 スケジューラ部
70 インタフェース部
80〜8m コマンドキュー
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a memory access device, and in particular, in a multiprocessor system, the priority of a memory access request is determined according to the frequency of the memory access request transmitted from the processor, and the memory access bandwidth assigned to each priority is dynamically determined. It is related with the memory access apparatus with the favorable response characteristic with respect to a memory access request.
[0002]
[Prior art]
In a shared memory type multiprocessor system, there are access requests to a shared memory from a plurality of processors, and thus it is necessary to prevent contention of these access requests.
[0003]
As a conventional multiprocessor system for performing memory access, there is a configuration example as shown in FIG.
[0004]
In this conventional configuration example, the request count circuit 105 counts the number of transmissions in each shared memory request signal transmitted from the plurality of CPUs 101 a to 103 c. The request count circuit 105 determines the priority of the shared memory request signal according to the number of times the shared memory request signal is transmitted, and notifies the arbitration circuit 106 of the priority. The arbitration circuit 106 preferentially processes the shared memory request from the CPU having the highest priority. (For example, see Patent Document 1)
[0005]
The priority classification method and the bandwidth allocation method for each classified priority include, for example, a classification method based on TOS (Type Of Service) information in the IPv4 protocol, and a bandwidth allocation method for each TOS information unit. There is. Specifically, in the classification method based on TOS information, a TOS class is assigned in advance to an application unit or an IP terminal unit in the IP protocol. In addition, a method of allocating a bandwidth to each TOS information unit is employed. (For example, see Non-Patent Document 1)
[0006]
[Patent Document 1]
Japanese Unexamined Patent Publication No. 1-263762 (page 4, FIG. 1)
[Non-Patent Document 1]
University of Southern California, “IETF RFC791”, [online]
September 1981, Internet Engineering Task Force, [2002 August
Search 26th of March], Internet <URL: http://www.ietf.org/rfc/
rfc0791.txt? number = 791>
[0007]
[Problems to be solved by the invention]
The problem in the multiprocessor system described in Patent Document 1 is that when the load of a processor (CPU) in the multiprocessor suddenly increases and the number of memory accesses increases rapidly, the priority of the high-load CPU is increased. It is a point that always becomes high. As a result, access to the high load CPU is always processed preferentially, memory access from other CPUs becomes impossible, or delay in memory access speed increases rapidly. In addition, the throughput of the entire multiprocessor system may be reduced.
[0008]
Further, problems in the classification method based on TOS (Type Of Service) information in the IPv4 protocol described in Non-Patent Document 1 and the bandwidth allocation method in the TOS information unit will be described below. Here, when these classification and bandwidth allocation methods are applied to the multiprocessor system described in Patent Document 1, each processor is considered to be equivalent to an application on an IP protocol or an IP terminal, and a priority class is assigned to each processor. And the bandwidth is allocated according to the priority class.
[0009]
In this case, a memory access request from a processor having a high priority is always processed regardless of the load on each processor. As a result, even if the load on a processor with low priority increases, the memory access request of the processor is rarely accepted, and the processing of the processor cannot be accelerated. For this reason, processing in a low priority and high load processor becomes a bottleneck, which also causes a problem that the throughput of the entire multiprocessor system is lowered.
[0010]
SUMMARY OF THE INVENTION An object of the present invention is to provide a memory access device that solves the above problems.
[0011]
[Means for Solving the Problems]
In order to solve the above-described problem, in the memory access device of the present invention, a scheduler unit that manages a bandwidth of memory access to a plurality of command queues that store the memory access request, and management information from the scheduler unit are used. Reading a memory access request from one command queue of the plurality of command queues, and executing the memory access, and issuing the memory access request to one command queue of the plurality of command queues The control unit is configured to request the scheduler unit to change the band in accordance with the frequency.
[0012]
By adopting such a configuration, the memory access device of the present invention can perform a memory access process following the load fluctuation of each processor, and realizes a high response characteristic to a memory access request.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the internal configuration of the memory access device 20 of the present invention shown in FIG.
[0014]
The processors 10 to 1n are a plurality (n) of processors connected to the memory access device 20. The processors 10 to 1 n read / write data from / to the shared memory 30 via the memory access device 20.
[0015]
The memory access unit 40 in the memory access device 20 has an interface function between the memory access device 20 and the shared memory 30. The memory access unit 40 reads a memory access request from the command queue instructed by the scheduler unit 60 in the command queues 80 to 8m, and executes the command.
[0016]
The scheduler unit 60 manages a memory access band for each of the command queues 80 to 8m.
[0017]
The interface unit 70 distributes memory access requests from the processors 10 to 1n to the command queues 80 to 8m in accordance with instructions from the control unit 50.
[0018]
The command queues 80 to 8m store memory access requests transmitted from the processors 10 to 1n via the interface unit 70.
[0019]
When the frequency of sending a memory access request to a certain command queue exceeds or falls below a certain amount, the control unit 50 requests the scheduler unit 60 to change the bandwidth.
[0020]
Hereinafter, the detailed operation of the memory access device 20 having the above configuration will be described as an example in the case of processing an IP packet.
[0021]
The IP packet data is stored in the shared memory 30, and the processors 10 to 1n read and write necessary data from the shared memory 30 to perform IP packet processing. Here, the load of the processors 10 to 1n in the IP packet processing varies depending on the processing contents and the increase / decrease of traffic. Due to these fluctuations, the frequency of sending memory access requests from the processors 10 to 1n to the shared memory 30 changes.
[0022]
Here, the control unit 50 monitors the transmission frequency of the memory access request passing through the interface unit 70 in units of processors 10 to 1n. Then, the control unit 50 controls the interface unit 70 so that a memory access request from a processor having a high transmission frequency is input to the command queue 80, for example. On the contrary, the control unit 50 controls the interface unit 70 so that a memory access request from a processor with a low transmission frequency is input to the command queue 8m, for example.
[0023]
That is, the control unit 50 controls the interface unit 70 so that the memory access requests from the processors 10 to 1n are distributed to the command queues 80 to 8m according to the frequency of sending the memory access requests. Here, the control unit 50 has a plurality of thresholds for the number of memory access request transmissions from each processor per fixed time, and determines a memory access request distribution destination using the thresholds.
[0024]
As an example, assuming that the access time per one time to the memory is 100 ns, this memory can be accessed up to 10 7 times (10M times / s) per second. Therefore, as the threshold value, “4M times / s or more”, “3M times / s or more to less than 4M times / s”, “2M times / s or more to less than 3M times / s”, and so on are set. In addition, when the number of memory access request transmissions is 4M times / s or more, an access request is input to the command queue 80. When the number of memory access request transmissions is 3M times / s or more to less than 4M times / s For example, “If an access request is sent to the command queue 81”, “If the memory access request transmission number is 2M times / s or more and less than 3M times / s, an access request is sent to the command queue 82”. To do.
[0025]
As described above, the frequency of transmission of memory access requests from the processors 10 to 1n dynamically changes depending on the processor load and processing contents. For example, the transmission destination of the memory access request from the processor 10 is the command queue 80 when the load is high, but is changed to one of the command queues 81 to 8m when the load is low.
[0026]
With the operation described above, memory access requests are queued in the command queues 80 to 8m in accordance with the frequency of issuing memory access requests.
[0027]
The scheduler unit 60 manages the memory access bandwidth between the memory access device 20 and the shared memory 30 by dividing it into command queue units. The bandwidth allocation to the command queues 80 to 8m is performed using, for example, the number of memory accesses to the shared memory 30 per certain time. In this embodiment, the scheduler unit 60 allocates the most bandwidth to the command queue 80 and allocates the least bandwidth to the command queue 8m. The scheduler unit 60 instructs the memory access unit 40 from which command queue the memory access request is read according to the allocated bandwidth.
[0028]
The memory access unit 40 reads a memory access request from the command queue in accordance with an instruction from the scheduler unit 60 and executes memory access. That is, the memory access unit 40 writes data from the processor that is the source of the memory access request, or reads data from the processor.
[0029]
Here, if the memory access request does not stay in the command queue having a higher priority than the command queue of a certain priority class, the memory access unit 40 extracts the memory access request from the command queue and transmits the memory access request. Data is written from the original processor or data is read from the processor.
[0030]
When all the loads on the processors 10 to 1n are increased, the frequency of sending memory access requests to the command queue 80 is increased. As a result, the memory access request stays in the command queue 80. As described above, when the frequency of sending a memory access request to a specific command queue increases, the control unit 50 requests the scheduler unit 60 to change the bandwidth to the command queue. Then, the scheduler unit 60 redistributes the bandwidth allocation to each command queue according to the request from the control unit 50 and increases the bandwidth to the command queue 80. As described above, when the memory access bandwidth is dynamically changed, memory access from the processor with the highest load is preferentially processed at that time.
[0031]
Here, even in the same packet processing, since the processing contents differ depending on the packet length and packet type, the number of memory accesses also varies. For example, since error check processing in UDP (User Datagram Protocol) targets the entire packet data, the number of memory accesses varies depending on the packet length. Further, when an option is added to the header portion of the IP packet, the content of packet processing changes from normal processing, and the number of memory accesses changes.
[0032]
Therefore, if the memory access bandwidth can be changed dynamically, the number of memory accesses that can be issued per fixed time can be changed, and the change in the number of memory accesses as described above can be followed. Therefore, only the memory access of a processor in a plurality of processors is not delayed, and the response performance to the memory access of the entire multiprocessor system is improved.
[0033]
In the first embodiment, the priority classification is performed according to the frequency of issuing memory access requests from the processors 10 to 1n. However, as the second embodiment, the processing task unit or processing thread unit in each processor is used. Priority classification may be performed according to the frequency of sending memory access requests.
[0034]
As a third embodiment, a combination of a processor and a processing task unit or a processing thread unit in the processor may be created, and priority classification may be performed according to the frequency of issuing memory access requests in the combination unit.
[0035]
Further, as a fourth embodiment, the memory access request transmission frequency may be counted without distinguishing between a memory read command and a memory write command, or each command may be counted separately. . When the distinction is made, classification may be performed by giving different priorities to memory reading and memory writing.
[0036]
【The invention's effect】
The present invention has the following effects.
[0037]
The first effect is that the response characteristic to the memory access request can be improved by dynamically changing the memory access bandwidth in accordance with the frequency of issuing the memory access request to the command queue. It is possible to eliminate the bottleneck of memory access contention.
[0038]
The second effect is that by dynamically changing the memory access band according to the priority, it is possible to speed up the processing in the processor with a high load and guarantee the memory access to the processor with a low load. The throughput of the entire processor system can be improved.
[0039]
The third effect is that by dynamically changing the memory access band, it becomes possible to absorb the traffic fluctuation to each processor, and the programming of the memory access method corresponding to each processor can be simplified.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration example of a memory access device according to the present invention.
FIG. 2 is a block diagram illustrating a configuration example of a conventional memory access device.
[Explanation of symbols]
10 to 1n Processor 20 Memory access device 30 Shared memory 40 Memory access unit 50 Control unit 60 Scheduler unit 70 Interface unit 80 to 8m Command queue

Claims (9)

複数のプロセッサから共有メモリにアクセスを行うメモリアクセス装置であって、
前記メモリアクセス装置は、
前記共有メモリへのメモリアクセス要求を保存する複数のコマンドキューと、
前記複数のコマンドキューの各々と前記共有メモリとの間のメモリアクセスの帯域を前記コマンドキュー単位で管理するスケジューラ部と、
前記スケジューラ部からの管理情報を用いて、前記複数のコマンドキューの各々からメモリアクセス要求を読み出し、当該メモリアクセスを実行するメモリアクセス部と、
前記コマンドキューの各々からのメモリアクセス要求の発信頻度に対応して、前記スケジューラ部に前記複数のコマンドキューの各々と前記共有メモリの間の帯域変更を要求する制御部と、
から構成されることを特徴とするメモリアクセス装置。
A memory access device for accessing a shared memory from a plurality of processors,
The memory access device is:
A plurality of command queues for storing memory access requests to the shared memory;
A scheduler unit that manages a bandwidth of memory access between each of the plurality of command queues and the shared memory in units of the command queue ;
Using the management information from the scheduler unit, a memory access request is read from each of the plurality of command queues, and the memory access is executed.
A controller that requests the scheduler unit to change the bandwidth between each of the plurality of command queues and the shared memory in response to the frequency of transmission of memory access requests from each of the command queues ;
A memory access device comprising:
前記メモリアクセス装置は、
前記プロセッサからのメモリアクセス要求を、前記制御部からの指示に従って前記コマンドキューへ振り分けるインタフェース部を、さらに備えることを特徴とする請求項1記載のメモリアクセス装置。
The memory access device is:
A memory access request from the processor, an interface unit for distributing to the command queue in accordance with an instruction from the control unit, further comprising that the memory access apparatus according to claim 1, wherein.
前記共有メモリへの前記メモリアクセス要求の優先度が、前記複数のプロセッサからの当該メモリアクセス要求の発信頻度に応じて決定され、当該優先度ごとにメモリアクセス帯域を割り当てることを特徴とする請求項1記載のメモリアクセス装置。The priority of the memory access request to the shared memory is determined according to the frequency of transmission of the memory access request from the plurality of processors, and a memory access bandwidth is allocated for each priority. The memory access device according to 1. 前記共有メモリへの前記メモリアクセス要求の優先度が、前記複数のプロセッサ内の各処理タスクまたは各処理スレッドからの当該メモリアクセス要求の発信頻度に応じて決定され、当該優先度ごとにメモリアクセス帯域を割り当てることを特徴とする請求項1記載のメモリアクセス装置。The priority of the memory access request to the shared memory is determined according to the frequency of transmission of the memory access request from each processing task or each processing thread in the plurality of processors, and the memory access bandwidth for each priority The memory access device according to claim 1, wherein the memory access device is assigned. 前記共有メモリへの前記メモリアクセス要求の前記発信頻度が、当該共有メモリに対する一定時間当たりの読み出しコマンド数,書き込みコマンド数,あるいは当該読み出しコマンド数と当該書き込みコマンド数の総計の内のいずれかであることを特徴とする請求項3または請求項4記載のメモリアクセス装置。The transmission frequency of the memory access request to the shared memory is one of the number of read commands, the number of write commands per certain time for the shared memory, or the total of the number of read commands and the number of write commands. 5. The memory access device according to claim 3, wherein the memory access device is a memory access device. 前記共有メモリへの前記メモリアクセス要求の前記発信頻度が、ある特定の優先度に集中した場合に、前記優先度に割り当てたメモリアクセス帯域を動的に変更可能とすることを特徴とする請求項1から請求項5記載のメモリアクセス装置。The memory access bandwidth allocated to the priority can be dynamically changed when the transmission frequency of the memory access request to the shared memory is concentrated on a specific priority. The memory access device according to claim 1. 前記制御部は、前記プロセッサからの一定時間あたりのメモリアクセス要求の前記発信頻度に対して複数の閾値を持ち、前記複数の閾値への当該発信頻度の有無を用いて、前記優先度に割り当てたメモリアクセス帯域の割り当てを変更することを特徴とする請求項1から請求項6記載のメモリアクセス装置。The control unit has a plurality of thresholds with respect to the transmission frequency of the memory access request per fixed time from the processor, and assigned to the priority using the presence / absence of the transmission frequency to the plurality of thresholds 7. The memory access device according to claim 1, wherein the allocation of the memory access band is changed. 複数のプロセッサから共有メモリにアクセスを行うメモリアクセス方法であって、A memory access method for accessing shared memory from a plurality of processors,
複数のコマンドキューに前記共有メモリへのメモリ要求を振り分ける振分ステップと、A distribution step of distributing memory requests to the shared memory to a plurality of command queues;
前記複数のコマンドキューの各々と前記共有メモリとの間のメモリアクセスの帯域を管理する管理ステップと、A management step of managing a bandwidth of memory access between each of the plurality of command queues and the shared memory;
前記管理ステップにおいて管理される管理情報を用いて、前記複数のコマンドキューの各々からメモリアクセス要求を読み出し、当該メモリアクセスを実行する実行ステップと、Using the management information managed in the management step, a memory access request is read from each of the plurality of command queues, and the memory access is executed,
前記コマンドキューの各々からのメモリアクセス要求の発信頻度に対応して、前記管理ステップにおいて管理される前記複数のコマンドキューの各々と前記共有メモリの間の帯域Bandwidth between each of the plurality of command queues managed in the management step and the shared memory in correspondence with the frequency of transmission of memory access requests from each of the command queues の変更を要求する要求ステップRequest steps to request changes
とを備えることを特徴とするメモリアクセス方法。A memory access method comprising:
前記振分ステップは、前記プロセッサからのメモリアクセス要求を、前記メモリアクセスの帯域の変更に従って前記複数のコマンドキューに前記共有メモリへのメモリ要求を振り分ける割合を変更することを特徴とする請求項8記載のメモリアクセス方法。9. The distribution step is characterized in that a ratio of distributing memory requests to the shared memory to the plurality of command queues according to a change in a bandwidth of the memory access is changed in the memory access request from the processor. The memory access method described.
JP2002286331A 2002-09-30 2002-09-30 Memory access device Expired - Fee Related JP4186575B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002286331A JP4186575B2 (en) 2002-09-30 2002-09-30 Memory access device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002286331A JP4186575B2 (en) 2002-09-30 2002-09-30 Memory access device

Publications (2)

Publication Number Publication Date
JP2004126694A JP2004126694A (en) 2004-04-22
JP4186575B2 true JP4186575B2 (en) 2008-11-26

Family

ID=32279410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002286331A Expired - Fee Related JP4186575B2 (en) 2002-09-30 2002-09-30 Memory access device

Country Status (1)

Country Link
JP (1) JP4186575B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162852A1 (en) 2006-12-28 2008-07-03 Surya Kareenahalli Tier-based memory read/write micro-command scheduler
US8260990B2 (en) * 2007-11-19 2012-09-04 Qualcomm Incorporated Selective preclusion of a bus access request
JP5713091B2 (en) * 2013-12-05 2015-05-07 富士通株式会社 Multi-core processor system, control method, and control program
WO2016067339A1 (en) * 2014-10-27 2016-05-06 株式会社日立製作所 Storage system and storage control method
JP7408357B2 (en) * 2019-11-15 2024-01-05 キオクシア株式会社 Memory system and its control method

Also Published As

Publication number Publication date
JP2004126694A (en) 2004-04-22

Similar Documents

Publication Publication Date Title
EP3251021B1 (en) Memory network to prioritize processing of a memory access request
US20170318082A1 (en) Method and system for providing efficient receive network traffic distribution that balances the load in multi-core processor systems
US7502877B2 (en) Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
US10146583B2 (en) System and method for dynamically managing compute and I/O resources in data processing systems
US9264369B2 (en) Technique for managing traffic at a router
US20070011396A1 (en) Method and apparatus for bandwidth efficient and bounded latency packet buffering
US20040085984A1 (en) System and method for receive queue provisioning
CN112306928B (en) A stream-oriented direct memory access method and DMA controller
EP4102374A1 (en) Asymmetric read / write architecture for enhanced throughput and reduced latency
US7046628B2 (en) Apparatus and method for just-in-time transfer of transmit commands to a network interface
JP6015342B2 (en) Information processing method, program, information processing apparatus, and information processing system
US9674099B2 (en) Network classification for applications
JP2007334748A (en) Information processor and access control method
Wang et al. Aemon: Information-agnostic mix-flow scheduling in data center networks
Walter et al. Access regulation to hot-modules in wormhole NoCs
JP4186575B2 (en) Memory access device
JP4142069B2 (en) Information processing apparatus and access control method
CN112737970B (en) A data transmission method and related equipment
WO2021181896A1 (en) Communication apparatus, control method for communication apparatus, and integrated circuit
CN120111107A (en) Intelligent network card and distributed object access method based on intelligent network card
CN119946704B (en) Data transmission method and device, equipment and storage medium
US12500840B2 (en) Alleviating memory-access congestion in network devices
US12367162B2 (en) Method, device, and computer program product for data access
JPS61195439A (en) Remote file access system
CN119316375A (en) A scalable and efficient scheduling method for hybrid messaging scenarios in RDMA networks

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20021202

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050308

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050822

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080513

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080714

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: 20080819

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080901

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees