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 PDFInfo
- 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
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.
ところで、高速シリアル伝送によるネットワークでは、伝送エラーが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.
以下に、図面を参照し、本願の開示する演算処理装置、情報処理装置、および情報処理装置の制御方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 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
また、近年、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
図15に示すように、CPU10においては、複数のコア11が共有キャッシュ(三次キャッシュ)12を介して接続されている。図15では、コア11として、N+1個のコア#0〜コア#N(Nは1以上の整数)が備えられている。図15では、一次キャッシュ(不図示)および二次キャッシュ(不図示)が各コア11に内蔵され、三次キャッシュが、共有キャッシュ12として用いられているが、一次キャッシュを各コア11に内蔵し、二次キャッシュを共有キャッシュ12として用いてもよい。
As shown in FIG. 15, in the
共有キャッシュ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
このようなCPU10において、コア11の一つがメモリデータの読出(フェッチ)を要求する場合(フェッチ要求を発行する場合)について考える。コア11は、当該コア11が必要とする8バイトのデータ(処理対象データ)を示すアドレスを指定して、まず、コア11に内蔵されたキャッシュ(一次キャッシュ,二次キャッシュ)にアクセスする。その結果、コア11は、キャッシュヒットすると、当該8バイトのデータを内蔵キャッシュから読み出す。
In such a
一方、コア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
次に、コア11が、当該コア11の属するCPU10(例えば図14や図16のCPU#0)と異なる他のCPU10(例えば図14や図16のCPU#1)におけるメモリデータ(例えば8バイトの処理対象データ)の読出を要求する場合について、図16を参照しながら説明する。図16は、図14に示すマルチプロセッサシステムにおいて一CPU#0から他CPU#1へフェッチ要求を行なう場合のパケットルーティングを説明する図である。
Next, the
この場合、図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
ここで、図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
さらに、図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
コア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
CPU#1からフェッチ応答パケットを受け取ったCPU#0(ルータ14)は、フェッチ応答パケットに添付されたデータブロックを、CPU#0の共有キャッシュ12に登録するとともに、フェッチ要求を行なったコア11へ送る。
The CPU # 0 (router 14) that has received the fetch response packet from the
一方、CPU#0,#1間の伝送エラーは、パケットに付されたCRCをパケット受信側でチェックすることによって検出される。伝送エラーが検出されると、伝送エラーを検出したパケット以降のパケットは破棄され、DLLP(Data Link Layer Packet)を用いてNACK(Negative ACKnowledgement)を送ることで、送信側CPU#1に対しパケットの再送が要求される。
On the other hand, a transmission error between the
伝送エラーを検出したパケットを、中継点(ルータ;図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におけるルータ14は、他のCPU#1から受信したフェッチ応答パケットを、一旦、当該ルータ14内のバッファ(図19の符号141参照)に格納する。当該バッファを受信バッファという。受信バッファはFIFOのバッファである。ここで、図19〜図23を参照しながら、受信バッファ141および当該受信バッファ141に対するパケット書込/読出処理について説明する。
The
図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
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
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
図20に示すフローチャート(ステップS101〜S107)に従って、図19に示すパケット書込処理に係る構成(CPU#0におけるルータ14)の動作について説明する。ルータ14は、パケット書込時にヘッダ(HD)またはデータ(DT)の受信を待機しており(ステップS101のNOルート)、ヘッダ(HD)またはデータ(DT)を受信すると(ステップS101のYESルート)、EDBを受信したか否かを判断する(ステップS102)。
The operation of the configuration (
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
ステップ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
ついで、図21に示すフローチャート(ステップS111〜S113)に従って、図19に示すパケット読出処理に係る構成(CPU#0におけるルータ14)の動作について説明する。ルータ14は、RPの値とHDWPの値とが一致しているか否かを判断する(ステップS111)。RPの値とHDWPの値とが一致している場合(ステップS111のYESルート)、ルータ14は、書込対象パケットの書込中であると判断し、ステップS111の処理に戻る。
Next, the operation of the configuration (
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
ここで、受信バッファ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
以降、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
そして、タイミング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
以降、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
図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
〔2〕本実施形態の概要
上述したように、高速シリアル伝送によるネットワーク30では、伝送エラーがCRCによってチェックされる。そして、伝送エラーが検出されるとパケットの末尾がEDBに書き換えられる。そのため、エンドポイント(CPU#0)では、応答データ(処理対象データ)を含むパケットの末尾までの全てのデータを受信しないと、そのパケットが正常か否かを判定することができない。
[2] Overview of the present embodiment As described above, in the
したがって、フェッチ要求を発行したCPU#0では、当該フェッチ要求に応じた応答データを含むパケットの末尾までの全てのデータが、一旦、受信バッファ141に保存されてから、受信バッファ141におけるデータが先頭から順にコア11に送り出される。
Therefore, in the
しかし、受信バッファ141はFIFOであるので、コア11が要求している処理対象データ(一単位データ;例えば8バイトデータ)の、受信バッファ141からの読出は、当該単位データ直前のデータが読み出されるまで待たされる。このため、コア11から見て通信レイテンシが大きくなり、CPU#0の処理性能や、当該CPU#0を含む情報処理装置(マルチプロセッサシステム)の処理性能が低下する場合がある。
However, since the
このため、高速シリアル伝送のネットワーク30で接続されるマルチプロセッサシステムにおいて、コア11が要求する処理対象データの読出レイテンシを短縮することが望まれている。
Therefore, in a multiprocessor system connected by the high-speed
そこで、本実施形態(第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
つまり、後述する第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
後述する第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
このようにして、CPU10Aのコア11から要求される処理対象データを先頭にして受信バッファ141から読み出すことで読出レイテンシが短縮される。例えば、コア11が要求する処理対象データがパケットの最後尾である場合、当該処理対象が最初に読み出されることで、レイテンシを[パケットのデータ部分のサイクル数−1]だけ短縮することができる。逆に、処理対象データがパケットの先頭だった場合、レイテンシは変わらない。つまり、レイテンシの短縮サイクル数は、処理対象データがパケットの何番目のデータであるかによって変わる。したがって、平均すると、[パケットのデータ部分のサイクル数−1]/2程度、レイテンシを短縮することが可能である。
In this way, by reading the data to be processed requested from the
また、図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
〔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
CPU10AとCPU10Bとは、高速シリアル伝送によるネットワーク30を介して相互に通信可能に接続される。
The
CPU10Aは、図15に示すCPU10と同様、複数のコア11Aを内蔵したマルチコアプロセッサである。CPU10Aにおいては、複数のコア11が共有キャッシュ(三次キャッシュ)12Aを介して接続されている。図1では、コア11Aとして、N+1個のコア#0〜コア#N(Nは1以上の整数)が備えられている。図1では、一次キャッシュ(不図示)および二次キャッシュ(不図示)が各コア11に内蔵され、三次キャッシュが、共有キャッシュ12Aとして用いられているが、一次キャッシュを各コア11Aに内蔵し、二次キャッシュを共有キャッシュ12Aとして用いてもよい。
The
共有キャッシュ12Aには、コア11AのほかにMAC13Aおよびルータ14Aが接続されている。MAC13Aは、メインメモリとして機能するDIMM20Aを接続され、DIMM20Aとのデータのやり取りを制御する制御部として機能する。ルータ14Aは、他のCPU10Bまたは他のルータ(例えばルーティング用のLSI;図14参照)に接続され、パケットによって、他のCPU10Bとのデータの通信を行なう第1の通信部として機能する。
The
CPU10Bは、コア11B,共有キャッシュ(三次キャッシュ)12B,MAC13B,ルータ14Bを有している。コア11B,共有キャッシュ12B,MAC13B,ルータ14Bは、それぞれ、上述したCPU10Aのコア11A,共有キャッシュ12A,MAC13A,ルータ14Aと同様である。ただし、MAC13Bは、メインメモリとして機能するDIMM20Bを接続され、DIMM20Bとのデータのやり取りを制御する制御部として機能する。ルータ14Bは、他のCPU10Aまたは他のルータ(例えばルーティング用のLSI;図14参照)に接続され、パケットによって、他のCPU10Aとのデータの通信を行なう第2の通信部として機能する。
The
CPU10Aにおける複数のコア(処理部)11Aのうちの少なくとも一つは、必要な処理対象データ(例えば8バイトの単位データ)の読出要求を生成する。以下では、読出要求をフェッチ要求という場合がある。
At least one of the plurality of cores (processing units) 11A in the
CPU10Aにおけるルータ(第1の通信部)14Aは、一のコア11Aが生成したフェッチ要求を、フェッチ要求パケット(図2,図17(A)参照)によってCPU10Bへ送信する。また、ルータ(第1の通信部)14Aは、フェッチ要求に対応する処理対象データを含むデータブロックを添付されたフェッチ応答パケット(図2,図17(B)参照)を、CPU10Bから受信する。
The router (first communication unit) 14A in the
一方、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
特に、第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
CPU10Aのルータ(第1の通信部)14Aは、受信バッファ141,書込部142,読出部143を有する。第1実施形態において、受信バッファ141,書込部142,読出部143は、CPU10Aのルータ14A内に備えられているが、CPU10A内に備えられていればよい。
The router (first communication unit) 14A of the
受信バッファ(バッファ)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
読出部143は、パケットに含まれる複数の単位データのうちの少なくとも一つである処理対象データを、受信バッファ141から優先的に読み出す。特に、第1実施形態の読出部143は、データブロックに付された応答ヘッダに記録された処理対象データのアドレス情報pa[6:3]を参照する。そして、読出部143は、まず、参照した当該アドレス情報pa[6:3]に対応する処理対象データを受信バッファ141から読み出した後、当該処理対象データ以外の単位データを受信バッファ141から順次読み出す。第1実施形態の読出部143は、図4および図5を参照しながら後述するごとく構成され、図6および図7を参照しながら後述するごとく動作する。
The
なお、第1実施形態では、CPU10Aが、第1の通信部としての機能や、受信バッファ141,書込部142,読出部143としての機能を有し、CPU10Bが、第2の通信部としての機能を有する場合について説明している。しかし、複数のCPU10A,10Bのそれぞれが、第1および第2の通信部としての機能と、受信バッファ141,書込部142,読出部143としての機能とを有していてもよい。
In the first embodiment, the
ここで、図2を参照しながら、図1に示す情報処理装置1において、一CPU10Aのコア11Aから他CPU10Bのメモリデータに対するフェッチ要求を発行する場合のパケットルーティングについて説明する。
Here, with reference to FIG. 2, a description will be given of packet routing when the
この場合、図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
このとき、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
CPU10Bがフェッチ応答パケットを生成する際、フェッチ要求パケットのヘッダに載っている物理アドレスPA(図18(A)参照)から、フェッチ要求対象の単位データを特定可能な4ビットの物理アドレスpa[6:3]が取り出される。取り出された物理アドレスpa[6:3]を、図18(B)を参照しながら前述したヘッダに含ませることにより、図3に示すようなフォーマットの応答ヘッダが生成される。このように生成された応答ヘッダを有するフェッチ応答パケットは、図2に示すように、フェッチ要求の発行元であるCPU10Aにルーティングされ送信される。
When the
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
図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
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
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
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
ついで、図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
Length生成部143aは、図4を参照しながら前述したように、ヘッダを受信バッファ141から読み出した際に、当該ヘッダにおけるOpcodeから、受信バッファ141から読出中のパケットのデータ長Lengthを生成し、Lengthレジスタに設定する。
As described above with reference to FIG. 4, when reading the header from the
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
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
加算器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
また、セレクタ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
さらに、セレクタ143gは、1加算器143bで得られた値HDRP+1をRPに設定するように切替動作を行なう(図5〜図7の(3)参照)。当該切替動作を行なうタイミングは、RPがHDRP+Lengthと一致するタイミング(図6のステップS19のYESルート;図7のタイミングT24参照)である。
Further, the
なお、上述した書込部142および読出部143としての機能は、論理ゲート等によってハードウエア的にCPU10Aに組み込まれて実現されてもよいし、プログラムを実行することでソフトウエア的にCPU10Aに組み込まれて実現されてもよい。
The functions of the
次に、図5〜図7を参照しながら、上述のごとく構成された書込部142および読出部143の動作について説明する。図6は、図5に示すパケット読出処理に係る構成(読出部143)の動作を説明するフローチャートである。図7は、図4および図5に示すパケット読出処理に係る構成(読出部143)が図6に示すフローチャートに従って10番目のデータ(DTA)を最初に読み出す場合の動作を示すタイムチャートである。
Next, operations of the
第1実施形態の書込部142によるパケット書込動作は、図20を参照しながら前述した関連技術の動作と同様であるので、その説明は省略する。これに対し、第1実施形態の読出部143によるパケット読出動作は、図21を参照しながら前述した関連技術の動作と異なっている。
The packet write operation performed by the
ここで、図6に示すフローチャート(ステップS11〜S24)に従って、図5および図7を参照しながら、第1実施形態の読出部143によるパケット読出動作について説明する。
Here, the packet reading operation by the
ルータ14Aは、RPの値とHDWPの値とが一致しているか否かを判断する(ステップS11)。RPの値とHDWPの値とが一致している場合(ステップS11のYESルート)、ルータ14Aは、書込対象パケットの書込中であると判断し、ステップS11の処理に戻る。
The
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
パケット読出の開始時には、まずパケットのヘッダが読み出されるため、読み出されたエントリはヘッダであると判断される(ステップ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
この後、当該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
この後、次のサイクルで、ヘッダの次に読み出されるエントリはデータであり、この場合(ステップ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 (
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
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
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
以上の動作により、第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
〔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
情報処理装置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
第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
ただし、第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
また、第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
さらに、第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
読出部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
なお、第2実施形態では、CPU10Aが、第1の通信部としての機能や、受信バッファ141,書込部142,読出部143′としての機能を有し、CPU10Bが、第2の通信部としての機能を有する場合について説明している。しかし、複数のCPU10A,10Bのそれぞれが、第1および第2の通信部としての機能と、受信バッファ141,書込部142,読出部143′としての機能とを有していてもよい。
In the second embodiment, the
ここで、図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
この場合、図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
一方、ルータ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
CPU10Bがフェッチ応答パケットを生成する際、フェッチ要求パケットのヘッダに載っている物理アドレスPA(図8(A)参照)から、フェッチ要求対象の先頭単位データを特定可能な4ビットの物理アドレスpa[6:3]が取り出される。また、同ヘッダからストライドアクセスに係る所定間隔Intervalが取り出される。取り出された物理アドレスpa[6:3]および所定間隔Intervalを応答ヘッダに含ませることにより、図8(B)に示すようなフォーマットの応答ヘッダが生成される。このように生成された応答ヘッダを有するフェッチ応答パケットは、図9に示すように、フェッチ要求の発行元であるCPU10Aにルーティングされ送信される。
When the
上述の通り、第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
CPU10A側で受信されたフェッチ応答パケットは、まず、ルータ14Aに設けられた受信バッファ141に、書込部142(図1,図10参照)によって、一旦、単位データ毎に書き込まれる。この後、読出部143′におけるRPの値(読み出すべき単位データのアドレス)を制御することで、受信バッファ141に書き込まれたパケットのうち、コア11Aが要求する処理対象データが受信バッファ141から優先的に読み出される。
The fetch response packet received by the
特に、第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
以下、上述のような機能を実現する第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
図10に示すように、第2実施形態における書込部142は、図4に示した書込部142と同様のWDR,HDWPおよびWPを有する。
As illustrated in FIG. 10, the
また、第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
第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
ついで、図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生成部143aは、第1実施形態と同様、ヘッダを受信バッファ141から読み出した際に、当該ヘッダにおけるOpcodeから、受信バッファ141から読出中のパケットのデータ長Lengthを生成し、Lengthレジスタに設定する。
As in the first embodiment, when reading the header from the
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
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
加算器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
第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
また、第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
なお、上述した書込部142および読出部143′としての機能は、論理ゲート等によってハードウエア的にCPU10Aに組み込まれて実現されてもよいし、プログラムを実行することでソフトウエア的にCPU10Aに組み込まれて実現されてもよい。
The functions of the
次に、図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
第2実施形態の書込部142によるパケット書込動作は、図20を参照しながら前述した関連技術の動作と同様であるので、その説明は省略する。一方、第2実施形態の読出部143′によるパケット読出動作は、図6を参照しながら前述した第1実施形態の読出部143の動作と部分的に異なっている。
The packet writing operation performed by the
図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
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
パケット読出の開始時には、まずパケットのヘッダが読み出されるため、読み出されたエントリはヘッダであると判断される(ステップ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
この後、当該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
この後、次のサイクルで、ヘッダの次に読み出されるエントリはデータであり、この場合(ステップ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 (
これにより、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
例えば、図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
以上の動作により、第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
なお、図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
(付記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
(付記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
(付記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
(付記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
(付記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
(付記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
(付記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
(付記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
(付記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
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
14B router (second communication unit)
141 Receive buffer (buffer)
142
143c, 143e, 143f,
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の演算処理装置に接続される第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の演算処理装置に接続される第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.
前記データブロックに付された前記応答ヘッダに記録された前記先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき、前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、請求項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の演算処理装置は、
処理対象データの読出要求を前記第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の演算処理装置は、
処理対象データの読出要求を前記第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.
前記データブロックに付された前記応答ヘッダに記録された前記先頭の前記処理対象データのアドレス情報と前記所定間隔に関する情報とを参照し、
前記アドレス情報と前記所定間隔とに基づき、前記複数の前記処理対象データを前記バッファから読み出した後、
前記複数の前記処理対象データ以外の単位データを前記バッファから順次読み出す、請求項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.
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)
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 |
-
2015
- 2015-06-23 JP JP2015125808A patent/JP6665429B2/en active Active
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 |