JP2009140324A - Memory access controller and memory access control method - Google Patents

Memory access controller and memory access control method Download PDF

Info

Publication number
JP2009140324A
JP2009140324A JP2007317193A JP2007317193A JP2009140324A JP 2009140324 A JP2009140324 A JP 2009140324A JP 2007317193 A JP2007317193 A JP 2007317193A JP 2007317193 A JP2007317193 A JP 2007317193A JP 2009140324 A JP2009140324 A JP 2009140324A
Authority
JP
Japan
Prior art keywords
request
request packet
access
buffer
packet
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.)
Granted
Application number
JP2007317193A
Other languages
Japanese (ja)
Other versions
JP4900219B2 (en
Inventor
Shoichi Urata
昭一 浦田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007317193A priority Critical patent/JP4900219B2/en
Publication of JP2009140324A publication Critical patent/JP2009140324A/en
Application granted granted Critical
Publication of JP4900219B2 publication Critical patent/JP4900219B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a memory access controller capable of avoiding processing suppression of a processor and discarding of a request packet and capable of efficiently and reliably executing processing, and to provide a memory access control method. <P>SOLUTION: A request packet which can omit an access to a common memory is canceled among the request packet accumulated by an input buffer and a request packet accumulated by an access buffer. For example, when a write request packet of an address identical to that of a read request packet accumulated by the input buffer is present, data written to the common memory by the write request packet are transmitted to a processor as the result of execution of the read request packet, and the read request packet in the input buffer is canceled. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置およびメモリアクセス制御方法に関する。   The present invention relates to a memory access control device and a memory access control method for controlling access to a shared memory shared by a plurality of processors.

スーパーコンピュータ等の分野では、複数のプロセッサを使って1つのタスクを分散・並列処理させることにより、システム全体としての処理の高速化を図る並列プロセッサシステムが広く適用されている。この並列プロセッサシステムでは、複数のプロセッサ間で1つの共有メモリを共有し、その共有メモリにデータを書き込んだり、共有メモリに記憶されているデータを読み取ることによって、データの整合が図られている。また、並列プロセッサシステムにおいては、複数のプロセッサが1本の共通バスを介して共有メモリに接続される共通バス構成が一般的であったが、近年では、複数のプロセッサそれぞれが個別のバスを介して共有メモリに接続される1対n型の接続構成が採用されてきている。   In the field of supercomputers and the like, a parallel processor system is widely applied in which a single task is distributed and processed in parallel by using a plurality of processors to increase the processing speed of the entire system. In this parallel processor system, data matching is achieved by sharing one shared memory among a plurality of processors, writing data to the shared memory, and reading data stored in the shared memory. In parallel processor systems, a common bus configuration in which a plurality of processors are connected to a shared memory via a single common bus has been common. However, in recent years, each of a plurality of processors is connected via a separate bus. Thus, a one-to-n connection structure connected to a shared memory has been adopted.

図1は、1対n型の接続構成を有する並列プロセッサシステムの概略構成図である。   FIG. 1 is a schematic configuration diagram of a parallel processor system having a one-to-n type connection configuration.

図1に示す並列プロセッサシステム100は、共有メモリ110を含む共有メモリ装置101と、それぞれが個別のバスで共有メモリ装置101に接続された複数のプロセッサ102_0,102_1,…,102_nとで構成されている。   A parallel processor system 100 shown in FIG. 1 includes a shared memory device 101 including a shared memory 110, and a plurality of processors 102_0, 102_1,..., 102_n each connected to the shared memory device 101 via individual buses. Yes.

プロセッサ102_0,102_1,…,102_nは、共有メモリ110のアドレスと共有メモリ110にデータを書き込むライト要求とを含むライト要求リクエストパケットと、共有メモリ110のアドレスと共有メモリ110に記憶されたデータを読み取るリード要求とを含むリード要求リクエストパケットとのうちのいずれかのリクエストパケット103を共有メモリ装置101に向けて送信する。尚、図1では、リクエストパケット103内に示された数字のうちの前の数字が各プロセッサ102_0,102_1,…,102_nを表しており、後の数字が各プロセッサ102_0,102_1,…,102_nから送信されたリクエストパケットの通し番号を表している。   The processors 102_0, 102_1,..., 102_n read the write request request packet including the address of the shared memory 110 and the write request for writing data to the shared memory 110, and the address of the shared memory 110 and the data stored in the shared memory 110. One of the request packets 103 of the read request request packet including the read request is transmitted to the shared memory device 101. In FIG. 1, the number before the number shown in the request packet 103 represents each processor 102_0, 102_1,..., 102_n, and the number after the number from each processor 102_0, 102_1,. Indicates the serial number of the transmitted request packet.

共有メモリ装置101には、複数のプロセッサ102_0,102_1,…,102_nそれぞれに対応する送受信部104_0,104_1,…,104_n、および入力バッファ105_0,105_1,…,105_nと、複数のプロセッサ102_0,102_1,…,102_n間で共有されるアービトレーション回路106、アクセスバッファ107、アクセスレジスタ108、キャッシュメモリ109、および共有メモリ110が備えられている。   The shared memory device 101 includes transmission / reception units 104_0, 104_1, ..., 104_n and input buffers 105_0, 105_1, ..., 105_n corresponding to the plurality of processors 102_0, 102_1, ..., 102_n, and a plurality of processors 102_0, 102_1, respectively. .., 102_n are provided with an arbitration circuit 106, an access buffer 107, an access register 108, a cache memory 109, and a shared memory 110.

送受信部104_0,104_1,…,104_nは、各プロセッサ102_0,102_1,…,102_nから送信されてきたリクエストパケット103を受信するとともに、受信したリクエストパケット103を入力バッファ105_0,105_1,…,105_nに蓄積する。   The transmission / reception units 104_0, 104_1, ..., 104_n receive the request packets 103 transmitted from the processors 102_0, 102_1, ..., 102_n, and store the received request packets 103 in the input buffers 105_0, 105_1, ..., 105_n. To do.

アービトレーション回路106は、入力バッファ105_0,105_1,…,105_nに蓄積された複数のリクエストパケット103を、予め決められているアービトレーション規則に従って1つずつ順次に選択し、選択したリクエストパケット103をアクセスバッファ107に蓄積する。アクセスバッファ107に蓄積されたリクエストパケット103は、順次にアクセスレジスタ108に送り出される。   The arbitration circuit 106 sequentially selects a plurality of request packets 103 stored in the input buffers 105_0, 105_1,..., 105_n one by one according to a predetermined arbitration rule, and the selected request packets 103 are accessed by the access buffer 107. To accumulate. The request packets 103 accumulated in the access buffer 107 are sequentially sent to the access register 108.

アクセスレジスタ108では、格納されたリクエストパケット103に含まれるリード要求あるいはライト要求が実行される。アクセスレジスタ108にライト要求リクエストパケットが格納された場合には、共有メモリ110の、リクエストパケット103中のアドレスが示す記憶領域に対象データが書き込まれる。また、アクセスレジスタ108にリード要求リクエストパケットが格納された場合には、共有メモリ110よりも先に、キャッシュメモリ109にアクセスされる。キャッシュメモリ109に対象データが記憶されている場合には、キャッシュメモリ109に記憶されたデータが読み出されて、リード要求リクエストパケットを送信したプロセッサ102_1,102_2,…,102_nに返信される。キャッシュメモリ109に対象データが記憶されていない場合には、共有メモリ110の、リクエストパケット103中のアドレスが示す記憶領域に記憶されているデータが読み出され、リード要求リクエストパケットを送信したプロセッサ102_1,102_2,…,102_nに返信される。   In the access register 108, a read request or a write request included in the stored request packet 103 is executed. When the write request request packet is stored in the access register 108, the target data is written in the storage area indicated by the address in the request packet 103 in the shared memory 110. When the read request request packet is stored in the access register 108, the cache memory 109 is accessed before the shared memory 110. When the target data is stored in the cache memory 109, the data stored in the cache memory 109 is read and returned to the processors 102_1, 102_2,..., 102_n that transmitted the read request request packet. When the target data is not stored in the cache memory 109, the data stored in the storage area indicated by the address in the request packet 103 in the shared memory 110 is read, and the processor 102_1 that has transmitted the read request request packet , 102_2,..., 102_n.

このように、1対n型の接続構成を有する並列プロセッサシステムによると、1つのプロセッサによって共有バスが占有されてしまって、システム全体の処理が停止してしまう不具合を回避することができるとともに、1本のバスにかかる電気的負荷を増加させずにプロセッサを増設することができ、分散・並列処理の効率を向上させることができる。さらに、各プロセッサ102_1,102_2,…,102_nと共有メモリ装置101とを接続している複数のバスのうちいくつかのバスで不具合が発生した場合であっても、他のバスで接続されたプロセッサでは共有メモリ110にアクセスすることができるため、障害の切り分けが容易になるという利点もある。   As described above, according to the parallel processor system having the one-to-n type connection configuration, it is possible to avoid the problem that the shared bus is occupied by one processor and the processing of the entire system stops, The number of processors can be increased without increasing the electrical load applied to one bus, and the efficiency of distributed / parallel processing can be improved. Furthermore, even if a failure occurs in some of the plurality of buses connecting the processors 102_1, 102_2,..., 102_n and the shared memory device 101, the processors connected by other buses Then, since the shared memory 110 can be accessed, there is an advantage that the fault can be easily isolated.

また、共有メモリには、どのプロセッサからもアクセスすることが可能な記憶領域と、特定のプロセッサからのアクセスのみが許可された記憶領域とが用意されることが多い。この点に関し、特許文献1には、各プロセッサの動作開始時に、共有メモリに対して他のプロセッサからのアクセスを禁止するアクセス不可領域を設定しておき、他のプロセッサからアクセス不可領域へのアクセス要求が伝えられた場合には、そのアクセス要求の実行を停止する共有メモリのアクセス方法について記載されている。この特許文献1に記載されたアクセス方法を適用することによって、共有メモリに接続されるプロセッサが増設されたり、変更された場合であっても、アクセスが許可されていない記憶領域のデータを誤って上書きしてしまうなどといった不具合を回避することができる。
特開平08−16529号公報
In many cases, the shared memory is provided with a storage area that can be accessed from any processor and a storage area that is permitted to be accessed only by a specific processor. In this regard, Patent Document 1 sets an inaccessible area that prohibits access from another processor to the shared memory at the start of the operation of each processor, and accesses the inaccessible area from the other processor. It describes a shared memory access method for stopping execution of an access request when a request is transmitted. By applying the access method described in Patent Document 1, even if the number of processors connected to the shared memory is increased or changed, data in a storage area that is not permitted to be accessed is erroneously stored. Problems such as overwriting can be avoided.
Japanese Patent Laid-Open No. 08-16529

ところで、近年では、プロセッサの性能向上に伴って、並列プロセッサシステム全体の処理速度も向上してきている。一方で、複数のプロセッサ102_1,102_2,…,102_nそれぞれから送信されるリクエストパケット103が集中してしまった場合などには、アービトレーション回路106によるリクエストパケット103の調停処理が追いつかなくなり、送受信部104_1,104_2,…,104_nで次々に受信されるリクエストパケット103が入力バッファ105_1,105_2,…,105_nに蓄積しきれずに溢れてしまうことがある。この場合、各プロセッサ102_1,102_2,…,102_nに向けてリクエストパケット103の停止要求(Back Pressure信号116)が発せられて、各プロセッサ102_1,102_2,…,102_nの処理が抑制されることとなり、システム全体の処理速度が低下してしまう。さらに、バースト的なトラフィックが継続すると、入力バッファ105_1,105_2,…,105_nやアクセスバッファ107_1,107_2,…,107_nで溢れてしまったリクエストパケット103が処理しきれずに破棄されてしまうこともあり、並列プロセッサシステムの信頼性が低下してしまうという問題もある。   By the way, in recent years, the processing speed of the entire parallel processor system has been improved with the improvement of the performance of the processor. On the other hand, when the request packets 103 transmitted from each of the plurality of processors 102_1, 102_2,..., 102_n are concentrated, the arbitration processing of the request packet 103 by the arbitration circuit 106 cannot catch up, and the transmission / reception units 104_1, 104_1 The request packets 103 successively received by 104_2,..., 104_n may not be stored in the input buffers 105_1, 105_2,. In this case, a stop request (Back Pressure signal 116) of the request packet 103 is issued toward each processor 102_1, 102_2,..., 102_n, and the processing of each processor 102_1, 102_2,. The processing speed of the entire system is reduced. Further, if the bursty traffic continues, the request packet 103 overflowing in the input buffers 105_1, 105_2,..., 105_n and the access buffers 107_1, 107_2, ..., 107_n may not be processed and discarded. There is also a problem that the reliability of the parallel processor system is lowered.

本発明は、上記事情に鑑み、プロセッサの処理抑制やリクエストパケットの破棄を回避し、効率よく、かつ確実に処理を実行することができるメモリアクセス制御装置およびメモリアクセス制御方法を提供することを目的とする。   In view of the above circumstances, an object of the present invention is to provide a memory access control device and a memory access control method that can efficiently and reliably execute processing while avoiding processor processing suppression and request packet discarding. And

上記目的を達成する本発明のメモリアクセス制御装置は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
複数のプロセッサそれぞれから発せられた、共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部と、
アクセスバッファを検索して、アクセスバッファ内に、入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
検索部により、アクセスバッファ内に、入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、アクセスバッファ内の同一アドレスのライト要求リクエストパケットにより共有メモリに書き込まれるデータをアクセスバッファから取り出して、複数のプロセッサのうちの、同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とする。
The memory access control device of the present invention that achieves the above object is a memory access control device that controls access to a shared memory shared by a plurality of processors.
A plurality of input buffers for storing, for each of the plurality of processors, a request packet including a distinction between a write request and a read request and a shared memory address, which is issued from each of the plurality of processors and requests access to the shared memory. When,
An access buffer that stores request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
A search unit that searches the access buffer and detects whether a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer;
When the search unit detects that a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer, the search unit uses the write request request packet having the same address in the access buffer. The data to be written to the shared memory is taken out from the access buffer, sent to the processor that issued the read request request packet with the same address among the plurality of processors, and the preceding processing unit that cancels the read request request packet with the same address; It is characterized by having.

このメモリアクセス制御装置によると、アクセスバッファ内に、入力バッファに蓄積されたリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在する場合には、ライト要求リクエストパケットによって共有メモリに書き込まれるデータがリード要求リクエストパケットの実行結果としてプロセッサに送られるとともに、入力バッファ中のリード要求リクエストパケットがキャンセルされる。このため、アクセスバッファに蓄積されたライト要求リクエストパケットによって共有メモリにデータが書き込まれた後で、さらに、調停部によって入力バッファに蓄積されたリード要求リクエストパケットが選択されてアクセスバッファに格納され、先のライト要求リクエストパケットによって書き込まれた同じデータが共有メモリから読み出される一連の処理を省くことができ、処理速度および処理効率を向上させることができる。また、処理効率や処理速度の向上によって、入力バッファやアクセスバッファに蓄積されるリクエストパケットが減少するため、リクエストパケットが溢れてしまって処理しきれないリクエストパケットが破棄されてしまう不具合を回避することができ、装置全体の信頼性も向上させることができる。   According to this memory access control device, when a write request request packet having the same address as the read request request packet stored in the input buffer exists in the access buffer, the data written to the shared memory by the write request request packet is The read request request packet is sent to the processor as an execution result, and the read request request packet in the input buffer is canceled. For this reason, after the data is written to the shared memory by the write request request packet accumulated in the access buffer, the read request request packet accumulated in the input buffer is further selected by the arbitration unit and stored in the access buffer. A series of processes in which the same data written by the previous write request request packet is read from the shared memory can be omitted, and the processing speed and the processing efficiency can be improved. In addition, request packets that accumulate in the input buffer and access buffer decrease due to improvements in processing efficiency and processing speed, so that the request packets overflow and request packets that cannot be processed are discarded. And the reliability of the entire apparatus can be improved.

また、上記目的を達成する本発明のメモリアクセス制御装置は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
複数のプロセッサそれぞれから発せられた、共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファからアクセスバッファに移動させる調停部と、
アクセスバッファを検索して、アクセスバッファ内に、入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
検索部により、アクセスバッファ内に、入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、アクセスバッファ内の同一アドレスのライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とする。
A memory access control device of the present invention that achieves the above object is a memory access control device that controls access to a shared memory shared by a plurality of processors.
A plurality of input buffers for storing, for each of the plurality of processors, a request packet including a distinction between a write request and a read request and a shared memory address, which is issued from each of the plurality of processors and requests access to the shared memory. When,
An access buffer that stores request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
A search unit that searches the access buffer and detects whether a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer;
When the search unit detects that a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer, a write request request packet having the same address in the access buffer is detected. And a preceding processing unit to cancel.

このメモリアクセス制御装置によると、アクセスバッファ内に、入力バッファに蓄積されたライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在する場合には、アクセスバッファ内のライト要求リクエストパケットがキャンセルされる。同一のアドレスにデータを書き込む複数のライト要求リクエストパケットが検出された場合には、先のライト要求リクエストパケットがキャンセルされて後のライト要求リクエストパケットのみが実行されることによって、無駄な処理を省いて処理速度を高速化することができる。   According to the memory access control device, when a write request request packet having the same address as the write request request packet stored in the input buffer exists in the access buffer, the write request request packet in the access buffer is canceled. . If multiple write request request packets that write data to the same address are detected, the previous write request request packet is canceled and only the subsequent write request request packet is executed, thereby saving unnecessary processing. The processing speed can be increased.

また、上記目的を達成する本発明のメモリアクセス制御装置は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
複数のプロセッサそれぞれから発せられた、共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部と、
複数の入力バッファに跨って入力バッファに蓄積されているリクエストパケットを検索して、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、調停部によってリード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
検索部により、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、調停部によってリード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、同一アドレスのライト要求リクエストパケットにより共有メモリに書き込まれるデータを入力バッファから取り出して、複数のプロセッサのうちの、同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とする。
A memory access control device of the present invention that achieves the above object is a memory access control device that controls access to a shared memory shared by a plurality of processors.
A plurality of input buffers for storing, for each of the plurality of processors, a request packet including a distinction between a write request and a read request and a shared memory address, which is issued from each of the plurality of processors and requests access to the shared memory. When,
An access buffer that stores request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
Search for request packets stored in the input buffer across multiple input buffers, and use the same address as the read request request packet stored in one of the multiple input buffers. A search unit for detecting whether there is a write request request packet selected prior to the read request request packet by the unit;
A write request request packet that is selected by the search unit prior to the read request request packet and having the same address as the read request request packet stored in one of the plurality of input buffers. Is detected from among the plurality of processors, and the read request request packet with the same address is issued from among the plurality of processors. And a preceding processing unit for canceling the read request request packet with the same address.

このメモリアクセス制御装置によると、複数の入力バッファに跨って、同一のアドレスであり、リード要求リクエストパケットの前に選択されるライト要求リクエストパケットが検索され、そのライト要求リクエストパケットによって共有メモリに書き込まれるデータがリード要求リクエストパケットの実行結果としてプロセッサに送られるとともに、リード要求リクエストパケットがキャンセルされる。このように、複数の入力バッファ間で、共有メモリへのアクセスを省略可能なリード要求リクエストパケットがキャンセルされるため、調停部における処理の負荷を軽減し、システム全体の処理性能を向上させることができる。   According to this memory access control device, a write request request packet having the same address across a plurality of input buffers and selected before a read request request packet is searched, and written to the shared memory by the write request request packet Data is sent to the processor as the execution result of the read request request packet, and the read request request packet is canceled. As described above, since a read request request packet that can omit access to the shared memory is canceled among a plurality of input buffers, the processing load in the arbitration unit can be reduced and the processing performance of the entire system can be improved. it can.

また、上記目的を達成する本発明のメモリアクセス制御装置は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
複数のプロセッサそれぞれから発せられた、共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部と、
複数の入力バッファに跨って入力バッファに蓄積されているリクエストパケットを検索して、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、調停部によってライト要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
検索部により、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、調停部によってそのライト要求リクエストパケットよりも先に選択される第2のライト要求リクエストパケットが存在することが検出された場合に、第2のライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とする。
A memory access control device of the present invention that achieves the above object is a memory access control device that controls access to a shared memory shared by a plurality of processors.
A plurality of input buffers for storing, for each of the plurality of processors, a request packet including a distinction between a write request and a read request and a shared memory address, which is issued from each of the plurality of processors and requests access to the shared memory. When,
An access buffer that stores request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
Search for request packets stored in the input buffer across multiple input buffers, and use the same address as the write request request packet stored in one of the multiple input buffers. A search unit for detecting whether there is a write request request packet selected prior to the write request request packet by the unit;
A second address that is selected by the search unit before the write request request packet by the arbitrating unit and has the same address as the write request request packet stored in any one of the plurality of input buffers. And a preceding processing unit that cancels the second write request request packet when it is detected that a write request request packet exists.

このメモリアクセス制御装置によると、複数の入力バッファに跨って、同一のアドレスに対する複数のライト要求リクエストパケットが検索された場合に、それらのライト要求リクエストパケットのうち先に選択される第2のライト要求リクエストパケットがキャンセルされるため、無駄な処理を確実に省くことができる。   According to this memory access control device, when a plurality of write request request packets for the same address are searched across a plurality of input buffers, the second write selected first among those write request request packets. Since the request request packet is canceled, useless processing can be surely omitted.

また、上記目的を達成する本発明のメモリアクセス制御方法は、複数のプロセッサそれぞれから発せられた、複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
アクセスバッファを検索して、アクセスバッファ内に、入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
検索ステップにより、アクセスバッファ内に、入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、アクセスバッファ内の同一アドレスのライト要求リクエストパケットにより共有メモリに書き込まれるデータをアクセスバッファから取り出して、複数のプロセッサのうちの、同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とする。
In addition, the memory access control method of the present invention that achieves the above object is characterized in that a write request and a read request are issued separately from a write request and a read request that are issued from each of a plurality of processors and are shared by a plurality of processors. A plurality of input buffers for storing a request packet including a shared memory address for each of the plurality of processors;
An access buffer that stores request packets in the order of access to the shared memory;
A memory access control method in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in an input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer; Because
A search step of searching the access buffer and detecting whether or not a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer;
When the search step detects that a write request request packet with the same address as the read request request packet existing in the input buffer exists in the access buffer, the write request request packet with the same address in the access buffer Data to be written to the shared memory is extracted from the access buffer, sent to the processor that issued the read request request packet with the same address, and the execution processing step for canceling the read request request packet with the same address. It is characterized by having.

このメモリアクセス制御方法によると、アクセスバッファに蓄積されたライト要求リクエストパケットを使って、入力バッファ内のリード要求リクエストパケットの実行結果が予め確認され、入力バッファ内のリード要求リクエストパケットがキャンセルされるため、システム全体の処理効率を向上させることができる。   According to this memory access control method, the execution result of the read request request packet in the input buffer is confirmed in advance using the write request request packet stored in the access buffer, and the read request request packet in the input buffer is canceled. Therefore, the processing efficiency of the entire system can be improved.

また、上記目的を達成する本発明のメモリアクセス制御方法は、複数のプロセッサそれぞれから発せられた、複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
アクセスバッファを検索して、アクセスバッファ内に、入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
検索ステップにより、アクセスバッファ内に、入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、アクセスバッファ内の同一アドレスのライト要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とする。
In addition, the memory access control method of the present invention that achieves the above-described object provides a method for requesting access to a shared memory that is shared by a plurality of processors and that is issued from each of a plurality of processors, and separates and shares a write request and a read request. A plurality of input buffers for storing a request packet including a memory address for each of the plurality of processors;
An access buffer that stores request packets in the order of access to the shared memory;
A memory access control method in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in an input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer; Because
A search step of searching the access buffer and detecting whether or not a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer;
If the search step detects that there is a write request request packet having the same address as the write request request packet existing in the input buffer in the access buffer, the write request request packet having the same address in the access buffer is And an execution processing step for canceling.

このメモリアクセス制御方法によると、アクセスバッファと入力バッファの双方に同一アドレスのライト要求リクエストパケットが存在する場合には、先に選択されたアクセスバッファ内のライト要求リクエストパケットがキャンセルされるため、先行処理部における処理の負荷を軽減することができる。   According to this memory access control method, when a write request request packet with the same address exists in both the access buffer and the input buffer, the write request request packet in the previously selected access buffer is canceled. The processing load in the processing unit can be reduced.

また、上記目的を達成する本発明のメモリアクセス制御方法は、複数のプロセッサそれぞれから発せられた、複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
複数の入力バッファに跨って入力バッファに蓄積されているリクエストパケットを検索して、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、調停部によってリード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
検出ステップにより、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、調停部によってリード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、同一アドレスのライト要求リクエストパケットにより共有メモリに書き込まれるデータを入力バッファから取り出して、複数のプロセッサのうちの、同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とする。
In addition, the memory access control method of the present invention that achieves the above-described object provides a method for requesting access to a shared memory that is shared by a plurality of processors and that is issued from each of a plurality of processors, and separates and shares a write request and a read request. A plurality of input buffers for storing a request packet including a memory address for each of the plurality of processors;
An access buffer that stores request packets in the order of access to the shared memory;
A memory access control method in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in an input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer; Because
Search for request packets stored in the input buffer across multiple input buffers, and use the same address as the read request request packet stored in one of the multiple input buffers. A search step for detecting whether or not there is a write request request packet selected prior to the read request request packet by the unit;
A write request request packet having the same address as the read request request packet stored in any one of the plurality of input buffers by the detection step, and selected before the read request request packet by the arbitration unit Is detected from among the plurality of processors, and the read request request packet with the same address is issued from among the plurality of processors. And an execution processing step for canceling a read request request packet with the same address.

このメモリアクセス制御方法によると、複数の入力バッファに跨って省略可能なリード要求リクエストパケットが検索され、検索されたリード要求リクエストパケットがキャンセルされるため、調停部による処理の負荷を軽減することができ、システム全体の処理速度を高速化することができる。   According to this memory access control method, an omissible read request request packet is searched across a plurality of input buffers, and the retrieved read request request packet is canceled, so that the processing load by the arbitration unit can be reduced. The processing speed of the entire system can be increased.

また、上記目的を達成する本発明のメモリアクセス制御方法は、複数のプロセッサそれぞれから発せられた、複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
複数の入力バッファに跨って入力バッファに蓄積されているリクエストパケットを検索して、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、調停部によってライト要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
検出ステップにより、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、調停部によってそのライト要求リクエストパケットよりも先に選択される第2のライト要求リクエストパケットが存在することが検出された場合に、第2のライト要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とする。
In addition, the memory access control method of the present invention that achieves the above-described object provides a method for requesting access to a shared memory that is shared by a plurality of processors and that is issued from each of a plurality of processors, and separates and shares a write request and a read request. A plurality of input buffers for storing a request packet including a memory address for each of the plurality of processors;
An access buffer that stores request packets in the order of access to the shared memory;
A memory access control method in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in an input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer; Because
Search for request packets stored in the input buffer across multiple input buffers, and use the same address as the write request request packet stored in one of the multiple input buffers. A search step for detecting whether or not there is a write request request packet selected before the write request request packet by the unit;
The detection step has a second address that is the same address as the write request request packet stored in any one of the plurality of input buffers and is selected by the arbitrating unit prior to the write request request packet. An execution processing step for canceling the second write request request packet when it is detected that the write request request packet exists.

このメモリアクセス制御方法によると、複数の入力バッファに跨って省略可能なライト要求リクエストパケットが存在するか否かが検索されて、第2のライト要求リクエストパケットがキャンセルされるため、システム全体の処理効率を向上させることができる。   According to this memory access control method, it is searched whether there is an omissible write request request packet across a plurality of input buffers, and the second write request request packet is canceled. Efficiency can be improved.

本発明によれば、プロセッサの処理抑制やリクエストパケットの破棄を回避し、効率よく、かつ確実に処理を実行することができる。   According to the present invention, it is possible to efficiently and reliably execute processing by avoiding processor processing suppression and request packet discarding.

以下、図面を参照して本発明の実施の形態を説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図2は、本発明の一実施形態が適用された並列プロセッサシステムの概略構成図である。   FIG. 2 is a schematic configuration diagram of a parallel processor system to which an embodiment of the present invention is applied.

図2に示す並列プロセッサシステム200は、1つの共有メモリに複数のプロセッサそれぞれが個別のバスで接続された1対n型の接続構成を有する並列プロセッサシステムである。この並列プロセッサシステム200は、共有メモリ装置201と、複数のプロセッサ202_0,202_1,…,202_nとで構成されており、共有メモリ装置201には、複数のプロセッサ202_0,202_1,…,202_nそれぞれに対応する複数の送受信部204_0,204_1,…,204_n、複数の入力バッファ205_0,205_1,…,205_n、および複数の入力レジスタ206_0,206_1,…,206_nと、複数のプロセッサ202_0,202_1,…,202_n間で共有されるアービトレーション部221、バッファ検索制御部230、アクセスバッファ222、アクセスレジスタ223、キャッシュメモリ224、および共有メモリ240が備えられている。   A parallel processor system 200 shown in FIG. 2 is a parallel processor system having a one-to-n connection structure in which a plurality of processors are connected to one shared memory by individual buses. The parallel processor system 200 includes a shared memory device 201 and a plurality of processors 202_0, 202_1,..., 202_n. The shared memory device 201 corresponds to each of the plurality of processors 202_0, 202_1,. 204_n, a plurality of input buffers 205_0, 205_1, ..., 205_n, and a plurality of input registers 206_0, 206_1, ..., 206_n and a plurality of processors 202_0, 202_1, ..., 202_n. An arbitration unit 221, a buffer search control unit 230, an access buffer 222, an access register 223, a cache memory 224, and a shared memory 240.

プロセッサ202_0,202_1,…,202_nは、共有メモリ240にデータを書き込むライト要求や、共有メモリ240に記憶されたデータを読み取るリード要求を含むリクエストパケット300(図3参照)を共有メモリ装置201に向けて送信する。   The processors 202_0, 202_1,..., 202_n direct the request packet 300 (see FIG. 3) including a write request to write data to the shared memory 240 and a read request to read data stored in the shared memory 240 to the shared memory device 201. To send.

図3は、リクエストパケットの概念的な構成図である。   FIG. 3 is a conceptual configuration diagram of a request packet.

リクエストパケット300は、初期値として「0(共有メモリ240へのアクセス待ち)」が設定され、リード要求やライト要求がキャンセルされた場合に「1(R/W要求キャンセル)」が設定されるキャンセルフラグ301と、このリクエストパケット300を送信したプロセッサ202_0,202_1,…,202_nの識別番号であるCPUID302と、リード要求(R)とライト要求(W)のうちのいずれかを示すR/W情報303と、共有メモリ240の記憶領域を示すアドレス304と、ライト要求によって書き込まれる書込データやリード要求によって読み取られた読取データが設定されるデータ305とで構成されている。リクエストパケット300は、本発明にいうリクエストパケットの一例に相当する。尚、図2では、リクエストパケット300内に示された数字のうちの前の数字が各プロセッサ202_0,202_1,…,202_nを表しており、後の数字が各プロセッサ202_0,202_1,…,202_nから送信されたリクエストパケットの通し番号を表している。   In the request packet 300, “0 (waiting for access to the shared memory 240)” is set as an initial value, and “1 (R / W request cancellation)” is set when a read request or a write request is canceled. The flag 301, the CPU ID 302 that is the identification number of the processor 202_0, 202_1,..., 202_n that has transmitted the request packet 300, and the R / W information 303 indicating one of the read request (R) and the write request (W). And an address 304 indicating a storage area of the shared memory 240 and data 305 in which write data written by a write request and read data read by a read request are set. The request packet 300 corresponds to an example of a request packet according to the present invention. In FIG. 2, the numbers before the numbers shown in the request packet 300 represent the processors 202_0, 202_1,..., 202_n, and the numbers after the processors 202_0, 202_1,. Indicates the serial number of the transmitted request packet.

プロセッサ202_0,202_1,…,202_nから送信されたリクエストパケット300は、共有メモリ装置201内の送受信部204_0,204_1,…,204_nで受信される。   The request packet 300 transmitted from the processors 202_0, 202_1,..., 202_n is received by the transmission / reception units 204_0, 204_1,.

送受信部204_0,204_1,…,204_nで受信されたリクエストパケット300は、入力バッファ205_0,205_1,…,205_nに一旦蓄積される。入力バッファ205_0,205_1,…,205_nに蓄積されたリクエストパケット300は、入力レジスタ206_0,206_1,…,206_n、およびバッファ検索制御部230に伝えられる。入力バッファ205_0,205_1,…,205_nは、本発明にいう入力バッファの一例に相当する。   The request packet 300 received by the transmission / reception units 204_0, 204_1,..., 204_n is temporarily stored in the input buffers 205_0, 205_1,. The request packets 300 accumulated in the input buffers 205_0, 205_1,..., 205_n are transmitted to the input registers 206_0, 206_1,. The input buffers 205_0, 205_1,..., 205_n correspond to an example of the input buffer referred to in the present invention.

バッファ検索制御部230には、検索要求部401と、結果判定部501と、アドレス比較部234とが備えられており、アドレス比較部234は、アクセスバッファ222を構成する複数の蓄積バッファ222_0,222_1,…,222_XXそれぞれに対応する複数の比較部601_0,601_1,…,601_XXで構成されている。   The buffer search control unit 230 includes a search request unit 401, a result determination unit 501, and an address comparison unit 234. The address comparison unit 234 includes a plurality of storage buffers 222_0 and 222_1 that constitute the access buffer 222. ,..., 222_XX, each of which includes a plurality of comparison units 601_0, 601_1,.

検索要求部401は、入力バッファ205_0,205_1,…,205_nから取得した複数のリクエストパケット300をアドレス比較部234に伝える。   The search request unit 401 transmits a plurality of request packets 300 acquired from the input buffers 205_0, 205_1,..., 205_n to the address comparison unit 234.

アドレス比較部234は、アクセスバッファ222を構成する複数の蓄積バッファ222_0,222_1,…,222_XX内に蓄積されたリクエストパケット300と、入力バッファ205_0,205_1,…,205_n内に蓄積されたリクエストパケット300とのうち、共有メモリ240へのアクセスを省略可能なリクエストパケット300を検索する。検索結果は、結果判定部501に伝えられる。   The address comparison unit 234 includes request packets 300 stored in a plurality of storage buffers 222_0, 222_1,..., 222_XX that constitute the access buffer 222, and request packets 300 stored in input buffers 205_0, 205_1,. The request packet 300 that can omit the access to the shared memory 240 is searched. The search result is transmitted to the result determination unit 501.

結果判定部501は、アドレス比較部234で検索されたリクエストパケット300のキャンセルフラグ301に「1(R/W要求キャンセル)」を設定し、入力バッファ205_0,205_1,…,205_nから取得されたリクエストパケット300を入力レジスタ206_0,206_1,…,206_nに送るとともに、アクセスバッファ222から伝えられたリクエストパケット300を、アクセスバッファ222に送る。   The result determination unit 501 sets “1 (cancel R / W request)” to the cancellation flag 301 of the request packet 300 searched by the address comparison unit 234, and requests acquired from the input buffers 205_0, 205_1,. The packet 300 is sent to the input registers 206_0, 206_1,..., 206_n, and the request packet 300 transmitted from the access buffer 222 is sent to the access buffer 222.

バッファ検索制御部230は、本発明にいう先行処理部の一例に相当する。尚、バッファ検索制御部230における処理については、後で詳しく説明する。   The buffer search control unit 230 corresponds to an example of a preceding processing unit according to the present invention. The processing in the buffer search control unit 230 will be described in detail later.

入力レジスタ206_0,206_1,…,206_nは、図3に示すキャンセルフラグ301に「1(R/W要求キャンセル)」が設定されたリクエストパケット300を対応するプロセッサ202_0,202_1,…,202_nに向けて返信するとともに、そのリクエストパケット300をキャンセルする。   The input registers 206_0, 206_1,..., 206_n direct the request packet 300 in which “1 (R / W request cancel)” is set in the cancel flag 301 illustrated in FIG. 3 to the corresponding processors 202_0, 202_1,. While replying, the request packet 300 is canceled.

アービトレーション部221は、複数の入力レジスタ206_0,206_1,…,206_n内に格納されたリクエストパケット300を、予め決められている選択規則に従って順に選択してアクセスバッファ222に格納する。本実施形態では、選択規則として、複数の入力レジスタ206_0,206_1,…,206_nに格納されたリクエストパケット300が図の左側から順に1つずつ選択されていくラウンドロビン方式が適用される。アービトレーション部221は、本発明にいう調停部の一例に相当する。   The arbitration unit 221 sequentially selects the request packets 300 stored in the plurality of input registers 206_0, 206_1,..., 206_n according to a predetermined selection rule and stores them in the access buffer 222. In the present embodiment, a round robin method in which request packets 300 stored in a plurality of input registers 206_0, 206_1,..., 206_n are selected one by one in order from the left side of the drawing is applied as a selection rule. The arbitration unit 221 corresponds to an example of an arbitration unit referred to in the present invention.

アクセスバッファ222は、複数の蓄積バッファ222_1,222_2,…,222_XXで構成されており、アービトレーション部221で選択されたリクエストパケット300が順次に格納される。アクセスバッファ222に格納されたリクエストパケット300は、先に格納されたものから先に取り出されてアクセスレジスタ223に送り出される。アクセスバッファ222は、本発明にいうアクセスバッファの一例に相当する。   The access buffer 222 includes a plurality of accumulation buffers 222_1, 222_2,..., 222_XX, and the request packets 300 selected by the arbitration unit 221 are sequentially stored. The request packet 300 stored in the access buffer 222 is first extracted from the previously stored packet and sent to the access register 223. The access buffer 222 corresponds to an example of the access buffer according to the present invention.

アクセスレジスタ223は、格納されているリクエストパケット300のキャンセルフラグ301に「1(R/W要求キャンセル)」が設定されている場合、そのリクエストパケット300をキャンセルする。また、リクエストパケット300のキャンセルフラグ301が「0(共有メモリ240へのアクセス待ち)」である場合には、そのリクエストパケット300を実行することにより、共有メモリ240へのアクセスを行う。すなわち、リクエストパケット300中の、図3に示すR/W情報303がライト要求「W」である場合、共有メモリ240の、リクエストパケット300に含まれるアドレス304に、データ部305に設定された書込データが書き込まれる。また、リクエストパケット300中の、図3に示すR/W情報303がリード要求「R」である場合、共有メモリ240よりも先に、キャッシュメモリ224にアクセスされる。キャッシュメモリ224に、共有メモリ240の、リクエストパケット300に含まれるアドレス304のデータが記憶されている場合には、キャッシュメモリ224に記憶されたデータが読み出され、キャッシュメモリ224に対象データが記憶されていない場合には、共有メモリ240の、リクエストパケット300に含まれるアドレス304のデータが読み出される。読み出されたデータは、リクエストパケット300中のデータ部305に設定され、読取データが設定されたリクエストパケット300は、CPUID302が示すプロセッサ202_0,202_1,…,202_nに向けて送られる。   The access register 223 cancels the request packet 300 when “1 (R / W request cancellation)” is set in the cancel flag 301 of the stored request packet 300. If the cancel flag 301 of the request packet 300 is “0 (waiting for access to the shared memory 240)”, the request packet 300 is executed to access the shared memory 240. That is, when the R / W information 303 shown in FIG. 3 in the request packet 300 is a write request “W”, the document set in the data unit 305 at the address 304 included in the request packet 300 in the shared memory 240. Embedded data is written. When the R / W information 303 shown in FIG. 3 in the request packet 300 is a read request “R”, the cache memory 224 is accessed before the shared memory 240. When the cache memory 224 stores the data of the address 304 included in the request packet 300 of the shared memory 240, the data stored in the cache memory 224 is read and the target data is stored in the cache memory 224. If not, the data of the address 304 included in the request packet 300 in the shared memory 240 is read. The read data is set in the data part 305 in the request packet 300, and the request packet 300 in which the read data is set is sent to the processors 202_0, 202_1,.

基本的には、以上のようにして共有メモリ240へのアクセスが実行される。   Basically, access to the shared memory 240 is executed as described above.

ここで、本実施形態では、バッファ検索制御部230が、共有メモリ240へのアクセスを省略可能なリクエストパケット300のキャンセルフラグ301に「1(R/W要求キャンセル)」を設定することにより、そのリクエストパケット300がキャンセルされる。   Here, in the present embodiment, the buffer search control unit 230 sets “1 (R / W request cancel)” to the cancel flag 301 of the request packet 300 that can omit access to the shared memory 240, The request packet 300 is cancelled.

図4は、検索要求部401の機能ブロック図であり、図5は、結果判定部501の機能ブロック図であり、図6は、比較部601_0,601_1,…,601_XXの機能ブロック図である。   4 is a functional block diagram of the search request unit 401, FIG. 5 is a functional block diagram of the result determination unit 501, and FIG. 6 is a functional block diagram of the comparison units 601_0, 601_1,..., 601_XX.

また、図7は、リクエストパケット300をキャンセルする一連の処理の流れを示すフローチャート図である。   FIG. 7 is a flowchart showing a flow of a series of processes for canceling the request packet 300.

以下では、図7のフローチャート図に従い、図4、図5、および図6も使ってバッファ検索制御部230の構成要素について説明することにより、リクエストパケット300をキャンセルする一連の処理について説明する。   In the following, a series of processing for canceling the request packet 300 will be described by explaining the constituent elements of the buffer search control unit 230 using FIG. 4, FIG. 5, and FIG. 6 according to the flowchart of FIG.

図4に示すように、バッファ検索制御部230の検索要求部401は、検索要求セレクタ402と、アドレス抽出部403と、検索アービトレーション部404としての機能を有している。   As illustrated in FIG. 4, the search request unit 401 of the buffer search control unit 230 has functions as a search request selector 402, an address extraction unit 403, and a search arbitration unit 404.

検索アービトレーション部404では、図2に示すアービトレーション部221から、入力バッファ205_0,205_1,…,205_nからリクエストパケット300を選択する選択規則を示すアービトレーション信号231が取得される(図7のステップS11)。取得されたアービトレーション信号231は、検索要求セレクタ402に伝えられるとともに、検索アービトレーション信号232として結果判定部501にも伝えられる。   The search arbitration unit 404 obtains an arbitration signal 231 indicating a selection rule for selecting the request packet 300 from the input buffers 205_0, 205_1,..., 205_n from the arbitration unit 221 shown in FIG. 2 (step S11 in FIG. 7). The acquired arbitration signal 231 is transmitted to the search request selector 402 and also transmitted to the result determination unit 501 as a search arbitration signal 232.

検索要求セレクタ402では、アービトレーション部221に先立って、入力バッファ205_0,205_1,…,205_nから、アービトレーション信号231が示す選択規則に従った順番で1つずつリクエストパケット300が取り出される(図7のステップS12)。選択されたリクエストパケット300は、アドレス抽出部403に伝えられる。   Prior to the arbitration unit 221, the search request selector 402 extracts request packets 300 one by one from the input buffers 205_0, 205_1,..., 205_n in the order according to the selection rule indicated by the arbitration signal 231 (step in FIG. 7). S12). The selected request packet 300 is transmitted to the address extraction unit 403.

