JP5732953B2 - Vector processing apparatus, vector processing method, and program - Google Patents
Vector processing apparatus, vector processing method, and program Download PDFInfo
- Publication number
- JP5732953B2 JP5732953B2 JP2011066124A JP2011066124A JP5732953B2 JP 5732953 B2 JP5732953 B2 JP 5732953B2 JP 2011066124 A JP2011066124 A JP 2011066124A JP 2011066124 A JP2011066124 A JP 2011066124A JP 5732953 B2 JP5732953 B2 JP 5732953B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instruction packet
- packet
- address
- scalar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、命令パケットを制御することにより処理性能を向上させるのに好適なベクトル処理装置、ベクトル処理方法、及び、プログラムに関する。 The present invention relates to a vector processing apparatus, a vector processing method, and a program suitable for improving processing performance by controlling instruction packets.
プロセッサによるキャッシュへの書き込み制御については、メモリにデータを書き込むのと同時にキャッシュにも書き込みを行うライトスルー制御と、キャッシュにのみ書き込むライトバック制御とが知られている。ライトスルー制御は、ライトバック制御よりも制御が簡単である反面、ストア処理に伴うメモリへのアクセスの頻度が多く、また、ストア処理にかかる時間が大きい。したがって、ライトスルー制御は、プロセッサの性能向上の制約となるという短所がある。 As for the write control to the cache by the processor, there are known a write-through control for writing to the cache at the same time as writing data to the memory and a write-back control for writing only to the cache. The write-through control is simpler than the write-back control, but has a high frequency of access to the memory accompanying the store process and takes a long time for the store process. Therefore, the write-through control has a disadvantage that it becomes a restriction for improving the performance of the processor.
図12に示すような、スカラプロセッシング部91とベクトルプロセッシング部92とを備えるベクトル処理装置9において、スカラプロセッシング部91にはライトスルー制御が採用される。例えば、レジスタからメモリ95へデータの書き込みを実行する際、L1キャッシュ91aに当該データを書き込むのと同時にメモリ95へとデータを書き込む処理が行われる。
In the
仮に、スカラプロセッシング部91において、データをL1キャッシュ91aにのみ書き込むライトバック制御を採用したとする。この場合、スカラプロセッシング部91がベクトルプロセッシング部92内のデータのロードを行う際に、多くのアドレス要素に対して、L1キャッシュ91aに格納されたデータのフラッシュ及びメモリへの書き戻し、又はL1キャッシュ91aからベクトルプロセッシング部92へのデータの転送等が必要となる。すなわち、ライトバック制御を採用すると、制御が非常に複雑になり、また、ベクトルプロセッシング部92に対するロード命令の実行が停滞する可能性がある。したがって、スカラプロセッシング部とベクトルプロセッシング部とを並列に設けたベクトル処理装置においては、上記の不都合を回避するため、ライトスルー制御が採用されている。ライトスルー制御が採用されているベクトル処理装置は、データを毎回メモリ95へ書き込まなければならないので、ライトバック制御が採用されているプロセッサに比べ、多くの命令パケットがアドレス変換部93へ発行される。
Assume that the
プロセッサが発行する命令パケットの数、形式、又はタイミングなどは、プロセッサの処理性能に大きく影響を及ぼすため、従来から様々な手法が検討されてきた。例えば、特許文献1には、1つのプロセッサが発行する命令コードの長さ、及び、命令を発行する周期を、データに合わせて調節する技術が開示されている。しかし、複数のプロセッサを有するベクトル処理装置においては、上記のようにデータの書き込み手法に制限があるため、ベクトル処理装置に特化した命令パケットの形式等を検討する必要がある。
Since the number, format, or timing of instruction packets issued by a processor greatly affects the processing performance of the processor, various methods have been conventionally studied. For example,
例えば、ライトスルー制御を採用するスカラプロセッシング部91は、1〜8バイト長のデータをストアするスカラストア命令を実行する際、ストアするデータサイズにもかかわらず8バイトのデータフィールドをもつ命令パケットをアドレス変換部93等に発行していた。また、スカラプロセッシング部91は、データをストアするアドレス範囲が所定のアドレス境界を跨がない場合には1つの命令パケット、所定のアドレス境界を跨ぐ場合には2つの命令パケットを発行していた。このため、例えば、連続したアドレスに対して1、2バイト等のデータのスカラストア命令を実行すると、8バイトのデータフィールドを全部使用しない、すなわち、命令パケットの利用効率の悪い命令パケットが複数発行される。そして、命令パケットが発行されるたびにアドレス変換部93やメモリネットワーク94へデータ転送を行わなければならなかった。
For example, when a
一方、スカラプロセッシング部91から発行される命令パケットは、常にスカラプロセッシング部91が命令パケットを生成した順にアドレス変換部93に発行されている。スカラプロセッシング部91及びベクトルプロセッシング部92での演算処理を優先させるため、アクセスするメモリのアドレスが重ならなければ、多くの場合ストア命令よりもロード命令を優先的に実行することが求められる。しかし、ベクトルプロセッシング部92に対するロード命令は処理対象のアドレス領域が広範囲にわたるため、多数の命令が存在するスカラプロセッシング部91のパイプライン中においてはアドレス領域の重なりを逐一判定することは実装上困難である。したがって、スカラプロセッシング部91とベクトルプロセッシング部92とを並列に設けたベクトル処理装置9においては、従来から、スカラプロセッシング部91に対するストア命令とベクトルプロセッシング部92に対するロード命令との間の追い越し制御は行われていなかった。
On the other hand, the instruction packet issued from the
上記のような命令パケットの形式は、ストアするデータが少ないのにもかかわらず、複数の命令パケットが発行され、データ転送の負荷が大きいという問題があった。そして、このようなデータ転送の負荷は、ベクトルプロセッシング部でのロード又はストア処理も滞らせ、ベクトル処理装置全体の性能低下の一因となっていた。 The format of the instruction packet as described above has a problem that a plurality of instruction packets are issued despite a small amount of data to be stored, and the load of data transfer is large. Such a data transfer load also causes a load or store process in the vector processing unit to be delayed, causing a reduction in the performance of the entire vector processing apparatus.
また、ストア命令のアドレスとロード命令のアドレスとが重ならなければ、ロード命令の命令パケットを追い越させて優先的に実行させることにより、ベクトル処理装置の処理速度をより高速化させることが求められる。 Further, if the address of the store instruction and the address of the load instruction do not overlap, it is required to increase the processing speed of the vector processing device by overtaking the instruction packet of the load instruction and executing it preferentially. .
本発明の目的は、上記のような課題を解決するもので、命令パケットを制御することにより処理性能を向上させるのに好適なベクトル処理装置、ベクトル処理方法、及び、プログラムを提供することを目的とする。 An object of the present invention is to solve the above-described problems, and to provide a vector processing apparatus, a vector processing method, and a program suitable for improving processing performance by controlling an instruction packet. And
本発明の第1の観点に係るベクトル処理装置は、
スカラ演算を行うスカラ処理部と、ベクトル演算を行うベクトル処理部と、記憶部と、を備えるベクトル処理装置であって、
前記スカラ処理部は、
前記記憶部からデータをロードする命令あるいは前記記憶部にデータをストアする命令を示す第1の命令パケット及び第2の命令パケットを発行するものであって、
前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ部と、
前記第1の命令パケット及び当該第1の命令パケットの後に発行される前記第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、前記第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御部と、
前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理部と、
を備え、
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを前記第1の命令パケットとして命令パケットバッファ部に格納させ、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(b)ベクトルロード命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが一致する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(d)ベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させる
ことを特徴とする。
A vector processing apparatus according to the first aspect of the present invention provides:
A vector processing apparatus comprising a scalar processing unit that performs a scalar operation, a vector processing unit that performs a vector operation, and a storage unit,
The scalar processing unit is
Issuing a first instruction packet and a second instruction packet indicating an instruction to load data from the storage unit or an instruction to store data in the storage unit;
An instruction packet buffer unit for storing a first instruction packet issued by the scalar processing unit;
It determines the type of the second command packet issued after said first command packet and the first instruction packet, the first address of the first instruction packet designated, the second instruction A buffer control unit that compares a second address specified by the packet and outputs an instruction to combine the first instruction packet and the second instruction packet;
A combining processor that combines the first instruction packet and the second instruction packet based on the output instruction;
With
The buffer control unit
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the combination instruction, the combined packet is stored in the instruction packet buffer unit as the first instruction packet , and the first address and the second address do not match , Outputting the first instruction packet, causing the second instruction packet to be stored in the instruction packet buffer unit as the first instruction packet,
(B) a vector load instruction, when said first address and said second address does not overlap, the second outputs an instruction packet, the second address and the first address duplicate If so, the first instruction packet is output, the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet,
(C) In the case of a scalar load instruction, when the first address and the second address do not match, the second instruction packet is output , and the first address and the second address match Output the first instruction packet, store the second instruction packet as the first instruction packet in the instruction packet buffer unit,
(D) In the case of a vector store instruction, when the first address and the second address do not overlap, the second instruction packet is output, and the first address and the second address overlap. In this case, the first instruction packet is output, and the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet .
本発明の第2の観点に係るベクトル処理方法は、
スカラ演算を行うスカラ処理部と、ベクトル演算を行うベクトル処理部と、記憶部と、を備え、前記スカラ処理部は、前記記憶部からデータをロードする命令あるいは前記記憶部にデータをストアする命令を示す第1の命令パケット及び第2の命令パケットを発行するものであって、当該スカラ処理部が、命令パケットバッファ部と、バッファ制御部と、結合処理部とを備える、ベクトル処理装置が実行するベクトル処理方法であって、
当該ベクトル処理方法は、
前記命令パケットバッファ部が、前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ工程と、
前記バッファ制御部が、前記第1の命令パケット及び当該第1の命令パケットの後に発行される前記第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、前記第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御工程と、
前記結合処理部が、前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理工程と、
を備え、
前記バッファ制御工程において、前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを前記第1の命令パケットとして命令パケットバッファ部に格納させ、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(b)ベクトルロード命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが一致する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(d)ベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させる
ことを特徴とする。
A vector processing method according to the second aspect of the present invention provides:
A scalar processing unit that performs a scalar operation; a vector processing unit that performs a vector operation; and a storage unit, wherein the scalar processing unit loads data from the storage unit or stores data in the storage unit The first instruction packet and the second instruction packet are issued, and the scalar processing unit includes an instruction packet buffer unit, a buffer control unit, and a combination processing unit. A vector processing method for
The vector processing method is
An instruction packet buffer step in which the instruction packet buffer unit stores a first instruction packet issued by the scalar processing unit;
The buffer control unit determines the type of the second command packet issued after said first command packet and the first instruction packet, the first address of the first instruction packet designated compares the second address the second instruction packet is specified, the buffer control step of outputting an instruction to combine said first instruction packet and said second instruction packet,
A combining processing step in which the combining processing unit combines the first instruction packet and the second instruction packet based on the output instruction;
With
In the buffer control step, the buffer control unit includes:
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the combination instruction, the combined packet is stored in the instruction packet buffer unit as the first instruction packet , and the first address and the second address do not match , Outputting the first instruction packet, causing the second instruction packet to be stored in the instruction packet buffer unit as the first instruction packet,
(B) a vector load instruction, when said first address and said second address does not overlap, the second outputs an instruction packet, the second address and the first address duplicate If so, the first instruction packet is output, the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet,
(C) In the case of a scalar load instruction, when the first address and the second address do not match, the second instruction packet is output , and the first address and the second address match Output the first instruction packet, store the second instruction packet as the first instruction packet in the instruction packet buffer unit,
(D) In the case of a vector store instruction, when the first address and the second address do not overlap, the second instruction packet is output, and the first address and the second address overlap. In this case, the first instruction packet is output, and the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet .
本発明の第3の観点に係るプログラムは、
コンピュータを、
スカラ演算を行うスカラ処理部と、ベクトル演算を行うベクトル処理部と、記憶部と、を備え、前記スカラ処理部は、前記記憶部からデータをロードする命令あるいは前記記憶部にデータをストアする命令を示す第1の命令パケット及び第2の命令パケットを発行する、ベクトル処理装置として機能させるプログラムであって、
前記プログラムは、前記コンピュータを、
前記スカラ処理部において、
前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ部、
前記第1の命令パケット及び当該第1の命令パケットの後に発行される前記第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、前記第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御部、
前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理部、
として機能させ、
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを前記第1の命令パケットとして命令パケットバッファ部に格納させ、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(b)ベクトルロード命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが一致する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(d)ベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させる
ように機能させることを特徴とする。
The program according to the third aspect of the present invention is:
Computer
A scalar processing unit that performs a scalar operation; a vector processing unit that performs a vector operation; and a storage unit, wherein the scalar processing unit loads data from the storage unit or stores data in the storage unit A program for functioning as a vector processing device that issues a first instruction packet and a second instruction packet indicating
The program causes the computer to
In the scalar processing unit,
An instruction packet buffer unit for storing a first instruction packet issued by the scalar processing unit;
It determines the type of the second command packet issued after said first command packet and the first instruction packet, the first address of the first instruction packet designated, the second instruction A buffer control unit that compares a second address specified by the packet and outputs an instruction to combine the first instruction packet and the second instruction packet;
A combining processor that combines the first instruction packet and the second instruction packet based on the output instruction;
Function as
The buffer control unit
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the combination instruction, the combined packet is stored in the instruction packet buffer unit as the first instruction packet , and the first address and the second address do not match , Outputting the first instruction packet, causing the second instruction packet to be stored in the instruction packet buffer unit as the first instruction packet,
(B) a vector load instruction, when said first address and said second address does not overlap, the second outputs an instruction packet, the second address and the first address duplicate If so, the first instruction packet is output, the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet,
(C) In the case of a scalar load instruction, when the first address and the second address do not match, the second instruction packet is output , and the first address and the second address match Output the first instruction packet, store the second instruction packet as the first instruction packet in the instruction packet buffer unit,
(D) In the case of a vector store instruction, when the first address and the second address do not overlap, the second instruction packet is output, and the first address and the second address overlap. The first instruction packet is output, and the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet.
It is made to function as follows.
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記プログラムを格納した記録媒体は、コンピュータとは独立して配布・販売することができる。 The above program can be distributed and sold via a computer communication network independently of the computer on which the program is executed. The recording medium storing the program can be distributed and sold independently from the computer.
本発明によれば、ベクトル処理装置において、ストア命令の命令パケットを保持するバッファをスカラプロセッシング部に設けることにより、複数のストア命令パケットの結合及び命令パケット間の追い越し制御を行うことができる。これにより、スカラプロセッシング部から発行されるストア命令パケットの数を削減し、ベクトルロード/ストア命令の追い越しを行い、処理性能を向上させることができる。 According to the present invention, in the vector processing device, by providing a buffer for holding an instruction packet of a store instruction in the scalar processing unit, a combination of a plurality of store instruction packets and an overtaking control between instruction packets can be performed. Thereby, the number of store instruction packets issued from the scalar processing unit can be reduced, vector load / store instructions can be overtaken, and the processing performance can be improved.
(1.実施形態1のベクトル処理装置の概要構成)
本発明の実施形態に係るベクトル処理装置は、典型的には、図1に示すベクトル処理装置1により実現される。以下、ベクトル処理装置1の概要構成について説明する。
(1. Outline Configuration of Vector Processing Device of Embodiment 1)
The vector processing apparatus according to the embodiment of the present invention is typically realized by the
ベクトル処理装置1は、図1に示すように、スカラプロセッシング部11と、ベクトルプロセッシング部12と、アドレス変換部13と、メモリネットワーク14と、メモリ15と、から構成される。
As shown in FIG. 1, the
ベクトル処理装置1は、スカラプロセッシング部11内のスカラレジスタに格納されたデータをメモリ15へ格納させる「スカラストア命令」と、メモリ15からスカラレジスタにデータを読み込む「スカラロード命令」と、ベクトルプロセッシング部12内のベクトルレジスタに格納されたデータをメモリ15へ格納させる「ベクトルストア命令」と、メモリ15からベクトルレジスタにデータを読み込む「ベクトルロード命令」と、を扱う。以下、ベクトル処理装置1がこれらの命令を扱う場合を例に、各部の機能について説明する。
The
スカラプロセッシング部11は、例えば、L1キャッシュ11aと、命令バッファ部11bと、スカラデータを格納するスカラレジスタと(図示せず)、各種演算器と(図示せず)、を有する。スカラプロセッシング部11は、所定のプログラムに従って、命令のフェッチ、デコード、スケジューリング、及び、各種命令の実行を行う。スカラプロセッシング部11は、ベクトルプロセッシング部12、アドレス変換部13等、ベクトル処理装置1内の構成要素に対して、ロード/ストア命令やベクトル演算をはじめとした各種制御命令を示す「命令パケット」を発行する。
The
以下、スカラプロセッシング部11が発行するスカラストア命令を示す命令パケットを「スカラストア命令パケット」、スカラロード命令を示す命令パケットを「スカラロード命令パケット」、ベクトルストア命令を示す命令パケットを「ベクトルロード命令パケット」、ベクトルロード命令を示すパケットを「ベクトルロード命令パケット」、という。また、スカラロード/ストア命令及びベクトルロード/ストア命令以外の命令であって、スカラプロセッシング部11が発行するすべての命令(例えば、ページ切替命令やプロセッサ間の通信を行う命令)を示す命令パケットを「その他の命令パケット」、という。各命令パケットの形式を図2に示す。なお、その他の命令パケットの形式は任意であり、以下省略する。
Hereinafter, an instruction packet indicating a scalar store instruction issued by the
図2(a)に示すように、スカラストア命令パケット200は、命令コード201と、アドレス202と、バイトイネーブル203と、ストアデータ204と、から構成される。
As shown in FIG. 2A, the scalar store instruction packet 200 includes an
命令コード201は、命令の種類別又はパケット形式を示すものである。
The
アドレス202は、ストアデータ204が格納されるメモリ15上のアドレスを示すものである。アドレス202は、8の倍数の値しかとることができないものとする。
The
バイトイネーブル203は、64ビット幅のストアデータ204を1バイト単位で区切り、どのバイトにストアデータ204が入っているか(有効)であるかを示す8ビット幅の情報である。
The byte enable 203 is 8-bit width information indicating which byte contains the store data 204 (valid) by dividing the 64-bit
ストアデータ204は、メモリ15に格納する64ビット幅のデータである。
The
すなわち、スカラストア命令パケット200は、指定されたアドレス202にストアデータ204を格納する命令を示すものである。
That is, the scalar store instruction packet 200 indicates an instruction for storing the
図2(b)に示すように、スカラロード命令パケット300は、命令コード301と、アドレス302と、から構成される。
As shown in FIG. 2B, the scalar load instruction packet 300 includes an
命令コード301は、命令コード201と同様に、命令の種類別又はパケット形式を示すものである。
Similar to the
アドレス302は、スカラプロセッシング部11に読み込まれるデータのメモリ15上のアドレスを示すものである。
An
すなわち、スカラロード命令パケット300は、アドレス302で指定されたメモリ15上のデータを読み込む命令を示すものである。
That is, the scalar load instruction packet 300 indicates an instruction for reading data on the
図2(c)に示すように、ベクトルロード/ストア命令パケット400は、命令コード401と、ベースアドレス402と、ディスタンス403と、要素数404と、から構成される。
As shown in FIG. 2C, the vector load / store instruction packet 400 includes an
命令コード401は、命令コード201と同様に、命令の種類別又はパケット形式を示すものである。
As with the
ベースアドレス402は、メモリ15上のアドレスを示すものである。
The
ディスタンス403は、ベースアドレス402からの距離を示すものである。
A
要素数404は、アドレスの数を示すものである。
The
ここで、ベースアドレス402を“X”、ディスタンス403を“Y”、要素数404を“N”とすると、ベクトルロード/ストア命令パケットが指定するアドレスは、X、X+Y、X+2*Y、・・・X+(N−1)*Y、である。
Here, if the
すなわち、ベクトルロード/ストア命令パケット400は、ベースアドレス402及びベースアドレス402からディスタンス403の整数倍だけ離れたアドレスであって、要素数個のアドレスに対し、一斉にデータの読込み又は書き込みの命令を示すものである。
That is, the vector load / store instruction packet 400 is an address that is separated from the
スカラプロセッシング部11は、スカラストア命令を実行する際、アドレス202及びストアデータ204を決定し、それらを図2(a)の形式の命令パケットに整形してアドレス変換部13に送出する。また、スカラプロセッシング部11は、スカラロード命令を実行する際、アドレス302を決定し、図2(b)の形式の命令パケットに整形してアドレス変換部13に送出する。
When executing the scalar store instruction, the
一方、スカラプロセッシング部11は、ベクトルロード/ストア命令を実行する際、ベースアドレス402、ディスタンス403、及び、要素数404を決定し、それらを図2(c)の形式の命令パケットに整形する。そして、スカラプロセッシング部11は、当該命令パケットを、アドレス変換部13へ送出し、アドレス変換部13を介してベクトルプロセッシング部12に引き渡す。
On the other hand, when executing the vector load / store instruction, the
ベクトルプロセッシング部12は、ベクトルデータを格納するベクトルレジスタや各種演算器(図示せず)を有する。ベクトルプロセッシング部12は、スカラプロセッシング部11からの命令に基づいて各種演算処理を行い、又は、アドレス変換部13とロード/ストアデータの送受信を行う。例えば、ベクトルプロセッシング部12が、スカラプロセッシング部11からベクトルストア命令パケットを受け付けると、ベクトルレジスタに格納されたデータをアドレス変換部13に送出する。
The
アドレス変換部13は、スカラプロセッシング部11又はベクトルプロセッシング部12が行うデータのロード/ストアの実行に際し、必要があれば論理アドレスから物理アドレスへの変換を行い、メモリ15へのデータ転送のスケジューリングを行う。
The
アドレス変換部13は、スカラプロセッシング部11からスカラストア命令パケットを受け取ると、命令パケットの内容を解釈し、物理アドレスへの変換処理を行う。そして、アドレス変換部13は、変換後のアドレス及びストアデータ204を、メモリネットワーク14を介してメモリ15へ転送する。
When the
アドレス変換部13は、スカラプロセッシング部11からスカラロード命令パケットを受け取ると、命令パケットの内容を解釈し、物理アドレスへの変換処理を行う。そして、アドレス変換部13は、変換後のアドレスを、メモリネットワーク14を介してメモリ15へ転送する。
When the
アドレス変換部13は、スカラプロセッシング部11からベクトルストア命令パケットを受け取り、ベクトルプロセッシング部12からデータを受け取ると、ベースアドレス、ディスタンス、及び要素数で指定されたアドレスの実アドレスへの展開及び物理アドレスへの変換処理を行う。そして、アドレス変換部13は、変換後のアドレス又はストアデータを、メモリネットワーク14を介してメモリ15へ転送する。
When the
アドレス変換部13は、スカラプロセッシング部11からベクトルロード命令の命令パケットを受け取ると、実アドレスへの展開及び物理アドレスへの変換処理を行う。そして、アドレス変換部13は、変換後のアドレスを、メモリネットワーク14を介してメモリ15へ転送する。
When receiving the instruction packet of the vector load instruction from the
メモリネットワーク14は、アドレス変換部13とメモリ15との間のデータ転送を行う。
The
メモリ15は、スカラプロセッシング部11又はベクトルプロセッシング部12が読込み又は書き込みを行うデータを記憶する。
The
(2.実施形態1のスカラプロセッシング部の概要構成)
以下、上記ベクトル処理装置1が有する本実施形態のスカラプロセッシング部の概要構成について、具体的に説明する。
実施形態1のスカラプロセッシング部は、命令パケットの結合及び追い越しを行う。
(2. Outline configuration of scalar processing unit of embodiment 1)
Hereinafter, a schematic configuration of the scalar processing unit of the present embodiment included in the
The scalar processing unit of
スカラプロセッシング部11は、L1キャッシュ11aと、命令バッファ部11bと、を備える。
The
L1キャッシュ11aは、スカラプロセッシング部11において使用頻度が高いデータを格納する。スカラプロセッシング部11は、スカラストア命令の実行の際に、L1キャッシュ11aの内容を更新すると同時にメモリ15にデータを書き込む処理を行う。
The
命令バッファ部11bは、スカラプロセッシング部11が発行する命令パケットを結合又は追い越し処理を行うためのものである。命令バッファ部11bは、スカラプロセッシング部11が命令パケットをアドレス変換部13に送出する前に命令パケットを受け付ける。命令バッファ部11bは、図3に示すように、アドレス比較・バッファ制御部11b1と、命令パケットバッファ部11b2と、結合処理部11b3と、を備え、以下のように構成する。
The
アドレス比較・バッファ制御部11b1は、命令バッファ部11bが受け付けた命令パケット(以下、「受付命令パケット」という)、及び、命令パケットバッファ部11b2に保持されている命令パケット(以下、「保持命令パケット」という)の種類を判定する。そして、保持命令パケットのアドレスと受付命令パケットのアドレスとを比較する。ここで、保持命令パケットは、受付命令パケットよりも先に受け付けた命令パケットである。すなわち、アドレス比較・バッファ制御部11b1は、先行する命令パケット(保持命令パケット)、及び、後続の命令パケット(受付命令パケット)の種類を判定し、両命令パケットのアドレスを比較する。そして、アドレス比較・バッファ制御部11b1は、受付命令パケット及び保持命令パケットの種類ならびに比較結果に基づいて、先行する命令パケットと後続の命令パケットとの結合指示、又は、命令間の追い越しを行う。
The address comparison / buffer control unit 11b1 includes an instruction packet received by the
命令パケットバッファ部11b2は、命令バッファ部11bが受け付けた命令パケットを1つ保持するバッファである。
The instruction packet buffer unit 11b2 is a buffer that holds one instruction packet received by the
結合処理部11b3は、アドレス比較・バッファ制御部11b1の指示に基づいて、命令パケットを1つに結合させる。 The combination processing unit 11b3 combines instruction packets into one based on an instruction from the address comparison / buffer control unit 11b1.
以下、アドレス比較・バッファ制御部11b1の具体的な機能について説明する。 Hereinafter, specific functions of the address comparison / buffer control unit 11b1 will be described.
スカラプロセッシング部11より図2の形式等の命令パケットが生成されると、当該命令パケットはまず命令バッファ部11bに送られる。命令バッファ部11bが命令パケットを受け付けると、アドレス比較・バッファ制御部11b1は、受付命令パケットが、(A)スカラストア命令パケット、(B)ベクトルロード/ストア命令パケット、(C)スカラロード命令パケット、(D)その他の命令パケット、(E)有効でない命令パケットのいずれかであるかを判定する。
When the instruction packet of the format of FIG. 2 is generated from the
スカラプロセッシング部11からは常に何らかの信号を含む「命令パケット」が生成され、出力されており、その命令パケットに含まれる信号は、実際に実行すべき命令を示すものである場合と、無視されるべきものである場合とがある。したがって、アドレス比較・バッファ制御部11b1は、受付命令パケットが「有効である」か否かも判断することとする。ここで、命令パケットが「有効である」とは、命令パケットが、有効bitが“1”であり実際に実行されるべき命令の情報を含むことをいう。すなわち、有効な命令パケットには、(A)スカラストア命令、(B)ベクトルロード/ストア命令、(C)スカラロード命令、又は(D)その他の命令の命令パケットが含まれる。一方、パケットが「有効でない」とは、命令パケットが、有効bitが“0”であり実行されるべき命令の情報を含まないことをいう。
The
次に、アドレス比較・バッファ制御部11b1は、保持命令パケットが「有効である」か否かを判断する。 Next, the address comparison / buffer control unit 11b1 determines whether or not the retained instruction packet is “valid”.
受付命令パケットが(A)スカラストア命令パケットであり、保持命令パケットが有効である場合、アドレス比較・バッファ制御部11b1は、保持命令パケットがスカラストア命令パケットであるか、スカラストア命令パケットであれば受付命令パケットと保持命令パケットのアドレスが一致するか否かを判断する。保持命令パケットがスカラストア命令パケットであって、それらのアドレスが一致する場合、アドレス比較・バッファ制御部11b1は、保持命令パケットと受付命令パケットとを結合する。アドレス比較・バッファ制御部11b1は結合後のパケット(以下、「結合命令パケット」という)を、命令パケットバッファ部11b2に保持する。 When the received instruction packet is (A) a scalar store instruction packet and the hold instruction packet is valid, the address comparison / buffer control unit 11b1 determines whether the hold instruction packet is a scalar store instruction packet or a scalar store instruction packet. For example, it is determined whether the addresses of the reception instruction packet and the holding instruction packet match. If the holding instruction packet is a scalar store instruction packet and the addresses match, the address comparison / buffer control unit 11b1 combines the holding instruction packet and the reception instruction packet. The address comparison / buffer control unit 11b1 holds the combined packet (hereinafter referred to as “combined instruction packet”) in the instruction packet buffer unit 11b2.
保持命令パケットと受付命令パケットとの結合の例を、図4を用いて示す。
図4(a)は保持命令パケット、図4(b)は受付命令パケット、図4(c)は保持命令パケット(図4(a))と受付命令パケット(図4(b))とを結合した後の命令パケット(結合命令パケット)である。
An example of the combination of the hold command packet and the reception command packet will be described with reference to FIG.
4A is a holding instruction packet, FIG. 4B is a reception instruction packet, and FIG. 4C is a combination of a holding instruction packet (FIG. 4A) and a reception instruction packet (FIG. 4B). This is an instruction packet (combined instruction packet) after being performed.
結合命令パケットの命令コード701は、スカラストア命令を示すものであり、命令コード501、601と同じである。アドレス702は、アドレス502、602と同じである。結合命令パケットのバイトイネーブル703は、保持命令パケットのバイトイネーブル503と受付命令パケットのバイトイネーブル603とのOR処理を行ったものとする。結合命令パケットのストアデータ704は、保持命令パケットのストアデータ504と、受付命令パケットのストアデータ604とが示す有効な方を1バイト単位で選択したものとする。ただし、両方のパケットで有効なバイトが存在した場合には、同じアドレスに対するストア命令が連続しているものと考え、遅く受け取った受付命令パケットのストアデータ604を優先する。
The
一方、受付命令パケットが(A)スカラストア命令パケットであり、(i)保持命令パケットが有効でないと判断された場合、(ii)保持命令パケットがスカラストア命令パケット以外の有効な命令パケットである場合、あるいは、(iii)保持命令パケットがスカラストア命令パケットで、両者のアドレスが一致しない場合、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13に出力させ、受付命令パケットであるスカラストア命令パケットを命令パケットバッファ部11b2に保持させる。
On the other hand, if the received instruction packet is (A) a scalar store instruction packet, and (i) the held instruction packet is determined to be invalid, (ii) the held instruction packet is a valid instruction packet other than the scalar store instruction packet. Or (iii) if the hold instruction packet is a scalar store instruction packet and the addresses do not match, the address comparison / buffer control unit 11b1 causes the
これにより、同じアドレスへのスカラストア命令を実行する場合、スカラプロセッシング部11からアドレス変換部13に発行する命令パケット数を削減することができる。この結果、データ転送帯域を効率化し、メモリネットワーク14等のデータ転送の負荷を軽減することができる。一方、先行の命令と後続の命令とがスカラストア命令でも、両命令が対象とするアドレスが一致しない場合には、命令パケットの追い越しは行わず、命令が生成された順に命令パケットを発行することができる。
Thereby, when executing a scalar store instruction to the same address, the number of instruction packets issued from the
受付命令パケットが(B)ベクトルロード/ストア命令パケットであり、保持命令パケットが有効である場合、アドレス比較・バッファ制御部11b1は、保持命令パケットがスカラストア命令パケットであるか、スカラストア命令パケットであれば受付命令パケットと保持命令パケットのアドレスが重複するか否かを判断する。受付命令パケットが(B)ベクトルロード/ストア命令パケットであり、保持命令パケットがスカラストア命令パケットであって、それらのアドレスが重複しない場合、あるいは、受付命令パケットが(B)ベクトルロード/ストア命令パケットであって、保持命令パケットが有効でない場合、アドレス比較・バッファ制御部11b1は、受付命令パケットであるベクトルロード/ストア命令パケットを、保持命令パケットを追い越して、アドレス変換部13に出力する。
When the received instruction packet is (B) vector load / store instruction packet and the hold instruction packet is valid, the address comparison / buffer control unit 11b1 determines whether the hold instruction packet is a scalar store instruction packet or a scalar store instruction packet. If so, it is determined whether the addresses of the reception instruction packet and the holding instruction packet overlap. When the reception instruction packet is (B) vector load / store instruction packet and the holding instruction packet is a scalar store instruction packet and their addresses do not overlap, or the reception instruction packet is (B) vector load / store instruction When the hold instruction packet is not valid, the address comparison / buffer control unit 11b1 outputs the vector load / store instruction packet, which is the reception instruction packet, to the
一方、受付命令パケットが(B)ベクトルロード/ストア命令パケットであり、保持命令パケットがスカラストア命令パケットであって、それらのアドレスが重複する場合、あるいは、受付命令パケットが(B)ベクトルロード/ストア命令パケットであり、保持命令パケットが有効であるがスカラストア命令パケットではない場合、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13へ出力し、受付命令パケット(ベクトルロード/ストア命令パケット)を命令パケットバッファ部11b2に保持させる。
On the other hand, if the reception instruction packet is (B) vector load / store instruction packet and the holding instruction packet is a scalar store instruction packet and their addresses overlap, or the reception instruction packet is (B) vector load / store If it is a store instruction packet and the hold instruction packet is valid but not a scalar store instruction packet, the address comparison / buffer control unit 11b1 outputs the hold instruction packet to the
これにより、アドレスが重複しなければ、スカラストア命令よりもベクトルロード/ストア命令を優先的に実行する追い越し制御を行うことができる。 Thus, if the addresses do not overlap, overtaking control can be performed in which the vector load / store instruction is executed with priority over the scalar store instruction.
受付命令パケットが(C)スカラロード命令パケットであり、保持命令パケットが有効である場合、アドレス比較・バッファ制御部11b1は、保持命令パケットがスカラストア命令パケットであるか、スカラストア命令パケットであれば受付命令パケットと保持命令パケットのアドレスが一致するか否かを判断する。受付命令パケットが(C)スカラロード命令パケットであり、保持命令パケットがスカラストア命令パケットであって、それらのアドレスが一致しない場合、あるいは、受付命令パケットが(C)スカラロード命令パケットであって、保持命令パケットが有効でない場合、アドレス比較・バッファ制御部11b1は、受付命令パケットであるスカラロード命令パケットを、保持命令パケットを追い越して、アドレス変換部13に出力する。
When the received instruction packet is (C) a scalar load instruction packet and the hold instruction packet is valid, the address comparison / buffer control unit 11b1 determines whether the hold instruction packet is a scalar store instruction packet or a scalar store instruction packet. For example, it is determined whether the addresses of the reception instruction packet and the holding instruction packet match. When the reception instruction packet is (C) a scalar load instruction packet and the holding instruction packet is a scalar store instruction packet and their addresses do not match, or the reception instruction packet is (C) a scalar load instruction packet When the hold instruction packet is not valid, the address comparison / buffer control unit 11b1 outputs the scalar load instruction packet, which is the reception instruction packet, to the
一方、受付命令パケットが(C)スカラロード命令パケットであり、保持命令パケットがスカラストア命令パケットであって、アドレスが一致する場合、あるいは、受付命令パケットが(C)スカラロード命令パケットであり、保持命令パケットが有効であるがスカラストア命令パケットでない場合、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13に出力し、受付命令パケット(スカラロード命令パケット)を命令パケットバッファ部11b2に保持させる。
On the other hand, if the reception instruction packet is (C) a scalar load instruction packet and the holding instruction packet is a scalar store instruction packet and the addresses match, or the reception instruction packet is (C) a scalar load instruction packet, When the hold instruction packet is valid but not the scalar store instruction packet, the address comparison / buffer control unit 11b1 outputs the hold instruction packet to the
これにより、アドレスが一致しなければ、スカラストア命令よりもスカラロード命令を優先的に実行する追い越し制御を行うことができる。 Thereby, if the addresses do not match, overtaking control can be performed in which the scalar load instruction is executed with priority over the scalar store instruction.
受付命令パケットが(D)その他の命令パケットであり、保持命令パケットが有効である場合、アドレス比較・バッファ制御部11b1は、保持命令パケットを、アドレス変換部13に出力し、受付命令パケット(その他の命令パケット)を命令パケットバッファ部11b2に保持させる。
When the received command packet is (D) other command packet and the held command packet is valid, the address comparison / buffer control unit 11b1 outputs the held command packet to the
一方、受付命令パケットが(D)その他の命令パケットであり、保持命令パケットが有効でない場合、アドレス比較・バッファ制御部11b1は、アドレス比較・バッファ制御部11b1は、受付命令パケットをそのままアドレス変換部13へ出力する。 On the other hand, when the received command packet is (D) other command packet and the held command packet is not valid, the address comparison / buffer control unit 11b1 uses the received command packet as it is as the address conversion unit. 13 to output.
これにより、有効なパケットであるその他の命令パケットは、有効でないパケットとよりも優先させて出力することができる。 As a result, other command packets that are valid packets can be output with priority over packets that are not valid.
受付命令パケットが(E)有効でない命令パケットであり、保持命令パケットが有効である場合、アドレス比較・バッファ制御部11b1は、保持命令パケットがスカラストア命令パケットであるか否かを判断する。受付命令パケットが(E)有効でない命令パケットであり、保持命令パケットがスカラストア命令パケットである場合、アドレス比較・バッファ制御部11b1は、保持命令パケットを命令パケットバッファ部11b2に保持させたまま、受付命令パケットをそのままアドレス変換部13へ出力する。
When the received instruction packet is (E) an invalid instruction packet and the retained instruction packet is valid, the address comparison / buffer control unit 11b1 determines whether or not the retained instruction packet is a scalar store instruction packet. When the received instruction packet is (E) an invalid instruction packet and the retained instruction packet is a scalar store instruction packet, the address comparison / buffer control unit 11b1 holds the retained instruction packet in the instruction packet buffer unit 11b2. The reception instruction packet is output to the
一方、受付命令パケットが(E)有効でない命令パケットであり、保持命令パケットがスカラストア命令パケット以外の有効な命令パケットである場合、あるいは、受付命令パケットが(E)有効でない命令パケットであり、保持命令パケットも有効でない命令パケットである場合、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13に出力し、受付命令パケット(有効でない命令パケット)を命令パケットバッファ部11b2に保持させる。
On the other hand, when the reception instruction packet is (E) an invalid instruction packet and the holding instruction packet is an invalid instruction packet other than a scalar store instruction packet, or the reception instruction packet is (E) an invalid instruction packet, If the retained instruction packet is also an invalid instruction packet, the address comparison / buffer control unit 11b1 outputs the retained instruction packet to the
これにより、後続に有効なパケットが来ない場合、命令パケットバッファ部11b2に命令パケットが滞留してしまうことを防ぐことができる。 Thereby, it is possible to prevent the instruction packet from staying in the instruction packet buffer unit 11b2 when a valid packet does not follow.
(3.実施形態1の命令バッファ部の動作)
以下、結合処理及び追い越し制御処理を実行する命令バッファ部の動作について説明する。ベクトル処理装置1に電源が投入されると、命令バッファ部11bは、図5のフローチャートに示す命令パケット制御処理を開始する。
(3. Operation of instruction buffer unit of embodiment 1)
The operation of the instruction buffer unit that executes the combination process and the overtaking control process will be described below. When the
アドレス比較・バッファ制御部11b1は、命令パケットを受け付けたか否かを判断する(ステップS11)。命令パケットを受け付けたと判断された場合(ステップS11;Yes)、アドレス比較・バッファ制御部11b1は、受け付けた命令パケット(受付命令パケット)の種類を判定する(ステップS12)。一方、命令パケットを受け付けていないと判断された場合(ステップS11;No)、そのまま待機する。 The address comparison / buffer control unit 11b1 determines whether or not an instruction packet has been received (step S11). If it is determined that the instruction packet has been received (step S11; Yes), the address comparison / buffer control unit 11b1 determines the type of the received instruction packet (accepted instruction packet) (step S12). On the other hand, when it is determined that the instruction packet has not been received (step S11; No), the process waits as it is.
アドレス比較・バッファ制御部11b1は、受付命令パケットが「スカラストア命令パケット」であると判断した場合(ステップS12;スカラストア命令パケット)、スカラストア命令パケット制御処理(図6)を開始する(ステップS13)。
アドレス比較・バッファ制御部11b1は、受付命令パケットが「ベクトルロード/ストア命令パケット」であると判断した場合(ステップS12;ベクトルロード/ストア命令パケット)、ベクトルロード/ストア命令パケット制御処理(図7)を開始する(ステップS14)。
アドレス比較・バッファ制御部11b1は、受付命令パケットが「スカラロード命令パケット」であると判断した場合(ステップS12;スカラロード命令パケット)、スカラロード命令パケット制御処理(図8)を開始する(ステップS15)。
アドレス比較・バッファ制御部11b1は、受付命令パケットが「その他の命令パケット」であると判断した場合(ステップS12;その他の命令パケット)、その他の命令パケット制御処理(図9)を開始する(ステップS16)。
アドレス比較・バッファ制御部11b1は、受付命令パケットが「有効でない命令パケット」であると判断した場合(ステップS12;有効でない命令パケット)、有効でない命令パケットの制御処理(図10)を開始する(ステップS17)。
When the address comparison / buffer control unit 11b1 determines that the received instruction packet is a “scalar store instruction packet” (step S12; a scalar store instruction packet), it starts a scalar store instruction packet control process (FIG. 6) (step S12). S13).
When the address comparison / buffer control unit 11b1 determines that the received instruction packet is a “vector load / store instruction packet” (step S12; vector load / store instruction packet), vector load / store instruction packet control processing (FIG. 7). ) Is started (step S14).
When the address comparison / buffer control unit 11b1 determines that the received instruction packet is a “scalar load instruction packet” (step S12; a scalar load instruction packet), it starts a scalar load instruction packet control process (FIG. 8) (step 8). S15).
When the address comparison / buffer control unit 11b1 determines that the received instruction packet is “other instruction packet” (step S12; other instruction packet), the other instruction packet control process (FIG. 9) is started (step 9). S16).
If the address comparison / buffer control unit 11b1 determines that the received instruction packet is an “invalid instruction packet” (step S12; invalid instruction packet), it starts control processing (FIG. 10) of the invalid instruction packet (FIG. 10). Step S17).
(3.1 スカラストア命令パケット制御処理)
アドレス比較・バッファ制御部11b1は、保持命令パケットが有効か否かを判断する(ステップS131)。保持命令パケットが有効であると判断された場合(ステップS131;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケットがスカラストア命令パケットか否かを判断する(ステップS132)。一方、保持命令パケットが有効でないと判断された場合(ステップS131;No)、アドレス比較・バッファ制御部11b1は、現在保持されている有効でない命令パケットをアドレス変換部13に出力し、受付命令パケット(スカラストア命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS135)。
(3.1 Scalar store instruction packet control processing)
The address comparison / buffer control unit 11b1 determines whether or not the retained instruction packet is valid (step S131). If it is determined that the hold instruction packet is valid (step S131; Yes), the address comparison / buffer control unit 11b1 determines whether the hold instruction packet is a scalar store instruction packet (step S132). On the other hand, when it is determined that the retained instruction packet is not valid (step S131; No), the address comparison / buffer control unit 11b1 outputs the currently retained invalid instruction packet to the
ステップS132において、保持命令パケットがスカラストア命令パケットであると判断された場合(ステップS132;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケット(先行するスカラストア命令パケット)のアドレスと受付命令パケット(後続のスカラストア命令パケット)のアドレスとを比較する(ステップS133)。 If it is determined in step S132 that the holding instruction packet is a scalar store instruction packet (step S132; Yes), the address comparison / buffer control unit 11b1 accepts the address of the holding instruction packet (preceding scalar store instruction packet). The address of the instruction packet (subsequent scalar store instruction packet) is compared (step S133).
一方、ステップS132において、保持命令パケットがスカラストア命令パケット以外の有効な命令パケットであると判断された場合(ステップS132;No)、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13へ出力し、受付命令パケット(スカラストア命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS135)。すなわち、受付命令パケットがスカラストア命令パケットであり、保持命令パケットがスカラストア命令パケット以外の有効な命令パケットである場合、アドレス比較・バッファ制御部11b1は、追い越し制御を行わず、命令パケットが生成された順に、命令パケットをアドレス変換部13に出力する。
On the other hand, when it is determined in step S132 that the held instruction packet is a valid instruction packet other than the scalar store instruction packet (step S132; No), the address comparison / buffer control unit 11b1 converts the held instruction packet into an address conversion unit. The received instruction packet (scalar store instruction packet) is held in the instruction packet buffer unit 11b2 (step S135). That is, when the received instruction packet is a scalar store instruction packet and the held instruction packet is a valid instruction packet other than the scalar store instruction packet, the address comparison / buffer control unit 11b1 generates an instruction packet without performing overtaking control. The instruction packets are output to the
ステップS133において、保持命令パケットのアドレスと受付命令パケットのアドレスとが一致すると判断された場合(ステップS133;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケットと受付命令パケットとを結合し、結合後の命令パケットを命令パケットバッファ部11b2に保持させる(ステップS134)。例えば、保持命令パケットが図4(a)に示す命令パケットであり、受付命令パケットが図4(b)に示す命令パケットである場合、アドレス比較・バッファ制御部11b1は、それらを結合して図4(c)に示す命令パケットを生成する。そして、アドレス比較・バッファ制御部11b1は、生成した当該命令パケットを命令パケットバッファ部11b2に保持させる。 If it is determined in step S133 that the address of the holding instruction packet matches the address of the reception instruction packet (step S133; Yes), the address comparison / buffer control unit 11b1 combines the holding instruction packet and the reception instruction packet. The combined instruction packet is held in the instruction packet buffer unit 11b2 (step S134). For example, when the holding instruction packet is the instruction packet shown in FIG. 4A and the reception instruction packet is the instruction packet shown in FIG. 4B, the address comparison / buffer control unit 11b1 combines them to The instruction packet shown in 4 (c) is generated. Then, the address comparison / buffer control unit 11b1 holds the generated instruction packet in the instruction packet buffer unit 11b2.
一方、ステップS133において、アドレスが一致しないと判断された場合(ステップS133;No)、アドレス比較・バッファ制御部11b1は、保持命令パケット(先行するスカラストア命令パケット)をアドレス変換部13へ出力し、受付命令パケット(後続のスカラストア命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS135)。
On the other hand, if it is determined in step S133 that the addresses do not match (step S133; No), the address comparison / buffer control unit 11b1 outputs the retained instruction packet (the preceding scalar store instruction packet) to the
ステップS134又はステップS135の処理の後、アドレス比較バッファ制御部13は、スカラストア命令パケット制御処理を終了する。
After the process of step S134 or step S135, the address comparison
(3.2 ベクトルロード/ストア命令パケット制御処理)
アドレス比較・バッファ制御部11b1は、保持命令パケットが有効か否かを判断する(ステップS141)。保持命令パケットが有効であると判断された場合(ステップS141;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケットがスカラストア命令パケットか否かを判断する(ステップS142)。一方、保持命令パケットが有効でないと判断された場合(ステップS141;No)、アドレス比較・バッファ制御部11b1は、受付命令パケット(ベクトルロード/ストア命令パケット)をそのままアドレス変換部13へ出力する(ステップS145)。
(3.2 Vector load / store instruction packet control processing)
The address comparison / buffer control unit 11b1 determines whether or not the hold instruction packet is valid (step S141). If it is determined that the hold instruction packet is valid (step S141; Yes), the address comparison / buffer control unit 11b1 determines whether the hold instruction packet is a scalar store instruction packet (step S142). On the other hand, when it is determined that the hold instruction packet is not valid (step S141; No), the address comparison / buffer control unit 11b1 outputs the reception instruction packet (vector load / store instruction packet) to the
ステップS142において、保持命令パケットがスカラストア命令パケットであると判断された場合(ステップS142;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケット(スカラストア命令パケット)のアドレスと受付命令パケット(ベクトルロード/ストア命令パケット)のアドレスとを比較する(ステップS143)。 If it is determined in step S142 that the holding instruction packet is a scalar store instruction packet (step S142; Yes), the address comparison / buffer control unit 11b1 determines the address of the holding instruction packet (scalar store instruction packet) and the received instruction packet. The address of (vector load / store instruction packet) is compared (step S143).
一方、ステップS142において、保持命令パケットがスカラストア命令パケット以外の有効な命令パケットであると判断された場合(ステップS142;No)、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13へ出力し、受付命令パケット(ベクトルロード/ストア命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS144)。すなわち、受付命令パケットがベクトルロード/ストア命令パケットであり、保持命令パケットが、スカラストア命令パケット以外の有効な命令パケットである場合、アドレス比較・バッファ制御部11b1は、追い越し制御を行わず、命令パケットが生成された順に、命令パケットをアドレス変換部13に出力する。
On the other hand, when it is determined in step S142 that the held instruction packet is a valid instruction packet other than the scalar store instruction packet (step S142; No), the address comparison / buffer control unit 11b1 converts the held instruction packet into an address conversion unit. The received instruction packet (vector load / store instruction packet) is held in the instruction packet buffer unit 11b2 (step S144). That is, when the reception instruction packet is a vector load / store instruction packet and the holding instruction packet is a valid instruction packet other than the scalar store instruction packet, the address comparison / buffer control unit 11b1 does not perform overtaking control, The instruction packets are output to the
ステップS143において、保持命令パケットのアドレスと、受付命令パケットのアドレス、すなわち、ベースアドレスを基準とした要素数個のアドレスとが重複する場合(ステップS143;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケット(スカラストア命令パケット)をアドレス変換部13へ出力し、受付命令パケット(ベクトルロード/ストア命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS144)。
In step S143, when the address of the holding instruction packet and the address of the reception instruction packet, that is, the number of elements based on the base address overlap (step S143; Yes), the address comparison / buffer control unit 11b1 The held instruction packet (scalar store instruction packet) is output to the
一方、ステップS143において、アドレスが重複しないと判断された場合(ステップS143;No)、アドレス比較・バッファ制御部11b1は、保持命令パケット(スカラストア命令パケット)をそのまま保持させ、受付命令パケット(ベクトルロード/ストア命令パケット)を優先してアドレス変換部13へ出力する(ステップS145)。 On the other hand, if it is determined in step S143 that the addresses do not overlap (step S143; No), the address comparison / buffer control unit 11b1 holds the held instruction packet (scalar store instruction packet) as it is, and receives the received instruction packet (vector The load / store instruction packet) is prioritized and output to the address translation unit 13 (step S145).
ステップS144及びステップS145の処理の後、アドレス比較バッファ制御部13は、ベクトルロード/ストア命令パケット制御処理を終了する。
After the processes in steps S144 and S145, the address comparison
(3.3 スカラロード命令パケット制御処理)
アドレス比較・バッファ制御部11b1は、保持命令パケットが有効か否かを判断する(ステップS151)。保持命令パケットが有効であると判断された場合(ステップS151;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケットがスカラストア命令パケットか否かを判断する(ステップS152)。一方、保持命令パケットが有効でないと判断された場合(ステップS151;No)、アドレス比較・バッファ制御部11b1は、受付命令パケット(スカラロード命令パケット)をそのままアドレス変換部13へ出力する(ステップS155)。
(3.3 Scalar load instruction packet control processing)
The address comparison / buffer control unit 11b1 determines whether or not the retained instruction packet is valid (step S151). If it is determined that the hold instruction packet is valid (step S151; Yes), the address comparison / buffer control unit 11b1 determines whether the hold instruction packet is a scalar store instruction packet (step S152). On the other hand, when it is determined that the hold instruction packet is not valid (step S151; No), the address comparison / buffer control unit 11b1 outputs the reception instruction packet (scalar load instruction packet) as it is to the address conversion unit 13 (step S155). ).
ステップS152において、保持命令パケットがスカラストア命令パケットであると判断された場合(ステップS152;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケット(スカラストア命令パケット)のアドレスと受付命令パケット(スカラロード命令パケット)のアドレスとを比較する(ステップS153)。 If it is determined in step S152 that the holding instruction packet is a scalar store instruction packet (step S152; Yes), the address comparison / buffer control unit 11b1 determines the address of the holding instruction packet (scalar store instruction packet) and the received instruction packet. The address of the (scalar load instruction packet) is compared (step S153).
一方、ステップS152において、保持命令パケットがスカラストア命令パケット以外の有効な命令パケットであると判断された場合(ステップS152;No)、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13へ出力し、受付命令パケット(スカラロード命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS154)。すなわち、受付命令パケットがスカラロード命令パケットであり、保持命令パケットがスカラストア命令パケット以外の有効な命令パケットである場合、アドレス比較・バッファ制御部11b1は、追い越し制御を行わず、命令パケットが生成された順に、命令パケットをアドレス変換部13に出力する。
On the other hand, when it is determined in step S152 that the held instruction packet is a valid instruction packet other than the scalar store instruction packet (step S152; No), the address comparison / buffer control unit 11b1 converts the held instruction packet into an address conversion unit. 13, the reception instruction packet (scalar load instruction packet) is held in the instruction packet buffer unit 11b2 (step S154). That is, when the received instruction packet is a scalar load instruction packet and the held instruction packet is a valid instruction packet other than a scalar store instruction packet, the address comparison / buffer control unit 11b1 does not perform overtaking control and generates an instruction packet. The instruction packets are output to the
ステップS153において、保持命令パケットのアドレスと受付命令パケットのアドレスとが一致すると判断された場合(ステップS153;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケット(スカラストア命令パケット)をアドレス変換部13へ出力し、受付命令パケット(スカラロード命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS154)。
If it is determined in step S153 that the address of the holding instruction packet matches the address of the receiving instruction packet (step S153; Yes), the address comparison / buffer control unit 11b1 addresses the holding instruction packet (scalar store instruction packet). The received instruction packet (scalar load instruction packet) is output to the
一方、ステップS153において、アドレスが一致しないと判断された場合(ステップS153;No)、アドレス比較・バッファ制御部11b1は、保持命令パケット(スカラストア命令パケット)をそのまま保持させ、受付命令パケット(スカラロード命令パケット)を優先してアドレス変換部13へ出力する(ステップS155)。 On the other hand, if it is determined in step S153 that the addresses do not match (step S153; No), the address comparison / buffer control unit 11b1 holds the held instruction packet (scalar store instruction packet) as it is, and receives the received instruction packet (scalar). The load command packet) is prioritized and output to the address translation unit 13 (step S155).
ステップS154及びステップS155の処理の後、アドレス比較バッファ制御部13は、スカラロード命令パケット制御処理を終了する。
After the processes of step S154 and step S155, the address comparison
(3.4 その他の命令パケット制御処理)
アドレス比較・バッファ制御部11b1は、保持命令パケットが有効か否かを判断する(ステップS161)。保持命令パケットが有効であると判断された場合(ステップS161;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13へ出力し、受付命令パケット(その他の命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS162)。一方、保持命令パケットが有効でないと判断された場合(ステップS161;No)、アドレス比較・バッファ制御部11b1は、受付命令パケットをそのままアドレス変換部13へ出力する(ステップS163)。
(3.4 Other instruction packet control processing)
The address comparison / buffer control unit 11b1 determines whether or not the retained instruction packet is valid (step S161). When it is determined that the hold command packet is valid (step S161; Yes), the address comparison / buffer control unit 11b1 outputs the hold command packet to the
ステップS162及びステップS163の処理の後、アドレス比較バッファ制御部13は、その他の命令パケット制御処理を終了する。
After the processing of step S162 and step S163, the address comparison
(3.5 有効でない命令パケットの制御処理)
アドレス比較・バッファ制御部11b1は、保持命令パケットが有効か否かを判断する(ステップS171)。保持命令パケットが有効であると判断された場合(ステップS171;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケットがスカラストア命令パケットか否かを判断する(ステップS172)。一方、保持命令パケットが有効でないと判断された場合(ステップS171;No)、アドレス比較・バッファ制御部11b1は、現在保持されている有効でない命令パケットをアドレス変換部13に出力し、受付命令パケット(有効でない命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS174)。
(3.5 Control processing of invalid instruction packet)
The address comparison / buffer control unit 11b1 determines whether or not the retained instruction packet is valid (step S171). If it is determined that the hold instruction packet is valid (step S171; Yes), the address comparison / buffer control unit 11b1 determines whether the hold instruction packet is a scalar store instruction packet (step S172). On the other hand, when it is determined that the retained instruction packet is not valid (step S171; No), the address comparison / buffer control unit 11b1 outputs the currently retained invalid instruction packet to the
ステップS172において、保持命令パケットがスカラストア命令パケットであると判断された場合(ステップS172;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケット(スカラストア命令パケット)を命令パケットバッファ部11b2に保持させたまま、受付命令パケット(有効でない命令パケット)をそのままアドレス変換部13へ出力する(ステップS173)。
If it is determined in step S172 that the holding instruction packet is a scalar store instruction packet (step S172; Yes), the address comparison / buffer control unit 11b1 converts the holding instruction packet (scalar store instruction packet) into the instruction packet buffer unit 11b2. The received instruction packet (invalid instruction packet) is output to the
一方、ステップS172において、保持命令パケットがスカラストア命令パケット以外の有効な命令パケットであると判断された場合(ステップS172;No)、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13へ出力し、受付命令パケット(有効でない命令パケット)を命令パケットバッファ部11b2に保持させる(ステップS174)。 On the other hand, when it is determined in step S172 that the held instruction packet is a valid instruction packet other than the scalar store instruction packet (step S172; No), the address comparison / buffer control unit 11b1 converts the held instruction packet into an address conversion unit. The received instruction packet (invalid instruction packet) is held in the instruction packet buffer unit 11b2 (step S174).
ステップS173及びステップS174の処理の後、アドレス比較バッファ制御部13は、有効でない命令パケットの制御処理を終了する。
After the processes in steps S173 and S174, the address comparison
本実施形態によれば、アドレス変換部に発行される命令パケット数を削減することができ、データ転送の負荷を軽減することができる。ストア命令のアドレスとロード命令のアドレスとが重ならなければ、ロード命令を追い越させて優先的に実行することができ、ベクトル処理装置の処理速度を高めることができる。 According to the present embodiment, the number of instruction packets issued to the address translation unit can be reduced, and the data transfer load can be reduced. If the address of the store instruction and the address of the load instruction do not overlap, the load instruction can be overtaken and executed preferentially, and the processing speed of the vector processing device can be increased.
(4.実施形態2のベクトル処理装置の概要構成)
実施形態2のベクトル処理装置1は、図1に示すように、ベクトル処理装置1は、スカラプロセッシング部11と、ベクトルプロセッシング部12と、アドレス変換部13と、メモリネットワーク14と、メモリ15と、から構成される。ベクトルプロセッシング部12、アドレス変換部13、メモリネットワーク14、及び、メモリ15は、実施形態1のものと同様の機能を有する。
(4. Outline Configuration of Vector Processing Device of Embodiment 2)
As shown in FIG. 1, the
(5.実施形態2のスカラプロセッシング部の概要構成)
実施形態2のスカラプロセッシング部は、実施形態1の機能に加え、命令パケットが一定時間以上保持された場合、比較する命令パケットが存在しなくても保持命令パケットを出力する機能を有するものである。
以下、実施形態1のベクトル処理装置と異なる機能を実現するアドレス比較・バッファ制御部11b1について説明する。
(5. Outline configuration of scalar processing unit of embodiment 2)
In addition to the functions of the first embodiment, the scalar processing unit of the second embodiment has a function of outputting a retained instruction packet even when there is no instruction packet to be compared when the instruction packet is retained for a certain period of time. .
The address comparison / buffer control unit 11b1 that implements functions different from those of the vector processing apparatus of the first embodiment will be described below.
アドレス比較・バッファ制御部11b1は、カウンタ(図示せず)を備え、命令バッファ部11bが命令パケットを受け付けない期間、命令パケットバッファ部11b2を次のように制御する。
The address comparison / buffer control unit 11b1 includes a counter (not shown), and controls the instruction packet buffer unit 11b2 as follows during a period in which the
アドレス比較・バッファ制御部11b1は、カウンタにより命令パケットバッファ部11b2に命令パケットを保持させてからの経過時間を計測する。そして、アドレス比較・バッファ制御部11b1は、経過時間が所定の時間を経過した場合、保持命令パケットをアドレス変換部13へ出力させる。一方、経過時間が所定の閾値を超えない場合、アドレス比較・バッファ制御部11b1は、命令パケットバッファ部11b2に命令パケットを保持させたまま待機する。
The address comparison / buffer control unit 11b1 measures an elapsed time after the instruction packet is held in the instruction packet buffer unit 11b2 by a counter. Then, the address comparison / buffer control unit 11b1 outputs the retained instruction packet to the
これにより、命令パケットバッファ部11b1に命令パケットが滞留して、ベクトル処理装置1全体の処理が滞ることを防ぐことができる。また、ストア命令の処理にかかる時間を、ある一定の値以下にすることを保証することが可能となる。
As a result, it is possible to prevent the instruction packet from staying in the instruction packet buffer unit 11b1 and delaying the processing of the entire
(6.実施形態2の命令バッファ部の動作)
以下、本実施形態の命令バッファ部の各部が行う動作について説明する。ベクトル処理装置1に電源が投入されると、命令バッファ部11bは、図11のフローチャートに示す命令パケット制御処理を開始する。なお、図11のフローチャートにおいて、図5のフローチャートと同じステップ番号が付されているステップは、図5のフローチャートにおける処理と同様の処理を行う。以下、異なる処理を行うステップについて説明する。
(6. Operation of instruction buffer unit of embodiment 2)
Hereinafter, operations performed by each unit of the instruction buffer unit of the present embodiment will be described. When the
ステップS11において、命令パケットを受け付けていないと判断された場合(ステップS11;No)、アドレス比較・バッファ制御部11b1は、命令パケットバッファ部11b2に命令パケットを保持させてから所定の時間が経過したか否かを判断する(ステップS27)。所定の時間経過したと判断された場合(ステップS27;Yes)、アドレス比較・バッファ制御部11b1は、保持命令パケットをアドレス変換部13へ出力する(ステップS28)。そして、ステップS11に戻る。 If it is determined in step S11 that the instruction packet has not been received (step S11; No), the address comparison / buffer control unit 11b1 has passed the predetermined time since the instruction packet buffer unit 11b2 held the instruction packet. Whether or not (step S27). If it is determined that the predetermined time has elapsed (step S27; Yes), the address comparison / buffer control unit 11b1 outputs the retained instruction packet to the address conversion unit 13 (step S28). Then, the process returns to step S11.
一方、所定の時間を経過していないと判断された場合(ステップS27;No)、アドレス比較・バッファ制御部11b1は、ステップS11に戻り、引き続き、命令パケットを受け付けたか否か判断する。 On the other hand, if it is determined that the predetermined time has not elapsed (step S27; No), the address comparison / buffer control unit 11b1 returns to step S11 and subsequently determines whether or not an instruction packet has been received.
本実施形態によれば、命令パケットが長期間、バッファに滞留してしまうのを防ぐことができる。 According to this embodiment, it is possible to prevent the instruction packet from staying in the buffer for a long time.
なお、上記実施形態において、ベクトル処理装置は上記の構成に限られるものではない。例えば、スカラプロセッシング部、ベクトルプロセッシング部、メモリ等は複数備えられるようにしてもよい。また、本実施形態では、アドレス変換部を介してスカラプロセッシング部からベクトルプロセッシング部へ命令パケットが送出されているが、これに限らず、スカラプロセッシング部からベクトルプロセッシング部へ直接、命令パケットを送出するようにしてもよい。また、各命令パケットの形式は、実施形態に示したものに限らない。例えば、ベクトル処理装置が、スカラプロセッシング部を複数有する場合、命令パケットを発行したスカラプロセッシング部を識別する識別子等を命令パケットに含めるようにしてもよい。 In the above embodiment, the vector processing apparatus is not limited to the above configuration. For example, a plurality of scalar processing units, vector processing units, memories, etc. may be provided. In this embodiment, the instruction packet is transmitted from the scalar processing unit to the vector processing unit via the address conversion unit. However, the present invention is not limited to this, and the instruction packet is transmitted directly from the scalar processing unit to the vector processing unit. You may do it. The format of each instruction packet is not limited to that shown in the embodiment. For example, when the vector processing apparatus has a plurality of scalar processing units, an identifier for identifying the scalar processing unit that issued the instruction packet may be included in the instruction packet.
また、上記実施形態において、アドレス比較・バッファ制御部11b1は、有効でない命令パケットをアドレス変換部13へ出力しなくてもよい。あるいは、アドレス比較・バッファ制御部11b1は、有効でない命令パケットを、どのような順序でも出力することができる。例えば、ステップS135、S174において、アドレス比較・バッファ制御部11b1は、保持されている有効でない命令パケットをアドレス変換部13に出力せず、受付命令パケットを命令パケットバッファ部11b2に上書きしてしまうこととしてもよい。また、ステップS173において、アドレス比較・バッファ制御部11b1は、受付命令パケットである有効でない命令パケットをアドレス変換部13に出力しないこととしてもよい。
In the above-described embodiment, the address comparison /
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。 A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(付記1)
スカラ演算を行うスカラ処理部と、ベクトル演算を行うベクトル処理部と、記憶部と、を備えるベクトル処理装置であって、
前記スカラ処理部は、
前記記憶部からデータをロードする命令あるいは前記記憶部にデータをストアする命令を示す第1の命令パケット又は第2の命令パケットを発行するものであって、
前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ部と、
前記第1の命令パケット及び当該第1の命令パケットの後に発行される第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御部と、
前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理部と、
を備え、
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを命令パケットバッファ部に格納させ、
(b)ベクトルロード命令又はベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力する
ことを特徴とするベクトル処理装置。
(Appendix 1)
A vector processing apparatus comprising a scalar processing unit that performs a scalar operation, a vector processing unit that performs a vector operation, and a storage unit,
The scalar processing unit is
Issuing a first instruction packet or a second instruction packet indicating an instruction to load data from the storage unit or an instruction to store data in the storage unit,
An instruction packet buffer unit for storing a first instruction packet issued by the scalar processing unit;
A type of the first instruction packet and a second instruction packet issued after the first instruction packet is determined, and a first address designated by the first instruction packet and a second instruction packet are A buffer control unit that compares a second address to be designated and outputs an instruction to combine the first instruction packet and the second instruction packet;
A combining processor that combines the first instruction packet and the second instruction packet based on the output instruction;
With
The buffer control unit
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the instruction to combine, and stores the combined packet in the instruction packet buffer unit;
(B) a vector load instruction or a vector store instruction, and if the first address and the second address do not overlap, output the second instruction packet;
(C) A vector processing device that outputs a second instruction packet when the first address and the second address do not coincide with each other in a scalar load instruction.
(付記2)
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令がスカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記命令パケットバッファ部に格納させる
ことを特徴とする付記1に記載のベクトル処理装置。
(Appendix 2)
The buffer control unit
When the instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is a scalar store instruction, and the first address and the second address do not match, The vector processing apparatus according to
(付記3)
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令がベクトルロード命令又はベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスとが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記命令パケットバッファ部に格納させる
ことを特徴とする付記1又は2に記載のベクトル処理装置。
(Appendix 3)
The buffer control unit
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is a vector load instruction or a vector store instruction, and the first address and the second address are 3. The vector processing device according to
(付記4)
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令がスカラロード命令であって、前記第1のアドレスと前記第2のアドレスとが一致する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記命令パケットバッファ部に格納させる
ことを特徴とする付記1乃至3のいずれか1つに記載のベクトル処理装置。
(Appendix 4)
The buffer control unit
When the instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is a scalar load instruction, and the first address matches the second address, The vector processing device according to any one of
(付記5)
前記バッファ制御部は、
前記第1の命令パケットが示す命令がベクトルロード命令、ベクトルストア命令、又は、スカラロード命令である場合、前記第1の命令パケットを出力する
ことを特徴とする付記1乃至4のいずれか1つに記載のベクトル処理装置。
(Appendix 5)
The buffer control unit
If the instruction indicated by the first instruction packet is a vector load instruction, a vector store instruction, or a scalar load instruction, the first instruction packet is output. The vector processing device described in 1.
(付記6)
前記バッファ制御部は、前記命令パケットバッファ部が前記第1の命令パケットを格納してからの経過時間を計測し、当該経過時間が所定の値を超えた場合、前記第1の命令パケットを出力する
ことを特徴とする付記1乃至5のいずれか1つに記載のベクトル処理装置。
(Appendix 6)
The buffer control unit measures an elapsed time after the instruction packet buffer unit stores the first instruction packet, and outputs the first instruction packet when the elapsed time exceeds a predetermined value. The vector processing device according to any one of
(付記7)
スカラ演算を行うスカラ処理部と、ベクトル演算を行うベクトル処理部と、記憶部と、を備え、前記スカラ処理部は、前記記憶部からデータをロードする命令あるいは前記記憶部にデータをストアする命令を示す第1の命令パケット又は第2の命令パケットを発行するものであって、当該スカラ処理部が、命令パケットバッファ部と、バッファ制御部と、結合処理部とを備える、ベクトル処理装置が実行するベクトル処理方法であって、
当該ベクトル処理方法は、
前記命令パケットバッファ部が、前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ工程と、
前記バッファ制御部が、前記第1の命令パケット及び当該第1の命令パケットの後に発行される第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御工程と、
前記結合処理部が、前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理工程と、
を備え、
前記バッファ制御工程において、前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを命令パケットバッファ部に格納させ、
(b)ベクトルロード命令又はベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力する
ことを特徴とするベクトル処理方法。
(Appendix 7)
A scalar processing unit that performs a scalar operation; a vector processing unit that performs a vector operation; and a storage unit, wherein the scalar processing unit loads data from the storage unit or stores data in the storage unit The first instruction packet or the second instruction packet indicating that the scalar processing unit includes an instruction packet buffer unit, a buffer control unit, and a combination processing unit. A vector processing method for
The vector processing method is
An instruction packet buffer step in which the instruction packet buffer unit stores a first instruction packet issued by the scalar processing unit;
The buffer control unit determines a type of the first instruction packet and a second instruction packet issued after the first instruction packet, and a first address designated by the first instruction packet; A buffer control step of comparing a second address specified by a second instruction packet and outputting an instruction to combine the first instruction packet and the second instruction packet;
A combining processing step in which the combining processing unit combines the first instruction packet and the second instruction packet based on the output instruction;
With
In the buffer control step, the buffer control unit includes:
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the instruction to combine, and stores the combined packet in the instruction packet buffer unit;
(B) a vector load instruction or a vector store instruction, and if the first address and the second address do not overlap, output the second instruction packet;
(C) A vector processing method characterized by outputting the second instruction packet when the first address and the second address do not coincide with each other in a scalar load instruction.
(付記8)
コンピュータを、
スカラ演算を行うスカラ処理部と、ベクトル演算を行うベクトル処理部と、記憶部と、を備え、前記スカラ処理部は、前記記憶部からデータをロードする命令あるいは前記記憶部にデータをストアする命令を示す第1の命令パケット又は第2の命令パケットを発行する、ベクトル処理装置として機能させるプログラムであって、
前記プログラムは、前記コンピュータを、
前記スカラ処理部において、
前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ部、
前記第1の命令パケット及び当該第1の命令パケットの後に発行される第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御部、
前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理部、
として機能させ、
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを命令パケットバッファ部に格納させ、
(b)ベクトルロード命令又はベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力する
として機能させることを特徴とするプログラム。
(Appendix 8)
Computer
A scalar processing unit that performs a scalar operation; a vector processing unit that performs a vector operation; and a storage unit, wherein the scalar processing unit loads data from the storage unit or stores data in the storage unit A program for functioning as a vector processing device that issues a first instruction packet or a second instruction packet indicating
The program causes the computer to
In the scalar processing unit,
An instruction packet buffer unit for storing a first instruction packet issued by the scalar processing unit;
A type of the first instruction packet and a second instruction packet issued after the first instruction packet is determined, and a first address designated by the first instruction packet and a second instruction packet are A buffer control unit that compares a second address to be designated and outputs an instruction to combine the first instruction packet and the second instruction packet;
A combining processor that combines the first instruction packet and the second instruction packet based on the output instruction;
Function as
The buffer control unit
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the instruction to combine, and stores the combined packet in the instruction packet buffer unit;
(B) a vector load instruction or a vector store instruction, and if the first address and the second address do not overlap, output the second instruction packet;
(C) A program that causes a scalar load instruction to output the second instruction packet when the first address and the second address do not match.
本発明によれば、命令パケットを制御することにより処理性能を向上させるのに好適なベクトル処理装置、ベクトル処理方法、及び、プログラムを提供することができる。 According to the present invention, it is possible to provide a vector processing device, a vector processing method, and a program suitable for improving processing performance by controlling an instruction packet.
1、9 ベクトル処理装置
11、91 スカラプロセッシング部
11a、91a L1キャッシュ
11b 命令バッファ部
11b1 アドレス比較・バッファ制御部
11b2 命令パケットバッファ部
11b3 結合処理部
12、92 ベクトルプロセッシング部
13、93 アドレス変換部
14、94 メモリネットワーク
15、95 メモリ
1, 9
Claims (5)
前記スカラ処理部は、
前記記憶部からデータをロードする命令あるいは前記記憶部にデータをストアする命令を示す第1の命令パケット及び第2の命令パケットを発行するものであって、
前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ部と、
前記第1の命令パケット及び当該第1の命令パケットの後に発行される前記第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、前記第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御部と、
前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理部と、
を備え、
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを前記第1の命令パケットとして命令パケットバッファ部に格納させ、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(b)ベクトルロード命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが一致する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(d)ベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させる
ことを特徴とするベクトル処理装置。 A vector processing apparatus comprising a scalar processing unit that performs a scalar operation, a vector processing unit that performs a vector operation, and a storage unit,
The scalar processing unit is
Issuing a first instruction packet and a second instruction packet indicating an instruction to load data from the storage unit or an instruction to store data in the storage unit;
An instruction packet buffer unit for storing a first instruction packet issued by the scalar processing unit;
It determines the type of the second command packet issued after said first command packet and the first instruction packet, the first address of the first instruction packet designated, the second instruction A buffer control unit that compares a second address specified by the packet and outputs an instruction to combine the first instruction packet and the second instruction packet;
A combining processor that combines the first instruction packet and the second instruction packet based on the output instruction;
With
The buffer control unit
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the combination instruction, the combined packet is stored in the instruction packet buffer unit as the first instruction packet , and the first address and the second address do not match , Outputting the first instruction packet, causing the second instruction packet to be stored in the instruction packet buffer unit as the first instruction packet,
(B) a vector load instruction, when said first address and said second address does not overlap, the second outputs an instruction packet, the second address and the first address duplicate If so, the first instruction packet is output, the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet,
(C) In the case of a scalar load instruction, when the first address and the second address do not match, the second instruction packet is output , and the first address and the second address match Output the first instruction packet, store the second instruction packet as the first instruction packet in the instruction packet buffer unit,
(D) In the case of a vector store instruction, when the first address and the second address do not overlap, the second instruction packet is output, and the first address and the second address overlap. In this case, the vector processing apparatus outputs the first instruction packet, and stores the second instruction packet in the instruction packet buffer unit as the first instruction packet .
前記第1の命令パケットが示す命令がベクトルロード命令、ベクトルストア命令、又は、スカラロード命令である場合、前記第1の命令パケットを出力する
ことを特徴とする請求項1に記載のベクトル処理装置。 The buffer control unit
The first command packet indicates instruction vector load instruction, vector store instruction, or, if a scalar load instruction, vector processing apparatus according to claim 1, wherein the outputting the first command packet .
ことを特徴とする請求項1又は2に記載のベクトル処理装置。 The buffer control unit measures an elapsed time after the instruction packet buffer unit stores the first instruction packet, and outputs the first instruction packet when the elapsed time exceeds a predetermined value. vector processing apparatus according to claim 1 or 2, characterized in that.
当該ベクトル処理方法は、
前記命令パケットバッファ部が、前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ工程と、
前記バッファ制御部が、前記第1の命令パケット及び当該第1の命令パケットの後に発行される前記第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、前記第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御工程と、
前記結合処理部が、前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理工程と、
を備え、
前記バッファ制御工程において、前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを前記第1の命令パケットとして命令パケットバッファ部に格納させ、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(b)ベクトルロード命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが一致する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(d)ベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させる
ことを特徴とするベクトル処理方法。 A scalar processing unit that performs a scalar operation; a vector processing unit that performs a vector operation; and a storage unit, wherein the scalar processing unit loads data from the storage unit or stores data in the storage unit The first instruction packet and the second instruction packet are issued, and the scalar processing unit includes an instruction packet buffer unit, a buffer control unit, and a combination processing unit. A vector processing method for
The vector processing method is
An instruction packet buffer step in which the instruction packet buffer unit stores a first instruction packet issued by the scalar processing unit;
The buffer control unit determines the type of the second command packet issued after said first command packet and the first instruction packet, the first address of the first instruction packet designated compares the second address the second instruction packet is specified, the buffer control step of outputting an instruction to combine said first instruction packet and said second instruction packet,
A combining processing step in which the combining processing unit combines the first instruction packet and the second instruction packet based on the output instruction;
With
In the buffer control step, the buffer control unit includes:
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the combination instruction, the combined packet is stored in the instruction packet buffer unit as the first instruction packet , and the first address and the second address do not match , Outputting the first instruction packet, causing the second instruction packet to be stored in the instruction packet buffer unit as the first instruction packet,
(B) a vector load instruction, when said first address and said second address does not overlap, the second outputs an instruction packet, the second address and the first address duplicate If so, the first instruction packet is output, the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet,
(C) In the case of a scalar load instruction, when the first address and the second address do not match, the second instruction packet is output , and the first address and the second address match Output the first instruction packet, store the second instruction packet as the first instruction packet in the instruction packet buffer unit,
(D) In the case of a vector store instruction, when the first address and the second address do not overlap, the second instruction packet is output, and the first address and the second address overlap. In this case, the vector instruction method outputs the first instruction packet and stores the second instruction packet in the instruction packet buffer unit as the first instruction packet .
スカラ演算を行うスカラ処理部と、ベクトル演算を行うベクトル処理部と、記憶部と、を備え、前記スカラ処理部は、前記記憶部からデータをロードする命令あるいは前記記憶部にデータをストアする命令を示す第1の命令パケット及び第2の命令パケットを発行する、ベクトル処理装置として機能させるプログラムであって、
前記プログラムは、前記コンピュータを、
前記スカラ処理部において、
前記スカラ処理部により発行される第1の命令パケットを格納する命令パケットバッファ部、
前記第1の命令パケット及び当該第1の命令パケットの後に発行される前記第2の命令パケットの種類を判別し、前記第1の命令パケットが指定する第1のアドレスと、前記第2の命令パケットが指定する第2のアドレスとを比較し、前記第1の命令パケットと前記第2の命令パケットとを結合する指示を出力するバッファ制御部、
前記出力された指示に基づき前記第1の命令パケットと前記第2の命令パケットとを結合する結合処理部、
として機能させ、
前記バッファ制御部は、
前記第1の命令パケットが示す命令がスカラストア命令であり、前記第2の命令パケットが示す命令が
(a)スカラストア命令であって、前記第1のアドレスと前記第2のアドレスが一致する場合、前記結合処理部に前記結合する指示を出力し、結合されたパケットを前記第1の命令パケットとして命令パケットバッファ部に格納させ、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(b)ベクトルロード命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(c)スカラロード命令であって、前記第1のアドレスと前記第2のアドレスが一致しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが一致する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させ、
(d)ベクトルストア命令であって、前記第1のアドレスと前記第2のアドレスが重複しない場合、前記第2の命令パケットを出力し、前記第1のアドレスと前記第2のアドレスが重複する場合、前記第1の命令パケットを出力し、前記第2の命令パケットを前記第1の命令パケットとして前記命令パケットバッファ部に格納させる
ように機能させることを特徴とするプログラム。 Computer
A scalar processing unit that performs a scalar operation; a vector processing unit that performs a vector operation; and a storage unit, wherein the scalar processing unit loads data from the storage unit or stores data in the storage unit A program for functioning as a vector processing device that issues a first instruction packet and a second instruction packet indicating
The program causes the computer to
In the scalar processing unit,
An instruction packet buffer unit for storing a first instruction packet issued by the scalar processing unit;
It determines the type of the second command packet issued after said first command packet and the first instruction packet, the first address of the first instruction packet designated, the second instruction A buffer control unit that compares a second address specified by the packet and outputs an instruction to combine the first instruction packet and the second instruction packet;
A combining processor that combines the first instruction packet and the second instruction packet based on the output instruction;
Function as
The buffer control unit
The instruction indicated by the first instruction packet is a scalar store instruction, the instruction indicated by the second instruction packet is (a) a scalar store instruction, and the first address matches the second address. The combination processing unit outputs the combination instruction, the combined packet is stored in the instruction packet buffer unit as the first instruction packet , and the first address and the second address do not match , Outputting the first instruction packet, causing the second instruction packet to be stored in the instruction packet buffer unit as the first instruction packet,
(B) a vector load instruction, when said first address and said second address does not overlap, the second outputs an instruction packet, the second address and the first address duplicate If so, the first instruction packet is output, the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet,
(C) In the case of a scalar load instruction, when the first address and the second address do not match, the second instruction packet is output , and the first address and the second address match Output the first instruction packet, store the second instruction packet as the first instruction packet in the instruction packet buffer unit,
(D) In the case of a vector store instruction, when the first address and the second address do not overlap, the second instruction packet is output, and the first address and the second address overlap. The first instruction packet is output, and the second instruction packet is stored in the instruction packet buffer unit as the first instruction packet.
Program for causing to function as.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011066124A JP5732953B2 (en) | 2011-03-24 | 2011-03-24 | Vector processing apparatus, vector processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011066124A JP5732953B2 (en) | 2011-03-24 | 2011-03-24 | Vector processing apparatus, vector processing method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012203544A JP2012203544A (en) | 2012-10-22 |
JP5732953B2 true JP5732953B2 (en) | 2015-06-10 |
Family
ID=47184516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011066124A Expired - Fee Related JP5732953B2 (en) | 2011-03-24 | 2011-03-24 | Vector processing apparatus, vector processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5732953B2 (en) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6429933A (en) * | 1987-07-25 | 1989-01-31 | Fujitsu Ltd | Store buffer controller for buffer storage system |
JP3013996B2 (en) * | 1989-09-14 | 2000-02-28 | 日本電気株式会社 | Information processing device |
JPH04112328A (en) * | 1990-09-03 | 1992-04-14 | Nec Corp | Degeneration control system for store instruction |
EP0651331B1 (en) * | 1993-10-18 | 2002-01-09 | National Semiconductor Corporation | A write buffer for a superpipelined, superscalar microprocessor |
JP4234361B2 (en) * | 2002-06-28 | 2009-03-04 | 富士通株式会社 | Storage control device and data storage method |
JP3988144B2 (en) * | 2004-02-23 | 2007-10-10 | 日本電気株式会社 | Vector processing device and overtaking control circuit |
US7606998B2 (en) * | 2004-09-10 | 2009-10-20 | Cavium Networks, Inc. | Store instruction ordering for multi-core processor |
-
2011
- 2011-03-24 JP JP2011066124A patent/JP5732953B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012203544A (en) | 2012-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3643507B2 (en) | Packet processing apparatus and packet processing method | |
JP5926754B2 (en) | Limited-range vector memory access instruction, processor, method, and system | |
JP6466388B2 (en) | Method and apparatus | |
CN107077329B (en) | Method and apparatus for implementing and maintaining a stack of predicate values | |
JP6633119B2 (en) | Autonomous memory method and system | |
JP3752224B2 (en) | Method and apparatus for processing instructions in a computer system | |
JP2015535955A (en) | Instruction set for message scheduling of SHA256 algorithm | |
JPH07500437A (en) | data processing system | |
TW202416123A (en) | Hardware processor and processor | |
CN108319559B (en) | Data processing apparatus and method for controlling vector memory access | |
JP2006338538A (en) | Stream processor | |
CN110908716B (en) | Method for implementing vector aggregation loading instruction | |
JP2017509064A (en) | Processor, method, system, and instructions for storing source elements in corresponding unmasked result elements that propagate to masked result elements | |
JP5287301B2 (en) | Descriptor transfer device, I / O controller, and descriptor transfer method | |
JP2007034392A (en) | Information processor and data processing method | |
JP2003196086A (en) | Register file by register window system and its control method | |
TW201823972A (en) | Vector generating instruction | |
JP2009301101A (en) | Inter-processor communication system, processor, inter-processor communication method and communication method | |
JP5732953B2 (en) | Vector processing apparatus, vector processing method, and program | |
US20090228692A1 (en) | Load Register Instruction Short Circuiting Method | |
JP2012150634A (en) | Vector instruction control circuit and overtaking control method for list vector | |
JP2002543490A (en) | Method and apparatus for exception handling used in program code conversion | |
JP2009199384A (en) | Data processing apparatus | |
JP2007048019A (en) | Emulation method, emulator, computer embedded device, and program for emulator | |
JP6347629B2 (en) | Instruction processing method and instruction processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141021 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141218 |
|
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: 20150317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150330 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5732953 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |