JP2017010319A - Arithmetic processing device, information processing device, and information processing device control method - Google Patents

Arithmetic processing device, information processing device, and information processing device control method Download PDF

Info

Publication number
JP2017010319A
JP2017010319A JP2015125808A JP2015125808A JP2017010319A JP 2017010319 A JP2017010319 A JP 2017010319A JP 2015125808 A JP2015125808 A JP 2015125808A JP 2015125808 A JP2015125808 A JP 2015125808A JP 2017010319 A JP2017010319 A JP 2017010319A
Authority
JP
Japan
Prior art keywords
data
unit
arithmetic processing
packet
target data
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
JP2015125808A
Other languages
Japanese (ja)
Other versions
JP6665429B2 (en
Inventor
哲志 中川
Tetsushi Nakagawa
哲志 中川
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 JP2015125808A priority Critical patent/JP6665429B2/en
Publication of JP2017010319A publication Critical patent/JP2017010319A/en
Application granted granted Critical
Publication of JP6665429B2 publication Critical patent/JP6665429B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To shorten read-out latency for processing object data.SOLUTION: An arithmetic processing device 10A connected with another arithmetic processing device 10B includes: a processing unit 11A for generating a readout request for processing object data; a communication unit 14A for transmitting the readout request to the other arithmetic processing device 10B and for receiving a data block including the processing object data corresponding to the transmitted readout request from the other arithmetic processing device 10B; a buffer 141 for storing the data block; a writing unit 142 for sequentially writing multiple pieces of unit data included in the data block received by the communication unit 14A in the buffer; and a reading unit 143 for preferentially reading out the processing object data, i.e. at least one of the multiple pieces of unit data from the buffer 141.SELECTED DRAWING: Figure 1

Description

本件は、演算処理装置、情報処理装置、および情報処理装置の制御方法に関する。   The present case relates to an arithmetic processing device, an information processing device, and a control method for the information processing device.

PC(Personal Computer),サーバなどの情報処理装置には、メモリから読み出したデータに対する演算処理を行なう、CPU(Central Processing Unit)などの演算処理装置が含まれる。このような情報処理装置では、エンドポイントであるCPUからメモリに対する読出要求となるフェッチ要求が発行された後、当該読出要求に対応する応答データをCPUが受信するまでのレイテンシが、処理性能の重要なファクタの一つになっている。   An information processing apparatus such as a PC (Personal Computer) or a server includes an arithmetic processing apparatus such as a CPU (Central Processing Unit) that performs arithmetic processing on data read from a memory. In such an information processing apparatus, the latency until the CPU receives response data corresponding to the read request after the fetch request, which is a read request to the memory, is issued from the CPU that is the endpoint is an important factor in processing performance. It is one of the factors.

また、情報処理装置としては、複数のCPUを相互に通信可能に接続されるマルチプロセッサシステムが用いられる場合がある。このようなマルチプロセッサシステムでは、近年、例えば図14に示すように、複数のCPUやルータの相互間が、高速シリアル伝送によるネットワークを介して接続される。高速シリアル伝送を採用することによって、通信の高スループットを実現することができる。   Further, as the information processing apparatus, a multiprocessor system in which a plurality of CPUs are connected so as to communicate with each other may be used. In such a multiprocessor system, in recent years, as shown in FIG. 14, for example, a plurality of CPUs and routers are connected to each other via a network using high-speed serial transmission. By adopting high-speed serial transmission, high communication throughput can be realized.

特開2010−124448号公報JP 2010-124448 A 特開2010−116228号公報JP 2010-116228 A

ところで、高速シリアル伝送によるネットワークでは、伝送エラーがCRC(Cyclic Redundancy Check;巡回冗長検査)によってチェックされる。そして、伝送エラーが検出されるとパケットの末尾がEDB(end bad)に書き換えられる。そのため、エンドポイント(CPU)では、応答データを含むパケットの末尾までの全てのデータを受信しないと、そのパケットが正常か否かを判定することができない。   By the way, in a network using high-speed serial transmission, a transmission error is checked by CRC (Cyclic Redundancy Check). When a transmission error is detected, the end of the packet is rewritten to EDB (end bad). Therefore, the endpoint (CPU) cannot determine whether or not the packet is normal unless it receives all the data up to the end of the packet including the response data.

したがって、フェッチ要求を発行したCPUでは、当該フェッチ要求に応じた応答データを含むパケットの末尾までの全てのデータが、一旦、受信バッファに保存されてから、受信バッファにおけるデータが先頭から順にCPUコアに送り出される。   Therefore, in the CPU that has issued the fetch request, all the data up to the end of the packet including the response data corresponding to the fetch request is temporarily stored in the reception buffer, and then the data in the reception buffer is processed in order from the top. Sent out.

しかしながら、受信バッファはFIFO(First In First Out)であるので、CPUコアが要求している処理対象データ(一単位データ;例えば8バイトデータ)の、受信バッファからの読出は、当該単位データ直前のデータが読み出されるまで待たされる。このため、CPUコアから見て通信レイテンシが大きくなり処理性能が低下する場合がある。   However, since the reception buffer is a FIFO (First In First Out), the processing target data requested by the CPU core (one unit data; for example, 8-byte data) is read from the reception buffer immediately before the unit data. Wait until data is read. For this reason, when viewed from the CPU core, communication latency may increase and processing performance may deteriorate.

一つの側面で、本件明細書に開示の発明は、処理対象データの読出レイテンシを短縮することを目的とする。   In one aspect, an object of the invention disclosed in this specification is to shorten a read latency of data to be processed.

本件の演算処理装置は、他の演算処理装置に接続されるものであって、処理部,通信部,バッファ,書込部および読出部を有する。前記処理部は、処理対象データの読出要求を生成する。前記通信部は、前記処理部が生成した読出要求を前記他の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記他の演算処理装置から受信する。前記バッファは、前記データブロックを保存する。前記書込部は、前記通信部が受信したデータブロックに含まれる複数の単位データを前記バッファに順次書き込む。前記読出部は、前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す。   The arithmetic processing device of the present case is connected to another arithmetic processing device, and includes a processing unit, a communication unit, a buffer, a writing unit, and a reading unit. The processing unit generates a read request for processing target data. The communication unit transmits a read request generated by the processing unit to the other arithmetic processing device and receives a data block including the processing target data corresponding to the transmitted read request from the other arithmetic processing device. To do. The buffer stores the data block. The writing unit sequentially writes a plurality of unit data included in the data block received by the communication unit to the buffer. The reading unit preferentially reads the data to be processed, which is at least one of the plurality of unit data, from the buffer.

一実施形態によれば、処理対象データの読出レイテンシを短縮することができる。   According to one embodiment, it is possible to shorten the read latency of data to be processed.

本発明の第1実施形態および第2実施形態としての演算処理装置(CPU)を含む情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus containing the arithmetic processing unit (CPU) as 1st Embodiment and 2nd Embodiment of this invention. 第1実施形態の情報処理装置において一CPUから他CPUへフェッチ要求を行なう場合のパケットルーティングを説明する図である。It is a figure explaining packet routing in the case of making a fetch request from one CPU to another CPU in the information processing apparatus of the first embodiment. 第1実施形態におけるフェッチ応答パケットのヘッダのフォーマットを示す図である。It is a figure which shows the format of the header of the fetch response packet in 1st Embodiment. 第1実施形態のCPUにおけるルータに含まれる受信バッファおよび当該受信バッファに対するパケット書込/読出処理に係る構成(書込部および読出部)を示すブロック図である。It is a block diagram which shows the structure (a writing part and a reading part) which concerns on the receiving buffer contained in the router in 1st Embodiment, and the packet writing / reading process with respect to the said receiving buffer. 図4に示すパケット読出処理に係る構成(読出部)を詳細に示すブロック図である。FIG. 5 is a block diagram showing in detail a configuration (reading unit) related to the packet reading process shown in FIG. 4. 図5に示すパケット読出処理に係る構成(読出部)の動作を説明するフローチャートである。6 is a flowchart illustrating an operation of a configuration (reading unit) related to the packet reading process illustrated in FIG. 5. 図4および図5に示すパケット読出処理に係る構成(読出部)が図6に示すフローチャートに従って10番目のデータを最初に読み出す場合の動作を示すタイムチャートである。6 is a time chart illustrating an operation when the configuration (reading unit) according to the packet reading process illustrated in FIGS. 4 and 5 first reads tenth data according to the flowchart illustrated in FIG. 6. (A)は第2実施形態におけるフェッチ要求パケットのヘッダのフォーマットを示す図、(B)は第2実施形態におけるフェッチ応答パケットのヘッダのフォーマットを示す図である。(A) is a figure which shows the format of the header of the fetch request packet in 2nd Embodiment, (B) is a figure which shows the format of the header of the fetch response packet in 2nd Embodiment. 第2実施形態の情報処理装置において一CPUから他CPUへフェッチ要求を行なう場合のパケットルーティングを説明する図である。It is a figure explaining packet routing in the case of making a fetch request from one CPU to another CPU in the information processing apparatus of the second embodiment. 第2実施形態のCPUにおけるルータに含まれる受信バッファおよび当該受信バッファに対するパケット書込/読出処理に係る構成(書込部および読出部)を示すブロック図である。It is a block diagram which shows the structure (a writing part and a reading part) which concerns on the receiving buffer contained in the router in CPU of 2nd Embodiment, and the packet write / read process with respect to the said receiving buffer. 図10に示すパケット読出処理に係る構成(読出部)を詳細に示すブロック図である。It is a block diagram which shows in detail the structure (reading part) which concerns on the packet reading process shown in FIG. 図11に示すパケット読出処理に係る構成(読出部)の動作を説明するフローチャートである。12 is a flowchart illustrating an operation of a configuration (reading unit) related to the packet reading process illustrated in FIG. 11. 図10および図11に示すパケット読出処理に係る構成(読出部)が図12に示すフローチャートに従って2,6,10,14番目のデータを先に読み出す場合の動作を示すタイムチャートである。12 is a time chart showing an operation when the configuration (reading unit) related to the packet reading process shown in FIG. 10 and FIG. 11 reads the second, sixth, tenth and fourteenth data first in accordance with the flowchart shown in FIG. マルチプロセッサシステム(情報処理装置)の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of a multiprocessor system (information processing apparatus). マルチコアプロセッサ(CPU,演算処理装置)の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of a multi-core processor (CPU, arithmetic processing unit). 図14に示すマルチプロセッサシステムにおいて一CPUから他CPUへフェッチ要求を行なう場合のパケットルーティングを説明する図である。FIG. 15 is a diagram illustrating packet routing when a fetch request is made from one CPU to another CPU in the multiprocessor system shown in FIG. 14. (A)はデータ無しパケットのフォーマットを示す図、(B)はデータ付きパケットのフォーマットを示す図である。(A) is a figure which shows the format of a packet without data, (B) is a figure which shows the format of a packet with data. (A)はフェッチ要求パケットのヘッダのフォーマットを示す図、(B)はフェッチ応答パケットのヘッダのフォーマットを示す図である。(A) is a figure which shows the format of the header of a fetch request packet, (B) is a figure which shows the format of the header of a fetch response packet. 図15に示すCPU(マルチコアプロセッサ)におけるルータに含まれる受信バッファおよび当該受信バッファに対するパケット書込/読出処理に係る構成を示すブロック図である。FIG. 16 is a block diagram showing a configuration relating to a reception buffer included in a router and a packet writing / reading process for the reception buffer in the CPU (multi-core processor) shown in FIG. 15. 図19に示すパケット書込処理に係る構成の動作を説明するフローチャートである。20 is a flowchart for explaining the operation of the configuration related to the packet writing process shown in FIG. 19. 図19に示すパケット読出処理に係る構成の動作を説明するフローチャートである。20 is a flowchart for explaining the operation of the configuration related to the packet reading process shown in FIG. 図19に示すパケット書込/読出処理に係る構成において最短ケースの動作を示すタイムチャートである。20 is a time chart showing an operation in the shortest case in the configuration related to the packet writing / reading processing shown in FIG. 図19に示すパケット書込処理に係る構成において受信パケットの末尾がEDBである場合の動作を示すタイムチャートである。FIG. 20 is a time chart showing an operation when the end of the received packet is EDB in the configuration related to the packet writing process shown in FIG. 19. FIG.

以下に、図面を参照し、本願の開示する演算処理装置、情報処理装置、および情報処理装置の制御方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。   Hereinafter, embodiments of an arithmetic processing device, an information processing device, and a control method for the information processing device disclosed in the present application will be described in detail with reference to the drawings. However, the embodiment described below is merely an example, and there is no intention to exclude application of various modifications and techniques not explicitly described in the embodiment. That is, the present embodiment can be implemented with various modifications without departing from the spirit of the present embodiment. Each figure is not intended to include only the components shown in the figure, and may include other functions. And each embodiment can be suitably combined in the range which does not contradict a processing content.

〔1〕本実施形態に関連する技術
まず、図14〜図23を参照しながら本実施形態に関連する技術について説明する。
近年、マルチプロセッサシステム(情報処理装置)では、通信の高スループットを実現すべく、図14に示すように、複数のCPUやルータの相互間が、高速シリアル伝送によるネットワーク(図16の符号30参照)を介して接続される。図14は、マルチプロセッサシステムの構成の一例を示すブロック図である。
[1] Technology Related to the Present Embodiment First, the technology related to the present embodiment will be described with reference to FIGS.
In recent years, in a multiprocessor system (information processing apparatus), a high-speed serial transmission network (see reference numeral 30 in FIG. 16) is used between a plurality of CPUs and routers to achieve high communication throughput. ). FIG. 14 is a block diagram illustrating an example of a configuration of a multiprocessor system.

また、近年、CPUとしては、複数のコア(core)を内蔵したマルチコアプロセッサが一般的に用いられる。ここで、図15を参照しながら、図14に示すマルチプロセッサシステムを構成する各CPU(マルチコアプロセッサ,演算処理装置)10の構成の一例について説明する。図15は、CPU10の構成の一例を示すブロック図である。   In recent years, a multi-core processor incorporating a plurality of cores is generally used as the CPU. Here, an example of the configuration of each CPU (multi-core processor, arithmetic processing unit) 10 constituting the multiprocessor system shown in FIG. 14 will be described with reference to FIG. FIG. 15 is a block diagram illustrating an example of the configuration of the CPU 10.

図15に示すように、CPU10においては、複数のコア11が共有キャッシュ(三次キャッシュ)12を介して接続されている。図15では、コア11として、N+1個のコア#0〜コア#N(Nは1以上の整数)が備えられている。図15では、一次キャッシュ(不図示)および二次キャッシュ(不図示)が各コア11に内蔵され、三次キャッシュが、共有キャッシュ12として用いられているが、一次キャッシュを各コア11に内蔵し、二次キャッシュを共有キャッシュ12として用いてもよい。   As shown in FIG. 15, in the CPU 10, a plurality of cores 11 are connected via a shared cache (tertiary cache) 12. In FIG. 15, the core 11 includes N + 1 cores # 0 to #N (N is an integer equal to or greater than 1). In FIG. 15, a primary cache (not shown) and a secondary cache (not shown) are built in each core 11, and a tertiary cache is used as the shared cache 12. However, a primary cache is built in each core 11, A secondary cache may be used as the shared cache 12.

共有キャッシュ12には、コア11のほかにMAC(Memory Access Controller)13およびルータ(Router)14が接続されている。MAC13は、メインメモリとして機能するDIMM(Dual Inline Memory Module)20を接続され、DIMM20とのデータのやり取りを制御する制御部として機能する。ルータ14は、他のCPU10または他のルータ(例えばルーティング用のLSI(Large Scale Integrated circuit))に接続され、パケットによって、他のCPU10とのデータの通信を行なう通信部として機能する。   In addition to the core 11, a MAC (Memory Access Controller) 13 and a router (Router) 14 are connected to the shared cache 12. The MAC 13 is connected to a DIMM (Dual Inline Memory Module) 20 that functions as a main memory, and functions as a control unit that controls data exchange with the DIMM 20. The router 14 is connected to another CPU 10 or another router (for example, an LSI (Large Scale Integrated circuit) for routing), and functions as a communication unit that performs data communication with the other CPU 10 by a packet.

このようなCPU10において、コア11の一つがメモリデータの読出(フェッチ)を要求する場合(フェッチ要求を発行する場合)について考える。コア11は、当該コア11が必要とする8バイトのデータ(処理対象データ)を示すアドレスを指定して、まず、コア11に内蔵されたキャッシュ(一次キャッシュ,二次キャッシュ)にアクセスする。その結果、コア11は、キャッシュヒットすると、当該8バイトのデータを内蔵キャッシュから読み出す。   In such a CPU 10, consider a case where one of the cores 11 requests reading (fetching) of memory data (when issuing a fetch request). The core 11 designates an address indicating 8-byte data (processing target data) required by the core 11 and first accesses a cache (primary cache, secondary cache) built in the core 11. As a result, when the core 11 hits the cache, the core 11 reads the 8-byte data from the internal cache.

一方、コア11は、内蔵メモリでキャッシュミスすると、複数のコアによって共有している共有キャッシュ(図15では3次キャッシュ)12にアクセスする。しかし、共有キャッシュ12でもキャッシュミスすると、メインメモリ20に対するアクセスが行なわれる。共有キャッシュ12のキャッシュラインサイズは、例えば128バイトであるため、MAC13に対しては、コア11の要求する8バイトの処理対象データを含む128バイトのデータブロックの読出が要求される。   On the other hand, when a cache miss occurs in the built-in memory, the core 11 accesses a shared cache (tertiary cache in FIG. 15) 12 shared by a plurality of cores. However, if a cache miss occurs in the shared cache 12, the main memory 20 is accessed. Since the cache line size of the shared cache 12 is, for example, 128 bytes, the MAC 13 is requested to read a 128-byte data block including 8-byte processing target data requested by the core 11.

次に、コア11が、当該コア11の属するCPU10(例えば図14や図16のCPU#0)と異なる他のCPU10(例えば図14や図16のCPU#1)におけるメモリデータ(例えば8バイトの処理対象データ)の読出を要求する場合について、図16を参照しながら説明する。図16は、図14に示すマルチプロセッサシステムにおいて一CPU#0から他CPU#1へフェッチ要求を行なう場合のパケットルーティングを説明する図である。   Next, the core 11 has memory data (for example, 8-byte memory) in another CPU 10 (for example, CPU # 1 in FIGS. 14 and 16) different from the CPU 10 (for example, CPU # 0 in FIGS. 14 and 16) to which the core 11 belongs. A case of requesting reading of (processing target data) will be described with reference to FIG. FIG. 16 is a diagram for explaining packet routing when a fetch request is made from one CPU # 0 to another CPU # 1 in the multiprocessor system shown in FIG.

この場合、図16に示すように、CPU#0におけるコア11は、フェッチ要求パケットを、ルータ14およびネットワーク30を介して他のCPU#1へ送信する。フェッチ要求パケットを受け取ったCPU#1は、要求されたメモリデータ(8バイトの処理対象データ)を含むデータブロックを、CPU#1のDIMM20から読み出し、フェッチ応答パケットとしてデータブロックを送り返す。このときのデータブロックのサイズは128バイトである。   In this case, as shown in FIG. 16, the core 11 in the CPU # 0 transmits the fetch request packet to the other CPU # 1 via the router 14 and the network 30. Receiving the fetch request packet, the CPU # 1 reads a data block including the requested memory data (8-byte processing target data) from the DIMM 20 of the CPU # 1, and sends back the data block as a fetch response packet. The size of the data block at this time is 128 bytes.

ここで、図17(A)および図17(B)を参照しながら、フェッチ要求パケットおよびフェッチ応答パケットについて説明する。図17(A)はデータ無しパケット(フェッチ要求パケット)のフォーマットを示す図であり、図17(B)はデータ付きパケット(フェッチ応答パケット)のフォーマットを示す図である。   Here, the fetch request packet and the fetch response packet will be described with reference to FIGS. 17 (A) and 17 (B). FIG. 17A is a diagram showing the format of a packet without data (fetch request packet), and FIG. 17B is a diagram showing the format of a packet with data (fetch response packet).

パケットには、図17(A)に示すようなデータ無しパケットと、図17(B)に示すようなデータ付きパケットとがある。CPU#0からCPU#1へ送信されるフェッチ要求パケットは、データ無しパケットであり、当該フェッチ要求パケットに対するフェッチ応答パケットは、データ付きパケットである。パケットの先頭サイクルは、パケットの内容や宛先を判別するための情報を載せたヘッダ(Header;HD)である。   The packet includes a packet without data as shown in FIG. 17A and a packet with data as shown in FIG. The fetch request packet transmitted from CPU # 0 to CPU # 1 is a no-data packet, and the fetch response packet for the fetch request packet is a packet with data. The head cycle of the packet is a header (HD) on which information for determining the content and destination of the packet is placed.

さらに、図18(A)および図18(B)を参照しながら、フェッチ要求パケットおよびフェッチ応答パケットのヘッダについて説明する。図18(A)はフェッチ要求パケットのヘッダのフォーマットを示す図であり、図18(B)はフェッチ応答パケットのヘッダのフォーマットを示す図である。   Further, the header of the fetch request packet and the fetch response packet will be described with reference to FIGS. 18 (A) and 18 (B). FIG. 18A is a diagram showing the format of the header of the fetch request packet, and FIG. 18B is a diagram showing the format of the header of the fetch response packet.

図18(A)に示すように、フェッチ要求パケットのヘッダには、パケットの種別を表すOpcode(オペコード;OPC)や、コア11の要求するメモリデータのPhysical Address(物理アドレス;PAまたはpa)や、パケットを識別するための識別子であるRequest ID(RQID)などの情報が含まれる。図18(B)に示すように、フェッチ応答パケットのヘッダには、OPCやRQIDなどの情報が含まれる。なお、RSV(reserve)は、未使用のビットである。   As shown in FIG. 18A, the header of the fetch request packet includes an Opcode (opcode; OPC) indicating the type of packet, a physical address (physical address; PA or pa) of memory data requested by the core 11, and the like. , Information such as Request ID (RQID), which is an identifier for identifying a packet, is included. As shown in FIG. 18B, the header of the fetch response packet includes information such as OPC and RQID. RSV (reserve) is an unused bit.

コア11の要求する処理対象データを含む128バイトのデータブロックは、図17(B)に示すように、ヘッダの後に、8バイトのデータに分けられ、16サイクルかけて送信される。フェッチ応答パケットにおいて、各サイクルの8バイトデータは、先頭から順に物理アドレスpa[6:3] = 0000, 0001, … , 1111におけるデータData0, Data1, … , DataFに対応する。   As shown in FIG. 17B, the 128-byte data block including the processing target data requested by the core 11 is divided into 8-byte data after the header and transmitted over 16 cycles. In the fetch response packet, 8-byte data in each cycle corresponds to data Data0, Data1,..., DataF at physical addresses pa [6: 3] = 0000, 0001,.

CPU#1からフェッチ応答パケットを受け取ったCPU#0(ルータ14)は、フェッチ応答パケットに添付されたデータブロックを、CPU#0の共有キャッシュ12に登録するとともに、フェッチ要求を行なったコア11へ送る。   The CPU # 0 (router 14) that has received the fetch response packet from the CPU # 1 registers the data block attached to the fetch response packet in the shared cache 12 of the CPU # 0 and to the core 11 that has made the fetch request. send.

一方、CPU#0,#1間の伝送エラーは、パケットに付されたCRCをパケット受信側でチェックすることによって検出される。伝送エラーが検出されると、伝送エラーを検出したパケット以降のパケットは破棄され、DLLP(Data Link Layer Packet)を用いてNACK(Negative ACKnowledgement)を送ることで、送信側CPU#1に対しパケットの再送が要求される。   On the other hand, a transmission error between the CPUs # 0 and # 1 is detected by checking the CRC attached to the packet at the packet receiving side. When a transmission error is detected, the packets after the packet in which the transmission error is detected are discarded, and a NACK (Negative ACKnowledgement) is sent using DLLP (Data Link Layer Packet), so that the packet of the packet is sent to the sending CPU # 1. A resend is requested.

伝送エラーを検出したパケットを、中継点(ルータ;図14参照)や受信側CPU#0において破棄することができない場合、当該パケットは、当該パケットの末尾をEDBにして送出される。   When a packet in which a transmission error is detected cannot be discarded at the relay point (router; see FIG. 14) or the receiving CPU # 0, the packet is sent with the end of the packet as EDB.

受信側CPU#0におけるルータ14は、他のCPU#1から受信したフェッチ応答パケットを、一旦、当該ルータ14内のバッファ(図19の符号141参照)に格納する。当該バッファを受信バッファという。受信バッファはFIFOのバッファである。ここで、図19〜図23を参照しながら、受信バッファ141および当該受信バッファに対するパケット書込/読出処理について説明する。   The router 14 in the receiving CPU # 0 temporarily stores the fetch response packet received from the other CPU # 1 in a buffer (see reference numeral 141 in FIG. 19) in the router 14 concerned. This buffer is called a reception buffer. The reception buffer is a FIFO buffer. Here, with reference to FIGS. 19 to 23, the reception buffer 141 and packet writing / reading processing for the reception buffer will be described.

図19は、図15に示すCPU10におけるルータ14に含まれる受信バッファ141および当該受信バッファ141に対するパケット書込/読出処理に係る構成を示すブロック図である。図19に示すように、受信バッファ141の書込側には、WDR(Write Data Register;書込データレジスタ),HDWP(Header Write Pointer;ヘッダ書込ポインタ)およびWP(Write Pointer;書込ポインタ)が備えられる。また、受信バッファ141の読出側には、RDR(Read Data Register;読出データレジスタ)およびRP(Read Pointer;読出ポインタ)が備えられる。   FIG. 19 is a block diagram showing a configuration relating to reception buffer 141 included in router 14 and packet writing / reading processing to reception buffer 141 in CPU 10 shown in FIG. As shown in FIG. 19, on the write side of the reception buffer 141, WDR (Write Data Register), HDWP (Header Write Pointer) and WP (Write Pointer) are provided. Is provided. On the reading side of the reception buffer 141, an RDR (Read Data Register) and an RP (Read Pointer) are provided.

WDRは、受信バッファ141に書き込まれる書込対象データ(一単位データ;例えば8バイトデータ)を一時的に保存するレジスタである。WPは、書込対象パケットの書込を制御するもので、WDRに保存されている書込対象データの、受信バッファ141における書込先アドレスを指定するポインタである。WPは、初期状態では0を設定され、書込対象パケットの受信バッファ141への書込時に1サイクル毎に1ずつインクリメントされる。WDRに保存されている書込対象データは、WPによって指定されるアドレスに書き込まれる。HDWPは、書込対象パケットのヘッダのアドレスを指定するポインタであり、初期状態では0を設定される。   The WDR is a register that temporarily stores write target data (one unit data; for example, 8-byte data) to be written in the reception buffer 141. The WP controls writing of a write target packet, and is a pointer that specifies a write destination address in the reception buffer 141 of write target data stored in the WDR. WP is set to 0 in the initial state, and is incremented by 1 every cycle when the write target packet is written to the reception buffer 141. The write target data stored in the WDR is written at an address specified by the WP. HDWP is a pointer that specifies the address of the header of the write target packet, and is set to 0 in the initial state.

RDRは、受信バッファ141から読み出された読出データ(一単位データ;例えば8バイトデータ)を一時的に保存するレジスタである。RPは、受信バッファ141からのデータの読出を制御するもので、受信バッファ141から読み出すデータのアドレスを指定するポインタである。RPは、初期状態では0を設定され、受信バッファ141からのデータ読出時に1サイクル毎に1ずつインクリメントされる。RPによって指定されるアドレスのデータは、受信バッファ141から読み出され、RDRに一時的に保存され、前述したように共有キャッシュ12に登録されるとともにフェッチ要求を行なったコア11へ送信される。   The RDR is a register that temporarily stores read data (one unit data; for example, 8-byte data) read from the reception buffer 141. The RP controls reading of data from the reception buffer 141 and is a pointer for designating an address of data read from the reception buffer 141. RP is set to 0 in the initial state, and is incremented by 1 every cycle when data is read from the reception buffer 141. Data at the address specified by the RP is read from the reception buffer 141, temporarily stored in the RDR, registered in the shared cache 12 as described above, and transmitted to the core 11 that has made the fetch request.

図20に示すフローチャート(ステップS101〜S107)に従って、図19に示すパケット書込処理に係る構成(CPU#0におけるルータ14)の動作について説明する。ルータ14は、パケット書込時にヘッダ(HD)またはデータ(DT)の受信を待機しており(ステップS101のNOルート)、ヘッダ(HD)またはデータ(DT)を受信すると(ステップS101のYESルート)、EDBを受信したか否かを判断する(ステップS102)。   The operation of the configuration related to the packet writing process shown in FIG. 19 (router 14 in CPU # 0) will be described according to the flowchart shown in FIG. 20 (steps S101 to S107). The router 14 waits for reception of the header (HD) or data (DT) at the time of packet writing (NO route of step S101), and receives the header (HD) or data (DT) (YES route of step S101). ), It is determined whether an EDB has been received (step S102).

EDBを受信していない場合(ステップS102のNOルート)、ルータ14は、パケットの最終サイクルを示すENDを受信したか否かを判断する(ステップS103)。ENDを受信した場合(ステップS103のYESルート)、ルータ14は、HDWPに、次の書込対象パケットの先頭アドレス(ヘッダのアドレス)を指定する値として、WP+1を設定する(ステップS104)。この後、ルータ14は、WPによって指定される、受信バッファ141のエントリに、WDRにおけるデータ(又はヘッダ)を書き込んでから(ステップS105)、WPを1インクリメントし(ステップS106)、ステップS101の処理に戻る。   If the EDB has not been received (NO route in step S102), the router 14 determines whether or not an END indicating the final cycle of the packet has been received (step S103). When END is received (YES route in step S103), the router 14 sets WP + 1 as a value for designating the head address (header address) of the next write target packet in the HDWP (step S104). Thereafter, the router 14 writes the data (or header) in the WDR to the entry of the reception buffer 141 specified by the WP (step S105), increments the WP by 1 (step S106), and performs the process of step S101. Return to.

ステップS102でEDBを受信したと判断した場合(YESルート)、ルータ14は、WPにHDWPを設定し(ステップS107)、ステップS101の処理に戻る。これによって、現在の書込対象パケット(末尾にEDBを設定されたパケット)が、再度、先頭(ヘッダ)から順に受信バッファ141へ書き込まれる。   If it is determined in step S102 that an EDB has been received (YES route), the router 14 sets HDWP in the WP (step S107), and returns to the processing in step S101. As a result, the current write target packet (packet with EDB set at the end) is written again to the reception buffer 141 in order from the head (header).

ついで、図21に示すフローチャート(ステップS111〜S113)に従って、図19に示すパケット読出処理に係る構成(CPU#0におけるルータ14)の動作について説明する。ルータ14は、RPの値とHDWPの値とが一致しているか否かを判断する(ステップS111)。RPの値とHDWPの値とが一致している場合(ステップS111のYESルート)、ルータ14は、書込対象パケットの書込中であると判断し、ステップS111の処理に戻る。   Next, the operation of the configuration (router 14 in CPU # 0) related to the packet reading process shown in FIG. 19 will be described according to the flowchart shown in FIG. 21 (steps S111 to S113). The router 14 determines whether or not the RP value matches the HDWP value (step S111). If the RP value matches the HDWP value (YES route in step S111), the router 14 determines that the write target packet is being written, and returns to the process in step S111.

RPの値とHDWPの値とが一致しない場合(ステップS111のNOルート)、ルータ14は、書込対象パケットの書込を完了したと判断し、受信バッファ141からのパケット読出を開始する(図22のタイミングT18参照)。つまり、ルータ14は、RPによって指定される、受信バッファ141のエントリ(一単位データ)を、受信バッファ141からRDR経由で読み出す(ステップS112)。この後、ルータ14は、RPを1インクリメントし(ステップS113)、ステップS111の処理に戻る。   If the RP value and the HDWP value do not match (NO route of step S111), the router 14 determines that the writing of the write target packet has been completed, and starts reading the packet from the reception buffer 141 (FIG. 22 timing T18). That is, the router 14 reads the entry (one unit data) of the reception buffer 141 designated by the RP from the reception buffer 141 via RDR (step S112). Thereafter, the router 14 increments RP by 1 (step S113) and returns to the process of step S111.

ここで、受信バッファ141に対するフェッチ応答パケットの書込/読出処理の最短ケースのタイムチャートを図22に示す。図22に示すように、初期状態(タイミングT0参照)において、WE(Write Enable)およびRE(Read Enable)はLow状態に設定され、WP,HDWP,RPは0に設定される。パケットの書込処理は、WEをHigh状態にすることで開始され、まずヘッダHDがWDR経由で受信バッファ141に書き込まれる(タイミングT1参照)。   Here, FIG. 22 shows a time chart of the shortest case of writing / reading processing of the fetch response packet with respect to the reception buffer 141. As shown in FIG. 22, in the initial state (see timing T0), WE (Write Enable) and RE (Read Enable) are set to the Low state, and WP, HDWP, and RP are set to 0. The packet writing process is started by setting WE to a high state, and first, the header HD is written to the reception buffer 141 via the WDR (see timing T1).

以降、WPが1ずつインクリメントされる都度、16個のデータDT0〜DTFがWDR経由で受信バッファ141に順次書き込まれる(タイミングT2〜T17参照;図20のステップS103のNOルートからステップS105,S106参照)。   Thereafter, each time WP is incremented by 1, 16 pieces of data DT0 to DTF are sequentially written to the reception buffer 141 via the WDR (see timing T2 to T17; refer to steps S105 and S106 from the NO route of step S103 in FIG. 20). ).

そして、タイミングT17で、データDTFとパケットの最終サイクルを示すENDとが受信されると、WEがLow状態に設定されるとともにREがHigh状態に設定される。これに伴い、タイミングT18で、HDWPの値として、次のパケットのヘッダのアドレスを示す値WP+1=17が設定される(図20のステップS103のYESルートからステップS104)。これにより、HDWPの値17とRPの値1とが不一致になり(図21のステップS111のNOルート)、パケットの読出処理が開始され、まずヘッダHDがRDR経由で受信バッファ141から読み出される(タイミングT18参照)。   When data DTF and END indicating the last cycle of the packet are received at timing T17, WE is set to the Low state and RE is set to the High state. Accordingly, at timing T18, the value WP + 1 = 17 indicating the header address of the next packet is set as the HDWP value (from the YES route in step S103 in FIG. 20 to step S104). As a result, the HDWP value 17 and the RP value 1 do not match (NO route in step S111 in FIG. 21), and the packet reading process is started. First, the header HD is read from the reception buffer 141 via the RDR ( (See timing T18).

以降、RPが1インクリメントされる都度、16個のデータDT0〜DTFがRDR経由で受信バッファ141から順次読み出される(タイミングT19〜T34参照;図21のステップS111のNOルートからステップS112,S113参照)。このような読出処理は、タイミングT34でHDWPの値とRPの値とが一致するまで(つまり図21のステップS111でYESと判定されるまで)実行される。図22に示す例では、タイミングT34においてHDWPの値とRPの値とは、17で一致している。   Thereafter, each time RP is incremented by 1, 16 pieces of data DT0 to DTF are sequentially read from the reception buffer 141 via RDR (see timings T19 to T34; refer to steps S112 and S113 from the NO route of step S111 in FIG. 21). . Such a reading process is executed until the HDWP value and the RP value match at timing T34 (that is, until YES is determined in step S111 in FIG. 21). In the example shown in FIG. 22, the HDWP value and the RP value coincide with each other at the timing T <b> 34.

図20〜図22を参照しながら上述したように、パケット読出処理は、パケットの最終サイクルで最後の単位データが書き込まれるのを待ってから開始される。これは、パケットの最終サイクル(末尾)がEDBである場合には、パケットを破棄する必要があるためである。   As described above with reference to FIGS. 20 to 22, the packet reading process is started after waiting for the last unit data to be written in the final cycle of the packet. This is because the packet needs to be discarded when the last cycle (end) of the packet is EDB.

ついで、受信したフェッチ応答パケットの末尾がEDBである場合のタイムチャートを図23に示す。図23では、図22と同様の手順に従ってパケットのデータDT8の書込タイミングT10になった時点で、EDBが検出される場合が例示されている。この場合、タイミングT11で、WPの値としてHDWPの値(図23では0)が保存される(図20のステップS102のYESルートからステップS107参照)。   Next, FIG. 23 shows a time chart when the end of the received fetch response packet is EDB. FIG. 23 illustrates a case where EDB is detected at the time when the write timing T10 of the packet data DT8 is reached according to the same procedure as in FIG. In this case, at timing T11, the HDWP value (0 in FIG. 23) is stored as the WP value (refer to step S107 from the YES route in step S102 in FIG. 20).

これにより、受信バッファ141からの読出処理を行なうことなく、現在の書込対象パケット(末尾にEDBを設定されたパケット)が、再度、先頭(ヘッダ)から順に受信バッファ141へ書き込まれる。その際、末尾にEDBを設定されたパケットは、後続のパケットによって上書きされる。   Thus, the current write target packet (packet with EDB set at the end) is written again to the reception buffer 141 in order from the head (header) without performing the reading process from the reception buffer 141. At that time, a packet with EDB at the end is overwritten by a subsequent packet.

〔2〕本実施形態の概要
上述したように、高速シリアル伝送によるネットワーク30では、伝送エラーがCRCによってチェックされる。そして、伝送エラーが検出されるとパケットの末尾がEDBに書き換えられる。そのため、エンドポイント(CPU#0)では、応答データ(処理対象データ)を含むパケットの末尾までの全てのデータを受信しないと、そのパケットが正常か否かを判定することができない。
[2] Outline of the Embodiment As described above, in the network 30 based on high-speed serial transmission, a transmission error is checked by the CRC. When a transmission error is detected, the end of the packet is rewritten to EDB. Therefore, the endpoint (CPU # 0) cannot determine whether or not the packet is normal unless it receives all the data up to the end of the packet including the response data (processing target data).

したがって、フェッチ要求を発行したCPU#0では、当該フェッチ要求に応じた応答データを含むパケットの末尾までの全てのデータが、一旦、受信バッファ141に保存されてから、受信バッファ141におけるデータが先頭から順にコア11に送り出される。   Therefore, in CPU # 0 that issued the fetch request, all the data up to the end of the packet including the response data corresponding to the fetch request is temporarily stored in the reception buffer 141, and then the data in the reception buffer 141 is the head. Are sent to the core 11 in order.

しかし、受信バッファ141はFIFOであるので、コア11が要求している処理対象データ(一単位データ;例えば8バイトデータ)の、受信バッファ141からの読出は、当該単位データ直前のデータが読み出されるまで待たされる。このため、コア11から見て通信レイテンシが大きくなり、CPU#0の処理性能や、当該CPU#0を含む情報処理装置(マルチプロセッサシステム)の処理性能が低下する場合がある。   However, since the reception buffer 141 is a FIFO, the processing target data (one unit data; for example, 8-byte data) requested by the core 11 is read from the reception buffer 141 by reading the data immediately before the unit data. Wait until. For this reason, the communication latency increases from the viewpoint of the core 11, and the processing performance of the CPU # 0 and the processing performance of the information processing apparatus (multiprocessor system) including the CPU # 0 may decrease.

このため、高速シリアル伝送のネットワーク30で接続されるマルチプロセッサシステムにおいて、コア11が要求する処理対象データの読出レイテンシを短縮することが望まれている。   For this reason, in a multiprocessor system connected by a high-speed serial transmission network 30, it is desired to shorten the read latency of processing target data requested by the core 11.

そこで、本実施形態(第1および第2実施形態)では、例えば、他のCPU10から読み出され転送されてきたフェッチ応答パケットにおける128バイトのデータブロックのうち、コア11が必要とする8バイトの処理対象データが、先に受信バッファ141から読み出されコア11へ送られる。これにより、コア11から見た通信レイテンシ(処理対象データの読出レイテンシ)が短縮される。   Therefore, in the present embodiment (first and second embodiments), for example, of the 128-byte data block in the fetch response packet read and transferred from the other CPU 10, the 8-byte required by the core 11 is used. The processing target data is first read from the reception buffer 141 and sent to the core 11. As a result, the communication latency (read latency of processing target data) viewed from the core 11 is shortened.

つまり、後述する第1実施形態の情報処理装置では、上述した関連技術と同様、エンドポイントの受信バッファ141に、フェッチ要求に対する応答パケットが全て書き込まれる。エンドポイントは、高速シリアル伝送のネットワーク30に接続されフェッチ応答パケットを受信する受信側CPU10A(図1参照;第1の演算処理装置,CPU#0)である。しかし、第1実施形態の情報処理装置では、図1〜図7を参照しながら後述するように、パケットの書込後、パケットの受信バッファ141からの読出時には、受信バッファ141に書き込んだ順ではなく、コア11が要求する8バイトの処理対象データが最初に読み出される。   That is, in the information processing apparatus according to the first embodiment to be described later, all response packets to the fetch request are written in the reception buffer 141 of the endpoint, as in the related art described above. The end point is a receiving CPU 10A (see FIG. 1; first arithmetic processing unit, CPU # 0) that is connected to the high-speed serial transmission network 30 and receives a fetch response packet. However, in the information processing apparatus according to the first embodiment, as will be described later with reference to FIGS. 1 to 7, after the packet is written, when the packet is read from the reception buffer 141, Instead, the 8-byte processing target data requested by the core 11 is read first.

後述する第1実施形態の情報処理装置は、コア11が要求する8バイトの処理対象データを最初に読み出すため、フェッチ応答パケットは、コア11が要求する処理対象データを示す物理アドレス(pa[6:3])を含む(図2,図3参照)。また、エンドポイントにおいては、上述した関連技術のパケット読出処理に係る構成(図19のRPおよびRDR参照)に、後述するHDRP(ヘッダ読出ポインタ),LengthレジスタおよびCycleCT(サイクルカウンタ)が追加される(図4および図5の読出部143参照)。HDRP,LengthレジスタおよびCycleCTを用いてRPを制御することで、コア11が要求する8バイトの処理対象データを最初に読み出すことが可能になっている(図5〜図7参照)。   Since the information processing apparatus according to the first embodiment, which will be described later, first reads 8-byte processing target data requested by the core 11, the fetch response packet includes a physical address (pa [6] indicating the processing target data requested by the core 11. : 3]) (see FIGS. 2 and 3). In addition, in the end point, HDRP (header read pointer), Length register, and CycleCT (cycle counter), which will be described later, are added to the configuration related to the packet read processing of the related technology described above (see RP and RDR in FIG. 19). (See the reading unit 143 in FIGS. 4 and 5). By controlling the RP using the HDRP, Length register, and CycleCT, it is possible to first read 8-byte processing target data requested by the core 11 (see FIGS. 5 to 7).

このようにして、CPU10Aのコア11から要求される処理対象データを先頭にして受信バッファ141から読み出すことで読出レイテンシが短縮される。例えば、コア11が要求する処理対象データがパケットの最後尾である場合、当該処理対象が最初に読み出されることで、レイテンシを[パケットのデータ部分のサイクル数−1]だけ短縮することができる。逆に、処理対象データがパケットの先頭だった場合、レイテンシは変わらない。つまり、レイテンシの短縮サイクル数は、処理対象データがパケットの何番目のデータであるかによって変わる。したがって、平均すると、[パケットのデータ部分のサイクル数−1]/2程度、レイテンシを短縮することが可能である。   In this way, the read latency is shortened by reading from the reception buffer 141 with the processing target data requested from the core 11 of the CPU 10A as the head. For example, when the processing target data requested by the core 11 is the tail end of the packet, the processing target is read first, so that the latency can be shortened by [the number of cycles of the data portion of the packet−1]. Conversely, if the data to be processed is at the beginning of the packet, the latency does not change. That is, the number of cycles for shortening the latency varies depending on what number of data the processing target data is. Therefore, on average, it is possible to reduce the latency by about [number of cycles of the data portion of the packet-1] / 2.

また、図1および図8〜図13を参照しながら後述する第2実施形態は、行列計算等で発生するストライドアクセスにおいて、1個のデータ付きパケット内に、必要な単位データ(処理対象データ)が複数存在する場合に対応する技術である。行列の計算などで配列を扱う際、コア11は、パケット長よりも短い一定間隔をあけたアドレスにおける複数の単位データを要求し、当該複数の単位データが1つのパケットに含まれている。   In the second embodiment to be described later with reference to FIG. 1 and FIGS. 8 to 13, in the stride access generated by matrix calculation or the like, necessary unit data (processing target data) is included in one packet with data. This is a technique corresponding to the case where there are a plurality of. When an array is handled by matrix calculation or the like, the core 11 requests a plurality of unit data at addresses having a fixed interval shorter than the packet length, and the plurality of unit data is included in one packet.

このような場合、第2実施形態では、受信バッファ141からパケットを読み出す際、必要な複数の単位データを、他の単位データよりも前(先頭側)に詰めて送出することで、必要な複数の単位データが、他の単位データよりも先に読み出される。これにより、CPU10Aのコア11から見たレイテンシが、大幅に短縮される。   In such a case, in the second embodiment, when a packet is read from the reception buffer 141, a plurality of necessary unit data are sent before being packed (front side) before the other unit data, and the necessary plurality of unit data are transmitted. These unit data are read before other unit data. Thereby, the latency seen from the core 11 of the CPU 10A is greatly shortened.

〔3〕第1実施形態の情報処理装置
図1を参照しながら、本発明の第1実施形態としての演算処理装置(CPU)10A,10Bを含む情報処理装置(マルチプロセッサシステム)1の構成について説明する。図1は、その構成を示すブロック図である。
[3] Information processing apparatus according to the first embodiment With reference to FIG. 1, the configuration of an information processing apparatus (multiprocessor system) 1 including arithmetic processing units (CPUs) 10A and 10B according to the first embodiment of the present invention. explain. FIG. 1 is a block diagram showing the configuration.

図1に示すように、第1実施形態の情報処理装置1は、複数(図1で2個)のCPU10A,10Bを有するマルチプロセッサシステムであり、例えばPC,サーバである。CPU10Aは、第1の演算処理装置に相当し、受信側CPUもしくはCPU#0と表記する場合がある。また、CPU10Bは、第2の演算処理装置に相当し、送信側CPUもしくはCPU#1と表記する場合がある。なお、第1実施形態の情報処理装置1には2個のCPUが備えられているが、本発明は、これに限定されるものでなく、3個以上のCPUが備えられてもよい。   As shown in FIG. 1, the information processing apparatus 1 according to the first embodiment is a multiprocessor system having a plurality (two in FIG. 1) of CPUs 10A and 10B, such as a PC and a server. The CPU 10A corresponds to the first arithmetic processing unit, and may be referred to as a receiving CPU or CPU # 0. Further, the CPU 10B corresponds to a second arithmetic processing unit and may be referred to as a transmitting CPU or CPU # 1. Although the information processing apparatus 1 according to the first embodiment includes two CPUs, the present invention is not limited to this, and may include three or more CPUs.

CPU10AとCPU10Bとは、高速シリアル伝送によるネットワーク30を介して相互に通信可能に接続される。   The CPU 10A and the CPU 10B are connected to be communicable with each other via a network 30 based on high-speed serial transmission.

CPU10Aは、図15に示すCPU10と同様、複数のコア11Aを内蔵したマルチコアプロセッサである。CPU10Aにおいては、複数のコア11が共有キャッシュ(三次キャッシュ)12Aを介して接続されている。図1では、コア11Aとして、N+1個のコア#0〜コア#N(Nは1以上の整数)が備えられている。図1では、一次キャッシュ(不図示)および二次キャッシュ(不図示)が各コア11に内蔵され、三次キャッシュが、共有キャッシュ12Aとして用いられているが、一次キャッシュを各コア11Aに内蔵し、二次キャッシュを共有キャッシュ12Aとして用いてもよい。   The CPU 10A is a multi-core processor incorporating a plurality of cores 11A, as with the CPU 10 shown in FIG. In the CPU 10A, a plurality of cores 11 are connected via a shared cache (tertiary cache) 12A. In FIG. 1, as the core 11A, N + 1 cores # 0 to #N (N is an integer equal to or greater than 1) are provided. In FIG. 1, a primary cache (not shown) and a secondary cache (not shown) are built in each core 11, and a tertiary cache is used as the shared cache 12A, but a primary cache is built in each core 11A. A secondary cache may be used as the shared cache 12A.

共有キャッシュ12Aには、コア11AのほかにMAC13Aおよびルータ14Aが接続されている。MAC13Aは、メインメモリとして機能するDIMM20Aを接続され、DIMM20Aとのデータのやり取りを制御する制御部として機能する。ルータ14Aは、他のCPU10Bまたは他のルータ(例えばルーティング用のLSI;図14参照)に接続され、パケットによって、他のCPU10Bとのデータの通信を行なう第1の通信部として機能する。   In addition to the core 11A, a MAC 13A and a router 14A are connected to the shared cache 12A. The MAC 13A is connected to a DIMM 20A that functions as a main memory, and functions as a control unit that controls data exchange with the DIMM 20A. The router 14A is connected to another CPU 10B or another router (for example, an LSI for routing; see FIG. 14), and functions as a first communication unit that performs data communication with the other CPU 10B by a packet.

CPU10Bは、コア11B,共有キャッシュ(三次キャッシュ)12B,MAC13B,ルータ14Bを有している。コア11B,共有キャッシュ12B,MAC13B,ルータ14Bは、それぞれ、上述したCPU10Aのコア11A,共有キャッシュ12A,MAC13A,ルータ14Aと同様である。ただし、MAC13Bは、メインメモリとして機能するDIMM20Bを接続され、DIMM20Bとのデータのやり取りを制御する制御部として機能する。ルータ14Bは、他のCPU10Aまたは他のルータ(例えばルーティング用のLSI;図14参照)に接続され、パケットによって、他のCPU10Aとのデータの通信を行なう第2の通信部として機能する。   The CPU 10B includes a core 11B, a shared cache (tertiary cache) 12B, a MAC 13B, and a router 14B. The core 11B, shared cache 12B, MAC 13B, and router 14B are the same as the core 11A, shared cache 12A, MAC 13A, and router 14A of the CPU 10A described above, respectively. However, the MAC 13B is connected to a DIMM 20B that functions as a main memory, and functions as a control unit that controls exchange of data with the DIMM 20B. The router 14B is connected to another CPU 10A or another router (for example, a routing LSI; see FIG. 14), and functions as a second communication unit that performs data communication with the other CPU 10A by a packet.

CPU10Aにおける複数のコア(処理部)11Aのうちの少なくとも一つは、必要な処理対象データ(例えば8バイトの単位データ)の読出要求を生成する。以下では、読出要求をフェッチ要求という場合がある。   At least one of the plurality of cores (processing units) 11A in the CPU 10A generates a read request for necessary processing target data (for example, 8-byte unit data). Hereinafter, the read request may be referred to as a fetch request.

CPU10Aにおけるルータ(第1の通信部)14Aは、一のコア11Aが生成したフェッチ要求を、フェッチ要求パケット(図2,図17(A)参照)によってCPU10Bへ送信する。また、ルータ(第1の通信部)14Aは、フェッチ要求に対応する処理対象データを含むデータブロックを添付されたフェッチ応答パケット(図2,図17(B)参照)を、CPU10Bから受信する。   The router (first communication unit) 14A in the CPU 10A transmits a fetch request generated by one core 11A to the CPU 10B by a fetch request packet (see FIGS. 2 and 17A). Further, the router (first communication unit) 14A receives from the CPU 10B a fetch response packet (see FIGS. 2 and 17B) attached with a data block including data to be processed corresponding to the fetch request.

一方、CPU10Bにおけるルータ(第2の通信部)14Bは、フェッチ要求パケット(図2,図17(A)参照)によって、CPU10Aからフェッチ要求を受信する。また、ルータ(第2の通信部)14Bは、フェッチ要求に対応する処理対象データを含むデータブロックを添付されたフェッチ応答パケット(図2,図17(B)参照)を、CPU10Aへ送信する。   On the other hand, the router (second communication unit) 14B in the CPU 10B receives the fetch request from the CPU 10A by a fetch request packet (see FIGS. 2 and 17A). Further, the router (second communication unit) 14B transmits a fetch response packet (see FIGS. 2 and 17B) to which the data block including the processing target data corresponding to the fetch request is attached to the CPU 10A.

特に、第1実施形態において、CPU10Bのルータ(第2の通信部)14Bは、フェッチ要求(フェッチ要求パケットのヘッダ)に含まれるアドレス情報(図18(A)のPA参照)から取り出された処理対象データのアドレス情報pa[6:3]を記録した応答ヘッダをデータブロックに付す。ここで、応答ヘッダは、例えば図3を参照しながら後述するフェッチ応答パケットのヘッダである。そして、ルータ(第2の通信部)14Bは、応答ヘッダを付したデータブロックを、フェッチ応答パケット(図2,図17(B)参照)としてCPU10Aへ送信する。   In particular, in the first embodiment, the router (second communication unit) 14B of the CPU 10B performs processing extracted from address information (see PA in FIG. 18A) included in the fetch request (the header of the fetch request packet). A response header in which the address information pa [6: 3] of the target data is recorded is attached to the data block. Here, the response header is, for example, a header of a fetch response packet described later with reference to FIG. Then, the router (second communication unit) 14B transmits the data block with the response header to the CPU 10A as a fetch response packet (see FIGS. 2 and 17B).

CPU10Aのルータ(第1の通信部)14Aは、受信バッファ141,書込部142,読出部143を有する。第1実施形態において、受信バッファ141,書込部142,読出部143は、CPU10Aのルータ14A内に備えられているが、CPU10A内に備えられていればよい。   The router (first communication unit) 14A of the CPU 10A includes a reception buffer 141, a writing unit 142, and a reading unit 143. In the first embodiment, the reception buffer 141, the writing unit 142, and the reading unit 143 are provided in the router 14A of the CPU 10A, but may be provided in the CPU 10A.

受信バッファ(バッファ)141は、データブロックを添付されたデータ付きパケットを単位データ(例えば8バイト)で保存する。   The reception buffer (buffer) 141 stores a packet with data attached with a data block as unit data (for example, 8 bytes).

書込部142は、ルータ14Aによって受信されたパケット(ヘッダおよびデータブロック)に含まれる複数の単位データを、受信バッファ141に順次書き込む。第1実施形態の書込部142は、図4を参照しながら後述するごとく、図19に示した関連技術と同様に構成されている。   The writing unit 142 sequentially writes a plurality of unit data included in the packet (header and data block) received by the router 14A in the reception buffer 141. As will be described later with reference to FIG. 4, the writing unit 142 of the first embodiment is configured in the same manner as the related technique shown in FIG. 19.

読出部143は、パケットに含まれる複数の単位データのうちの少なくとも一つである処理対象データを、受信バッファ141から優先的に読み出す。特に、第1実施形態の読出部143は、データブロックに付された応答ヘッダに記録された処理対象データのアドレス情報pa[6:3]を参照する。そして、読出部143は、まず、参照した当該アドレス情報pa[6:3]に対応する処理対象データを受信バッファ141から読み出した後、当該処理対象データ以外の単位データを受信バッファ141から順次読み出す。第1実施形態の読出部143は、図4および図5を参照しながら後述するごとく構成され、図6および図7を参照しながら後述するごとく動作する。   The reading unit 143 reads from the reception buffer 141 preferentially processing target data that is at least one of the plurality of unit data included in the packet. In particular, the reading unit 143 according to the first embodiment refers to the address information pa [6: 3] of the processing target data recorded in the response header attached to the data block. The reading unit 143 first reads processing target data corresponding to the referenced address information pa [6: 3] from the reception buffer 141, and then sequentially reads unit data other than the processing target data from the reception buffer 141. . The reading unit 143 of the first embodiment is configured as described later with reference to FIGS. 4 and 5, and operates as described later with reference to FIGS. 6 and 7.

なお、第1実施形態では、CPU10Aが、第1の通信部としての機能や、受信バッファ141,書込部142,読出部143としての機能を有し、CPU10Bが、第2の通信部としての機能を有する場合について説明している。しかし、複数のCPU10A,10Bのそれぞれが、第1および第2の通信部としての機能と、受信バッファ141,書込部142,読出部143としての機能とを有していてもよい。   In the first embodiment, the CPU 10A has a function as a first communication unit and functions as a reception buffer 141, a writing unit 142, and a reading unit 143, and the CPU 10B serves as a second communication unit. The case of having a function is described. However, each of the plurality of CPUs 10 </ b> A and 10 </ b> B may have a function as the first and second communication units and a function as the reception buffer 141, the writing unit 142, and the reading unit 143.

ここで、図2を参照しながら、図1に示す情報処理装置1において、一CPU10Aのコア11Aから他CPU10Bのメモリデータに対するフェッチ要求を発行する場合のパケットルーティングについて説明する。   Here, referring to FIG. 2, in the information processing apparatus 1 shown in FIG. 1, packet routing in the case where a fetch request for memory data of another CPU 10B is issued from the core 11A of one CPU 10A will be described.

この場合、図2に示すように、必要な処理対象データを読み出すためのフェッチ要求パケット(データ無しパケット)が、CPU10Aから発行・送信され、ネットワーク30経由で、当該処理対象データを保持するメモリ20Bを有するCPU10Bにルーティングされる。ルータ14Bによってフェッチ要求パケットを受信したCPU10Bは、要求された処理対象データを含むデータブロックをメモリ20Bから読み出し、フェッチ応答パケット(データ付きパケット)を生成し、当該フェッチ応答パケットをCPU10Aに送信する。   In this case, as shown in FIG. 2, a fetch request packet (packet without data) for reading out necessary processing target data is issued / transmitted from the CPU 10A, and the memory 20B holds the processing target data via the network 30. Is routed to the CPU 10B. The CPU 10B that has received the fetch request packet by the router 14B reads the data block including the requested processing target data from the memory 20B, generates a fetch response packet (packet with data), and transmits the fetch response packet to the CPU 10A.

このとき、CPU10Bで生成されるフェッチ応答パケットのヘッダ(応答ヘッダ)のフォーマットを図3に示す。図3に示すように、第1実施形態では、フェッチ応答パケットのヘッダに、フェッチ要求対象の単位データ(処理対象データ)を特定可能な4ビットの物理アドレスpa[6:3]が載せられている。4ビットの物理アドレスpa[6:3]は、フェッチ応答パケットに含まれるデータブロックにおける複数の単位データ(例えば16個の8バイトデータ)のうちの、どの単位データがCPU10A側のコア11Aによって要求されているのかを識別するための情報である。   At this time, the format of the header (response header) of the fetch response packet generated by the CPU 10B is shown in FIG. As shown in FIG. 3, in the first embodiment, a 4-bit physical address pa [6: 3] capable of specifying unit data (processing target data) to be fetched is placed in the header of the fetch response packet. Yes. The 4-bit physical address pa [6: 3] is requested by the core 11A on the CPU 10A side out of which unit data (for example, 16 8-byte data) in the data block included in the fetch response packet. This is information for identifying whether or not

CPU10Bがフェッチ応答パケットを生成する際、フェッチ要求パケットのヘッダに載っている物理アドレスPA(図18(A)参照)から、フェッチ要求対象の単位データを特定可能な4ビットの物理アドレスpa[6:3]が取り出される。取り出された物理アドレスpa[6:3]を、図18(B)を参照しながら前述したヘッダに含ませることにより、図3に示すようなフォーマットの応答ヘッダが生成される。このように生成された応答ヘッダを有するフェッチ応答パケットは、図2に示すように、フェッチ要求の発行元であるCPU10Aにルーティングされ送信される。   When the CPU 10B generates the fetch response packet, the 4-bit physical address pa [6] that can specify the unit data to be fetched from the physical address PA (see FIG. 18A) included in the header of the fetch request packet. : 3] is taken out. By including the extracted physical address pa [6: 3] in the header described above with reference to FIG. 18B, a response header having a format shown in FIG. 3 is generated. The fetch response packet having the response header generated in this way is routed and transmitted to the CPU 10A that is the issuer of the fetch request, as shown in FIG.

CPU10A側で受信されたフェッチ応答パケットは、まず、ルータ14Aに設けられた受信バッファ141に、書込部142(図1,図4参照)によって、一旦、単位データ毎に書き込まれる。この後、読出部143′におけるRPの値(読み出すべき単位データのアドレス)を制御することで、受信バッファ141に書き込まれたパケットのうち、コア11Aが要求する処理対象データが、受信バッファ141から優先的に読み出される。図4は、図1に示すCPU10Aにおけるルータ14Aに含まれる受信バッファ141および当該受信バッファ141に対するパケット書込/読出処理に係る構成(書込部142および読出部143)を示すブロック図である。   The fetch response packet received on the CPU 10A side is first written to the reception buffer 141 provided in the router 14A once for each unit data by the writing unit 142 (see FIGS. 1 and 4). Thereafter, by controlling the RP value (address of the unit data to be read) in the reading unit 143 ′, the processing target data requested by the core 11A out of the packet written in the reception buffer 141 is received from the reception buffer 141. Read preferentially. FIG. 4 is a block diagram showing a reception buffer 141 included in router 14A in CPU 10A shown in FIG. 1 and a configuration (writing unit 142 and reading unit 143) relating to packet writing / reading processing with respect to reception buffer 141.

図4に示すように、第1実施形態の書込部142は、図19に示した関連技術の受信バッファ141に対するパケット書込処理に係る構成と同様のWDR,HDWPおよびWPを有する。また、第1実施形態の読出部143は、図19に示した関連技術の受信バッファ141に対するパケット書込処理に係る構成と同様のRDRおよびRPに加え、HDRP(Header Read Pointer;ヘッダ読出ポインタ),LengthレジスタおよびCycleCT(Cycle Counter;サイクルカウンタ)を有する。   As shown in FIG. 4, the writing unit 142 of the first embodiment has the same WDR, HDWP, and WP as the configuration related to the packet writing process for the reception buffer 141 of the related technology shown in FIG. In addition to the same RDR and RP as the configuration related to the packet writing process with respect to the reception buffer 141 of the related technique shown in FIG. 19, the reading unit 143 of the first embodiment includes an HDRP (Header Read Pointer). , Length register and CycleCT (Cycle Counter).

WDRは、受信バッファ141に書き込まれる書込対象データ(一単位データ;例えば8バイトデータ)を一時的に保存するレジスタである。WPは、書込対象パケットの書込を制御するもので、WDRに保存されている書込対象データの、受信バッファ141における書込先アドレスを指定するポインタである。WPは、初期状態では0を設定され、書込対象パケットの受信バッファ141への書込時に1サイクル毎に1ずつインクリメントされる。WDRに保存されている書込対象データは、WPによって指定されるアドレスに書き込まれる。HDWPは、書込対象パケットのヘッダのアドレスを指定するポインタであり、初期状態では0を設定される。   The WDR is a register that temporarily stores write target data (one unit data; for example, 8-byte data) to be written in the reception buffer 141. The WP controls writing of a write target packet, and is a pointer that specifies a write destination address in the reception buffer 141 of write target data stored in the WDR. WP is set to 0 in the initial state, and is incremented by 1 every cycle when the write target packet is written to the reception buffer 141. The write target data stored in the WDR is written at an address specified by the WP. HDWP is a pointer that specifies the address of the header of the write target packet, and is set to 0 in the initial state.

RDRは、受信バッファ141から読み出された読出データ(一単位データ;例えば8バイトデータ)を一時的に保存するレジスタである。RPは、受信バッファ141からのデータの読出を制御するもので、受信バッファ141から読み出すデータのアドレスを指定するポインタである。RPは、初期状態では0を設定され、受信バッファ141からのデータ読出時に1サイクル毎に1ずつインクリメントされる。RPによって指定されるアドレスのデータは、受信バッファ141から読み出され、RDRに一時的に保存され、前述したように共有キャッシュ12Aに登録されるとともにフェッチ要求を行なったコア11へ送信される。   The RDR is a register that temporarily stores read data (one unit data; for example, 8-byte data) read from the reception buffer 141. The RP controls reading of data from the reception buffer 141 and is a pointer for designating an address of data read from the reception buffer 141. RP is set to 0 in the initial state, and is incremented by 1 every cycle when data is read from the reception buffer 141. Data at the address specified by the RP is read from the reception buffer 141, temporarily stored in the RDR, registered in the shared cache 12A as described above, and transmitted to the core 11 that has made the fetch request.

HDRPは、受信バッファ141から読出中のパケットのヘッダのアドレスを示すポインタであり、初期状態では0を設定される。Lengthレジスタは、受信バッファ141から読出中のパケットのデータ長(パケット長)Lengthを設定される。Lengthレジスタに設定されるデータ長Lengthは、ヘッダを受信バッファ141から読み出した際に、Length生成部143a(図5参照)によって当該ヘッダにおけるOpcode(パケット種)から生成され設定される。CycleCTは、受信バッファ141から読出中のパケットの単位データが、何個目の単位データであるかを示すカウンタであり、一サイクル毎につまり一単位データを読み出す都度、1ずつインクリメントされる。   HDRP is a pointer indicating the address of the header of the packet being read from the reception buffer 141, and is set to 0 in the initial state. In the Length register, the data length (packet length) Length of the packet being read from the reception buffer 141 is set. The data length Length set in the Length register is generated and set from the Opcode (packet type) in the header by the Length generator 143a (see FIG. 5) when the header is read from the reception buffer 141. CycleCT is a counter indicating what unit data the unit data of the packet being read from the reception buffer 141 is, and is incremented by 1 every cycle, that is, whenever one unit data is read.

ついで、図5を参照しながら、図4に示すパケット読出処理に係る構成、つまり読出部143について、より詳細に説明する。図5は、読出部143の詳細構成を示すブロック図である。図5に示す読出部143は、図6および図7を参照しながら後述するように動作する。図5に示すように、第1実施形態の読出部143は、Length生成部143aと1加算器143b,143dと加算器143c,143e,143fとセレクタ143gとを含む。   Next, the configuration related to the packet reading process shown in FIG. 4, that is, the reading unit 143 will be described in more detail with reference to FIG. FIG. 5 is a block diagram illustrating a detailed configuration of the reading unit 143. The reading unit 143 shown in FIG. 5 operates as described later with reference to FIGS. 6 and 7. As shown in FIG. 5, the reading unit 143 of the first embodiment includes a length generation unit 143a, 1 adders 143b and 143d, adders 143c, 143e and 143f, and a selector 143g.

Length生成部143aは、図4を参照しながら前述したように、ヘッダを受信バッファ141から読み出した際に、当該ヘッダにおけるOpcodeから、受信バッファ141から読出中のパケットのデータ長Lengthを生成し、Lengthレジスタに設定する。   As described above with reference to FIG. 4, the Length generation unit 143 a generates the data length Length of the packet being read from the reception buffer 141 from the Opcode in the header when reading the header from the reception buffer 141. Set in the Length register.

1加算器(+1)143bは、HDRPの示す値(以下、HDRPと表記)に1を加算する。   The 1 adder (+1) 143b adds 1 to a value indicated by HDRP (hereinafter referred to as HDRP).

加算器143cは、Lengthレジスタにおけるデータ長Lengthと、1加算器143bからの値HDRP+1とを加算し、得られた値HDRP+Length+1をHDRPに設定する(図6のステップS24参照)。加算器143cの動作タイミングは、CycleCTの示す値(以下、CycleCTと表記)がデータ長LengthになってCycleCTをリセット(初期化)するタイミング(図6のステップS22および図7のタイミングT34参照)である。   The adder 143c adds the data length Length in the Length register and the value HDRP + 1 from the 1 adder 143b, and sets the obtained value HDRP + Length + 1 to HDRP (see step S24 in FIG. 6). The operation timing of the adder 143c is the timing at which the value indicated by CycleCT (hereinafter referred to as CycleCT) becomes the data length Length and resets (initializes) CycleCT (see step S22 in FIG. 6 and timing T34 in FIG. 7). is there.

1加算器(+1)143dは、RPの示す値(以下、RPと表記)に1を加算する。   The 1 adder (+1) 143d adds 1 to the value indicated by RP (hereinafter referred to as RP).

加算器143eは、コア11Aが要求する処理対象データを特定する物理アドレスpa[6:3]と、1加算器143dからの値RP+1とを加算し、得られた値RP+pa[6:3]+1をRPに設定する(図6のステップS16参照)。物理アドレスpa[6:3]は、読出中のパケットのヘッダからRD−BUS(読出バス)を介して読み出される。加算器143eの動作タイミングは、フェッチ応答パケットからヘッダを読み出すタイミング(図6のステップS15のYESルート;図7のタイミングT18参照)である。当該タイミングで、セレクタ143gは、加算器143eで得られた値RP+pa[6:3]+1をRPに設定するように切替動作を行なう(図5〜図7の(1)参照)。   The adder 143e adds the physical address pa [6: 3] specifying the processing target data requested by the core 11A and the value RP + 1 from the 1 adder 143d, and obtains the obtained value RP + pa [6: 3] +1. Is set to RP (see step S16 in FIG. 6). The physical address pa [6: 3] is read from the header of the packet being read through the RD-BUS (read bus). The operation timing of the adder 143e is the timing for reading the header from the fetch response packet (YES route in step S15 in FIG. 6; see timing T18 in FIG. 7). At this timing, the selector 143g performs a switching operation so that the value RP + pa [6: 3] +1 obtained by the adder 143e is set to RP (see (1) in FIGS. 5 to 7).

加算器143fは、Lengthレジスタにおけるデータ長Lengthと、1加算器143bからの値HDRP+1とを加算し、得られた値HDRP+Length+1をRPに設定する(図6のステップS23参照)。加算器143fの動作タイミングは、CycleCTがデータ長LengthになってCycleCTをリセット(初期化)するタイミング(図6のステップS22;図7のタイミングT34参照)である。当該タイミングで、セレクタ143gは、加算器143fで得られた値HDRP+Length+1をRPに設定するように切替動作を行なう(図5〜図7の(4)参照)。   The adder 143f adds the data length Length in the Length register and the value HDRP + 1 from the 1 adder 143b, and sets the obtained value HDRP + Length + 1 to RP (see step S23 in FIG. 6). The operation timing of the adder 143f is the timing at which CycleCT becomes the data length Length and resets (initializes) CycleCT (step S22 in FIG. 6; see timing T34 in FIG. 7). At this timing, the selector 143g performs a switching operation so that the value HDRP + Length + 1 obtained by the adder 143f is set to RP (see (4) in FIGS. 5 to 7).

また、セレクタ143gは、1加算器143dで得られた値RP+1をRPに設定するように切替動作を行なう(図5〜図7の(2)参照)。当該切替動作を行なうタイミングは、ヘッダのOpcodeがフェッチ応答でない場合(図6のステップS15のNOルート参照)、もしくは、RPがHDRP+Lengthと一致しないタイミング(図6のステップS19のNOルート;図7のタイミングT19〜T23,T25〜T33参照)である。   The selector 143g performs a switching operation so as to set the value RP + 1 obtained by the 1 adder 143d to RP (see (2) in FIGS. 5 to 7). The timing for performing the switching operation is when the Opcode of the header is not a fetch response (see the NO route in step S15 in FIG. 6), or when the RP does not match HDRP + Length (the NO route in step S19 in FIG. 6; FIG. 7). Timing T19 to T23, T25 to T33).

さらに、セレクタ143gは、1加算器143bで得られた値HDRP+1をRPに設定するように切替動作を行なう(図5〜図7の(3)参照)。当該切替動作を行なうタイミングは、RPがHDRP+Lengthと一致するタイミング(図6のステップS19のYESルート;図7のタイミングT24参照)である。   Further, the selector 143g performs a switching operation so as to set the value HDRP + 1 obtained by the 1 adder 143b to RP (see (3) in FIGS. 5 to 7). The timing for performing the switching operation is the timing at which RP matches HDRP + Length (YES route in step S19 in FIG. 6; see timing T24 in FIG. 7).

なお、上述した書込部142および読出部143としての機能は、論理ゲート等によってハードウエア的にCPU10Aに組み込まれて実現されてもよいし、プログラムを実行することでソフトウエア的にCPU10Aに組み込まれて実現されてもよい。   Note that the functions as the writing unit 142 and the reading unit 143 described above may be realized by being incorporated into the CPU 10A in hardware by a logic gate or the like, or incorporated into the CPU 10A as software by executing a program. May be realized.

次に、図5〜図7を参照しながら、上述のごとく構成された書込部142および読出部143の動作について説明する。図6は、図5に示すパケット読出処理に係る構成(読出部143)の動作を説明するフローチャートである。図7は、図4および図5に示すパケット読出処理に係る構成(読出部143)が図6に示すフローチャートに従って10番目のデータ(DTA)を最初に読み出す場合の動作を示すタイムチャートである。   Next, the operations of the writing unit 142 and the reading unit 143 configured as described above will be described with reference to FIGS. FIG. 6 is a flowchart for explaining the operation of the configuration (reading unit 143) related to the packet reading process shown in FIG. FIG. 7 is a time chart showing an operation when the configuration (reading unit 143) related to the packet reading process shown in FIGS. 4 and 5 first reads the 10th data (DTA) according to the flowchart shown in FIG.

第1実施形態の書込部142によるパケット書込動作は、図20を参照しながら前述した関連技術の動作と同様であるので、その説明は省略する。これに対し、第1実施形態の読出部143によるパケット読出動作は、図21を参照しながら前述した関連技術の動作と異なっている。   The packet writing operation by the writing unit 142 of the first embodiment is the same as the operation of the related art described above with reference to FIG. On the other hand, the packet reading operation by the reading unit 143 of the first embodiment is different from the operation of the related art described above with reference to FIG.

ここで、図6に示すフローチャート(ステップS11〜S24)に従って、図5および図7を参照しながら、第1実施形態の読出部143によるパケット読出動作について説明する。   Here, according to the flowchart shown in FIG. 6 (steps S11 to S24), the packet reading operation by the reading unit 143 of the first embodiment will be described with reference to FIGS.

ルータ14Aは、RPの値とHDWPの値とが一致しているか否かを判断する(ステップS11)。RPの値とHDWPの値とが一致している場合(ステップS11のYESルート)、ルータ14Aは、書込対象パケットの書込中であると判断し、ステップS11の処理に戻る。   The router 14A determines whether or not the RP value matches the HDWP value (step S11). If the RP value matches the HDWP value (YES route in step S11), the router 14A determines that the write target packet is being written, and returns to the process in step S11.

RPの値とHDWPの値とが一致しない場合(ステップS11のNOルート)、ルータ14Aは、書込対象パケットの書込を完了したと判断し、受信バッファ141からのパケット読出を開始する(図7のタイミングT18参照)。つまり、RPによって指定される、受信バッファ141のエントリ(一単位データ)が、受信バッファ141からRDR経由で読み出される(ステップS12)。そして、読み出されたエントリがヘッダ(HD)であるか否かが判断される(ステップS13)。   If the RP value and the HDWP value do not match (NO route in step S11), the router 14A determines that the writing of the write target packet has been completed, and starts reading the packet from the reception buffer 141 (FIG. 7 timing T18). That is, the entry (one unit data) of the reception buffer 141 designated by RP is read from the reception buffer 141 via RDR (step S12). Then, it is determined whether or not the read entry is a header (HD) (step S13).

パケット読出の開始時には、まずパケットのヘッダが読み出されるため、読み出されたエントリはヘッダであると判断される(ステップS13のYESルート)。この場合、読み出されたヘッダのOpcodeが参照され、当該Opcode(パケット種)に基づき、受信バッファ141から読出中のパケットのデータ長Lengthが生成され、生成されたデータ長Lengthが読出部143のLengthレジスタに設定される(ステップS14)。   At the start of packet reading, the header of the packet is read first, so that the read entry is determined to be a header (YES route in step S13). In this case, the Opcode of the read header is referred to, the data length Length of the packet being read from the reception buffer 141 is generated based on the Opcode (packet type), and the generated data length Length is generated by the reading unit 143. It is set in the Length register (step S14).

この後、当該Opcodeがフェッチ応答であるか否かを判断する(ステップS15)。フェッチ応答である場合(ステップS15のYESルート)、セレクタ143gは図5の(1)を選択するように切替動作を行なう。これにより、加算器143eで得られた値RP+pa[6:3]+1がRPに設定され(ステップS16)、CycleCTが1インクリメントされる(ステップS17)。そして、RPに設定された値(アドレス)で指定されるエントリ(データDTA)が読み出される(ステップS11のNOルートからステップS12)。つまり、パケットのヘッダを読み出した際に、ヘッダの物理アドレスpa[6:3]に基づき、コア11Aが要求しているデータに対応する受信バッファ141のアドレスRP+pa[6:3]+1がRPに設定される。図7に示す例では、10番目のデータDTAに対応するアドレスを示す11が、RPにセットされる。   Thereafter, it is determined whether or not the Opcode is a fetch response (step S15). If it is a fetch response (YES route in step S15), the selector 143g performs a switching operation so as to select (1) in FIG. Thus, the value RP + pa [6: 3] +1 obtained by the adder 143e is set to RP (step S16), and CycleCT is incremented by 1 (step S17). Then, the entry (data DTA) designated by the value (address) set in RP is read (from the NO route in step S11 to step S12). That is, when the header of the packet is read, the address RP + pa [6: 3] +1 of the reception buffer 141 corresponding to the data requested by the core 11A becomes RP based on the physical address pa [6: 3] of the header. Is set. In the example shown in FIG. 7, 11 indicating the address corresponding to the tenth data DTA is set in the RP.

この後、次のサイクルで、ヘッダの次に読み出されるエントリはデータであり、この場合(ステップS13のNOルート)、CycleCTの値がデータ長(パケット長)Lengthに到達したか否かが判断される(ステップS18)。つまり、読出対象パケットの全てのデータが読み出されたか否かが判断される。図7では、Length=16の例が示されている。   Thereafter, in the next cycle, the entry read out next to the header is data. In this case (NO route in step S13), it is determined whether or not the value of CycleCT has reached the data length (packet length) Length. (Step S18). That is, it is determined whether or not all data of the read target packet has been read. FIG. 7 shows an example in which Length = 16.

CycleCT=Lengthでない場合(ステップS18のNOルート)、RPの値が値HDRP+Length(図7では値16)に到達したか否かが判断される(ステップS19)。RP=HDRP+Lengthでない場合(ステップS19のNOルート)、もしくは、ヘッダのOpcodeがフェッチ応答でない場合(ステップS15のNOルート)、セレクタ143gは図5の(2)を選択するように切替動作を行なう。これにより、RPの値が値HDRP+Lengthに到達するまで、一単位データを読み出す都度(図7のタイミングT19〜T23参照)、RPの値が1インクリメントされ(ステップS20)、CycleCTが1インクリメントされた後(ステップS17)、処理はステップS11に戻る。   If CycleCT = Length is not satisfied (NO route of step S18), it is determined whether or not the value of RP has reached the value HDRP + Length (value 16 in FIG. 7) (step S19). If RP = HDRP + Length is not satisfied (NO route in step S19), or if the Opcode of the header is not a fetch response (NO route in step S15), the selector 143g performs a switching operation so as to select (2) in FIG. Thus, every time one unit data is read until the value of RP reaches the value HDRP + Length (see timings T19 to T23 in FIG. 7), the value of RP is incremented by 1 (step S20) and CycleCT is incremented by 1. (Step S17), the process returns to Step S11.

RPの値が値HDRP+Lengthに到達すると(ステップS19のYESルート)、セレクタ143gは図5の(3)を選択するように切替動作を行なう。これにより、1加算器143bで得られた値HDRP+1がRPに設定され(ステップS21)、CycleCTが1インクリメントされる(ステップS17)。例えば図7のタイミングT24では、HDRP=0であるため、RPには1が設定される。この後、処理はステップS11に戻る。   When the value of RP reaches the value HDRP + Length (YES route in step S19), the selector 143g performs a switching operation so as to select (3) in FIG. Thus, the value HDRP + 1 obtained by the 1 adder 143b is set to RP (step S21), and CycleCT is incremented by 1 (step S17). For example, at timing T24 in FIG. 7, since HDRP = 0, 1 is set in RP. Thereafter, the process returns to step S11.

RPに値HDRP+1を設定した後の各サイクル(図7のタイミングT25〜T33参照)では、CycleCTの値がデータ長Lengthに到達するまで、つまり読出対象パケットの全てのデータが読み出されるまで、セレクタ143gは図5の(2)を選択するように切替動作を行なう。これにより、CycleCTの値がデータ長Lengthに到達するまで、一単位データを読み出す都度、RPの値が1インクリメントされ(ステップS20)、CycleCTが1インクリメントされた後(ステップS17)、処理はステップS11に戻る。   In each cycle after setting the value HDRP + 1 in RP (see timings T25 to T33 in FIG. 7), the selector 143g until the value of CycleCT reaches the data length Length, that is, until all the data of the read target packet is read. Performs the switching operation so as to select (2) in FIG. Thus, every time one unit data is read out until the value of CycleCT reaches the data length Length, the value of RP is incremented by 1 (step S20), and after the CycleCT is incremented by 1 (step S17), the process proceeds to step S11. Return to.

CycleCTの値がデータ長Lengthに到達すると(ステップS18のYESルート;図7のタイミングT34参照)、CycleCTの値が0にリセットされる(ステップS22)。そして、セレクタ143gは図5の(4)を選択するように切替動作を行なう。これにより、加算器143fで得られた値HDRP+Length+1(図7では値17)が、次に読み出すべきデータのアドレスとしてRPに設定される(ステップS23)。また、加算器143cで得られた値HDRP+Length+1(図7では値17)が、次に読み出すべきパケットのヘッダのアドレスとしてHDRPに設定される(ステップS24)。この後、処理はステップS11に戻る。   When the value of CycleCT reaches the data length Length (YES route in step S18; see timing T34 in FIG. 7), the value of CycleCT is reset to 0 (step S22). The selector 143g performs a switching operation so as to select (4) in FIG. As a result, the value HDRP + Length + 1 (value 17 in FIG. 7) obtained by the adder 143f is set to RP as the address of data to be read next (step S23). Further, the value HDRP + Length + 1 (value 17 in FIG. 7) obtained by the adder 143c is set to HDRP as the header address of the packet to be read next (step S24). Thereafter, the process returns to step S11.

以上の動作により、第1実施形態では、データDTAを、図22に示した関連技術の場合よりも10サイクル早く読み出すことができ、レイテンシが短縮される。   With the above operation, in the first embodiment, the data DTA can be read 10 cycles earlier than in the related art shown in FIG. 22, and the latency is shortened.

また、上述した動作では、物理アドレスpa[6:3]によって、読み出すデータの順番が一意に決まる。したがって、パケットを受け取ったコア11Aは、受信バッファ141におけるパケットから最初に読み出したデータ以外のデータが、どの物理アドレスのデータであるかを容易に判断することができる。   In the above-described operation, the order of data to be read is uniquely determined by the physical address pa [6: 3]. Therefore, the core 11A that has received the packet can easily determine which physical address data other than the data read first from the packet in the reception buffer 141 is.

〔4〕第2実施形態の情報処理装置
次に、図1および図8〜図13を参照しながら、本発明の第2実施形態としての情報処理装置(マルチプロセッサシステム)1′について説明する。ここで説明する第2実施形態は、複数の処理対象データが、一つのデータブロック内において所定間隔Intervalをあけて存在する場合に対応する技術である。つまり、第2実施形態は、前述したように、行列計算等で発生するストライドアクセスにおいて、1個のデータ付きパケット内に、必要な単位データ(処理対象データ)が複数存在する場合に対応する技術である。例えば、図13に示す例では、16個の8バイトデータDT0〜DTFを含むパケット内に、所定間隔Interval=4をあけて4個の処理対象データDT2,DT6,DTA,DTEが存在する場合について説明する。
[4] Information Processing Apparatus According to Second Embodiment Next, an information processing apparatus (multiprocessor system) 1 ′ as a second embodiment of the present invention will be described with reference to FIGS. 1 and 8 to 13. The second embodiment described here is a technique corresponding to a case where a plurality of pieces of processing target data exist at a predetermined interval Interval within one data block. That is, as described above, the second embodiment is a technique corresponding to a case where a plurality of necessary unit data (processing target data) exist in one packet with data in stride access generated by matrix calculation or the like. It is. For example, in the example shown in FIG. 13, there are four processing target data DT2, DT6, DTA, and DTE in a packet including 16 pieces of 8-byte data DT0 to DTF with a predetermined interval Interval = 4. explain.

図1に示すように、第2実施形態の情報処理装置1′も、第1実施形態の情報処理装置1と同様、複数(図1で2個)のCPU10A,10Bを有している。第2実施形態においても、CPU10AとCPU10Bとは、高速シリアル伝送によるネットワーク30を介して相互に通信可能に接続される。   As shown in FIG. 1, the information processing apparatus 1 ′ of the second embodiment also includes a plurality (two in FIG. 1) of CPUs 10 </ b> A and 10 </ b> B, similarly to the information processing apparatus 1 of the first embodiment. Also in the second embodiment, the CPU 10A and the CPU 10B are connected to be communicable with each other via the network 30 based on high-speed serial transmission.

情報処理装置1′におけるCPU10A,10Bも、図1〜図7を参照しながら前述した情報処理装置1におけるCPU10A,10Bと同様に構成されている。ただし、第2実施形態の情報処理装置1′では、以下に説明するように、CPU10Aのルータ14Aの第1の通信部としての機能、および、CPU10Bのルータ14Bの第2の通信部としての機能に若干の変更が加えられる。また、第2実施形態の情報処理装置1′では、以下に説明するように、CPU10A(ルータ14A)における読出部143が、読出部143′(図1,図10,図11参照)に変更されている。   The CPUs 10A and 10B in the information processing apparatus 1 ′ are also configured similarly to the CPUs 10A and 10B in the information processing apparatus 1 described above with reference to FIGS. However, in the information processing apparatus 1 ′ according to the second embodiment, as described below, the function as the first communication unit of the router 14A of the CPU 10A and the function as the second communication unit of the router 14B of the CPU 10B. Some changes will be made. In the information processing apparatus 1 ′ according to the second embodiment, the reading unit 143 in the CPU 10A (router 14A) is changed to a reading unit 143 ′ (see FIGS. 1, 10, and 11) as described below. ing.

第2実施形態のCPU10Aにおけるルータ(第1の通信部)14Aも、第1実施形態と同様、一のコア11Aが生成したフェッチ要求を、フェッチ要求パケット(図9,図17(A)参照)によってCPU10Bへ送信する。また、ルータ(第1の通信部)14Aは、フェッチ要求に対応する処理対象データを含むデータブロックを添付されたフェッチ応答パケット(図9,図17(B)参照)を、CPU10Bから受信する。   Similarly to the first embodiment, the router (first communication unit) 14A in the CPU 10A of the second embodiment also sends a fetch request packet generated by one core 11A to a fetch request packet (see FIGS. 9 and 17A). To the CPU 10B. Further, the router (first communication unit) 14A receives from the CPU 10B a fetch response packet (see FIGS. 9 and 17B) attached with a data block including data to be processed corresponding to the fetch request.

ただし、第2実施形態のCPU10Aにおけるルータ(第1の通信部)14AからCPU10Bへ送信される、フェッチ要求パケットのヘッダは、図8(A)に示すようなフォーマットを有する。つまり、フェッチ要求パケットのヘッダには、図18(A)を参照しながら上述したOPC,RQID,物理アドレスPAのほかに、上記所定間隔に関する情報(ここでは上記所定間隔を示す値Interval)が含まれる。   However, the header of the fetch request packet transmitted from the router (first communication unit) 14A in the CPU 10A of the second embodiment to the CPU 10B has a format as shown in FIG. That is, the header of the fetch request packet includes information related to the predetermined interval (here, a value Interval indicating the predetermined interval) in addition to the OPC, RQID, and physical address PA described above with reference to FIG. It is.

また、第2実施形態のCPU10Bにおけるルータ(第2の通信部)14Bは、図8(B)に示すようなフォーマットを有する応答ヘッダをCPU10Aへ送信されるフェッチ応答パケット(DIMM20B等から読み出されたデータブロック)に付す。図8(B)に示すように、当該応答ヘッダには、フェッチ要求パケットのヘッダに含まれるアドレス情報(図8(A)のPA参照)から取り出された先頭の処理対象データのアドレス情報pa[6:3]と、所定間隔Intervalとが記録される。そして、ルータ(第2の通信部)14Bは、応答ヘッダを付したデータブロックを、フェッチ応答パケット(図9,図17(B)参照)としてCPU10Aへ送信する。   Further, the router (second communication unit) 14B in the CPU 10B of the second embodiment reads a response header having a format as shown in FIG. 8B from a fetch response packet (DIMM 20B or the like) transmitted to the CPU 10A. Data block). As shown in FIG. 8B, in the response header, the address information pa [of the first process target data extracted from the address information (see PA in FIG. 8A) included in the header of the fetch request packet is included. 6: 3] and a predetermined interval Interval are recorded. The router (second communication unit) 14B transmits the data block with the response header to the CPU 10A as a fetch response packet (see FIGS. 9 and 17B).

さらに、第2実施形態のCPU10Aにおけるルータ(第1の通信部)14Aは、受信バッファ141,書込部142,読出部143′を有する。第2実施形態において、受信バッファ141,書込部142,読出部143′は、CPU10Aのルータ14A内に備えられているが、CPU10A内に備えられていればよい。受信バッファ141および書込部142は、図1および図4を参照しながら上述した第1実施形態の受信バッファ141および書込部142と同様に構成されているので、その説明は省略する。   Furthermore, the router (first communication unit) 14A in the CPU 10A of the second embodiment includes a reception buffer 141, a writing unit 142, and a reading unit 143 ′. In the second embodiment, the reception buffer 141, the writing unit 142, and the reading unit 143 ′ are provided in the router 14A of the CPU 10A, but may be provided in the CPU 10A. Since the reception buffer 141 and the writing unit 142 are configured in the same manner as the reception buffer 141 and the writing unit 142 of the first embodiment described above with reference to FIGS. 1 and 4, description thereof is omitted.

読出部143′は、データブロック(フェッチ応答パケット)に付された応答ヘッダに記録された、先頭の処理対象データの物理アドレスpa[6:3]と所定間隔Intervalとを参照する。そして、読出部143′は、参照した物理アドレスpa[6:3]と所定間隔Intervalとに基づき、まず、コア11Aの要求する複数の処理対象データを受信バッファ141から読み出した後、当該複数の処理対象データ以外の単位データを受信バッファ141から順次読み出す。第2実施形態における読出部143′は、図10および図11を参照しながら後述するごとく構成され、図12および図13を参照しながら後述するごとく動作する。   The reading unit 143 ′ refers to the physical address pa [6: 3] of the first process target data and the predetermined interval Interval recorded in the response header attached to the data block (fetch response packet). Based on the physical address pa [6: 3] and the predetermined interval Interval, the reading unit 143 ′ first reads a plurality of processing target data requested by the core 11A from the reception buffer 141, and then Unit data other than the processing target data is sequentially read from the reception buffer 141. The reading unit 143 ′ in the second embodiment is configured as described later with reference to FIGS. 10 and 11, and operates as described later with reference to FIGS.

なお、第2実施形態では、CPU10Aが、第1の通信部としての機能や、受信バッファ141,書込部142,読出部143′としての機能を有し、CPU10Bが、第2の通信部としての機能を有する場合について説明している。しかし、複数のCPU10A,10Bのそれぞれが、第1および第2の通信部としての機能と、受信バッファ141,書込部142,読出部143′としての機能とを有していてもよい。   In the second embodiment, the CPU 10A has a function as a first communication unit and functions as a reception buffer 141, a writing unit 142, and a reading unit 143 ′, and the CPU 10B serves as a second communication unit. The case of having the function is described. However, each of the CPUs 10A and 10B may have a function as the first and second communication units and a function as the reception buffer 141, the writing unit 142, and the reading unit 143 ′.

ここで、図9を参照しながら、第2実施形態の情報処理装置1′において、一CPU10Aのコア11Aから他CPU10Bのメモリデータに対する、ストライドアクセスに係るフェッチ要求を発行する場合のパケットルーティングについて説明する。   Here, referring to FIG. 9, in the information processing apparatus 1 ′ of the second embodiment, packet routing when issuing a fetch request related to stride access to the memory data of another CPU 10B from the core 11A of one CPU 10A will be described. To do.

この場合、図9に示すように、必要な処理対象データを読み出すためのフェッチ要求パケット(データ無しパケット)が、CPU10Aから発行・送信され、ネットワーク30経由で、当該処理対象データを保持するメモリ20Bを有するCPU10Bにルーティングされる。このとき、フェッチ要求パケットのヘッダには、図8(A)に示すように、少なくとも、処理対象データのアドレス情報PAと、ストライドアクセスに係る所定間隔Intervalとが含まれる。   In this case, as shown in FIG. 9, a fetch request packet (packet without data) for reading out necessary processing target data is issued / transmitted from the CPU 10A, and the memory 20B holds the processing target data via the network 30. Is routed to the CPU 10B. At this time, as shown in FIG. 8A, the header of the fetch request packet includes at least address information PA of data to be processed and a predetermined interval Interval related to stride access.

一方、ルータ14Bによってフェッチ要求パケットを受信したCPU10Bは、要求された処理対象データを含むデータブロックをメモリ20Bから読み出し、フェッチ応答パケット(データ付きパケット)を生成し、当該フェッチ応答パケットをCPU10Aに送信する。このとき、図8(B)に示すように、CPU10Bで生成されるフェッチ応答パケットのヘッダ(応答ヘッダ)には、ストライドアクセス対象の先頭の単位データ(処理対象データ)を特定可能な4ビットの物理アドレスpa[6:3]が載せられている。また、図8(B)に示すように、当該ヘッダには、ストライドアクセスに係る所定間隔Intervalも載せられている。   On the other hand, the CPU 10B that has received the fetch request packet by the router 14B reads the data block including the requested processing target data from the memory 20B, generates a fetch response packet (packet with data), and transmits the fetch response packet to the CPU 10A. To do. At this time, as shown in FIG. 8B, the header (response header) of the fetch response packet generated by the CPU 10B has a 4-bit value that can identify the head unit data (processing target data) to be stride accessed. The physical address pa [6: 3] is listed. Further, as shown in FIG. 8B, a predetermined interval Interval related to stride access is also placed in the header.

CPU10Bがフェッチ応答パケットを生成する際、フェッチ要求パケットのヘッダに載っている物理アドレスPA(図8(A)参照)から、フェッチ要求対象の先頭単位データを特定可能な4ビットの物理アドレスpa[6:3]が取り出される。また、同ヘッダからストライドアクセスに係る所定間隔Intervalが取り出される。取り出された物理アドレスpa[6:3]および所定間隔Intervalを応答ヘッダに含ませることにより、図8(B)に示すようなフォーマットの応答ヘッダが生成される。このように生成された応答ヘッダを有するフェッチ応答パケットは、図9に示すように、フェッチ要求の発行元であるCPU10Aにルーティングされ送信される。   When the CPU 10B generates the fetch response packet, the 4-bit physical address pa [that can specify the head unit data to be fetched from the physical address PA (see FIG. 8A) included in the header of the fetch request packet. 6: 3] is taken out. Further, a predetermined interval Interval related to stride access is extracted from the header. By including the extracted physical address pa [6: 3] and the predetermined interval Interval in the response header, a response header having a format as shown in FIG. 8B is generated. The fetch response packet having the response header generated in this way is routed and transmitted to the CPU 10A that is the issuer of the fetch request, as shown in FIG.

上述の通り、第2実施形態では、フェッチ要求パケットのヘッダおよびフェッチ応答パケットのヘッダの両方に、コア11Aがメモリ20Bにストライドアクセスする際のアドレス間隔を示すIntervalが追加されている。ここで、例えば、データブロック(128バイトデータ)に含まれる単位データ(8バイトデータ)の数が16である場合、所定間隔Intervalの値は、0<Interval<16の範囲の整数である。これは、Interval=0の場合、同一の単位データを選択することになる一方、Interval=16の場合、パケットに含まれるデータブロック(16個の単位データ)の範囲を超えることになるからである。   As described above, in the second embodiment, the interval indicating the address interval when the core 11A performs stride access to the memory 20B is added to both the header of the fetch request packet and the header of the fetch response packet. Here, for example, when the number of unit data (8-byte data) included in the data block (128-byte data) is 16, the value of the predetermined interval Interval is an integer in the range of 0 <Interval <16. This is because when Interval = 0, the same unit data is selected, whereas when Interval = 16, the range of data blocks (16 unit data) included in the packet is exceeded. .

CPU10A側で受信されたフェッチ応答パケットは、まず、ルータ14Aに設けられた受信バッファ141に、書込部142(図1,図10参照)によって、一旦、単位データ毎に書き込まれる。この後、読出部143′におけるRPの値(読み出すべき単位データのアドレス)を制御することで、受信バッファ141に書き込まれたパケットのうち、コア11Aが要求する処理対象データが受信バッファ141から優先的に読み出される。   The fetch response packet received on the CPU 10A side is first written for each unit data by the writing unit 142 (see FIGS. 1 and 10) into the reception buffer 141 provided in the router 14A. After that, by controlling the value of RP (address of unit data to be read) in the reading unit 143 ′, the processing target data requested by the core 11A has priority from the receiving buffer 141 among the packets written in the receiving buffer 141. Read out automatically.

特に、第2実施形態における読出部143′は、応答ヘッダに記録された、先頭の処理対象データの物理アドレスpa[6:3]と所定間隔Intervalとに基づき、コア11Aの要求する複数の処理対象データを受信バッファ141から読み出した後、それ以外のデータを受信バッファ141から順次読み出す。   In particular, the reading unit 143 ′ in the second embodiment performs a plurality of processes requested by the core 11A based on the physical address pa [6: 3] of the first process target data and the predetermined interval Interval recorded in the response header. After the target data is read from the reception buffer 141, other data is sequentially read from the reception buffer 141.

以下、上述のような機能を実現する第2実施形態の構成について、図10および図11を参照しながら説明する。図10は、第2実施形態のCPU10Aにおけるルータ14Aに含まれる受信バッファ141および当該受信バッファ141に対するパケット書込/読出処理に係る構成(書込部142および読出部143′)を示すブロック図である。図11は、図10に示すパケット読出処理に係る構成(読出部143′)を詳細に示すブロック図である。   Hereinafter, the configuration of the second embodiment for realizing the above-described function will be described with reference to FIGS. 10 and 11. FIG. 10 is a block diagram illustrating a reception buffer 141 included in the router 14A in the CPU 10A of the second embodiment and a configuration (a writing unit 142 and a reading unit 143 ′) related to packet writing / reading processing with respect to the reception buffer 141. is there. FIG. 11 is a block diagram showing in detail the configuration (reading unit 143 ′) related to the packet reading process shown in FIG.

図10に示すように、第2実施形態における書込部142は、図4に示した書込部142と同様のWDR,HDWPおよびWPを有する。   As shown in FIG. 10, the writing unit 142 in the second embodiment has the same WDR, HDWP, and WP as the writing unit 142 shown in FIG.

また、第2実施形態の読出部143′は、図4に示した読出部143と同様のRDR,RP,HDRP,LengthレジスタおよびCycleCTに加え、Intervalレジスタを有する。WDR,HDWP,WP,RDR,RP,HDRP,LengthレジスタおよびCycleCTについては、既述のものと同様であるので、その説明は省略する。   Further, the reading unit 143 ′ of the second embodiment includes an Interval register in addition to the RDR, RP, HDRP, Length register, and CycleCT similar to the reading unit 143 shown in FIG. Since the WDR, HDWP, WP, RDR, RP, HDRP, Length register, and CycleCT are the same as those already described, description thereof is omitted.

第2実施形態で追加されるIntervalレジスタには、フェッチ応答パケットのヘッダ(応答ヘッダ)を受信バッファ141から読み出した際に、当該ヘッダに記録された所定間隔Intervalが設定される。なお、パケット種がフェッチ応答パケット以外のパケットについては、Intervalの値として1が設定される。   In the Interval register added in the second embodiment, when a header (response header) of a fetch response packet is read from the reception buffer 141, a predetermined interval Interval recorded in the header is set. For packets whose packet type is other than the fetch response packet, 1 is set as the value of Interval.

ついで、図11を参照しながら、図10に示すパケット読出処理に係る構成、つまり読出部143′について、より詳細に説明する。図11に示すように、第2実施形態の読出部143′は、第1実施形態の読出部143と同様のLength生成部143aと1加算器143b,143dと加算器143c,143e,143fとセレクタ143gとに加え、加算器143hおよび演算器143iを有する。   Next, the configuration related to the packet reading process shown in FIG. 10, that is, the reading unit 143 ′ will be described in more detail with reference to FIG. As shown in FIG. 11, the reading unit 143 ′ of the second embodiment includes a length generator 143a, 1 adders 143b and 143d, adders 143c, 143e and 143f, and a selector similar to the reading unit 143 of the first embodiment. In addition to 143g, it has an adder 143h and a calculator 143i.

Length生成部143aは、第1実施形態と同様、ヘッダを受信バッファ141から読み出した際に、当該ヘッダにおけるOpcodeから、受信バッファ141から読出中のパケットのデータ長Lengthを生成し、Lengthレジスタに設定する。   Similar to the first embodiment, when the header is read from the reception buffer 141, the Length generation unit 143a generates the data length Length of the packet being read from the reception buffer 141 from the Opcode in the header, and sets it in the Length register. To do.

1加算器(+1)143bは、第1実施形態と同様、HDRPの示す値に1を加算する。   The 1 adder (+1) 143b adds 1 to the value indicated by HDRP, as in the first embodiment.

加算器143cは、第1実施形態と同様、Lengthレジスタにおけるデータ長Lengthと、1加算器143bからの値HDRP+1とを加算し、得られた値HDRP+Length+1をHDRPに設定する(図12のステップS45参照)。加算器143cの動作タイミングは、CycleCTの示す値がデータ長LengthになってCycleCTをリセット(初期化)するタイミング(図12のステップS43および図13のタイミングT34参照)である。   Similarly to the first embodiment, the adder 143c adds the data length Length in the Length register and the value HDRP + 1 from the one adder 143b, and sets the obtained value HDRP + Length + 1 to HDRP (see step S45 in FIG. 12). ). The operation timing of the adder 143c is the timing at which the value indicated by CycleCT becomes the data length Length to reset (initialize) CycleCT (see step S43 in FIG. 12 and timing T34 in FIG. 13).

1加算器(+1)143dは、第1実施形態と同様、RPの示す値に1を加算する。   The 1 adder (+1) 143d adds 1 to the value indicated by RP as in the first embodiment.

加算器143eは、第1実施形態と同様、コア11Aが要求する先頭の処理対象データを特定する物理アドレスpa[6:3]と、1加算器143dからの値RP+1とを加算し、得られた値RP+pa[6:3]+1をRPに設定する(図12のステップS37参照)。物理アドレスpa[6:3]は、読出中のパケットのヘッダからRD−BUSを介して読み出される。加算器143eの動作タイミングは、フェッチ応答パケットからヘッダを読み出すタイミング(図12のステップS36のYESルート;図13のタイミングT18参照)である。当該タイミングで、セレクタ143gは、加算器143eで得られた値RP+pa[6:3]+1をRPに設定するように切替動作を行なう(図11〜図13の(1)参照)。   Similarly to the first embodiment, the adder 143e adds the physical address pa [6: 3] that specifies the first processing target data requested by the core 11A and the value RP + 1 from the one adder 143d. The value RP + pa [6: 3] +1 is set to RP (see step S37 in FIG. 12). The physical address pa [6: 3] is read via the RD-BUS from the header of the packet being read. The operation timing of the adder 143e is the timing for reading the header from the fetch response packet (YES route in step S36 in FIG. 12; see timing T18 in FIG. 13). At this timing, the selector 143g performs a switching operation so that the value RP + pa [6: 3] +1 obtained by the adder 143e is set to RP (see (1) in FIGS. 11 to 13).

加算器143fは、第1実施形態と同様、Lengthレジスタにおけるデータ長Lengthと、1加算器143bからの値HDRP+1とを加算し、得られた値HDRP+Length+1をRPに設定する(図12のステップS44参照)。加算器143fの動作タイミングは、CycleCTがデータ長LengthになってCycleCTをリセット(初期化)するタイミング(図12のステップS43;図13のタイミングT34参照)である。当該タイミングで、セレクタ143gは、加算器143fで得られた値HDRP+Length+1をRPに設定するように切替動作を行なう(図11〜図13の(4)参照)。   Similarly to the first embodiment, the adder 143f adds the data length Length in the Length register and the value HDRP + 1 from the one adder 143b, and sets the obtained value HDRP + Length + 1 to RP (see step S44 in FIG. 12). ). The operation timing of the adder 143f is the timing at which CycleCT becomes the data length Length and resets (initializes) CycleCT (step S43 in FIG. 12; see timing T34 in FIG. 13). At the timing, the selector 143g performs a switching operation so as to set the value HDRP + Length + 1 obtained by the adder 143f to RP (see (4) in FIGS. 11 to 13).

第2実施形態で追加された加算器143hは、Intervalレジスタにおける所定間隔Intervalと、RPの値とを加算し、得られた値RP+IntervalをRPに設定する(図12のステップS41参照)。加算器143hの動作タイミングは、ヘッダのOpcodeがフェッチ応答でない場合(図12のステップS36のNOルート参照)、もしくは、RP+IntervalがHDRP+Length以下であるタイミング(図12のステップS40のNOルート;図13のタイミングT19〜T21,T23〜T25,T27〜T29,T31〜T32参照)である。当該タイミングで、セレクタ143gは、加算器143hで得られた値RP+IntervalをRPに設定するように切替動作を行なう(図11〜図13の(2)参照)。   The adder 143h added in the second embodiment adds the predetermined interval Interval in the Interval register and the value of RP, and sets the obtained value RP + Interval to RP (see step S41 in FIG. 12). The operation timing of the adder 143h is the timing when the Opcode of the header is not a fetch response (see the NO route in step S36 in FIG. 12), or the timing when RP + Interval is equal to or less than HDRP + Length (NO route in step S40 in FIG. Timings T19 to T21, T23 to T25, T27 to T29, and T31 to T32). At the timing, the selector 143g performs a switching operation so as to set the value RP + Interval obtained by the adder 143h to RP (see (2) in FIGS. 11 to 13).

また、第2実施形態で追加された演算器143iは、Intervalレジスタにおける所定間隔Intervalと、1加算器143bからの値HDRP+1と、RPの値とに基づき、値HDRP+[(RP−HDRP+1)%Interval]を算出し、当該値をRPに設定する(図12のステップS42参照)。演算器143iの動作タイミングは、RP+IntervalがHDRP+Lengthを超えるタイミング(図12のステップS40のYESルート;図13のタイミングT22,T26,T30参照)である。当該タイミングで、セレクタ143gは、演算器143iで得られた値をRPに設定するように切替動作を行なう(図11〜図13の(3)参照)。なお、上記値における%は、剰余を与える演算に用いられる記号で、剰余=被除数%除数と規定される。例えば、16%4=4、17%4=1、14%4=2となる。   The computing unit 143i added in the second embodiment is based on the value HDRP + [(RP−HDRP + 1)% Interval based on the predetermined interval Interval in the Interval register, the value HDRP + 1 from the 1 adder 143b, and the value of RP. ] Is set to RP (see step S42 in FIG. 12). The operation timing of the calculator 143i is a timing at which RP + Interval exceeds HDRP + Length (YES route in step S40 in FIG. 12; see timings T22, T26, and T30 in FIG. 13). At the timing, the selector 143g performs a switching operation so as to set the value obtained by the calculator 143i to RP (see (3) in FIGS. 11 to 13). Note that% in the above value is a symbol used for calculation to give a remainder, and is defined as remainder = dividend number% divisor. For example, 16% 4 = 4, 17% 4 = 1, and 14% 4 = 2.

なお、上述した書込部142および読出部143′としての機能は、論理ゲート等によってハードウエア的にCPU10Aに組み込まれて実現されてもよいし、プログラムを実行することでソフトウエア的にCPU10Aに組み込まれて実現されてもよい。   Note that the functions as the writing unit 142 and the reading unit 143 ′ described above may be realized by being incorporated in the CPU 10A in hardware by a logic gate or the like, or may be realized in the CPU 10A by software by executing a program. It may be implemented by being incorporated.

次に、図11〜図13を参照しながら、上述のごとく構成された書込部142および読出部143′の動作について説明する。図12は、図11に示すパケット読出処理に係る構成(読出部143′)の動作を説明するフローチャートである。図13は、図10および図11に示すパケット読出処理に係る構成(読出部143′)が図12に示すフローチャートに従って2,6,10,14番目のデータ(DT2,DT6,DTA,DTE)を先に読み出す場合の動作を示すタイムチャートである。   Next, the operations of the writing unit 142 and the reading unit 143 ′ configured as described above will be described with reference to FIGS. FIG. 12 is a flowchart for explaining the operation of the configuration (reading unit 143 ′) related to the packet reading process shown in FIG. 13 shows that the configuration (reading unit 143 ′) related to the packet reading process shown in FIGS. 10 and 11 stores the second, sixth, tenth, and fourteenth data (DT2, DT6, DTA, DTE) according to the flowchart shown in FIG. It is a time chart which shows operation | movement in the case of reading previously.

第2実施形態の書込部142によるパケット書込動作は、図20を参照しながら前述した関連技術の動作と同様であるので、その説明は省略する。一方、第2実施形態の読出部143′によるパケット読出動作は、図6を参照しながら前述した第1実施形態の読出部143の動作と部分的に異なっている。   The packet writing operation by the writing unit 142 of the second embodiment is the same as the operation of the related art described above with reference to FIG. On the other hand, the packet reading operation by the reading unit 143 ′ of the second embodiment is partially different from the operation of the reading unit 143 of the first embodiment described above with reference to FIG.

図12に示すフローチャート(ステップS31〜S45)に従って、図11および図13を参照しながら第2実施形態の読出部143′によるパケット読出動作について説明する。   A packet reading operation by the reading unit 143 ′ of the second embodiment will be described with reference to FIGS. 11 and 13 according to the flowchart shown in FIG. 12 (steps S31 to S45).

ルータ14Aは、RPの値とHDWPの値とが一致しているか否かを判断する(ステップS11)。RPの値とHDWPの値とが一致している場合(ステップS31のYESルート)、ルータ14Aは、書込対象パケットの書込中であると判断し、ステップS31の処理に戻る。   The router 14A determines whether or not the RP value matches the HDWP value (step S11). If the RP value matches the HDWP value (YES route of step S31), the router 14A determines that the write target packet is being written, and returns to the process of step S31.

RPの値とHDWPの値とが一致しない場合(ステップS31のNOルート)、ルータ14Aは、書込対象パケットの書込を完了したと判断し、受信バッファ141からのパケット読出を開始する(図13のタイミングT18参照)。つまり、RPによって指定される、受信バッファ141のエントリ(一単位データ)が、受信バッファ141からRDR経由で読み出される(ステップS32)。そして、読み出されたエントリがヘッダ(HD)であるか否かが判断される(ステップS33)。   If the RP value and the HDWP value do not match (NO route of step S31), the router 14A determines that the writing of the write target packet has been completed, and starts reading the packet from the reception buffer 141 (FIG. 13 timing T18). That is, the entry (one unit data) of the reception buffer 141 designated by the RP is read from the reception buffer 141 via RDR (step S32). Then, it is determined whether or not the read entry is a header (HD) (step S33).

パケット読出の開始時には、まずパケットのヘッダが読み出されるため、読み出されたエントリはヘッダであると判断される(ステップS33のYESルート)。この場合、読み出されたヘッダの所定間隔Intervalが参照され、ヘッダから当該Intervalの値が、読出部143′のIntervalレジスタに設定される(ステップS34)。また、読み出されたヘッダのOpcodeが参照され、当該Opcode(パケット種)に基づき、受信バッファ141から読出中のパケットのデータ長Lengthが生成され、生成されたデータ長Lengthが読出部143′のLengthレジスタに設定される(ステップS35)。   At the start of packet reading, the header of the packet is first read, so that the read entry is determined to be a header (YES route in step S33). In this case, the predetermined interval Interval of the read header is referred to, and the value of the Interval from the header is set in the Interval register of the reading unit 143 ′ (step S34). Further, the Opcode of the read header is referred to, the data length Length of the packet being read from the reception buffer 141 is generated based on the Opcode (packet type), and the generated data length Length is generated by the reading unit 143 ′. It is set in the Length register (step S35).

この後、当該Opcodeがフェッチ応答であるか否かを判断する(ステップS36)。フェッチ応答である場合(ステップS36のYESルート)、セレクタ143gは図11の(1)を選択するように切替動作を行なう。これにより、加算器143eで得られた値RP+pa[6:3]+1がRPに設定され(ステップS37)、CycleCTが1インクリメントされる(ステップS38)。そして、RPに設定された値(アドレス)で指定されるエントリ(データDT2)が読み出される(ステップS31のNOルートからステップS32)。つまり、パケットのヘッダを読み出した際に、ヘッダの物理アドレスpa[6:3]に基づき、コア11Aが要求しているデータ(先頭単位データ)に対応する受信バッファ141のアドレスRP+pa[6:3]+1がRPに設定される。図13に示す例では、2番目のデータDT2に対応するアドレスを示す3が、RPにセットされる。   Thereafter, it is determined whether or not the Opcode is a fetch response (step S36). If it is a fetch response (YES route in step S36), the selector 143g performs a switching operation so as to select (1) in FIG. Thus, the value RP + pa [6: 3] +1 obtained by the adder 143e is set to RP (step S37), and CycleCT is incremented by 1 (step S38). Then, the entry (data DT2) designated by the value (address) set in RP is read (from the NO route in step S31 to step S32). That is, when reading the header of the packet, based on the physical address pa [6: 3] of the header, the address RP + pa [6: 3] of the reception buffer 141 corresponding to the data (first unit data) requested by the core 11A. ] +1 is set to RP. In the example shown in FIG. 13, 3 indicating the address corresponding to the second data DT2 is set in the RP.

この後、次のサイクルで、ヘッダの次に読み出されるエントリはデータであり、この場合(ステップS33のNOルート)、CycleCTの値がデータ長(パケット長)Lengthに到達したか否かが判断される(ステップS39)。つまり、読出対象パケットの全てのデータが読み出されたか否かが判断される。図13では、Length=16の例が示されている。   Thereafter, in the next cycle, the entry read next to the header is data. In this case (NO route in step S33), it is determined whether or not the value of CycleCT has reached the data length (packet length) Length. (Step S39). That is, it is determined whether or not all data of the read target packet has been read. FIG. 13 shows an example in which Length = 16.

CycleCT=Lengthでない場合(ステップS39のNOルート)、値RP+Intervalが値HDRP+Length(図13では値16)を超えているか否かが判断される(ステップS40)。RP+IntervalがHDRP+Length以下である場合(ステップS40のNOルート)、もしくは、ヘッダのOpcodeがフェッチ応答でない場合(ステップS36のNOルート)、セレクタ143gは図11の(2)を選択するように切替動作を行なう。   If CycleCT = Length is not satisfied (NO route of step S39), it is determined whether or not the value RP + Interval exceeds the value HDRP + Length (value 16 in FIG. 13) (step S40). When RP + Interval is equal to or less than HDRP + Length (NO route of step S40), or when the Opcode of the header is not a fetch response (NO route of step S36), the selector 143g performs the switching operation so as to select (2) in FIG. Do.

これにより、RP+Intervalの値が値HDRP+Lengthを超えるまで、一単位データを読み出す都度、RPの値に、所定間隔の値Interval(図13ではInterval=4)が加算され(ステップS41)、CycleCTが1インクリメントされた後(ステップS38)、処理はステップS31に戻る。なお、ステップS41の処理の実行タイミングは、図13のタイミングT19〜T21,T23〜T25,T27〜T29,T31〜T33に対応する。   Thus, every time one unit of data is read out until the value of RP + Interval exceeds the value HDRP + Length, the value Interval (Interval = 4 in FIG. 13) is added to the value of RP (Step S41), and CycleCT is incremented by 1 After that (step S38), the process returns to step S31. Note that the execution timing of the process in step S41 corresponds to the timings T19 to T21, T23 to T25, T27 to T29, and T31 to T33 in FIG.

RP+Intervalの値が値HDRP+Lengthを超えると(ステップS40のYESルート)、セレクタ143gは図11の(3)を選択するように切替動作を行なう。これにより、演算器143iで得られた値HDRP+[(RP−HDRP+1)%Interval]がRPに設定され(ステップS42)、CycleCTが1インクリメントされる(ステップS38)。   When the value of RP + Interval exceeds the value HDRP + Length (YES route in step S40), the selector 143g performs a switching operation so as to select (3) in FIG. As a result, the value HDRP + [(RP−HDRP + 1)% Interval] obtained by the calculator 143i is set to RP (step S42), and CycleCT is incremented by 1 (step S38).

例えば、図13のタイミングT22では、値HDRP+[(RP−HDRP+1)%Interval]=0+[(15−0+1)%4]=16%4=4であるため、RPには4が設定される。また、図13のタイミングT26では、値HDRP+[(RP−HDRP+1)%Interval]=0+[(16−0+1)%4]=17%4=1であるため、RPには1が設定される。同様に、図13のタイミングT30では、値HDRP+[(RP−HDRP+1)%Interval]=0+[(13−0+1)%4]=14%4=2であるため、RPには2が設定される。この後、処理はステップS31に戻る。   For example, at the timing T22 in FIG. 13, since the value HDRP + [(RP−HDRP + 1)% Interval] = 0 + [(15−0 + 1)% 4] = 16% 4 = 4, 4 is set in RP. Further, at the timing T26 in FIG. 13, since the value HDRP + [(RP−HDRP + 1)% Interval] = 0 + [(16−0 + 1)% 4] = 17% 4 = 1, 1 is set in the RP. Similarly, at the timing T30 in FIG. 13, since the value HDRP + [(RP−HDRP + 1)% Interval] = 0 + [(13−0 + 1)% 4] = 14% 4 = 2, 2 is set in RP. . Thereafter, the process returns to step S31.

この後、CycleCTの値がデータ長Lengthに到達すると(ステップS39のYESルート;図13のタイミングT34参照)、CycleCTの値が0にリセットされる(ステップS43)。そして、セレクタ143gは図11の(4)を選択するように切替動作を行なう。これにより、加算器143fで得られた値HDRP+Length+1(図13では値17)が、次に読み出すべきデータのアドレスとしてRPに設定される(ステップS44)。また、加算器143cで得られた値HDRP+Length+1(図7では値17)が、次に読み出すべきパケットのヘッダのアドレスとしてHDRPに設定される(ステップS45)。この後、処理はステップS31に戻る。   Thereafter, when the value of CycleCT reaches the data length Length (YES route in step S39; see timing T34 in FIG. 13), the value of CycleCT is reset to 0 (step S43). Then, the selector 143g performs a switching operation so as to select (4) in FIG. As a result, the value HDRP + Length + 1 (value 17 in FIG. 13) obtained by the adder 143f is set to RP as the address of data to be read next (step S44). Further, the value HDRP + Length + 1 (value 17 in FIG. 7) obtained by the adder 143c is set to HDRP as the header address of the packet to be read next (step S45). Thereafter, the process returns to step S31.

以上の動作により、第2実施形態では、データDT2,DT6,DTA,DTEが他のデータよりも先に読み出され、レイテンシが短縮される。   With the above operation, in the second embodiment, the data DT2, DT6, DTA, and DTE are read before other data, and the latency is shortened.

また、上述した動作では、先頭の処理対象データの物理アドレスpa[6:3]と所定間隔Intervalとによって、読み出すデータの順番が一意に決まる。したがって、パケットを受け取ったコア11Aは、受信バッファ141におけるパケットから先に読み出されたデータ群以外のデータが、どの物理アドレスのデータであるかを容易に判断することができる。   In the above-described operation, the order of data to be read is uniquely determined by the physical address pa [6: 3] of the first process target data and the predetermined interval Interval. Therefore, the core 11A that has received the packet can easily determine the physical address of the data other than the data group previously read from the packet in the reception buffer 141.

なお、図1〜図7を参照しながら上述した第1実施形態は、図8〜図13を参照しながら上述した第2実施形態の所定間隔Intervalの値が1である場合に相当する。   The first embodiment described above with reference to FIGS. 1 to 7 corresponds to the case where the value of the predetermined interval Interval of the second embodiment described above with reference to FIGS.

〔5〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
[5] Others While the preferred embodiments of the present invention have been described in detail above, the present invention is not limited to such specific embodiments, and various modifications and changes can be made without departing from the spirit of the present invention. It can be changed and implemented.

〔6〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
[6] Supplementary Notes The following supplementary notes are further disclosed with respect to the embodiments including the above embodiments.

(付記1)
他の演算処理装置に接続される演算処理装置であって、
処理対象データの読出要求を生成する処理部と、
前記処理部が生成した読出要求を前記他の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記他の演算処理装置から受信する通信部と、
前記データブロックを保存するバッファと、
前記通信部が受信したデータブロックに含まれる複数の単位データを前記バッファに順次書き込む書込部と、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す読出部と、を有する、演算処理装置。
(Appendix 1)
An arithmetic processing device connected to another arithmetic processing device,
A processing unit for generating a read request for processing target data;
A communication unit that transmits the read request generated by the processing unit to the other arithmetic processing device and receives a data block including the processing target data corresponding to the transmitted read request from the other arithmetic processing device;
A buffer for storing the data block;
A writing unit for sequentially writing a plurality of unit data included in the data block received by the communication unit to the buffer;
And a reading unit that preferentially reads out the processing target data that is at least one of the plurality of unit data from the buffer.

(付記2)
前記読出部は、
前記データブロックに付された応答ヘッダに前記他の演算処理装置によって記録された前記処理対象データのアドレス情報を参照し、
当該アドレス情報に対応する前記処理対象データを前記バッファから読み出した後、
前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記1に記載の演算処理装置。
(Appendix 2)
The reading unit
Refer to the address information of the processing target data recorded by the other arithmetic processing unit in the response header attached to the data block;
After reading the processing target data corresponding to the address information from the buffer,
The arithmetic processing apparatus according to appendix 1, wherein unit data other than the processing target data is sequentially read from the buffer.

(付記3)
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記通信部は、
前記所定間隔に関する情報を含む前記読出要求を前記他の演算処理装置へ送信し、
前記読出部は、
前記データブロックに付された応答ヘッダに前記他の演算処理装置によって記録された先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記1に記載の演算処理装置。
(Appendix 3)
When a plurality of the processing target data exists at predetermined intervals in the plurality of unit data,
The communication unit is
Transmitting the read request including information on the predetermined interval to the other arithmetic processing unit;
The reading unit
With reference to the address information of the processing target data at the beginning recorded by the other arithmetic processing device in the response header attached to the data block and the information on the predetermined interval,
After reading the plurality of processing target data from the buffer based on the address information and the predetermined interval,
The arithmetic processing apparatus according to appendix 1, wherein unit data other than the plurality of data to be processed is sequentially read from the buffer.

(付記4)
第1の演算処理装置と、
前記第1の演算処理装置に接続される第2の演算処理装置と、を有し、
前記第1の演算処理装置は、
処理対象データの読出要求を生成する処理部と、
前記処理部が生成した読出要求を前記第2の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記第2の演算処理装置から受信する第1の通信部と、
前記データブロックを保存するバッファと、
前記第1の通信部が受信したデータブロックに含まれる複数の単位データを前記バッファに順次書き込む書込部と、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す読出部と、を有し、
前記第2の演算処理装置は、
前記第1の演算処理装置から前記読出要求を受信するとともに、受信した前記読出要求に対応する前記処理対象データを含む前記データブロックを前記第1の演算処理装置へ送信する第2の通信部を有する、情報処理装置。
(Appendix 4)
A first arithmetic processing unit;
A second arithmetic processing unit connected to the first arithmetic processing unit,
The first arithmetic processing unit includes:
A processing unit for generating a read request for processing target data;
A first request for transmitting the read request generated by the processing unit to the second arithmetic processing unit and receiving a data block including the processing target data corresponding to the transmitted read request from the second arithmetic processing unit. The communication department of
A buffer for storing the data block;
A writing unit for sequentially writing a plurality of unit data included in the data block received by the first communication unit to the buffer;
A reading unit that preferentially reads out the processing target data that is at least one of the plurality of unit data from the buffer;
The second arithmetic processing unit includes:
A second communication unit that receives the read request from the first arithmetic processing unit and transmits the data block including the processing target data corresponding to the received read request to the first arithmetic processing unit; An information processing apparatus.

(付記5)
前記第2の演算処理装置における前記第2の通信部は、
前記読出要求に含まれるアドレス情報から取り出された前記処理対象データのアドレス情報を記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、付記4に記載の情報処理装置。
(Appendix 5)
The second communication unit in the second arithmetic processing unit is:
A response header that records the address information of the processing target data extracted from the address information included in the read request is attached to the data block,
The information processing apparatus according to appendix 4, wherein the data block with the response header is transmitted to the first arithmetic processing apparatus.

(付記6)
前記第1の演算処理装置における前記読出部は、
前記データブロックに付された前記応答ヘッダに記録された前記処理対象データのアドレス情報を参照し、
当該アドレス情報に対応する前記処理対象データを前記バッファから読み出した後、
前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記5に記載の情報処理装置。
(Appendix 6)
The reading unit in the first arithmetic processing unit is:
Referring to the address information of the processing target data recorded in the response header attached to the data block;
After reading the processing target data corresponding to the address information from the buffer,
The information processing apparatus according to appendix 5, wherein unit data other than the processing target data is sequentially read from the buffer.

(付記7)
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記第1の演算処理装置における前記第1の通信部は、
前記所定間隔に関する情報を含む前記読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置における前記第2の通信部は、
前記読出要求に含まれるアドレス情報から取り出された先頭の前記処理対象データのアドレス情報と、前記読出要求から取り出された前記所定間隔に関する情報とを記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、付記4に記載の情報処理装置。
(Appendix 7)
When a plurality of the processing target data exists at predetermined intervals in the plurality of unit data,
The first communication unit in the first arithmetic processing unit is:
Transmitting the read request including information on the predetermined interval to the second arithmetic processing unit;
The second communication unit in the second arithmetic processing unit is:
Attaching a response header to the data block, which is recorded with address information of the processing target data extracted from the address information included in the read request, and information regarding the predetermined interval extracted from the read request,
The information processing apparatus according to appendix 4, wherein the data block with the response header is transmitted to the first arithmetic processing apparatus.

(付記8)
前記第1の演算処理装置における前記読出部は、
前記データブロックに付された前記応答ヘッダに記録された前記先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき、前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記7に記載の情報処理装置。
(Appendix 8)
The reading unit in the first arithmetic processing unit is:
With reference to the address information of the processing target data at the head recorded in the response header attached to the data block and the information about the predetermined interval,
Based on the address information and the predetermined interval, after reading the plurality of data to be processed from the buffer,
The information processing apparatus according to appendix 7, wherein unit data other than the plurality of data to be processed is sequentially read from the buffer.

(付記9)
第1の演算処理装置と、前記第1の演算処理装置に接続される第2の演算処理装置と、を有する情報処理装置の制御方法であって、
前記第1の演算処理装置は、
処理対象データの読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置は、
前記第1の演算処理装置から前記読出要求を受信すると、受信した前記読出要求に対応する前記処理対象データを含む前記データブロックを前記第1の演算処理装置へ送信し、
前記第1の演算処理装置は、
前記読出要求に対応する前記処理対象データを含むデータブロックを前記第2の演算処理装置から受信し、
受信したデータブロックに含まれる複数の単位データをバッファに順次書き込み、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す、情報処理装置の制御方法。
(Appendix 9)
A method for controlling an information processing apparatus, comprising: a first arithmetic processing device; and a second arithmetic processing device connected to the first arithmetic processing device,
The first arithmetic processing unit includes:
Sending a read request for processing target data to the second arithmetic processing unit;
The second arithmetic processing unit includes:
When the read request is received from the first arithmetic processing unit, the data block including the processing target data corresponding to the received read request is transmitted to the first arithmetic processing unit,
The first arithmetic processing unit includes:
Receiving a data block including the processing target data corresponding to the read request from the second arithmetic processing unit;
A plurality of unit data included in the received data block are sequentially written to the buffer,
A method for controlling an information processing apparatus, wherein the processing target data that is at least one of the plurality of unit data is preferentially read from the buffer.

(付記10)
前記第2の演算処理装置は、
前記読出要求に含まれるアドレス情報から取り出された前記処理対象データのアドレス情報を記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、付記9に記載の情報処理装置の制御方法。
(Appendix 10)
The second arithmetic processing unit includes:
A response header that records the address information of the processing target data extracted from the address information included in the read request is attached to the data block,
The control method of the information processing apparatus according to appendix 9, wherein the data block with the response header is transmitted to the first arithmetic processing apparatus.

(付記11)
前記第1の演算処理装置は、
前記データブロックに付された前記応答ヘッダに記録された前記処理対象データのアドレス情報を参照し、
当該アドレス情報に対応する前記処理対象データを前記バッファから読み出した後、
前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記10に記載の情報処理装置の制御方法。
(Appendix 11)
The first arithmetic processing unit includes:
Referring to the address information of the processing target data recorded in the response header attached to the data block;
After reading the processing target data corresponding to the address information from the buffer,
11. The information processing apparatus control method according to appendix 10, wherein unit data other than the processing target data is sequentially read from the buffer.

(付記12)
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記第1の演算処理装置は、
前記所定間隔に関する情報を含む前記読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置は、
前記読出要求に含まれるアドレス情報から取り出された先頭の前記処理対象データのアドレス情報と、前記読出要求から取り出された前記所定間隔に関する情報とを記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、付記9に記載の情報処理装置の制御方法。
(Appendix 12)
When a plurality of the processing target data exists at predetermined intervals in the plurality of unit data,
The first arithmetic processing unit includes:
Transmitting the read request including information on the predetermined interval to the second arithmetic processing unit;
The second arithmetic processing unit includes:
Attaching a response header to the data block, which is recorded with address information of the processing target data extracted from the address information included in the read request, and information regarding the predetermined interval extracted from the read request,
The control method of the information processing apparatus according to appendix 9, wherein the data block with the response header is transmitted to the first arithmetic processing apparatus.

(付記13)
前記第1の演算処理装置は、
前記データブロックに付された前記応答ヘッダに記録された前記先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき、前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記12に記載の情報処理装置の制御方法。
(Appendix 13)
The first arithmetic processing unit includes:
With reference to the address information of the processing target data at the head recorded in the response header attached to the data block and the information about the predetermined interval,
Based on the address information and the predetermined interval, after reading the plurality of data to be processed from the buffer,
13. The information processing apparatus control method according to appendix 12, wherein unit data other than the plurality of data to be processed is sequentially read from the buffer.

1,1′ 情報処理装置(マルチプロセッサシステム)
10,10A,10B CPU(演算処理装置,マルチコアプロセッサ)
11,11A,11B コア(処理部)
12,12A,12B 共有キャッシュ(三次キャッシュ)
13,13A,13B MAC
14 ルータ
14A ルータ(第1の通信部)
14B ルータ(第2の通信部)
141 受信バッファ(バッファ)
142 書込部
143,143′ 読出部
143a length生成部
143b,143d 1加算器(+1)
143c,143e,143f,143h 加算器
143g セレクタ
143i 演算器
20,20A,20B DIMM(メインメモリ)
30 ネットワーク
1,1 'information processing device (multiprocessor system)
10, 10A, 10B CPU (arithmetic processing unit, multi-core processor)
11, 11A, 11B core (processing unit)
12, 12A, 12B Shared cache (tertiary cache)
13, 13A, 13B MAC
14 router 14A router (first communication unit)
14B router (second communication unit)
141 Receive buffer (buffer)
142 writing unit 143, 143 'reading unit 143a length generation unit 143b, 143d 1 adder (+1)
143c, 143e, 143f, 143h Adder 143g Selector 143i Operation unit 20, 20A, 20B DIMM (main memory)
30 network

Claims (8)

他の演算処理装置に接続される演算処理装置であって、
処理対象データの読出要求を生成する処理部と、
前記処理部が生成した読出要求を前記他の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記他の演算処理装置から受信する通信部と、
前記データブロックを保存するバッファと、
前記通信部が受信したデータブロックに含まれる複数の単位データを前記バッファに順次書き込む書込部と、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す読出部と、を有する、演算処理装置。
An arithmetic processing device connected to another arithmetic processing device,
A processing unit for generating a read request for processing target data;
A communication unit that transmits the read request generated by the processing unit to the other arithmetic processing device and receives a data block including the processing target data corresponding to the transmitted read request from the other arithmetic processing device;
A buffer for storing the data block;
A writing unit for sequentially writing a plurality of unit data included in the data block received by the communication unit to the buffer;
And a reading unit that preferentially reads out the processing target data that is at least one of the plurality of unit data from the buffer.
前記読出部は、
前記データブロックに付された応答ヘッダに前記他の演算処理装置によって記録された前記処理対象データのアドレス情報を参照し、
当該アドレス情報に対応する前記処理対象データを前記バッファから読み出した後、
前記処理対象データ以外の単位データを前記バッファから順次読み出す、請求項1に記載の演算処理装置。
The reading unit
Refer to the address information of the processing target data recorded by the other arithmetic processing unit in the response header attached to the data block;
After reading the processing target data corresponding to the address information from the buffer,
The arithmetic processing apparatus according to claim 1, wherein unit data other than the processing target data is sequentially read from the buffer.
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記通信部は、
前記所定間隔に関する情報を含む前記読出要求を前記他の演算処理装置へ送信し、
前記読出部は、
前記データブロックに付された応答ヘッダに前記他の演算処理装置によって記録された先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、請求項1に記載の演算処理装置。
When a plurality of the processing target data exists at predetermined intervals in the plurality of unit data,
The communication unit is
Transmitting the read request including information on the predetermined interval to the other arithmetic processing unit;
The reading unit
With reference to the address information of the processing target data at the beginning recorded by the other arithmetic processing device in the response header attached to the data block and the information on the predetermined interval,
After reading the plurality of processing target data from the buffer based on the address information and the predetermined interval,
The arithmetic processing apparatus according to claim 1, wherein unit data other than the plurality of processing target data is sequentially read from the buffer.
第1の演算処理装置と、
前記第1の演算処理装置に接続される第2の演算処理装置と、を有し、
前記第1の演算処理装置は、
処理対象データの読出要求を生成する処理部と、
前記処理部が生成した読出要求を前記第2の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記第2の演算処理装置から受信する第1の通信部と、
前記データブロックを保存するバッファと、
前記第1の通信部が受信したデータブロックに含まれる複数の単位データを前記バッファに順次書き込む書込部と、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す読出部と、を有し、
前記第2の演算処理装置は、
前記第1の演算処理装置から前記読出要求を受信するとともに、受信した前記読出要求に対応する前記処理対象データを含む前記データブロックを前記第1の演算処理装置へ送信する第2の通信部を有する、情報処理装置。
A first arithmetic processing unit;
A second arithmetic processing unit connected to the first arithmetic processing unit,
The first arithmetic processing unit includes:
A processing unit for generating a read request for processing target data;
A first request for transmitting the read request generated by the processing unit to the second arithmetic processing unit and receiving a data block including the processing target data corresponding to the transmitted read request from the second arithmetic processing unit. The communication department of
A buffer for storing the data block;
A writing unit for sequentially writing a plurality of unit data included in the data block received by the first communication unit to the buffer;
A reading unit that preferentially reads out the processing target data that is at least one of the plurality of unit data from the buffer;
The second arithmetic processing unit includes:
A second communication unit that receives the read request from the first arithmetic processing unit and transmits the data block including the processing target data corresponding to the received read request to the first arithmetic processing unit; An information processing apparatus.
前記第2の演算処理装置における前記第2の通信部は、
前記読出要求に含まれるアドレス情報から取り出された前記処理対象データのアドレス情報を記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、請求項4に記載の情報処理装置。
The second communication unit in the second arithmetic processing unit is:
A response header that records the address information of the processing target data extracted from the address information included in the read request is attached to the data block,
The information processing apparatus according to claim 4, wherein the data block with the response header is transmitted to the first arithmetic processing apparatus.
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記第1の演算処理装置における前記第1の通信部は、
前記所定間隔に関する情報を含む前記読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置における前記第2の通信部は、
前記読出要求に含まれるアドレス情報から取り出された先頭の前記処理対象データのアドレス情報と、前記読出要求から取り出された前記所定間隔に関する情報とを記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、請求項4に記載の情報処理装置。
When a plurality of the processing target data exists at predetermined intervals in the plurality of unit data,
The first communication unit in the first arithmetic processing unit is:
Transmitting the read request including information on the predetermined interval to the second arithmetic processing unit;
The second communication unit in the second arithmetic processing unit is:
Attaching a response header to the data block, which is recorded with address information of the processing target data extracted from the address information included in the read request, and information regarding the predetermined interval extracted from the read request,
The information processing apparatus according to claim 4, wherein the data block with the response header is transmitted to the first arithmetic processing apparatus.
前記第1の演算処理装置における前記読出部は、
前記データブロックに付された前記応答ヘッダに記録された前記先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき、前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、請求項6に記載の情報処理装置。
The reading unit in the first arithmetic processing unit is:
With reference to the address information of the processing target data at the head recorded in the response header attached to the data block and the information about the predetermined interval,
Based on the address information and the predetermined interval, after reading the plurality of data to be processed from the buffer,
The information processing apparatus according to claim 6, wherein unit data other than the plurality of data to be processed is sequentially read from the buffer.
第1の演算処理装置と、前記第1の演算処理装置に接続される第2の演算処理装置と、を有する情報処理装置の制御方法であって、
前記第1の演算処理装置は、
処理対象データの読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置は、
前記第1の演算処理装置から前記読出要求を受信すると、受信した前記読出要求に対応する前記処理対象データを含む前記データブロックを前記第1の演算処理装置へ送信し、
前記第1の演算処理装置は、
前記読出要求に対応する前記処理対象データを含むデータブロックを前記第2の演算処理装置から受信し、
受信したデータブロックに含まれる複数の単位データをバッファに順次書き込み、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す、情報処理装置の制御方法。
A method for controlling an information processing apparatus, comprising: a first arithmetic processing device; and a second arithmetic processing device connected to the first arithmetic processing device,
The first arithmetic processing unit includes:
Sending a read request for processing target data to the second arithmetic processing unit;
The second arithmetic processing unit includes:
When the read request is received from the first arithmetic processing unit, the data block including the processing target data corresponding to the received read request is transmitted to the first arithmetic processing unit,
The first arithmetic processing unit includes:
Receiving a data block including the processing target data corresponding to the read request from the second arithmetic processing unit;
A plurality of unit data included in the received data block are sequentially written to the buffer,
A method for controlling an information processing apparatus, wherein the processing target data that is at least one of the plurality of unit data is preferentially read from the buffer.
JP2015125808A 2015-06-23 2015-06-23 Arithmetic processing device, information processing device, and control method for information processing device Active JP6665429B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015125808A JP6665429B2 (en) 2015-06-23 2015-06-23 Arithmetic processing device, information processing device, and control method for information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015125808A JP6665429B2 (en) 2015-06-23 2015-06-23 Arithmetic processing device, information processing device, and control method for information processing device

Publications (2)

Publication Number Publication Date
JP2017010319A true JP2017010319A (en) 2017-01-12
JP6665429B2 JP6665429B2 (en) 2020-03-13

Family

ID=57764419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015125808A Active JP6665429B2 (en) 2015-06-23 2015-06-23 Arithmetic processing device, information processing device, and control method for information processing device

Country Status (1)

Country Link
JP (1) JP6665429B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05224881A (en) * 1992-02-12 1993-09-03 Matsushita Electric Ind Co Ltd Fifo buffer circuit
JPH0816539A (en) * 1994-06-30 1996-01-19 Hitachi Ltd Data transfer method and distributed memory type parallel computer and element processor realizing this method
JPH0981532A (en) * 1995-09-08 1997-03-28 Fujitsu Ltd Distributed storage type parallel computer
JPH09269936A (en) * 1996-03-30 1997-10-14 Nec Corp Remote reading processing method and device therefor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05224881A (en) * 1992-02-12 1993-09-03 Matsushita Electric Ind Co Ltd Fifo buffer circuit
JPH0816539A (en) * 1994-06-30 1996-01-19 Hitachi Ltd Data transfer method and distributed memory type parallel computer and element processor realizing this method
JPH0981532A (en) * 1995-09-08 1997-03-28 Fujitsu Ltd Distributed storage type parallel computer
US5765202A (en) * 1995-09-08 1998-06-09 Fujitsu Limited Parallel computer of a distributed storage type
JPH09269936A (en) * 1996-03-30 1997-10-14 Nec Corp Remote reading processing method and device therefor

Also Published As

Publication number Publication date
JP6665429B2 (en) 2020-03-13

Similar Documents

Publication Publication Date Title
JP4908017B2 (en) DMA data transfer apparatus and DMA data transfer method
KR20190096801A (en) System and method for nvme inter command association in ssd storage
KR102212269B1 (en) Register file for I/O packet compression
US9256555B2 (en) Method and system for queue descriptor cache management for a host channel adapter
JP2018045700A (en) Multi-core interconnect in network processor
WO2015176664A1 (en) Data operation method, device and system
JP5265827B2 (en) Hybrid coherence protocol
CN116361232A (en) Processing method and device for on-chip cache, chip and storage medium
WO2014206229A1 (en) Accelerator and data processing method
JP2018045438A (en) Parallel processor, transmit program, reception program and data transfer method
CN114238167A (en) Information prefetching method, processor and electronic equipment
JP6331944B2 (en) Information processing apparatus, memory control apparatus, and information processing apparatus control method
WO2018107331A1 (en) Computer system and memory access technology
CN110399314B (en) CPU, electronic equipment and CPU cache control method
WO2014206232A1 (en) Consistency processing method and device based on multi-core processor
US8850159B2 (en) Method and system for latency optimized ATS usage
JP6665429B2 (en) Arithmetic processing device, information processing device, and control method for information processing device
JP4431492B2 (en) Data transfer unit that supports multiple coherency granules
US11314438B2 (en) Arithmetic processing device, information processing device, and control method for arithmetic processing device
CN117519955B (en) Control method, system and device of acceleration equipment and acceleration equipment
US11960727B1 (en) System and method for large memory transaction (LMT) stores
CN108762666B (en) Access method, system, medium and device of storage system
CN117032595B (en) Sequential flow detection method and storage device
JP4774099B2 (en) Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus
TWI758317B (en) Apparatus and method for providing an atomic set of data accesses

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190424

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191028

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200203

R150 Certificate of patent or registration of utility model

Ref document number: 6665429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150