アドレス抽出部403では、検索要求セレクタ402から伝えられたリクエストパケット300中の、R/W情報303とアドレス304とが抽出される。抽出後リクエストパケット300_1は、図2に示すアドレス比較部234に伝えられる。   The address extraction unit 403 extracts the R / W information 303 and the address 304 in the request packet 300 transmitted from the search request selector 402. The post-extraction request packet 300_1 is transmitted to the address comparison unit 234 shown in FIG.

図6に示すように、アドレス比較部234を構成する各比較部601_0,601_1,…,601_XXには、アドレス比較・R/W確認部602と、キャンセルフラグ付加部603としての機能が搭載されている。   As shown in FIG. 6, each of the comparison units 601_0, 601_1,..., 601_XX constituting the address comparison unit 234 has functions as an address comparison / R / W confirmation unit 602 and a cancel flag addition unit 603. Yes.

アドレス比較・R/W確認部602では、図4に示す検索要求部401のアドレス抽出部403から1つずつ順次に抽出後リクエストパケット300_1が伝えられるとともに、アクセスバッファ222中の、各比較部601_0,601_1,…,601_XXに対応する蓄積バッファ222_0,222_1,…,222_XXからリクエストパケット300が伝えられる(図7のステップS13)。   In the address comparison / R / W confirmation unit 602, the extracted request packets 300_1 are sequentially transmitted from the address extraction unit 403 of the search request unit 401 shown in FIG. 4 one by one, and each comparison unit 601_0 in the access buffer 222 is transmitted. , 601_1,..., 601_XX, the request packet 300 is transmitted from the accumulation buffers 222_0, 222_1,..., 222_XX (step S13 in FIG. 7).

