JP2009251724A - Vector processor controller - Google Patents
Vector processor controller Download PDFInfo
- Publication number
- JP2009251724A JP2009251724A JP2008096037A JP2008096037A JP2009251724A JP 2009251724 A JP2009251724 A JP 2009251724A JP 2008096037 A JP2008096037 A JP 2008096037A JP 2008096037 A JP2008096037 A JP 2008096037A JP 2009251724 A JP2009251724 A JP 2009251724A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- data
- information
- pipelines
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
Description
本発明は、ベクトルプロセッサ制御装置に係り、特に複数の演算処理を並行的に行う計算機において、1つの演算命令で複数のデータを同時に演算処理する演算機構の効率的な処理に関する。 The present invention relates to a vector processor control apparatus, and more particularly to efficient processing of an arithmetic mechanism that performs arithmetic processing on a plurality of data simultaneously with one arithmetic instruction in a computer that performs a plurality of arithmetic processings in parallel.
大量の演算処理を高速に実行する計算機として、複数のデータ要素からなるベクトルデータをベクトル演算器で処理するベクトルプロセッサが知られている。ベクトルプロセッサは、最低1つのベクトル演算パイプラインを備えており、ベクトル演算パイプラインの中では、ベクトルデータの各データ要素が次々とベクトル演算器に供給され、供給データが途切れない限り演算が連続的に実行される。 As a computer that executes a large amount of arithmetic processing at high speed, a vector processor that processes vector data composed of a plurality of data elements with a vector arithmetic unit is known. The vector processor has at least one vector operation pipeline. In the vector operation pipeline, each data element of the vector data is supplied to the vector calculator one after another, and the calculation is continuous unless the supplied data is interrupted. To be executed.
ベクトル演算を高速に行う方法としては、図2のように、複数のベクトル演算パイプラインを備え、1つのベクトル演算命令によりそれら複数の演算パイプラインがそれぞれ別のデータ要素を同時に演算処理することで実現される。図2の例では、例えば、演算パイプライン109,119,129〜139まで8個の演算パイプラインを持つ。これによれば、ベクトルデータが途切れずに供給されれば、演算パイプラインが1個の場合に比べて演算パイプライン数倍に近い演算性能を発揮できる。
As a method of performing vector operations at high speed, as shown in FIG. 2, a plurality of vector operation pipelines are provided, and each of the plurality of operation pipelines simultaneously calculates different data elements by one vector operation instruction. Realized. In the example of FIG. 2, for example, there are eight
ベクトル演算命令を実行する際には、演算処理の対象であるベクトルデータのデータ要素数すなわちベクトル長が、何らかの方法で決定される。一般にプログラム中の1個の1次元配列データ、または、配列データ中のある範囲等がベクトルデータとして処理されるが、そのデータ要素数がベクトルレジスタの保持可能なデータ要素数を超える場合には、ソフトウェアまたはハードウェアによりベクトルレジスタの保持可能なデータ要素数づつに区切って処理される。また、プログラムが処理しようとするデータ要素数が、ベクトルレジスタの保持可能なデータ要素数より小さい場合には、区切られずに処理される。
この種のベクトル処理装置として、例えば、特許文献1(特開平3−6662公報)に開示されてものが知られている。
When a vector operation instruction is executed, the number of data elements of vector data, that is, the vector length, which is the object of the operation process, is determined by some method. In general, one one-dimensional array data in a program or a certain range in the array data is processed as vector data. When the number of data elements exceeds the number of data elements that can be held in the vector register, Processing is performed by dividing the number of data elements that can be held in the vector register by software or hardware. If the number of data elements to be processed by the program is smaller than the number of data elements that can be stored in the vector register, the data elements are processed without being divided.
As this type of vector processing apparatus, for example, one disclosed in Patent Document 1 (Japanese Patent Laid-Open No. 3-6662) is known.
1つのベクトル演算命令でP個の演算パイプライン(Pは1以上の整数)を使用して演算項数×P個のデータ要素に対するP個の演算処理を同時に行う要素並列処理方式のベクトルプロセッサにおいて、ベクトル長N(Nは1以上の整数)が演算パイプライン数Pの倍数でない場合、図3に示すように、演算パイプラインにデータが供給されず、演算が行われない時間が発生することがあり、その結果、演算処理速度が低下する。 In an element parallel processing vector processor that simultaneously performs P arithmetic processing on the number of arithmetic terms × P data elements using P arithmetic pipelines (P is an integer of 1 or more) with one vector arithmetic instruction When the vector length N (N is an integer greater than or equal to 1) is not a multiple of the operation pipeline number P, as shown in FIG. 3, there is a time during which no operation is performed because no data is supplied to the operation pipeline. As a result, the calculation processing speed decreases.
図3は、演算パイプライン数P=8、ベクトル長N=50のベクトル演算命令を演算命令1、演算命令2のように続けて複数実行する例である。この場合、1つの演算命令において、最初から最後の1つ前までの時間は8個の演算パイプラインが同時に演算処理を行うが、各命令の最後の時間に301,302のように演算対象データ要素のない区間が発生する。そのため、演算パイプライン109,119は演算を行うが、129〜139で示される6個の演算パイプラインは演算処理を行わない。その結果、本例の場合の演算実行率は100%でなく、
50÷(切り上げ(50÷8))×8=50/56
に低下する。
FIG. 3 shows an example in which a plurality of vector operation instructions having the number of operation pipelines P = 8 and a vector length N = 50 are executed in succession, such as
50 ÷ (round up (50 ÷ 8)) × 8 = 50/56
To drop.
本発明の目的は、複数の演算パイプラインを持つベクトルプロセッサにおいて、演算データが供給されない区間を減少させることにより演算実行率の低下を防ぎ、演算処理速度を向上させることである。 An object of the present invention is to prevent a decrease in the operation execution rate by reducing a section in which operation data is not supplied in a vector processor having a plurality of operation pipelines, and to improve the operation processing speed.
本発明は、好ましは、複数のベクトルレジスタバンクに保持されるベクトルデータを、1つのベクトル演算命令で複数の演算パイプラインを使用して並行的に演算処理するベクトルプロセッサにおいて、演算対象のベクトルデータのデータ要素数が、1つの命令で同時に動作する演算パイプライン数の整数倍でないときに発生する、一部の演算パイプラインに演算対象データがある一方で演算パイプラインの演算対象データがない区間に、次の命令のデータと演算制御情報を送り込むことを特徴とするベクトルプロセサ制御装置として構成される。 The present invention is preferably a vector processor that performs arithmetic processing on vector data held in a plurality of vector register banks in parallel using a plurality of operation pipelines with a single vector operation instruction. Occurs when the number of data elements in the data is not an integral multiple of the number of operation pipelines that operate simultaneously with one instruction. Some operation pipelines have operation target data, but there are no operation target data in the operation pipeline. It is configured as a vector processor control device characterized in that the next instruction data and calculation control information are sent to the section.
好ましい例では、前記ベクトルレジスタバンクから読み出された各データ要素が入るべき前記演算パイプラインを選択する複数のデータ要素選択部と、各ベクトルレジスタのデータ要素0が何れのベクトルレジスタバンクに入っているか示す情報を保持する要素0位置情報保持部と、ベクトル長を示す情報を保持するベクトル長保持部と、該要素0位置情報保持部に保持される該情報と、該ベクトル長保持部の情報を用いて、該データ要素選択部を制御するための制御情報を生成するデータ要素選択情報生成部と、を有する前記ベクトルプロセサ制御装置として構成される。 In a preferred example, a plurality of data element selection units for selecting the operation pipeline into which each data element read from the vector register bank is to enter, and a data element 0 of each vector register enter any vector register bank. The element 0 position information holding unit for holding information indicating whether or not, the vector length holding unit for holding information indicating the vector length, the information held in the element 0 position information holding unit, and the information of the vector length holding unit And a data element selection information generation unit that generates control information for controlling the data element selection unit.
また、好ましくは、前記データ要素選択情報生成部は、ベクトル長を命令毎に積算加算し演算パイプライン数で割った余りと、演算に使用するベクトルレジスタの要素0位置情報から前記制御情報を求め、かつ、該制御情報を用いて何れの演算パイプラインが何れの演算命令を行うべきか判定して、各該演算パイプラインに前記演算制御情報を与える前記ベクトルプロセサ制御装置として構成される。 Preferably, the data element selection information generation unit obtains the control information from a remainder obtained by adding and summing the vector length for each instruction and dividing by the number of operation pipelines, and element 0 position information of a vector register used for the operation. In addition, the vector processor control device is configured to determine which operation pipeline should execute which operation instruction using the control information, and supply the operation control information to each operation pipeline.
本発明はまた、表現形式を変えれば、複数のベクトルレジスタバンクに保持されるベクトルデータを、1つのベクトル演算命令で複数の演算パイプラインを使用して並行的に演算処理するベクトルプロセッサにおいて、該ベクトルレジスタバンクと該演算パイプラインの間にデータ要素を選択する機構を設け、データ要素が入るべき該演算パイプラインを選択することで、演算データが無いために演算の行われない該演算パイプラインに次の命令の演算対象データを入れることを特徴とするベクトルプロセサ制御装置として構成される。 According to another aspect of the present invention, there is provided a vector processor that performs arithmetic processing of vector data held in a plurality of vector register banks in parallel using a plurality of operation pipelines with a single vector operation instruction. By providing a mechanism for selecting a data element between the vector register bank and the operation pipeline, and selecting the operation pipeline into which the data element is to be inserted, the operation pipeline in which no operation is performed because there is no operation data Is configured as a vector processor control device characterized in that the operation target data of the next instruction is entered in.
本発明によれば、複数の演算パイプラインを持つベクトルプロセッサにおいて、演算データが供給されない区間を減少させることにより演算実行率の低下を防ぎ、演算処理速度を向上させることができる。 According to the present invention, in a vector processor having a plurality of operation pipelines, it is possible to prevent a decrease in an operation execution rate by reducing a section in which operation data is not supplied and to improve an operation processing speed.
以下、図面を参照して、本発明の一実施例について説明する。
図1において、ベクトルプロセッサは、8個の演算パイプライン109,119,129〜139と、演算で使用されるベクトルデータを保持するための8個のベクトルレジスタバンク100〜130を備える。
An embodiment of the present invention will be described below with reference to the drawings.
In FIG. 1, the vector processor includes eight
各ベクトルレジスタバンク100〜130のレジスタを選択するために、それぞれ複数のレジスタ選択部101〜104、111〜114、121〜124、131〜134(以下101〜134と示す)が設けられる。ベクトル演算命令によってあるベクトルレジスタが選択されると、関係するレジスタ選択部101〜134は対応するレジスタを選択する。選択されたレジスタから読み出されたベクトルデータは演算パイプライン109〜139へ供給され、その演算結果は命令で指定されたベクトルレジスタに格納される。
In order to select the registers of the
図1は二項演算を行う構造の例である。そのために、1つのベクトルレジスタバンク例えばベクトルレジスタバンク0(100)に2個ずつのレジスタ選択部101,103があり、2個の入力オペランドを同時に演算パイプラインに供給している。一般にベクトルレジスタは、ベクトルプロセッサでない計算機のレジスタと同様に数個から数十個有り、それぞれのベクトルレジスタが数十個から数百個のデータ要素を保持することができる。図1の例では、それぞれ64個のデータ要素を保持できるベクトルレジスタが32個有る。
FIG. 1 is an example of a structure for performing a binary operation. For this purpose, there are two
本発明の実施例に特徴的なことは、1つのベクトル演算命令の最後の演算実行と次のベクトル演算命令の最初の演算実行を同時に行うことを可能とするために、ベクトルレジスタバンク100〜130から読み出すベクトルレジスタを選択するレジスタ選択部101〜134を、図3の例の2倍の個数用意する。また、ベクトルレジスタバンク100,110,120,130とベクトル演算パイプライン109,119,129,139との間にデータ要素選択部105,106,115,116,125,126,135,136を設け、ベクトルレジスタバンクから読み出された各データ要素が入るべき演算パイプラインを選択できるようにする。
What is characteristic of the embodiment of the present invention is that the
更に、要素0位置情報保持部150に各ベクトルレジスタのデータ要素0がどのベクトルレジスタバンクに入っているかを保持し、この情報とベクトル長保持部140に保持されているベクトル長の情報を用いて、データ要素選択情報生成部160でデータ要素選択部の制御情報161を生成し、各データ要素選択部105,106,115,116,125,126,135,136を制御する。データ要素選択情報生成部160はまた、演算結果を書き込むベクトルレジスタの要素0位置情報162を生成し、要素0位置情報保持部150に書き込む。 Furthermore, the element 0 position information holding unit 150 holds which vector register bank contains the data element 0 of each vector register, and uses this information and the vector length information held in the vector length holding unit 140. The data element selection information generation unit 160 generates control information 161 for the data element selection unit, and controls each data element selection unit 105, 106, 115, 116, 125, 126, 135, 136. The data element selection information generation unit 160 also generates the element 0 position information 162 of the vector register into which the calculation result is written, and writes the element 0 position information 162 in the element 0 position information holding unit 150.
データ要素選択部の制御情報161は、ベクトル長を命令毎に積算加算し演算パイプライン数で割った余りと、演算に使用するベクトルレジスタの要素0位置情報から求める。また同じ情報を使用して、どの演算パイプラインがどの演算命令を行うべきか判定し、各演算パイプラインに演算の種類等適切な演算制御情報を与える。 The control information 161 of the data element selection unit is obtained from the remainder obtained by integrating and adding the vector length for each instruction and dividing by the number of operation pipelines, and element 0 position information of the vector register used for the operation. Also, using the same information, it is determined which operation pipeline should perform which operation instruction, and appropriate operation control information such as the type of operation is given to each operation pipeline.
本発明の実施例によれば、ベクトルレジスタバンク100〜130と演算パイプライン109〜139の間に、データ要素選択部105,106,115,116,125,126,135,136を設け、ベクトルレジスタバンクと演算パイプラインの関係を必要に応じてずらすことができる。これにより、図3の演算対象データ要素のない区間301,302に、図4のように次の命令の演算対象データ要素を入れることができる。
According to the embodiment of the present invention, the data element selectors 105, 106, 115, 116, 125, 126, 135, 136 are provided between the
100、110、120、130:ベクトルレジスタバンク
101〜104、111〜114、121〜124、131〜134:レジスタ選択部
105、106、115、116、125、126、135、136:データ要素選択部
109、119、129、139:演算パイプライン 140:ベクトル長保持部 150:要素0位置情報保持部 151、152、153、154:要素0位置情報の選択器
160:データ要素選択情報生成部 161:データ要素選択情報 162:生成された要素0位置情報 301、302:演算対象データ要素のない区間。
100, 110, 120, 130: Vector register bank
101-104, 111-114, 121-124, 131-134: Register selector
105, 106, 115, 116, 125, 126, 135, 136: data element selector
109, 119, 129, 139: calculation pipeline 140: vector length holding unit 150: element 0 position information holding unit 151, 152, 153, 154: element 0 position information selector
160: Data element selection information generation unit 161: Data element selection information 162: Generated element 0 position information 301, 302: Section without calculation target data element.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008096037A JP5255885B2 (en) | 2008-04-02 | 2008-04-02 | Vector processor controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008096037A JP5255885B2 (en) | 2008-04-02 | 2008-04-02 | Vector processor controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009251724A true JP2009251724A (en) | 2009-10-29 |
JP5255885B2 JP5255885B2 (en) | 2013-08-07 |
Family
ID=41312409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008096037A Expired - Fee Related JP5255885B2 (en) | 2008-04-02 | 2008-04-02 | Vector processor controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5255885B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112018004972T5 (en) | 2017-10-18 | 2020-06-18 | Mitsubishi Electric Corporation | OPERATING CIRCUIT AND OPERATING METHOD |
CN117195989A (en) * | 2023-11-06 | 2023-12-08 | 深圳市九天睿芯科技有限公司 | Vector processor, neural network accelerator, chip and electronic equipment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222390A (en) * | 1999-01-29 | 2000-08-11 | Nec Kofu Ltd | Vector processor and its instruction issuing method |
JP2001167084A (en) * | 1999-12-08 | 2001-06-22 | Nec Kofu Ltd | Vector operation processor and vector data moving method |
-
2008
- 2008-04-02 JP JP2008096037A patent/JP5255885B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222390A (en) * | 1999-01-29 | 2000-08-11 | Nec Kofu Ltd | Vector processor and its instruction issuing method |
JP2001167084A (en) * | 1999-12-08 | 2001-06-22 | Nec Kofu Ltd | Vector operation processor and vector data moving method |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112018004972T5 (en) | 2017-10-18 | 2020-06-18 | Mitsubishi Electric Corporation | OPERATING CIRCUIT AND OPERATING METHOD |
US11281376B2 (en) | 2017-10-18 | 2022-03-22 | Mitsubishi Electric Corporation | Operation circuit and method of operation for use in operations that are performed in parallel using multiple operators |
CN117195989A (en) * | 2023-11-06 | 2023-12-08 | 深圳市九天睿芯科技有限公司 | Vector processor, neural network accelerator, chip and electronic equipment |
CN117195989B (en) * | 2023-11-06 | 2024-06-04 | 深圳市九天睿芯科技有限公司 | Vector processor, neural network accelerator, chip and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
JP5255885B2 (en) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10831490B2 (en) | Device and method for scheduling multiple thread groups on SIMD lanes upon divergence in a single thread group | |
US9355061B2 (en) | Data processing apparatus and method for performing scan operations | |
US9141386B2 (en) | Vector logical reduction operation implemented using swizzling on a semiconductor chip | |
US9965275B2 (en) | Element size increasing instruction | |
TWI764966B (en) | A data processing apparatus and method for controlling vector memory accesses | |
JP5255885B2 (en) | Vector processor controller | |
US8055883B2 (en) | Pipe scheduling for pipelines based on destination register number | |
US11481223B2 (en) | Reducing operations of sum-of-multiply-accumulate (SOMAC) instructions | |
JP2018005369A (en) | Arithmetic processing device and method for controlling arithmetic processing device | |
KR20150105209A (en) | Data processing apparatus and method for performing vector scan operation | |
JP4444305B2 (en) | Semiconductor device | |
JP2020527797A (en) | Vector interleaving in data processing equipment | |
JP5630798B1 (en) | Processor and method | |
JP7377208B2 (en) | Data processing | |
JP2009086870A (en) | Vector processing device | |
EP1251425A2 (en) | Very long instruction word information processing device and system | |
CN112579168B (en) | Instruction execution unit, processor and signal processing method | |
JP6381019B2 (en) | Information processing apparatus and control method | |
JP2012128790A (en) | Arithmetic processor | |
JP2011060048A (en) | Apparatus, method and program for processing information | |
US20210042127A1 (en) | Group Load Register of a Graph Streaming Processor | |
WO2013137459A1 (en) | Data providing device and data processing device | |
JP5170021B2 (en) | Vector arithmetic device and vector arithmetic method | |
JP6307975B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
JP2006251978A (en) | Vector operation device and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100826 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121211 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130208 |
|
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: 20130402 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130422 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160426 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |