JP6665429B2 - Arithmetic processing device, information processing device, and control method for information processing device - Google Patents

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

Info

Publication number
JP6665429B2
JP6665429B2 JP2015125808A JP2015125808A JP6665429B2 JP 6665429 B2 JP6665429 B2 JP 6665429B2 JP 2015125808 A JP2015125808 A JP 2015125808A JP 2015125808 A JP2015125808 A JP 2015125808A JP 6665429 B2 JP6665429 B2 JP 6665429B2
Authority
JP
Japan
Prior art keywords
data
unit
arithmetic processing
processing device
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.)
Active
Application number
JP2015125808A
Other languages
Japanese (ja)
Other versions
JP2017010319A (en
Inventor
哲志 中川
哲志 中川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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

Description

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

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

また、情報処理装置としては、複数のCPUを相互に通信可能に接続されるマルチプロセッサシステムが用いられる場合がある。このようなマルチプロセッサシステムでは、近年、例えば図14に示すように、複数のCPUやルータの相互間が、高速シリアル伝送によるネットワークを介して接続される。高速シリアル伝送を採用することによって、通信の高スループットを実現することができる。   Further, a multiprocessor system in which a plurality of CPUs are communicably connected to each other may be used as the information processing apparatus. 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 employing 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)では、応答データを含むパケットの末尾までの全てのデータを受信しないと、そのパケットが正常か否かを判定することができない。   In a network using high-speed serial transmission, transmission errors are checked by a CRC (Cyclic Redundancy Check). When a transmission error is detected, the end of the packet is rewritten to EDB (end bad). Therefore, unless the end point (CPU) receives all data up to the end of the packet including the response data, it cannot determine whether the packet is normal.

したがって、フェッチ要求を発行した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 sequentially stored in the CPU core from the top. Will be sent to

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

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

本件の演算処理装置は、他の演算処理装置に接続されるものであって、処理部,通信部,バッファ,書込部および読出部を有する。前記処理部は、処理対象データの読出要求を生成する。前記通信部は、前記処理部が生成した読出要求を前記他の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記他の演算処理装置から受信する。前記バッファは、前記データブロックを保存する。前記書込部は、前記通信部が受信した前記データブロックに含まれる複数の単位データを前記バッファに順次書き込む。前記読出部は、前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す。また、前記読出部は、前記データブロックに付された応答ヘッダに前記他の演算処理装置によって記録された前記処理対象データのアドレス情報であって、前記複数の単位データの中から前記処理対象データを特定するための情報を参照し、当該アドレス情報に対応する前記処理対象データを前記バッファから読み出した後、前記処理対象データ以外の単位データを前記バッファから順次読み出す。 The arithmetic processing device of the present case is connected to another arithmetic processing device, and has 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 the read request generated by the processing unit to the another 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. I do. The buffer stores the data block. The writing unit sequentially writes a plurality of unit data included in the data block by the communication unit has received in the buffer. The reading unit preferentially reads the processing target data, which is at least one of the plurality of unit data, from the buffer. Further, the reading unit is address information of the processing target data recorded by the another processing unit in a response header attached to the data block, and the processing target data is selected from the plurality of unit data. After reading the processing target data corresponding to the address information from the buffer with reference to the information for specifying the address information, unit data other than the processing target data is sequentially read from the buffer.

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

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

以下に、図面を参照し、本願の開示する演算処理装置、情報処理装置、および情報処理装置の制御方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。   Hereinafter, an embodiment of an arithmetic processing device, an information processing device, and a control method of an 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 various modified examples and applications of technology not explicitly described in the embodiment. That is, the present embodiment can be implemented with various modifications without departing from the spirit thereof. In addition, each drawing is not intended to include only the components illustrated in the drawings, but may include other functions. The embodiments can be appropriately combined within a range that does not contradict processing contents.

〔1〕本実施形態に関連する技術
まず、図14〜図23を参照しながら本実施形態に関連する技術について説明する。
近年、マルチプロセッサシステム(情報処理装置)では、通信の高スループットを実現すべく、図14に示すように、複数のCPUやルータの相互間が、高速シリアル伝送によるネットワーク(図16の符号30参照)を介して接続される。図14は、マルチプロセッサシステムの構成の一例を示すブロック図である。
[1] Technology Related to the Present Embodiment First, a technology related to the present embodiment will be described with reference to FIGS.
In recent years, in a multiprocessor system (information processing device), as shown in FIG. 14, a plurality of CPUs and routers are interconnected by a high-speed serial transmission network (see reference numeral 30 in FIG. 16) in order 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 having a plurality of cores has been generally used as a CPU. Here, an example of a configuration of each CPU (multi-core processor, arithmetic processing unit) 10 configuring the multiprocessor system illustrated 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 of 1 or more). 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, but 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 functioning 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, a large scale integrated circuit (LSI) 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, a case where one of the cores 11 requests reading (fetching) of memory data (a case of issuing a fetch request) will be considered. The core 11 specifies an address indicating 8-byte data (processing target data) required by the core 11 and first accesses a cache (a primary cache and a secondary cache) built in the core 11. As a result, when a cache hit occurs, 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 (a tertiary cache in FIG. 15) 12 shared by a plurality of cores. However, if a cache miss occurs in the shared cache 12, access to the main memory 20 is performed. Since the cache line size of the shared cache 12 is, for example, 128 bytes, the MAC 13 is required to read a 128-byte data block including the 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 is configured such that memory data (for example, 8 bytes) of another CPU 10 (for example, CPU # 1 of FIGS. 14 and 16) different from the CPU 10 to which the core 11 belongs (for example, CPU # 0 of FIGS. 14 and 16). The case of requesting the reading of (processing target data) will be described with reference to FIG. FIG. 16 is a diagram illustrating packet routing when a fetch request is issued 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 a fetch request packet to another CPU # 1 via the router 14 and the network 30. The CPU # 1 that has received the fetch request packet reads a data block including the requested memory data (8-byte processing target data) from the DIMM 20 of the CPU # 1, and returns the data block as a fetch response packet. At this time, the size of the data block 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. 17A and 17B. 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 packet without data, and the fetch response packet for the fetch request packet is a packet with data. The head cycle of the packet is a header (HDD) on which information for determining the contents and destination of the packet is placed.

さらに、図18(A)および図18(B)を参照しながら、フェッチ要求パケットおよびフェッチ応答パケットのヘッダについて説明する。図18(A)はフェッチ要求パケットのヘッダのフォーマットを示す図であり、図18(B)はフェッチ応答パケットのヘッダのフォーマットを示す図である。   Furthermore, the headers of the fetch request packet and the fetch response packet will be described with reference to FIGS. 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 the packet, a Physical Address (physical address; PA or pa) of the memory data requested by the core 11, and the like. , A request ID (RQID) which is an identifier for identifying a packet. As shown in FIG. 18B, the header of the fetch response packet contains information such as OPC and RQID. Note that 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, the 8-byte data in each cycle corresponds to the data Data0, Data1,..., DataF at the physical address 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 sends the data block to the core 11 that has issued 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 on the packet receiving side. When a transmission error is detected, packets subsequent to the packet in which the transmission error is detected are discarded, and a NACK (Negative Acknowledgment) is transmitted by using a DLLP (Data Link Layer Packet), whereby the packet is transmitted to the transmitting CPU # 1. Retransmission is required.

伝送エラーを検出したパケットを、中継点(ルータ;図14参照)や受信側CPU#0において破棄することができない場合、当該パケットは、当該パケットの末尾をEDBにして送出される。   If a packet in which a transmission error has been 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 set to EDB.

受信側CPU#0におけるルータ14は、他のCPU#1から受信したフェッチ応答パケットを、一旦、当該ルータ14内のバッファ(図19の符号141参照)に格納する。当該バッファを受信バッファという。受信バッファはFIFOのバッファである。ここで、図19〜図23を参照しながら、受信バッファ141および当該受信バッファ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. The buffer is called a reception buffer. The reception buffer is a FIFO buffer. Here, the reception buffer 141 and packet write / read processing for the reception buffer 141 will be described with reference to FIGS.

図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 the reception buffer 141 included in the router 14 and the packet writing / reading process for the reception buffer 141 in the 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. The read side of the reception buffer 141 includes an RDR (Read Data Register) and an RP (Read Pointer).

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

図20に示すフローチャート(ステップS101〜S107)に従って、図19に示すパケット書込処理に係る構成(CPU#0におけるルータ14)の動作について説明する。ルータ14は、パケット書込時にヘッダ(HD)またはデータ(DT)の受信を待機しており(ステップS101のNOルート)、ヘッダ(HD)またはデータ(DT)を受信すると(ステップS101のYESルート)、EDBを受信したか否かを判断する(ステップS102)。   The operation of the configuration (router 14 in CPU # 0) related to the packet writing process shown in FIG. 19 will be described with reference to the flowchart (steps S101 to S107) shown in FIG. The router 14 waits for reception of the header (HD) or data (DT) at the time of writing the packet (NO route in step S101), and receives the header (HD) or data (DT) (YES route in step S101). ), It is determined whether or not 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 an END indicating the last cycle of the packet has been received (step S103). When the END is received (YES route in step S103), the router 14 sets WP + 1 in HDWP as a value designating the start address (header address) of the next packet to be written (step S104). Thereafter, the router 14 writes the data (or header) in the WDR into the entry of the reception buffer 141 specified by the WP (step S105), then 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へ書き込まれる。   When it is determined in step S102 that the EDB has been received (YES route), the router 14 sets HDWP as WP (step S107), and returns to the processing of step S101. As a result, the current packet to be written (the packet with the EDB set at the end) is again written to the reception buffer 141 in order from the beginning (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 with reference to the flowchart (steps S111 to S113) shown in FIG. The router 14 determines whether or not the value of the RP matches the value of the HDWP (step S111). When the value of the RP matches the value of the HDWP (YES route in step S111), the router 14 determines that the packet to be written 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の処理に戻る。   When the value of the RP does not match the value of the HDWP (NO route in step S111), the router 14 determines that the writing of the packet to be written is completed, and starts reading the packet from the reception buffer 141 (FIG. 22 timing T18). That is, the router 14 reads an entry (one unit data) of the reception buffer 141 specified by the RP from the reception buffer 141 via the RDR (step S112). Thereafter, the router 14 increments the 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 the write / read processing of the fetch response packet to / from 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 the WE to the 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, every time WP is incremented by one, 16 data DT0 to DTF are sequentially written to the reception buffer 141 via WDR (see timings T2 to T17; see 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参照)。   Then, when the data DTF and END indicating the last cycle of the packet are received at timing T17, WE is set to a low state and RE is set to a high state. Accordingly, at timing T18, a value WP + 1 = 17 indicating the address of the header of the next packet is set as the value of HDWP (from the YES route of step S103 in FIG. 20 to step S104). As a result, the value 17 of the HDWP does not match the value 1 of the RP (NO route of 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, every time the RP is incremented by one, 16 data DT0 to DTF are sequentially read from the reception buffer 141 via the RDR (see timings T19 to T34; see steps S112 and S113 from the NO route of step S111 in FIG. 21). . Such a reading process is executed until the value of HDWP matches the value of RP at timing T34 (that is, until it is determined as YES in step S111 in FIG. 21). In the example shown in FIG. 22, the value of HDWP and the value of RP coincide at 17 at timing T34.

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

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

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

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

したがって、フェッチ要求を発行したCPU#0では、当該フェッチ要求に応じた応答データを含むパケットの末尾までの全てのデータが、一旦、受信バッファ141に保存されてから、受信バッファ141におけるデータが先頭から順にコア11に送り出される。   Therefore, in the CPU # 0 which has issued the fetch request, all 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 From the core 11.

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

このため、高速シリアル伝送のネットワーク30で接続されるマルチプロセッサシステムにおいて、コア11が要求する処理対象データの読出レイテンシを短縮することが望まれている。   Therefore, in a multiprocessor system connected by the high-speed serial transmission network 30, it is desired to reduce the read latency of data to be processed 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 another CPU 10, the 8-byte data block 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 data to be processed) viewed from the core 11 is reduced.

つまり、後述する第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 the response packets to the fetch request are written to the reception buffer 141 of the endpoint similarly to the related art described above. The endpoint is the receiving CPU 10A (see FIG. 1; first processing unit, CPU # 0) connected to the high-speed serial transmission network 30 and receiving the fetch response packet. However, in the information processing apparatus according to the first embodiment, as described later with reference to FIGS. 1 to 7, when reading a packet from the reception buffer 141 after writing the packet, the order in which the packet is written into the reception buffer 141 is as follows. Instead, the 8-byte process 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). At the end point, an HDRP (header read pointer), a Length register, and a CycleCT (cycle counter), which will be described later, are added to the configuration (see RP and RDR in FIG. 19) relating to the packet read processing of the related art described above. (See the reading unit 143 in FIGS. 4 and 5). By controlling the RP using the HDRP, the Length register, and the CycleCT, the 8-byte processing target data required by the core 11 can be read first (see FIGS. 5 to 7).

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

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

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

〔3〕第1実施形態の情報処理装置
図1を参照しながら、本発明の第1実施形態としての演算処理装置(CPU)10A,10Bを含む情報処理装置(マルチプロセッサシステム)1の構成について説明する。図1は、その構成を示すブロック図である。
[3] Information Processing Device of First Embodiment With reference to FIG. 1, the configuration of an information processing device (multiprocessor system) 1 including arithmetic processing units (CPUs) 10A and 10B as a first embodiment of the present invention will be described. 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 of (two in FIG. 1) CPUs 10A and 10B, and is, for example, a PC or a server. The CPU 10A corresponds to a first arithmetic processing device, and may be referred to as a receiving CPU or CPU # 0 in some cases. The CPU 10B corresponds to a second arithmetic processing unit, and may be referred to as a transmitting CPU or a CPU # 1 in some cases. 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 communicably connected to each other via a network 30 using 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 including a plurality of cores 11A, like 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, N + 1 cores # 0 to #N (N is an integer of 1 or more) are provided as the core 11A. 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 a shared cache 12A. However, 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の通信部として機能する。   The MAC 13A and the router 14A are connected to the shared cache 12A in addition to the core 11A. The MAC 13A is connected to the DIMM 20A functioning 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, a routing LSI; 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 has a core 11B, a shared cache (tertiary cache) 12B, a MAC 13B, and a router 14B. The core 11B, the shared cache 12B, the MAC 13B, and the router 14B are the same as the above-described core 11A, shared cache 12A, MAC 13A, and router 14A of the CPU 10A, respectively. However, the MAC 13B is connected to the DIMM 20B functioning as a main memory, and functions as a control unit that controls data exchange 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) to which a data block including data to be processed corresponding to the fetch request is attached.

一方、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 a fetch request from the CPU 10A by a fetch request packet (see FIGS. 2 and 17A). Further, the router (second communication unit) 14B transmits to the CPU 10A a fetch response packet (see FIGS. 2 and 17B) to which a data block including processing target data corresponding to the fetch request is attached.

特に、第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 the address information (see PA in FIG. 18A) included in the fetch request (the header of the fetch request packet). A response header recording the address information pa [6: 3] of the target data is added 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 to which the response header is added 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 receiving 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 to which a data block is attached 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 into the reception buffer 141. The writing unit 142 of the first embodiment has the same configuration as the related art shown in FIG. 19, as described later with reference to FIG.

読出部143は、パケットに含まれる複数の単位データのうちの少なくとも一つである処理対象データを、受信バッファ141から優先的に読み出す。特に、第1実施形態の読出部143は、データブロックに付された応答ヘッダに記録された処理対象データのアドレス情報pa[6:3]を参照する。そして、読出部143は、まず、参照した当該アドレス情報pa[6:3]に対応する処理対象データを受信バッファ141から読み出した後、当該処理対象データ以外の単位データを受信バッファ141から順次読み出す。第1実施形態の読出部143は、図4および図5を参照しながら後述するごとく構成され、図6および図7を参照しながら後述するごとく動作する。   The reading unit 143 preferentially reads, from the reception buffer 141, the processing target data that is at least one of the plurality of unit data included in the packet. In particular, the reading unit 143 of 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. Then, the reading unit 143 first reads the 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 below with reference to FIGS. 4 and 5, and operates as described below 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 a function as a reception buffer 141, a writing unit 142, and a reading unit 143, and the CPU 10B has a function as a second communication unit. The case of having a function is described. However, each of the plurality of 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.

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

この場合、図2に示すように、必要な処理対象データを読み出すためのフェッチ要求パケット(データ無しパケット)が、CPU10Aから発行・送信され、ネットワーク30経由で、当該処理対象データを保持するメモリ20Bを有するCPU10Bにルーティングされる。ルータ14Bによってフェッチ要求パケットを受信したCPU10Bは、要求された処理対象データを含むデータブロックをメモリ20Bから読み出し、フェッチ応答パケット(データ付きパケット)を生成し、当該フェッチ応答パケットをCPU10Aに送信する。   In this case, as shown in FIG. 2, a fetch request packet (data-less packet) for reading necessary processing target data is issued and transmitted from the CPU 10A, and the memory 20B holding the processing target data via the network 30. Is routed to the CPU 10B having Upon receiving the fetch request packet by the router 14B, the CPU 10B reads a 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 the unit data (processing target data) to be fetched is placed in the header of the fetch response packet. I have. The 4-bit physical address pa [6: 3] specifies which unit data of a plurality of unit data (for example, 16 8-byte data) in the data block included in the fetch response packet is requested by the core 11A on the CPU 10A side. This is information for identifying whether or not the information has been written.

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 physical address PA (see FIG. 18A) described in the header of the fetch request packet indicates the 4-bit physical address pa [6] that can specify the unit data to be fetched. : 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 as 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 has issued 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 by the CPU 10A is first written into the reception buffer 141 provided in the router 14A by the writing unit 142 (see FIGS. 1 and 4) once for each unit data. Thereafter, by controlling the value of the RP (the address of the unit data to be read) in the reading unit 143 ′, the processing target data requested by the core 11A among the packets written in the reception buffer 141 is transmitted from the reception buffer 141. Read out preferentially. FIG. 4 is a block diagram showing reception buffer 141 included in router 14A in CPU 10A shown in FIG. 1 and a configuration (a writing unit 142 and a reading unit 143) relating to packet writing / reading processing for 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 illustrated in FIG. 4, the writing unit 142 according to the first embodiment has the same WDR, HDWP, and WP as the configuration related to the packet writing process on the reception buffer 141 according to the related art illustrated in FIG. Further, the reading unit 143 of the first embodiment includes an HDRP (Header Read Pointer) in addition to the same RDR and RP as the configuration related to the packet writing process to the reception buffer 141 of the related art shown in FIG. , 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 for temporarily storing write target data (one unit of data; for example, 8 bytes of data) to be written to the reception buffer 141. The WP controls writing of a packet to be written, and is a pointer that specifies a write destination address in the reception buffer 141 of the write target data stored in the WDR. The WP is set to 0 in an initial state, and is incremented by one every cycle when a write target packet is written to the reception buffer 141. The write target data stored in the WDR is written to an address specified by the WP. HDWP is a pointer that specifies the address of the header of the packet to be written, 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 for temporarily storing 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 that specifies an address of data to be read from the reception buffer 141. RP is set to 0 in an initial state, and is incremented by one every cycle when data is read from the reception buffer 141. The 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 and transmitted to the core 11 that has issued the fetch request as described above.

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 generation unit 143a (see FIG. 5) when the header is read from the reception buffer 141. CycleCT is a counter indicating the number of unit data of the unit data of the packet being read from the reception buffer 141, and is incremented by one every cycle, that is, each time 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. As shown in FIG. 5, the reading unit 143 of the first embodiment includes a length generating 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, when reading the header 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, 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 one 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 one adder (+1) 143d adds 1 to a 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 one adder 143d, and obtains the obtained value RP + pa [6: 3] +1. Is set to the RP (see step S16 in FIG. 6). The physical address pa [6: 3] is read from the header of the packet being read via the RD-BUS (read bus). The operation timing of the adder 143e is the timing of 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 to set the value RP + pa [6: 3] +1 obtained by the adder 143e 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 one 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 a 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 to set the value HDRP + Length + 1 obtained by the adder 143f 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 to set the value RP + 1 obtained by the one 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 (NO route in step S19 in FIG. 6; FIG. 7). Timings T19 to T23 and 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 that the value HDRP + 1 obtained by the one adder 143b is set to RP (see (3) in FIGS. 5 to 7). The timing at which the switching operation is performed is a 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に組み込まれて実現されてもよい。   The functions of 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 implemented in the CPU 10A by software by executing a program. And may be realized.

次に、図5〜図7を参照しながら、上述のごとく構成された書込部142および読出部143の動作について説明する。図6は、図5に示すパケット読出処理に係る構成(読出部143)の動作を説明するフローチャートである。図7は、図4および図5に示すパケット読出処理に係る構成(読出部143)が図6に示すフローチャートに従って10番目のデータ(DTA)を最初に読み出す場合の動作を示すタイムチャートである。   Next, 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 illustrating 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 tenth data (DTA) according to the flowchart shown in FIG.

第1実施形態の書込部142によるパケット書込動作は、図20を参照しながら前述した関連技術の動作と同様であるので、その説明は省略する。これに対し、第1実施形態の読出部143によるパケット読出動作は、図21を参照しながら前述した関連技術の動作と異なっている。   The packet write operation performed by the write unit 142 according to 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, the packet reading operation by the reading unit 143 according to the first embodiment will be described with reference to FIGS. 5 and 7 according to the flowchart (steps S11 to S24) shown in FIG.

ルータ14Aは、RPの値とHDWPの値とが一致しているか否かを判断する(ステップS11)。RPの値とHDWPの値とが一致している場合(ステップS11のYESルート)、ルータ14Aは、書込対象パケットの書込中であると判断し、ステップS11の処理に戻る。   The router 14A determines whether the value of RP matches the value of HDWP (step S11). When the value of the RP matches the value of the HDWP (YES route in step S11), the router 14A determines that the packet to be written 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 value of RP does not match the value of HDWP (NO route in step S11), the router 14A determines that the writing of the packet to be written 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 specified by the RP is read from the reception buffer 141 via the RDR (step S12). Then, it is determined whether 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 first read, so that the read entry is determined to be the header (YES route in step S13). In this case, the read header Opcode 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 read by the reading unit 143. This 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 the response is a fetch response (YES route in step S15), the selector 143g performs a switching operation 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) specified by the value (address) set in the RP is read (from the NO route of 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 is set to the 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 RP.

この後、次のサイクルで、ヘッダの次に読み出されるエントリはデータであり、この場合(ステップS13のNOルート)、CycleCTの値がデータ長(パケット長)Lengthに到達したか否かが判断される(ステップS18)。つまり、読出対象パケットの全てのデータが読み出されたか否かが判断される。図7では、Length=16の例が示されている。   Thereafter, in the next cycle, the entry to be read next to the header is data. In this case (NO route in step S13), it is determined whether the value of CycleCT has reached the data length (packet length) Length. (Step S18). That is, it is determined whether or not all the 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 is not Length (NO route in step S18), it is determined whether the value of RP has reached the value HDRP + Length (value 16 in FIG. 7) (step S19). When RP is not HDRP + Length (NO route in step S19), or when the Opcode of the header is not a fetch response (NO route in step S15), the selector 143g performs a switching operation to select (2) in FIG. Thus, each time one unit of data is read (see timings T19 to T23 in FIG. 7) until the value of RP reaches the value HDRP + Length, the value of RP is incremented by 1 (step S20), and after 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 to select (3) in FIG. As a result, the value HDRP + 1 obtained by the one adder 143b is set to RP (step S21), and CycleCT is incremented by one (step S17). For example, at timing T24 in FIG. 7, since HDRP = 0, 1 is set to 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 continues until the value of CycleCT reaches the data length Length, that is, until all the data of the read target packet is read. Performs a switching operation to select (2) in FIG. Thus, each time one unit of data is read, the value of RP is incremented by 1 until the value of CycleCT reaches the data length Length (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). Then, the selector 143g performs a switching operation so as to select (4) in FIG. Thus, the value HDRP + Length + 1 (value 17 in FIG. 7) obtained by the adder 143f is set in RP as the address of the data to be read next (step S23). The value HDRP + Length + 1 (value 17 in FIG. 7) obtained by the adder 143c is set in HDRP as the address of the header of the packet to be read next (step S24). Thereafter, the process returns to step S11.

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

また、上述した動作では、物理アドレス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 is the data other than the data read first from the packet in the reception buffer 141.

〔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 of Second Embodiment Next, an information processing apparatus (multiprocessor system) 1 ′ according to 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 processing target data exists at a predetermined interval Interval in 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 a stride access generated by a matrix calculation or the like. It is. For example, in the example illustrated in FIG. 13, a case is described in which four processing target data DT2, DT6, DTA, and DTE exist at a predetermined interval Interval = 4 in a packet including 16 8-byte data DT0 to DTF. 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 has a plurality (two in FIG. 1) of CPUs 10A and 10B, similarly to the information processing apparatus 1 of the first embodiment. Also in the second embodiment, the CPU 10A and the CPU 10B are communicably connected to each other via the network 30 using 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 device 1 'have the same configuration as the CPUs 10A and 10B in the information processing device 1 described above with reference to FIGS. However, in the information processing apparatus 1 'of the second embodiment, as described below, the function of the CPU 10A as a first communication unit of the router 14A and the function of the CPU 10B as a second communication unit of the router 14B. Some changes are made to. Further, in the information processing apparatus 1 'of the second embodiment, as described below, the reading unit 143 in the CPU 10A (router 14A) is changed to a reading unit 143' (see FIGS. 1, 10, and 11). 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 transmits a fetch request generated by one core 11A to a fetch request packet (see FIGS. 9 and 17A). To the CPU 10B. Also, the router (first communication unit) 14A receives from the CPU 10B a fetch response packet (see FIGS. 9 and 17B) to which a data block including the processing target data corresponding to the fetch request is attached.

ただし、第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, in the header of the fetch request packet, in addition to the OPC, RQID, and physical address PA described above with reference to FIG. 18A, information on the predetermined interval (here, a value Interval indicating the predetermined interval) is included. 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へ送信する。   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, the response header includes the address information pa [of the head processing target data extracted from the address information (see PA in FIG. 8A) included in the header of the fetch request packet. 6: 3] and a predetermined interval Interval are recorded. Then, the router (second communication unit) 14B transmits the data block to which the response header is added 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と同様に構成されているので、その説明は省略する。   Further, the router (first communication unit) 14A in the CPU 10A of the second embodiment has a reception buffer 141, a writing unit 142, and a reading unit 143 '. In the second embodiment, the receiving 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. 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.

読出部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] and the predetermined interval Interval of the head processing target data recorded in the response header attached to the data block (fetch response packet). Then, the reading unit 143 'reads a plurality of processing target data requested by the core 11A from the reception buffer 141 based on the referred physical address pa [6: 3] and the predetermined interval Interval, and then reads the plurality of processing target data. The 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 below with reference to FIGS. 10 and 11, and operates as described below 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 a function as a reception buffer 141, a writing unit 142, and a reading unit 143 ', and the CPU 10B is a second communication unit. Is described. However, each of the plurality of 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, with reference to FIG. 9, in the information processing apparatus 1 'of the second embodiment, a description will be given of packet routing when a fetch request for stride access is issued from the core 11A of one CPU 10A to the memory data of another CPU 10B. I do.

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

一方、ルータ14Bによってフェッチ要求パケットを受信したCPU10Bは、要求された処理対象データを含むデータブロックをメモリ20Bから読み出し、フェッチ応答パケット(データ付きパケット)を生成し、当該フェッチ応答パケットをCPU10Aに送信する。このとき、図8(B)に示すように、CPU10Bで生成されるフェッチ応答パケットのヘッダ(応答ヘッダ)には、ストライドアクセス対象の先頭の単位データ(処理対象データ)を特定可能な4ビットの物理アドレスpa[6:3]が載せられている。また、図8(B)に示すように、当該ヘッダには、ストライドアクセスに係る所定間隔Intervalも載せられている。   On the other hand, upon receiving the fetch request packet by the router 14B, the CPU 10B 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. I do. At this time, as shown in FIG. 8B, the header (response header) of the fetch response packet generated by the CPU 10B includes a 4-bit data that can specify the head unit data (process target data) of the stride access target. The physical address pa [6: 3] is placed. Further, as shown in FIG. 8B, a predetermined interval Interval related to stride access is also carried 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 physical address PA (see FIG. 8A) described in the header of the fetch request packet indicates the 4-bit physical address pa [ 6: 3] is taken out. Also, a predetermined interval Interval related to the 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 has issued 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 the 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, while when Interval = 16, the range exceeds the data block (16 unit data) included in the packet. .

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

特に、第2実施形態における読出部143′は、応答ヘッダに記録された、先頭の処理対象データの物理アドレスpa[6:3]と所定間隔Intervalとに基づき、コア11Aの要求する複数の処理対象データを受信バッファ141から読み出した後、それ以外のデータを受信バッファ141から順次読み出す。   In particular, the reading unit 143 'in the second embodiment performs a plurality of processings requested by the core 11A based on the physical address pa [6: 3] of the first processing target data and the predetermined 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, a configuration of the second embodiment that realizes the above-described functions will be described with reference to FIGS. 10 and 11. FIG. 10 is a block diagram showing a reception buffer 141 included in the router 14A in the CPU 10A according to the second embodiment, and a configuration (a writing unit 142 and a reading unit 143 ') relating to packet writing / reading processing for the reception buffer 141. is there. FIG. 11 is a block diagram showing in detail the configuration (reading unit 143 ') relating to the packet reading process shown in FIG.

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

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

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

ついで、図11を参照しながら、図10に示すパケット読出処理に係る構成、つまり読出部143′について、より詳細に説明する。図11に示すように、第2実施形態の読出部143′は、第1実施形態の読出部143と同様のLength生成部143aと1加算器143b,143dと加算器143c,143e,143fとセレクタ143gとに加え、加算器143hおよび演算器143iを有する。   Next, the configuration relating 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 generating unit 143a, one adders 143b and 143d, and adders 143c, 143e and 143f, and a selector similar to the reading unit 143 of the first embodiment. 143g and an adder 143h and a calculator 143i.

Length生成部143aは、第1実施形態と同様、ヘッダを受信バッファ141から読み出した際に、当該ヘッダにおけるOpcodeから、受信バッファ141から読出中のパケットのデータ長Lengthを生成し、Lengthレジスタに設定する。   As in the first embodiment, when reading the header from the reception buffer 141, the Length generation unit 143a generates the data length of the packet being read from the reception buffer 141 from the Opcode in the header and sets the data length in the Length register. I 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参照)である。   As in 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 and resets (initializes) 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)参照)。   As in the first embodiment, the adder 143e adds the physical address pa [6: 3] specifying the first processing target data requested by the core 11A and the value RP + 1 from the one adder 143d, and obtains the result. 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 from the header of the packet being read via the RD-BUS. The operation timing of the adder 143e is the timing of 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 as to set the value RP + pa [6: 3] +1 obtained by the adder 143e 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)参照)。   As in 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 the CycleCT becomes the data length Length and resets (initializes) the CycleCT (step S43 in FIG. 12; see timing T34 in FIG. 13). At this 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 a 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 when the Opcode of the header is not a fetch response (see NO route in step S36 in FIG. 12) or when RP + Interval is equal to or less than HDRP + Length (NO route in step S40 in FIG. 12; FIG. 13). Timings T19 to T21, T23 to T25, T27 to T29, and T31 to T32. At this timing, the selector 143g performs a switching operation 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 arithmetic unit 143i added in the second embodiment is configured such that a value HDRP + [(RP−HDRP + 1)% Interval is obtained based on a predetermined interval Interval in the Interval register, the value HDRP + 1 from the one adder 143b, and the value of RP. ] Is calculated and the value is set to RP (see step S42 in FIG. 12). The operation timing of the arithmetic unit 143i is a timing when RP + Interval exceeds HDRP + Length (YES route in step S40 in FIG. 12; see timings T22, T26, and T30 in FIG. 13). At this 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 in the operation for giving the remainder, and is defined as remainder = dividend% divisor. For example, 16% 4 = 4, 17% 4 = 1, and 14% 4 = 2.

なお、上述した書込部142および読出部143′としての機能は、論理ゲート等によってハードウエア的にCPU10Aに組み込まれて実現されてもよいし、プログラムを実行することでソフトウエア的にCPU10Aに組み込まれて実現されてもよい。   The functions of the writing unit 142 and the reading unit 143 'described above may be implemented by being incorporated in the CPU 10A in hardware by a logic gate or the like, or may be implemented in software by executing a program. It may be realized 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 ') relating to the packet reading process shown in FIG. FIG. 13 shows that the configuration (reading unit 143 ') relating to the packet reading process shown in FIGS. 10 and 11 converts the second, sixth, tenth, and fourteenth data (DT2, DT6, DTA, DTE) according to the flowchart shown in FIG. 6 is a time chart showing an operation when reading is performed first.

第2実施形態の書込部142によるパケット書込動作は、図20を参照しながら前述した関連技術の動作と同様であるので、その説明は省略する。一方、第2実施形態の読出部143′によるパケット読出動作は、図6を参照しながら前述した第1実施形態の読出部143の動作と部分的に異なっている。   The packet writing operation performed by the writing unit 142 according to 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′によるパケット読出動作について説明する。   The 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 (steps S31 to S45) shown in FIG.

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

RPの値とHDWPの値とが一致しない場合(ステップS31のNOルート)、ルータ14Aは、書込対象パケットの書込を完了したと判断し、受信バッファ141からのパケット読出を開始する(図13のタイミングT18参照)。つまり、RPによって指定される、受信バッファ141のエントリ(一単位データ)が、受信バッファ141からRDR経由で読み出される(ステップS32)。そして、読み出されたエントリがヘッダ(HD)であるか否かが判断される(ステップS33)。   If the value of RP does not match the value of HDWP (NO route in step S31), the router 14A determines that the writing of the packet to be written 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 specified by the RP is read from the reception buffer 141 via the RDR (step S32). Then, it is determined whether 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 the 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 is set in the Interval register of the reading unit 143 'from the header (step S34). In addition, the read header Opcode 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 read 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 the response is a fetch response (YES route in step S36), the selector 143g performs a switching operation to select (1) in FIG. Thereby, 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) specified by the value (address) set in the RP is read (from the NO route of step S31 to step S32). That is, when the header of the packet is read, the address RP + pa [6: 3 of the reception buffer 141 corresponding to the data (head unit data) requested by the core 11A based on the physical address pa [6: 3] of the header. ] +1 is set in the RP. In the example shown in FIG. 13, 3 indicating the address corresponding to the second data DT2 is set in RP.

この後、次のサイクルで、ヘッダの次に読み出されるエントリはデータであり、この場合(ステップS33のNOルート)、CycleCTの値がデータ長(パケット長)Lengthに到達したか否かが判断される(ステップS39)。つまり、読出対象パケットの全てのデータが読み出されたか否かが判断される。図13では、Length=16の例が示されている。   Thereafter, in the next cycle, the entry read out after the header is data. In this case (NO route in step S33), it is determined whether the value of CycleCT has reached the data length (packet length) Length. (Step S39). That is, it is determined whether or not all the 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 in step S39), it is determined whether 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 in step S40), or when the Opcode of the header is not a fetch response (NO route in step S36), the selector 143g performs a switching operation 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, each time one unit of data is read, the value of the predetermined interval Interval (Interval = 4 in FIG. 13) is added to the value of RP until the value of RP + Interval exceeds the value HDRP + Length (step S41), and CycleCT is incremented by one. After that (Step S38), the process returns to Step S31. The execution timing of the process of step S41 corresponds to 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 to select (3) in FIG. As a result, the value HDRP + [(RP−HDRP + 1)% Interval] obtained by the arithmetic unit 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, the value HDRP + [(RP−HDRP + 1)% Interval] = 0 + [(15-0 + 1)% 4] = 16% 4 = 4, so 4 is set to RP. At the timing T26 in FIG. 13, the value HDRP + [(RP−HDRP + 1)% Interval] = 0 + [(16-0 + 1)% 4] = 17% 4 = 1, so RP is set to 1. Similarly, at the timing T30 in FIG. 13, the value HDRP + [(RP−HDRP + 1)% Interval] = 0 + [(13−0 + 1)% 4] = 14% 4 = 2, so 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. Thus, the value HDRP + Length + 1 (value 17 in FIG. 13) obtained by the adder 143f is set in RP as the address of the data to be read next (step S44). Also, the value HDRP + Length + 1 (the value 17 in FIG. 7) obtained by the adder 143c is set in HDRP as the address of the header of the packet to be read next (step S45). Thereafter, the process returns to step S31.

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

また、上述した動作では、先頭の処理対象データの物理アドレス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 processing target data and the predetermined interval Interval. Accordingly, the core 11A that has received the packet can easily determine which physical address is 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である場合に相当する。   Note that the first embodiment described above with reference to FIGS. 1 to 7 corresponds to the case where the value of the predetermined interval Interval is 1 in the second embodiment described above with reference to FIGS.

〔5〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
[5] Others Although the preferred embodiment of the present invention has been described in detail, the present invention is not limited to the specific embodiment, 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 that generates a read request for data to be processed;
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,
A reading unit that preferentially reads out the processing target data, which is at least one of the plurality of unit data, from the buffer.

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

(付記3)
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記通信部は、
前記所定間隔に関する情報を含む前記読出要求を前記他の演算処理装置へ送信し、
前記読出部は、
前記データブロックに付された応答ヘッダに前記他の演算処理装置によって記録された先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記1に記載の演算処理装置。
(Appendix 3)
When the plurality of processing target data exists at predetermined intervals in the plurality of unit data,
The communication unit,
Transmitting the read request including the information on the predetermined interval to the other arithmetic processing device,
The reading unit includes:
Referring to the address information and the information on the predetermined interval of the head of the processing target data recorded by the other arithmetic processing device in the response header attached to the data block,
After reading the plurality of processing target data from the buffer based on the address information and the predetermined interval,
The arithmetic processing device according to claim 1, wherein the unit data other than the plurality of processing target data 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 processing unit connected to the first processing unit,
The first arithmetic processing unit includes:
A processing unit that generates a read request for data to be processed;
Transmitting a read request generated by the processing unit to the second arithmetic processing device, and receiving a data block including the processing target data corresponding to the transmitted read request from the second arithmetic processing device; Communication department,
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 the processing target data, which 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 device and transmits the data block including the processing target data corresponding to the received read request to the first arithmetic processing device. Information processing device.

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

(付記6)
前記第1の演算処理装置における前記読出部は、
前記データブロックに付された前記応答ヘッダに記録された前記処理対象データのアドレス情報を参照し、
当該アドレス情報に対応する前記処理対象データを前記バッファから読み出した後、
前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記5に記載の情報処理装置。
(Appendix 6)
The reading unit in the first arithmetic processing device,
With reference 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 claim 5, wherein the 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 the plurality of processing target data exists at predetermined intervals in the plurality of unit data,
The first communication unit in the first arithmetic processing device includes:
Transmitting the read request including the information on the predetermined interval to the second arithmetic processing unit;
The second communication unit in the second arithmetic processing device,
Attach to the data block a response header that records the address information of the first processing target data extracted from the address information included in the read request and the information related to the predetermined interval extracted from the read request,
5. The information processing device according to claim 4, wherein the data block to which the response header is added is transmitted to the first arithmetic processing device.

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

(付記9)
第1の演算処理装置と、前記第1の演算処理装置に接続される第2の演算処理装置と、を有する情報処理装置の制御方法であって、
前記第1の演算処理装置は、
処理対象データの読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置は、
前記第1の演算処理装置から前記読出要求を受信すると、受信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記第1の演算処理装置へ送信し、
前記第1の演算処理装置は、
前記読出要求に対応する前記処理対象データを含むデータブロックを前記第2の演算処理装置から受信し、
受信したデータブロックに含まれる複数の単位データをバッファに順次書き込み、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す、情報処理装置の制御方法。
(Appendix 9)
A control method of an information processing device, 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:
Transmitting a read request for data to be processed to the second arithmetic processing unit;
The second arithmetic processing unit includes:
When receiving the read request from said first processor, the processed data corresponding to said read request received transmitted-containing Mude Taburokku to the first processor,
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 control method for an information processing device, wherein the processing target data, which 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:
Attaching a response header recording the address information of the processing target data extracted from the address information included in the read request to the data block,
The control method for an information processing device according to claim 9, wherein the data block to which the response header is added is transmitted to the first arithmetic processing device.

(付記11)
前記第1の演算処理装置は、
前記データブロックに付された前記応答ヘッダに記録された前記処理対象データのアドレス情報を参照し、
当該アドレス情報に対応する前記処理対象データを前記バッファから読み出した後、
前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記10に記載の情報処理装置の制御方法。
(Appendix 11)
The first arithmetic processing unit includes:
With reference 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 control method of an information processing device according to claim 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 the plurality of processing target data exists at predetermined intervals in the plurality of unit data,
The first arithmetic processing unit includes:
Transmitting the read request including the information on the predetermined interval to the second arithmetic processing unit;
The second arithmetic processing unit includes:
Attach to the data block a response header that records the address information of the first processing target data extracted from the address information included in the read request and the information related to the predetermined interval extracted from the read request,
The control method for an information processing device according to claim 9, wherein the data block to which the response header is added is transmitted to the first arithmetic processing device.

(付記13)
前記第1の演算処理装置は、
前記データブロックに付された前記応答ヘッダに記録された前記先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき、前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、付記12に記載の情報処理装置の制御方法。
(Appendix 13)
The first arithmetic processing unit includes:
With reference to the address information and the information on the predetermined interval of the head of the processing target data recorded in the response header attached to the data block,
Based on the address information and the predetermined interval, after reading the plurality of processing target data from the buffer,
13. The control method for an information processing device according to claim 12, wherein the unit data other than the plurality of processing target data 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 Writer 143, 143 'Reader 143a Length generator 143b, 143d 1 adder (+1)
143c, 143e, 143f, 143h Adder 143g Selector 143i Arithmetic unit 20, 20A, 20B DIMM (Main memory)
30 Network

Claims (8)

他の演算処理装置に接続される演算処理装置であって、
処理対象データの読出要求を生成する処理部と、
前記処理部が生成した読出要求を前記他の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記他の演算処理装置から受信する通信部と、
前記データブロックを保存するバッファと、
前記通信部が受信した前記データブロックに含まれる複数の単位データを前記バッファに順次書き込む書込部と、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す読出部と、を有し、
前記読出部は、
前記データブロックに付された応答ヘッダに前記他の演算処理装置によって記録された前記処理対象データのアドレス情報であって、前記複数の単位データの中から前記処理対象データを特定するための情報を参照し、
当該アドレス情報に対応する前記処理対象データを前記バッファから読み出した後、
前記処理対象データ以外の単位データを前記バッファから順次読み出す、演算処理装置。
An arithmetic processing device connected to another arithmetic processing device,
A processing unit that generates a read request for data to be processed;
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 sequentially writes a plurality of unit data included in the data block by the communication unit has received in the buffer,
A reading unit that preferentially reads the processing target data, which is at least one of the plurality of unit data, from the buffer,
The reading unit includes:
Address information of the processing target data recorded by the other processing unit in a response header attached to the data block, and information for specifying the processing target data from the plurality of unit data. See,
After reading the processing target data corresponding to the address information from the buffer,
An arithmetic processing device for sequentially reading unit data other than the processing target data from the buffer.
他の演算処理装置に接続される演算処理装置であって、
処理対象データの読出要求を生成する処理部と、
前記処理部が生成した読出要求を前記他の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記他の演算処理装置から受信する通信部と、
前記データブロックを保存するバッファと、
前記通信部が受信した前記データブロックに含まれる複数の単位データを前記バッファに順次書き込む書込部と、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す読出部と、を有し、
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記通信部は、
前記所定間隔に関する情報を含む前記読出要求を前記他の演算処理装置へ送信し、
前記読出部は、
前記データブロックに付された応答ヘッダに前記他の演算処理装置によって記録された先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、演算処理装置。
An arithmetic processing device connected to another arithmetic processing device,
A processing unit that generates a read request for data to be processed;
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 sequentially writes a plurality of unit data included in the data block by the communication unit has received in the buffer,
A reading unit that preferentially reads the processing target data, which is at least one of the plurality of unit data, from the buffer,
When the plurality of processing target data exists at predetermined intervals in the plurality of unit data,
The communication unit,
Transmitting the read request including the information on the predetermined interval to the other arithmetic processing device,
The reading unit includes:
Referring to the address information and the predetermined interval of the head of the processing target data recorded by the other arithmetic processing device in the response header attached to the data block,
After reading the plurality of processing target data from the buffer based on the address information and the predetermined interval,
An arithmetic processing device for sequentially reading unit data other than the plurality of processing target data from the buffer.
第1の演算処理装置と、
前記第1の演算処理装置に接続される第2の演算処理装置と、を有し、
前記第1の演算処理装置は、
処理対象データの読出要求を生成する処理部と、
前記処理部が生成した読出要求を前記第2の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記第2の演算処理装置から受信する第1の通信部と、
前記データブロックを保存するバッファと、
前記第1の通信部が受信した前記データブロックに含まれる複数の単位データを前記バッファに順次書き込む書込部と、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す読出部と、を有し、
前記第2の演算処理装置は、
前記第1の演算処理装置から前記読出要求を受信するとともに、受信した前記読出要求に対応する前記処理対象データを含む前記データブロックを前記第1の演算処理装置へ送信する第2の通信部を有し、
前記第2の演算処理装置における前記第2の通信部は、
前記読出要求に含まれるアドレス情報から取り出された前記処理対象データのアドレス情報であって、前記複数の単位データの中から前記処理対象データを特定するための情報を記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、情報処理装置。
A first arithmetic processing unit;
A second processing unit connected to the first processing unit,
The first arithmetic processing unit includes:
A processing unit that generates a read request for data to be processed;
Transmitting a read request generated by the processing unit to the second arithmetic processing device and receiving a data block including the processing target data corresponding to the transmitted read request from the second arithmetic processing device; Communication department,
A buffer for storing the data block;
A writing unit sequentially writes a plurality of unit data of the first communication unit is included in the data block received in said buffer,
A reading unit that preferentially reads the processing target data, which 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 device and transmits the data block including the processing target data corresponding to the received read request to the first arithmetic processing device. Have
The second communication unit in the second arithmetic processing device,
A response header, which is address information of the processing target data extracted from the address information included in the read request and records information for specifying the processing target data from the plurality of unit data, is stored in the data block. Attached to
An information processing device for transmitting the data block to which the response header is added to the first arithmetic processing device.
第1の演算処理装置と、
前記第1の演算処理装置に接続される第2の演算処理装置と、を有し、
前記第1の演算処理装置は、
処理対象データの読出要求を生成する処理部と、
前記処理部が生成した読出要求を前記第2の演算処理装置へ送信するとともに、送信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記第2の演算処理装置から受信する第1の通信部と、
前記データブロックを保存するバッファと、
前記第1の通信部が受信した前記データブロックに含まれる複数の単位データを前記バッファに順次書き込む書込部と、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す読出部と、を有し、
前記第2の演算処理装置は、
前記第1の演算処理装置から前記読出要求を受信するとともに、受信した前記読出要求に対応する前記処理対象データを含む前記データブロックを前記第1の演算処理装置へ送信する第2の通信部を有し、
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記第1の演算処理装置における前記第1の通信部は、
前記所定間隔に関する情報を含む前記読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置における前記第2の通信部は、
前記読出要求に含まれるアドレス情報から取り出された先頭の前記処理対象データのアドレス情報であって、前記複数の単位データの中から前記先頭の前記処理対象データを特定するための情報と、前記読出要求から取り出された前記所定間隔に関する情報とを記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、情報処理装置。
A first arithmetic processing unit;
A second processing unit connected to the first processing unit,
The first arithmetic processing unit includes:
A processing unit that generates a read request for data to be processed;
Transmitting a read request generated by the processing unit to the second arithmetic processing device and receiving a data block including the processing target data corresponding to the transmitted read request from the second arithmetic processing device; Communication department,
A buffer for storing the data block;
A writing unit sequentially writes a plurality of unit data of the first communication unit is included in the data block received in said buffer,
A reading unit that preferentially reads the processing target data, which 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 device and transmits the data block including the processing target data corresponding to the received read request to the first arithmetic processing device. Have
When the plurality of processing target data exists at predetermined intervals in the plurality of unit data,
The first communication unit in the first arithmetic processing device includes:
Transmitting the read request including the information on the predetermined interval to the second arithmetic processing unit;
The second communication unit in the second arithmetic processing device,
Address information of the first processing target data extracted from the address information included in the read request, wherein the information specifies the first processing target data from the plurality of unit data; Attaching a response header that records information on the predetermined interval extracted from the request to the data block,
An information processing device for transmitting the data block to which the response header is added to the first arithmetic processing device.
前記第1の演算処理装置における前記読出部は、
前記データブロックに付された前記応答ヘッダに記録された前記先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき、前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、請求項4に記載の情報処理装置。
The reading unit in the first arithmetic processing device,
With reference to the address information and the information on the predetermined interval of the head of the processing target data recorded in the response header attached to the data block,
Based on the address information and the predetermined interval, after reading the plurality of processing target data from the buffer,
The information processing apparatus according to claim 4, 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の演算処理装置へ送信し、
前記第1の演算処理装置は、
前記読出要求に対応する前記処理対象データを含む前記データブロックを前記第2の演算処理装置から受信し、
受信した前記データブロックに含まれる複数の単位データをバッファに順次書き込み、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す、情報処理装置の制御方法。
A control method of an information processing device, 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:
Transmitting a read request for data to be processed to the second arithmetic processing unit;
The second arithmetic processing unit includes:
When receiving the read request from said first processor, said an address information of the processing target data retrieved from the address information included in the read request, for identifying a pre-Symbol processed data received A response header recording information is attached to a data block including the processing target data corresponding to the read request,
Transmitting the data block with the response header to the first arithmetic processing unit;
The first arithmetic processing unit includes:
Receiving the data block including the processing object data corresponding to said read request from said second processor,
Sequentially writes a plurality of unit data included in the received data blocks in the buffer,
A control method for an information processing device, wherein the processing target data, which is at least one of the plurality of unit data, is preferentially read from the buffer.
第1の演算処理装置と、前記第1の演算処理装置に接続される第2の演算処理装置と、を有する情報処理装置において、
前記第1の演算処理装置は、
処理対象データの読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置は、
前記第1の演算処理装置から前記読出要求を受信すると、受信した前記読出要求に対応する前記処理対象データを含むデータブロックを前記第1の演算処理装置へ送信し、
前記第1の演算処理装置は、
前記読出要求に対応する前記処理対象データを含む前記データブロックを前記第2の演算処理装置から受信し、
受信した前記データブロックに含まれる複数の単位データをバッファに順次書き込み、
前記複数の単位データのうちの少なくとも一つである前記処理対象データを前記バッファから優先的に読み出す、情報処理装置の制御方法であって、
複数の前記処理対象データが前記複数の単位データにおいて所定間隔をあけて存在する場合、
前記第1の演算処理装置は、
前記所定間隔に関する情報を含む前記読出要求を前記第2の演算処理装置へ送信し、
前記第2の演算処理装置は、
前記読出要求に含まれるアドレス情報から取り出された先頭の前記処理対象データのアドレス情報であって、前記複数の単位データの中から前記先頭の前記処理対象データを特定するための情報と、前記読出要求から取り出された前記所定間隔に関する情報とを記録した応答ヘッダを前記データブロックに付し、
前記応答ヘッダを付した前記データブロックを、前記第1の演算処理装置へ送信する、情報処理装置の制御方法。
In an information processing apparatus having a first arithmetic processing device and a second arithmetic processing device connected to the first arithmetic processing device,
The first arithmetic processing unit includes:
Transmitting a read request for data to be processed to the second arithmetic processing unit;
The second arithmetic processing unit includes:
Upon receiving the read request from the first processing unit, transmitting a data block including the processing target data corresponding to the received read request to the first processing unit;
The first arithmetic processing unit includes:
Receiving the data block including the processing object data corresponding to said read request from said second processor,
Sequentially writes a plurality of unit data included in the received data blocks in the buffer,
A control method of an information processing device, wherein the processing target data, which is at least one of the plurality of unit data, is read out preferentially from the buffer,
When the plurality of processing target data exists at predetermined intervals in the plurality of unit data,
The first arithmetic processing unit includes:
Transmitting the read request including the information on the predetermined interval to the second arithmetic processing unit;
The second arithmetic processing unit includes:
Address information of the first processing target data extracted from the address information included in the read request, wherein the information specifies the first processing target data from the plurality of unit data; Attaching a response header that records information on the predetermined interval extracted from the request to the data block,
A control method for an information processing device, wherein the data block to which the response header is added is transmitted to the first arithmetic processing device.
前記第1の演算処理装置は、
前記データブロックに付された前記応答ヘッダに記録された前記先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき、前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、請求項7に記載の情報処理装置の制御方法。
The first arithmetic processing unit includes:
With reference to the address information and the information on the predetermined interval of the head of the processing target data recorded in the response header attached to the data block,
Based on the address information and the predetermined interval, after reading the plurality of processing target data from the buffer,
The method according to claim 7, wherein unit data other than the plurality of data to be processed is sequentially 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 JP2017010319A (en) 2017-01-12
JP6665429B2 true 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)

Family Cites Families (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
JP3641837B2 (en) * 1994-06-30 2005-04-27 株式会社日立製作所 Data transfer method for distributed memory parallel computer
JPH0981532A (en) * 1995-09-08 1997-03-28 Fujitsu Ltd Distributed storage type parallel computer
JP2924783B2 (en) * 1996-03-30 1999-07-26 日本電気株式会社 Remote read processing method and device

Also Published As

Publication number Publication date
JP2017010319A (en) 2017-01-12

Similar Documents

Publication Publication Date Title
US11138143B2 (en) Techniques for command validation for access to a storage device by a remote client
JP4908017B2 (en) DMA data transfer apparatus and DMA data transfer method
US10761775B2 (en) System and method for NVMe inter command association in SSD storage using a bridge device
JP4939443B2 (en) Method for performing direct memory access block movement using descriptor prefetch, direct memory access device, and data processing system
US9176673B2 (en) Memory device
US8255593B2 (en) Direct memory access with striding across memory
US11379381B2 (en) Main memory device having heterogeneous memories, computer system including the same, and data management method thereof
WO2014038070A1 (en) Information processing device, parallel computer system and information processing device control method
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
US20070073923A1 (en) DMA descriptor management mechanism
US9256555B2 (en) Method and system for queue descriptor cache management for a host channel adapter
KR102212269B1 (en) Register file for I/O packet compression
JP5287301B2 (en) Descriptor transfer device, I / O controller, and descriptor transfer method
KR20150129808A (en) Apparatus and methods for a distributed memory system including memory nodes
CN116361232A (en) Processing method and device for on-chip cache, chip and storage medium
CN110781107B (en) Low-delay fusion IO control method and device based on DRAM interface
US20190018599A1 (en) Information processing apparatus and information processing system
US20150177985A1 (en) Information processing device
JP6665429B2 (en) Arithmetic processing device, information processing device, and control method for information processing device
JP2018045438A (en) Parallel processor, transmit program, reception program and data transfer method
CN109144742B (en) Method for exchanging information through queue and system for processing queue
JP2023027970A (en) memory system
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
CN117032595B (en) Sequential flow detection method and storage device

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 Written amendment

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 Written amendment

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