さらに、アドレス比較・R/W確認部602では、アクセスバッファ222から取得されたリクエストパケット300と、アドレス抽出部403から伝えられた抽出後リクエストパケット300_1それぞれのアドレス304が同一であるか否かが判定される(図7のステップS14)。   Further, the address comparison / R / W confirmation unit 602 determines whether the address 304 of the request packet 300 acquired from the access buffer 222 is the same as the address 304 of the extracted request packet 300_1 transmitted from the address extraction unit 403. Determination is made (step S14 in FIG. 7).

リクエストパケット300と抽出後リクエストパケット300_1のアドレス304が一致しない場合は(図7のステップS14:不一致)、検索要求部401のアドレス抽出部403から次の抽出後リクエストパケット300_1が取得されるとともに、アクセスバッファ222から改めてリクエストパケット300が取得され(図7のステップS13)、新たな抽出後リクエストパケット300_1と新たなリクエストパケット300それぞれのアドレス304が比較される(図7のステップS14)。   When the address 304 of the request packet 300 and the extracted request packet 300_1 do not match (step S14 in FIG. 7: mismatch), the next extracted request packet 300_1 is acquired from the address extracting unit 403 of the search request unit 401, The request packet 300 is obtained again from the access buffer 222 (step S13 in FIG. 7), and the new post-extraction request packet 300_1 and the address 304 of each new request packet 300 are compared (step S14 in FIG. 7).

リクエストパケット300と抽出後リクエストパケット300_1のアドレス304が一致した場合は(図7のステップS14:一致)、リクエストパケット300中のR/W情報303が確認される(図7のステップS13)。   When the address 304 of the request packet 300 and the extracted request packet 300_1 match (step S14 in FIG. 7: match), the R / W information 303 in the request packet 300 is confirmed (step S13 in FIG. 7).

アクセスバッファ222から取得したリクエストパケット300中のR/W情報303が「R(リード要求)」である場合には(図7のステップS15:Read)、再び、新たな抽出後リクエストパケット300_1と新たな複数のリクエストパケット300が取得されて(図7のステップS13)、アドレス304の比較(図7のステップS14)、およびR/W情報303の確認(図7のステップS15)が実行される。   When the R / W information 303 in the request packet 300 acquired from the access buffer 222 is “R (read request)” (step S15: Read in FIG. 7), a new post-extraction request packet 300_1 and a new A plurality of request packets 300 are acquired (step S13 in FIG. 7), the address 304 is compared (step S14 in FIG. 7), and the R / W information 303 is confirmed (step S15 in FIG. 7).

また、アクセスバッファ222から取得したリクエストパケット300中のR/W情報303が「W(ライト要求)」であり(図7のステップS15:Write)、さらに抽出後リクエストパケット300_1中のR/W情報303が「R(リード要求)」である場合には(図7のステップS16:Read)、抽出後リクエストパケット300_1の元となった入力バッファ205_0,205_1,…,205_n中のリード要求リクエストパケット300による共有メモリ240へのアクセスが省略される。すなわち、ライト要求リクエストパケットによってデータが書き込まれた後で、同じアドレスのデータを読み取ることとなるリード要求リクエストパケットがキャンセルされる。   Further, the R / W information 303 in the request packet 300 acquired from the access buffer 222 is “W (write request)” (step S15: Write in FIG. 7), and the R / W information in the post-extraction request packet 300_1. If 303 is “R (read request)” (step S16 in FIG. 7: Read), the read request request packet 300 in the input buffers 205_0, 205_1,... Access to the shared memory 240 is omitted. That is, after the data is written by the write request request packet, the read request request packet that reads the data at the same address is canceled.

まず、図6に示すアドレス比較・R/W確認部602では、アクセスバッファ222から伝えられたライト要求リクエストパケット300中のデータ部305に設定された書込データが取得され、抽出後リクエストパケット300_1に書込データを付加した応答リクエストパケット300_2が生成される。生成された応答リクエストパケット300_2は、図5に示す結果判定部501に伝えられる(図7のステップS17)。   First, in the address comparison / R / W confirmation unit 602 shown in FIG. 6, the write data set in the data unit 305 in the write request request packet 300 transmitted from the access buffer 222 is acquired, and the extracted request packet 300_1 is extracted. A response request packet 300_2 with write data added to is generated. The generated response request packet 300_2 is transmitted to the result determination unit 501 shown in FIG. 5 (step S17 in FIG. 7).

図5に示すように、結果判定部501は、最新データ選択部502と、キャンセルフラグ付加部503と、要求元選択部504としての機能を有している。   As shown in FIG. 5, the result determination unit 501 has functions as a latest data selection unit 502, a cancel flag addition unit 503, and a request source selection unit 504.

アドレス比較・R/W確認部602から伝えられた応答リクエストパケット300_2は、最新データ選択部502で取得される。本実施形態においては、アクセスバッファ222に蓄積された複数のリクエストパケット300それぞれと抽出後リクエストパケット300_1との比較処理が並列に実行されているため、最新データ選択部502には、1つの抽出後リクエストパケット300_1に対して複数の比較部601_1,601_2,…,601_XXから応答リクエストパケット300_2が伝えられることがある。最新データ選択部502では、1つの抽出後リクエストパケット300_1に対して複数の応答リクエストパケット300_2が取得された場合には、それら複数の応答リクエストパケット300_2のうち最新の応答リクエストパケット300_2(最も最後に実行される応答リクエストパケット300_2)が選択される。選択された応答リクエストパケット300_2は、キャンセルフラグ付加部503に伝えられる。   The response request packet 300_2 transmitted from the address comparison / R / W confirmation unit 602 is acquired by the latest data selection unit 502. In this embodiment, since the comparison processing of each of the plurality of request packets 300 accumulated in the access buffer 222 and the extracted request packet 300_1 is performed in parallel, the latest data selection unit 502 includes one post-extraction The response request packet 300_2 may be transmitted from the plurality of comparison units 601_1, 601_2, ..., 601_XX to the request packet 300_1. In the latest data selection unit 502, when a plurality of response request packets 300_2 are acquired for one post-extraction request packet 300_1, the latest response request packet 300_2 (most recently among the plurality of response request packets 300_2) is acquired. The response request packet 300_2) to be executed is selected. The selected response request packet 300_2 is transmitted to the cancel flag adding unit 503.

キャンセルフラグ付加部503では、応答リクエストパケット300_2にキャンセルフラグ301が付加され、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定される。キャンセルフラグ301が付加された応答リクエストパケット300_2は、要求元選択部504に伝えられる。   In the cancel flag adding unit 503, the cancel flag 301 is added to the response request packet 300_2, and “1 (R / W request cancel)” is set in the cancel flag 301. The response request packet 300_2 to which the cancel flag 301 is added is transmitted to the request source selection unit 504.

要求元選択部504では、抽出リクエストパケット300_1の元となったリクエストパケット300に応答リクエストパケット300_2が上書きされ、新たなリクエストパケット300が、そのリクエストパケット300中のDPUID302が示すプロセッサ202_0,202_1,…,202_nに対応する入力レジスタ206_0,206_1,…,206_nに伝えられる(図7のステップS18)。   In the request source selection unit 504, the response request packet 300_2 is overwritten on the request packet 300 that is the source of the extraction request packet 300_1, and a new request packet 300 is added to the processors 202_0, 202_1,... Indicated by the DPUID 302 in the request packet 300. , 202_n are transmitted to the input registers 206_0, 206_1,..., 206_n (step S18 in FIG. 7).

この時点で、入力レジスタ206_0,206_1,…,206_nに格納されたリクエストパケット300のうち、アクセスバッファ222に同じアドレスへのライト要求リクエストパケットが存在するリード要求リクエストパケットについては、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定され、データ部305にライト要求リクエストパケットの書込データが設定されている。   At this time, among the request packets 300 stored in the input registers 206_0, 206_1,..., 206_n, a read request request packet in which a write request request packet for the same address exists in the access buffer 222 is displayed in the cancel flag 301 as “ 1 (R / W request cancellation) ”is set, and the write data of the write request request packet is set in the data portion 305.

入力レジスタ206_0,206_1,…,206_nでは、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定されたリクエストパケット300が送受信部204_0,204_1,…,204_nに伝えられる。送受信部204_0,204_1,…,204_nでは、入力レジスタ206_0,206_1,…,206_nから伝えられたリクエストパケット300が、共有メモリ240へのアクセス結果であるアンサーパケットデータとしてプロセッサ部202_0,202_1,…,202_nに返信される(図7のステップS19)。   In the input registers 206_0, 206_1,..., 206_n, the request packet 300 in which “1 (R / W request cancellation)” is set in the cancel flag 301 is transmitted to the transmission / reception units 204_0, 204_1,. In the transmission / reception units 204_0, 204_1,..., 204_n, the request packets 300 transmitted from the input registers 206_0, 206_1, ..., 206_n are processor units 202_0, 202_1,. 202_n is returned (step S19 in FIG. 7).

また、入力レジスタ206_0,206_1,…,206_nでは、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定されたリクエストパケット300が破棄されることにより、リクエストパケット300の実行がキャンセルされる(図7のステップS20)。   Further, in the input registers 206_0, 206_1,..., 206_n, the execution of the request packet 300 is canceled by discarding the request packet 300 in which “1 (R / W request cancel)” is set in the cancel flag 301. (Step S20 in FIG. 7).

図8は、リード要求リクエストパケットがキャンセルされるまでのリクエストパケットの流れを示す概念図である。   FIG. 8 is a conceptual diagram showing the flow of a request packet until the read request request packet is canceled.

各プロセッサ202_0,202_1,…,202_nから送信されて入力バッファ205_0,205_1,…,205_nに蓄積されたリクエストパケット300(1)は、入力レジスタ206_0,206_1,…,206_nと検索要求部401に転送される。また、アービトレーション部221から取得されたアービトレーション信号231(2)は、検索要求部401を介して結果判定部501に伝えられる。   The request packet 300 (1) transmitted from each of the processors 202_0, 202_1,..., 202_n and accumulated in the input buffers 205_0, 205_1, ..., 205_n is transferred to the input registers 206_0, 206_1,. Is done. Further, the arbitration signal 231 (2) acquired from the arbitration unit 221 is transmitted to the result determination unit 501 through the search request unit 401.

検索要求部401で受信されたリクエストパケット300(3)は、アービトレーション信号231(2)に従った順序で1つずつ比較部601_0,601_1,…,601_XXに伝えられる。また、比較部601_0,601_1,…,601_XXでは、アクセスバッファ222の蓄積バッファ222_0,222_1,…,222_XXに格納されているリクエストパケット300(4)が取得され、「入力バッファ中のリード要求リクエストパケットと同一のアドレスを有するアクセスバッファ中のライト要求リクエストパケット」が検索される。図8に示す例では、左側の入力バッファ205_0に蓄積されたリクエストパケット310のR/W情報303が「R(リード要求)」であり、アドレス304が「アドレスA」である。このリード要求リクエストパケット310に対し、アクセスバッファ222中の2番目のバッファ222_02に蓄積されたリクエストパケット330のR/W情報303が「W(ライト要求)」であり、アドレス304が「アドレスA」であり、検索条件に合致するライト要求リクエストパケット330と判定される。   The request packets 300 (3) received by the search request unit 401 are transmitted to the comparison units 601_0, 601_1,... 601_XX one by one in the order according to the arbitration signal 231 (2). Further, the comparison units 601_0, 601_1,..., 601_XX acquire the request packet 300 (4) stored in the accumulation buffers 222_0, 222_1,..., 222_XX of the access buffer 222, and read “Read request request packet in the input buffer”. Is searched for in the access buffer having the same address. In the example shown in FIG. 8, the R / W information 303 of the request packet 310 stored in the left input buffer 205_0 is “R (read request)”, and the address 304 is “address A”. For this read request request packet 310, the R / W information 303 of the request packet 330 stored in the second buffer 222_02 in the access buffer 222 is “W (write request)”, and the address 304 is “address A”. It is determined that the write request request packet 330 matches the search condition.

検索結果である応答リクエストパケット(5)は結果判定部501に伝えられる。さらに、応答リクエストパケット(5)に基づいて生成されたリード要求アンサーデータ320は、入力レジスタ206_0,206_1,…,206_nを介して送受信部204_0,204_1,…,204_nに伝えられ、さらにプロセッサ202_0,202_1,…,202_nに返信される。図8の例では、結果判定部501において、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定され、データ部305にライト要求リクエストパケット330のデータ部305に設定されている「データI」が設定されたリード要求アンサーデータ320が生成され、リード要求アンサーデータ320が入力レジスタ206_0を介して送受信部204_0に伝えられ、プロセッサ202_0に返信される。   The response request packet (5) that is the search result is transmitted to the result determination unit 501. Further, the read request answer data 320 generated based on the response request packet (5) is transmitted to the transmission / reception units 204_0, 204_1,..., 204_n via the input registers 206_0, 206_1,. 202_1, ..., 202_n are returned. In the example of FIG. 8, in the result determination unit 501, “1 (R / W request cancellation)” is set in the cancellation flag 301, and “data” set in the data unit 305 of the write request request packet 330 is stored in the data unit 305. Read request answer data 320 in which “I” is set is generated, and the read request answer data 320 is transmitted to the transmission / reception unit 204_0 via the input register 206_0 and returned to the processor 202_0.

以上のように、本実施形態によると、アクセスバッファに蓄積されているリクエストパケット中に、入力バッファに蓄積されているリード要求リクエストパケットと同じアドレスにデータを書き込むライト要求リクエストパケットが存在する場合には、そのリード要求リクエストパケットの返信データとしてライト要求リクエストパケットによって書き込まれる書込データが返信されて、リード要求リクエストパケットがキャンセルされるため、共有メモリ240へのアクセスを省略することができる。また、リード要求リクエストパケットのキャンセルを入力レジスタで実行することによって、アービトレーション部221における選択処理の負荷も軽減することができるとともに、システム全体の処理速度を高速化することができる。   As described above, according to the present embodiment, when a request packet stored in the access buffer includes a write request request packet for writing data to the same address as the read request request packet stored in the input buffer. Since the write data written by the write request request packet is returned as the return data of the read request request packet and the read request request packet is canceled, access to the shared memory 240 can be omitted. In addition, by canceling the read request request packet with the input register, it is possible to reduce the load of selection processing in the arbitration unit 221 and to increase the processing speed of the entire system.

以上のようにして、リード要求リクエストパケットのキャンセルが行われる。   The read request request packet is canceled as described above.

また、図7のステップS15において、アクセスバッファ222から取得したリクエストパケット300中のR/W情報303が「W(ライト要求)」であり(図7のステップS15:Write)、さらに抽出後リクエストパケット300_1中のR/W情報303も「W(ライト要求)」である場合には(図7のステップS16:Write)、アクセスバッファ222から取得したライト要求リクエストパケット300による共有メモリ240へのアクセスが省略される。すなわち、同じアドレスにデータを書き込む複数のライト要求リクエストパケットのうち、先に実行されるライト要求リクエストパケットがキャンセルされる。   Further, in step S15 in FIG. 7, the R / W information 303 in the request packet 300 acquired from the access buffer 222 is “W (write request)” (step S15: Write in FIG. 7), and the extracted request packet When the R / W information 303 in 300_1 is also “W (write request)” (step S16 in FIG. 7: Write), access to the shared memory 240 by the write request request packet 300 acquired from the access buffer 222 is performed. Omitted. That is, among the plurality of write request request packets that write data to the same address, the write request request packet that is executed first is canceled.

まず、図6に示すアドレス比較・R/W確認部602では、アクセスバッファ222から取得したライト要求リクエストパケット300がキャンセルフラグ付加部603に伝えられる。   First, in the address comparison / R / W confirmation unit 602 shown in FIG. 6, the write request request packet 300 acquired from the access buffer 222 is transmitted to the cancel flag addition unit 603.

キャンセルフラグ付加部603では、アドレス比較・R/W確認部602から伝えられたライト要求リクエストパケット300のキャンセルフラグ301に「1(R/W要求キャンセル)」が設定され(図7のステップS21)、新たなライト要求リクエストパケット300がアクセスバッファ222に伝えられる。   In the cancel flag addition unit 603, “1 (R / W request cancel)” is set in the cancel flag 301 of the write request request packet 300 transmitted from the address comparison / R / W confirmation unit 602 (step S21 in FIG. 7). A new write request request packet 300 is transmitted to the access buffer 222.

この時点で、アクセスバッファ222の複数の蓄積バッファ222_0,222_1,…,222_XXに格納されたリクエストパケット300のうち、入力バッファ205_0,205_1,…,205_n内に同じアドレス304へのライト要求リクエストパケットが存在するライト要求リクエストパケットについては、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定されている。   At this time, among the request packets 300 stored in the plurality of accumulation buffers 222_0, 222_1,..., 222_XX of the access buffer 222, write request request packets to the same address 304 are stored in the input buffers 205_0, 205_1,. For existing write request request packets, “1 (R / W request cancel)” is set in the cancel flag 301.

アクセスレジスタ223には、アクセスバッファ222に蓄積されたリクエストパケット300が1つずつ送られてくる。アクセスレジスタ223では、キャンセルフラグ301に「0(共有メモリ240へのアクセス待ち)」が設定されたリクエストパケット300が実行されるとともに、キャンセルフラグに「1(R/W要求キャンセル)」が設定されたリクエストパケット300は破棄されて、リクエストパケット300の実行がキャンセルされる(図7のステップS22)。   Request packets 300 stored in the access buffer 222 are sent to the access register 223 one by one. In the access register 223, the request packet 300 in which “0 (waiting for access to the shared memory 240)” is set in the cancel flag 301 is executed, and “1 (R / W request cancel)” is set in the cancel flag. The request packet 300 is discarded and the execution of the request packet 300 is canceled (step S22 in FIG. 7).

図9は、ライト要求リクエストパケットがキャンセルされるまでのリクエストパケットの流れを示す概念図である。   FIG. 9 is a conceptual diagram showing the flow of a request packet until the write request request packet is canceled.

まずは、図8に示すリード要求リクエストパケットをキャンセルする場合と同様に、検索要求部401において、入力バッファ205_0,205_1,…,205_n中のリクエストパケット300(1)と、アービトレーション信号231(2)とが取得される。比較部601_0,601_1,…,601_XXでは、入力バッファ205_0,205_1,…,205_n中のリクエストパケット300と(3)、アクセスバッファ222中のリクエストパケット300(4)が取得される。ライト要求リクエストパケットをキャンセルするときには、比較部601_0,601_1,…,601_XXにおいて、「入力バッファ中のライト要求リクエストパケットと同一のアドレスを有するアクセスバッファ中のライト要求リクエストパケット」が検索される。図9に示す例では、左側の入力バッファ205_0に蓄積されたリクエストパケット340のR/W情報303が「W(ライト要求)」であり、アドレス304が「アドレスA」である。このリード要求リクエストパケット310に対し、アクセスバッファ222中の2番目のバッファ222_02に蓄積されたリクエストパケット330のR/W情報303が「W(ライト要求)」であり、アドレス304が「アドレスA」であり、検索条件に合致するライト要求リクエストパケット330と判定される。   First, as in the case of canceling the read request request packet shown in FIG. 8, the search request unit 401 uses the request packet 300 (1) in the input buffers 205_0, 205_1,..., 205_n and the arbitration signal 231 (2). Is acquired. The comparison units 601_0, 601_1,..., 601_XX obtain the request packet 300 (3) in the input buffers 205_0, 205_1,..., 205_n and the request packet 300 (4) in the access buffer 222. When canceling the write request request packet, the comparison units 601_0, 601_1,..., 601_XX search for “write request request packet in the access buffer having the same address as the write request request packet in the input buffer”. In the example shown in FIG. 9, the R / W information 303 of the request packet 340 stored in the left input buffer 205_0 is “W (write request)”, and the address 304 is “address A”. For this read request request packet 310, the R / W information 303 of the request packet 330 stored in the second buffer 222_02 in the access buffer 222 is “W (write request)”, and the address 304 is “address A”. It is determined that the write request request packet 330 matches the search condition.

ライト要求リクエストパケット330が検索された比較部601_2では、ライト要求リクエストパケット330のキャンセルフラグに「1(R/W要求キャンセル)」が設定され、新たなライト要求リクエストパケット330がバッファ222_2に上書きされる。   In the comparison unit 601_2 in which the write request request packet 330 is searched, “1 (R / W request cancel)” is set in the cancel flag of the write request request packet 330, and the new write request request packet 330 is overwritten in the buffer 222_2. The

以上のように、本実施形態によると、アクセスバッファに蓄積されているリクエストパケット中に、入力バッファに蓄積されているライト要求リクエストパケットと同じアドレスにデータを書き込むライト要求リクエストパケットが存在する場合には、先に実行されるアクセスバッファ中のライト要求リクエストパケットがキャンセルされるため、無駄な処理を省いて処理効率を向上させることができる。また、処理効率の向上によって、アクセスバッファや入力バッファに溜まっているリクエストパケットが減少するため、リクエストパケットが溢れてしまって処理しきれないリクエストパケットが破棄されてしまう不具合を回避することができ、確実に処理を実行することができる。   As described above, according to the present embodiment, when the request packet stored in the access buffer includes a write request request packet for writing data to the same address as the write request request packet stored in the input buffer. Since the write request request packet in the access buffer to be executed first is canceled, useless processing can be omitted and the processing efficiency can be improved. In addition, because the request packets accumulated in the access buffer and input buffer decrease due to the improvement in processing efficiency, it is possible to avoid the problem that the request packets overflow and the request packets that can not be processed are discarded, The processing can be executed reliably.

以上で、本発明の第1実施形態の説明を終了し、本発明の第2実施形態について説明する。本発明の第2実施形態は、バッファ検索制御部の構成が第1実施形態と異なるが、それ以外は第1実施形態と同様の構成を有しているため、図2を第2実施形態の説明でも流用し、第1実施形態との相違点についてのみ説明する。   Above, description of 1st Embodiment of this invention is complete | finished and 2nd Embodiment of this invention is described. The second embodiment of the present invention is different from the first embodiment in the configuration of the buffer search control unit, but otherwise has the same configuration as in the first embodiment, so FIG. Only the differences from the first embodiment will be described using the description.

図10は、本実施形態におけるバッファ検索制御部の構成図である。   FIG. 10 is a configuration diagram of the buffer search control unit in the present embodiment.

本実施形態におけるバッファ検索制御部1001には、図2に示す第1実施形態のバッファ検索制御部230と同様に、検索要求部1101、結果判定部1003、アドレス比較部1004が備えられており、アドレス比較部1004には、アクセスバッファ222を構成する複数の蓄積バッファ222_0,222_1,…,222_XXそれぞれに対応する複数の比較部1301_0,1301_1,…,1301_XXが備えられているが、本実施形態では、結果判定部1003に、複数の入力バッファ205_0,205_1,…,205_nそれぞれに対応する複数の判定部1401_0,1401_1,…,1401_nが備えられている点が第1実施形態とは異なる。   Similar to the buffer search control unit 230 of the first embodiment shown in FIG. 2, the buffer search control unit 1001 in this embodiment includes a search request unit 1101, a result determination unit 1003, and an address comparison unit 1004. The address comparison unit 1004 includes a plurality of comparison units 1301_0, 1301_1,..., 1301_XX corresponding to the plurality of storage buffers 222_0, 222_1,. The result determination unit 1003 is different from the first embodiment in that a plurality of determination units 1401_0, 1401_1,..., 1401_n corresponding to the plurality of input buffers 205_0, 205_1,.

図11は、検索要求部1101の機能ブロック図である。   FIG. 11 is a functional block diagram of the search request unit 1101.

本実施形態の検索要求部1101には、アドレス比較・R/W確認部1201と、複数の入力バッファ205_0,205_1,…,205_nそれぞれに対応する複数のアドレス抽出部1103_0,1103_1,…,1103_nとしての機能が備えられている。   The search request unit 1101 of the present embodiment includes an address comparison / R / W confirmation unit 1201 and a plurality of address extraction units 1103_0, 1103_1,..., 1103_n corresponding to the plurality of input buffers 205_0, 205_1,. The function is provided.

複数の入力バッファ205_0,205_1,…,205_nそれぞれから1つずつ取得された複数のリクエストパケット300は、各入力バッファ205_0,205_1,…,205_nに対応する各アドレス抽出部1103_0,1103_1,…,1103_nに伝えられるとともに、アドレス比較・R/W確認部1201にも伝えられる。   A plurality of request packets 300 acquired one by one from each of the plurality of input buffers 205_0, 205_1,..., 205_n are respectively address extraction units 1103_0, 1103_1, ..., 1103_n corresponding to the respective input buffers 205_0, 205_1,. And also to the address comparison / R / W confirmation unit 1201.

アドレス抽出部1103_0,1103_1,…,1103_nでは、リクエストパケット300中の、R/W情報303とアドレス304とが抽出された抽出後リクエストパケット300_1が生成される。生成された抽出後リクエストパケット300_1は、各アドレス抽出部1103_0,1103_1,…,1103_nからアドレス比較部1004を構成する複数の比較部1301_0,1301_1,…,1301_XXそれぞれに向けて一斉に送られる。すなわち、各比較部1301_0,1301_1,…,1301_XXに、複数の入力バッファ205_0,205_1,…,205_nから取得された複数の抽出後リクエストパケット300_1が伝えられることとなる。   The address extraction units 1103_0, 1103_1,..., 1103_n generate a post-extraction request packet 300_1 in which the R / W information 303 and the address 304 in the request packet 300 are extracted. The generated post-extraction request packet 300_1 is sent simultaneously from each of the address extraction units 1103_0, 1103_1,..., 1103_n to each of a plurality of comparison units 1301_0, 1301_1, ..., 1301_XX constituting the address comparison unit 1004. That is, a plurality of post-extraction request packets 300_1 acquired from the plurality of input buffers 205_0, 205_1,..., 205_n are transmitted to the comparison units 1301_0, 1301_1,.

図12は、本実施形態における比較部1301_0,1301_1,…,1301_XXの機能ブロック図である。   FIG. 12 is a functional block diagram of the comparison units 1301_0, 1301_1,..., 1301_XX in the present embodiment.

各比較部1301_0,1301_1,…,1301_XXには、キャンセルフラグ付加部1303と、複数のアドレス抽出部1103_0,1103_1,…,1103_nそれぞれに対応する複数のアドレス比較・R/W確認部1302_0,1302_1,…,1302_nとしての機能が備えられている。   Each of the comparison units 1301_0, 1301_1,..., 1301_XX includes a cancel flag addition unit 1303 and a plurality of address comparison / R / W confirmation units 1302_0, 1302_1, respectively corresponding to the plurality of address extraction units 1103_0, 1103_1,. .., 1302_n are provided.

各比較部1301_0,1301_1,…,1301_XXでは、アクセスバッファ222中の、対応する蓄積バッファ222_0,222_1,…,222_XXに蓄積されているリクエストパケット300が取得されるとともに、図11に示すアドレス抽出部1103_0,1103_1,…,1103_nから伝えられた複数の抽出後リクエストパケット300_1も取得される。アクセスバッファから伝えられたリクエストパケット300は、全てのアドレス比較・R/W確認部1302_0,1302_1,…,1302_nで取得され、アドレス抽出部1103_0,1103_1,…,1103_nから伝えられた複数の抽出後リクエストパケット300_1は、対応するアドレス比較・R/W確認部1302_0,1302_1,…,1302_nで取得される。   In each of the comparison units 1301_0, 1301_1,..., 1301_XX, the request packets 300 stored in the corresponding storage buffers 222_0, 222_1,..., 222_XX in the access buffer 222 are acquired, and the address extraction unit illustrated in FIG. 1103_0, 1103_1, ..., 1103_n, a plurality of post-extraction request packets 300_1 are also acquired. The request packet 300 transmitted from the access buffer is acquired by all the address comparison / R / W confirmation units 1302_0, 1302_1,..., 1302_n, and after a plurality of extractions transmitted from the address extraction units 1103_0, 1103_1,. The request packet 300_1 is acquired by the corresponding address comparison / R / W confirmation unit 1302_0, 1302_1, ..., 1302_n.

アドレス比較・R/W確認部1302_0,1302_1,…,1302_nでは、リクエストパケット300と抽出後リクエストパケット300_1それぞれのアドレス304に設定されたアドレスが一致するか否かが判定される。尚、本実施形態においては、アクセスバッファ222を構成する複数の蓄積バッファ222_0,222_1,…,222_XXそれぞれに対応する複数の比較部1301_0,1301_1,…,1301_XXが備えられており、各比較部1301_0,1301_1,…,1301_XXに、複数の入力バッファ205_0,205_1,…,205_nそれぞれに対応する複数のアドレス比較・R/W確認部1302_0,1302_1,…,1302_nが備えられている。このため、アドレス比較部1004全体では、アクセスバッファ222に蓄積された複数のリクエストパケット300と、入力バッファ205_0,205_1,…,205_nに蓄積された複数のリクエストパケット300(実際には、リクエストパケット300の一部が抽出された抽出後リクエストパケット300_1が利用される)とが一斉に比較される。   The address comparison / R / W confirmation units 1302_0, 1302_1,..., 1302_n determine whether or not the addresses set in the addresses 304 of the request packet 300 and the extracted request packet 300_1 match. In this embodiment, a plurality of comparison units 1301_0, 1301_1,..., 1301_XX corresponding to the plurality of storage buffers 222_0, 222_1,..., 222_XX constituting the access buffer 222 are provided, and each comparison unit 1301_0 is provided. , 1301_1,..., 1301_XX are provided with a plurality of address comparison / R / W confirmation units 1302_0, 1302_1,..., 1302_n corresponding to the plurality of input buffers 205_0, 205_1,. Therefore, in the address comparison unit 1004 as a whole, a plurality of request packets 300 accumulated in the access buffer 222 and a plurality of request packets 300 accumulated in the input buffers 205_0, 205_1,. And a post-extraction request packet 300_1 from which a part of the request packet is extracted is used at the same time.

アドレス比較・R/W確認部1302_0,1302_1,…,1302_nにおいて、アクセスバッファ222から取得されたリクエストパケット300と、アドレス抽出部1103_0,1103_1,…,1103_nから伝えられた抽出後リクエストパケット300_1それぞれのアドレスが一致した場合には、リクエストパケット300と抽出後リクエストパケット300_1それぞれのR/W情報303が確認される。   In the address comparison / R / W confirmation unit 1302_0, 1302_1,..., 1302_n, the request packet 300 acquired from the access buffer 222 and the post-extraction request packet 300_1 transmitted from the address extraction units 1103_0, 1103_1,. If the addresses match, the R / W information 303 of the request packet 300 and the extracted request packet 300_1 is confirmed.

リクエストパケット300のR/W情報303が「W(ライト要求)」で、抽出後リクエストパケット300_1のR/W情報303が「W(ライト要求)」の場合には、リクエストパケット300がキャンセルフラグ付加部1303に伝えられる。キャンセルフラグ付加部1303では、第1実施形態と同様にして、リクエストパケット300のキャンセルフラグ301に「1(R/W要求キャンセル)」が設定され、新たなリクエストパケット300がアクセスバッファ222に伝えられる。   When the R / W information 303 of the request packet 300 is “W (write request)” and the R / W information 303 of the extracted request packet 300_1 is “W (write request)”, the request packet 300 has a cancel flag added. Part 1303. In the cancel flag adding unit 1303, “1 (R / W request cancel)” is set in the cancel flag 301 of the request packet 300 and the new request packet 300 is transmitted to the access buffer 222, as in the first embodiment. .

図2に示すアクセスレジスタ223では、キャンセルフラグ301に「0(共有メモリ240へのアクセス待ち)」が設定されたリクエストパケット300が実行されるとともに、キャンセルフラグに「1(R/W要求キャンセル)」が設定されたリクエストパケット300は破棄されて、リクエストパケット300の実行がキャンセルされる。   In the access register 223 shown in FIG. 2, the request packet 300 in which “0 (waiting for access to the shared memory 240)” is set in the cancel flag 301 is executed, and “1 (R / W request cancel)” is set in the cancel flag. The request packet 300 for which “is set” is discarded, and the execution of the request packet 300 is cancelled.

また、アドレス比較・R/W確認部1302_0,1302_1,…,1302_nにおいて、アクセスバッファ222から取得されたリクエストパケット300と、アドレス抽出部1103_0,1103_1,…,1103_nから伝えられた抽出後リクエストパケット300_1それぞれのアドレスが一致し、さらにリクエストパケット300のR/W情報303が「W(ライト要求)」で、抽出後リクエストパケット300_1のR/W情報303が「R(リード要求)」の場合には、抽出後リクエストパケット300_1にリクエストパケット300中のデータ部305に設定された書込データが付加された応答リクエストパケット300_2が生成される。生成された応答リクエストパケット300_2は、図10に示す結果判定部1003の、各アドレス比較・R/W確認部1302_0,1302_1,…,1302_nに対応する判定部1401_0,1401_1,…,1401_nに伝えられる。   Further, in the address comparison / R / W confirmation units 1302_0, 1302_1,..., 1302_n, the request packet 300 acquired from the access buffer 222 and the post-extraction request packet 300_1 transmitted from the address extraction units 1103_0, 1103_1,. When the addresses match, the R / W information 303 of the request packet 300 is “W (write request)”, and the R / W information 303 of the extracted request packet 300_1 is “R (read request)”. Then, a response request packet 300_2 in which the write data set in the data part 305 in the request packet 300 is added to the post-extraction request packet 300_1 is generated. The generated response request packet 300_2 is transmitted to determination units 1401_0, 1401_1, ..., 1401_n corresponding to the address comparison / R / W confirmation units 1302_0, 1302_1, ..., 1302_n of the result determination unit 1003 shown in FIG. .

図13は、結果判定部1003を構成する判定部1401_0,1401_1,…,1401_nの機能ブロック図である。   FIG. 13 is a functional block diagram of the determination units 1401_0, 1401_1,..., 1401_n constituting the result determination unit 1003.

結果判定部1003を構成する各判定部1401_0,1401_1,…,1401_nには、アンサーデータ選択部1402と、キャンセルフラグ付加部1403としての機能が備えられている。   Each determination unit 1401_0, 1401_1,..., 1401_n constituting the result determination unit 1003 is provided with a function as an answer data selection unit 1402 and a cancel flag addition unit 1403.

アンサーデータ選択部1402では、複数の比較部1301_0,1301_1,…,1301_XXそれぞれから伝えられた応答リクエストパケット300_2が取得される。また、複数の応答リクエストパケット300_2が取得された場合には、それら複数の応答リクエストパケット300_2のうち最新の応答リクエストパケット300_2(最も最後に実行される応答リクエストパケット300_2)が選択されて、キャンセルフラグ付加部1403に伝えられる。   The answer data selection unit 1402 acquires the response request packet 300_2 transmitted from each of the plurality of comparison units 1301_0, 1301_1, ..., 1301_XX. When a plurality of response request packets 300_2 are acquired, the latest response request packet 300_2 (the response request packet 300_2 to be executed last) is selected from among the plurality of response request packets 300_2, and a cancel flag is selected. This is transmitted to the addition unit 1403.

キャンセルフラグ付加部1403では、応答リクエストパケット300_2の元となったリクエストパケット300のデータ部305に応答リクエストパケット300_2のデータ部305に設定されたデータが設定され、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定され、新たなリクエストパケット300が対応する入力レジスタ206_0,206_1,…,206_nに伝えられる。   In the cancel flag adding unit 1403, the data set in the data unit 305 of the response request packet 300_2 is set in the data unit 305 of the request packet 300 that is the origin of the response request packet 300_2, and “1 (R / W request cancel) ”is set, and a new request packet 300 is transmitted to the corresponding input registers 206_0, 206_1,.

入力レジスタ206_0,206_1,…,206_nでは、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定されたリクエストパケット300が送受信部204_0,204_1,…,204_nに伝えられ、送受信部204_0,204_1,…,204_nでは、リクエストパケット300がアンサーパケットデータとして対応するプロセッサ部202_0,202_1,…,202_nに返信される。さらに、入力レジスタ206_0,206_1,…,206_nでは、送受信部204_0,204_1,…,204_nに送信されたリクエストパケット300がキャンセルされる。   In the input registers 206_0, 206_1,..., 206_n, the request packet 300 in which “1 (R / W request cancellation)” is set in the cancel flag 301 is transmitted to the transmission / reception units 204_0, 204_1,. In 204_1,..., 204_n, the request packet 300 is returned as answer packet data to the corresponding processor units 202_0, 202_1,. Further, in the input registers 206_0, 206_1,..., 206_n, the request packet 300 transmitted to the transmission / reception units 204_0, 204_1,.

以上のように、本実施形態によると、複数の入力バッファそれぞれに蓄積された複数のリクエストパケットと、複数のアクセスバッファそれぞれに蓄積された複数のリクエストパケットとが一斉に比較されて省略可能なリクエストパケットが検索されるため、処理を高速化することができる。   As described above, according to the present embodiment, a plurality of request packets stored in each of a plurality of input buffers and a plurality of request packets stored in each of a plurality of access buffers are compared at the same time and can be omitted. Since the packet is searched, the processing can be speeded up.

ここで、上記では、図11に示す検索要求部1101において、入力バッファ205_0,205_1,…,205_nに蓄積されたリクエストパケット300がアドレス抽出部1103_0,1103_1,…,1103_nで取得され、抽出リクエストパケット300_1がアドレス比較部1004の比較部1301_0,1301_1,…,1301_nに伝えられて、アクセスバッファ222に蓄積されたリクエストパケット300と比較される一連の流れについて説明したが、検索要求部1101では、入力バッファ205_0,205_1,…,205_nから伝えられたリクエストパケット300がアドレス比較・R/W確認部1201でも取得される。   Here, in the above, in the search request unit 1101 shown in FIG. 11, the request packets 300 accumulated in the input buffers 205_0, 205_1,..., 205_n are acquired by the address extraction units 1103_0, 1103_1,. Although 300_1 is transmitted to the comparison units 1301_0, 1301_1,..., 1301_n of the address comparison unit 1004 and compared with the request packet 300 stored in the access buffer 222, the search request unit 1101 The request packet 300 transmitted from the buffers 205_0, 205_1,..., 205_n is also acquired by the address comparison / R / W confirmation unit 1201.

図14は、アドレス比較・R/W確認部1201における処理の流れを示す図である。   FIG. 14 is a diagram showing a flow of processing in the address comparison / R / W confirmation unit 1201.

アドレス比較・R/W確認部1201には、複数の入力バッファ205_0,205_1,…,205_nそれぞれから1つずつ伝えられた複数のリクエストパケット300が取得されるとともに、図2に示すアービトレーション部221から、入力バッファ205_0,205_1,…,205_nからリクエストパケット300を選択する選択規則を示すアービトレーション信号231も取得される。   The address comparison / R / W confirmation unit 1201 acquires a plurality of request packets 300 transmitted one by one from each of the plurality of input buffers 205_0, 205_1,..., 205_n, and from the arbitration unit 221 shown in FIG. The arbitration signal 231 indicating the selection rule for selecting the request packet 300 is also acquired from the input buffers 205_0, 205_1,.

アドレス比較・R/W確認部1201では、取得された複数のリクエストパケット300がアービトレーション信号231が示す選択規則に従った順序で比較され、アドレス304に設定されたアドレスが同一であり、選択規則によって先に選択されるリクエストパケット300のR/W情報303がライト要求であるリクエストパケット300の組が検索される。図14に示す例では、入力バッファ205_0に蓄積されていたライト要求リクエストパケット1202_0と、入力バッファ205_1に蓄積されていたリード要求リクエストパケット1202_1の組(1)と、入力バッファ205_0に蓄積されていたライト要求リクエストパケット1202_0と、入力バッファ205_nに蓄積されていたライト要求リクエストパケット1202_nの組(2)とが検索される。   In the address comparison / R / W confirmation unit 1201, the plurality of acquired request packets 300 are compared in the order according to the selection rule indicated by the arbitration signal 231, and the addresses set in the address 304 are the same. A set of request packets 300 in which the R / W information 303 of the previously selected request packet 300 is a write request is searched. In the example shown in FIG. 14, the set (1) of the write request request packet 1202_0 stored in the input buffer 205_0, the read request request packet 1202_1 stored in the input buffer 205_1, and the input buffer 205_0. The write request request packet 1202_0 and the set (2) of the write request request packet 1202_n stored in the input buffer 205_n are searched.

続いて、検索されたリクエストパケット300の組のうち、後で選択されるリクエストパケット300がリード要求リクエストパケットである場合には、そのリード要求リクエストパケットのデータ部305に先に選択されるライト要求リクエストパケット300のデータ部305に設定された書込データが設定され、さらに、リード要求リクエストパケットのキャンセルフラグ301に「1(R/W要求キャンセル)」が設定される。図4に示す例では、リード要求リクエストパケット1202_1のデータ部305に、ライト要求リクエストパケット1202_0のデータ部305に設定された「データI」が設定され、リード要求リクエストパケット1202_1のキャンセルフラグ301に「1」が設定される。   Subsequently, when a request packet 300 selected later is a read request request packet in the group of retrieved request packets 300, a write request previously selected in the data portion 305 of the read request request packet. The write data set in the data portion 305 of the request packet 300 is set, and “1 (R / W request cancel)” is set in the cancel flag 301 of the read request request packet. In the example shown in FIG. 4, “data I” set in the data part 305 of the write request request packet 1202_0 is set in the data part 305 of the read request request packet 1202_1, and “cancel” 301 is set in the cancel flag 301 of the read request request packet 1202_1. 1 "is set.

また、検索されたリクエストパケット300の組のうち、後で選択されるリクエストパケット300がライト要求リクエストパケットである場合には、先に選択されるライト要求リクエストパケット300のキャンセルフラグ301に「1(R/W要求キャンセル)」が設定される。図4に示す例では、入力バッファ205_0に蓄積されていたライト要求リクエストパケット1202_0の後で、入力バッファ205_nに蓄積されていたライト要求リクエストパケット1202_nが選択されるため、先に選択されるライト要求リクエストパケット1202_0のキャンセルフラグ301に「1」が設定される。   In addition, when a request packet 300 selected later is a write request request packet in the set of searched request packets 300, the cancel flag 301 of the write request request packet 300 selected first is set to “1 ( R / W request cancellation) ”is set. In the example shown in FIG. 4, the write request request packet 1202_n stored in the input buffer 205_n is selected after the write request request packet 1202_0 stored in the input buffer 205_0. “1” is set in the cancel flag 301 of the request packet 1202_0.

アドレス比較・R/W確認部1201によって比較処理が終了すると、リクエストパケット300は図10に示す結果判定部1003に伝えられる。   When the address comparison / R / W confirmation unit 1201 completes the comparison process, the request packet 300 is transmitted to the result determination unit 1003 shown in FIG.

結果判定部1003に伝えられたリクエストパケット300は、図13に示す判定部1401_0,1401_1,…,1401_nで取得され、さらに、対応する入力レジスタ206_0,206_1,…,206_nに伝えられる。   The request packet 300 transmitted to the result determination unit 1003 is acquired by the determination units 1401_0, 1401_1,..., 1401_n illustrated in FIG. 13 and further transmitted to the corresponding input registers 206_0, 206_1,.

入力レジスタ206_0,206_1,…,206_nでは、キャンセルフラグ301に「1(R/W要求キャンセル)」が設定されたリクエストパケット300のキャンセル処理が実行される。   In the input registers 206_0, 206_1,..., 206_n, cancel processing of the request packet 300 in which “1 (R / W request cancel)” is set in the cancel flag 301 is executed.

このように、本実施形態においては、アクセスバッファと入力バッファとの間で共有メモリへのアクセスが重複するリクエストパケットだけではなく、複数の入力バッファ間で省略可能なリクエストパケットもキャンセルされるため、さらに高速で効率的な処理を実現することができる。   As described above, in the present embodiment, not only request packets in which access to the shared memory is duplicated between the access buffer and the input buffer, but also request packets that can be omitted between a plurality of input buffers are canceled. Furthermore, high-speed and efficient processing can be realized.

ここで、上記では、アービトレーション部において、ラウンドロビン方式が適用され、複数の入力レジスタに格納されたリクエストパケットが番号順に1つずつ選択される例について説明したが、本発明にいう調停部は、例えば、処理の負荷が大きいプロセッサに対応する入力バッファに蓄積されたリクエストパケットを優先的に選択するものであってもよい。   Here, in the above description, an example has been described in which the round robin method is applied in the arbitration unit, and the request packets stored in the plurality of input registers are selected one by one in the order of numbers. For example, a request packet stored in an input buffer corresponding to a processor having a large processing load may be preferentially selected.

また、上記では、入力バッファに蓄積されたリクエストパケットのキャンセルを入力レジスタで行う例について説明したが、本発明のメモリアクセス制御装置は、入力レジスタではキャンセルフラグの確認を行わず、リクエストパケットのキャンセルを全てアクセスレジスタで行うものであってもよい。しかし、入力バッファに蓄積されたリクエストパケットのキャンセルを入力レジスタで行うことにより、共有メモリへのアクセスだけではなく、アービトレーション部における調停処理も省略することができる。   In the above description, an example in which the request packet stored in the input buffer is canceled by the input register has been described. However, the memory access control device of the present invention cancels the request packet without checking the cancel flag in the input register. May be performed by an access register. However, by canceling the request packet stored in the input buffer using the input register, not only access to the shared memory but also arbitration processing in the arbitration unit can be omitted.

以下、本発明の各種形態について付記する。   Hereinafter, various embodiments of the present invention will be additionally described.

(付記1)
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該アクセスバッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
(Appendix 1)
In a memory access control device that controls access to a shared memory shared by a plurality of processors,
A request packet issued from each of the plurality of processors and requesting access to the shared memory, including a distinction between a write request and a read request, and an address of the shared memory is stored for each of the plurality of processors. Multiple input buffers,
An access buffer for accumulating request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
A search unit that searches the access buffer and detects whether a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer;
When the search unit detects that a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer, the search unit stores the same address in the access buffer. The data to be written to the shared memory by the write request request packet is taken out from the access buffer, sent to the processor that issued the read request request packet of the same address among the plurality of processors, and the read request of the same address A memory access control device comprising a preceding processing unit for canceling a request packet.

(付記2)
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
(Appendix 2)
In a memory access control device that controls access to a shared memory shared by a plurality of processors,
A request packet issued from each of the plurality of processors and requesting access to the shared memory, including a distinction between a write request and a read request, and an address of the shared memory is stored for each of the plurality of processors. Multiple input buffers,
An access buffer for accumulating request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
A search unit that searches the access buffer and detects whether or not a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer;
When the search unit detects that a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer, the search unit stores the same address in the access buffer. A memory access control device comprising: a preceding processing unit that cancels a write request request packet.

(付記3)
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該入力バッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
(Appendix 3)
In a memory access control device that controls access to a shared memory shared by a plurality of processors,
A request packet issued from each of the plurality of processors and requesting access to the shared memory, including a distinction between a write request and a read request, and an address of the shared memory is stored for each of the plurality of processors. Multiple input buffers,
An access buffer for accumulating request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
The request packet stored in the input buffer across the plurality of input buffers is searched, and the same address as that of the read request request packet stored in any one of the plurality of input buffers is obtained. A search unit for detecting whether or not there is a write request request packet selected prior to the read request request packet by the arbitrating unit;
The search unit has the same address as the read request request packet stored in any one of the plurality of input buffers, and is selected by the arbitration unit before the read request request packet. When it is detected that a write request request packet exists, the data written to the shared memory by the write request request packet of the same address is taken out of the input buffer, and the same address of the plurality of processors And a preceding processing unit that cancels the read request request packet at the same address, and sends the read request request packet to the processor that issued the read request request packet.

(付記4)
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、前記調停部によって該ライト要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、前記調停部によって該ライト要求リクエストパケットよりも先に選択される第2のライト要求リクエストパケットが存在することが検出された場合に、該第2のライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
(Appendix 4)
In a memory access control device that controls access to a shared memory shared by a plurality of processors,
A request packet issued from each of the plurality of processors and requesting access to the shared memory, including a distinction between a write request and a read request, and an address of the shared memory is stored for each of the plurality of processors. Multiple input buffers,
An access buffer for accumulating request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
The request packet stored in the input buffer across the plurality of input buffers is searched, and the same address as that of the write request request packet stored in any one of the plurality of input buffers is obtained. A search unit for detecting whether or not there is a write request request packet selected before the write request request packet by the arbitration unit;
The search unit has the same address as the write request request packet stored in any one of the plurality of input buffers, and is selected by the arbitration unit before the write request request packet. A memory access control apparatus comprising: a preceding processing unit that cancels a second write request request packet when it is detected that a second write request request packet exists.

(付記5)
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検索ステップにより、前記アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該アクセスバッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
(Appendix 5)
A request packet issued from each of a plurality of processors and requesting access to a shared memory shared by the plurality of processors, including a distinction between a write request and a read request and an address of the shared memory, Multiple input buffers to accumulate for each,
An access buffer for accumulating request packets in the order of access to the shared memory;
A memory in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in the input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer An access control method,
A search step of searching the access buffer and detecting whether or not a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer;
When it is detected by the search step that a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer, the same address in the access buffer is stored. The data to be written to the shared memory by the write request request packet is taken out from the access buffer, sent to the processor that issued the read request request packet of the same address among the plurality of processors, and the read request of the same address A memory access control method comprising: an execution processing step for canceling a request packet.

(付記6)
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検索ステップにより、前記アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
(Appendix 6)
A request packet issued from each of a plurality of processors and requesting access to a shared memory shared by the plurality of processors, including a distinction between a write request and a read request and an address of the shared memory, Multiple input buffers to accumulate for each,
An access buffer for accumulating request packets in the order of access to the shared memory;
A memory in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in the input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer An access control method,
A search step of searching the access buffer and detecting whether or not a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer;
When it is detected by the search step that a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer, the same address in the access buffer is stored. A memory access control method comprising: an execution processing step for canceling a write request request packet.

(付記7)
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検出ステップにより、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該入力バッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
(Appendix 7)
A request packet issued from each of a plurality of processors and requesting access to a shared memory shared by the plurality of processors, including a distinction between a write request and a read request and an address of the shared memory, Multiple input buffers to accumulate for each,
An access buffer for accumulating request packets in the order of access to the shared memory;
A memory in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in the input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer An access control method,
The request packet stored in the input buffer across the plurality of input buffers is searched, and the same address as that of the read request request packet stored in any one of the plurality of input buffers is obtained. A search step for detecting whether or not there is a write request request packet selected prior to the read request request packet by the arbitration unit;
The detection step has the same address as the read request request packet stored in any one of the plurality of input buffers, and is selected before the read request request packet by the arbitration unit. When it is detected that a write request request packet exists, the data written to the shared memory by the write request request packet of the same address is taken out of the input buffer, and the same address of the plurality of processors A memory access control method comprising: an execution processing step of canceling the read request request packet of the same address while sending the read request request packet to the processor that issued the read request packet.

(付記8)
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、前記調停部によって該ライト要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検出ステップにより、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、前記調停部によって該ライト要求リクエストパケットよりも先に選択される第2のライト要求リクエストパケットが存在することが検出された場合に、該第2のライト要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
(Appendix 8)
A request packet issued from each of a plurality of processors and requesting access to a shared memory shared by the plurality of processors, including a distinction between a write request and a read request and an address of the shared memory, Multiple input buffers to accumulate for each,
An access buffer for accumulating request packets in the order of access to the shared memory;
A memory in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in the input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer An access control method,
The request packet stored in the input buffer across the plurality of input buffers is searched, and the same address as that of the write request request packet stored in any one of the plurality of input buffers is obtained. A search step for detecting whether or not there is a write request request packet selected prior to the write request request packet by the arbitration unit;
The detection step has the same address as the write request request packet stored in any one of the plurality of input buffers, and is selected by the arbitration unit before the write request request packet. A memory access control method comprising: an execution processing step of canceling the second write request request packet when it is detected that the second write request request packet exists.

1対n型の接続構成を有する並列プロセッサシステムの概略構成図である。1 is a schematic configuration diagram of a parallel processor system having a 1: n connection configuration. FIG. 本発明の一実施形態が適用された並列プロセッサシステムの概略構成図である。1 is a schematic configuration diagram of a parallel processor system to which an embodiment of the present invention is applied. リクエストパケットの概念的な構成図である。It is a conceptual block diagram of a request packet. 検索要求部の機能ブロック図である。It is a functional block diagram of a search request part. 結果判定部の機能ブロック図である。It is a functional block diagram of a result judgment part. 比較の機能ブロック図である。It is a functional block diagram of a comparison. リクエストパケットをキャンセルする一連の処理の流れを示すフローチャート図である。It is a flowchart figure which shows the flow of a series of processes which cancel a request packet. リード要求リクエストパケットがキャンセルされるまでのリクエストパケットの流れを示す概念図である。It is a conceptual diagram which shows the flow of the request packet until a read request request packet is canceled. ライト要求リクエストパケットがキャンセルされるまでのリクエストパケットの流れを示す概念図である。It is a conceptual diagram which shows the flow of the request packet until a write request request packet is canceled. 本発明の第2実施形態におけるバッファ検索制御部の構成図である。It is a block diagram of the buffer search control part in 2nd Embodiment of this invention. 本発明の第2実施形態における検索要求部の機能ブロック図である。It is a functional block diagram of the search request | requirement part in 2nd Embodiment of this invention. 本発明の第2実施形態におけるにおける比較部の機能ブロック図である。It is a functional block diagram of the comparison part in 2nd Embodiment of this invention. 本発明の第2実施形態における判定部の機能ブロック図である。It is a functional block diagram of the determination part in 2nd Embodiment of this invention. アドレス比較・R/W確認部における処理の流れを示す図である。It is a figure which shows the flow of a process in an address comparison and R / W confirmation part.

符号の説明Explanation of symbols

200 並列プロセッサシステム
201 共有メモリ装置
202_0,202_1,…,202_n プロセッサ
204_0,204_1,…,204_n 送受信部
205_0,205_1,…,205_n 入力バッファ
206_0,206_1,…,206_n 入力レジスタ
221 アービトレーション部
222 アクセスバッファ
222_0,222_1,…,222_XX 蓄積バッファ
223 アクセスレジスタ
224 キャッシュメモリ
230,1001 バッファ検索制御部
234,1004 アドレス比較部
240 共有メモリ
300 リクエストパケット
401,1101 検索要求部
501,1003 結果判定部
601_0,601_1,…,601_XX,1004_0,1004_1,…,1004_XX 比較部
200 parallel processor system 201 shared memory device 202_0, 202_1,..., 202_n processor 204_0, 204_1,. , 222_1,..., 222_XX storage buffer 223 access register 224 cache memory 230, 1001 buffer search control unit 234, 1004 address comparison unit 240 shared memory 300 request packet 401, 1101 search request unit 501, 1003 result determination unit 601_0, 601_1,. , 601_XX, 1004_0, 1004_1,..., 1004_XX comparison unit

Claims (4)

複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該アクセスバッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
In a memory access control device that controls access to a shared memory shared by a plurality of processors,
A request packet issued from each of the plurality of processors and requesting access to the shared memory, including a distinction between a write request and a read request, and an address of the shared memory is stored for each of the plurality of processors. Multiple input buffers,
An access buffer for accumulating request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
A search unit that searches the access buffer and detects whether a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer;
When the search unit detects that a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer, the search unit stores the same address in the access buffer. The data to be written to the shared memory by the write request request packet is taken out from the access buffer, sent to the processor that issued the read request request packet of the same address among the plurality of processors, and the read request of the same address A memory access control device comprising a preceding processing unit for canceling a request packet.
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
In a memory access control device that controls access to a shared memory shared by a plurality of processors,
A request packet issued from each of the plurality of processors and requesting access to the shared memory, including a distinction between a write request and a read request, and an address of the shared memory is stored for each of the plurality of processors. Multiple input buffers,
An access buffer for accumulating request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
A search unit that searches the access buffer and detects whether or not a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer;
When the search unit detects that a write request request packet having the same address as the write request request packet existing in the input buffer exists in the access buffer, the search unit stores the same address in the access buffer. A memory access control device comprising: a preceding processing unit that cancels a write request request packet.
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該入力バッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
In a memory access control device that controls access to a shared memory shared by a plurality of processors,
A request packet issued from each of the plurality of processors and requesting access to the shared memory, including a distinction between a write request and a read request, and an address of the shared memory is stored for each of the plurality of processors. Multiple input buffers,
An access buffer for accumulating request packets in the order of access to the shared memory;
An arbitration unit that sequentially selects the request packets stored in the input buffer according to a predetermined arbitration rule, and moves the selected request packets from the input buffer to the access buffer;
The request packet stored in the input buffer across the plurality of input buffers is searched, and the same address as that of the read request request packet stored in any one of the plurality of input buffers is obtained. A search unit for detecting whether or not there is a write request request packet selected prior to the read request request packet by the arbitrating unit;
The search unit has the same address as the read request request packet stored in any one of the plurality of input buffers, and is selected by the arbitration unit before the read request request packet. When it is detected that a write request request packet exists, the data written to the shared memory by the write request request packet of the same address is taken out of the input buffer, and the same address of the plurality of processors And a preceding processing unit that cancels the read request request packet at the same address, and sends the read request request packet to the processor that issued the read request request packet.
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検索ステップにより、前記アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該アクセスバッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
A request packet issued from each of a plurality of processors and requesting access to a shared memory shared by the plurality of processors, including a distinction between a write request and a read request and an address of the shared memory, Multiple input buffers to accumulate for each,
An access buffer for accumulating request packets in the order of access to the shared memory;
A memory in a memory access control device comprising: an arbitration unit that sequentially selects request packets stored in the input buffer according to a predetermined arbitration rule and moves the selected request packets from the input buffer to the access buffer An access control method,
A search step of searching the access buffer and detecting whether or not a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer;
When it is detected by the search step that a write request request packet having the same address as the read request request packet existing in the input buffer exists in the access buffer, the same address in the access buffer is stored. The data to be written to the shared memory by the write request request packet is taken out from the access buffer, sent to the processor that issued the read request request packet of the same address among the plurality of processors, and the read request of the same address A memory access control method comprising: an execution processing step for canceling a request packet.
JP2007317193A 2007-12-07 2007-12-07 Memory access control device and memory access control method Expired - Fee Related JP4900219B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007317193A JP4900219B2 (en) 2007-12-07 2007-12-07 Memory access control device and memory access control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007317193A JP4900219B2 (en) 2007-12-07 2007-12-07 Memory access control device and memory access control method

Publications (2)

Publication Number Publication Date
JP2009140324A true JP2009140324A (en) 2009-06-25
JP4900219B2 JP4900219B2 (en) 2012-03-21

Family

ID=40870851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007317193A Expired - Fee Related JP4900219B2 (en) 2007-12-07 2007-12-07 Memory access control device and memory access control method

Country Status (1)

Country Link
JP (1) JP4900219B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103147A (en) * 1992-09-22 1994-04-15 Kofu Nippon Denki Kk Degeneration store controller
JP2005011029A (en) * 2003-06-18 2005-01-13 Matsushita Electric Ind Co Ltd Memory access control device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103147A (en) * 1992-09-22 1994-04-15 Kofu Nippon Denki Kk Degeneration store controller
JP2005011029A (en) * 2003-06-18 2005-01-13 Matsushita Electric Ind Co Ltd Memory access control device

Also Published As

Publication number Publication date
JP4900219B2 (en) 2012-03-21

Similar Documents

Publication Publication Date Title
TWI250411B (en) Method, apparatus and system for memory access
US8200939B2 (en) Memory management unit in a microprocessor system
US8266343B2 (en) Systems and methods for automated sensor polling
US20060236008A1 (en) System and method for removing retired entries from a command buffer using tag information
EP2377026B1 (en) Resolving contention between data bursts
US9372798B2 (en) Data processing apparatus having first and second protocol domains, and method for the data processing apparatus
JP2006309755A5 (en)
US9858190B2 (en) Maintaining order with parallel access data streams
US7203780B2 (en) System and method for facilitating communication between devices on a bus using tags
GB2415067A (en) Managing conflicting read and write operations on separate read and write buses
EP1733308B1 (en) Intelligent pci bridging consisting of prefetching all data prior to sending data to requesting service
JP4983919B2 (en) Arithmetic processing device and control method of arithmetic processing device
US20070260754A1 (en) Hardware Assisted Exception for Software Miss Handling of an I/O Address Translation Cache Miss
JP5057360B2 (en) Semiconductor device, data processing device, and access method to storage device
US6832268B2 (en) Mechanism to guarantee forward progress for incoming coherent input/output (I/O) transactions for caching I/O agent on address conflict with processor transactions
JP4832278B2 (en) Frame transfer method and apparatus
JP4900219B2 (en) Memory access control device and memory access control method
JP4990262B2 (en) Buffer device
US8560776B2 (en) Method for expediting return of line exclusivity to a given processor in a symmetric multiprocessing data processing system
US20040230717A1 (en) Processing device
CN107203339B (en) Data storage method and device
US6880046B1 (en) Multiprocessor system and memory access method
CN100478916C (en) Internal storage management system and method
GB2550829A (en) Transaction response modification within interconnect circuitry
KR102476933B1 (en) An interconnect and method of operation of an interconnect

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111128

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

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

R150 Certificate of patent (=grant) 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: 20150113

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees