JP5673322B2 - Vector processing apparatus, system, and operation method of vector processing apparatus - Google Patents

Vector processing apparatus, system, and operation method of vector processing apparatus Download PDF

Info

Publication number
JP5673322B2
JP5673322B2 JP2011092189A JP2011092189A JP5673322B2 JP 5673322 B2 JP5673322 B2 JP 5673322B2 JP 2011092189 A JP2011092189 A JP 2011092189A JP 2011092189 A JP2011092189 A JP 2011092189A JP 5673322 B2 JP5673322 B2 JP 5673322B2
Authority
JP
Japan
Prior art keywords
register
vector
data
operand
specified
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
JP2011092189A
Other languages
Japanese (ja)
Other versions
JP2012226486A (en
Inventor
毅 葛
毅 葛
宏政 高橋
宏政 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011092189A priority Critical patent/JP5673322B2/en
Publication of JP2012226486A publication Critical patent/JP2012226486A/en
Application granted granted Critical
Publication of JP5673322B2 publication Critical patent/JP5673322B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

本発明は、ベクトル処理装置およびベクトル処理装置を有するシステムに関する。   The present invention relates to a vector processing device and a system having the vector processing device.

ベクトル処理装置は、少ない命令で多くのデータの演算を実行するために、配列型のデータであるベクトルデータを格納するベクトルレジスタファイルを有している。ベクトルレジスタファイルは、ベクトルデータがそれぞれ格納される複数のデータレジスタに区画される。データレジスタは、データ配列の大きさを示すベクトル長に応じたサイズを有しており、ベクトル処理装置が実行する命令に含まれるオペランドによって指定される。例えば、ベクトル処理装置は、加算命令を実行するとき、2つのオペランドが示す2つのデータレジスタに格納されている複数組のデータを加算する。ベクトル長が可変のベクトル処理装置では、データレジスタの数およびデータレジスタの相対位置は、ベクトル長に応じて設定される(例えば、特許文献1、2参照。)。   The vector processing apparatus has a vector register file that stores vector data, which is array-type data, in order to execute a large amount of data with a small number of instructions. The vector register file is partitioned into a plurality of data registers each storing vector data. The data register has a size corresponding to the vector length indicating the size of the data array, and is specified by an operand included in an instruction executed by the vector processing device. For example, when executing the addition instruction, the vector processing apparatus adds a plurality of sets of data stored in two data registers indicated by two operands. In a vector processing device with a variable vector length, the number of data registers and the relative position of the data registers are set according to the vector length (see, for example, Patent Documents 1 and 2).

特開昭54−93342号公報JP 54-93342 A 特開昭59−65378号公報JP 59-65378 A

しかしながら、割り当て可能なデータレジスタの数は、オペランドのビット数に依存し、例えば、オペランドが5ビットのとき32個である。このため、ベクトル長が小さいとき、ベクトルレジスタファイル内にデータレジスタとして割り当てられない領域が発生してしまう。換言すれば、ベクトルレジスタファイルの容量が、オペランドにより指定可能なデータレジスタの最大数とベクトル長との積より大きいとき、演算に使用できない領域がベクトルレジスタファイル内に発生してしまう。   However, the number of data registers that can be allocated depends on the number of bits of the operand, for example, 32 when the operand is 5 bits. For this reason, when the vector length is small, an area that cannot be allocated as a data register occurs in the vector register file. In other words, when the capacity of the vector register file is larger than the product of the maximum number of data registers that can be specified by the operand and the vector length, an area that cannot be used for the operation occurs in the vector register file.

本発明の目的は、ベクトル長が小さい場合にも、ベクトルレジスタファイルを効率よく使用し、ベクトル処理装置の性能を向上することである。   An object of the present invention is to efficiently use a vector register file even when the vector length is small, and to improve the performance of the vector processing apparatus.

本発明の一形態では、ベクトル処理装置は、ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルと、ベクトルレジスタファイル内に割り当てられ、命令に含まれるオペランドにより指定可能な最大数のデータレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットと、レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報が格納される制御レジスタと、ベクトル長に応じて変化する有効レジスタセットの開始位置を基準にして、オペランドにより指定されるデータレジスタにアクセスするデコーダと、アクセスされるデータレジスタからのベクトルデータを用いてベクトル演算を実行する実行部とを備えている。ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、各レジスタセットは、ベクトル長とデータレジスタの最大数との積と同じ数を有し物理レジスタ番号が連続するデータ格納領域を含み、物理レジスタ番号の大きさの順にレジスタセット番号が付けられ、各レジスタセット内のデータレジスタは、ベクトル長と同じ数のデータ格納領域をそれぞれ有し、物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、制御レジスタは、レジスタセット番号が情報として格納され、オペランドは、論理レジスタ番号を示し、オペランドにより指定されるデータレジスタの先頭のデータ格納領域の物理レジスタ番号は、論理レジスタ番号とベクトル長との積に、レジスタセット番号とデータレジスタの最大数とベクトル長との積を加えた値により指定される。 In one aspect of the present invention, a vector processing device includes a vector register file to which a plurality of data registers for storing vector data are allocated, and a maximum that can be specified by an operand included in the vector register file and included in an instruction. A plurality of register sets each having a number of data registers, the size of which changes according to the vector length, and information indicating an effective register set, which is a register set that holds vector data used for vector operations, among the register sets Using the control register to be stored, the decoder that accesses the data register specified by the operand based on the start position of the valid register set that changes according to the vector length, and the vector data from the accessed data register Perform vector operations And an execution unit. In the vector register file, physical register numbers are sequentially assigned to the data storage areas in which vector data is stored, and each register set has the same number as the product of the vector length and the maximum number of data registers. Registers are numbered in the order of physical register numbers, and the data registers in each register set have the same number of data storage areas as the vector length. Logical register numbers are assigned in order of the size of the number, the control register stores the register set number as information, the operand indicates the logical register number, and the physical data storage area at the head of the data register specified by the operand The register number is the product of the logical register number and the vector length. Specified by the maximum number of the value obtained by adding the product of the vector length of the static set number and the data register.

ベクトル長が小さい場合にも、レジスタセットを切り換えることでベクトルレジスタファイルを効率よく使用でき、ベクトル処理装置の性能を向上できる。   Even when the vector length is small, the vector register file can be used efficiently by switching the register set, and the performance of the vector processing apparatus can be improved.

一実施形態におけるベクトル処理装置の例を示している。1 illustrates an example of a vector processing device according to an embodiment. 図1に示した制御レジスタファイルの仕様およびベクトルレジスタファイルのデータ格納領域の割り当ての例を示している。An example of the specification of the control register file and the allocation of the data storage area of the vector register file shown in FIG. 1 is shown. 図1に示したベクトル処理装置において、ベクトル長が”8”に設定されるときのベクトルレジスタファイルのデータ格納領域の割り当ての例を示している。In the vector processing device shown in FIG. 1, an example of allocation of data storage areas of a vector register file when the vector length is set to “8” is shown. 図1に示したベクトル処理装置において、ベクトル長が”16”に設定されるときのベクトルレジスタファイルのデータ格納領域の割り当ての例を示している。In the vector processing apparatus shown in FIG. 1, an example of allocation of data storage areas of a vector register file when the vector length is set to “16” is shown. 図1に示したベクトル処理装置において、ベクトル長が”32”に設定されるときのベクトルレジスタファイルのデータ格納領域の割り当ての例を示している。In the vector processing apparatus shown in FIG. 1, an example of allocation of data storage areas of a vector register file when the vector length is set to “32” is shown. 図1に示したベクトル処理装置において、ベクトル長が”64”に設定されるときのベクトルレジスタファイルのデータ格納領域の割り当ての例を示している。In the vector processing apparatus shown in FIG. 1, an example of allocation of the data storage area of the vector register file when the vector length is set to “64” is shown. 図1に示したベクトル処理装置において、レジスタセット間でデータを転送するためのレジスタ転送命令の動作の例を示している。FIG. 3 shows an example of the operation of a register transfer instruction for transferring data between register sets in the vector processing apparatus shown in FIG. 図1に示したベクトル処理装置において、レジスタセット間でデータを転送するためのレジスタ転送命令の動作の別の例を示している。In the vector processing apparatus shown in FIG. 1, another example of the operation of a register transfer instruction for transferring data between register sets is shown. 別の実施形態のベクトル処理装置におけるベクトルレジスタファイルのデータ格納領域の割り当ての例を示している。The example of the allocation of the data storage area of the vector register file in the vector processing apparatus of another embodiment is shown. 図9に示したベクトルレジスタファイルをマトリックス状に表した例を示している。FIG. 10 shows an example in which the vector register file shown in FIG. 9 is represented in a matrix. ベクトル長が”16”のときに、図9に示したベクトルレジスタファイルVRをマトリックス状に表した例を示している。9 shows an example in which the vector register file VR shown in FIG. 9 is represented in a matrix when the vector length is “16”. ベクトル長が”32”のときに、図9に示したベクトルレジスタファイルVRをマトリックス状に表した例を示している。9 shows an example in which the vector register file VR shown in FIG. 9 is represented in a matrix when the vector length is “32”. 図9に示したベクトルレジスタファイルを有するベクトル処理装置において、レジスタセット間でデータを転送するためのレジスタ転送命令の動作の例を示している。FIG. 10 shows an example of the operation of a register transfer instruction for transferring data between register sets in the vector processing apparatus having the vector register file shown in FIG. 別の実施形態のベクトル処理装置におけるベクトルレジスタファイルのデータ格納領域の割り当ての例を示している。The example of the allocation of the data storage area of the vector register file in the vector processing apparatus of another embodiment is shown. 別の実施形態のベクトル処理装置におけるベクトルレジスタファイルのデータ格納領域の割り当ての例を示している。The example of the allocation of the data storage area of the vector register file in the vector processing apparatus of another embodiment is shown. 上述したベクトル処理装置が搭載されるシステムの例を示している。The example of the system by which the vector processing apparatus mentioned above is mounted is shown.

以下、図面を用いて実施形態を説明する。   Hereinafter, embodiments will be described with reference to the drawings.

図1は、一実施形態におけるベクトル処理装置の例を示している。ベクトル処理装置は、命令メモリ10、命令バッファ12、デコーダ14、レジスタファイル群16、実行パイプライン18およびデータメモリ20を有している。なお、命令メモリ10、命令バッファ12およびデータメモリ20は、ベクトル処理装置の外部に配置されてもよい。   FIG. 1 shows an example of a vector processing apparatus according to an embodiment. The vector processing apparatus includes an instruction memory 10, an instruction buffer 12, a decoder 14, a register file group 16, an execution pipeline 18, and a data memory 20. Note that the instruction memory 10, the instruction buffer 12, and the data memory 20 may be arranged outside the vector processing device.

命令メモリ10は、ベクトル処理装置により実行される命令が記述されたプログラムを格納している。命令バッファ12は、命令メモリ10からプリフェッチされる命令を一時的に格納する。   The instruction memory 10 stores a program in which instructions executed by the vector processing device are described. The instruction buffer 12 temporarily stores instructions prefetched from the instruction memory 10.

デコーダ14は、命令バッファ12に格納されている命令を順に解読し、解読した命令コードを実行パイプライン18に出力する。また、デコーダ14は、解読したオペランドと、制御レジスタファイルVCRの制御レジスタに格納されているベクトル長VLおよびレジスタセット番号REGSETとに基づいてアクセスするレジスタを認識し、認識したレジスタにアクセスするためのアクセス要求をレジスタファイル群16に出力する。ベクトル長VLおよびレジスタセット番号REGSETは、図2で説明する。   The decoder 14 sequentially decodes the instructions stored in the instruction buffer 12 and outputs the decoded instruction code to the execution pipeline 18. The decoder 14 recognizes a register to be accessed based on the decoded operand, the vector length VL and the register set number REGSET stored in the control register of the control register file VCR, and accesses the recognized register. The access request is output to the register file group 16. The vector length VL and the register set number REGSET will be described with reference to FIG.

レジスタファイル群16は、ベクトルレジスタファイルVRおよび制御レジスタファイルVCR等を有している。ベクトルレジスタファイルVRは、ベクトル演算に用いるベクトルデータ(以下、単にデータとも称する)を記憶する。制御レジスタファイルVCRは、ベクトルレジスタファイルVRに記憶されるデータの領域の割り当てに必要な制御情報等を記憶する。   The register file group 16 includes a vector register file VR, a control register file VCR, and the like. The vector register file VR stores vector data (hereinafter also simply referred to as data) used for vector operations. The control register file VCR stores control information and the like necessary for allocation of data areas stored in the vector register file VR.

ベクトルレジスタファイルVRおよび制御レジスタファイルVCRは、デコーダ14からのアクセス要求により指定されるレジスタに格納されているデータを実行パイプライン18に出力する。また、ベクトルレジスタファイルVRおよび制御レジスタファイルVCRは、実行パイプライン18からのデータを、デコーダ14からのアクセス要求により指定されるレジスタに格納する。ベクトルレジスタファイルVRおよび制御レジスタファイルVCRの例は、図2に示す。   The vector register file VR and the control register file VCR output the data stored in the register designated by the access request from the decoder 14 to the execution pipeline 18. Further, the vector register file VR and the control register file VCR store data from the execution pipeline 18 in a register specified by an access request from the decoder 14. Examples of the vector register file VR and the control register file VCR are shown in FIG.

実行パイプライン18は、並列に動作可能な複数の演算器を有している。実行パイプライン18は、デコーダ14によりアクセスされるベクトルレジスタファイルVR内の論理レジスタREGL(図2)からのベクトルデータを用いてベクトル演算を実行する実行部の一例である。例えば、実行パイプライン18は、デコーダ14により解読された命令が加算命令等の演算命令のとき、ベクトルレジスタファイルVRから出力されるベクトルデータを演算し、演算結果をベクトルレジスタファイルVRに書き込む。また、実行パイプライン18は、デコーダ14により解読された命令がロード命令またはストア命令等の転送命令のとき、レジスタファイル群16とデータメモリ20間でデータを転送する。例えば、ロード命令では、データメモリ20に記憶されている演算に用いるベクトルデータがベクトルレジスタファイルVRに書き込まれる。例えば、ストア命令では、演算により得られ、ベクトルレジスタファイルVRに格納されているベクトルデータがデータメモリ20に書き込まれる。   The execution pipeline 18 has a plurality of arithmetic units that can operate in parallel. The execution pipeline 18 is an example of an execution unit that executes vector operations using vector data from the logical register REGL (FIG. 2) in the vector register file VR accessed by the decoder 14. For example, when the instruction decoded by the decoder 14 is an operation instruction such as an addition instruction, the execution pipeline 18 calculates vector data output from the vector register file VR and writes the operation result to the vector register file VR. The execution pipeline 18 transfers data between the register file group 16 and the data memory 20 when the instruction decoded by the decoder 14 is a transfer instruction such as a load instruction or a store instruction. For example, in the load instruction, vector data used for an operation stored in the data memory 20 is written into the vector register file VR. For example, in the store instruction, vector data obtained by calculation and stored in the vector register file VR is written into the data memory 20.

図2は、図1に示した制御レジスタファイルVCRの仕様およびベクトルレジスタファイルVRのデータ格納領域の割り当ての例を示している。制御レジスタファイルVCRは、ベクトル長VLおよびレジスタセット番号REGSETを示す情報をそれぞれ格納する制御レジスタを有している。ベクトル長VLは、1つの命令に応答して演算が実行されるデータの数(演算回数)を示す。この例では、ベクトル長VLは、”8”、”16”、”32”、”64”のいずれかに設定される。ベクトル長VLを可変にすることで、データ配列の大きさに応じてベクトルレジスタファイルVRを効率的に使用して、ベクトル演算を実行できる。   FIG. 2 shows an example of the specification of the control register file VCR shown in FIG. 1 and the allocation of the data storage area of the vector register file VR. The control register file VCR has control registers for storing information indicating the vector length VL and the register set number REGSET. The vector length VL indicates the number of data (the number of operations) on which an operation is executed in response to one instruction. In this example, the vector length VL is set to one of “8”, “16”, “32”, and “64”. By making the vector length VL variable, the vector operation can be executed by efficiently using the vector register file VR according to the size of the data array.

レジスタセット番号REGSETは、ベクトルレジスタファイルVR内に割り当てられるレジスタセットREGSのうち、演算で使用するレジスタセットREGSの位置を示す。図2では、レジスタセット番号REGSETにより指定されるレジスタセットREGSを”<数値>”で示している。例えば、レジスタセット番号REGSETが”2”のとき、図2に太枠で示した”<2>”のレジスタセットREGSが選択され、アクセス可能になる。太枠で示したアクセス可能なレジスタセットREGSは、ベクトル演算に使用するベクトルデータを保持する有効レジスタセットである。有効レジスタセットは、制御レジスタファイルVCRに設定されるレジスタセット番号REGSETにより指定される。   The register set number REGSET indicates the position of the register set REGS used in the operation among the register sets REGS assigned in the vector register file VR. In FIG. 2, the register set REGS designated by the register set number REGSET is indicated by “<numerical value>”. For example, when the register set number REGSET is “2”, the register set REGS of “<2>” indicated by a thick frame in FIG. 2 is selected and can be accessed. The accessible register set REGS indicated by a thick frame is an effective register set that holds vector data used for vector operations. The valid register set is specified by a register set number REGSET set in the control register file VCR.

例えば、制御レジスタファイルVCRへのベクトル長VLおよびレジスタセット番号REGSETの設定は、実行パイプライン18が式(1)に示すロードイミディエイトコントロール命令を実行することにより行われる。式(1)中のオペランドvcrは、制御レジスタファイルVCRの各制御レジスタの位置(論理番号)を示す。例えば、オペランドvcrの”2”は、ベクトル長VL用のレジスタを示し、オペランドvcrの”6”は、レジスタセット番号REGSET用のレジスタを示す。オペランド#iは、即値を示す。例えば、”i”が”16”のとき、オペランドvcrで指定される制御レジスタに”16”が設定され、”i”が”1”のとき、オペランドvcrで指定される制御レジスタに”1”が設定される。
lic vcr,#i‥‥(1)
ベクトルレジスタファイルVRは、例えば、ベクトルデータの各データを格納可能な2048個(2048ワード)のデータ格納領域を有している。各データ格納領域は、物理レジスタ番号(0から2047)が順に割り当てられている。ベクトルレジスタファイルVRは、ベクトル長VLに応じて、同じ記憶容量を有する複数のレジスタセットREGSに区画される。図2に示した先頭物理レジスタセット番号は、レジスタセット番号REGSETにより指定されるレジスタセットREGSにおける先頭のデータ格納領域の物理レジスタ番号である。各レジスタセットREGSは、物理レジスタ番号の大きさの順にレジスタセット番号REGSET(<0>−<n>)が付けられる。
For example, the vector length VL and the register set number REGSET are set in the control register file VCR by the execution pipeline 18 executing the load immediate control instruction shown in Expression (1). An operand vcr in equation (1) indicates the position (logical number) of each control register in the control register file VCR. For example, “2” in the operand vcr indicates a register for the vector length VL, and “6” in the operand vcr indicates a register for the register set number REGSET. Operand #i indicates an immediate value. For example, when “i” is “16”, “16” is set in the control register specified by the operand vcr, and when “i” is “1”, “1” is set in the control register specified by the operand vcr. Is set.
lic vcr, #i (1)
The vector register file VR has, for example, 2048 (2048 words) data storage areas that can store vector data. Each data storage area is assigned a physical register number (0 to 2047) in order. The vector register file VR is partitioned into a plurality of register sets REGS having the same storage capacity according to the vector length VL. The top physical register set number shown in FIG. 2 is the physical register number of the top data storage area in the register set REGS specified by the register set number REGSET. Each register set REGS is given a register set number REGSET (<0>-<n>) in the order of the physical register number.

1つのレジスタセットREGSは、32個の論理レジスタREGLに区画される。論理レジスタREGLは、命令に含まれるオペランドにより指定されるデータレジスタの一例である。各論理レジスタREGLは、ベクトル長VLと同じ数のデータ格納領域を有し、1つのベクトルデータを格納する。このため、各レジスタセットREGSに割り当てられるデータ格納領域の数は、”VL×32”である。図2に示した先頭物理レジスタ番号は、命令においてデータ配列を指定するためのオペランド(vr0、vr1、vr2等)により指定される論理レジスタREGLの先頭の物理レジスタ番号である。図2では、オペランドにより指定される論理レジスタREGLの位置を”(数値)”で示している。例えば、オペランドvr0が”2”のとき、図2に示した有効レジスタセットREGS<2>内の論理レジスタREGL(2)がデコーダ14によりアクセスされる。   One register set REGS is partitioned into 32 logical registers REGL. The logical register REGL is an example of a data register specified by an operand included in an instruction. Each logical register REGL has the same number of data storage areas as the vector length VL, and stores one vector data. Therefore, the number of data storage areas allocated to each register set REGS is “VL × 32”. The top physical register number shown in FIG. 2 is the top physical register number of the logical register REGL specified by the operand (vr0, vr1, vr2, etc.) for specifying the data array in the instruction. In FIG. 2, the position of the logical register REGL designated by the operand is indicated by “(numerical value)”. For example, when the operand vr0 is “2”, the logical register REGL (2) in the valid register set REGS <2> shown in FIG.

論理レジスタREGLは、物理レジスタ番号の大きさの順に論理レジスタ番号(0から31)が付けられている。各レジスタセットREGS内の論理レジスタREGLの数(この例では、32個)は、デコーダ14がデコードする命令に含まれるデータ配列を指定するためのオペランドのビット数に依存して決まる。この例では、オペランドは5ビットであり、オペランドにより指定可能な論理レジスタREGLの最大数は32個である。各レジスタセットREGSに割り当てられる論理レジスタREGLの数は、オペランドが4ビットのとき16個になり、オペランドが6ビットのとき64個になる。   The logical registers REGL are assigned logical register numbers (0 to 31) in the order of the physical register numbers. The number of logical registers REGL in each register set REGS (32 in this example) is determined depending on the number of bits of an operand for designating a data array included in an instruction decoded by the decoder 14. In this example, the operand is 5 bits, and the maximum number of logical registers REGL that can be specified by the operand is 32. The number of logical registers REGL assigned to each register set REGS is 16 when the operand is 4 bits, and 64 when the operand is 6 bits.

ベクトルレジスタファイルVRに割り当てられるレジスタセットREGSの数(n+1)は、式(2)により求められる。ここで、総物理レジスタ数は、ベクトルレジスタファイルVRに割り当てられるデータ格納領域の数(この例では、2048)を示す。総論理レジスタ数は、オペランドにより指定可能な論理レジスタREGLの最大数であり、この例では、”32”である。
(レジスタセットREGSの数)=(総物理レジスタ数)/((総論理レジスタ数)×VL)‥‥(2)
図1に示したデコーダ14は、式(3)より先頭物理レジスタセット番号を求め、式(4)より先頭物理レジスタ番号を求める。先頭物理レジスタセット番号は、制御レジスタに格納されたベクトル長VLおよびレジスタセット番号REGSETに基づいて予め求められる有効レジスタセットの開始位置を示す物理レジスタ番号である。総論理レジスタ数は、ベクトル処理装置の命令セット(オペランドのビット数)に依存しており、ベクトル処理装置の設計時に決まる値である。総論理レジスタ数は、デコーダ14に予め保持されている。デコーダ14は、命令に含まれるオペランド(論理レジスタ番号)を用いて、式(4)に基づいて先頭物理レジスタ番号を求め、レジスタファイル群16にアクセス要求として出力する。
(先頭物理レジスタセット番号)=REGSET×(総論理レジスタ数)×VL‥‥(3)
(先頭物理レジスタ番号)=(論理レジスタ番号)×VL+(先頭物理レジスタセット番号)‥‥(4)
例えば、実行パイプライン18が式(5)に示す加算命令(ベクトル演算の一例)を実行するとき、デコーダ14は、各オペランドvr0、vr1、vr2に設定されている論理レジスタ番号に基づいて、式(4)から先頭物理レジスタ番号を求め、ベクトルレジスタファイルVRに出力する。ベクトルレジスタファイルVRは、デコーダ14から指示される先頭物理レジスタ番号が示す論理レジスタREGLに格納されているベクトルデータを出力し、または先頭物理レジスタ番号が示す論理レジスタREGLにベクトルデータを格納する。実行パイプライン18は、ベクトルレジスタファイルVRから出力されるベクトルデータを用いて、ベクトル長VLが示す回数の加算演算を実行する。加算命令では、オペランドvr0、vr1が示す論理レジスタREGLにそれぞれ格納されているデータの加算と、オペランドvr2が示す論理レジスタREGLへの加算結果の格納とが、ベクトル長VLに対応する回数実行される。
vadd vr0,vr1,vr2‥‥(5)
図3は、図1に示したベクトル処理装置において、ベクトル長VLが”8”に設定されるときのベクトルレジスタファイルVRのデータ格納領域の割り当ての例を示している。図3に示す割り当ては、ベクトル処理装置で扱うデータ配列のベクトル長VLが”8”より小さいときに使用される。ベクトル長VLが”8”のとき、各レジスタセットREGSは、256個(8×32)のデータ格納領域を有する。このため、2048個のデータ格納領域を有するベクトルレジスタファイルVRは、32個の論理レジスタREGLを各々有する8個のレジスタセットREGS<0>−<7>に区画される。各論理レジスタREGLは、8個のデータ格納領域を有する。
The number (n + 1) of register sets REGS assigned to the vector register file VR is obtained by Expression (2). Here, the total number of physical registers indicates the number of data storage areas allocated to the vector register file VR (in this example, 2048). The total number of logical registers is the maximum number of logical registers REGL that can be specified by the operand, and is “32” in this example.
(Number of register sets REGS) = (Total number of physical registers) / ((Total number of logical registers) × VL) (2)
The decoder 14 shown in FIG. 1 obtains the top physical register set number from Expression (3), and obtains the top physical register number from Expression (4). The head physical register set number is a physical register number indicating the start position of an effective register set obtained in advance based on the vector length VL and the register set number REGSET stored in the control register. The total number of logical registers depends on the instruction set (number of operand bits) of the vector processing device, and is a value determined when the vector processing device is designed. The total number of logical registers is held in the decoder 14 in advance. Using the operand (logical register number) included in the instruction, the decoder 14 obtains the top physical register number based on Expression (4) and outputs it to the register file group 16 as an access request.
(Start physical register set number) = REGSET x (total number of logical registers) x VL (3)
(Start physical register number) = (Logical register number) x VL + (Start physical register set number) (4)
For example, when the execution pipeline 18 executes an addition instruction (an example of a vector operation) shown in Expression (5), the decoder 14 uses the logical register numbers set in the operands vr0, vr1, and vr2 based on the logical register numbers. The head physical register number is obtained from (4) and output to the vector register file VR. The vector register file VR outputs the vector data stored in the logical register REGL indicated by the head physical register number indicated by the decoder 14, or stores the vector data in the logical register REGL indicated by the head physical register number. The execution pipeline 18 uses the vector data output from the vector register file VR to execute the addition operation for the number of times indicated by the vector length VL. In the addition instruction, addition of data stored in the logical register REGL indicated by the operands vr0 and vr1 and storage of the addition result in the logical register REGL indicated by the operand vr2 are executed a number of times corresponding to the vector length VL. .
vadd vr0, vr1, vr2 (5)
FIG. 3 shows an example of allocation of the data storage area of the vector register file VR when the vector length VL is set to “8” in the vector processing apparatus shown in FIG. The assignment shown in FIG. 3 is used when the vector length VL of the data array handled by the vector processing apparatus is smaller than “8”. When the vector length VL is “8”, each register set REGS has 256 (8 × 32) data storage areas. For this reason, the vector register file VR having 2048 data storage areas is partitioned into eight register sets REGS <0>-<7> each having 32 logical registers REGL. Each logical register REGL has eight data storage areas.

例えば、レジスタセット番号REGSETが”3”に設定されているとき、有効レジスタセットREGS<3>に含まれる32個の論理レジスタREGL(0)−(31)が、プログラムにより指定可能である。式(5)に示したオペランドvr0、vr1、vr2の値が、”2”、”6”、”8”のとき、論理レジスタREGL(2)、(6)の内容の加算と、加算結果の論理レジスタREGL(8)への格納が、ベクトル長VLに対応する回数実行される。レジスタセット番号REGSETの値を”0”から”7”のいずれかに設定することで、ベクトルレジスタファイルVR内の全てのデータ格納領域がアクセス可能になる。   For example, when the register set number REGSET is set to “3”, 32 logical registers REGL (0)-(31) included in the valid register set REGS <3> can be specified by the program. When the values of the operands vr0, vr1, and vr2 shown in Expression (5) are “2”, “6”, and “8”, the contents of the logical registers REGL (2) and (6) are added and the result of the addition Storage in the logical register REGL (8) is executed a number of times corresponding to the vector length VL. By setting the value of the register set number REGSET from “0” to “7”, all data storage areas in the vector register file VR can be accessed.

図4は、図1に示したベクトル処理装置において、ベクトル長VLが”16”に設定されるときのベクトルレジスタファイルVRのデータ格納領域の割り当ての例を示している。図4に示した割り当ては、ベクトル処理装置で扱うデータ配列のベクトル長VLが”9”から”16”のときに使用される。ベクトル長VLが”16”のとき、各レジスタセットREGSは、512個(16×32)のデータ格納領域を有する。このため、2048個のデータ格納領域を有するベクトルレジスタファイルVRは、32個の論理レジスタREGLを各々有する4個のレジスタセットREGS<0>−<3>に区画される。各論理レジスタREGLは、16個のデータ格納領域を有する。   FIG. 4 shows an example of allocation of the data storage area of the vector register file VR when the vector length VL is set to “16” in the vector processing apparatus shown in FIG. The assignment shown in FIG. 4 is used when the vector length VL of the data array handled by the vector processing apparatus is “9” to “16”. When the vector length VL is “16”, each register set REGS has 512 (16 × 32) data storage areas. For this reason, the vector register file VR having 2048 data storage areas is partitioned into four register sets REGS <0>-<3> each having 32 logical registers REGL. Each logical register REGL has 16 data storage areas.

例えば、レジスタセット番号REGSETが”1”に設定されているとき、有効レジスタセットREGS<1>に含まれる32個の論理レジスタREGL(0)−(31)が、プログラムにより指定可能である。式(5)に示したオペランドvr0、vr1、vr2の値が、”2”、”6”、”8”のときの動作は、先頭物理レジスタ番号およびベクトル長VLに対応する加算回数が異なることを除き、図3と同様である。図4においても、レジスタセット番号REGSETの値を”0”から”3”のいずれかに設定することで、ベクトルレジスタファイルVR内の全てのデータ格納領域がアクセス可能になる。   For example, when the register set number REGSET is set to “1”, 32 logical registers REGL (0)-(31) included in the valid register set REGS <1> can be specified by the program. The operation when the values of the operands vr0, vr1, and vr2 shown in Expression (5) are “2”, “6”, and “8” are different in the number of additions corresponding to the top physical register number and the vector length VL. Except for, the same as FIG. Also in FIG. 4, by setting the value of the register set number REGSET from “0” to “3”, all data storage areas in the vector register file VR can be accessed.

図5は、図1に示したベクトル処理装置において、ベクトル長VLが”32”に設定されるときのベクトルレジスタファイルVRのデータ格納領域の割り当ての例を示している。図5に示した割り当ては、ベクトル処理装置で扱うデータ配列のベクトル長VLが”17”から”32”のときに使用される。ベクトル長VLが”32”のとき、各レジスタセットREGSは、1024個(32×32)のデータ格納領域を有する。このため、2048個のデータ格納領域を有するベクトルレジスタファイルVRは、32個の論理レジスタREGLを各々有する2個のレジスタセットREGS<0>−<1>に区画される。各論理レジスタREGLは、32個のデータ格納領域を有する。   FIG. 5 shows an example of allocation of the data storage area of the vector register file VR when the vector length VL is set to “32” in the vector processing apparatus shown in FIG. The assignment shown in FIG. 5 is used when the vector length VL of the data array handled by the vector processing apparatus is “17” to “32”. When the vector length VL is “32”, each register set REGS has 1024 (32 × 32) data storage areas. Therefore, the vector register file VR having 2048 data storage areas is partitioned into two register sets REGS <0>-<1> each having 32 logical registers REGL. Each logical register REGL has 32 data storage areas.

例えば、レジスタセット番号REGSETが”1”に設定されているとき、有効レジスタセットREGS<1>に含まれる32個の論理レジスタREGL(0)−(31)が、プログラムにより指定可能である。式(5)に示したオペランドvr0、vr1、vr2の値が、”2”、”6”、”8”のときの動作は、先頭物理レジスタ番号およびベクトル長VLに対応する加算回数が異なることを除き、図3と同様である。図5においても、レジスタセット番号REGSETの値を”0”、”1”のいずれかに設定することで、ベクトルレジスタファイルVR内の全てのデータ格納領域がアクセス可能になる。   For example, when the register set number REGSET is set to “1”, 32 logical registers REGL (0)-(31) included in the valid register set REGS <1> can be specified by the program. The operation when the values of the operands vr0, vr1, and vr2 shown in Expression (5) are “2”, “6”, and “8” are different in the number of additions corresponding to the top physical register number and the vector length VL. Except for, the same as FIG. Also in FIG. 5, by setting the value of the register set number REGSET to either “0” or “1”, all data storage areas in the vector register file VR can be accessed.

図6は、図1に示したベクトル処理装置において、ベクトル長VLが”64”に設定されるときのベクトルレジスタファイルVRのデータ格納領域の割り当ての例を示している。図6に示した割り当ては、ベクトル処理装置で扱うデータ配列のベクトル長VLが”33”から”64”のときに使用される。ベクトル長VLが”64”のとき、2048個(64×32)のデータ格納領域を有し、32個の論理レジスタREGLを有する1つのレジスタセットREGS<0>が割り当てられる。各論理レジスタREGLは、64個のデータ格納領域を有する。   FIG. 6 shows an example of allocation of the data storage area of the vector register file VR when the vector length VL is set to “64” in the vector processing apparatus shown in FIG. The assignment shown in FIG. 6 is used when the vector length VL of the data array handled by the vector processing device is “33” to “64”. When the vector length VL is “64”, one register set REGS <0> having 2048 (64 × 32) data storage areas and 32 logical registers REGL is allocated. Each logical register REGL has 64 data storage areas.

式(5)に示したオペランドvr0、vr1、vr2の値が、”2”、”6”、”8”のときの動作は、先頭物理レジスタ番号およびベクトル長VLに対応する加算回数が異なることを除き、図3と同様である。図6では、レジスタセット番号REGSETの値は常に”0”に設定される。このとき、ベクトルレジスタファイルVR内の全てのデータ格納領域がアクセス可能になる。   The operation when the values of the operands vr0, vr1, and vr2 shown in Expression (5) are “2”, “6”, and “8” are different in the number of additions corresponding to the top physical register number and the vector length VL. Except for, the same as FIG. In FIG. 6, the value of the register set number REGSET is always set to “0”. At this time, all data storage areas in the vector register file VR can be accessed.

図7は、図1に示したベクトル処理装置において、レジスタセットREGS間でデータを転送するためのレジスタ転送命令の動作の例を示している。例えば、ベクトル長VLは”16”に設定されている。   FIG. 7 shows an example of the operation of a register transfer instruction for transferring data between register sets REGS in the vector processing apparatus shown in FIG. For example, the vector length VL is set to “16”.

制御レジスタファイルVCRに設定されるレジスタセット番号REGSETにより、レジスタセットREGSの1つを指定する場合、図1に示したデコーダ14は、指定されたレジスタセットREGS以外のデータ格納領域にアクセスできない。このため、レジスタセットREGS間のデータ転送は、データを図1に示したデータメモリ20に一時的に保持して、レジスタセット番号REGSETを切り換えながら実施する必要がある。換言すれば、2回のデータ転送命令と、少なくとも1回のロードイミディエイトコントロール命令(式(1))を実行しなくてはならず効率が悪い。   When one of the register sets REGS is designated by the register set number REGSET set in the control register file VCR, the decoder 14 shown in FIG. 1 cannot access a data storage area other than the designated register set REGS. Therefore, data transfer between the register sets REGS needs to be performed while temporarily holding the data in the data memory 20 shown in FIG. 1 and switching the register set number REGSET. In other words, two data transfer instructions and at least one load immediate control instruction (formula (1)) must be executed, which is inefficient.

これに対して、この実施形態のベクトル処理装置は、式(6)に示すレジスタ転送命令movset1を有しているため、レジスタセット番号REGSETを切り換えることなく、最小限の命令により、指定されたレジスタセットREGS以外のレジスタセットREGSに対してデータを転送できる。
movset1 vr0,regset1,regset2‥‥(6)
式(6)において、オペランドregset1は、転送元のレジスタセットREGSの番号(位置)を示し、オペランドregset2は、転送先のレジスタセットREGSの番号(位置)を示す。オペランドvr0は、転送元および転送先のレジスタセットREGSに共通の論理レジスタ番号を示す。式(6)に示すレジスタ転送命令movset1では、異なるレジスタファイルセット間で同じ番号の論理レジスタREGLにデータの転送が可能である。
On the other hand, since the vector processing apparatus of this embodiment has the register transfer instruction movset1 shown in Expression (6), the designated register can be designated by a minimum instruction without switching the register set number REGSET. Data can be transferred to a register set REGS other than the set REGS.
movset1 vr0, regset1, regset2 (6)
In Expression (6), the operand regset1 indicates the number (position) of the transfer source register set REGS, and the operand regset2 indicates the number (position) of the transfer destination register set REGS. The operand vr0 indicates a logical register number common to the transfer source and transfer destination register sets REGS. With the register transfer instruction movset1 shown in Expression (6), data can be transferred to the logical register REGL having the same number between different register file sets.

例えば、式(6)に示したオペランドvr0、regset1、regset2の値が”6”、”1”、”0”のとき、レジスタセットREGS<1>の論理レジスタREGL(6)に格納されているデータが、レジスタセットREGS<0>の論理レジスタREGL(6)に転送される。なお、転送元のデータは、消去されてもよく(データの移動)、残されてもよい(データのコピー)。   For example, when the values of the operands vr0, regset1, and regset2 shown in Expression (6) are “6”, “1”, and “0”, they are stored in the logical register REGL (6) of the register set REGS <1>. Data is transferred to the logical register REGL (6) of the register set REGS <0>. The transfer source data may be erased (data movement) or may be left (data copy).

デコーダ14は、レジスタ転送命令movset1に応答して、式(7)により転送元の論理レジスタREGLの先頭物理レジスタ番号を求め、式(8)により転送元の論理レジスタREGLの先頭物理レジスタ番号を求め、求めた先頭物理レジスタ番号をアクセス要求としてベクトルレジスタファイルVRに出力する。実行パイプライン18は、レジスタ転送命令movset1に応答して、オペランドregset1により指定されるレジスタセットREGSにおけるオペランドvr0により指定される論理レジスタREGLに格納されているベクトルデータを読み出し、オペランドregset2により指定されるレジスタセットREGSにおけるオペランドvr0により指定される論理レジスタREGLに転送する。
(転送元の論理レジスタREGLの先頭物理レジスタ番号)=vr0×VL+regset1×(総論理レジスタ数)×VL‥‥(7)
(転送先の論理レジスタREGLの先頭物理レジスタ番号)=vr0×VL+regset2×(総論理レジスタ数)×VL‥‥(8)
図8は、図1に示したベクトル処理装置において、レジスタセットREGS間でデータを転送するためのレジスタ転送命令の動作の別の例を示している。例えば、ベクトル長VLは”16”に設定されている。
In response to the register transfer instruction movset1, the decoder 14 obtains the top physical register number of the transfer source logical register REGL by Expression (7), and obtains the start physical register number of the transfer source logical register REGL by Expression (8). The obtained head physical register number is output to the vector register file VR as an access request. In response to the register transfer instruction movset1, the execution pipeline 18 reads the vector data stored in the logical register REGL specified by the operand vr0 in the register set REGS specified by the operand regset1, and is specified by the operand regset2. Transfer to the logical register REGL specified by the operand vr0 in the register set REGS.
(Start physical register number of transfer source logical register REGL) = vr0 × VL + regset1 × (total number of logical registers) × VL (7)
(Start physical register number of transfer destination logical register REGL) = vr0 × VL + regset2 × (total number of logical registers) × VL (8)
FIG. 8 shows another example of the operation of the register transfer instruction for transferring data between the register sets REGS in the vector processing apparatus shown in FIG. For example, the vector length VL is set to “16”.

図8では、転送元のレジスタセットREGSの任意の論理レジスタREGLから転送先のレジスタセットREGSの任意の論理レジスタREGLにデータが転送される。このために、式(9)に示すレジスタ転送命令movset2では、転送元の論理レジスタ番号を指定するオペランドvr1と転送先の論理レジスタ番号を指定するオペランドvr2とが必要になる。オペランドregset1、regset2の意味は、式(6)と同じである。
movset2 vr1,vr2,regset1,regset2‥‥(9)
例えば、図8において、式(9)に示したオペランドvr1、vr2、regset1、regset2の値が”5”、”8”、”1”、”2”のとき、レジスタセットREGS<1>の論理レジスタREGL(5)に格納されているデータが、レジスタセットREGS<2>の論理レジスタREGL(8)に転送される。なお、転送元のデータは、消去されてもよく(データの移動)、残されてもよい(データのコピー)。
In FIG. 8, data is transferred from an arbitrary logical register REGL of the transfer source register set REGS to an arbitrary logical register REGL of the transfer destination register set REGS. For this reason, in the register transfer instruction movset2 shown in Expression (9), an operand vr1 for specifying the transfer source logical register number and an operand vr2 for specifying the transfer destination logical register number are required. The meanings of the operands regset1 and regset2 are the same as in equation (6).
movset2 vr1, vr2, regset1, regset2 (9)
For example, in FIG. 8, when the values of the operands vr1, vr2, regset1, and regset2 shown in Expression (9) are “5”, “8”, “1”, and “2”, the logic of the register set REGS <1> The data stored in the register REGL (5) is transferred to the logic register REGL (8) of the register set REGS <2>. The transfer source data may be erased (data movement) or may be left (data copy).

デコーダ14は、レジスタ転送命令movset2に応答して、式(10)により転送元の論理レジスタREGLの先頭物理レジスタ番号を求め、式(11)により転送元の論理レジスタREGLの先頭物理レジスタ番号を求める。実行パイプライン18は、レジスタ転送命令movset2に応答して、オペランドregset1により指定されるレジスタセットREGSにおけるオペランドvr1により指定される論理レジスタREGLに格納されているベクトルデータを読み出し、オペランドregset2により指定されるレジスタセットREGSにおけるオペランドvr2により指定される論理レジスタREGLに転送する。   In response to the register transfer instruction movset2, the decoder 14 obtains the top physical register number of the transfer source logical register REGL by Expression (10), and obtains the start physical register number of the transfer source logical register REGL by Expression (11). . In response to the register transfer instruction movset2, the execution pipeline 18 reads the vector data stored in the logical register REGL specified by the operand vr1 in the register set REGS specified by the operand regset1, and is specified by the operand regset2. Transfer to the logical register REGL specified by the operand vr2 in the register set REGS.

(転送元の論理レジスタREGLの先頭物理レジスタ番号)=vr1×VL+regset1×(総論理レジスタ数)×VL‥‥(10)
(転送先の論理レジスタREGLの先頭物理レジスタ番号)=vr2×VL+regset2×(総論理レジスタ数)×VL‥‥(11)
なお、ベクトル処理装置は、式(6)に示したレジスタ転送命令movset1を命令セットに含んでもよく、式(9)に示したレジスタ転送命令movset2を命令セットに含んでもよく、式(6)、(9)に示した両方のレジスタ転送命令movset1、movset2を命令セットに含んでもよい。
(Start physical register number of transfer source logical register REGL) = vr1 × VL + regset1 × (total number of logical registers) × VL (10)
(Start physical register number of transfer destination logical register REGL) = vr2 × VL + regset2 × (total number of logical registers) × VL (11)
Note that the vector processing device may include the register transfer instruction movset1 shown in Expression (6) in the instruction set, and may include the register transfer instruction movset2 shown in Expression (9) in the instruction set. Both register transfer instructions movset1 and movset2 shown in (9) may be included in the instruction set.

以上、この実施形態では、制御レジスタによりレジスタセット番号REGSETを切り換え可能にすることで、ベクトル長VLに依存することなく、ベクトルレジスタファイルVRの全てのデータ格納領域をアクセスできる。また、論理レジスタREGLを指定するオペランドのビット数に依存することなく、ベクトルレジスタファイルVRの全てのデータ格納領域をアクセスできる。特に、ベクトル長VLに応じて、レジスタセットREGSのサイズと開始位置が変化するベクトル処理装置において、ベクトルレジスタファイルVRの全てのデータ格納領域をアクセスできる。この結果、ベクトルレジスタファイルVRを効率よく使用でき、ベクトル処理装置の性能を向上できる。   As described above, in this embodiment, the register set number REGSET can be switched by the control register, so that all data storage areas of the vector register file VR can be accessed without depending on the vector length VL. Further, all data storage areas of the vector register file VR can be accessed without depending on the number of bits of the operand that designates the logical register REGL. In particular, all data storage areas of the vector register file VR can be accessed in a vector processing device in which the size and start position of the register set REGS changes according to the vector length VL. As a result, the vector register file VR can be used efficiently, and the performance of the vector processing device can be improved.

同じ記憶容量を有する複数のレジスタセットREGSに対して、物理レジスタ番号の大きさの順にレジスタセット番号を割り当てることで、有効レジスタセット内のアクセスする論理レジスタREGLの位置(物理レジスタ番号)を簡易な式を用いて求められる。この結果、物理レジスタ番号を求めるデコーダ14の論理を簡易にできる。   By assigning register set numbers to a plurality of register sets REGS having the same storage capacity in the order of the physical register numbers, the position (physical register number) of the logical register REGL to be accessed in the effective register set can be simplified. It is obtained using an equation. As a result, the logic of the decoder 14 for obtaining the physical register number can be simplified.

レジスタ転送命令を命令セットに加えることで、レジスタセットREGS間のデータ転送を少ない命令数で実行でき、ベクトル処理装置の性能を向上できる。   By adding the register transfer instruction to the instruction set, data transfer between the register sets REGS can be executed with a small number of instructions, and the performance of the vector processing apparatus can be improved.

図9は、別の実施形態のベクトル処理装置におけるベクトルレジスタファイルVRのデータ格納領域の割り当ての例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。ベクトル処理装置の構成は、デコーダ14および実行パイプライン18の動作が異なることを除き、図1と同じである。制御レジスタファイルVCRの仕様は、図2と同じである。   FIG. 9 shows an example of allocation of the data storage area of the vector register file VR in the vector processing apparatus of another embodiment. The same elements as those described in the above-described embodiment are denoted by the same reference numerals, and detailed description thereof will be omitted. The configuration of the vector processing apparatus is the same as that in FIG. 1 except that the operations of the decoder 14 and the execution pipeline 18 are different. The specification of the control register file VCR is the same as that in FIG.

この実施形態では、ベクトルレジスタファイルVRのデータ格納領域の割り当て仕様が図2と異なる。ベクトルレジスタファイルVRは、図2と同様に、例えば、2048個(2048ワード)のデータ格納領域を有している。但し、ベクトルレジスタファイルVRは、同じ数のデータ格納領域を有する32個の論理レジスタREGLに区画されている。すなわち、ベクトルレジスタファイルVRは、ベクトル長VLに拘わらず、サイズおよび物理レジスタ番号の割り当てが固定の論理レジスタREGLに区画されている。論理レジスタREGLは、命令に含まれるオペランドにより指定されるデータレジスタの一例である。   In this embodiment, the allocation specification of the data storage area of the vector register file VR is different from FIG. Similar to FIG. 2, the vector register file VR has, for example, 2048 (2048 words) data storage areas. However, the vector register file VR is partitioned into 32 logical registers REGL having the same number of data storage areas. That is, the vector register file VR is partitioned into logical registers REGL whose size and physical register number are fixed regardless of the vector length VL. The logical register REGL is an example of a data register specified by an operand included in an instruction.

論理レジスタREGLの最大数は、命令に含まれるデータ配列を指定するためのオペランドのビット数に依存して決まる。すなわち、この例においても、データ配列を指定するためのオペランドのビット数は”5”である。各論理レジスタREGLは、ベクトル長VLの最大値VLmax(例えば、64個)と同じ数の物理レジスタ番号が連続するデータ格納領域を有している。各論理レジスタREGLに割り当てられるデータ格納領域の数は、ベクトル長VLに依存せずに固定である。論理レジスタREGLは、物理レジスタ番号の大きさの順に論理レジスタ番号(0)−(31)が付けられている。   The maximum number of logical registers REGL is determined depending on the number of bits of the operand for designating the data array included in the instruction. That is, also in this example, the number of bits of the operand for designating the data array is “5”. Each logical register REGL has a data storage area in which the same number of physical register numbers as the maximum value VLmax (for example, 64) of the vector length VL continues. The number of data storage areas allocated to each logical register REGL is fixed independently of the vector length VL. The logical registers REGL are assigned logical register numbers (0) to (31) in order of the physical register numbers.

図9の網掛け部分は、ベクトル長VLが”8”、レジスタセット番号REGSETが”2”に設定されているときにアクセス可能なデータ格納領域を示している。各網掛け部分は、ベクトル長VLと同じ数(8個)のデータ格納領域を有している。網掛け部分の集合は、図2に太枠で示したレジスタセットREGS<1>に対応する。レジスタセットREGS<1>は、ベクトル演算に使用するベクトルデータを保持する有効レジスタセットである。この実施形態では、各レジスタセットREGSは、論理レジスタREGLのそれぞれの一部を含む集合により形成されており、物理レジスタ番号の大きさの順にレジスタセット番号が付けられている。換言すれば、各論理レジスタREGLは、全てのレジスタセットREGSに均等に割り当てられている。   The shaded portion in FIG. 9 shows a data storage area that can be accessed when the vector length VL is set to “8” and the register set number REGSET is set to “2”. Each shaded portion has the same number (8) of data storage areas as the vector length VL. A set of shaded portions corresponds to the register set REGS <1> indicated by a thick frame in FIG. The register set REGS <1> is an effective register set that holds vector data used for vector operations. In this embodiment, each register set REGS is formed by a set including a part of each of the logical registers REGL, and the register set numbers are given in the order of the size of the physical register numbers. In other words, each logical register REGL is equally allocated to all the register sets REGS.

図9に示した先頭物理レジスタ番号は、命令に含まれるオペランド(vr0、vr1、vr2等)により指定される論理レジスタREGLにおいて、演算対象のデータ配列が格納されている先頭のデータ格納領域の物理レジスタ番号である。デコーダ14は、式(12)より先頭物理レジスタ番号を求める。なお、ベクトル長VLの最大値VLmaxは、ベクトル処理装置の設計時に決まる値であり、デコーダ14に予め保持されている。
(先頭物理レジスタ番号)=(論理レジスタ番号)×VLmax+REGSET×VL‥‥(12)
例えば、デコーダ14は、式(5)に示した加算命令に含まれる各オペランドvr0、vr1、vr2に設定されている論理レジスタ番号に基づいて、式(12)から先頭物理レジスタ番号を求め、ベクトルレジスタファイルVRに出力する。ベクトルレジスタファイルVRは、デコーダ14から指示される先頭物理レジスタ番号が示す論理レジスタREGLに格納されているベクトルデータを出力し、または先頭物理レジスタ番号が示す論理レジスタREGLにベクトルデータを格納する。実行パイプライン18は、ベクトルレジスタファイルVRから出力されるベクトルデータを用いて、ベクトル長VLが示す回数の加算演算を実行する。
The head physical register number shown in FIG. 9 is the physical address of the head data storage area in which the data array to be calculated is stored in the logical register REGL specified by the operand (vr0, vr1, vr2, etc.) included in the instruction. Register number. The decoder 14 obtains the head physical register number from Expression (12). Note that the maximum value VLmax of the vector length VL is a value determined at the time of designing the vector processing apparatus, and is held in the decoder 14 in advance.
(Start physical register number) = (Logical register number) x VLmax + REGSET x VL (12)
For example, the decoder 14 obtains the head physical register number from the equation (12) based on the logical register number set in each operand vr0, vr1, and vr2 included in the addition instruction shown in the equation (5), and calculates the vector Output to register file VR. The vector register file VR outputs the vector data stored in the logical register REGL indicated by the head physical register number indicated by the decoder 14, or stores the vector data in the logical register REGL indicated by the head physical register number. The execution pipeline 18 uses the vector data output from the vector register file VR to execute the addition operation for the number of times indicated by the vector length VL.

図10は、図9に示したベクトルレジスタファイルVRをマトリックス状に表した例を示している。図9と同様に、ベクトル長VLは”8”に設定され、レジスタセット番号REGSETは”2”に設定されている。網掛け部分は、図9の網掛け部分に対応する。図10に示した縦長の太枠は、レジスタセット番号REGSETにより指定されるレジスタセットREGSを示している。図10では、レジスタセット番号REGSETにより指定されるレジスタセットREGSを”<数値>”で示している。   FIG. 10 shows an example in which the vector register file VR shown in FIG. 9 is represented in a matrix. As in FIG. 9, the vector length VL is set to “8”, and the register set number REGSET is set to “2”. The shaded portion corresponds to the shaded portion in FIG. A vertically long frame shown in FIG. 10 indicates a register set REGS specified by the register set number REGSET. In FIG. 10, the register set REGS designated by the register set number REGSET is indicated by “<numerical value>”.

ベクトルレジスタファイルVRに割り当てられるレジスタセットREGSの数は、上述した式(2)により求められる。すなわち、ベクトル長VLが”8”のとき、ベクトルレジスタファイルVRは、8個のレジスタセットREGS<0>−<7>に区画される。論理レジスタREGL(0)−(31)において、各レジスタセットREGSに含まれる部分は、論理レジスタREGLの先頭から相対的に同じ位置にあり、ベクトル長VLと同じ数を有し物理レジスタ番号が連続するデータ格納領域を有している。   The number of register sets REGS assigned to the vector register file VR is obtained by the above-described equation (2). That is, when the vector length VL is “8”, the vector register file VR is partitioned into eight register sets REGS <0>-<7>. In the logical registers REGL (0)-(31), the portions included in each register set REGS are relatively at the same position from the top of the logical register REGL, have the same number as the vector length VL, and have consecutive physical register numbers. A data storage area is provided.

例えば、加算命令において、式(5)に示したオペランドvr0、vr1、vr2の値が、”2”、”6”、”8”とする。このとき、論理レジスタREGL(2)、(6)のレジスタセットREGS<1>に対応するデータ格納領域の内容の加算と、加算結果の論理レジスタREGL(8)のレジスタセットREGS<1>に対応するデータ格納領域への格納とが、ベクトル長VLに対応する回数実行される。換言すれば、オペランドvr0、vr1、vr2により指定される網掛けの領域は、部分的な論理レジスタREGLとしてアクセスされる。   For example, in the addition instruction, the values of the operands vr0, vr1, and vr2 shown in Expression (5) are “2”, “6”, and “8”. At this time, the addition of the contents of the data storage area corresponding to the register set REGS <1> of the logical registers REGL (2) and (6) and the register set REGS <1> of the logical register REGL (8) as a result of the addition Storage in the data storage area to be performed is executed a number of times corresponding to the vector length VL. In other words, the shaded area specified by the operands vr0, vr1, and vr2 is accessed as a partial logical register REGL.

この実施形態においても、レジスタセット番号REGSETの値を”0”から”7”のいずれかに設定することで、ベクトルレジスタファイルVR内の全てのデータ格納領域がアクセス可能になる。   Also in this embodiment, by setting the value of the register set number REGSET from “0” to “7”, all data storage areas in the vector register file VR can be accessed.

図11は、ベクトル長VLが”16”のときに、図9に示したベクトルレジスタファイルVRをマトリックス状に表した例を示している。図10と同じ要素については、詳細な説明は省略する。ベクトル長VLが”16”のとき、式(2)より、ベクトルレジスタファイルVRは、4個のレジスタセットREGS<0>−<3>に区画される。加算命令に応答して実行される加算演算は、加算されるデータの数(加算回数)が異なることを除き、図10と同じである。   FIG. 11 shows an example in which the vector register file VR shown in FIG. 9 is represented in a matrix when the vector length VL is “16”. Detailed description of the same elements as those in FIG. 10 is omitted. When the vector length VL is “16”, the vector register file VR is partitioned into four register sets REGS <0>-<3> according to Expression (2). The addition operation executed in response to the addition instruction is the same as that in FIG. 10 except that the number of data to be added (number of additions) is different.

図12は、ベクトル長VLが”32”のときに、図9に示したベクトルレジスタファイルVRをマトリックス状に表した例を示している。図10と同じ要素については、詳細な説明は省略する。ベクトル長VLが”32”のとき、式(2)より、ベクトルレジスタファイルVRは、2個のレジスタセットREGS<0>−<1>に区画される。加算命令に応答して実行される加算演算は、加算されるデータの数(加算回数)が異なることを除き、図10と同じである。なお、ベクトル長VLが”64”のときのベクトルレジスタファイルVRのデータ格納領域の割り当ては、図6と同じである。   FIG. 12 shows an example in which the vector register file VR shown in FIG. 9 is represented in a matrix when the vector length VL is “32”. Detailed description of the same elements as those in FIG. 10 is omitted. When the vector length VL is “32”, the vector register file VR is partitioned into two register sets REGS <0>-<1> according to the equation (2). The addition operation executed in response to the addition instruction is the same as that in FIG. 10 except that the number of data to be added (number of additions) is different. The allocation of the data storage area of the vector register file VR when the vector length VL is “64” is the same as in FIG.

図13は、図9に示したベクトルレジスタファイルVRを有するベクトル処理装置において、レジスタセットREGS間でデータを転送するためのレジスタ転送命令の動作の例を示している。   FIG. 13 shows an example of the operation of a register transfer instruction for transferring data between register sets REGS in the vector processing apparatus having the vector register file VR shown in FIG.

上述した式(6)に示したオペランドvr0、regset1、regset2の値が”6”、”1”、”0”のとき、論理レジスタREGL(6)のレジスタセットREGS<1>に対応するデータ格納領域に格納されているデータが、論理レジスタREGL(6)のレジスタセットREGS<0>に対応するデータ格納領域に転送される。一方、上述した式(9)に示したオペランドvr1、vr2、regset1、regset2の値が”3”、”10”、”1”、”2”のとき、論理レジスタREGL(3)のレジスタセットREGS<1>に対応するデータ格納領域に格納されているデータが、論理レジスタREGL(10)のレジスタセットREGS<2>に対応するデータ格納領域に転送される。   Data storage corresponding to the register set REGS <1> of the logical register REGL (6) when the values of the operands vr0, regset1, and regset2 shown in Expression (6) are “6”, “1”, and “0”. The data stored in the area is transferred to the data storage area corresponding to the register set REGS <0> of the logical register REGL (6). On the other hand, when the values of the operands vr1, vr2, regset1, and regset2 shown in the equation (9) are “3”, “10”, “1”, and “2”, the register set REGS of the logical register REGL (3). The data stored in the data storage area corresponding to <1> is transferred to the data storage area corresponding to the register set REGS <2> of the logical register REGL (10).

図1に示したデコーダ14は、レジスタ転送命令movset1またはmovset2の実行時に、式(12)を用いて、転送元のデータ格納領域の先頭物理レジスタ番号および転送先のデータ格納領域の先頭物理レジスタ番号を求め、ベクトルレジスタファイルVRに出力する。ベクトルレジスタファイルVRは、デコーダ14から指示される先頭物理レジスタ番号が示す論理レジスタREGLに格納されているベクトルデータを出力し、または先頭物理レジスタ番号が示す論理レジスタREGLにベクトルデータを格納する。実行パイプライン18は、ベクトルレジスタファイルVRから出力されるベクトルデータを用いて、ベクトル長VLが示す回数の加算演算を実行する。   The decoder 14 shown in FIG. 1 uses the expression (12) when executing the register transfer instruction movset1 or movset2, and uses the beginning physical register number of the transfer source data storage area and the start physical register number of the transfer destination data storage area. Is output to the vector register file VR. The vector register file VR outputs the vector data stored in the logical register REGL indicated by the head physical register number indicated by the decoder 14, or stores the vector data in the logical register REGL indicated by the head physical register number. The execution pipeline 18 uses the vector data output from the vector register file VR to execute the addition operation for the number of times indicated by the vector length VL.

なお、ベクトル処理装置は、式(6)に示したレジスタ転送命令movset1を命令セットに含んでもよく、式(9)に示したレジスタ転送命令movset2を命令セットに含んでもよく、式(6)、(9)に示した両方のレジスタ転送命令movset1、movset2を命令セットに含んでもよい。   Note that the vector processing device may include the register transfer instruction movset1 shown in Expression (6) in the instruction set, and may include the register transfer instruction movset2 shown in Expression (9) in the instruction set. Both register transfer instructions movset1 and movset2 shown in (9) may be included in the instruction set.

以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。すなわち、サイズおよび物理レジスタ番号の割り当てがベクトル長VLに拘わらず固定の論理レジスタREGLに区画されるベクトルレジスタファイルVRを有するベクトル処理装置においても、ベクトルレジスタファイルVRを効率よく使用でき、ベクトル処理装置の性能を向上できる。   As described above, also in this embodiment, the same effect as that of the above-described embodiment can be obtained. In other words, the vector register file VR can be used efficiently even in the vector processing device having the vector register file VR in which the allocation of the size and the physical register number is partitioned into the fixed logical register REGL regardless of the vector length VL. Can improve performance.

図14は、別の実施形態のベクトル処理装置におけるベクトルレジスタファイルVRのデータ格納領域の割り当ての例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。ベクトル処理装置の構成は、デコーダ14および実行パイプライン18の動作が異なることを除き、図1と同じである。   FIG. 14 shows an example of allocation of the data storage area of the vector register file VR in the vector processing apparatus of another embodiment. The same elements as those described in the above-described embodiment are denoted by the same reference numerals, and detailed description thereof will be omitted. The configuration of the vector processing apparatus is the same as that in FIG. 1 except that the operations of the decoder 14 and the execution pipeline 18 are different.

この実施形態では、ベクトルレジスタファイルVRのデータ格納領域の割り当て仕様が、図2と異なる。制御レジスタファイルVCRの仕様は、レジスタセット番号REGSETの設定値が異なることを除き、図2と同じである。ベクトルレジスタファイルVRは、図2と同様に、例えば、2048個(2048ワード)のデータ格納領域を有している。レジスタセット番号REGSETは、レジスタセットREGSの開始位置を示す。   In this embodiment, the allocation specification of the data storage area of the vector register file VR is different from that in FIG. The specification of the control register file VCR is the same as that in FIG. 2 except that the set value of the register set number REGSET is different. Similar to FIG. 2, the vector register file VR has, for example, 2048 (2048 words) data storage areas. The register set number REGSET indicates the start position of the register set REGS.

レジスタセット番号REGSETにより指定される各レジスタセットREGSは、図2と同様に、32個の論理レジスタREGLに区画される。各論理レジスタREGLは、ベクトル長VLに対応する数のデータ格納領域を有する。このため、レジスタセットREGSに割り当てられるデータ格納領域の数は、”VL×32”である。すなわち、レジスタセットREGSのサイズは、ベクトル長VLに依存して変化する。   Each register set REGS specified by the register set number REGSET is partitioned into 32 logical registers REGL as in FIG. Each logical register REGL has a number of data storage areas corresponding to the vector length VL. Therefore, the number of data storage areas allocated to the register set REGS is “VL × 32”. That is, the size of the register set REGS changes depending on the vector length VL.

例えば、ベクトル長VLが”8”のとき、レジスタセット番号REGSETは”0”から”1792”のいずれかに設定される。ベクトル長VLが”16”のとき、レジスタセット番号REGSETは”0”から”1536”のいずれかに設定される。ベクトル長VLが”32”のとき、レジスタセット番号REGSETは”0”から”1024”のいずれかに設定される。ベクトル長VLが”64”のとき、レジスタセット番号REGSETは”0”に設定される。なお、レジスタセット番号REGSETは、”0”から”2047”の任意の開始位置に設定されてもよい。この場合、例えば、ベクトルレジスタファイルVRの最終のデータ格納領域と最初のデータ格納領域とを巡回的に接続することで、最終のデータ格納領域がレジスタセットREGSの途中になるときにも、ベクトルデータを確実に保持できる。   For example, when the vector length VL is “8”, the register set number REGSET is set from “0” to “1792”. When the vector length VL is “16”, the register set number REGSET is set from “0” to “1536”. When the vector length VL is “32”, the register set number REGSET is set from “0” to “1024”. When the vector length VL is “64”, the register set number REGSET is set to “0”. The register set number REGSET may be set to an arbitrary start position from “0” to “2047”. In this case, for example, when the final data storage area of the vector register file VR is cyclically connected to the first data storage area, the vector data can be obtained even when the final data storage area is in the middle of the register set REGS. Can be securely held.

先頭物理レジスタ番号は、図2と同様に、演算対象のデータ配列が格納されている先頭のデータ格納領域の物理レジスタ番号である。例えば、デコーダ14は、式(5)に示した加算命令に含まれる各オペランドvr0、vr1、vr2に設定されている論理レジスタ番号に基づいて、式(13)から先頭物理レジスタ番号を求め、ベクトルレジスタファイルVRに出力する。ベクトルレジスタファイルVRは、デコーダ14から指示される先頭物理レジスタ番号が示す論理レジスタREGLに格納されているベクトルデータを出力し、または先頭物理レジスタ番号が示す論理レジスタREGLにベクトルデータを格納する。実行パイプライン18は、ベクトルレジスタファイルVRから出力されるベクトルデータを用いて、ベクトル長VLが示す回数の加算演算を実行する。
(先頭物理レジスタ番号)=(論理レジスタ番号)×VL+REGSET‥‥(13)
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
The head physical register number is the physical register number of the head data storage area in which the data array to be calculated is stored, as in FIG. For example, the decoder 14 obtains the top physical register number from the equation (13) based on the logical register number set in each operand vr0, vr1, vr2 included in the addition instruction shown in the equation (5), and Output to register file VR. The vector register file VR outputs the vector data stored in the logical register REGL indicated by the head physical register number indicated by the decoder 14, or stores the vector data in the logical register REGL indicated by the head physical register number. The execution pipeline 18 uses the vector data output from the vector register file VR to execute the addition operation for the number of times indicated by the vector length VL.
(Start physical register number) = (Logical register number) x VL + REGSET (13)
As described above, also in this embodiment, the same effect as that of the above-described embodiment can be obtained.

図15は、別の実施形態のベクトル処理装置におけるベクトルレジスタファイルVRのデータ格納領域の割り当ての例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。ベクトル処理装置の構成は、デコーダ14および実行パイプライン18の動作が異なることを除き、図1と同じである。   FIG. 15 shows an example of allocation of the data storage area of the vector register file VR in the vector processing apparatus of another embodiment. The same elements as those described in the above-described embodiment are denoted by the same reference numerals, and detailed description thereof will be omitted. The configuration of the vector processing apparatus is the same as that in FIG. 1 except that the operations of the decoder 14 and the execution pipeline 18 are different.

この実施形態では、レジスタセットREGSの開始位置は、レジスタセット番号REGSETとベクトル長VLの積により指定される。換言すれば、レジスタセットREGSの開始位置は、ベクトル長VL単位で指定可能である。ベクトル長VLが”8”のとき、レジスタセット番号REGSETは”0”から”224”のいずれかに設定される。ベクトル長VLが”16”のとき、レジスタセット番号REGSETは”0”から”96”のいずれかに設定される。ベクトル長VLが”32”のとき、レジスタセット番号REGSETは”0”から”32”のいずれかに設定される。ベクトル長VLが”64”のとき、レジスタセット番号REGSETは”0”に設定される。   In this embodiment, the start position of the register set REGS is specified by the product of the register set number REGSET and the vector length VL. In other words, the start position of the register set REGS can be specified in units of vector length VL. When the vector length VL is “8”, the register set number REGSET is set from “0” to “224”. When the vector length VL is “16”, the register set number REGSET is set from “0” to “96”. When the vector length VL is “32”, the register set number REGSET is set from “0” to “32”. When the vector length VL is “64”, the register set number REGSET is set to “0”.

なお、レジスタセット番号REGSETは、”0”から”2047”の任意の開始位置に設定されてもよい。この場合、例えば、ベクトルレジスタファイルVRの最終のデータ格納領域と最初のデータ格納領域とを巡回的に接続することで、最終のデータ格納領域がレジスタセットREGSの途中になるときにも、ベクトルデータを確実に保持できる。   The register set number REGSET may be set to an arbitrary start position from “0” to “2047”. In this case, for example, when the final data storage area of the vector register file VR is cyclically connected to the first data storage area, the vector data can be obtained even when the final data storage area is in the middle of the register set REGS. Can be securely held.

先頭物理レジスタ番号は、図2と同様に、演算対象のデータ配列の先頭の物理レジスタ番号である。例えば、デコーダ14は、式(5)に示した加算命令に含まれる各オペランドvr0、vr1、vr2に設定されている論理レジスタ番号に基づいて、式(14)から先頭物理レジスタ番号を求め、ベクトルレジスタファイルVRに出力する。ベクトルレジスタファイルVRおよび実行パイプライン18の動作は、図14と同じである。   The top physical register number is the top physical register number of the data array to be calculated, as in FIG. For example, the decoder 14 obtains the head physical register number from the equation (14) based on the logical register number set in each operand vr0, vr1, vr2 included in the addition instruction shown in the equation (5), and Output to register file VR. The operations of the vector register file VR and the execution pipeline 18 are the same as those in FIG.

(先頭物理レジスタ番号)=(論理レジスタ番号)×VL+REGSET×VL‥‥(14)
ベクトルレジスタファイルVRの割り当て仕様は、レジスタセット番号REGSETとベクトル長VLの積により指定されること、先頭物理レジスタ番号の求め方が異なることを除き、図14と同様である。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
(Start physical register number) = (Logical register number) x VL + REGSET x VL (14)
The allocation specification of the vector register file VR is the same as that shown in FIG. 14 except that it is specified by the product of the register set number REGSET and the vector length VL, and the method of obtaining the top physical register number is different. As described above, also in this embodiment, the same effect as that of the above-described embodiment can be obtained.

図16は、上述したベクトル処理装置が搭載されるシステムの例を示している。例えば、システムSYSは、携帯電話等の組み込み型の通信機器であり、アンテナANT、高周波回路RF、アナログデジタル変換器A/D、ベクトル処理装置VP、プロセッサPROCおよび入出力部I/Oを有している。なお、図16は、アンテナANTを介してデータを受信するために必要な機能ブロックを示している。高周波回路RFおよびアナログデジタル変換器A/Dは、ベクトル処理装置のベクトル演算に使用されるベクトルデータを生成するデータ生成部の一例である。プロセッサPROCは、ベクトル処理装置により演算されたデータを用いてデータ処理を実行するデータ処理部の一例である。   FIG. 16 shows an example of a system in which the vector processing device described above is mounted. For example, the system SYS is a built-in communication device such as a mobile phone, and includes an antenna ANT, a high-frequency circuit RF, an analog-digital converter A / D, a vector processing device VP, a processor PROC, and an input / output unit I / O. ing. FIG. 16 shows functional blocks necessary for receiving data via the antenna ANT. The high-frequency circuit RF and the analog-digital converter A / D are an example of a data generation unit that generates vector data used for vector calculation of the vector processing device. The processor PROC is an example of a data processing unit that executes data processing using data calculated by the vector processing device.

高周波回路RFは、アンテナANTを介して受信する高周波信号から必要な周波数成分を取り出し、ベースバンド信号としてアナログデジタル変換器A/Dに出力する。アナログデジタル変換器A/Dは、アナログのベースバンド信号をデジタル信号に変換し、ベクトル処理装置VPに出力する。例えば、デジタル信号は、図1に示したデータメモリ20に書き込まれる。   The high-frequency circuit RF extracts a necessary frequency component from the high-frequency signal received via the antenna ANT and outputs it as a baseband signal to the analog / digital converter A / D. The analog-digital converter A / D converts an analog baseband signal into a digital signal and outputs the digital signal to the vector processing device VP. For example, the digital signal is written in the data memory 20 shown in FIG.

ベクトル処理装置VPは、上述したベクトル処理装置のいずれかである。ベクトル処理装置VPは、例えば、ベースバンド信号の処理装置として動作し、上述したベクトル演算を実行する。そして、ベクトル処理装置VPは、アナログデジタル変換器A/Dから供給されるデジタル信号を復調し、アンテナANTで受けた信号に含まれているデータを取得する。例えば、ベクトル処理装置VPは、取得したデータをデータメモリ20に書き込む。なお、ベクトル処理装置VPは、ベースバンド信号を処理するために動作するCPUのコプロセッサとして動作してもよい。この場合には、システムSYSは、コプロセッサとして動作するベクトル処理装置VPを制御するCPUを含む。   The vector processing device VP is one of the vector processing devices described above. The vector processing device VP operates as a baseband signal processing device, for example, and executes the above-described vector operation. Then, the vector processing device VP demodulates the digital signal supplied from the analog / digital converter A / D and acquires data included in the signal received by the antenna ANT. For example, the vector processing device VP writes the acquired data into the data memory 20. The vector processing device VP may operate as a coprocessor of a CPU that operates to process a baseband signal. In this case, the system SYS includes a CPU that controls the vector processing device VP operating as a coprocessor.

プロセッサPROCは、ベクトル処理装置VPにより取得されたデータの種類に応じた処理を実行するアプリケーション用のプロセッサであり、データメモリ20に保持されているベクトル処理装置VPにより演算されたデータを処理する。例えば、プロセッサPROCは、音声データを再生するためのデコード処理や、画像データを再生するためのデコード処理を実行する。なお、音声データのデコード処理と、画像データのデコード処理とをそれぞれ実行する複数のプロセッサPROGが形成されてもよい。   The processor PROC is an application processor that executes processing according to the type of data acquired by the vector processing device VP, and processes data calculated by the vector processing device VP held in the data memory 20. For example, the processor PROC executes a decoding process for reproducing audio data and a decoding process for reproducing image data. Note that a plurality of processors PROG that respectively perform audio data decoding processing and image data decoding processing may be formed.

入出力部I/Oは、プロセッサPROCによりデコードされる画像データを表示するディスプレイ、プロセッサPROGによりデコードされる音声データを出力するスピーカー、入力キー、あるいはカメラ等のユーザインタフェース部である。なお、ベクトル処理装置VPは、システムSYSにおいて、アンテナANTを介してデータを送信するための機能ブロックに搭載されてもよい。このとき、入出力部I/O等から供給されるデータを用いて送信データを生成するプロセッサは、ベクトル処理装置のベクトル演算に使用されるベクトルデータを生成するデータ生成部として動作する。ベクトル処理装置により演算されたデジタルの送信データをアナログ信号に変換するデジタルアナログ変換器は、ベクトル処理装置により演算されたデータを用いてデータ処理を実行するデータ処理部として動作する。   The input / output unit I / O is a user interface unit such as a display that displays image data decoded by the processor PROC, a speaker that outputs audio data decoded by the processor PROG, an input key, or a camera. The vector processing device VP may be mounted on a functional block for transmitting data via the antenna ANT in the system SYS. At this time, the processor that generates transmission data using data supplied from the input / output unit I / O or the like operates as a data generation unit that generates vector data used for vector calculation of the vector processing device. The digital-analog converter that converts digital transmission data calculated by the vector processing device into an analog signal operates as a data processing unit that performs data processing using the data calculated by the vector processing device.

上述した実施形態のベクトル処理装置VPをシステムSYSに搭載することで、ベクトルレジスタファイルVRの全ての領域を効率的に使用しながら、ベースバンド信号の処理を実行できる。この結果、ベースバンド信号の処理効率を向上でき、システムSYSの性能を向上できる。   By mounting the vector processing device VP of the above-described embodiment in the system SYS, it is possible to execute baseband signal processing while efficiently using all regions of the vector register file VR. As a result, the processing efficiency of the baseband signal can be improved, and the performance of the system SYS can be improved.

以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルと、
前記ベクトルレジスタファイル内に割り当てられ、命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットと、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報が格納される制御レジスタと、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスするデコーダと、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行する実行部と
を備えていることを特徴とするベクトル処理装置。
(付記2)
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、前記物理レジスタ番号の大きさの順にレジスタセット番号が付けられ、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域をそれぞれ有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号と前記の最大数とベクトル長との積を加えた値により指定されること
を特徴とする付記1記載のベクトル処理装置。
(付記3)
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各データレジスタは、ベクトル長の最大値と同じ数を有し、前記物理レジスタ番号が連続する前記データ格納領域を含み、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記各レジスタセットは、前記データレジスタのそれぞれの一部を含む集合により形成され、前記物理レジスタ番号の大きさの順にレジスタセット番号が付けられ、
前記各データレジスタにおける前記集合に含まれる前記一部は、相対的に同じ位置にあり、ベクトル長と同じ数を有し物理レジスタ番号が連続する前記データ格納領域を有し、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタにおいて、ベクトル演算を実行するベクトルデータが格納されている先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長の最大値との積に、前記レジスタセット番号とベクトル長との積を加えた値により指定されること
を特徴とする付記1記載のベクトル処理装置。
(付記4)
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域を有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号を加えた値により指定されること
を特徴とする付記1記載のベクトル処理装置。
(付記5)
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域を有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号とベクトル長との積を加えた値により指定されること
を特徴とする付記1記載のベクトル処理装置。
(付記6)
命令セットに、前記各レジスタセット内での前記データレジスタの位置を示す第1オペランドと、転送元の前記レジスタセットを指定する第2オペランドと、転送先の前記レジスタセットを指定する第3オペランドとを有するレジスタ転送命令を含み、
前記演算部は、前記レジスタ転送命令に応答して、前記第2オペランドにより指定されるレジスタセットにおける前記第1オペランドにより指定される前記データレジスタに格納されているベクトルデータを、前記第3オペランドにより指定されるレジスタセットにおける前記第1オペランドにより指定される前記データレジスタに転送すること
を特徴とする付記1ないし付記5のいずれか1項に記載のベクトル処理装置。
(付記7)
命令セットに、転送元の前記レジスタセット内での前記データレジスタの位置を示す第1オペランドと、転送先の前記レジスタセット内での前記データレジスタの位置を示す第2オペランドと、転送元の前記レジスタセットを指定する第3オペランドと、転送先の前記レジスタセットを指定する第4オペランドとを有するレジスタ転送命令を含み、
前記演算部は、前記レジスタ転送命令に応答して、前記第3オペランドにより指定されるレジスタセットにおける前記第1オペランドにより指定される前記に格納されているベクトルデータを、前記第4オペランドにより指定される前記レジスタセットにおける前記第2オペランドにより指定される前記データレジスタに転送すること
を特徴とする付記1ないし付記5のいずれか1項に記載のベクトル処理装置。
(付記8)
付記1ないし付記7のいずれか1項に記載のベクトル処理装置と、
前記ベクトル処理装置のベクトル演算に使用されるベクトルデータを生成するデータ生成部と、
前記ベクトル処理装置により演算されたデータを用いてデータ処理を実行するデータ処理部と
を備えていることを特徴とするシステム。
(付記9)
ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルを有するベクトル処理装置の動作方法であって、
命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットを、前記ベクトルレジスタファイル内に割り当て、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報を制御レジスタに格納し、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスし、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行すること
を特徴とするベクトル処理装置の動作方法。
(付記10)
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、前記物理レジスタ番号の大きさの順にレジスタセット番号が付けられ、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域をそれぞれ有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号と前記データレジスタの最大数とベクトル長との積を加えた値により指定されること
を特徴とする付記9記載のベクトル処理装置の動作方法。
(付記11)
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各データレジスタは、ベクトル長の最大値と同じ数を有し、前記物理レジスタ番号が連続する前記データ格納領域を含み、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記各レジスタセットは、前記データレジスタのそれぞれの一部を含む集合により形成され、前記物理レジスタ番号の大きさの順にレジスタセット番号が付けられ、
前記各データレジスタにおける前記集合に含まれる前記一部は、相対的に同じ位置にあり、ベクトル長と同じ数を有し物理レジスタ番号が連続する前記データ格納領域を有し、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタにおいて、ベクトル演算を実行するベクトルデータが格納されている先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長の最大値との積に、前記レジスタセット番号とベクトル長との積を加えた値により指定されること
を特徴とする付記9記載のベクトル処理装置の動作方法。
(付記12)
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域を有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号を加えた値により指定されること
を特徴とする付記9記載のベクトル処理装置の動作方法。
(付記13)
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域を有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号とベクトル長との積を加えた値により指定されること
を特徴とする付記9記載のベクトル処理装置の動作方法。
The invention described in the above embodiments is organized and disclosed as an appendix.
(Appendix 1)
A vector register file to which a plurality of data registers for storing vector data are allocated, and
A plurality of register sets allocated in the vector register file, each having a maximum number of the data registers that can be specified by an operand included in an instruction, the size of which varies according to the vector length;
Among the register sets, a control register that stores information indicating an effective register set that is a register set that holds vector data used for vector operations;
A decoder for accessing the data register specified by the operand with reference to a start position of the valid register set that changes according to a vector length;
An execution unit that executes a vector operation using vector data from the accessed data register.
(Appendix 2)
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are consecutive, and the register set numbers in order of the physical register numbers Is attached,
The data registers in each register set have the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register numbers,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the first data storage area of the data register specified by the operand is obtained by adding the product of the register set number, the maximum number, and the vector length to the product of the logical register number and the vector length. The vector processing device according to supplementary note 1, wherein the vector processing device is specified by a specified value.
(Appendix 3)
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each data register has the same number as the maximum value of the vector length, includes the data storage area in which the physical register numbers are continuous, and is given a logical register number in order of the size of the physical register number,
Each register set is formed by a set including a part of each of the data registers, and a register set number is given in order of the size of the physical register number,
The portions included in the set in each of the data registers have the data storage areas that are relatively at the same position, have the same number as the vector length, and have consecutive physical register numbers;
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
In the data register specified by the operand, the physical register number of the leading data storage area in which vector data for performing vector operation is stored is the product of the logical register number and the maximum vector length. The vector processing device according to appendix 1, wherein the vector processing device is specified by a value obtained by adding a product of a register set number and a vector length.
(Appendix 4)
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are continuous.
The data register in each register set has the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register number size,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the data storage area at the head of the data register specified by the operand is specified by a value obtained by adding the register set number to the product of the logical register number and the vector length. The vector processing device according to attachment 1.
(Appendix 5)
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are continuous.
The data register in each register set has the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register number size,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the data storage area at the head of the data register specified by the operand is specified by a value obtained by adding the product of the register set number and the vector length to the product of the logical register number and the vector length. The vector processing device according to supplementary note 1, wherein:
(Appendix 6)
A first operand indicating a position of the data register in each of the register sets; a second operand designating the transfer source register set; and a third operand designating the transfer destination register set; A register transfer instruction having
In response to the register transfer instruction, the arithmetic unit outputs vector data stored in the data register specified by the first operand in the register set specified by the second operand by the third operand. The vector processing device according to any one of appendix 1 to appendix 5, wherein transfer is performed to the data register designated by the first operand in a designated register set.
(Appendix 7)
The instruction set includes a first operand indicating a position of the data register in the transfer source register set, a second operand indicating a position of the data register in the transfer destination register set, and the transfer source A register transfer instruction having a third operand designating a register set and a fourth operand designating the register set to be transferred;
In response to the register transfer instruction, the arithmetic unit specifies the vector data stored in the register set specified by the third operand specified by the first operand by the fourth operand. 6. The vector processing device according to any one of appendix 1 to appendix 5, wherein the vector register is transferred to the data register specified by the second operand in the register set.
(Appendix 8)
The vector processing device according to any one of appendix 1 to appendix 7,
A data generation unit for generating vector data used for vector operation of the vector processing device;
A data processing unit that executes data processing using data calculated by the vector processing device.
(Appendix 9)
An operation method of a vector processing apparatus having a vector register file to which a plurality of data registers for storing vector data is assigned,
A plurality of register sets each having a maximum number of data registers that can be specified by an operand included in an instruction, and a plurality of register sets whose sizes change according to a vector length are allocated in the vector register file;
Among the register sets, information indicating an effective register set that is a register set that holds vector data used for vector operation is stored in a control register;
With reference to the start position of the valid register set that changes according to the vector length, the data register specified by the operand is accessed,
An operation method of a vector processing device, wherein vector operation is executed using vector data from the data register to be accessed.
(Appendix 10)
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are consecutive, and the register set numbers in order of the physical register numbers Is attached,
The data registers in each register set have the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register numbers,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the first data storage area of the data register specified by the operand is the product of the logical register number and the vector length, and the product of the register set number, the maximum number of the data registers, and the vector length. The operation method of the vector processing apparatus according to appendix 9, wherein the vector processing apparatus is specified by a value obtained by adding.
(Appendix 11)
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each data register has the same number as the maximum value of the vector length, includes the data storage area in which the physical register numbers are continuous, and is given a logical register number in order of the size of the physical register number,
Each register set is formed by a set including a part of each of the data registers, and a register set number is given in order of the size of the physical register number,
The portions included in the set in each of the data registers have the data storage areas that are relatively at the same position, have the same number as the vector length, and have consecutive physical register numbers;
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
In the data register specified by the operand, the physical register number of the leading data storage area in which vector data for performing vector operation is stored is the product of the logical register number and the maximum vector length. The operation method of the vector processing device according to appendix 9, characterized by being specified by a value obtained by adding a product of a register set number and a vector length.
(Appendix 12)
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are continuous.
The data register in each register set has the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register number size,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the data storage area at the head of the data register specified by the operand is specified by a value obtained by adding the register set number to the product of the logical register number and the vector length. The operation method of the vector processing device according to attachment 9.
(Appendix 13)
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are continuous.
The data register in each register set has the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register number size,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the data storage area at the head of the data register specified by the operand is specified by a value obtained by adding the product of the register set number and the vector length to the product of the logical register number and the vector length. The operation method of the vector processing device according to appendix 9, wherein:

以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。   From the above detailed description, features and advantages of the embodiments will become apparent. This is intended to cover the features and advantages of the embodiments described above without departing from the spirit and scope of the claims. Further, any person having ordinary knowledge in the technical field should be able to easily come up with any improvements and modifications, and there is no intention to limit the scope of the embodiments having the invention to those described above. It is also possible to rely on suitable improvements and equivalents within the scope disclosed in.

10‥命令メモリ;12‥命令バッファ;14‥デコーダ;16‥レジスタファイル群;18‥実行パイプライン;20‥データメモリ;A/D‥アナログデジタル変換器;ANT‥アンテナ;I/O‥入出力部;PROC‥プロセッサ;REGL‥論理レジスタ;REGS‥レジスタセットREGSET‥レジスタセット番号;RF‥高周波回路;SYS‥システム;VCR‥制御レジスタファイル;VL‥ベクトル長;VP‥ベクトル処理装置;VR‥ベクトルレジスタファイル   DESCRIPTION OF SYMBOLS 10 ... Instruction memory; 12 ... Instruction buffer; 14 ... Decoder; 16 ... Register file group; 18 ... Execution pipeline; 20 ... Data memory; A / D ... Analog-to-digital converter; ANT ... Antenna; Section: PROC: Processor; REGL: Logical register; REGS: Register set REGSET: Register set number; RF: High frequency circuit; SYS: System: VCR: Control register file; VL: Vector length; VP: Vector processing unit: VR: Vector Register file

Claims (8)

ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルと、
前記ベクトルレジスタファイル内に割り当てられ、命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットと、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報が格納される制御レジスタと、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスするデコーダと、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行する実行部とを備え、
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、前記物理レジスタ番号の大きさの順にレジスタセット番号が付けられ、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域をそれぞれ有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号と前記データレジスタの最大数とベクトル長との積を加えた値により指定されること
を特徴とするベクトル処理装置。
A vector register file to which a plurality of data registers for storing vector data are allocated, and
A plurality of register sets allocated in the vector register file, each having a maximum number of the data registers that can be specified by an operand included in an instruction, the size of which varies according to the vector length;
Among the register sets, a control register that stores information indicating an effective register set that is a register set that holds vector data used for vector operations;
A decoder for accessing the data register specified by the operand with reference to a start position of the valid register set that changes according to a vector length;
An execution unit that executes vector operation using vector data from the accessed data register;
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are consecutive, and the register set numbers in order of the physical register numbers Is attached,
The data registers in each register set have the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register numbers,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the first data storage area of the data register specified by the operand is the product of the logical register number and the vector length, and the product of the register set number, the maximum number of the data registers , and the vector length. the characteristics and be behenate vector processing apparatus that is specified by the value obtained by adding.
ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルと、
前記ベクトルレジスタファイル内に割り当てられ、命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットと、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報が格納される制御レジスタと、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスするデコーダと、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行する実行部とを備え、
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各データレジスタは、ベクトル長の最大値と同じ数を有し、前記物理レジスタ番号が連続する前記データ格納領域を含み、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記各レジスタセットは、前記データレジスタのそれぞれの一部を含む集合により形成され、前記物理レジスタ番号の大きさの順にレジスタセット番号が付けられ、
前記各データレジスタにおける前記集合に含まれる前記一部は、相対的に同じ位置にあり、ベクトル長と同じ数を有し物理レジスタ番号が連続する前記データ格納領域を有し、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタにおいて、ベクトル演算を実行するベクトルデータが格納されている先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長の最大値との積に、前記レジスタセット番号とベクトル長との積を加えた値により指定されること
を特徴とするベクトル処理装置。
A vector register file to which a plurality of data registers for storing vector data are allocated, and
A plurality of register sets allocated in the vector register file, each having a maximum number of the data registers that can be specified by an operand included in an instruction, the size of which varies according to the vector length;
Among the register sets, a control register that stores information indicating an effective register set that is a register set that holds vector data used for vector operations;
A decoder for accessing the data register specified by the operand with reference to a start position of the valid register set that changes according to a vector length;
An execution unit that executes vector operation using vector data from the accessed data register;
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each data register has the same number as the maximum value of the vector length, includes the data storage area in which the physical register numbers are continuous, and is given a logical register number in order of the size of the physical register number,
Each register set is formed by a set including a part of each of the data registers, and a register set number is given in order of the size of the physical register number,
The portions included in the set in each of the data registers have the data storage areas that are relatively at the same position, have the same number as the vector length, and have consecutive physical register numbers;
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
In the data register specified by the operand, the physical register number of the leading data storage area in which vector data for performing vector operation is stored is the product of the logical register number and the maximum vector length. features and be behenate vector processing apparatus that is specified by the product of the value obtained by adding the register set number and vector length.
ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルと、
前記ベクトルレジスタファイル内に割り当てられ、命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットと、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報が格納される制御レジスタと、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスするデコーダと、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行する実行部とを備え、
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域を有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号を加えた値により指定されること
を特徴とするベクトル処理装置。
A vector register file to which a plurality of data registers for storing vector data are allocated, and
A plurality of register sets allocated in the vector register file, each having a maximum number of the data registers that can be specified by an operand included in an instruction, the size of which varies according to the vector length;
Among the register sets, a control register that stores information indicating an effective register set that is a register set that holds vector data used for vector operations;
A decoder for accessing the data register specified by the operand with reference to a start position of the valid register set that changes according to a vector length;
An execution unit that executes vector operation using vector data from the accessed data register;
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are continuous.
The data register in each register set has the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register number size,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the top data storage area of the data register specified by the operand is specified by a value obtained by adding the register set number to the product of the logical register number and the vector length. behenate vector processing unit.
ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルと、
前記ベクトルレジスタファイル内に割り当てられ、命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットと、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報が格納される制御レジスタと、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスするデコーダと、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行する実行部とを備え、
前記ベクトルレジスタファイルにおいて、ベクトルデータの各々が格納されるデータ格納領域は、物理レジスタ番号が順に割り当てられ、
前記各レジスタセットは、ベクトル長と前記データレジスタの最大数との積と同じ数を有し前記物理レジスタ番号が連続する前記データ格納領域を含み、
前記各レジスタセット内の前記データレジスタは、ベクトル長と同じ数の前記データ格納領域を有し、前記物理レジスタ番号の大きさの順に論理レジスタ番号が付けられ、
前記制御レジスタは、前記レジスタセット番号が前記情報として格納され、
前記オペランドは、前記論理レジスタ番号を示し、
前記オペランドにより指定される前記データレジスタの先頭のデータ格納領域の物理レジスタ番号は、前記論理レジスタ番号とベクトル長との積に、前記レジスタセット番号とベクトル長との積を加えた値により指定されること
を特徴とするベクトル処理装置。
A vector register file to which a plurality of data registers for storing vector data are allocated, and
A plurality of register sets allocated in the vector register file, each having a maximum number of the data registers that can be specified by an operand included in an instruction, the size of which varies according to the vector length;
Among the register sets, a control register that stores information indicating an effective register set that is a register set that holds vector data used for vector operations;
A decoder for accessing the data register specified by the operand with reference to a start position of the valid register set that changes according to a vector length;
An execution unit that executes vector operation using vector data from the accessed data register;
In the vector register file, a data storage area in which each vector data is stored is assigned a physical register number in order,
Each of the register sets includes the data storage area having the same number as a product of a vector length and the maximum number of data registers, and the physical register numbers are continuous.
The data register in each register set has the same number of data storage areas as the vector length, and logical register numbers are assigned in order of the physical register number size,
In the control register, the register set number is stored as the information,
The operand indicates the logical register number;
The physical register number of the data storage area at the head of the data register specified by the operand is specified by a value obtained by adding the product of the register set number and the vector length to the product of the logical register number and the vector length. Rukoto features and be behenate vector processing apparatus.
ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルと、
前記ベクトルレジスタファイル内に割り当てられ、命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットと、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報が格納される制御レジスタと、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスするデコーダと、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行する実行部とを備え、
命令セットに、前記各レジスタセット内での前記データレジスタの位置を示す第1オペランドと、転送元の前記レジスタセットを指定する第2オペランドと、転送先の前記レジスタセットを指定する第3オペランドとを有するレジスタ転送命令を含み、
前記実行部は、前記レジスタ転送命令に応答して、前記第2オペランドにより指定される前記レジスタセットにおける前記第1オペランドにより指定される前記データレジスタに格納されているベクトルデータを、前記第3オペランドにより指定される前記レジスタセットにおける前記第1オペランドにより指定される前記データレジスタに転送すること
を特徴とするベクトル処理装置。
A vector register file to which a plurality of data registers for storing vector data are allocated, and
A plurality of register sets allocated in the vector register file, each having a maximum number of the data registers that can be specified by an operand included in an instruction, the size of which varies according to the vector length;
Among the register sets, a control register that stores information indicating an effective register set that is a register set that holds vector data used for vector operations;
A decoder for accessing the data register specified by the operand with reference to a start position of the valid register set that changes according to a vector length;
An execution unit that executes vector operation using vector data from the accessed data register;
A first operand indicating a position of the data register in each of the register sets; a second operand designating the transfer source register set; and a third operand designating the transfer destination register set; A register transfer instruction having
The execution unit, in response to said register transfer instruction, the vector data stored in said data register specified by the first operand in the register set specified by the second operand, the third operand features and be behenate vector processing apparatus to transfer the data register specified by the first operand in the register set specified by the.
ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルと、
前記ベクトルレジスタファイル内に割り当てられ、命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットと、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報が格納される制御レジスタと、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスするデコーダと、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行する実行部とを備え、
命令セットに、転送元の前記レジスタセット内での前記データレジスタの位置を示す第1オペランドと、転送先の前記レジスタセット内での前記データレジスタの位置を示す第2オペランドと、転送元の前記レジスタセットを指定する第3オペランドと、転送先の前記レジスタセットを指定する第4オペランドとを有するレジスタ転送命令を含み、
前記実行部は、前記レジスタ転送命令に応答して、前記第3オペランドにより指定される前記レジスタセットにおける前記第1オペランドにより指定される前記データレジスタに格納されているベクトルデータを、前記第4オペランドにより指定される前記レジスタセットにおける前記第2オペランドにより指定される前記データレジスタに転送すること
を特徴とするベクトル処理装置。
A vector register file to which a plurality of data registers for storing vector data are allocated, and
A plurality of register sets allocated in the vector register file, each having a maximum number of the data registers that can be specified by an operand included in an instruction, the size of which varies according to the vector length;
Among the register sets, a control register that stores information indicating an effective register set that is a register set that holds vector data used for vector operations;
A decoder for accessing the data register specified by the operand with reference to a start position of the valid register set that changes according to a vector length;
An execution unit that executes vector operation using vector data from the accessed data register;
The instruction set includes a first operand indicating a position of the data register in the transfer source register set, a second operand indicating a position of the data register in the transfer destination register set, and the transfer source A register transfer instruction having a third operand designating a register set and a fourth operand designating the register set to be transferred;
The execution unit, in response to said register transfer instruction, the vector data stored in said data register specified by the first operand in the register set specified by the third operand, said fourth operand features and be behenate vector processing apparatus to transfer the data register specified by the second operand in the register set specified by the.
請求項1ないし請求項のいずれか1項に記載のベクトル処理装置と、
前記ベクトル処理装置のベクトル演算に使用されるベクトルデータを生成するデータ生成部と、
前記ベクトル処理装置により演算されたデータを用いてデータ処理を実行するデータ処理部と
を備えていることを特徴とするシステム。
The vector processing device according to any one of claims 1 to 6 ,
A data generation unit for generating vector data used for vector operation of the vector processing device;
A data processing unit that executes data processing using data calculated by the vector processing device.
ベクトルデータを各々格納するための複数のデータレジスタが割り当てられるベクトルレジスタファイルを有するベクトル処理装置の動作方法であって、
命令に含まれるオペランドにより指定可能な最大数の前記データレジスタを各々有し、ベクトル長に応じてサイズが変化する複数のレジスタセットを、前記ベクトルレジスタファイル内に割り当て、
前記レジスタセットのうち、ベクトル演算に使用するベクトルデータを保持するレジスタセットである有効レジスタセットを示す情報を制御レジスタに格納し、
ベクトル長に応じて変化する前記有効レジスタセットの開始位置を基準にして、前記オペランドにより指定される前記データレジスタにアクセスし、
アクセスされる前記データレジスタからのベクトルデータを用いてベクトル演算を実行し、
命令セットに、前記各レジスタセット内での前記データレジスタの位置を示す第1オペランドと、転送元の前記レジスタセットを指定する第2オペランドと、転送先の前記レジスタセットを指定する第3オペランドとを有するレジスタ転送命令を含み、
前記レジスタ転送命令に応答して、前記第2オペランドにより指定される前記レジスタセットにおける前記第1オペランドにより指定される前記データレジスタに格納されているベクトルデータを、前記第3オペランドにより指定される前記レジスタセットにおける前記第1オペランドにより指定される前記データレジスタに転送すること
を特徴とするベクトル処理装置の動作方法。
An operation method of a vector processing apparatus having a vector register file to which a plurality of data registers for storing vector data is assigned,
A plurality of register sets each having a maximum number of data registers that can be specified by an operand included in an instruction, and a plurality of register sets whose sizes change according to a vector length are allocated in the vector register file;
Among the register sets, information indicating an effective register set that is a register set that holds vector data used for vector operation is stored in a control register;
With reference to the start position of the valid register set that changes according to the vector length, the data register specified by the operand is accessed,
Performing vector operations using vector data from the data register to be accessed ;
A first operand indicating a position of the data register in each of the register sets; a second operand designating the transfer source register set; and a third operand designating the transfer destination register set; A register transfer instruction having
In response to the register transfer instruction, the vector data stored in the data register specified by the first operand in the register set specified by the second operand is specified by the third operand. A method of operating a vector processing device, comprising: transferring to the data register specified by the first operand in a register set .
JP2011092189A 2011-04-18 2011-04-18 Vector processing apparatus, system, and operation method of vector processing apparatus Expired - Fee Related JP5673322B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011092189A JP5673322B2 (en) 2011-04-18 2011-04-18 Vector processing apparatus, system, and operation method of vector processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011092189A JP5673322B2 (en) 2011-04-18 2011-04-18 Vector processing apparatus, system, and operation method of vector processing apparatus

Publications (2)

Publication Number Publication Date
JP2012226486A JP2012226486A (en) 2012-11-15
JP5673322B2 true JP5673322B2 (en) 2015-02-18

Family

ID=47276601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011092189A Expired - Fee Related JP5673322B2 (en) 2011-04-18 2011-04-18 Vector processing apparatus, system, and operation method of vector processing apparatus

Country Status (1)

Country Link
JP (1) JP5673322B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307431B (en) * 2020-11-09 2023-10-27 哲库科技(上海)有限公司 VDSP, data processing method and communication equipment

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262971A (en) * 1985-05-17 1986-11-20 Fujitsu Ltd Constituting system for vector register

Also Published As

Publication number Publication date
JP2012226486A (en) 2012-11-15

Similar Documents

Publication Publication Date Title
JP6143872B2 (en) Apparatus, method, and system
JP5918287B2 (en) Instruction processing apparatus, method, system, and program for consolidating unmasked elements of operation mask
JP5926754B2 (en) Limited-range vector memory access instruction, processor, method, and system
CN109643233B (en) Data processing apparatus having a stream engine with read and read/forward operand encoding
JP5986188B2 (en) System, apparatus and method for fusing two source operands into a single destination using a write mask
US6539467B1 (en) Microprocessor with non-aligned memory access
KR101597774B1 (en) Processors, methods, and systems to implement partial register accesses with masked full register accesses
JP6466388B2 (en) Method and apparatus
US11080047B2 (en) Register file structures combining vector and scalar data with global and local accesses
JP7244046B2 (en) Spatial and temporal merging of remote atomic operations
JP3856737B2 (en) Data processing device
JP2021057004A (en) Device, method, and system for instruction of matrix calculation accelerator
US9471320B2 (en) Using L1 cache as re-order buffer
JP6419205B2 (en) Processor, method, system, computer system, and computer-readable storage medium
ES2934513T3 (en) Systems and methods to omit inconsequential matrix operations
JP5985526B2 (en) Robust and high performance instructions for system calls
JP2017134840A (en) Systems, apparatuses, and method for performing rotation and xor in response to single instruction
US20100318766A1 (en) Processor and information processing system
JP2018500652A (en) Method and apparatus for extending a mask to a vector of mask values
US6782470B1 (en) Operand queues for streaming data: A processor register file extension
JP5673322B2 (en) Vector processing apparatus, system, and operation method of vector processing apparatus
JP2020502669A (en) Vector generation instruction
JP5862397B2 (en) Arithmetic processing unit
JP5922353B2 (en) Processor
KR20040111559A (en) Method and apparatus for swapping the contents of address registers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140916

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141215

R150 Certificate of patent or registration of utility model

Ref document number: 5673322

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees