JP5505963B2 - Vector processing apparatus and vector operation processing method - Google Patents

Vector processing apparatus and vector operation processing method Download PDF

Info

Publication number
JP5505963B2
JP5505963B2 JP2009267385A JP2009267385A JP5505963B2 JP 5505963 B2 JP5505963 B2 JP 5505963B2 JP 2009267385 A JP2009267385 A JP 2009267385A JP 2009267385 A JP2009267385 A JP 2009267385A JP 5505963 B2 JP5505963 B2 JP 5505963B2
Authority
JP
Japan
Prior art keywords
data
vector
vector operation
instruction
pipe
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
Application number
JP2009267385A
Other languages
Japanese (ja)
Other versions
JP2011113183A (en
Inventor
秀之 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2009267385A priority Critical patent/JP5505963B2/en
Publication of JP2011113183A publication Critical patent/JP2011113183A/en
Application granted granted Critical
Publication of JP5505963B2 publication Critical patent/JP5505963B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はベクトル処理装置及びベクトル演算処理方法に関する。   The present invention relates to a vector processing device and a vector operation processing method.

近年、大量のベクトルデータを高速かつ正確に処理するために、さまざまな技術が開示されている。   In recent years, various techniques have been disclosed in order to process a large amount of vector data quickly and accurately.

特許文献1に記載のベクトル処理装置は、複数の演算パイプラインと接続するベクトルレジスタと、主記憶装置との間にデータバッファを配置している。当該ベクトル処理装置は、ベクトルレジスタからデータバッファに読み出されたデータ数をカウントし、カウントされたデータ数に基づいてベクトルユニットから主記憶装置に対するアクセス要求の送出を中断する。これにより、演算パイプラインの動作を停止する必要がある場合に、必要最小限のアクセス要求のみを中断させる。   In the vector processing device described in Patent Document 1, a data buffer is disposed between a vector register connected to a plurality of arithmetic pipelines and a main storage device. The vector processing device counts the number of data read from the vector register to the data buffer, and interrupts the transmission of an access request from the vector unit to the main memory based on the counted number of data. Thus, when it is necessary to stop the operation of the operation pipeline, only the minimum necessary access request is interrupted.

特許文献2に記載のベクトル処理装置は、ベクトルデータのメモリアクセス命令の発行時に、入力ポートの偶数入力ポートと奇数入力ポートについて、それぞれ出力ポートの競合調停を行うアービタを設ける。当該ベクトル処理装置は競合調停処理を分割したため、競合調停処理のスループットの低下を抑止する。   The vector processing device described in Patent Document 2 includes an arbiter that performs contention arbitration between output ports for even-numbered input ports and odd-numbered input ports when a vector data memory access instruction is issued. Since the vector processing apparatus divides the contention arbitration process, it suppresses a decrease in the throughput of the contention arbitration process.

特許文献3に記載のベクトル処理装置は、ベクトルデータの圧縮、拡張する変換命令を実現している。当該ベクトル処理装置は、ベクトルデータ要素数よりも少ない格納領域を有するデータバッファを設けている。当該ベクトル処理装置はベクトルデータ間の演算を必要としないもの、または演算結果が0になるもの等をデータから除外したベクトルデータをデータバッファに書き込む。上述の構成により、データバッファサイズを小さくすることを可能としている。   The vector processing device described in Patent Document 3 realizes a conversion instruction for compressing and expanding vector data. The vector processing apparatus is provided with a data buffer having a storage area smaller than the number of vector data elements. The vector processing apparatus writes vector data in which data that does not require calculation between vector data or data whose calculation result is 0 is excluded from data. With the above configuration, the data buffer size can be reduced.

特許文献4に記載のベクトル処理装置は、同期が必要なベクトル命令の処理の高速化を実現している。当該ベクトル処理装置は、ベクトルパイプライン演算部に割り当てられたベクトル要素の数を算出し、ベクトル命令の発行タイミングを事前に予測する。これにより、同期制御信号のやりとり等が不要となり、処理の高速化が図れる。   The vector processing device described in Patent Document 4 realizes high-speed processing of vector instructions that require synchronization. The vector processing device calculates the number of vector elements allocated to the vector pipeline operation unit, and predicts the issue timing of the vector instruction in advance. This eliminates the need for synchronization control signal exchange and the like, and speeds up the processing.

特開平6−168264号公報JP-A-6-168264 特開平9−6759号公報Japanese Patent Laid-Open No. 9-6759 特開2000−35958号公報JP 2000-35958 A 特開2000−222390号公報JP 2000-222390 A

しかしながら、上述のベクトル処理装置では、ベクトルレジスタからのデータの読み出し及び書き出しの処理が性能上の問題となる可能性がある。以下に詳細を説明する。   However, in the above-described vector processing apparatus, processing for reading and writing data from the vector register may cause a performance problem. Details will be described below.

一般にベクトル処理装置は、複数のベクトル処理ユニット(ベクトルパイプサブユニット)から構成される。ベクトルパイプサブユニットは、ベクトル演算処理を行うベクトル演算パイプを複数有する構成とできる。ベクトル演算パイプは、相互にベクトルデータの入出力をすることができる(以下の記載では、ベクトル演算パイプ間でデータの入出力が発生する処理をベクトルパイプ間動作命令と記載する。)。   In general, a vector processing apparatus is composed of a plurality of vector processing units (vector pipe subunits). The vector pipe subunit can have a plurality of vector operation pipes that perform vector operation processing. Vector operation pipes can mutually input and output vector data (in the following description, processing in which data input / output occurs between vector operation pipes is referred to as an inter-vector pipe operation instruction).

図8に本発明が解決しようとする課題の1つに関連するベクトル処理装置の構成を示す。ベクトル処理装置は、パイプ間クロスバユニット10と、ベクトルパイプサブユニット20と、信号線30と、を備える。ベクトルパイプユニット20は複数のベクトルパイプサブユニット200から構成される。ベクトルパイプサブユニット200は、ベクトル演算パイプ210を備える。   FIG. 8 shows the configuration of a vector processing apparatus related to one of the problems to be solved by the present invention. The vector processing apparatus includes an inter-pipe crossbar unit 10, a vector pipe subunit 20, and a signal line 30. The vector pipe unit 20 is composed of a plurality of vector pipe subunits 200. The vector pipe subunit 200 includes a vector operation pipe 210.

一般にベクトルパイプサブユニット200内のベクトル演算パイプ210の数が増えた場合、ベクトルパイプユニット20とパイプ間クロスバユニット10とを結ぶ信号線の数が増える。これにより、配線収容性が圧迫されることになり、LSI設計が困難になる。そこで、図8に示すようにベクトルパイプサブユニット200内のベクトル演算パイプ210が相互にベクトルデータ読み出しをインターリーブして行う(交互に行う)制御を行う。しかし、当該処理はインターリーブを行うことにより早期の処理終了が困難な傾向がある。   In general, when the number of vector operation pipes 210 in the vector pipe subunit 200 increases, the number of signal lines connecting the vector pipe unit 20 and the cross-pipe cross-bar unit 10 increases. This imposes pressure on the wiring capacity and makes LSI design difficult. Therefore, as shown in FIG. 8, the vector operation pipe 210 in the vector pipe subunit 200 performs control (interleaved) that interleaves vector data reading with each other. However, the process tends to be difficult to finish at an early stage by performing interleaving.

ある命令に基づいてベクトルパイプサブユニット内にあるベクトル演算パイプからのデータ読み出し処理を行っている間は、当該命令と関連するリソースへの処理は禁止される。そのため、インターリーブ制御により処理が長時間かかり、ベクトル演算パイプで処理すべき後続処理が待ち状態となり、全体の処理が遅延する恐れがある。   While data is being read from the vector operation pipe in the vector pipe subunit based on a certain instruction, processing on the resource associated with the instruction is prohibited. For this reason, processing takes a long time due to interleave control, and subsequent processing to be processed by the vector operation pipe enters a waiting state, which may delay the entire processing.

本発明は、このような問題点を解決するためになされたものであり、ベクトル処理装置内のベクトル演算命令がベクトルパイプ間動作命令により遅延する問題を解決したベクトル処理装置を提供することを目的とする。   The present invention has been made to solve such problems, and an object of the present invention is to provide a vector processing apparatus that solves the problem that a vector operation instruction in a vector processing apparatus is delayed by an operation instruction between vector pipes. And

本発明にかかるベクトル処理装置の一態様は、第1及び第2のベクトル演算パイプを備える第1の処理ユニットと、第2の処理ユニットと、前記第1の処理ユニットと前記第2の処理ユニットとの間でデータを転送できるよう構成されたデータ転送回路と、前記第1の処理ユニットと前記データ転送回路の間を接続するとともに、前記第1及び第2のベクトル演算パイプの出力データを前記データ転送回路に供給するため、又は前記データ転送回路から前記第1及び第2のベクトル演算パイプに入力データを供給するために使用される第1のデータパスと、を備え、前記第1の処理ユニットは、前記第1及び第2のベクトル演算パイプと前記第1のデータパスとの間に配置され、前記出力データ又は前記入力データを保持するデータバッファを備え、前記第1及び第2のベクトル演算パイプは、他方のベクトル演算パイプが前記データバッファへアクセス中であるか否か及び前記第1のデータパスが使用中であるか否かに依存することなく、前記データバッファにアクセス可能に構成されている、ものである。   One aspect of the vector processing apparatus according to the present invention includes a first processing unit including first and second vector operation pipes, a second processing unit, the first processing unit, and the second processing unit. A data transfer circuit configured to transfer data between the first processing unit and the data transfer circuit, and output data of the first and second vector operation pipes to the data transfer circuit. A first data path used for supplying data to the data transfer circuit or for supplying input data from the data transfer circuit to the first and second vector operation pipes. A unit is a data buffer arranged between the first and second vector operation pipes and the first data path, and holding the output data or the input data And the first and second vector operation pipes depend on whether the other vector operation pipe is accessing the data buffer and whether the first data path is in use. The data buffer is configured to be accessible.

本発明によれば、ベクトル処理装置内のベクトル演算命令がベクトルパイプ間動作命令により遅延する問題を解決することができる。   According to the present invention, it is possible to solve the problem that the vector operation instruction in the vector processing apparatus is delayed by the operation instruction between vector pipes.

実施の形態1にかかるベクトル処理装置のブロック図である。1 is a block diagram of a vector processing apparatus according to a first embodiment; 実施の形態1にかかるベクトル処理装置のブロック図である。1 is a block diagram of a vector processing apparatus according to a first embodiment; 実施の形態1にかかるベクトルパイプサブユニットの構成を示すブロック図である。It is a block diagram which shows the structure of the vector pipe subunit concerning Embodiment 1. FIG. 実施の形態1にかかるベクトルレジスタの構成を示すブロック図である。1 is a block diagram showing a configuration of a vector register according to a first embodiment. 実施の形態1にかかる発行制御部の構成を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration of an issue control unit according to the first exemplary embodiment. 実施の形態1にかかるベクトル処理装置の命令実行時の動作を示すタイミングチャートである。6 is a timing chart showing an operation at the time of instruction execution of the vector processing apparatus according to the first exemplary embodiment; 実施の形態1にかかるベクトル処理装置の命令実行時の動作を示すタイミングチャートである。6 is a timing chart showing an operation at the time of instruction execution of the vector processing apparatus according to the first exemplary embodiment; 本発明が解決しようとする課題の1つに関連するベクトル処理装置を示すブロック図である。It is a block diagram which shows the vector processing apparatus relevant to one of the problems which this invention tends to solve. 本発明が解決しようとする課題の1つに関連するベクトル処理装置の命令実行時の動作を示すタイミングチャートである。It is a timing chart which shows the operation | movement at the time of instruction execution of the vector processing apparatus relevant to one of the problems which this invention tends to solve.

実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。まず、図1を参照して、本実施の形態1にかかるベクトル処理装置の基本構成と、その動作の概略について説明する。
Embodiment 1
Embodiments of the present invention will be described below with reference to the drawings. First, the basic configuration of the vector processing apparatus according to the first embodiment and the outline of the operation will be described with reference to FIG.

ベクトル処理装置内にあるベクトルサブユニット200は、ベクトル演算パイプ210と、送信データバッファ220と、受信データバッファ230と、ベクトルデータ選択回路270と、を備える。ベクトル演算パイプ210のデータ入出力は、送信データバッファ220及び受信データバッファ230を用いて行う。ベクトル演算パイプ210は、対応する送信データバッファ220にベクトルデータを出力のみを行い、他の処理はベクトル演算パイプ210の外部で行う。すなわち、ベクトルデータ選択回路270が各送信データバッファ220に格納されたデータをインターリーブして出力する。   The vector subunit 200 in the vector processing apparatus includes a vector operation pipe 210, a transmission data buffer 220, a reception data buffer 230, and a vector data selection circuit 270. Data input / output of the vector operation pipe 210 is performed using the transmission data buffer 220 and the reception data buffer 230. The vector operation pipe 210 only outputs vector data to the corresponding transmission data buffer 220, and other processing is performed outside the vector operation pipe 210. That is, the vector data selection circuit 270 interleaves the data stored in each transmission data buffer 220 and outputs it.

図1に示したベクトル処理装置の構成により、ベクトル演算パイプ210はベクトル演算パイプ毎にベクトルデータの入出力のみを実行し、他の処理(インターリーブ処理等)はベクトル演算パイプ210の外部で行う。そのため、ベクトル演算パイプ210でのベクトルデータの入出力時間が短縮でき、ベクトル演算パイプ210内での後続の処理を早期に開始できる。   With the configuration of the vector processing apparatus shown in FIG. 1, the vector operation pipe 210 executes only input / output of vector data for each vector operation pipe, and other processing (interleave processing and the like) is performed outside the vector operation pipe 210. Therefore, the input / output time of vector data in the vector calculation pipe 210 can be shortened, and the subsequent processing in the vector calculation pipe 210 can be started early.

続いて、図2を参照して、本実施の形態1にかかるベクトル処理装置の基本構成について説明する。ベクトル処理装置は、パイプ間クロスバユニット10と、ベクトルパイプユニット20と、信号線30と、を備える。パイプ間クロスバユニット10は、ベクトルパイプサブユニット200間のデータ転送を行うための処理部である。   Next, a basic configuration of the vector processing apparatus according to the first embodiment will be described with reference to FIG. The vector processing apparatus includes an inter-pipe crossbar unit 10, a vector pipe unit 20, and a signal line 30. The inter-pipe crossbar unit 10 is a processing unit for performing data transfer between the vector pipe subunits 200.

ベクトルパイプユニット20は複数のベクトルパイプサブユニット200から構成される。ベクトルパイプサブユニット200は、ベクトル演算パイプ210と、送信データバッファ220と、受信データバッファ230と、を備える。ベクトルパイプサブユニット200は、複数(図中では2つ)のベクトル演算パイプ210を備える。ベクトルパイプサブユニット200はベクトル演算を行うための処理ユニットである。ベクトルパイプサブユニット200の詳細な構成は後述する。   The vector pipe unit 20 is composed of a plurality of vector pipe subunits 200. The vector pipe subunit 200 includes a vector operation pipe 210, a transmission data buffer 220, and a reception data buffer 230. The vector pipe subunit 200 includes a plurality (two in the figure) of vector operation pipes 210. The vector pipe subunit 200 is a processing unit for performing vector operations. The detailed configuration of the vector pipe subunit 200 will be described later.

信号線30は、ベクトルパイプサブユニット200と、パイプ間クロスバユニット10と、の間を結ぶ信号線である。信号線30は、ベクトルパイプサブユニット200からの出力データをパイプ間クロスバユニット10に入力するための信号線と、パイプ間クロスバユニット10からの出力データをベクトルパイプサブユニット200に入力するための信号線とを含む。   The signal line 30 is a signal line connecting between the vector pipe subunit 200 and the inter-pipe crossbar unit 10. The signal line 30 is a signal line for inputting the output data from the vector pipe subunit 200 to the cross-pipe crossbar unit 10 and a signal for inputting the output data from the cross-pipe crossbar unit 10 to the vector pipe subunit 200. Including lines.

続いて、図3を用いて、ベクトルパイプサブユニット200の詳細な構成を説明する。ベクトルパイプサブユニット200は、ベクトル演算パイプ210と、送信データバッファ220と、受信データバッファ230と、ベクトルデータ選択回路270と、を備える。   Next, a detailed configuration of the vector pipe subunit 200 will be described with reference to FIG. The vector pipe subunit 200 includes a vector operation pipe 210, a transmission data buffer 220, a reception data buffer 230, and a vector data selection circuit 270.

ベクトル演算パイプ210は、ベクトル命令の処理を行う。ベクトル命令の処理とは、ベクトルレジスタを読み出し、読み出した値を用いた演算を行い、演算結果をレジスタに書き込む、という一連の処理を示す。また、ベクトル演算パイプ210は、他のベクトル演算パイプ210にデータを出力する処理を行う場合、送信データバッファ220に送信データを書き込む。   The vector operation pipe 210 performs vector instruction processing. Vector instruction processing refers to a series of processing of reading a vector register, performing an operation using the read value, and writing the operation result to the register. Further, the vector operation pipe 210 writes transmission data in the transmission data buffer 220 when performing processing for outputting data to other vector operation pipes 210.

送信データバッファ220は、他のベクトル演算パイプ210にデータを出力する処理を行う場合に、出力データを一時的に記憶するためのデータバッファである。送信データバッファ220は、ベクトルパイプサブユニット200内の各ベクトル演算パイプ210と対応して配置される。受信データバッファ230は、パイプ間クロスバユニット10から入力されるデータを一時的に記憶するためのデータバッファである。受信データバッファ230は、ベクトルパイプサブユニット200内の各ベクトル演算パイプ210と対応して配置される。   The transmission data buffer 220 is a data buffer for temporarily storing output data when processing for outputting data to another vector operation pipe 210 is performed. The transmission data buffer 220 is arranged corresponding to each vector operation pipe 210 in the vector pipe subunit 200. The reception data buffer 230 is a data buffer for temporarily storing data input from the inter-pipe crossbar unit 10. The reception data buffer 230 is arranged corresponding to each vector operation pipe 210 in the vector pipe subunit 200.

ベクトルデータ選択回路270は、各受信データバッファ220から出力されたデータをインターリーブして、パイプ間クロスバユニット10に出力するための選択回路である。   The vector data selection circuit 270 is a selection circuit for interleaving the data output from each reception data buffer 220 and outputting it to the inter-pipe crossbar unit 10.

ベクトル演算パイプ210は、パイプ内クロスバ240と、ベクトルレジスタ250と、演算器260と、を備える。パイプ内クロスバ240は、演算器260から出力された値をベクトルレジスタ250に入力する。ベクトルレジスタ250は、演算器260の演算結果を一時的に記憶するレジスタであり、ベクトル演算パイプ210内に複数存在する(図3では、ベクトル演算パイプ210に対して8つのベクトルレジスタ250で構成されている)。演算器260は、ベクトル演算を行うための処理部である。   The vector operation pipe 210 includes an in-pipe crossbar 240, a vector register 250, and an arithmetic unit 260. The in-pipe crossbar 240 inputs the value output from the calculator 260 to the vector register 250. The vector register 250 is a register that temporarily stores the calculation result of the calculator 260, and a plurality of vector registers 250 exist in the vector calculation pipe 210 (in FIG. 3, the vector calculation pipe 210 includes eight vector registers 250). ing). The computing unit 260 is a processing unit for performing vector computation.

図4は、ベクトルレジスタ250の詳細を示す図である。ベクトルレジスタ250は、ベクトルレジスタ250へのデータ書き込みにかかるベクトルレジスタライトパスと、ベクトルレジスタ250からのデータ読み込みにかかるベクトルレジスタリードパスと、を有する。各ベクトルレジスタ250は、ベクトルレジスタ番号を持つ複数のレジスタから構成される。図4ではベクトルレジスタ250は、ベクトルレジスタ番号VR0、VR8、VR16、VR24、VR32、VR40、VR48、VR56を持つレジスタから構成されている。また、図4に示したベクトルレジスタ250とは異なるベクトルレジスタ250(例えば、図4に示したベクトルレジスタ250の隣に配置されているベクトルレジスタ250)は異なるベクトルレジスタ番号(例えばVR1等)を持つレジスタから構成される。ここで、同一のベクトルレジスタ250内にあるレジスタ(例えばVR0とVR8)からのデータ読み出しは、同一のベクトルレジスタリードパスを使用するため、競合関係(他方の処理を待たなければならない関係)となる。同様に、同一のベクトルレジスタ250内にあるレジスタ(例えばVR0とVR8)へのデータ書き込みは、同一のベクトルレジスタライトパスを使用するため、競合関係(他方の処理を待たなければならない関係)となる。(なお、以下の説明では、ベクトルレジスタ番号の差が8の倍数である場合には競合関係にあるものとする。)   FIG. 4 is a diagram showing details of the vector register 250. The vector register 250 has a vector register write path for writing data to the vector register 250 and a vector register read path for reading data from the vector register 250. Each vector register 250 includes a plurality of registers having vector register numbers. In FIG. 4, the vector register 250 is composed of registers having vector register numbers VR0, VR8, VR16, VR24, VR32, VR40, VR48, and VR56. Also, a vector register 250 different from the vector register 250 shown in FIG. 4 (for example, the vector register 250 arranged next to the vector register 250 shown in FIG. 4) has a different vector register number (for example, VR1). Consists of registers. Here, since data reading from registers (for example, VR0 and VR8) in the same vector register 250 uses the same vector register read path, there is a contention relationship (relationship that must wait for the other processing). . Similarly, writing data to registers (for example, VR0 and VR8) in the same vector register 250 uses the same vector register write path, and therefore has a conflicting relationship (relationship that must wait for the other process). . (In the following description, it is assumed that there is a competitive relationship when the difference between the vector register numbers is a multiple of 8.)

続いて、図5を用いてベクトル処理装置にベクトルデータの処理命令を発行する発行制御部400の構成を説明する。発行制御部400は、命令リクエストA格納部401と、命令リクエストB格納部402と、発行チェック回路A403と、発行チェック回路B404と、GOA405と、GOB406と、ビジーフラグ記憶部407と、ベクトルレジスタライトバスビジーフラグ記憶部408と、WSレジスタ409と、ベクトルレジスタライトパス使用抑止フラグ記憶部410と、VTBリード抑止フラグ411と、PXB命令2次リクエスト格納部412と、発行チェック回路C413と、RGO414と、を備える。   Next, the configuration of the issue control unit 400 that issues a vector data processing command to the vector processing device will be described with reference to FIG. The issue control unit 400 includes an instruction request A storage unit 401, an instruction request B storage unit 402, an issue check circuit A403, an issue check circuit B404, a GOA 405, a GOB 406, a busy flag storage unit 407, and a vector register write bus. A busy flag storage unit 408, a WS register 409, a vector register write path use inhibition flag storage unit 410, a VTB read inhibition flag 411, a PXB instruction secondary request storage unit 412, an issue check circuit C413, an RGO 414, Is provided.

命令リクエストA格納部401は、発行予定のベクトル命令を一時的に格納する格納部である。同様に、命令リクエストB格納部402は、発行予定のベクトル命令を一時的に格納する格納部である。   The instruction request A storage unit 401 is a storage unit that temporarily stores a vector instruction to be issued. Similarly, the instruction request B storage unit 402 is a storage unit that temporarily stores a vector instruction to be issued.

ビジーフラグ記憶部407は、各リソースの使用状態を示すビジーフラグを記憶する。ただし、ビジーフラグにはベクトルレジスタ250のベクトルレジスタライトパスの使用状況に関する状態の情報は含まない。ベクトルレジスタライトパスビジーフラグ記憶部408は、ベクトルレジスタ250内のベクトルレジスタライトパスの使用状況に関する状態を示すベクトルレジスタライトパスビジーフラグを記憶する。   The busy flag storage unit 407 stores a busy flag indicating the usage state of each resource. However, the busy flag does not include state information regarding the usage status of the vector register write path of the vector register 250. The vector register write path busy flag storage unit 408 stores a vector register write path busy flag indicating a state relating to the usage status of the vector register write path in the vector register 250.

発行チェック回路A403は、命令リクエストA格納部401に格納された命令リクエストの内容をチェックする。そして、発行チェック回路A403は、命令リクエストに応じて使用するリソースの状態をビジーフラグ記憶部407に問い合わせる。発行チェック回路A403は、当該リソースが使用状態か否かのチェック結果をGOA405に書き込む。発行チェック回路A403は、リソースの使用状況が空き状態であれば発行すべき命令をGOA405に通知する。ここで、発行チェック回路A403は、ベクトルレジスタ250への書き込みを含む処理(VMV命令等)の場合、命令を分離して(一次命令、二次命令)、ベクトルレジスタ250への書き込み以外の命令(一次命令)をGOA405に通知する。たとえばVMV命令であれば、一次命令とは、VMV命令のうちベクトルレジスタ250への書き込み処理の前段階での処理(ベクトルレジスタ250からパイプ間クロスバユニット10への書き出し等)の命令であり、二次命令はベクトルレジスタ250への書き込みを指示する命令である。また、発行チェック回路A403は、二次命令をPXB命令2次リクエスト格納部412に格納する。   The issue check circuit A 403 checks the contents of the instruction request stored in the instruction request A storage unit 401. Then, the issue check circuit A403 inquires the busy flag storage unit 407 about the state of the resource to be used in response to the instruction request. The issue check circuit A403 writes a check result on whether or not the resource is in use in the GOA 405. The issue check circuit A403 notifies the GOA 405 of an instruction to be issued if the resource usage status is empty. Here, in the case of processing including writing to the vector register 250 (VMV instruction or the like), the issue check circuit A 403 separates the instructions (primary instruction and secondary instruction) and issues instructions other than writing to the vector register 250 ( Primary instruction) is notified to the GOA 405. For example, in the case of a VMV instruction, the primary instruction is an instruction of processing (such as writing from the vector register 250 to the inter-pipe crossbar unit 10) in the stage before the writing process to the vector register 250 in the VMV instruction. The next instruction is an instruction to instruct writing to the vector register 250. Further, the issue check circuit A403 stores the secondary instruction in the PXB instruction secondary request storage unit 412.

発行チェック回路B404は、命令リクエストB格納部402に格納された命令リクエストの内容をチェックする。そして、発行チェック回路B404は、命令リクエストに応じて使用するリソースの状態をビジーフラグ記憶部407に問い合わせる。発行チェック回路B404は、当該リソースが使用状態か否かのチェック結果をGOB406に書き込む。発行チェック回路B404は、リソースの使用状況が空き状態であれば発行すべき命令をGOB406に通知する。ここで、発行チェック回路B404は、発行チェック回路A403と同様に、ベクトルレジスタ250への書き込みを含む処理(VMV命令等)を分離して一次命令をGOB406に通知する。   The issue check circuit B 404 checks the content of the instruction request stored in the instruction request B storage unit 402. Then, the issue check circuit B404 inquires the busy flag storage unit 407 about the state of the resource to be used in response to the instruction request. The issue check circuit B404 writes a check result on whether or not the resource is in use in the GOB 406. The issue check circuit B404 notifies the GOB 406 of an instruction to be issued if the resource usage status is empty. Here, similarly to the issue check circuit A 403, the issue check circuit B 404 separates processing (such as a VMV instruction) including writing to the vector register 250 and notifies the GOB 406 of the primary instruction.

GOA405は、発行チェック回路A403によるリソースのチェック結果が書き込まれるレジスタである。また、GOA405を管理する処理部は、リソースのチェック結果の書き込みと同時に全てのベクトル演算パイプ210にベクトル命令の実行指示を発行する。   The GOA 405 is a register in which a resource check result by the issue check circuit A403 is written. The processing unit managing the GOA 405 issues a vector instruction execution instruction to all the vector operation pipes 210 at the same time as writing the resource check result.

GOB406は、発行チェック回路B404によるリソースのチェック結果が書き込まれるレジスタである。また、GOB406を管理する処理部は、リソースのチェック結果の書き込みと同時に全てのベクトル演算パイプ210にベクトル命令の実行指示を発行する。   The GOB 406 is a register in which a resource check result by the issue check circuit B 404 is written. The processing unit that manages the GOB 406 issues an instruction to execute a vector instruction to all the vector operation pipes 210 at the same time as writing the resource check result.

WSレジスタ409は、制御信号であるVTBライトスタート信号を格納するレジスタである。VTBライトスタート信号は、ベクトルパイプ間命令動作時に、ベクトルデータがパイプ間クロスバユニット10から受信データバッファ230に書き込まれることを通知する制御信号である。   The WS register 409 is a register that stores a VTB write start signal that is a control signal. The VTB write start signal is a control signal for notifying that vector data is written from the inter-pipe crossbar unit 10 to the reception data buffer 230 during an inter-vector pipe instruction operation.

ベクトルレジスタライトパス使用抑止フラグ記憶部410は、ベクトルレジスタ250内のベクトルレジスタライトパスの使用を抑止するか否かを示すベクトルレジスタライトパス使用抑止フラグを記憶する。ベクトルレジスタライトパス使用抑止フラグは、VTBライトスタート信号が入力された場合、他の命令によりベクトルレジスタライトパスが使用されることを禁止するために更新される。   The vector register write path use inhibition flag storage unit 410 stores a vector register write path use inhibition flag indicating whether or not to inhibit use of the vector register write path in the vector register 250. When a VTB write start signal is input, the vector register write path use inhibition flag is updated to prohibit the use of the vector register write path by another instruction.

VTBリード抑止フラグ記憶部411は、受信データバッファ230の読み込みを抑止するか否かを示すVTBリード抑止フラグを記憶する。VTBリード抑止フラグは、ベクトルデータがパイプ間クロスバユニット10から入力されるベクトルデータが受信バッファ230に格納される前に受信バッファ230を読み出すことを禁止するために用いられる。


The VTB read inhibition flag storage unit 411 stores a VTB read inhibition flag indicating whether or not to inhibit reading of the reception data buffer 230. VTB read inhibition flag is used to prohibit reading the receive buffer 230 before vector data vector data is inputted from the inter-pipe crossbar unit 10 is stored in the receive buffer 230.


PXB命令2次リクエスト格納部412は、命令リクエストA格納部401又は命令リクエストB格納部402に格納された命令リクエストがベクトル間動作命令である場合、ベクトルレジスタ250にベクトルデータを書き込むために必要な命令リクエスト(二次命令)を格納する。   The PXB instruction secondary request storage unit 412 is necessary for writing vector data in the vector register 250 when the instruction request stored in the instruction request A storage unit 401 or the instruction request B storage unit 402 is an inter-vector operation instruction. Stores an instruction request (secondary instruction).

発行チェック回路C413は、受信データバッファ230からベクトルレジスタ250に書き込みを行う場合に動作する。発行チェック回路C413は、PXB命令2次リクエスト格納部412に格納された命令リクエストに対応するベクトルレジスタライトパスビジーフラグと、VTBリード抑止フラグと、WSレジスタ409の値と、をチェックする。発行チェック回路C413は、チェック結果をRGO414に書き込む。   The issue check circuit C413 operates when writing from the received data buffer 230 to the vector register 250. The issue check circuit C413 checks the vector register write pass busy flag corresponding to the instruction request stored in the PXB instruction secondary request storage unit 412, the VTB read inhibition flag, and the value of the WS register 409. The issue check circuit C413 writes the check result in the RGO 414.

RGO414は、発行チェック回路C413によるチェック結果を書き込むためのレジスタである。また、RGO414を管理する処理部は、発行チェック回路C413によるチェック結果の書き込みと同時に、全てのベクトル演算パイプ210に受信データバッファ230からベクトルレジスタ250へのデータ書き込みの実行を指示する。   The RGO 414 is a register for writing the check result by the issue check circuit C413. The processing unit that manages the RGO 414 instructs all the vector operation pipes 210 to execute data writing from the reception data buffer 230 to the vector register 250 simultaneously with the writing of the check result by the issue check circuit C413.

続いて、本実施の形態にかかるベクトル処理装置が以下の2つのベクトルパイプ間動作命令(VMV:パイプ間ムーブ命令、VADD:ベクトル加算命令、VR:ベクトルレジスタ番号、S:定数)を実行した際の動作について説明する。
(1) VMV VRm←VRn
(2) VADD VRo←Sy+VRp
Subsequently, when the vector processing apparatus according to the present embodiment executes the following two vector pipe operation instructions (VMV: move instruction between pipes, VADD: vector addition instruction, VR: vector register number, S: constant) Will be described.
(1) VMV VRm ← VRn
(2) VADD VRo ← Sy + VRp

まず、VMV命令を発行した後に、VADD命令を発行した際の本実施の形態にかかるベクトル処理装置の一般的な動作を以下に説明する。まず、VMV命令は、命令リクエストA格納部401に格納される。発行チェック回路A403は、当該VMV命令が使用するリソースの使用状況をチェックする。具体的には、発行チェック回路A403は、ビジーフラグ記憶部407と、ベクトルレジスタライトパスビジーフラグ記憶部408と、ベクトルレジスタライトパス使用抑止フラグ記憶部410と、をチェックしてリソースの使用状況を確認する。   First, a general operation of the vector processing apparatus according to the present embodiment when a VADD instruction is issued after a VMV instruction is issued will be described below. First, the VMV instruction is stored in the instruction request A storage unit 401. The issue check circuit A403 checks the usage status of resources used by the VMV instruction. Specifically, the issue check circuit A403 checks the busy flag storage unit 407, the vector register write path busy flag storage unit 408, and the vector register write path use inhibition flag storage unit 410 to confirm the resource usage status. To do.

発行チェック回路A403は、リソースの使用状況が空き状態であればVMV命令をGOA405に設定するとともに、GOA403を介してVMV命令の処理開始をベクトルパイプサブユニット200に命令する(一次命令発行)。すなわち、発行チェック回路A403はVMV命令をベクトルレジスタ250への書き込みの前段階の処理(ベクトルレジスタ250からパイプ間クロスバユニット10への書き出し等)の命令(一次命令)を発行する。また、VMV命令の処理開始と同時に、ビジーフラグ記憶部407に格納されたビジーフラグの値を更新する。これにより、当該VMV命令で使用するリソースに対する後続命令の発行を抑止する。また、VMV命令を構成する命令のうち、ベクトルレジスタ250へのベクトルデータ書き込み処理に必要な情報(二次命令)をPXB命令2次リクエスト格納部412に格納する。   The issue check circuit A403 sets the VMV instruction in the GOA 405 if the resource usage status is empty, and instructs the vector pipe subunit 200 to start processing the VMV instruction via the GOA 403 (issue primary instruction). That is, the issue check circuit A 403 issues an instruction (primary instruction) of a process (such as writing from the vector register 250 to the cross-pipe crossbar unit 10) in the previous stage of writing the VMV instruction to the vector register 250. Simultaneously with the start of processing of the VMV instruction, the value of the busy flag stored in the busy flag storage unit 407 is updated. As a result, issuance of subsequent instructions to resources used in the VMV instruction is suppressed. In addition, information (secondary instruction) necessary for writing vector data into the vector register 250 among the instructions constituting the VMV instruction is stored in the PXB instruction secondary request storage unit 412.

ベクトル演算パイプ210によるVMV命令の実行が終了した後に、パイプ間クロスバユニット10はWSレジスタ409にVTBライトスタート信号を入力する。WSレジスタ409にVTBライトスタート信号が入力された場合、ベクトルレジスタライトパス使用抑止フラグ記憶部410内のベクトルレジスタライトパス使用抑止フラグを更新する。ベクトルレジスタライトパス使用抑止フラグの更新により、当該VMV命令とは異なる命令によるベクトルレジスタ250への書き込みが抑止された状態になる。これは、パイプ間クロスバユニット10から入力されたデータを入力先のベクトルレジスタ250に書き込むための準備である。   After the execution of the VMV instruction by the vector operation pipe 210 is completed, the inter-pipe crossbar unit 10 inputs a VTB write start signal to the WS register 409. When the VTB write start signal is input to the WS register 409, the vector register write path use inhibition flag in the vector register write path use inhibition flag storage unit 410 is updated. By updating the vector register write path use inhibition flag, writing to the vector register 250 by an instruction different from the VMV instruction is inhibited. This is preparation for writing data input from the cross-pipe crossbar unit 10 into the input destination vector register 250.

パイプ間クロスバユニット10は、出力先のベクトル演算パイプ210に対応した受信データバッファ230にベクトルデータを書き込む。ここで、受信データバッファ230からベクトル演算パイプ210への書き込みのタイミングは、VTBリード抑止フラグ記憶部411内のVTBリード抑止フラグにより管理される。   The inter-pipe crossbar unit 10 writes vector data to the reception data buffer 230 corresponding to the output destination vector operation pipe 210. Here, the timing of writing from the reception data buffer 230 to the vector operation pipe 210 is managed by the VTB read inhibition flag in the VTB read inhibition flag storage unit 411.

発行チェック回路C413は、ベクトル間クロスバユニット10から受信データバッファ230に入力されたベクトルデータをベクトル演算パイプ210に入力できるか否かをチェックする。言い換えると、発行チェック回路C413は、当該入力処理にかかるリソースが空き状態か否かをチェックする。発行チェック回路C413は、ベクトルレジスタライトパスビジーフラグ記憶部408に格納されたベクトルレジスタライトパスビジーフラグと、VTBリード抑止フラグ記憶部411に格納されたVTBリード抑止フラグと、WSレジスタ409の保持する値とをチェックする。ここで、ベクトルレジスタライトパスビジーフラグは、PXB命令2次リクエスト格納部412に格納した命令リクエストに関連するベクトルレジスタ250についての使用状況についてチェックする。   The issue check circuit C413 checks whether the vector data input from the inter-vector crossbar unit 10 to the reception data buffer 230 can be input to the vector operation pipe 210. In other words, the issue check circuit C413 checks whether or not the resource related to the input process is free. The issue check circuit C413 holds the vector register write pass busy flag stored in the vector register write pass busy flag storage unit 408, the VTB read suppression flag stored in the VTB read suppression flag storage unit 411, and the WS register 409. Check the value. Here, the vector register write pass busy flag checks the usage status of the vector register 250 related to the instruction request stored in the PXB instruction secondary request storage unit 412.

発行チェック回路C413は、リソースの使用状況が空き状態であれば受信データバッファ230からベクトル演算パイプ210への書き込み命令をRGO414に書き込む。また、発行チェック回路C413は、RGO414への書き込みとともに、受信データバッファ230からベクトル演算パイプ210へのベクトルデータの書き込み命令を発行する(二次命令発行)。さらに、PXB2次リクエスト格納部412内に格納されたPXB2次リクエストに対応するリソースにかかるベクトルレジスタライトパスビジーフラグを設定する。ベクトルレジスタライトパスビジーフラグの設定により、同一リソースに対する後続命令の実行を抑止する。加えて、RGO414の設定の後に、ベクトルレジスタライトパス使用抑止フラグ記憶部410と、WSレジスタ409の値と、をリセットする。   The issuance check circuit C413 writes a write command from the reception data buffer 230 to the vector operation pipe 210 in the RGO 414 if the resource usage status is empty. In addition, the issue check circuit C413 issues an instruction to write vector data from the received data buffer 230 to the vector operation pipe 210 along with writing to the RGO 414 (secondary instruction issue). Further, a vector register write path busy flag is set for the resource corresponding to the PXB secondary request stored in the PXB secondary request storage unit 412. Execution of subsequent instructions for the same resource is suppressed by setting the vector register write pass busy flag. In addition, after the RGO 414 is set, the vector register write path use inhibition flag storage unit 410 and the value of the WS register 409 are reset.

後続のVADD命令は、命令リクエストB格納部402に格納される。発行チェック回路B404は、当該VMV命令が使用するリソースの対応状況をチェックする。具体的には、発行チェック回路B404は、ビジーフラグ記憶部407と、ベクトルレジスタライトパスビジーフラグ記憶部408と、ベクトルレジスタライトパス使用抑止フラグ記憶部410と、をチェックしてリソースの使用状況を確認する。   Subsequent VADD instructions are stored in the instruction request B storage unit 402. The issue check circuit B404 checks the correspondence status of resources used by the VMV instruction. Specifically, the issue check circuit B404 checks the busy flag storage unit 407, the vector register write path busy flag storage unit 408, and the vector register write path use inhibition flag storage unit 410 to confirm the resource usage status. To do.

発行チェック回路B404は、リソースの使用状況が空き状態であればVADD命令をGOB406に設定するとともに、VADD命令の処理開始を命令する。ここで、VADD命令はVMV命令の後続命令であるが、使用するリソースが空き状態であれば命令発行の時点でVADD命令の実行を開始する。また、VADD命令の処理開始と同時に、ビジーフラグ記憶部407に格納されたビジーフラグの値と、ベクトルレジスタライトパスビジーフラグ記憶部408に格納されたベクトルレジスタライトパスビジーフラグの値と、を更新する。一般にVADD命令はVMV命令に比べて処理時間が短い。そのため、VMV命令実行後に待ち状態とならずに直ちにVADD命令が発行された場合、VADD命令はVMV命令よりも先に終了する場合がある。すなわち、VADD命令の実行はVMV命令の実行を追い越した形で終了する。   The issuance check circuit B404 sets the VADD instruction in the GOB 406 if the resource usage state is empty, and instructs the start of processing of the VADD instruction. Here, the VADD instruction is a subsequent instruction of the VMV instruction, but if the resource to be used is empty, execution of the VADD instruction is started when the instruction is issued. Simultaneously with the processing start of the VADD instruction, the value of the busy flag stored in the busy flag storage unit 407 and the value of the vector register write pass busy flag stored in the vector register write pass busy flag storage unit 408 are updated. In general, the processing time of the VADD instruction is shorter than that of the VMV instruction. For this reason, if the VADD instruction is issued immediately after the execution of the VMV instruction without waiting, the VADD instruction may end before the VMV instruction. That is, the execution of the VADD instruction is finished in a manner that overtakes the execution of the VMV instruction.

次に、図6を用いて、本実施の形態にかかるベクトル処理装置がVMV命令と、VADD命令を実行した際の処理について説明する。図6は以下の命令を実行した際のタイミングチャートである。VR0とVR8は、ベクトルレジスタ250への書き込みについて競合関係となる。なお、図中のマシンサイクルとは、クロックと同義である。
(1) VMV VR0←VR14
(2) VADD VR8←Sy+VR7
Next, processing when the vector processing apparatus according to the present embodiment executes the VMV instruction and the VADD instruction will be described with reference to FIG. FIG. 6 is a timing chart when the following instructions are executed. VR0 and VR8 are in a competitive relationship for writing to the vector register 250. The machine cycle in the figure is synonymous with clock.
(1) VMV VR0 ← VR14
(2) VADD VR8 ← Sy + VR7

最初に発行制御部400はVMV命令を一次発行する(S1)。この場合に、当該VMV命令に関連するリソースの使用を抑止するビジーフラグを設定する。当該一次発行にかかる命令ではベクトルレジスタ250への書き込みは行わないため、ベクトルレジスタライトパスビジーフラグは設定しない。   First, the issue control unit 400 primarily issues a VMV command (S1). In this case, a busy flag that suppresses the use of resources related to the VMV instruction is set. Since the instruction relating to the primary issue does not write to the vector register 250, the vector register write pass busy flag is not set.

その後、全てのベクトル演算パイプ210が処理状態となり、ベクトル演算パイプ210はベクトルデータを読み出す(S11)。当該読み出す処理は、インターリーブを要することのない処理である。そのため、当該処理は短い時間での終了が可能である。ベクトル演算パイプ210は、読み出したベクトルデータを送信データバッファ220に格納する(S12)。パイプ間クロスバユニット10は、送信バッファ220のリード制御に基づいて送信データバッファ220を読み出す。ここで、ベクトルパイプサブユニット200は2つのベクトル演算パイプ210を備えるため、送信データバッファ220のリード制御にはデータのインターリーブを考慮する。パイプ間クロスバユニット10は、それぞれのベクトルパイプサブユニット200からベクトルデータを取得し、処理を行う(S14)。   Thereafter, all the vector operation pipes 210 enter the processing state, and the vector operation pipe 210 reads vector data (S11). The reading process is a process that does not require interleaving. Therefore, the process can be completed in a short time. The vector operation pipe 210 stores the read vector data in the transmission data buffer 220 (S12). The inter-pipe crossbar unit 10 reads the transmission data buffer 220 based on the read control of the transmission buffer 220. Here, since the vector pipe subunit 200 includes two vector operation pipes 210, data interleaving is considered in the read control of the transmission data buffer 220. The inter-pipe crossbar unit 10 acquires vector data from each vector pipe subunit 200 and performs processing (S14).

一方、VADD命令は、VMV命令の一次発行終了後に実行が開始される(S2)。これは、VR0とVR8が同一のベクトルレジスタライトパスを使用する競合関係であってもベクトルレジスタライトパスビジーフラグが設定されていないため、VADD命令を実行可能と判断されるためである。VADD命令の実行では、ベクトル演算パイプ210からのベクトルデータの読み出しと、ベクトルデータの加算処理と、ベクトル演算パイプ210へのベクトルデータの書き込みとが実行される。   On the other hand, execution of the VADD instruction is started after the primary issue of the VMV instruction is completed (S2). This is because it is determined that the VADD instruction can be executed because the vector register write path busy flag is not set even if VR0 and VR8 are in a competitive relationship using the same vector register write path. In the execution of the VADD instruction, reading of vector data from the vector operation pipe 210, addition processing of vector data, and writing of vector data to the vector operation pipe 210 are executed.

パイプ間クロスバユニット10からのVTBライトスタート信号がWSレジスタ409に入力される。ここで、ベクトルレジスタライトパス使用抑止フラグと、VTBリード抑止フラグも同時に設定する。その後、ベクトル間クロスバユニット10は、受信データバッファ230にベクトルデータを書き込む(S15)。受信データバッファ230のデータの読み出しが可能となった時点で、VTBリード抑止フラグがリセットされる(S16)。発行チェック回路C413は、ベクトルレジスタライトパスビジーフラグと、VTBリード抑止フラグと、WSレジスタ409の値とをチェックする。発行チェック回路C413は、VMV命令の二次発行が可能であることをチェックし、チェック後に受信データバッファ230に格納されたベクトルデータをベクトルレジスタ250に書き込むこと指示する命令を発行する(VMV二次発行)。VMV二次発行をした場合には、ベクトルレジスタライトパス使用抑止フラグをリセットする。また、ベクトルレジスタライトビジーフラグを設定し、同一ベクトルレジスタライトパスの使用を抑止する。   A VTB write start signal from the cross pipe unit 10 between pipes is input to the WS register 409. Here, the vector register write path use inhibition flag and the VTB read inhibition flag are set simultaneously. After that, the inter-vector crossbar unit 10 writes vector data to the reception data buffer 230 (S15). When the data in the reception data buffer 230 can be read, the VTB read inhibition flag is reset (S16). The issue check circuit C413 checks the vector register write pass busy flag, the VTB read inhibition flag, and the value of the WS register 409. The issue check circuit C413 checks that the secondary issue of the VMV instruction is possible, and issues an instruction instructing to write the vector data stored in the reception data buffer 230 into the vector register 250 after the check (VMV secondary) Issue). When the VMV secondary issue is issued, the vector register write path use inhibition flag is reset. In addition, the vector register write busy flag is set to suppress the use of the same vector register write path.

上述のように、ベクトル演算パイプ210のベクトルデータの読み出し、書き込み(VR Read、VR Write)はデータの読み書きのみの処理で処理を終了できる。これは、各ベクトル演算パイプ210が送信データバッファ220及び受信データバッファ230を用いてデータを送受信することによるため、ベクトル演算パイプ210がインターリーブ処理を行う必要がないためである。   As described above, vector data read / write (VR Read, VR Write) of the vector operation pipe 210 can be completed by a process of only reading and writing data. This is because each vector operation pipe 210 transmits and receives data using the transmission data buffer 220 and the reception data buffer 230, and therefore the vector operation pipe 210 does not need to perform interleaving processing.

また、上述のようにベクトルレジスタライトパスビジーフラグによりベクトルレジスタ250への書き込みを制御している。本実施の形態にかかる命令発行部400は、VMV命令をベクトルレジスタ250への書き込みが発生しない1次命令とベクトルレジスタ250への書き込みが生じる2次命令に分離して発行する。ベクトルレジスタライトパスビジーフラグは、2次命令の発行時のみしか使用中として設定されない。これにより、先行するVMV命令がベクトルレジスタ250への書き込み処理を行っていない間に後続のVADD命令を終了することができ、効率的なベクトル演算処理が実現されている。   Further, as described above, the writing to the vector register 250 is controlled by the vector register write pass busy flag. The instruction issuing unit 400 according to the present embodiment issues the VMV instruction separately into a primary instruction that does not cause writing to the vector register 250 and a secondary instruction that causes writing to the vector register 250. The vector register write pass busy flag is set as in use only when a secondary instruction is issued. Thus, the succeeding VADD instruction can be completed while the preceding VMV instruction is not performing the writing process to the vector register 250, and an efficient vector operation process is realized.

次に、図7を用いて、本実施の形態にかかるベクトル処理装置が以下のVMV命令と、VADD命令を実行した際の処理について説明する。図7は以下の命令を実行した際のタイミングチャートである。VR6とVR14は、ベクトルレジスタ250からの読み出しについて競合関係となる。なお、ベクトルレジスタ250の書き込みについては競合関係にないため、図7及び以下の説明では、ベクトルレジスタ250への書き込み処理にかかる記載は省略する。
(1) VMV VR0←VR14
(2) ' VADD VR4←VR6+VR7
Next, processing when the vector processing apparatus according to the present embodiment executes the following VMV instruction and VADD instruction will be described with reference to FIG. FIG. 7 is a timing chart when the following instructions are executed. VR6 and VR14 are in a competitive relationship for reading from the vector register 250. Note that since writing to the vector register 250 is not in a competitive relationship, the description relating to the writing processing to the vector register 250 is omitted in FIG. 7 and the following description.
(1) VMV VR0 ← VR14
(2) 'VADD VR4 ← VR6 + VR7

最初に発行制御部400はVMV命令の一次命令を発行する(S1)。この場合に、当該VMV命令に関連するリソースの使用を抑止するビジーフラグを設定する。その後、全てのベクトル演算パイプ210が処理状態となり、ベクトル演算パイプ210はベクトルデータを読み出す(S11)。当該読み出す処理は、インターリーブを要することのない処理である。そのため、当該処理は短い時間での終了が可能である。当該読み出し処理の実行中は、ベクトルレジスタリードパスビジーフラグが設定され、他の命令による読み出し処理が禁止される。ベクトル演算パイプ210は、読み出したベクトルデータを送信データバッファ220に格納する(S12)。   First, the issue control unit 400 issues a primary instruction of the VMV instruction (S1). In this case, a busy flag that suppresses the use of resources related to the VMV instruction is set. Thereafter, all the vector operation pipes 210 enter the processing state, and the vector operation pipe 210 reads vector data (S11). The reading process is a process that does not require interleaving. Therefore, the process can be completed in a short time. During the execution of the read process, the vector register read pass busy flag is set, and read processes by other instructions are prohibited. The vector operation pipe 210 stores the read vector data in the transmission data buffer 220 (S12).

パイプ間クロスバユニット10は、送信バッファ220のリード制御に基づいて送信データバッファ220を読み出す。ここで、ベクトルパイプサブユニット200は2つのベクトル演算パイプ210を備えるため、送信データバッファ220のリード制御にはデータのインターリーブの処理を要する。パイプ間クロスバユニット10は、それぞれのベクトルパイプサブユニット200からベクトルデータを取得し、処理を行う(S14)。   The inter-pipe crossbar unit 10 reads the transmission data buffer 220 based on the read control of the transmission buffer 220. Here, since the vector pipe subunit 200 includes two vector operation pipes 210, read control of the transmission data buffer 220 requires data interleaving processing. The inter-pipe crossbar unit 10 acquires vector data from each vector pipe subunit 200 and performs processing (S14).

一方、VADD命令は、先行するVMV命令とベクトルレジスタリードパスの競合(V6とV14)がある。そのため、VADD命令はベクトルレジスタリードパスビジーフラグがリセットした後に発行可能となる。ここで、VMV命令のベクトルデータの読み出し処理(S11)は、インターリーブを要することのない処理のため、早期の処理終了が可能である。そのため、VADD命令は、VMV命令の発行から早期に発行される。以降の処理は、図6に示すものと同様のため、説明は省略する。   On the other hand, the VADD instruction has a conflict (V6 and V14) between the preceding VMV instruction and the vector register read path. Therefore, the VADD instruction can be issued after the vector register read pass busy flag is reset. Here, the vector data read process (S11) of the VMV instruction is a process that does not require interleaving, so that the process can be completed at an early stage. Therefore, the VADD instruction is issued early from the issue of the VMV instruction. The subsequent processing is the same as that shown in FIG.

上述のように、送信データバッファ220を備えたことにより、ベクトルデータの読み出し処理(S11)がインターリーブを要することのない処理のため、早期の処理終了が可能である。よって、ベクトルレジスタの読み込みについて競合関係にある場合であっても、ベクトルデータの読み出し処理後に後続の命令が実行可能となる。   As described above, since the transmission data buffer 220 is provided, the vector data read processing (S11) does not require interleaving, so that early processing can be completed. Therefore, even if there is a competitive relationship regarding the reading of the vector register, the subsequent instruction can be executed after the vector data reading process.

続いて、本実施の形態にかかるベクトル処理装置との比較のため、図9に本発明が解決しようとする課題の1つに関連するベクトル処理装置の構成(図8)においてベクトルレジスタ250の読み込み処理及び書き込み処理の競合がある場合の動作を示す。本実施の形態にかかるベクトル処理装置ではベクトルレジスタからの読み込み処理はインターリーブ処理を行うため、相当の処理時間を要する(図中の(1))。そのため、ベクトルレジスタリードパスが競合している場合、本実施の形態にかかるベクトル処理装置ではVADD命令の実行開始が遅れる。   Subsequently, for comparison with the vector processing apparatus according to the present embodiment, FIG. 9 shows reading of the vector register 250 in the configuration of the vector processing apparatus (FIG. 8) related to one of the problems to be solved by the present invention. The operation in the case where there is contention between the processing and the writing processing is shown. In the vector processing apparatus according to the present embodiment, since the reading process from the vector register performs an interleaving process, a considerable processing time is required ((1) in the figure). Therefore, when the vector register read paths are in conflict, the vector processing apparatus according to the present embodiment delays the start of execution of the VADD instruction.

ベクトルレジスタライトパスが競合している場合、VMV命令発行時からベクトルレジスタライトパスビジーフラグが設定される。実際のベクトルレジスタへの書き込み処理は、パイプ間クロスバユニット10からベクトルレジスタへの書き込み(S13)の時点で実行される。しかし、他の命令によるVMV命令発行時点からベクトルレジスタの書き込みはVMV命令発行時点から禁止された状態となる。これは、VMV命令を一の命令として発行しているため、ベクトルレジスタライトパスビジーフラグが長時間書き変わらないことに起因する。   When the vector register write path is in conflict, the vector register write path busy flag is set from the time when the VMV instruction is issued. The actual writing process to the vector register is executed at the time of writing from the cross-pipe crossbar unit 10 to the vector register (S13). However, the writing of the vector register from the time when the VMV instruction is issued by another instruction is prohibited from the time when the VMV instruction is issued. This is because the VMV instruction is issued as one instruction, and the vector register write pass busy flag is not rewritten for a long time.

以下に本実施の形態にかかるベクトル処理装置による効果についてまとめる。図6及び図7の例で示したように、送信データバッファ220及び受信データバッファ230をベクトルパイプサブユニット200内に設けたことにより、ベクトル演算パイプ210からのベクトルデータの読み出し、書き出しが早期に終了する。これは、ベクトル演算パイプ210毎に出力先を設け、ベクトル演算パイプ210での処理を早期に終了できるようにしたためである。これにより、通常インターリーブ処理の時間もかかっていた処理が短縮できる。ベクトル演算パイプ210からのベクトルデータの読み出し、書き出しの時間が短縮されることにより、後続の命令を開始できるタイミングが早まり、処理時間の短縮につながる。   The effects of the vector processing apparatus according to this embodiment will be summarized below. As shown in the examples of FIGS. 6 and 7, by providing the transmission data buffer 220 and the reception data buffer 230 in the vector pipe subunit 200, reading and writing of vector data from the vector operation pipe 210 can be performed at an early stage. finish. This is because an output destination is provided for each vector calculation pipe 210 so that the processing in the vector calculation pipe 210 can be completed early. As a result, processing that normally takes time for interleaving processing can be shortened. Since the time for reading and writing vector data from the vector operation pipe 210 is shortened, the timing at which the subsequent instruction can be started is accelerated, and the processing time is shortened.

また、図6に示したように、ベクトルレジスタライトパスビジーフラグによりベクトルレジスタ250への書き込みを制御している。本実施の形態にかかる命令発行部400は、VMV命令をベクトルレジスタ250への書き込みが発生しない1次命令とベクトルレジスタ250への書き込みが生じる2次命令に分離して発行する。ベクトルレジスタライトパスビジーフラグは、2次命令の発行時のみしか使用中として設定されない。これにより、先行するVMV命令がベクトルレジスタ250への書き込み処理を行っていない間に後続のVADD命令を終了することができ、効率的なベクトル演算処理が実現されている。   Further, as shown in FIG. 6, the writing to the vector register 250 is controlled by the vector register write pass busy flag. The instruction issuing unit 400 according to the present embodiment issues the VMV instruction separately into a primary instruction that does not cause writing to the vector register 250 and a secondary instruction that causes writing to the vector register 250. The vector register write pass busy flag is set as in use only when a secondary instruction is issued. Thus, the succeeding VADD instruction can be completed while the preceding VMV instruction is not performing the writing process to the vector register 250, and an efficient vector operation process is realized.

なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。   Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.

10 パイプ間クロスバユニット
20 ベクトルパイプユニット
200 ベクトルパイプサブユニット
210 ベクトル演算パイプ
220 送信データバッファ
230 受信データバッファ
240 パイプ内クロスバ
250 ベクトルレジスタ
260 演算器
270 ベクトルデータ選択回路
30 信号線
400 発行制御部
401 命令リクエストA格納部
402 命令リクエストB格納部
403 発行チェック回路A
404 発行チェック回路B
405 GOA
406 GOB
407 ビジーフラグ記憶部
408 ベクトルレジスタライトパスビジーフラグ記憶部
409 WSレジスタ
410 ベクトルレジスタライトパス使用抑止フラグ記憶部
411 VTBリード抑止フラグ記憶部
412 PXB命令2次リクエスト格納部
413 発行チェック回路C
414 RGO
10 pipe crossbar unit 20 vector pipe unit 200 vector pipe subunit 210 vector operation pipe 220 transmission data buffer 230 reception data buffer 240 pipe crossbar 250 vector register 260 operator 270 vector data selection circuit 30 signal line 400 issuance control unit 401 instruction Request A storage unit 402 Instruction request B storage unit 403 Issue check circuit A
404 Issue check circuit B
405 GOA
406 GOB
407 Busy flag storage unit 408 Vector register write path busy flag storage unit 409 WS register 410 Vector register write path use inhibition flag storage unit 411 VTB read inhibition flag storage unit 412 PXB instruction secondary request storage unit 413 Issue check circuit C
414 RGO

Claims (10)

第1及び第2のベクトル演算パイプを備える第1の処理ユニットと、
第2の処理ユニットと、
前記第1の処理ユニットと前記第2の処理ユニットとの間でデータを転送できるよう構成されたデータ転送回路と、
前記第1の処理ユニットと前記データ転送回路の間を接続するとともに、前記第1及び第2のベクトル演算パイプの出力データを前記データ転送回路に供給するため、又は前記データ転送回路から前記第1及び第2のベクトル演算パイプに入力データを供給するために使用される第1のデータパスと、
を備え、
前記第1の処理ユニットは、前記第1及び第2のベクトル演算パイプと前記第1のデータパスとの間に配置され、前記出力データ又は前記入力データを保持するデータバッファを備え、
前記第1及び第2のベクトル演算パイプは、他方のベクトル演算パイプが前記データバッファへアクセス中であるか否か及び前記第1のデータパスが使用中であるか否かに依存することなく、前記データバッファにアクセス可能に構成されており、
前記データバッファは、前記第1のベクトル演算パイプと前記第1のデータパスの間に配置された第1のデータバッファと、前記第2のベクトル演算パイプと前記第1のデータパスの間に配置された第2のデータバッファとを備える、
ベクトル演算処理装置。
A first processing unit comprising first and second vector operation pipes;
A second processing unit;
A data transfer circuit configured to transfer data between the first processing unit and the second processing unit;
The first processing unit and the data transfer circuit are connected and output data of the first and second vector operation pipes are supplied to the data transfer circuit or from the data transfer circuit. And a first data path used to provide input data to a second vector operation pipe;
With
The first processing unit includes a data buffer disposed between the first and second vector operation pipes and the first data path, and holding the output data or the input data.
The first and second vector operation pipes do not depend on whether the other vector operation pipe is accessing the data buffer and whether the first data path is in use, The data buffer is configured to be accessible ;
The data buffer is arranged between the first data operation pipe and the first data path, and between the second vector operation pipe and the first data path. A second data buffer provided,
Vector arithmetic processing unit.
前記第1のデータバッファは、前記第1のベクトル演算パイプの出力データを保持するよう構成され、
前記第2のデータバッファは、前記第2のベクトル演算パイプの出力データを保持するよう構成され、
前記第1の処理ユニットは、前記第1のデータバッファ又は前記第2のデータバッファに保持されたデータを選択的に前記第1のデータパスに供給する選択回路をさらに備える、請求項に記載のベクトル演算処理装置。
The first data buffer is configured to hold output data of the first vector operation pipe;
The second data buffer is configured to hold output data of the second vector operation pipe;
The first processing unit further includes a selection circuit for supplying to said first data buffer or said data held in the second data buffer selectively the first data path, according to claim 1 Vector arithmetic processing unit.
前記第1の処理ユニットは、前記第1のベクトル演算パイプに命令を発行する発行制御部をさらに備え、
前記第1のベクトル演算パイプは、当該演算パイプでの演算に使用されるデータ及び演算結果データを格納する第1のレジスタを備え、
前記第1のデータバッファは、前記第1のベクトル演算パイプへの入力データを保持するよう構成され、
前記発行制御部は、前記第1のデータバッファを介する前記データ転送回路から前記第1のレジスタへのデータ書き込みをもたらす先行命令を前記第1のベクトル演算パイプが実行中であるか否かに依存することなく、前記先行命令の実行に起因する前記データ転送回路から前記第1のデータバッファへのデータ転送および前記第1のデータバッファから前記第1のレジスタへのデータ転送がともに行われていないことを条件として、後続命令を前記第1のベクトル演算パイプに発行する、
請求項に記載のベクトル演算処理装置。
The first processing unit further includes an issue control unit that issues an instruction to the first vector operation pipe,
The first vector operation pipe includes a first register for storing data used for operation in the operation pipe and operation result data,
The first data buffer is configured to hold input data to the first vector operation pipe;
The issuance control unit depends on whether or not the first vector operation pipe is executing a preceding instruction that causes data to be written from the data transfer circuit via the first data buffer to the first register. Without being performed, neither data transfer from the data transfer circuit to the first data buffer nor data transfer from the first data buffer to the first register due to execution of the preceding instruction is performed. A subsequent instruction is issued to the first vector operation pipe on the condition that
The vector operation processing apparatus according to claim 1 .
前記第1のレジスタへのデータ書き込みを行うためのライトパスが使用中であるか否かを示す第1のフラグと、
前記データ転送回路から前記第1のデータバッファにデータ転送を行うための前記第1のデータパスが使用中であるか否かを示す第2のフラグと、
をさらに備え、
前記発行制御部は、前記第1及び第2のフラグを参照することで、前記データ転送回路から前記第1のデータバッファへのデータ転送および前記第1のデータバッファから前記第1のレジスタへのデータ転送がともに行われていないことを判定する、請求項に記載のベクトル演算処理装置。
A first flag indicating whether or not a write path for writing data to the first register is in use;
A second flag indicating whether or not the first data path for transferring data from the data transfer circuit to the first data buffer is in use;
Further comprising
The issuance control unit refers to the first and second flags to transfer data from the data transfer circuit to the first data buffer and from the first data buffer to the first register. The vector operation processing apparatus according to claim 3 , wherein it is determined that neither data transfer is performed.
前記発行制御部は、前記第1のフラグがセットされておらず、かつ前記データ転送回路から前記第1のデータバッファへのデータ転送が開始されている場合、
前記データバッファから前記第1のレジスタへのデータ転送を開始させるとともに、前記第1のフラグをセットする、請求項に記載のベクトル演算処理装置。
The issuance control unit, when the first flag is not set and data transfer from the data transfer circuit to the first data buffer is started,
The vector operation processing device according to claim 4 , wherein data transfer from the data buffer to the first register is started and the first flag is set.
前記第2のフラグは、前記データ転送回路から前記第1の処理ユニットに供給され、前記データ転送回路から前記第1のデータバッファへのデータ転送の開始を示す制御信号に応じて設定される、請求項または請求項に記載のベクトル演算処理装置。 The second flag is supplied from the data transfer circuit to the first processing unit, and is set according to a control signal indicating the start of data transfer from the data transfer circuit to the first data buffer. The vector arithmetic processing apparatus according to claim 4 or 5 . 前記データバッファは、前記第1及び第2のベクトル演算パイプによる前記出力データの出力と、前記第1のデータパスへの前記出力データの転送とを独立化する請求項1乃至請求項のいずれか1項に記載のベクトル演算処理装置。 The data buffer, said output data output by said first and second vector operation pipes, any of claims 1 to 6 independent of the transfer of the output data to said first data path The vector operation processing device according to claim 1. 前記データバッファは、前記第1のデータパスから前記データバッファへの前記入力データの供給と、前記データバッファから前記第1及び第2のベクトル演算パイプに対する前記入力データの供給とを独立化する請求項1乃至請求項のいずれか1項に記載のベクトル演算処理装置。 The data buffer separates the supply of the input data from the first data path to the data buffer and the supply of the input data from the data buffer to the first and second vector operation pipes. The vector arithmetic processing apparatus of any one of Claim 1 thru | or 6 . 前記データ転送回路は、クロスバスイッチである、請求項1乃至請求項のいずれか1項に記載のベクトル演算処理装置。 It said data transfer circuit is a crossbar switch, the vector processing apparatus according to any one of claims 1 to 8. 第1及び第2のベクトル演算パイプを備える第1の処理ユニットと、
第2の処理ユニットと、
前記第1の処理ユニットと前記第2の処理ユニットとの間でデータを転送できるよう構成されたデータ転送回路と、
前記第1の処理ユニットと前記データ転送回路の間を接続するとともに、前記第1及び第2のベクトル演算パイプの出力データを前記データ転送回路に供給するため、又は前記データ転送回路から前記第1及び第2のベクトル演算パイプに入力データを供給するために使用される第1のデータパスと、
を備えたベクトル処理装置における処理方法であって、
前記第1の処理ユニットは、前記第1及び第2のベクトル演算パイプと前記第1のデータパスとの間に配置され、前記出力データ又は前記入力データを保持するデータバッファを備え、
前記データバッファは、前記第1のベクトル演算パイプと前記第1のデータパスの間に配置された第1のデータバッファと、前記第2のベクトル演算パイプと前記第1のデータパスの間に配置された第2のデータバッファとを備え、
前記第1及び第2のベクトル演算パイプは、他方のベクトル演算パイプが前記データバッファへアクセス中であるか否か及び前記第1のデータパスが使用中であるか否かに依存することなく、前記データバッファにアクセスするベクトル演算処理方法。
A first processing unit comprising first and second vector operation pipes;
A second processing unit;
A data transfer circuit configured to transfer data between the first processing unit and the second processing unit;
The first processing unit and the data transfer circuit are connected and output data of the first and second vector operation pipes are supplied to the data transfer circuit or from the data transfer circuit. And a first data path used to provide input data to a second vector operation pipe;
A processing method in a vector processing device comprising:
The first processing unit includes a data buffer disposed between the first and second vector operation pipes and the first data path, and holding the output data or the input data.
The data buffer is arranged between the first data operation pipe and the first data path, and between the second vector operation pipe and the first data path. A second data buffer,
The first and second vector operation pipes do not depend on whether the other vector operation pipe is accessing the data buffer and whether the first data path is in use, A vector operation processing method for accessing the data buffer.
JP2009267385A 2009-11-25 2009-11-25 Vector processing apparatus and vector operation processing method Expired - Fee Related JP5505963B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009267385A JP5505963B2 (en) 2009-11-25 2009-11-25 Vector processing apparatus and vector operation processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009267385A JP5505963B2 (en) 2009-11-25 2009-11-25 Vector processing apparatus and vector operation processing method

Publications (2)

Publication Number Publication Date
JP2011113183A JP2011113183A (en) 2011-06-09
JP5505963B2 true JP5505963B2 (en) 2014-05-28

Family

ID=44235488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009267385A Expired - Fee Related JP5505963B2 (en) 2009-11-25 2009-11-25 Vector processing apparatus and vector operation processing method

Country Status (1)

Country Link
JP (1) JP5505963B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167084A (en) * 1999-12-08 2001-06-22 Nec Kofu Ltd Vector operation processor and vector data moving method

Also Published As

Publication number Publication date
JP2011113183A (en) 2011-06-09

Similar Documents

Publication Publication Date Title
US11188497B2 (en) Configuration unload of a reconfigurable data processor
JP4801725B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP2004158018A (en) Layout system for semiconductor floor plan of register renaming circuit
KR20130024860A (en) High priority command queue for peripheral component
JP4836488B2 (en) Data transfer device and semiconductor integrated circuit device
JPH06103494B2 (en) Vector processor control system
WO2015194133A1 (en) Arithmetic device, arithmetic device control method, and storage medium in which arithmetic device control program is recorded
US7913013B2 (en) Semiconductor integrated circuit
JP2013206095A (en) Data processor and control method for data processor
JP2003271574A (en) Data communication method for shared memory type multiprocessor system
JP2006313479A (en) Semiconductor integrated circuit device and data transfer method
JP5505963B2 (en) Vector processing apparatus and vector operation processing method
US8713216B2 (en) Processor and data transfer method
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US10996954B2 (en) Calculation processing apparatus and method for controlling calculation processing apparatus
JP6432348B2 (en) Arithmetic apparatus and arithmetic method
JP6978670B2 (en) Arithmetic processing unit and control method of arithmetic processing unit
US8316215B2 (en) Vector processor with plural arithmetic units for processing a vector data string divided into plural register banks accessed by read pointers starting at different positions
US8072882B1 (en) Method and apparatus for a graceful flow control mechanism in a TDM-based packet processing architecture
WO2018138975A1 (en) Computation processing device and information processing system
JP6303632B2 (en) Arithmetic processing device and control method of arithmetic processing device
US20230409323A1 (en) Signal processing apparatus and non-transitory computer-readable storage medium
JP2011118744A (en) Information processor
JP2009104494A (en) Vector processor
JP2005038185A (en) Vector processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121010

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140313

R150 Certificate of patent or registration of utility model

Ref document number: 5505963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees