JP2006004226A - Data arithmetic unit - Google Patents

Data arithmetic unit Download PDF

Info

Publication number
JP2006004226A
JP2006004226A JP2004180639A JP2004180639A JP2006004226A JP 2006004226 A JP2006004226 A JP 2006004226A JP 2004180639 A JP2004180639 A JP 2004180639A JP 2004180639 A JP2004180639 A JP 2004180639A JP 2006004226 A JP2006004226 A JP 2006004226A
Authority
JP
Japan
Prior art keywords
data
register
index
registers
group
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.)
Pending
Application number
JP2004180639A
Other languages
Japanese (ja)
Inventor
Shiro Kobayashi
士朗 小林
Isamu Kozuka
勇 小塚
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.)
Asahi Kasei Corp
Original Assignee
Asahi Kasei Corp
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 Asahi Kasei Corp filed Critical Asahi Kasei Corp
Priority to JP2004180639A priority Critical patent/JP2006004226A/en
Publication of JP2006004226A publication Critical patent/JP2006004226A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data arithmetic unit suitable for improving the processing efficiency of a processor and reducing a program cost and a manufacturing cost. <P>SOLUTION: A data arithmetic part 12 comprises a register file composed of a plurality of registers and a computing element 202 performing operation by use of data of the register file 200. The data access between the register file 200 and a data memory 10 is performed in a group register unit consisting of four registers. The data arithmetic unit further comprises an index register file 208 storing, in case that two group registers are grouped as a register block, element index data designating the position of data in the register block, and selectors 204 and 206 selectively outputting, based on the element index data of the index register file 208, data of any one register among the registers of the register block to the computing element 202. <P>COPYRIGHT: (C)2006,JPO&amp;NCIPI

Description

本発明は、データを演算する装置および方法に係り、特に、プロセッサの処理効率を向上し、プログラムコストおよび製造コストを低減するのに好適なデータ演算装置に関する。   The present invention relates to an apparatus and method for calculating data, and more particularly to a data calculation apparatus suitable for improving the processing efficiency of a processor and reducing program cost and manufacturing cost.

デジタル信号処理をプロセッサで行う場合、メモリに対する1回のデータアクセスで、複数のデータをまとめて読み込んだり書き込んだりすることがある。これは、例えば、演算器で語長の長いデータが必要な場合や、処理効率を向上するために演算器で並列処理を行う場合に生じる。
32ビットのRISCプロセッサは、記憶容量が1バイト(8ビット)のレジスタを4つ単位でまとめてグループレジスタを構成し、レジスタファイルとメモリとの間のデータアクセスをグループレジスタ単位(4バイト単位)で行う。メモリに対しては、4の整数倍のアドレスを先頭アドレスとして4バイトのデータをグループレジスタにまとめて読み込み、4の整数倍のアドレスを先頭アドレスとしてグループレジスタのデータをまとめて書き込む。例えば、メモリの先頭から順にデータを読み込む場合、グループレジスタには、1回目のデータアクセスで0000h〜0003h番地のアドレスのデータが、2回目のデータアクセスで0004h〜0007h番地のアドレスのデータがそれぞれ読み込まれる。
When digital signal processing is performed by a processor, a plurality of data may be collectively read or written by one data access to the memory. This occurs, for example, when data having a long word length is required by the arithmetic unit, or when parallel processing is performed by the arithmetic unit in order to improve processing efficiency.
The 32-bit RISC processor configures a group register by grouping registers each having a storage capacity of 1 byte (8 bits) in units of four, and data access between the register file and the memory is performed in units of group registers (units of four bytes). To do. For the memory, 4 bytes of data are collectively read into the group register with an address that is an integer multiple of 4 as the start address, and the group register data is collectively written with an address that is an integer multiple of 4 as the start address. For example, when reading data sequentially from the beginning of the memory, the group register reads the data at addresses 0000h to 0003h at the first data access and the data at addresses 0004h to 0007h at the second data access. It is.

このようなデータアクセスを行う際、メモリ上のデータの先頭アドレスがプロセッサのアクセス単位の整数倍でない場合に問題が生じる。この状況は、メモリ上のデータのアドレス境界(以下、データ境界という。)が、プロセッサのアクセス可能なアドレス境界(以下、アクセス境界という。)と一致していないため、境界不整列データアクセスと呼ばれる。   When performing such data access, a problem arises when the top address of the data on the memory is not an integral multiple of the access unit of the processor. This situation is called boundary-misaligned data access because the address boundary of data on the memory (hereinafter referred to as data boundary) does not match the address boundary accessible by the processor (hereinafter referred to as access boundary). .

境界不整列データアクセスが引き起こす問題として、処理効率の低下を挙げることができる。32ビットのRISCプロセッサの場合、アクセス境界は、4の整数倍である。4バイト長のデータを処理する場合、4バイト長のデータをメモリから読み込むが、そのデータの先頭アドレスが4の倍数でないと、所望の4バイトを取得するために2回のデータアクセスが必要となり、さらにその並べ替えをソフトウェアで行うため、処理効率が低下する。このような問題を解決するため、RISCプロセッサ用のプログラムでは、コンパイル時に、データ境界とアクセス境界が一致するようにすべてのデータを配置し、実行時には境界不整列データアクセスが起こらないようにしている。
しかしながら、データの論理構造が重複している場合は、コンパイラでは対処することができない。
A problem caused by boundary misaligned data access can be a reduction in processing efficiency. For a 32-bit RISC processor, the access boundary is an integer multiple of four. When processing data of 4 bytes length, data of 4 bytes length is read from the memory, but if the head address of the data is not a multiple of 4, two data accesses are required to obtain the desired 4 bytes. Further, since the rearrangement is performed by software, the processing efficiency is lowered. In order to solve such a problem, in the RISC processor program, all data is arranged so that the data boundary and the access boundary coincide with each other at the time of compilation, so that the unaligned data access does not occur at the time of execution. .
However, if the logical structure of data overlaps, the compiler cannot handle it.

図10は、メモリ上のデータの配置を示す図である。
図10において、メモリには、0000h番地〜000Fh番地のアドレスに16バイトのデータs[0]〜s[15]が格納され、0100h番地〜010Fh番地のアドレスに16バイトのデータr[0]〜r[15]が格納されている。
データの論理構造が重複しているとは、s[0]〜s[3]が1つのグループデータを構成するが、s[1]〜s[4]、s[2]〜s[5]およびs[3]〜s[6]もそれぞれ1つのグループデータを構成する場合である。例えば、下式(1)〜(4)に示すような相関演算を行う場合には、境界不整列データアクセスを回避することができない。
FIG. 10 is a diagram showing the arrangement of data on the memory.
In FIG. 10, the memory stores 16 bytes of data s [0] to s [15] at addresses 0000h to 000Fh, and 16 bytes of data r [0] to addresses 0100h to 010Fh. r [15] is stored.
The logical structure of data is duplicated. S [0] to s [3] constitute one group data, but s [1] to s [4] and s [2] to s [5] And s [3] to s [6] also constitute one group data. For example, when performing a correlation operation as shown in the following equations (1) to (4), it is not possible to avoid boundary misaligned data access.

p[0] = r[0]*s[0] + r[1]*s[1] + r[2]*s[2] + r[3]*s[3] + … …(1)
p[1] = r[0]*s[1] + r[1]*s[2] + r[2]*s[3] + r[3]*s[4] + … …(2)
p[2] = r[0]*s[2] + r[1]*s[3] + r[2]*s[4] + r[3]*s[5] + … …(3)
p[3] = r[0]*s[3] + r[1]*s[4] + r[2]*s[5] + r[3]*s[6] + … …(4)
p [0] = r [0] * s [0] + r [1] * s [1] + r [2] * s [2] + r [3] * s [3] +… (1)
p [1] = r [0] * s [1] + r [1] * s [2] + r [2] * s [3] + r [3] * s [4] +… (2)
p [2] = r [0] * s [2] + r [1] * s [3] + r [2] * s [4] + r [3] * s [5] +… (3)
p [3] = r [0] * s [3] + r [1] * s [4] + r [2] * s [5] + r [3] * s [6] +… (4)

さらに、プログラムも4通り作成しなければならない。
まず、p[0] を求めるには、次の(1)〜(5)のステップを含むプログラムになる。p[4]、p[8]、…、p[4n]についても同様である。
(1)グループレジスタにs[0]〜s[3]を読み込む。
(2)〜(5)グループレジスタのデータに基づいて、r[0]*s[0]、r[1]*s[1]、r[2]*s[2]、r[3]*s[3]を演算する。
In addition, four programs must be created.
First, to obtain p [0], the program includes the following steps (1) to (5). The same applies to p [4], p [8], ..., p [4n].
(1) Read s [0] to s [3] into the group register.
(2) to (5) Based on the group register data, r [0] * s [0], r [1] * s [1], r [2] * s [2], r [3] * Calculate s [3].

次に、p[1] を求めるには、次の(1)〜(6)のステップを含むプログラムになる。p[5]、p[9]、…、p[4n+1]についても同様である。
(1)グループレジスタにs[0]〜s[3]を読み込む。
(2)〜(4)グループレジスタのデータに基づいて、r[0]*s[1]、r[1]*s[2]、r[2]*s[3]を演算する。
(5)グループレジスタにs[4]〜s[7]を読み込む。
(6)グループレジスタのデータに基づいて、r[3]*s[4]を演算する。
Next, to obtain p [1], the program includes the following steps (1) to (6). The same applies to p [5], p [9],..., p [4n + 1].
(1) Read s [0] to s [3] into the group register.
(2) to (4) Calculate r [0] * s [1], r [1] * s [2], r [2] * s [3] based on the data in the group register.
(5) Read s [4] to s [7] into the group register.
(6) Calculate r [3] * s [4] based on the group register data.

次に、p[2] を求めるには、次の(1)〜(6)のステップを含むプログラムになる。p[6]、p[10]、…、p[4n+2]についても同様である。
(1)グループレジスタにs[0]〜s[3]を読み込む。
(2),(3)グループレジスタのデータに基づいて、r[0]*s[2]、r[1]*s[3]を演算する。
(4)グループレジスタにs[4]〜s[7]を読み込む。
(5),(6)グループレジスタのデータに基づいて、r[2]*s[4]、r[3]*s[5]を演算する。
Next, to obtain p [2], the program includes the following steps (1) to (6). The same applies to p [6], p [10],..., p [4n + 2].
(1) Read s [0] to s [3] into the group register.
(2), (3) Calculate r [0] * s [2] and r [1] * s [3] based on the group register data.
(4) Read s [4] to s [7] into the group register.
(5), (6) Calculate r [2] * s [4] and r [3] * s [5] based on the group register data.

次に、p[3] を求めるには、次の(1)〜(6)のステップを含むプログラムになる。p[7]、p[11]、…、p[4n+3]についても同様である。
(1)グループレジスタにs[0]〜s[3]を読み込む。
(2)グループレジスタのデータに基づいて、r[0]*s[3]を演算する。
(3)グループレジスタにs[4]〜s[7]を読み込む。
(4)〜(6)グループレジスタのデータに基づいて、r[1]*s[4]、r[2]*s[5]、r[3]*s[6]を演算する。
Next, to obtain p [3], the program includes the following steps (1) to (6). The same applies to p [7], p [11], ..., p [4n + 3].
(1) Read s [0] to s [3] into the group register.
(2) Calculate r [0] * s [3] based on the group register data.
(3) Read s [4] to s [7] into the group register.
(4) to (6) r [1] * s [4], r [2] * s [5], and r [3] * s [6] are calculated based on the group register data.

このように、データの論理構造が重複している場合は、境界不整列データアクセスが生じてしまうため、処理効率が低下し、プログラムコスト(プログラムの作成に要する手間、プログラムのデータ容量および複雑さなどをいう。)が増加するという問題がある。このような問題を解決するため、特許文献1および非特許文献1記載のデジタル信号プロセッサが提案されている。   As described above, when the logical structure of the data overlaps, boundary-aligned data access occurs, so that the processing efficiency is reduced, and the program cost (the time required for creating the program, the data capacity and complexity of the program) is reduced. There is a problem that increases. In order to solve such problems, digital signal processors described in Patent Document 1 and Non-Patent Document 1 have been proposed.

図11は、従来のデジタル信号プロセッサの構成を示すブロック図である。
特許文献1および非特許文献1記載の発明は、図11に示すように、レジスタファイル200と、データを整列するデータ整列バッファ900とを備え、データ整列バッファ900を介してデータメモリ10からレジスタファイル200にデータを読み込む。
データ整列バッファ900は、整列バッファ910およびマルチプレクサ/バレルシフタ912を含む。
FIG. 11 is a block diagram showing the configuration of a conventional digital signal processor.
As shown in FIG. 11, the invention described in Patent Document 1 and Non-Patent Document 1 includes a register file 200 and a data alignment buffer 900 that aligns data, and the register file is transferred from the data memory 10 via the data alignment buffer 900. 200 reads the data.
Data alignment buffer 900 includes an alignment buffer 910 and a multiplexer / barrel shifter 912.

マルチプレクサ/バレルシフタ912は、データメモリ10からの32ビットと、整列バッファ910の出力からの32ビットとを含む64ビットのデータを受け取り、与えられたオフセット信号に応答して、64ビットのデータ中32ビットをその入力として選択し、選択した32ビットのデータをレジスタファイル200に供給する。
データ整列バッファ900は、境界整列データアクセス(データ境界がアクセス境界と一致している状況をいう。)および境界不整列データアクセスに用いることができる。境界整列データアクセスでは、マルチプレクサ/バレルシフタ912を介して、指定したオペランドを単一のメモリ行からレジスタファイル200に供給する。境界不整列データアクセスでは、整列バッファ910およびマルチプレクサ/バレルシフタ912を介して、指定したオペランドを2つのメモリ行からレジスタファイル200に供給する。
The multiplexer / barrel shifter 912 receives 64 bits of data including 32 bits from the data memory 10 and 32 bits from the output of the alignment buffer 910, and in response to a given offset signal, 32 of the 64 bits of data. A bit is selected as its input, and the selected 32-bit data is supplied to the register file 200.
The data alignment buffer 900 can be used for boundary aligned data access (referring to a situation where the data boundary matches the access boundary) and boundary unaligned data access. In aligned data access, a specified operand is supplied to the register file 200 from a single memory line via the multiplexer / barrel shifter 912. In boundary misaligned data access, the specified operand is supplied to the register file 200 from two memory lines via the alignment buffer 910 and the multiplexer / barrel shifter 912.

図12は、従来のデジタル信号プロセッサの動作を説明するための図である。
図12において、データメモリ10には、0000h番地〜0007h番地のアドレスに8バイトのデータs[0]〜s[7]が格納されている。
s[1]〜s[4]を読み込む境界不整列データアクセスを行う場合は、まず、s[0]〜s[3]を整列バッファ910に読み込む。次いで、例えば、図12(a)に示すように、「0」を示すオフセット信号をマルチプレクサ/バレルシフタ912に与えると、マルチプレクサ/バレルシフタ912によりデータの選択が行われ、レジスタファイル200にs[1]〜s[4]が供給される。
FIG. 12 is a diagram for explaining the operation of a conventional digital signal processor.
In FIG. 12, the data memory 10 stores 8-byte data s [0] to s [7] at addresses 0000h to 0007h.
When performing boundary misalignment data access for reading s [1] to s [4], first, s [0] to s [3] are read into the alignment buffer 910. Next, for example, as shown in FIG. 12A, when an offset signal indicating “0” is given to the multiplexer / barrel shifter 912, data selection is performed by the multiplexer / barrel shifter 912, and s [1] is stored in the register file 200. ~ S [4] is supplied.

また、s[2]〜s[5]を読み込む境界不整列データアクセスを行う場合は、例えば、図12(b)に示すように、「1」を示すオフセット信号をマルチプレクサ/バレルシフタ912に与えると、マルチプレクサ/バレルシフタ912によりデータの選択が行われ、レジスタファイル200にs[2]〜s[5]が供給される。
また、s[3]〜s[6]を読み込む境界不整列データアクセスを行う場合は、例えば、図12(c)に示すように、「2」を示すオフセット信号をマルチプレクサ/バレルシフタ912に与えると、マルチプレクサ/バレルシフタ912によりデータの選択が行われ、レジスタファイル200にs[3]〜s[6]が供給される。
特表2002−509312号公報 「ADSP-TS201 TigerSHARCR Processor Programming Reference」Analog Devices, Inc.,、Revision 0.1, June 2003, Part Number 82-000810-01、P.7−24
Further, when performing boundary misalignment data access for reading s [2] to s [5], for example, as shown in FIG. 12B, an offset signal indicating “1” is given to the multiplexer / barrel shifter 912. The multiplexer / barrel shifter 912 selects data, and s [2] to s [5] are supplied to the register file 200.
Further, when performing boundary misalignment data access for reading s [3] to s [6], for example, as shown in FIG. 12C, an offset signal indicating “2” is given to the multiplexer / barrel shifter 912. The multiplexer / barrel shifter 912 selects data, and s [3] to s [6] are supplied to the register file 200.
Japanese translation of PCT publication No. 2002-509912 “ADSP-TS201 TigerSHARCR Processor Programming Reference” Analog Devices, Inc., Revision 0.1, June 2003, Part Number 82-000810-01, p. 7-24

しかしながら、特許文献1および非特許文献1記載の発明にあっては、少なくともプロセッサのアクセス単位に相当する記憶容量(図11の例では、32ビット)の整列バッファ910を設けなければならないため、製造コストが増加するという問題があった。
また、図12の例では、境界不整列データアクセスのパターンを3つ示したが、この3つのアクセスパターンに対応するだけならば、オフセット信号は、2ビットですむ。しかしながら、例えば、s[0]、s[1]、s[4]、s[5]を読み込む境界不整列データアクセスなど、他のアクセスパターンにも対応しようとすると、オフセット信号のビット数がさらに必要となり、製造コストが増加するという問題があった。ちなみに、図12の例では、境界不整列データアクセスの全アクセスパターンは、84−2=68通りあるので、全アクセスパターンに対応しようとすると、オフセット信号は、7ビット必要となる。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、プロセッサの処理効率を向上し、プログラムコストおよび製造コストを低減するのに好適なデータ演算装置を提供することを目的としている。
However, in the inventions described in Patent Document 1 and Non-Patent Document 1, it is necessary to provide an alignment buffer 910 having a storage capacity (32 bits in the example of FIG. 11) corresponding to at least a processor access unit. There was a problem that the cost increased.
In the example of FIG. 12, three boundary misaligned data access patterns are shown. However, if only these three access patterns are supported, the offset signal may be 2 bits. However, for example, when trying to support other access patterns such as boundary misaligned data access for reading s [0], s [1], s [4], and s [5], the number of bits of the offset signal is further increased. There is a problem that the manufacturing cost increases. Incidentally, in the example of FIG. 12, since there are 8 C 4 −2 = 68 total access patterns for boundary misaligned data access, 7 bits are required for the offset signal in order to support all access patterns.
Therefore, the present invention has been made paying attention to such an unsolved problem of the conventional technology, and is suitable for improving the processing efficiency of the processor and reducing the program cost and the manufacturing cost. The object is to provide an arithmetic device.

上記目的を達成するために、本発明に係る請求項1記載のデータ演算装置は、複数のレジスタからなるレジスタファイルと、前記レジスタのデータを用いて演算を行う演算器とを備え、前記レジスタファイルと外部との間のデータアクセスを、複数の前記レジスタからなるグループレジスタ単位で行うデータ演算装置であって、インデックスデータを記憶するインデックスレジスタと、前記インデックスレジスタのインデックスデータに基づいて、前記レジスタファイルのレジスタのうち少なくとも2つの前記グループレジスタのなかから、1または複数の前記レジスタのデータを選択して前記演算器に出力するセレクタとを備える。   In order to achieve the above object, a data operation device according to claim 1 according to the present invention comprises: a register file comprising a plurality of registers; and an arithmetic unit that performs an operation using data in the register, wherein the register file A data arithmetic unit that performs data access between a register and an external unit in a group register unit including a plurality of registers, the index file storing index data, and the register file based on the index data of the index register And a selector that selects data of one or a plurality of the registers from at least two of the group registers and outputs the selected data to the arithmetic unit.

このような構成であれば、まず、境界不整列データアクセスが生じる可能性のあるデータ群を少なくとも2つのグループレジスタにまとめて読み込む。そして、インデックスレジスタにインデックスデータを格納すると、セレクタにより、インデックスレジスタのインデックスデータに基づいて、それらグループレジスタのなかから1または複数のレジスタのデータが選択されて演算器に出力され、演算器により演算が行われる。したがって、インデックスデータの格納、セレクタによる選択、および演算器による演算を繰り返し行えば、それらグループレジスタにまとめて読み込まれたデータ群のなかで演算に必要なデータが逐次選択されて演算器に出力される。いずれのデータを演算に用いるかは、インデックスデータによって選択することができるので、境界整列データアクセスとなるグループデータも、境界不整列データアクセスとなるグループデータも区別なく取り扱うことができる。すなわち、境界整列データアクセスとなるグループデータについては、グループレジスタの先頭のレジスタから順にデータを選択していけばよいし、境界不整列データアクセスとなるグループデータについては、グループレジスタの所定箇所のレジスタから順にデータを選択していけばよい。   With such a configuration, first, a data group that may cause boundary-unaligned data access is collectively read into at least two group registers. When the index data is stored in the index register, the selector selects one or a plurality of register data from the group register based on the index data of the index register and outputs the selected data to the arithmetic unit. Is done. Therefore, if index data storage, selection by the selector, and calculation by the arithmetic unit are repeated, data necessary for the calculation is sequentially selected from the group of data read in the group register and output to the arithmetic unit. The Which data is used for the calculation can be selected by the index data, so that it is possible to handle the group data for boundary aligned data access and the group data for boundary unaligned data access without distinction. That is, for group data to be boundary aligned data access, data may be selected in order from the first register of the group register, and for group data to be boundary unaligned data access, a register at a predetermined position of the group register You can select the data in order.

ここで、セレクタは、1または複数のレジスタのデータを選択するようになっていればどのような構成であってもよく、複数のレジスタのデータを選択する場合は、例えば、グループレジスタ内で連続したレジスタのデータであってもよいし、グループレジスタ内で分散したレジスタのデータであってもよい。
また、インデックスレジスタは、インデックスデータをあらゆる手段でかつあらゆる時期に記憶するものであり、インデックスデータをあらかじめ記憶してあるものであってもよいし、インデックスデータをあらかじめ記憶することなく、本装置の動作時に外部からの入力等によってインデックスデータを記憶するようになっていてもよい。
Here, the selector may have any configuration as long as it can select data of one or a plurality of registers. For example, when selecting data of a plurality of registers, the selector is continuous in the group register. The data of the registered registers may be used, or the data of the registers distributed in the group register may be used.
The index register stores the index data by any means and at any time. The index register may store the index data in advance, or without storing the index data in advance. The index data may be stored by an external input or the like during operation.

さらに、本発明に係る請求項2記載のデータ演算装置は、複数のレジスタからなるレジスタファイルと、前記レジスタのデータを用いて演算を行う演算器とを備え、前記レジスタファイルと外部との間のデータアクセスを、複数の前記レジスタからなるグループレジスタ単位で行うデータ演算装置であって、前記レジスタファイルのレジスタのうち少なくとも2つの前記グループレジスタをレジスタブロックとしてグループ化したときに、前記レジスタブロック内のデータの位置を指定するエレメントインデックスデータを記憶するインデックスレジスタと、前記インデックスレジスタのエレメントインデックスデータに基づいて、前記レジスタブロックのレジスタのなかからいずれか1つの前記レジスタのデータを選択して前記演算器に出力するセレクタとを備える。   Furthermore, the data operation device according to claim 2 according to the present invention includes a register file composed of a plurality of registers, and an arithmetic unit that performs an operation using the data of the register, and the data operation device between the register file and the outside A data operation device that performs data access in units of a group register composed of a plurality of registers, wherein when at least two of the group registers of the register file are grouped as a register block, An index register for storing element index data for designating a position of data; and based on the element index data of the index register, the data of any one of the registers is selected from the registers of the register block, and the arithmetic unit Out And a selector that.

このような構成であれば、まず、境界不整列データアクセスが生じる可能性のあるデータ群をレジスタブロックのレジスタにまとめて読み込む。そして、インデックスレジスタにエレメントインデックスデータを格納すると、セレクタにより、インデックスレジスタのエレメントインデックスデータに基づいて、レジスタブロックのレジスタのなかからいずれか1つのレジスタのデータが選択されて演算器に出力され、演算器により演算が行われる。したがって、エレメントインデックスデータの格納、セレクタによる選択、および演算器による演算を繰り返し行えば、レジスタブロックのレジスタにまとめて読み込まれたデータ群のなかで演算に必要なデータが逐次選択されて演算器に出力される。いずれのデータを演算に用いるかは、インデックスデータによって選択することができるので、境界整列データアクセスとなるグループデータも、境界不整列データアクセスとなるグループデータも区別なく取り扱うことができる。すなわち、境界整列データアクセスとなるグループデータについては、グループレジスタの先頭のレジスタから順にデータを選択していけばよいし、境界不整列データアクセスとなるグループデータについては、グループレジスタの所定箇所のレジスタから順にデータを選択していけばよい。   With such a configuration, first, a data group that may cause a boundary misaligned data access is collectively read into the register of the register block. When the element index data is stored in the index register, the selector selects one register data from the register block registers based on the element index data in the index register, and outputs the selected register data to the arithmetic unit. The calculation is performed by the instrument. Therefore, if the element index data is stored, the selection by the selector, and the operation by the arithmetic unit are repeated, the data necessary for the operation is sequentially selected from the data group read together in the register of the register block, and the operation unit is selected. Is output. Which data is used for the calculation can be selected by the index data, so that it is possible to handle the group data for boundary aligned data access and the group data for boundary unaligned data access without distinction. That is, for group data to be boundary aligned data access, data may be selected in order from the first register of the group register, and for group data to be boundary unaligned data access, a register at a predetermined position of the group register You can select the data in order.

ここで、グループレジスタのグループ化は、物理的に行ってもよいし、論理的に行ってもよい。前者の場合、例えば、レジスタファイルのなかで、レジスタブロックに属するグループレジスタと、他のレジスタとをそれぞれ別々のものとして構成することができる。以下、請求項7記載のデータ演算方法において同じである。
また、インデックスレジスタは、エレメントインデックスデータをあらゆる手段でかつあらゆる時期に記憶するものであり、エレメントインデックスデータをあらかじめ記憶してあるものであってもよいし、エレメントインデックスデータをあらかじめ記憶することなく、本装置の動作時に外部からの入力等によってエレメントインデックスデータを記憶するようになっていてもよい。
Here, grouping of the group registers may be performed physically or logically. In the former case, for example, in the register file, the group register belonging to the register block and the other registers can be configured separately. Hereinafter, the same applies to the data calculation method according to the seventh aspect.
The index register stores element index data at any time and at any time, and may store element index data in advance, or without storing element index data in advance. The element index data may be stored by an external input or the like when the apparatus is operating.

さらに、本発明に係る請求項3記載のデータ演算装置は、請求項2記載のデータ演算装置において、さらに、複数の前記インデックスレジスタからなるインデックスレジスタファイルと、与えられたセレクトデータに基づいて、前記インデックスレジスタファイルのなかからいずれか1つの前記インデックスレジスタのエレメントインデックスデータを選択して前記セレクタに出力する第2セレクタとを備える。   Furthermore, the data operation device according to claim 3 according to the present invention is the data operation device according to claim 2, wherein the data operation device is further based on an index register file including a plurality of the index registers and given select data. A second selector that selects element index data of any one of the index registers from the index register file and outputs the selected element index data to the selector.

このような構成であれば、セレクトデータが与えられると、第2セレクタにより、インデックスレジスタファイルのなかからいずれか1つのインデックスレジスタのエレメントインデックスデータが選択されてセレクタに出力され、セレクタにより、入力されたエレメントインデックスデータに基づいて、レジスタブロックのレジスタのなかからいずれか1つのレジスタのデータが選択されて演算器に出力される。   In such a configuration, when the select data is given, the element index data of any one of the index registers is selected from the index register file by the second selector and output to the selector, and is input by the selector. Based on the element index data, the data in one of the registers in the register block is selected and output to the computing unit.

さらに、本発明に係る請求項4記載のデータ演算装置は、請求項3記載のデータ演算装置において、さらに、前記セレクタに出力したエレメントインデックスデータを更新して前記インデックスレジスタファイルに格納するインデックスデータ更新手段を備える。
このような構成であれば、インデックスデータ更新手段により、セレクタに出力したエレメントインデックスデータが更新されてインデックスレジスタファイルに格納される。
Furthermore, the data operation device according to claim 4 according to the present invention is the data operation device according to claim 3, wherein the index data update further updates the element index data output to the selector and stores it in the index register file Means.
With such a configuration, the index data update means updates the element index data output to the selector and stores it in the index register file.

さらに、本発明に係る請求項5記載のデータ演算装置は、請求項2ないし4のいずれか1項に記載のデータ演算装置において、さらに、前記レジスタブロックを指定するバンドルインデックスデータが与えられたときに、与えられたバンドルインデックスデータ、および前記インデックスレジスタのエレメントインデックスデータに基づいて、当該バンドルインデックスデータにより指定される前記レジスタブロックおよび当該レジスタブロック内のデータの位置を示す第2エレメントインデックスデータを生成するインデックスデータ生成手段を備え、前記セレクタは、前記インデックスデータ生成手段で生成した第2エレメントインデックスデータに基づいて、複数の前記レジスタブロックのレジスタのなかからいずれか1つの前記レジスタのデータを選択して前記演算器に出力するようになっている。   Furthermore, the data operation device according to claim 5 of the present invention is the data operation device according to any one of claims 2 to 4, further comprising bundle index data specifying the register block. In addition, based on the given bundle index data and the element index data of the index register, the register block specified by the bundle index data and the second element index data indicating the position of the data in the register block are generated. Index data generating means for performing the processing, and the selector selects one of the registers of the plurality of register blocks based on the second element index data generated by the index data generating means. And outputs to the operation unit to select other data.

このような構成であれば、バンドルインデックスデータが与えられると、インデックスデータ生成手段により、与えられたバンドルインデックスデータおよびエレメントインデックスデータに基づいて、そのバンドルインデックスデータにより指定されるレジスタブロックおよびそのレジスタブロック内のデータの位置を示す第2エレメントインデックスデータが生成される。そして、セレクタにより、生成された第2エレメントインデックスデータに基づいて、複数のレジスタブロックのレジスタのなかからいずれか1つのレジスタのデータが選択されて演算器に出力される。   In such a configuration, when bundle index data is given, a register block designated by the bundle index data and its register block based on the given bundle index data and element index data by the index data generating means Second element index data indicating the position of the data within is generated. Then, based on the generated second element index data, the selector selects one register data from the registers of the plurality of register blocks and outputs the selected register data to the arithmetic unit.

さらに、本発明に係る請求項6記載のデータ演算装置は、請求項5記載のデータ演算装置において、前記インデックスデータ生成手段は、2以上の第1所定数の前記グループレジスタを前記レジスタブロックとして論理的にグループ化する第1バンドルモード、および前記第1所定数よりも多い第2所定数の前記グループレジスタを前記レジスタブロックとして論理的にグループ化する第2バンドルモードのうちいずれかを指定するバンドルモードデータが与えられたときに、与えられたバンドルモードデータ、前記バンドルインデックスデータおよび前記エレメントインデックスデータに基づいて、前記第2エレメントインデックスデータを生成するようになっている。   Furthermore, the data operation device according to claim 6 of the present invention is the data operation device according to claim 5, wherein the index data generation means uses two or more first predetermined number of group registers as the register block. A bundle that designates one of a first bundle mode for grouping and a second bundle mode for logically grouping a second predetermined number of group registers larger than the first predetermined number as the register block When the mode data is given, the second element index data is generated based on the given bundle mode data, the bundle index data, and the element index data.

このような構成であれば、第1バンドルモードおよび第2バンドルモードのうちいずれかを指定するバンドルモードデータが与えられると、インデックスデータ生成手段により、与えられたバンドルモードデータ、バンドルインデックスデータおよびエレメントインデックスデータに基づいて、第2エレメントインデックスデータが生成される。
一方、上記目的を達成するために、本発明に係る請求項7記載のデータ演算方法は、複数のレジスタからなるレジスタファイルと、前記レジスタのデータを用いて演算を行う演算器とを備え、前記レジスタファイルと外部との間のデータアクセスを、複数の前記レジスタからなるグループレジスタ単位で行うデータ演算装置を利用して演算を行うデータ演算方法であって、前記レジスタファイルのレジスタのうち少なくとも2つの前記グループレジスタをレジスタブロックとしてグループ化したときに、前記レジスタブロックの各グループレジスタに前記外部からデータを読み込むデータ読込ステップと、前記レジスタブロック内のデータの位置を指定するエレメントインデックスデータをインデックスレジスタに格納するインデックスデータ格納ステップと、前記インデックスレジスタのエレメントインデックスデータに基づいて、前記レジスタブロックのレジスタのなかからいずれか1つの前記レジスタのデータを選択して前記演算器に出力するデータ選択ステップと、前記演算器により演算を行う演算ステップとを含む。
さらに、本発明に係る請求項8記載のデータ演算方法は、請求項7記載のデータ演算方法において、さらに、前記インデックスデータ格納ステップ、前記データ選択ステップおよび前記演算ステップを繰り返し行う反復演算ステップを含む。
With such a configuration, when bundle mode data designating either the first bundle mode or the second bundle mode is given, the given bundle mode data, bundle index data, and elements are given by the index data generating means. Second element index data is generated based on the index data.
On the other hand, in order to achieve the above object, a data operation method according to claim 7 according to the present invention includes a register file including a plurality of registers, and an arithmetic unit that performs an operation using data of the registers, A data operation method for performing an operation using a data operation device that performs data access between a register file and the outside in units of a group register composed of a plurality of registers, wherein at least two of the registers of the register file When the group register is grouped as a register block, a data reading step for reading data from the outside into each group register of the register block, and element index data for designating the position of the data in the register block in the index register Index data to store A storage step; a data selection step of selecting data of any one of the registers from the registers of the register block based on element index data of the index register; and outputting the data to the computing unit; and And a calculation step for performing a calculation.
Furthermore, the data operation method according to claim 8 of the present invention is the data operation method according to claim 7, further comprising an iterative operation step of repeatedly performing the index data storage step, the data selection step, and the operation step. .

以上説明したように、本発明に係る請求項1記載のデータ演算装置によれば、境界不整列データアクセスとなる場合や、データの論理構造が重複している場合でも、レジスタファイルへのデータの読み込み回数が極端に増加することがないので、処理効率を向上することができるという効果が得られる。また、データの論理構造が重複している場合でも、プログラムの多少の変更で対応することができるので、プログラムコストを低減することができるという効果も得られる。さらに、インデックスレジスタおよびセレクタを設けるだけでよく、また、多くの境界不整列データアクセスのパターンに対応する場合でも、インデックスデータのビット数をさほど増やさなくてすむので、特許文献1記載の発明に比して、製造コストを低減することができるという効果も得られる。   As described above, according to the data operation device of the first aspect of the present invention, even when boundary unaligned data access occurs or when the logical structure of data overlaps, the data of the register file is stored. Since the number of readings does not increase extremely, an effect that the processing efficiency can be improved is obtained. In addition, even when the logical structure of data is duplicated, it is possible to cope with a slight change in the program, so that an effect of reducing the program cost can be obtained. Furthermore, it is only necessary to provide an index register and a selector, and even when dealing with many boundary-unaligned data access patterns, it is not necessary to increase the number of bits of the index data. And the effect that manufacturing cost can be reduced is also acquired.

さらに、本発明に係る請求項2記載のデータ演算装置によれば、境界不整列データアクセスとなる場合や、データの論理構造が重複している場合でも、レジスタファイルへのデータの読み込み回数が極端に増加することがないので、処理効率を向上することができるという効果が得られる。また、データの論理構造が重複している場合でも、プログラムの多少の変更で対応することができるので、プログラムコストを低減することができるという効果も得られる。さらに、インデックスレジスタおよびセレクタを設けるだけでよく、また、多くの境界不整列データアクセスのパターンに対応する場合でも、エレメントインデックスデータのビット数をさほど増やさなくてすむので、特許文献1記載の発明に比して、製造コストを低減することができるという効果も得られる。   Furthermore, according to the data operation device of the second aspect of the present invention, the number of times data is read into the register file is extremely small even when boundary-aligned data access occurs or when the logical structure of data is duplicated. Therefore, there is an effect that the processing efficiency can be improved. In addition, even when the logical structure of data is duplicated, it is possible to cope with a slight change in the program, so that an effect of reducing the program cost can be obtained. Furthermore, it is only necessary to provide an index register and a selector, and even when dealing with many boundary-unaligned data access patterns, it is not necessary to increase the number of bits of the element index data. In comparison, the manufacturing cost can be reduced.

さらに、本発明に係る請求項3記載のデータ演算装置によれば、複数のエレメントインデックスデータをインデックスレジスタファイルに格納しておき、セレクトデータによってそれらエレメントインデックスデータを選択的に使用することができるので、インデックスレジスタの使い勝手が向上し、プログラムを作成しやすくなるという効果が得られる。
さらに、本発明に係る請求項4記載のデータ演算装置によれば、エレメントインデックスデータを使用するたびに自動的に更新されるので、エレメントインデックスデータの更新をソフトウェアで行わなくてすみ、演算速度を向上することができるという効果が得られる。
Furthermore, according to the data arithmetic device according to claim 3 of the present invention, a plurality of element index data can be stored in the index register file, and the element index data can be selectively used by the select data. As a result, it is possible to improve the usability of the index register and to facilitate the creation of a program.
Furthermore, according to the data operation device of claim 4 according to the present invention, since the element index data is automatically updated every time it is used, it is not necessary to update the element index data by software, and the operation speed is increased. The effect that it can improve is acquired.

さらに、本発明に係る請求項5記載のデータ演算装置によれば、レジスタファイルに複数のレジスタブロックが存在する場合、バンドルインデックスデータによってそれらレジスタブロックを選択的に使用することができるので、レジスタの使い勝手が向上し、プログラムを作成しやすくなるという効果が得られる。
さらに、本発明に係る請求項6記載のデータ演算装置によれば、バンドルモードデータによってレジスタブロックの論理構造を変更することができるので、レジスタの使い勝手がさらに向上し、プログラムをさらに作成しやすくなるという効果が得られる。
Furthermore, according to the data arithmetic device according to claim 5 of the present invention, when there are a plurality of register blocks in the register file, the register blocks can be selectively used by the bundle index data. Usability is improved, and it is easy to create a program.
Furthermore, according to the data arithmetic device according to claim 6 of the present invention, since the logical structure of the register block can be changed by the bundle mode data, the usability of the register is further improved, and the program can be more easily created. The effect is obtained.

一方、本発明に係る請求項7記載のデータ演算方法によれば、データの論理構造が重複している場合でも、プログラムの多少の変更で対応することができるので、プログラムコストを低減することができるという効果も得られる。さらに、インデックスレジスタを利用するだけでよく、また、多くの境界不整列データアクセスのパターンに対応する場合でも、エレメントインデックスデータのビット数をさほど増やさなくてすむので、特許文献1記載の発明に比して、製造コストを低減することができるという効果も得られる。   On the other hand, according to the data operation method of the seventh aspect of the present invention, even if the logical structure of data is duplicated, it is possible to cope with a slight change in the program, so that the program cost can be reduced. The effect that it is possible is also acquired. Furthermore, it is only necessary to use an index register, and even when dealing with many boundary-unaligned data access patterns, it is not necessary to increase the number of bits of element index data so much, compared with the invention described in Patent Document 1. And the effect that manufacturing cost can be reduced is also acquired.

さらに、本発明に係る請求項8記載のデータ演算方法によれば、境界不整列データアクセスとなる場合や、データの論理構造が重複している場合でも、レジスタファイルへのデータの読み込み回数が極端に増加することがないので、処理効率を向上することができるという効果が得られる。   Furthermore, according to the data operation method of the present invention, the number of times data is read into the register file is extremely small even when boundary-aligned data access occurs or when the logical structure of data overlaps. Therefore, there is an effect that the processing efficiency can be improved.

以下、本発明の第1の実施の形態を図面を参照しながら説明する。図1ないし図6は、本発明に係るデータ演算装置の第1の実施の形態を示す図である。
本実施の形態は、本発明に係るデータ演算装置を、図1に示すように、デジタル信号処理を行う32ビットRISC型のデジタル信号処理装置100においてデータ演算部12に適用したものである。
Hereinafter, a first embodiment of the present invention will be described with reference to the drawings. 1 to 6 are diagrams showing a first embodiment of a data arithmetic device according to the present invention.
In this embodiment, as shown in FIG. 1, the data operation device according to the present invention is applied to the data operation unit 12 in a 32-bit RISC type digital signal processing device 100 that performs digital signal processing.

まず、デジタル信号処理装置100の構成を図1を参照しながら説明する。
図1は、デジタル信号処理装置100のハードウェア構成を示すブロック図である。
デジタル信号処理装置100は、図1に示すように、演算用のデータを記憶するデータメモリ10と、データメモリ10からデータを読み込んで演算を行うデータ演算部12と、データメモリ10のデータアドレスを生成するデータアドレス生成部14と、デジタル信号処理装置100全体の制御プログラムを記憶したプログラムメモリ16と、プログラムメモリ16の制御プログラムに基づいてデジタル信号処理装置100全体を制御するプログラムシーケンサ18とで構成されている。データメモリ10、データ演算部12、データアドレス生成部14およびプログラムシーケンサ18は、データを転送するための信号線であるバス20で相互にかつデータ授受可能に接続され、プログラムメモリ16は、プログラムシーケンサ18に直接接続されている。
First, the configuration of the digital signal processing apparatus 100 will be described with reference to FIG.
FIG. 1 is a block diagram illustrating a hardware configuration of the digital signal processing apparatus 100.
As shown in FIG. 1, the digital signal processing apparatus 100 includes a data memory 10 that stores data for calculation, a data calculation unit 12 that reads data from the data memory 10 and performs calculation, and a data address of the data memory 10. A data address generation unit 14 to be generated, a program memory 16 that stores a control program for the entire digital signal processing device 100, and a program sequencer 18 that controls the entire digital signal processing device 100 based on the control program in the program memory 16. Has been. The data memory 10, the data operation unit 12, the data address generation unit 14, and the program sequencer 18 are connected to each other via a bus 20 that is a signal line for transferring data, and the program memory 16 is a program sequencer. 18 is directly connected.

データメモリ10は、データ演算部12で演算対象となるデータ、およびデータ演算部12の演算結果のデータを格納する。また、データアドレス生成部14またはプログラムシーケンサ18内のレジスタの値を格納することもある。
データ演算部12は、データメモリ10に対して、4の整数倍のアドレス(0000h、0004h、0008h、000Ch…)をアクセス境界として4バイト単位でデータアクセスを行う。以下、データ演算部12のアクセス境界をグループアドレスという。
The data memory 10 stores data to be calculated by the data calculation unit 12 and calculation result data of the data calculation unit 12. Further, the value of a register in the data address generation unit 14 or the program sequencer 18 may be stored.
The data operation unit 12 performs data access to the data memory 10 in units of 4 bytes using an address (0000h, 0004h, 0008h, 000Ch...) That is an integer multiple of 4 as an access boundary. Hereinafter, the access boundary of the data operation unit 12 is referred to as a group address.

データアドレス生成部14は、データメモリ10と、データ演算部12、データアドレス生成部14またはプログラムシーケンサ18との間のデータ転送を実行する際に必要となるデータアドレスを生成する。また、データアドレスの生成に合わせて、データメモリ10を制御するための信号を生成する。これらの動作は、プログラムシーケンサ18からの制御信号により規定される。   The data address generation unit 14 generates a data address necessary for executing data transfer between the data memory 10 and the data calculation unit 12, the data address generation unit 14, or the program sequencer 18. Further, a signal for controlling the data memory 10 is generated in accordance with the generation of the data address. These operations are defined by control signals from the program sequencer 18.

図2は、データアドレスのデータ構造を示す図である。
データアドレスは、図2に示すように、mビットのデータからなり、データメモリ10の最小記憶単位を1バイトとして2mバイトのメモリ空間を1バイト単位でアクセス可能なアドレスを構成している。データアドレスは、上位(m−2)ビットbm-1,…,b2がグループアドレスを構成し、下位2ビットb1,b0がグループアドレス間の細分されたアドレスを構成している。
FIG. 2 shows the data structure of the data address.
Data address, as shown in FIG. 2 consists of m bits of data, constitutes a accessible address memory space of 2 m bytes minimum storage unit of the data memory 10 as a byte by one byte. In the data address, upper (m−2) bits b m−1 ,..., B 2 constitute a group address, and lower 2 bits b 1 and b 0 constitute a subdivided address between group addresses.

データアドレス生成部14は、より具体的には、複数のポインタレジスタを有し、データアドレスのうちグループアドレスをデータメモリ10に出力し、データアドレスのうち下位2ビットをデータ演算部12にそれぞれ出力する。
図1に戻り、プログラムシーケンサ18は、プログラムメモリ16から制御プログラムを読み出し、読み出した制御プログラムに従って、データメモリ10、データ演算部12、データアドレス生成部14、プログラムメモリ16およびプログラムシーケンサ18を制御する。データメモリ10、データ演算部12およびデータアドレス生成部14に対しては、バス20を介して制御信号を出力し、プログラムメモリ16は制御信号を直接出力する。
More specifically, the data address generation unit 14 has a plurality of pointer registers, outputs a group address among the data addresses to the data memory 10, and outputs lower 2 bits of the data address to the data operation unit 12, respectively. To do.
Returning to FIG. 1, the program sequencer 18 reads the control program from the program memory 16, and controls the data memory 10, the data calculation unit 12, the data address generation unit 14, the program memory 16, and the program sequencer 18 according to the read control program. . A control signal is output via the bus 20 to the data memory 10, the data calculation unit 12, and the data address generation unit 14, and the program memory 16 directly outputs the control signal.

次に、データ演算部12の構成を図3および図4を参照しながら詳細に説明する。
図3は、データ演算部12のハードウェア構成を示すブロック図である。
データ演算部12は、図3に示すように、複数のレジスタからなるレジスタファイル200と、レジスタファイル200のデータを用いて演算を行う演算器202と、レジスタファイル200のなかからデータを選択するセレクタ204,206と、複数のインデックスレジスタからなるインデックスレジスタファイル208と、インデックスレジスタファイル208のなかからデータを選択するセレクタ210,212と、インデックスレジスタファイル208のデータを更新する計算器214と、計算器214とバス20のデータを選択するセレクタ216とで構成されている。
Next, the configuration of the data calculation unit 12 will be described in detail with reference to FIGS. 3 and 4.
FIG. 3 is a block diagram illustrating a hardware configuration of the data calculation unit 12.
As shown in FIG. 3, the data operation unit 12 includes a register file 200 composed of a plurality of registers, a calculator 202 that performs operations using data in the register file 200, and a selector that selects data from the register file 200. 204, 206, an index register file 208 composed of a plurality of index registers, selectors 210, 212 for selecting data from the index register file 208, a calculator 214 for updating data in the index register file 208, and a calculator And a selector 216 for selecting data on the bus 20.

レジスタファイル200は、n個のグループレジスタR0〜Rn-1からなる。グループレジスタR0は、4個のレジスタR0[0]〜R0[3]からなり、各レジスタR0[0]〜R0[3]は、1バイトの記憶容量を有している。他のグループレジスタR1〜Rn-1についても同様の構成となっている。
セレクタ204は、グループレジスタR0,R1をレジスタブロックAとしてレジスタブロックAの各レジスタと接続し、セレクタ210からのセレクトデータに基づいて、レジスタブロックAのレジスタのなかからいずれか1つのレジスタのデータを選択し、選択したデータを演算器202の第1オペランドとして演算器202に出力する。
The register file 200 includes n group registers R 0 to R n−1 . The group register R 0 includes four registers R 0 [0] to R 0 [3], and each register R 0 [0] to R 0 [3] has a storage capacity of 1 byte. The other group registers R 1 to R n-1 have the same configuration.
The selector 204 connects the group registers R 0 and R 1 as the register block A to each register of the register block A, and selects one of the registers of the register block A based on the select data from the selector 210. Data is selected, and the selected data is output to the computing unit 202 as the first operand of the computing unit 202.

セレクタ210からのセレクトデータは、3ビットからなる。セレクタ204は、セレクトデータの最上位ビットが「0」であるときは、グループレジスタR0のうち下位2ビットの値により指定されるレジスタのデータを選択する。すなわち、セレクトデータが「000」であるときはレジスタR0[0]のデータを、「001」であるときはレジスタR0[1]のデータを、「010」であるときはレジスタR0[2]のデータを、「011」であるときはレジスタR0[3]のデータをそれぞれ選択する。また、セレクトデータの最上位ビットが「1」であるときは、グループレジスタR1のうち下位2ビットの値により指定されるレジスタのデータを選択する。すなわち、セレクトデータが「100」であるときはレジスタR1[0]のデータを、「101」であるときはレジスタR1[1]のデータを、「110」であるときはレジスタR1[2]のデータを、「111」であるときはレジスタR1[3]のデータをそれぞれ選択する。 The select data from the selector 210 consists of 3 bits. When the most significant bit of the select data is “0”, the selector 204 selects the data of the register designated by the value of the lower 2 bits of the group register R 0 . That is, when the select data is “000”, the data in the register R 0 [0] is stored. When the select data is “001”, the data in the register R 0 [1] is stored. When the select data is “010”, the register R 0 [ 0 ] is displayed. When the data in [2] is “011”, the data in the register R 0 [3] is selected. When the most significant bit of the select data is “1”, the register data designated by the value of the lower 2 bits of the group register R 1 is selected. In other words, the select data is the data of "100" when it is the register R 1 [0], the data of "101" at which time the register R 1 [1], "110" when it is the register R 1 [ When the data of 2] is “111”, the data of the register R 1 [3] is selected.

セレクタ206は、グループレジスタR2,R3をレジスタブロックBとしてレジスタブロックBの各レジスタと接続し、セレクタ212からのセレクトデータに基づいて、レジスタブロックBのレジスタのなかからいずれか1つのレジスタのデータを選択し、選択したデータを演算器202の第2オペランドとして演算器202に出力する。データの選択手順は、セレクタ204と同様である。
インデックスレジスタファイル208は、エレメントインデックスデータを各インデックスレジスタに記憶する。
The selector 206 connects the group registers R 2 and R 3 as the register block B to each register of the register block B, and selects one of the registers of the register block B based on the select data from the selector 212. Data is selected, and the selected data is output to the computing unit 202 as the second operand of the computing unit 202. The data selection procedure is the same as that of the selector 204.
The index register file 208 stores element index data in each index register.

図4は、エレメントインデックスデータのデータ構造を示す図である。
エレメントインデックスデータは、図4に示すように、3ビットのデータからなり、最上位ビットb2がグループレジスタR0,R1(R2,R3)の別を示し、下位2ビットb1,b0がグループレジスタの各レジスタの別を示す。エレメントインデックスデータの各ビットは、セレクタ210,212からのセレクトデータの各ビットに対応している。また、エレメントインデックスデータの下位2ビットb1,b0は、データアドレスの下位2ビットb1,b0に対応している。
FIG. 4 is a diagram showing the data structure of element index data.
As shown in FIG. 4, the element index data is composed of 3-bit data. The most significant bit b 2 indicates the group register R 0 , R 1 (R 2 , R 3 ), and the lower 2 bits b 1 , b 0 indicates the group register. Each bit of the element index data corresponds to each bit of the select data from the selectors 210 and 212. The lower 2 bits b 1, b 0 of the element index data corresponds to the lower 2 bits b 1, b 0 of the data address.

図3に戻り、セレクタ210は、プログラムシーケンサ18からのセレクトデータに基づいて、インデックスレジスタファイル208のなかからいずれか1つのインデックスレジスタのエレメントインデックスデータを選択してセレクタ204に出力する。なお、プログラムシーケンサ18では、セレクタ210を制御する命令コードを実行すると、その命令コードに対応するオペランドをセレクトデータとしてセレクタ210に出力する。   Returning to FIG. 3, the selector 210 selects element index data of any one of the index registers from the index register file 208 based on the select data from the program sequencer 18 and outputs the selected element index data to the selector 204. When the program sequencer 18 executes an instruction code that controls the selector 210, the program sequencer 18 outputs an operand corresponding to the instruction code to the selector 210 as select data.

セレクタ212は、プログラムシーケンサ18からのセレクトデータに基づいて、インデックスレジスタファイル208のなかからいずれか1つのインデックスレジスタのエレメントインデックスデータを選択してセレクタ206に出力する。なお、プログラムシーケンサ18では、セレクタ212を制御する命令コードを実行すると、その命令コードに対応するオペランドをセレクトデータとしてセレクタ212に出力する。   The selector 212 selects element index data of any one of the index registers from the index register file 208 based on the select data from the program sequencer 18 and outputs it to the selector 206. When the program sequencer 18 executes an instruction code that controls the selector 212, the program sequencer 18 outputs an operand corresponding to the instruction code to the selector 212 as select data.

計算器214は、セレクタ210またはセレクタ212からセレクトデータとして出力されるエレメントインデックスデータを更新してセレクタ216に出力する。エレメントインデックスデータは、レジスタブロックA,Bのレジスタからデータを取得する順序があらかじめ決まっている場合に、その順序でデータが選択できるように更新する。例えば、レジスタブロックA,Bの先頭方向から末尾方向に連続してデータを選択する場合は、エレメントインデックスデータに「1」を加算することにより更新する。末尾方向から先頭方向に連続してデータを選択する場合は、エレメントインデックスデータから「1」を減算することにより更新する。   The calculator 214 updates the element index data output as select data from the selector 210 or the selector 212 and outputs it to the selector 216. The element index data is updated so that the data can be selected in that order when the order of obtaining the data from the registers of the register blocks A and B is determined in advance. For example, when data is continuously selected from the head direction to the tail direction of the register blocks A and B, the data is updated by adding “1” to the element index data. When data is continuously selected from the tail direction to the head direction, the data is updated by subtracting “1” from the element index data.

セレクタ216は、プログラムシーケンサ18からのセレクトデータに基づいて、データアドレス生成部14からのデータアドレスのうち下位2ビットのデータ、および計算器214からのエレメントインデックスデータのうちいずれか一方を選択してインデックスレジスタファイル208に格納する。なお、プログラムシーケンサ18では、セレクタ216を制御する命令コードを実行すると、その命令コードに対応するオペランドをセレクトデータとしてセレクタ216に出力する。   Based on the select data from the program sequencer 18, the selector 216 selects either the lower 2 bits of the data address from the data address generator 14 or the element index data from the calculator 214. Store in the index register file 208. Note that when the instruction code for controlling the selector 216 is executed, the program sequencer 18 outputs an operand corresponding to the instruction code to the selector 216 as select data.

次に、本実施の形態の動作を図5および図6を参照しながら説明する。
初めに、デジタル信号処理装置100で上式(1)に示す相関演算を行う場合を説明する。ただし、s[n]とr[n]は、図10に示すように、データメモリ10に格納されているとする。
図5は、プログラムシーケンサ18で実行される処理を示すフローチャートである。
プログラムシーケンサ18では、プログラムメモリ16から制御プログラムが読み出され、読み出された制御プログラムに従って、図5のフローチャートに示す相関演算処理がステップS100〜S150の順で実行される。
Next, the operation of the present embodiment will be described with reference to FIGS.
First, the case where the digital signal processing apparatus 100 performs the correlation calculation shown in the above equation (1) will be described. However, it is assumed that s [n] and r [n] are stored in the data memory 10 as shown in FIG.
FIG. 5 is a flowchart showing processing executed by the program sequencer 18.
In the program sequencer 18, the control program is read from the program memory 16, and the correlation calculation processing shown in the flowchart of FIG. 5 is executed in the order of steps S100 to S150 in accordance with the read control program.

ステップS100では、ポインタレジスタP0にr[0]のデータアドレスを設定する命令コードが実行されると、データアドレス生成部14では、r[0]のデータアドレスのうちグループアドレスがポインタレジスタP0に格納される。また、データ演算部12では、r[0]のデータアドレスのうち下位2ビットのデータがインデックスレジスタファイル208に格納される。r[0]のデータアドレスのうち下位2ビットは「00」なので、最上位ビットを「0」として3ビットのデータ「000」がエレメントインデックスデータrとして格納される。   In step S100, when the instruction code for setting the data address of r [0] in the pointer register P0 is executed, the data address generator 14 stores the group address in the data address of r [0] in the pointer register P0. Is done. In the data operation unit 12, the lower 2 bits of the data address of r [0] are stored in the index register file 208. Since the lower 2 bits of the data address of r [0] are “00”, the most significant bit is “0” and 3-bit data “000” is stored as element index data r.

ステップS102では、ポインタレジスタP1にs[0]のデータアドレスを設定する命令コードが実行されると、データアドレス生成部14では、s[0]のデータアドレスのうちグループアドレスがポインタレジスタP1に格納される。また、データ演算部12では、s[0]のデータアドレスのうち下位2ビットのデータがインデックスレジスタファイル208に格納される。s[0]のデータアドレスのうち下位2ビットは「00」なので、最上位ビットを「0」として3ビットのデータ「000」がエレメントインデックスデータsとして格納される。   In step S102, when an instruction code for setting the data address of s [0] in the pointer register P1 is executed, the data address generator 14 stores the group address in the data address of s [0] in the pointer register P1. Is done. In the data operation unit 12, the lower 2 bits of the data address of s [0] are stored in the index register file 208. Since the lower 2 bits of the data address of s [0] are “00”, the most significant bit is “0” and 3-bit data “000” is stored as element index data s.

ステップS104では、レジスタA0(グループレジスタR4〜Rn-1のいずれか)の内容を初期化する命令コードが実行されると、データ演算部12では、レジスタA0に「0」が設定される。
ステップS108では、ポインタレジスタP1が指し示すグループアドレスのデータをグループレジスタR0に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からs[0]〜s[3]がグループレジスタR0に読み込まれる。
In step S104, the instruction code to initialize the contents of the register A0 (either Group Register R 4 ~R n-1) is executed, the data calculating unit 12, "0" is set in the register A0 .
In step S108, when the instruction code for reading the data of the group address indicated by the pointer register P1 into the group register R0 is executed, the data operation unit 12 stores s [0] to s [3] from the data memory 10 into the group register. Read into R0 .

ステップS110では、ポインタレジスタP1を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP1のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のs[4]を指し示すことになる。
ステップS112では、ポインタレジスタP1が指し示すグループアドレスのデータをグループレジスタR1に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からs[4]〜s[7]がグループレジスタR1に読み込まれる。
In step S110, when the instruction code for adding the pointer register P1 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P1. On the data memory 10, s [4] that is 4 bytes ahead is indicated.
In step S112, when the instruction code read data of the group address pointer register P1 pointed to the group registers R 1 is executed, the data calculating unit 12, s [4] from the data memory 10 ~s [7] is Group Register It is loaded into R 1.

ステップS114では、ポインタレジスタP1を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP1のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のs[8]を指し示すことになる。
ステップS116では、ポインタレジスタP0が指し示すグループアドレスのデータをグループレジスタR2に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からr[0]〜r[3]がグループレジスタR2に読み込まれる。
ステップS118では、ポインタレジスタP0を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP0のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のr[4]を指し示すことになる。
In step S114, when the instruction code for adding the pointer register P1 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P1. On the data memory 10, s [8] that is 4 bytes ahead is indicated.
At step S116, the instruction code reads data group address pointer register P0 pointed to a group register R 2 is executed, the data calculating unit 12, r [0] from the data memory 10 ~r [3] is Group Register It is loaded into R 2.
In step S118, when the instruction code for adding the pointer register P0 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P0. On the data memory 10, it points to r [4] 4 bytes ahead.

ステップS120では、レジスタブロックA,Bのレジスタのデータを演算する命令コード(以下、ブロック演算命令コードという。)が実行されると、データ演算部12では、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ210により、エレメントインデックスデータs「000」が選択されてセレクタ204に出力され、セレクタ204により、レジスタR0[0]のデータs[0]が選択されて演算器202に出力される。また、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ212により、エレメントインデックスデータr「000」が選択されてセレクタ206に出力され、セレクタ206により、レジスタR2[0]のデータr[0]が選択されて演算器202に出力される。そして、演算器202により、s[0]とr[0]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項の演算結果が得られる。また、計算器214により、エレメントインデックスデータs,rにそれぞれ「1」が加算され、インデックスレジスタファイル208に格納される。 In step S120, when an instruction code for calculating the register data of the register blocks A and B (hereinafter referred to as a block operation instruction code) is executed, the data operation unit 12 is based on the select data from the program sequencer 18. The element index data s “000” is selected by the selector 210 and outputted to the selector 204, and the data s [0] of the register R 0 [0] is selected by the selector 204 and outputted to the computing unit 202. Further, based on the select data from the program sequencer 18, the element index data r “000” is selected by the selector 212 and output to the selector 206, and the selector 206 outputs the data r [0] of the register R 2 [0]. Is selected and output to the computing unit 202. Then, s [0] and r [0] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the first term of the above equation (1) is obtained. Further, “1” is added to the element index data s and r by the calculator 214 and stored in the index register file 208.

ステップS122では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ210により、エレメントインデックスデータs「001」が選択されてセレクタ204に出力され、セレクタ204により、レジスタR0[1]のデータs[1]が選択されて演算器202に出力される。また、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ212により、エレメントインデックスデータr「001」が選択されてセレクタ206に出力され、セレクタ206により、レジスタR2[1]のデータr[1]が選択されて演算器202に出力される。そして、演算器202により、s[1]とr[1]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項および第2項の演算結果が得られる。また、計算器214により、エレメントインデックスデータs,rにそれぞれ「1」が加算され、インデックスレジスタファイル208に格納される。 In step S122, when the block operation instruction code is further executed, the data operation unit 12 selects the element index data s “001” by the selector 210 based on the select data from the program sequencer 18 and selects the selector 204. The selector 204 selects the data s [1] of the register R 0 [1] and outputs it to the computing unit 202. Further, based on the select data from the program sequencer 18, the element index data r “001” is selected by the selector 212 and output to the selector 206, and the selector 206 outputs the data r [1] of the register R 2 [1]. Is selected and output to the computing unit 202. The computing unit 202 multiplies s [1] and r [1], adds the multiplication result to the value of the register A0, and stores the result in the register A0. Thereby, the calculation results of the first term and the second term of the above formula (1) are obtained. Further, “1” is added to the element index data s and r by the calculator 214 and stored in the index register file 208.

ステップS124では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR0[2],R2[2]のデータs[2],r[2]がそれぞれ選択される。そして、演算器202により、s[2]とr[2]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第3項の演算結果が得られる。 At step S124, the further the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 0 [2], data of R 2 [2] s [2 ], r [2] is selected. Then, s [2] and r [2] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 3rd term of the above formula (1) is obtained.

ステップS126では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR0[3],R2[3]のデータs[3],r[3]がそれぞれ選択される。そして、演算器202により、s[3]とr[3]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第4項の演算結果が得られる。 In step S126, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 0 [3], the data s of R 2 [3] [3] , Each r [3] is selected. Then, s [3] and r [3] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 4th term of the above formula (1) is obtained.

ステップS128では、ポインタレジスタP1が指し示すグループアドレスのデータをグループレジスタR0に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からs[8]〜s[11]がグループレジスタR0に読み込まれる。
ステップS130では、ポインタレジスタP1を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP1のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のs[12]を指し示すことになる。
In step S128, when an instruction code for reading the data of the group address indicated by the pointer register P1 into the group register R0 is executed, the data operation unit 12 stores s [8] to s [11] from the data memory 10 into the group register. Read into R0 .
In step S130, when the instruction code for adding the pointer register P1 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P1. On the data memory 10, s [12] that is 4 bytes ahead is indicated.

ステップS132では、ポインタレジスタP0が指し示すグループアドレスのデータをグループレジスタR3に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からr[4]〜r[7]がグループレジスタR3に読み込まれる。
ステップS134では、ポインタレジスタP0を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP0のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のr[7]を指し示すことになる。
In step S132, when the instruction code read data group address pointer register P0 pointed to a group register R 3 is executed, the data calculating unit 12, r [4] from the data memory 10 ~r [7] is Group Register It is loaded into R 3.
In step S134, when the instruction code for adding the pointer register P0 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P0. On the data memory 10, it points to r [7] 4 bytes ahead.

ステップS136では、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[0],R3[0]のデータs[4],r[4]がそれぞれ選択される。そして、演算器202により、s[4]とr[4]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第5項の演算結果が得られる。 In step S136, when the block operation instruction code is executed, the data operation unit 12 similarly uses the selectors 204 and 206 to store the data s [4] and r [[] in the registers R 1 [0] and R 3 [0]. 4] is selected respectively. Then, s [4] and r [4] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation results of the first to fifth terms of the above equation (1) are obtained.

ステップS138では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[1],R3[1]のデータs[5],r[5]がそれぞれ選択される。そして、演算器202により、s[5]とr[5]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第6項の演算結果が得られる。 In step S138, when the block operation instruction code is further executed, the data operation unit 12 similarly uses the selectors 204 and 206 to store the data s [5], Rs [1], R3 [1] in the registers R 1 [1], R 3 [1]. r [5] is selected. Then, s [5] and r [5] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 6th term of the above formula (1) is obtained.

ステップS140では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[2],R3[2]のデータs[6],r[6]がそれぞれ選択される。そして、演算器202により、s[6]とr[6]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第7項の演算結果が得られる。 In step S140, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 1 [2], data s of R 3 [2] [6] , Each r [6] is selected. Then, s [6] and r [6] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 7th term of the above formula (1) is obtained.

ステップS142では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[3],R3[3]のデータs[7],r[7]がそれぞれ選択される。そして、演算器202により、s[7]とr[7]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第8項の演算結果が得られる。 In step S142, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 1 [3], the data s [7] of R 3 [3], Each r [7] is selected. Then, s [7] and r [7] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 8th term of the above formula (1) is obtained.

ステップS144では、ポインタレジスタP1が指し示すグループアドレスのデータをグループレジスタR1に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からs[12]〜s[15]がグループレジスタR1に読み込まれる。
ステップS146では、ポインタレジスタP1を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP1のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のs[16]を指し示すことになる。
In step S144, when the instruction code read data of the group address pointer register P1 pointed to the group registers R 1 is executed, the data calculating unit 12, s [12] from the data memory 10 ~s [15] is Group Register It is loaded into R 1.
In step S146, when the instruction code for adding the pointer register P1 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P1. On the data memory 10, it points to s [16] 4 bytes ahead.

ステップS148では、ポインタレジスタP0が指し示すグループアドレスのデータをグループレジスタR2に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からr[8]〜r[11]がグループレジスタR2に読み込まれる。
ステップS150では、ポインタレジスタP0を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP0のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のr[12]を指し示すことになる。
以下は、ステップS120〜S150の処理を必要な数だけ繰り返し行えばよい。
In step S148, when the instruction code read data group address pointer register P0 pointed to a group register R 2 is executed, the data calculating unit 12, r [8] from the data memory 10 ~r [11] is Group Register It is loaded into R 2.
In step S150, when the instruction code for adding the pointer register P0 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P0. On the data memory 10, it points to r [12] 4 bytes ahead.
In the following, the processes in steps S120 to S150 may be repeated as many times as necessary.

次に、デジタル信号処理装置100で上式(2)に示す相関演算を行う場合を説明する。ただし、s[n]とr[n]は、図10に示すように、データメモリ10に格納されているとする。
図6は、プログラムシーケンサ18で実行される処理を示すフローチャートである。
プログラムシーケンサ18では、プログラムメモリ16から制御プログラムが読み出され、読み出された制御プログラムに従って、図6のフローチャートに示す相関演算処理がステップS200〜S250の順で実行される。
Next, the case where the digital signal processing apparatus 100 performs the correlation calculation shown in the above equation (2) will be described. However, it is assumed that s [n] and r [n] are stored in the data memory 10 as shown in FIG.
FIG. 6 is a flowchart showing processing executed by the program sequencer 18.
In the program sequencer 18, the control program is read from the program memory 16, and the correlation calculation processing shown in the flowchart of FIG. 6 is executed in the order of steps S200 to S250 in accordance with the read control program.

ステップS200では、ステップS100と同一の処理が実行される。
ステップS202では、ポインタレジスタP1にs[1]のデータアドレスを設定する命令コードが実行されると、データアドレス生成部14では、s[1]のデータアドレスのうちグループアドレスがポインタレジスタP1に格納される。また、データ演算部12では、s[1]のデータアドレスのうち下位2ビットのデータがインデックスレジスタファイル208に格納される。s[1]のデータアドレスのうち下位2ビットは「01」なので、最上位ビットを「0」として3ビットのデータ「001」がエレメントインデックスデータsとして格納される。
In step S200, the same process as step S100 is executed.
In step S202, when the instruction code for setting the data address of s [1] in the pointer register P1 is executed, the data address generation unit 14 stores the group address in the data address of s [1] in the pointer register P1. Is done. Further, in the data operation unit 12, the lower 2 bits of the data address of s [1] are stored in the index register file 208. Since the lower 2 bits of the data address of s [1] are “01”, the most significant bit is “0” and 3-bit data “001” is stored as element index data s.

ステップS204〜S218では、ステップS104〜S118と同一の処理が実行される。
ステップS220では、ブロック演算命令コードが実行されると、データ演算部12では、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ210により、エレメントインデックスデータs「001」が選択されてセレクタ204に出力され、セレクタ204により、レジスタR0[1]のデータs[1]が選択されて演算器202に出力される。また、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ212により、エレメントインデックスデータr「000」が選択されてセレクタ206に出力され、セレクタ206により、レジスタR2[0]のデータr[0]が選択されて演算器202に出力される。そして、演算器202により、s[1]とr[0]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(2)の第1項の演算結果が得られる。また、計算器214により、エレメントインデックスデータs,rにそれぞれ「1」が加算され、インデックスレジスタファイル208に格納される。
In steps S204 to S218, the same processing as in steps S104 to S118 is executed.
In step S220, when the block operation instruction code is executed, the data operation unit 12 selects the element index data s “001” by the selector 210 based on the select data from the program sequencer 18 and outputs it to the selector 204. Then, the selector 204 selects the data s [1] of the register R 0 [1] and outputs it to the computing unit 202. Further, based on the select data from the program sequencer 18, the element index data r “000” is selected by the selector 212 and output to the selector 206, and the selector 206 outputs the data r [0] of the register R 2 [0]. Is selected and output to the computing unit 202. Then, s [1] and r [0] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the first term of the above equation (2) is obtained. Further, “1” is added to the element index data s and r by the calculator 214 and stored in the index register file 208.

ステップS222では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ210により、エレメントインデックスデータs「010」が選択されてセレクタ204に出力され、セレクタ204により、レジスタR0[2]のデータs[2]が選択されて演算器202に出力される。また、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ212により、エレメントインデックスデータr「001」が選択されてセレクタ206に出力され、セレクタ206により、レジスタR2[1]のデータr[1]が選択されて演算器202に出力される。そして、演算器202により、s[2]とr[1]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(2)の第1項および第2項の演算結果が得られる。また、計算器214により、エレメントインデックスデータs,rにそれぞれ「1」が加算され、インデックスレジスタファイル208に格納される。 In step S222, when the block operation instruction code is further executed, the data operation unit 12 selects the element index data s “010” by the selector 210 based on the select data from the program sequencer 18 and selects the selector 204. The selector 204 selects the data s [2] of the register R 0 [2] and outputs it to the computing unit 202. Further, based on the select data from the program sequencer 18, the element index data r “001” is selected by the selector 212 and output to the selector 206, and the selector 206 outputs the data r [1] of the register R 2 [1]. Is selected and output to the computing unit 202. Then, s [2] and r [1] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation results of the first term and the second term of the above equation (2) are obtained. Further, “1” is added to the element index data s and r by the calculator 214 and stored in the index register file 208.

ステップS224では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR0[3],R2[2]のデータs[3],r[2]がそれぞれ選択される。そして、演算器202により、s[3]とr[2]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(2)の第1項〜第3項の演算結果が得られる。 In step S224, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 0 [3], the data s of R 2 [2] [3] , r [2] is selected. Then, s [3] and r [2] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 3rd term of the above formula (2) is obtained.

ステップS226では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[0],R2[3]のデータs[4],r[3]がそれぞれ選択される。そして、演算器202により、s[4]とr[3]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(2)の第1項〜第4項の演算結果が得られる。 In step S226, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 1 [0], data s of R 2 [3] [4] , Each r [3] is selected. The computing unit 202 multiplies s [4] and r [3], adds the multiplication result to the value of the register A0, and stores the result in the register A0. Thereby, the calculation result of the 1st term-the 4th term of the above formula (2) is obtained.

ステップS228〜S234では、ステップS128〜S134と同一の処理が実行される。
ステップS236では、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[1],R3[0]のデータs[5],r[4]がそれぞれ選択される。そして、演算器202により、s[5]とr[4]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(2)の第1項〜第5項の演算結果が得られる。
In steps S228 to S234, the same processing as steps S128 to S134 is executed.
In step S236, when the block operation instruction code is executed, the data operation unit 12 similarly uses the selectors 204 and 206 to cause the data s [5] and r [[] in the registers R 1 [1] and R 3 [0]. 4] is selected respectively. Then, s [5] and r [4] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation results of the first to fifth terms of the above equation (2) are obtained.

ステップS238では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[2],R3[1]のデータs[6],r[5]がそれぞれ選択される。そして、演算器202により、s[6]とr[5]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(2)の第1項〜第6項の演算結果が得られる。 In step S238, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 1 [2], data s of R 3 [1] [6] , r [5] is selected. Then, s [6] and r [5] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 6th term of the above formula (2) is obtained.

ステップS240では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[3],R3[2]のデータs[7],r[6]がそれぞれ選択される。そして、演算器202により、s[7]とr[6]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(2)の第1項〜第7項の演算結果が得られる。 In step S240, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 1 [3], the data s [7] of R 3 [2], Each r [6] is selected. Then, s [7] and r [6] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation results of the first to seventh terms of the above equation (2) are obtained.

ステップS242では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR0[0],R3[3]のデータs[8],r[7]がそれぞれ選択される。そして、演算器202により、s[8]とr[7]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(2)の第1項〜第8項の演算結果が得られる。 In step S242, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 0 [0], the data s [8] of R 3 [3], Each r [7] is selected. Then, s [8] and r [7] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 8th term of the above formula (2) is obtained.

ステップS244〜S250では、ステップS144〜S150と同一の処理が実行される。
以下は、ステップS220〜S250の処理を必要な数だけ繰り返し行えばよい。
このように、上式(1)に示す相関演算を行う場合と異なるのは、ステップS202,S220〜S226,S236〜S242の処理であるが、プログラムシーケンサ18の制御プログラムとしては、ステップS202の記述だけが異なる。このことは、上式(3),(4)に示す相関演算を行う場合についても同様である。
In steps S244 to S250, the same processing as steps S144 to S150 is executed.
In the following, the processes in steps S220 to S250 may be repeated as many times as necessary.
As described above, what is different from the case where the correlation calculation shown in the above equation (1) is performed is the processing of steps S202, S220 to S226, and S236 to S242, but the control program of the program sequencer 18 is described in step S202. Only the difference. The same applies to the case where the correlation calculation shown in the above equations (3) and (4) is performed.

このようにして、本実施の形態では、複数のグループレジスタR0〜Rn-1からなるレジスタファイル200と、レジスタファイル200のデータを用いて演算を行う演算器202と、エレメントインデックスデータを記憶するインデックスレジスタと、インデックスレジスタのエレメントインデックスデータに基づいて、2つのグループレジスタR0,R1(R2,R3)をレジスタブロックとしてレジスタブロックのレジスタR0[0]〜R1[3](R2[0]〜R3[3])のなかからいずれか1つのレジスタのデータを選択して演算器202に出力するセレクタ204,206とを備える。 Thus, in this embodiment, a register file 200 composed of a plurality of group registers R 0 to R n−1 , an arithmetic unit 202 that performs an operation using the data of the register file 200, and element index data are stored. And two group registers R 0 , R 1 (R 2 , R 3 ) as register blocks based on the index register to be registered and the element index data of the index register, the registers R 0 [0] to R 1 [3] of the register block Selectors 204 and 206 that select data from any one of the registers (R 2 [0] to R 3 [3]) and output the selected data to the computing unit 202 are provided.

これにより、境界不整列データアクセスとなる場合や、データの論理構造が重複している場合でも、レジスタファイル200へのデータの読み込み回数が極端に増加することがないので、処理効率を向上することができる。また、データの論理構造が重複している場合でも、プログラムの多少の変更で対応することができるので、プログラムコストを低減することができる。さらに、インデックスレジスタおよびセレクタ204,206を設けるだけでよく、また、多くの境界不整列データアクセスのパターンに対応する場合でも、エレメントインデックスデータのビット数をさほど増やさなくてすむので、特許文献1の発明に比して、製造コストを低減することができる。   As a result, the number of times data is read into the register file 200 does not increase extremely even when boundary misaligned data access occurs or when the logical structure of data overlaps, thereby improving processing efficiency. Can do. In addition, even when the logical structure of data is duplicated, it can be handled by a slight change in the program, so that the program cost can be reduced. Furthermore, it is only necessary to provide index registers and selectors 204 and 206, and even when dealing with many patterns of boundary-unaligned data access, it is not necessary to increase the number of bits of element index data. Compared to the invention, the manufacturing cost can be reduced.

さらに、本実施の形態では、複数のインデックスレジスタからなるインデックスレジスタファイル208と、与えられたセレクトデータに基づいて、インデックスレジスタファイル208のなかからいずれか1つのインデックスレジスタのエレメントインデックスデータを選択してセレクタ204,206に出力するセレクタ210,212とを備える。
これにより、複数のエレメントインデックスデータをインデックスレジスタファイル208に格納しておき、セレクトデータによってそれらエレメントインデックスデータを選択的に使用することができるので、インデックスレジスタの使い勝手が向上し、プログラムを作成しやすくなる。
Further, in the present embodiment, element index data of any one of the index registers is selected from the index register file 208 based on the index register file 208 composed of a plurality of index registers and the given select data. Selectors 210 and 212 that output to the selectors 204 and 206 are provided.
As a result, a plurality of element index data can be stored in the index register file 208, and the element index data can be selectively used by the select data, thereby improving the usability of the index register and making it easy to create a program. Become.

さらに、本実施の形態では、セレクタ204,206に出力したエレメントインデックスデータを更新してインデックスレジスタファイル208に格納する計算器214を備える。
これにより、エレメントインデックスデータを使用するたびに自動的に更新されるので、エレメントインデックスデータの更新をソフトウェアで行わなくてすみ、演算速度を向上することができる。
Furthermore, the present embodiment includes a calculator 214 that updates the element index data output to the selectors 204 and 206 and stores it in the index register file 208.
As a result, since the element index data is automatically updated every time it is used, the element index data need not be updated by software, and the calculation speed can be improved.

上記第1の実施の形態において、エレメントインデックスデータは、請求項1ないし4または7記載のインデックスデータに対応し、セレクタ204,206は、請求項1ないし4記載のセレクタに対応し、セレクタ210,212は、請求項3記載の第2セレクタに対応し、計算器214は、請求項4記載のインデックスデータ更新手段に対応している。   In the first embodiment, the element index data corresponds to the index data according to claims 1 to 4 or 7, the selectors 204 and 206 correspond to the selector according to claims 1 to 4, and the selectors 210, 212 corresponds to the second selector according to claim 3, and the calculator 214 corresponds to the index data update means according to claim 4.

次に、本発明の第2の実施の形態を図面を参照しながら説明する。図7ないし図9は、本発明に係るデータ演算装置の第2の実施の形態を示す図である。
本実施の形態は、本発明に係るデータ演算装置を、デジタル信号処理を行う32ビットRISC型のデジタル信号処理装置100においてデータ演算部12に適用したものであり、上記第1の実施の形態と異なるのは、レジスタブロックに含まれるグループレジスタの数を動的に変更する点にある。なお、以下、上記第1の実施の形態と異なる部分についてのみ説明し、上記第1の実施の形態と重複する部分については同一の符号を付して説明を省略する。
Next, a second embodiment of the present invention will be described with reference to the drawings. 7 to 9 are diagrams showing a second embodiment of the data arithmetic device according to the present invention.
In the present embodiment, the data arithmetic device according to the present invention is applied to the data arithmetic unit 12 in the 32-bit RISC type digital signal processing device 100 that performs digital signal processing. The difference is that the number of group registers included in the register block is dynamically changed. Hereinafter, only the parts different from the first embodiment will be described, and the same parts as those in the first embodiment will be denoted by the same reference numerals and the description thereof will be omitted.

次に、データ演算部12の構成を図7ないし図9を参照しながら詳細に説明する。
図7は、データ演算部12のハードウェア構成を示すブロック図である。
データ演算部12は、図7に示すように、レジスタファイル200と、演算器202と、レジスタファイル200のなかからデータを選択するセレクタ224,226と、複数のインデックスレジスタからなるインデックスレジスタファイル228と、インデックスレジスタファイル228のなかからデータを選択するセレクタ230,232と、インデックスレジスタファイル228のデータを更新する計算器234と、計算器234とバス20のデータを選択するセレクタ236とで構成されている。
Next, the configuration of the data calculation unit 12 will be described in detail with reference to FIGS.
FIG. 7 is a block diagram illustrating a hardware configuration of the data calculation unit 12.
As shown in FIG. 7, the data calculation unit 12 includes a register file 200, a calculator 202, selectors 224 and 226 that select data from the register file 200, and an index register file 228 including a plurality of index registers. , Selectors 230 and 232 for selecting data from the index register file 228, a calculator 234 for updating data in the index register file 228, and a selector 236 for selecting data on the calculator 234 and the bus 20. Yes.

図8は、レジスタブロックの構成を示す図である。
本実施の形態では、1つのグループレジスタを1つのレジスタブロックとしてグループ化するバンドルモード0と、2つのグループレジスタを1つのレジスタブロックとしてグループ化するバンドルモード1と、4つのグループレジスタを1つのレジスタブロックとしてグループ化するバンドルモード2と、8つのグループレジスタを1つのレジスタブロックとしてグループ化するバンドルモード3とを規定する。
FIG. 8 is a diagram illustrating a configuration of a register block.
In the present embodiment, bundle mode 0 for grouping one group register as one register block, bundle mode 1 for grouping two group registers as one register block, and one register for four group registers. A bundle mode 2 for grouping as a block and a bundle mode 3 for grouping eight group registers as one register block are defined.

バンドルモード0では、図8に示すように、グループレジスタR0をレジスタブロック0(バンドル番号「0」により特定されるレジスタブロックをいう。以下、同様に略記する。)とし、同様に、グループレジスタR2〜R7をレジスタブロック1〜7としてそれぞれグループ化する。
バンドルモード1では、グループレジスタR0,R1をレジスタブロック0とし、グループレジスタR2,R3をレジスタブロック1とし、グループレジスタR4,R5をレジスタブロック2とし、グループレジスタR6,R7をレジスタブロック3としてそれぞれグループ化する。
In the bundle mode 0, as shown in FIG. 8, the group register R 0 is set as a register block 0 (referred to as a register block specified by a bundle number “0”, hereinafter abbreviated in the same manner). R 2 to R 7 are grouped as register blocks 1 to 7, respectively.
In the bundle mode 1, the group registers R 0 and R 1 are the register block 0, the group registers R 2 and R 3 are the register block 1, the group registers R 4 and R 5 are the register block 2, and the group registers R 6 and R 7 is grouped as a register block 3 respectively.

バンドルモード2では、グループレジスタR0〜R3をレジスタブロック0とし、グループレジスタR4〜R7をレジスタブロック1としてそれぞれグループ化する。
バンドルモード3では、グループレジスタR0〜R7をレジスタブロック0としてそれぞれグループ化する。
図7に戻り、セレクタ224は、グループレジスタR0〜R7の各レジスタと接続し、セレクタ230からのセレクトデータに基づいて、グループレジスタR0〜R7のなかからいずれか1つのレジスタのデータを選択し、選択したデータを演算器202の第1オペランドとして演算器202に出力する。
In the bundle mode 2, the group registers R 0 to R 3 are grouped as the register block 0 and the group registers R 4 to R 7 are grouped as the register block 1, respectively.
In the bundle mode 3, the group registers R 0 to R 7 are grouped as a register block 0, respectively.
Returning to FIG. 7, the selector 224 is connected to each of the registers of the group registers R 0 to R 7 , and based on the select data from the selector 230, the data in any one of the group registers R 0 to R 7. And the selected data is output to the computing unit 202 as the first operand of the computing unit 202.

セレクタ230からのセレクトデータは、5ビットからなる。セレクタ224は、セレクトデータの上位3ビットが「000」であるときは、グループレジスタR0のうち下位2ビットの値により指定されるレジスタのデータを選択し、セレクトデータの上位3ビットが「001」であるときは、グループレジスタR1のうち下位2ビットの値により指定されるレジスタのデータを選択する。同様に、セレクトデータの上位3ビットが「010」、「011」、「100」、「101」、「110」および「111」であるときは、グループレジスタR2〜R7のうち下位2ビットの値により指定されるレジスタのデータを選択する。 The select data from the selector 230 consists of 5 bits. When the upper 3 bits of the select data is “000”, the selector 224 selects the register data specified by the lower 2 bits of the group register R 0 , and the upper 3 bits of the select data is “001”. when "a selects the data of the register specified by the lower two bits of the value of the group registers R 1. Similarly, when the upper 3 bits of the select data are “010”, “011”, “100”, “101”, “110” and “111”, the lower 2 bits of the group registers R 2 to R 7 Select the register data specified by the value of.

セレクタ226は、グループレジスタR0〜R7の各レジスタと接続し、セレクタ232からのセレクトデータに基づいて、グループレジスタR0〜R7のなかからいずれか1つのレジスタのデータを選択し、選択したデータを演算器202の第2オペランドとして演算器202に出力する。データの選択手順は、セレクタ224と同様である。
インデックスレジスタファイル228は、エレメントインデックスデータを各インデックスレジスタに記憶する。
The selector 226 is connected to the respective registers of the group registers R 0 to R 7, based on the select data from the selector 232 selects the data of one of the registers from among Group Register R 0 to R 7, selected The obtained data is output to the computing unit 202 as the second operand of the computing unit 202. The data selection procedure is the same as that of the selector 224.
The index register file 228 stores element index data in each index register.

図9は、エレメントインデックスデータのデータ構造を示す図である。
エレメントインデックスデータは、図9に示すように、5ビットのデータからなり、バンドルモード0のときは、5ビットのうち下位2ビットを使用し、下位2ビットb1,b0がグループレジスタの各レジスタの別を示す。
バンドルモード1のときは、5ビットのうち下位3ビットを使用し、上位3番目のビットb2がグループレジスタR0,R1(R2,R3等)の別を示し、下位2ビットb1,b0がグループレジスタの各レジスタの別を示す。
FIG. 9 is a diagram illustrating a data structure of element index data.
As shown in FIG. 9, the element index data consists of 5-bit data. In the bundle mode 0, the lower 2 bits of the 5 bits are used, and the lower 2 bits b 1 and b 0 are stored in the group registers. Indicates the different register.
In the bundle mode 1, the lower 3 bits of the 5 bits are used, the upper third bit b 2 indicates the group register R 0 , R 1 (R 2 , R 3, etc.), and the lower 2 bits b 1 and b 0 indicate the group registers.

バンドルモード2のときは、5ビットのうち下位4ビットを使用し、上位2,3番目のビットb3,b2がグループレジスタR0〜R3(R4〜R7)の別を示し、下位2ビットb1,b0がグループレジスタの各レジスタの別を示す。
バンドルモード3のときは、上位1〜3番目のビットb4〜b2がグループレジスタR0〜R7の別を示し、下位2ビットb1,b0がグループレジスタの各レジスタの別を示す。エレメントインデックスデータの各ビットは、セレクタ230,232からのセレクトデータの各ビットに対応している。また、エレメントインデックスデータの下位2ビットb1,b0は、データアドレスの下位2ビットb1,b0に対応している。
In the bundle mode 2, the lower 4 bits of the 5 bits are used, and the upper and second bits b 3 and b 2 indicate the group registers R 0 to R 3 (R 4 to R 7 ). The lower 2 bits b 1 and b 0 indicate the group registers.
In the bundle mode 3, the first to third bits b 4 to b 2 indicate the group registers R 0 to R 7 , and the lower two bits b 1 and b 0 indicate the group registers. . Each bit of the element index data corresponds to each bit of select data from the selectors 230 and 232. The lower 2 bits b 1, b 0 of the element index data corresponds to the lower 2 bits b 1, b 0 of the data address.

図7に戻り、セレクタ230は、プログラムシーケンサ18からのセレクトデータに基づいて、インデックスレジスタファイル228のなかからいずれか1つのインデックスレジスタのエレメントインデックスデータを選択し、選択したエレメントインデックスデータ、並びにプログラムシーケンサ18からのバンドルモードデータおよびバンドルインデックスデータに基づいてレジスタインデックスデータを生成し、生成したレジスタインデックスデータをセレクタ224に出力する。   Returning to FIG. 7, the selector 230 selects element index data of any one of the index registers from the index register file 228 based on the select data from the program sequencer 18, and selects the selected element index data and the program sequencer. Register index data is generated based on the bundle mode data and bundle index data from 18, and the generated register index data is output to the selector 224.

バンドルインデックスデータは、バンドル番号を示す5ビットのデータである。バンドルモード0を示すバンドルモードデータが与えられたときは、バンドルインデックスデータの下位3ビットを上位ビットとし、選択したエレメントインデックスデータの下位2ビットを下位ビットとして結合し、5ビットのレジスタインデックスデータを生成して出力する。   The bundle index data is 5-bit data indicating the bundle number. When bundle mode data indicating the bundle mode 0 is given, the lower 3 bits of the bundle index data are combined as the upper bits, the lower 2 bits of the selected element index data are combined as the lower bits, and the 5-bit register index data is Generate and output.

バンドルモード1を示すバンドルモードデータが与えられたときは、バンドルインデックスデータの下位2ビットを上位ビットとし、選択したエレメントインデックスデータの下位3ビットを下位ビットとして結合し、5ビットのレジスタインデックスデータを生成して出力する。
バンドルモード2を示すバンドルモードデータが与えられたときは、バンドルインデックスデータの下位1ビットを上位ビットとし、選択したエレメントインデックスデータの下位4ビットを下位ビットとして結合し、5ビットのレジスタインデックスデータを生成して出力する。
When bundle mode data indicating bundle mode 1 is given, the lower 2 bits of the bundle index data are combined as the upper bits, the lower 3 bits of the selected element index data are combined as the lower bits, and the 5-bit register index data is Generate and output.
When bundle mode data indicating the bundle mode 2 is given, the lower 1 bit of the bundle index data is combined as the upper bit, the lower 4 bits of the selected element index data is combined as the lower bit, and the 5-bit register index data is Generate and output.

バンドルモード3を示すバンドルモードデータが与えられたときは、選択したエレメントインデックスデータをそのままレジスタインデックスデータとして出力する。
なお、プログラムシーケンサ18では、セレクタ230を制御する命令コードを実行すると、その命令コードに対応するオペランドをセレクトデータとしてセレクタ230に出力する。また、バンドルモードまたはバンドル番号を設定する命令コードを実行すると、その命令コードに対応するオペランドをバンドルモードデータまたはバンドルインデックスデータとしてセレクタ230に出力する。
When bundle mode data indicating the bundle mode 3 is given, the selected element index data is output as register index data as it is.
When the program sequencer 18 executes an instruction code for controlling the selector 230, the program sequencer 18 outputs an operand corresponding to the instruction code to the selector 230 as select data. When an instruction code for setting a bundle mode or bundle number is executed, an operand corresponding to the instruction code is output to the selector 230 as bundle mode data or bundle index data.

セレクタ232は、プログラムシーケンサ18からのセレクトデータに基づいて、インデックスレジスタファイル228のなかからいずれか1つのインデックスレジスタのエレメントインデックスデータを選択し、選択したエレメントインデックスデータ、並びにプログラムシーケンサ18からのバンドルモードデータおよびバンドルインデックスデータに基づいてレジスタインデックスデータを生成し、生成したレジスタインデックスデータをセレクタ226に出力する。レジスタインデックスデータの生成手順は、セレクタ230と同様である。なお、プログラムシーケンサ18では、セレクタ232を制御する命令コードを実行すると、その命令コードに対応するオペランドをセレクトデータとしてセレクタ232に出力する。また、バンドルモードまたはバンドル番号を設定する命令コードを実行すると、その命令コードに対応するオペランドをバンドルモードデータまたはバンドルインデックスデータとしてセレクタ232に出力する。   The selector 232 selects element index data of any one of the index registers from the index register file 228 based on the select data from the program sequencer 18, and selects the selected element index data and the bundle mode from the program sequencer 18. Register index data is generated based on the data and bundle index data, and the generated register index data is output to the selector 226. The register index data generation procedure is the same as that of the selector 230. When the instruction code for controlling the selector 232 is executed, the program sequencer 18 outputs an operand corresponding to the instruction code to the selector 232 as select data. When an instruction code for setting a bundle mode or a bundle number is executed, an operand corresponding to the instruction code is output to the selector 232 as bundle mode data or bundle index data.

計算器234は、セレクタ230またはセレクタ232からセレクトデータとして出力されるレジスタインデックスデータを更新してセレクタ236に出力する。レジスタインデックスデータは、レジスタブロックのレジスタからデータを取得する順序があらかじめ決まっている場合に、その順序でデータが選択できるように更新する。レジスタインデックスデータの更新手順は、上記第1の実施の形態において計算器214によりエレメントインデックスデータを更新する手順と同じ要領で行うことができる。   The calculator 234 updates the register index data output as select data from the selector 230 or the selector 232 and outputs it to the selector 236. The register index data is updated so that data can be selected in the order in which the data acquisition order is determined in advance from the register of the register block. The procedure for updating the register index data can be performed in the same manner as the procedure for updating the element index data by the calculator 214 in the first embodiment.

セレクタ236は、プログラムシーケンサ18からのセレクトデータに基づいて、データアドレス生成部14からのデータアドレスのうち下位2ビットのデータ、および計算器234からのレジスタインデックスデータのうちいずれか一方を選択してインデックスレジスタファイル228に格納する。なお、プログラムシーケンサ18では、セレクタ236を制御する命令コードを実行すると、その命令コードに対応するオペランドをセレクトデータとしてセレクタ236に出力する。   Based on the select data from the program sequencer 18, the selector 236 selects either the lower 2 bits of the data address from the data address generator 14 or the register index data from the calculator 234. Store in the index register file 228. When the instruction code for controlling the selector 236 is executed, the program sequencer 18 outputs an operand corresponding to the instruction code to the selector 236 as select data.

次に、本実施の形態の動作を説明する。
初めに、バンドルモード1で演算を行う場合を説明する。
プログラムシーケンサ18では、バンドルモード1に設定する命令コードが実行されると、バンドルモード1を示すバンドルモードデータがデータ演算部12に出力される。そして、バンドル番号「0」を設定する命令コードが実行されると、バンドルインデックスデータとして「00000」がデータ演算部12に出力される。
Next, the operation of the present embodiment will be described.
First, a case where calculation is performed in the bundle mode 1 will be described.
In the program sequencer 18, when the instruction code set to the bundle mode 1 is executed, bundle mode data indicating the bundle mode 1 is output to the data calculation unit 12. When the instruction code for setting the bundle number “0” is executed, “00000” is output to the data operation unit 12 as bundle index data.

データ演算部12では、バンドルモードデータおよびバンドルインデックスデータが与えられると、セレクタ230,232により、エレメントインデックスデータが選択され、選択されたエレメントインデックスデータ、並びに与えられたバンドルモードデータおよびバンドルインデックスデータに基づいてレジスタインデックスデータが生成されてセレクタ224,226に出力される。このとき、バンドルインデックスデータの下位2ビットが「00」なので、「00xxx」(「x」は、選択されたエレメントインデックスデータのビットを示す。以下、同様に表記する。)がレジスタインデックスデータとして出力される。そして、セレクタ224,226により、与えられたレジスタインデックスデータ「00xxx」に基づいて、グループレジスタR0,R1のなかからいずれか1つのレジスタのデータが選択されて演算器202に出力される。 In the data operation unit 12, when bundle mode data and bundle index data are given, the element index data is selected by the selectors 230 and 232, and the selected element index data and the given bundle mode data and bundle index data are selected. Based on this, register index data is generated and output to the selectors 224 and 226. At this time, since the lower 2 bits of the bundle index data are “00”, “00xxx” (“x” indicates the bit of the selected element index data. Hereinafter, the same is expressed) is output as the register index data. Is done. Then, based on the given register index data “00xxx” by the selectors 224 and 226, the data of any one of the group registers R 0 and R 1 is selected and output to the arithmetic unit 202.

なお、セレクタ230,232に与えられるセレクトデータが異なるので、セレクタ224,226,230,232による選択はそれぞれ独立に行われる。
プログラムシーケンサ18では、バンドル番号「1」を設定する命令コードが実行されると、バンドルインデックスデータとして「00001」がデータ演算部12に出力される。
Since the selection data given to the selectors 230 and 232 is different, the selection by the selectors 224, 226, 230, and 232 is performed independently.
In the program sequencer 18, when the instruction code for setting the bundle number “1” is executed, “00001” is output to the data operation unit 12 as bundle index data.

データ演算部12では、バンドルインデックスデータの下位2ビットが「01」なので、セレクタ230,232により、「01xxx」がレジスタインデックスデータとして生成・出力される。そして、セレクタ224,226により、与えられたレジスタインデックスデータ「01xxx」に基づいて、グループレジスタR2,R3のなかからいずれか1つのレジスタのデータが選択されて演算器202に出力される。
バンドル番号「2」または「3」を設定する命令コードが実行された場合も同様であり、グループレジスタR4,R5またはR6,R7のなかからいずれか1つのレジスタのデータが選択されて演算器202に出力される。
In the data operation unit 12, since the lower 2 bits of the bundle index data are “01”, the selectors 230 and 232 generate and output “01xxx” as the register index data. Then, based on the given register index data “01xxx” by the selectors 224 and 226, the data of any one of the group registers R 2 and R 3 is selected and output to the computing unit 202.
The same applies to the case where the instruction code for setting the bundle number “2” or “3” is executed, and the data of any one register is selected from among the group registers R 4 and R 5 or R 6 and R 7. To the calculator 202.

次に、バンドルモード2で演算を行う場合を説明する。
プログラムシーケンサ18では、バンドルモード2に設定する命令コードが実行されると、バンドルモード2を示すバンドルモードデータがデータ演算部12に出力される。そして、バンドル番号「0」を設定する命令コードが実行されると、バンドルインデックスデータとして「00000」がデータ演算部12に出力される。
Next, a case where calculation is performed in the bundle mode 2 will be described.
In the program sequencer 18, when an instruction code set to the bundle mode 2 is executed, bundle mode data indicating the bundle mode 2 is output to the data calculation unit 12. When the instruction code for setting the bundle number “0” is executed, “00000” is output to the data operation unit 12 as bundle index data.

データ演算部12では、バンドルモードデータおよびバンドルインデックスデータが与えられると、バンドルインデックスデータの下位1ビットが「0」なので、セレクタ230,232により、「0xxxx」がレジスタインデックスデータとして生成・出力される。そして、セレクタ224,226により、与えられたレジスタインデックスデータ「0xxxx」に基づいて、グループレジスタR0〜R3のなかからいずれか1つのレジスタのデータが選択されて演算器202に出力される。 In the data operation unit 12, when bundle mode data and bundle index data are given, since the lower 1 bit of the bundle index data is “0”, the selectors 230 and 232 generate and output “0xxxx” as register index data. . Then, based on the given register index data “0xxxx” by the selectors 224 and 226, the data of any one of the group registers R 0 to R 3 is selected and output to the arithmetic unit 202.

プログラムシーケンサ18では、バンドル番号「1」を設定する命令コードが実行されると、バンドルインデックスデータとして「00001」がデータ演算部12に出力される。
データ演算部12では、バンドルインデックスデータの下位1ビットが「1」なので、セレクタ230,232により、「1xxxx」がレジスタインデックスデータとして生成・出力される。そして、セレクタ224,226により、与えられたレジスタインデックスデータ「1xxxx」に基づいて、グループレジスタR4〜R7のなかからいずれか1つのレジスタのデータが選択されて演算器202に出力される。
In the program sequencer 18, when the instruction code for setting the bundle number “1” is executed, “00001” is output to the data operation unit 12 as bundle index data.
In the data operation unit 12, since the lower 1 bit of the bundle index data is “1”, “1xxxx” is generated and output as register index data by the selectors 230 and 232. Then, the selectors 224 and 226 select the data of any one of the group registers R 4 to R 7 based on the given register index data “1xxx” and output the selected data to the arithmetic unit 202.

次に、バンドルモード3で演算を行う場合を説明する。
プログラムシーケンサ18では、バンドルモード3に設定する命令コードが実行されると、バンドルモード3を示すバンドルモードデータがデータ演算部12に出力される。
データ演算部12では、バンドルモードデータが与えられると、セレクタ230,232により、選択されたエレメントインデックスデータがそのままレジスタインデックスデータとして出力される。そして、セレクタ224,226により、与えられたレジスタインデックスデータに基づいて、グループレジスタR0〜R7のなかからいずれか1つのレジスタのデータが選択されて演算器202に出力される。
Next, a case where calculation is performed in the bundle mode 3 will be described.
In the program sequencer 18, when the instruction code set to the bundle mode 3 is executed, bundle mode data indicating the bundle mode 3 is output to the data calculation unit 12.
In the data operation unit 12, when bundle mode data is given, the selector 230 and 232 output the selected element index data as it is as register index data. Then, the selectors 224 and 226 select data of any one of the group registers R 0 to R 7 based on the given register index data, and output the selected data to the arithmetic unit 202.

次に、バンドルモード0で演算を行う場合を説明する。
プログラムシーケンサ18では、バンドルモード0に設定する命令コードが実行されると、バンドルモード0を示すバンドルモードデータがデータ演算部12に出力される。そして、バンドル番号「0」を設定する命令コードが実行されると、バンドルインデックスデータとして「00000」がデータ演算部12に出力される。
Next, a case where calculation is performed in the bundle mode 0 will be described.
In the program sequencer 18, when the instruction code to set the bundle mode 0 is executed, bundle mode data indicating the bundle mode 0 is output to the data calculation unit 12. When the instruction code for setting the bundle number “0” is executed, “00000” is output to the data operation unit 12 as bundle index data.

データ演算部12では、バンドルモードデータおよびバンドルインデックスデータが与えられると、バンドルインデックスデータの下位3ビットが「000」なので、セレクタ230,232により、「000xx」がレジスタインデックスデータとして生成・出力される。そして、セレクタ224,226により、与えられたレジスタインデックスデータ「000xx」に基づいて、グループレジスタR0のなかからいずれか1つのレジスタのデータが選択されて演算器202に出力される。 In the data operation unit 12, when bundle mode data and bundle index data are given, since the lower 3 bits of the bundle index data are “000”, the selectors 230 and 232 generate and output “000xx” as register index data. . Then, based on the given register index data “000xx” by the selectors 224 and 226, the data of any one register is selected from the group register R 0 and output to the computing unit 202.

バンドル番号「1」〜「7」を設定する命令コードが実行された場合も同様であり、グループレジスタR1,R2,R3,R4,R5,R6またはR7のなかからいずれか1つのレジスタのデータが選択されて演算器202に出力される。
このようにして、本実施の形態では、レジスタブロックを指定するバンドルインデックスデータが与えられたときに、与えられたバンドルインデックスデータ、およびインデックスレジスタのエレメントインデックスデータに基づいて、そのバンドルインデックスデータにより指定されるレジスタブロックおよびそのレジスタブロック内のデータの位置を示すレジスタインデックスデータを生成するセレクタ230,232を備える。
The same applies to the case where the instruction code for setting the bundle numbers “1” to “7” is executed, and any of the group registers R 1 , R 2 , R 3 , R 4 , R 5 , R 6 or R 7 is selected. Data in one register is selected and output to the computing unit 202.
In this way, in this embodiment, when bundle index data specifying a register block is given, it is designated by the bundle index data based on the given bundle index data and the element index data of the index register. Selectors 230 and 232 for generating register index data indicating the register block to be processed and the position of data in the register block.

これにより、バンドルインデックスデータによって複数のレジスタブロックを選択的に使用することができるので、レジスタの使い勝手が向上し、プログラムを作成しやすくなる。
さらに、本実施の形態では、セレクタ230,232は、バンドルモードを示すバンドルモードデータが与えられたときに、与えられたバンドルモードデータ、バンドルインデックスデータおよびエレメントインデックスデータに基づいて、レジスタインデックスデータを生成するようになっている。
これにより、バンドルモードデータによってレジスタブロックの論理構造を変更することができるので、レジスタの使い勝手がさらに向上し、プログラムをさらに作成しやすくなる。
As a result, a plurality of register blocks can be selectively used according to the bundle index data, thereby improving the usability of the registers and facilitating the creation of a program.
Furthermore, in this embodiment, when the bundle mode data indicating the bundle mode is given, the selectors 230 and 232 select the register index data based on the given bundle mode data, bundle index data, and element index data. It is designed to generate.
Thereby, the logical structure of the register block can be changed by the bundle mode data, so that the usability of the register is further improved and the program can be more easily created.

上記第2の実施の形態において、セレクタ224,226は、請求項5記載のセレクタに対応し、セレクタ230,232は、請求項5または6記載のインデックスデータ生成手段に対応し、レジスタインデックスデータは、請求項5または6記載の第2エレメントインデックスデータに対応している。
なお、上記第1の実施の形態においては、グループレジスタR0,R1をレジスタブロックAとしてグループ化したが、これに限らず、特定の2つのグループレジスタをレジスタブロックAとしてグループ化すればよいので、他の組み合わせでグループ化することもできる。レジスタブロックBについても同様である。
In the second embodiment, the selectors 224 and 226 correspond to the selector described in claim 5, the selectors 230 and 232 correspond to the index data generation means described in claim 5 or 6, and the register index data is , Corresponding to the second element index data.
In the first embodiment, the group registers R 0 and R 1 are grouped as the register block A. However, the present invention is not limited to this, and two specific group registers may be grouped as the register block A. So it can be grouped in other combinations. The same applies to the register block B.

また、上記第1の実施の形態においては、インデックスレジスタファイル208を設けて構成したが、これに限らず、インデックスレジスタを1つだけ設けて構成することもできる。この場合、セレクタ210,212も不要となる。
また、上記第2の実施の形態においては、インデックスレジスタファイル228を設けて構成したが、これに限らず、インデックスレジスタを1つだけ設けて構成することもできる。この場合、セレクタ230,232は選択機能を設けず、レジスタインデックスデータを生成する機能だけ設ければよい。
In the first embodiment, the index register file 208 is provided. However, the present invention is not limited to this, and only one index register may be provided. In this case, the selectors 210 and 212 are also unnecessary.
In the second embodiment, the index register file 228 is provided. However, the present invention is not limited to this, and only one index register may be provided. In this case, the selectors 230 and 232 need not have a selection function, but only a function for generating register index data.

また、上記第2の実施の形態においては、8つのグループレジスタR0〜R7を用いてレジスタブロックを構成したが、これに限らず、8つ未満のグループレジスタを用いてレジスタブロックを構成することもできるし、9つ以上のグループレジスタを用いてレジスタブロックを構成することもできる。また、バンドルインデックスデータおよびエレメントインデックスデータのビット数は、例えば、2つのグループレジスタを用いてレジスタブロックを構成する場合はそれぞれ3ビット、4つのグループレジスタを用いてレジスタブロックを構成する場合はそれぞれ4ビット、16個のグループレジスタを用いてレジスタブロックを構成する場合はそれぞれ5ビットあればよい。いずれの場合も、上記第2の実施の形態と同じ要領で行うことができる。 In the second embodiment, the register block is configured using the eight group registers R 0 to R 7. However, the present invention is not limited to this, and the register block is configured using less than eight group registers. It is also possible to configure a register block using nine or more group registers. The number of bits of bundle index data and element index data is, for example, 3 bits each when a register block is configured using two group registers, and 4 bits when each register block is configured using four group registers. When a register block is configured by using 16 bits and 16 group registers, it is sufficient to have 5 bits each. In either case, the same procedure as in the second embodiment can be performed.

また、上記第2の実施の形態においては、8つのグループレジスタR0〜R7を用いてレジスタブロックを構成し、4つのバンドルモードを設定したが、これに限らず、バンドルモードを4つ未満として設定してもよい。この場合、バンドルインデックスデータのビット数は、3つのバンドルモード0〜2を設定する場合は4ビット、2つのバンドルモード0,1を設定する場合は3ビット、1つのバンドルモード0だけを設定する場合は2ビットあればよい。このことは、レジスタブロックの構成に用いるグループレジスタの数が8つ未満の場合、および9つ以上の場合であっても同様である。 In the second embodiment, a register block is configured using eight group registers R 0 to R 7 and four bundle modes are set. However, the present invention is not limited to this, and the number of bundle modes is less than four. May be set as In this case, the number of bits of the bundle index data is 4 bits when three bundle modes 0 to 2 are set, 3 bits when two bundle modes 0 and 1 are set, and only one bundle mode 0 is set. In this case, only 2 bits are required. This is the same even when the number of group registers used in the configuration of the register block is less than 8 and when it is 9 or more.

また、上記第1および第2の実施の形態においては、データ演算部12に1つの演算器202を設けて構成したが、これに限らず、データ演算部12に複数の演算器202を設けて構成することもできる。上記第1の実施の形態の場合は、各演算器202ごとにセレクタ204,206,210,212を設ければよい。上記第2の実施の形態の場合は、各演算器202ごとにセレクタ224,226,230,232を設ければよい。   In the first and second embodiments, the data calculation unit 12 is provided with one calculation unit 202. However, the present invention is not limited to this, and the data calculation unit 12 is provided with a plurality of calculation units 202. It can also be configured. In the case of the first embodiment, selectors 204, 206, 210, and 212 may be provided for each computing unit 202. In the case of the second embodiment, selectors 224, 226, 230, and 232 may be provided for each computing unit 202.

また、上記第1および第2の実施の形態においては、エレメントインデックスデータまたはレジスタインデックスデータをセレクタ204,224に出力するセレクタ210,230と、エレメントインデックスデータまたはレジスタインデックスデータをセレクタ206,226に出力するセレクタ212,232とを設けて構成したが、これに限らず、セレクタ210,230を設けず、セレクタ204,224は、プログラムシーケンサ18からのセレクトデータに基づいて、レジスタファイル200のなかからいずれか1つのレジスタのデータを選択するように構成することもできる。また、セレクタ212,232を設けず、セレクタ206,226は、プログラムシーケンサ18からのセレクトデータに基づいて、レジスタファイル200のなかからいずれか1つのレジスタのデータを選択するように構成することもできる。   In the first and second embodiments, the selectors 210 and 230 that output the element index data or the register index data to the selectors 204 and 224, and the element index data or the register index data are output to the selectors 206 and 226. However, the present invention is not limited to this, and the selectors 210 and 224 are not provided, and the selectors 204 and 224 can be selected from the register file 200 based on select data from the program sequencer 18. Alternatively, the data of one register can be selected. Also, the selectors 212 and 232 are not provided, and the selectors 206 and 226 can be configured to select data of any one register from the register file 200 based on the select data from the program sequencer 18. .

セレクタ212,232を設けない後者の構成とした場合の動作を、図5のフローチャートに示す相関演算処理を援用して説明する。
ステップS100では、ポインタレジスタP0にr[0]のデータアドレスを設定する命令コードが実行されると、データアドレス生成部14では、r[0]のデータアドレスのうちグループアドレスがポインタレジスタP0に格納される。
The operation of the latter configuration without the selectors 212 and 232 will be described with the aid of the correlation calculation process shown in the flowchart of FIG.
In step S100, when the instruction code for setting the data address of r [0] in the pointer register P0 is executed, the data address generator 14 stores the group address in the data address of r [0] in the pointer register P0. Is done.

ステップS102では、ポインタレジスタP1にs[0]のデータアドレスを設定する命令コードが実行されると、データアドレス生成部14では、s[0]のデータアドレスのうちグループアドレスがポインタレジスタP1に格納される。また、データ演算部12では、s[0]のデータアドレスのうち下位2ビットのデータがインデックスレジスタファイル208に格納される。s[0]のデータアドレスのうち下位2ビットは「00」なので、最上位ビットを「0」として3ビットのデータ「000」がエレメントインデックスデータsとして格納される。   In step S102, when an instruction code for setting the data address of s [0] in the pointer register P1 is executed, the data address generator 14 stores the group address in the data address of s [0] in the pointer register P1. Is done. In the data operation unit 12, the lower 2 bits of the data address of s [0] are stored in the index register file 208. Since the lower 2 bits of the data address of s [0] are “00”, the most significant bit is “0” and 3-bit data “000” is stored as element index data s.

ステップS104では、レジスタA0の内容を初期化する命令コードが実行されると、データ演算部12では、レジスタA0に「0」が設定される。
ステップS108では、ポインタレジスタP1が指し示すグループアドレスのデータをグループレジスタR0に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からs[0]〜s[3]がグループレジスタR0に読み込まれる。
In step S104, when an instruction code for initializing the contents of the register A0 is executed, the data operation unit 12 sets “0” in the register A0.
In step S108, when the instruction code for reading the data of the group address indicated by the pointer register P1 into the group register R0 is executed, the data operation unit 12 stores s [0] to s [3] from the data memory 10 into the group register. Read into R0 .

ステップS110では、ポインタレジスタP1を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP1のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のs[4]を指し示すことになる。
ステップS112では、ポインタレジスタP1が指し示すグループアドレスのデータをグループレジスタR1に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からs[4]〜s[7]がグループレジスタR1に読み込まれる。
In step S110, when the instruction code for adding the pointer register P1 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P1. On the data memory 10, s [4] that is 4 bytes ahead is indicated.
In step S112, when the instruction code read data of the group address pointer register P1 pointed to the group registers R 1 is executed, the data calculating unit 12, s [4] from the data memory 10 ~s [7] is Group Register It is loaded into R 1.

ステップS114では、ポインタレジスタP1を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP1のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のs[8]を指し示すことになる。
ステップS116では、ポインタレジスタP0が指し示すグループアドレスのデータをグループレジスタR2に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からr[0]〜r[3]がグループレジスタR2に読み込まれる。
ステップS118では、ポインタレジスタP0を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP0のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のr[4]を指し示すことになる。
In step S114, when the instruction code for adding the pointer register P1 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P1. On the data memory 10, s [8] that is 4 bytes ahead is indicated.
At step S116, the instruction code reads data group address pointer register P0 pointed to a group register R 2 is executed, the data calculating unit 12, r [0] from the data memory 10 ~r [3] is Group Register It is loaded into R 2.
In step S118, when the instruction code for adding the pointer register P0 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P0. On the data memory 10, it points to r [4] 4 bytes ahead.

ステップS120では、ブロック演算命令コードが実行されると、データ演算部12では、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ210により、エレメントインデックスデータs「000」が選択されてセレクタ204に出力され、セレクタ204により、レジスタR0[0]のデータs[0]が選択されて演算器202に出力される。また、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ206により、レジスタR2[0]のデータr[0]が選択されて演算器202に出力される。そして、演算器202により、s[0]とr[0]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項の演算結果が得られる。また、計算器214により、エレメントインデックスデータsに「1」が加算され、インデックスレジスタファイル208に格納される。 In step S 120, when the block operation instruction code is executed, the data operation unit 12 selects the element index data s “000” by the selector 210 based on the select data from the program sequencer 18 and outputs it to the selector 204. Then, the selector 204 selects the data s [0] of the register R 0 [0] and outputs it to the computing unit 202. Further, based on the select data from the program sequencer 18, the selector 206 selects the data r [0] of the register R 2 [0] and outputs it to the computing unit 202. Then, s [0] and r [0] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the first term of the above equation (1) is obtained. Further, “1” is added to the element index data s by the calculator 214 and stored in the index register file 208.

ステップS122では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ210により、エレメントインデックスデータs「001」が選択されてセレクタ204に出力され、セレクタ204により、レジスタR0[1]のデータs[1]が選択されて演算器202に出力される。また、プログラムシーケンサ18からのセレクトデータに基づいて、セレクタ206により、レジスタR2[1]のデータr[1]が選択されて演算器202に出力される。そして、演算器202により、s[1]とr[1]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項および第2項の演算結果が得られる。また、計算器214により、エレメントインデックスデータsに「1」が加算され、インデックスレジスタファイル208に格納される。 In step S122, when the block operation instruction code is further executed, the data operation unit 12 selects the element index data s “001” by the selector 210 based on the select data from the program sequencer 18 and selects the selector 204. The selector 204 selects the data s [1] of the register R 0 [1] and outputs it to the computing unit 202. Further, based on the select data from the program sequencer 18, the selector 206 selects the data r [1] of the register R 2 [1] and outputs it to the computing unit 202. The computing unit 202 multiplies s [1] and r [1], adds the multiplication result to the value of the register A0, and stores the result in the register A0. Thereby, the calculation results of the first term and the second term of the above formula (1) are obtained. Further, “1” is added to the element index data s by the calculator 214 and stored in the index register file 208.

ステップS124では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR0[2],R2[2]のデータs[2],r[2]がそれぞれ選択される。そして、演算器202により、s[2]とr[2]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第3項の演算結果が得られる。 At step S124, the further the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 0 [2], data of R 2 [2] s [2 ], r [2] is selected. Then, s [2] and r [2] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 3rd term of the above formula (1) is obtained.

ステップS126では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR0[3],R2[3]のデータs[3],r[3]がそれぞれ選択される。そして、演算器202により、s[3]とr[3]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第4項の演算結果が得られる。 In step S126, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 0 [3], the data s of R 2 [3] [3] , Each r [3] is selected. Then, s [3] and r [3] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 4th term of the above formula (1) is obtained.

ステップS128では、ポインタレジスタP1が指し示すグループアドレスのデータをグループレジスタR0に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からs[8]〜s[11]がグループレジスタR0に読み込まれる。
ステップS130では、ポインタレジスタP1を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP1のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のs[12]を指し示すことになる。
In step S128, when an instruction code for reading the data of the group address indicated by the pointer register P1 into the group register R0 is executed, the data operation unit 12 stores s [8] to s [11] from the data memory 10 into the group register. Read into R0 .
In step S130, when the instruction code for adding the pointer register P1 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P1. On the data memory 10, s [12] that is 4 bytes ahead is indicated.

ステップS132では、ポインタレジスタP0が指し示すグループアドレスのデータをグループレジスタR2に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からr[4]〜r[7]がグループレジスタR2に読み込まれる。
ステップS134では、ポインタレジスタP0を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP0のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のr[7]を指し示すことになる。
In step S132, when the instruction code read data group address pointer register P0 pointed to a group register R 2 is executed, the data calculating unit 12, r [4] from the data memory 10 ~r [7] is Group Register It is loaded into R 2.
In step S134, when the instruction code for adding the pointer register P0 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P0. On the data memory 10, it points to r [7] 4 bytes ahead.

ステップS136では、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[0],R2[0]のデータs[4],r[4]がそれぞれ選択される。そして、演算器202により、s[4]とr[4]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第5項の演算結果が得られる。 In step S136, when the block operation instruction code is executed, the data operation unit 12 similarly uses the selectors 204 and 206 to store the data s [4] and r [] in the registers R 1 [0] and R 2 [0]. 4] is selected respectively. Then, s [4] and r [4] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation results of the first to fifth terms of the above equation (1) are obtained.

ステップS138では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[1],R2[1]のデータs[5],r[5]がそれぞれ選択される。そして、演算器202により、s[5]とr[5]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第6項の演算結果が得られる。 In step S138, when the block operation instruction code is further executed, the data operation unit 12 similarly uses the selectors 204 and 206 to store the data s [5], Rs [1] and R2 [1] in the registers R 1 [1] and R 2 [1]. r [5] is selected. Then, s [5] and r [5] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 6th term of the above formula (1) is obtained.

ステップS140では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[2],R2[2]のデータs[6],r[6]がそれぞれ選択される。そして、演算器202により、s[6]とr[6]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第7項の演算結果が得られる。 In step S140, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 1 [2], data of R 2 [2] s [6 ], Each r [6] is selected. Then, s [6] and r [6] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 7th term of the above formula (1) is obtained.

ステップS142では、さらに、ブロック演算命令コードが実行されると、データ演算部12では、同様に、セレクタ204,206により、レジスタR1[3],R2[3]のデータs[7],r[7]がそれぞれ選択される。そして、演算器202により、s[7]とr[7]が乗算され、その乗算結果がレジスタA0の値に加算されてレジスタA0に格納される。これにより、上式(1)の第1項〜第8項の演算結果が得られる。 In step S142, further, the block operation instruction code is executed, the data calculating unit 12, similarly, by the selector 204, the register R 1 [3], the data s [7] of R 2 [3], Each r [7] is selected. Then, s [7] and r [7] are multiplied by the arithmetic unit 202, and the multiplication result is added to the value of the register A0 and stored in the register A0. Thereby, the calculation result of the 1st term-the 8th term of the above formula (1) is obtained.

ステップS144では、ポインタレジスタP1が指し示すグループアドレスのデータをグループレジスタR1に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からs[12]〜s[15]がグループレジスタR1に読み込まれる。
ステップS146では、ポインタレジスタP1を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP1のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のs[16]を指し示すことになる。
In step S144, when the instruction code read data of the group address pointer register P1 pointed to the group registers R 1 is executed, the data calculating unit 12, s [12] from the data memory 10 ~s [15] is Group Register It is loaded into R 1.
In step S146, when the instruction code for adding the pointer register P1 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P1. On the data memory 10, it points to s [16] 4 bytes ahead.

ステップS148では、ポインタレジスタP0が指し示すグループアドレスのデータをグループレジスタR2に読み込む命令コードが実行されると、データ演算部12では、データメモリ10からr[8]〜r[11]がグループレジスタR2に読み込まれる。
ステップS150では、ポインタレジスタP0を加算する命令コードが実行されると、データ演算部12では、ポインタレジスタP0のグループアドレスが「1」加算される。データメモリ10上では、4バイト先のr[12]を指し示すことになる。
In step S148, when the instruction code read data group address pointer register P0 pointed to a group register R 2 is executed, the data calculating unit 12, r [8] from the data memory 10 ~r [11] is Group Register It is loaded into R 2.
In step S150, when the instruction code for adding the pointer register P0 is executed, the data operation unit 12 adds “1” to the group address of the pointer register P0. On the data memory 10, it points to r [12] 4 bytes ahead.

また、上記第1および第2の実施の形態においては、32ビットRISC型のデジタル信号処理装置100に適用したが、データメモリ10に対するデータアクセスを、データメモリ10の最小記憶単位よりも大きい単位で行うプロセッサであればどのようなプロセッサにも適用することができる。例えば、データメモリ10の最小記憶単位が1バイトであれば、アクセス単位が16ビット以上のプロセッサであり、データメモリ10の最小記憶単位が2バイトであれば、アクセス単位が32ビット以上のプロセッサである。   In the first and second embodiments, the present invention is applied to the 32-bit RISC type digital signal processing apparatus 100. However, data access to the data memory 10 is performed in a unit larger than the minimum storage unit of the data memory 10. The present invention can be applied to any processor as long as it performs. For example, if the minimum storage unit of the data memory 10 is 1 byte, the access unit is a processor of 16 bits or more. If the minimum storage unit of the data memory 10 is 2 bytes, the processor is an access unit of 32 bits or more. is there.

また、上記第1の実施の形態において、図5および図6のフローチャートに示す処理を実行するにあたってはいずれも、プログラムメモリ16にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをプログラムメモリ16に読み込んで実行するようにしてもよい。   In the first embodiment, the case where the control program stored in advance in the program memory 16 is executed in the processes shown in the flowcharts of FIGS. 5 and 6 has been described. However, the program may be read from the storage medium storing the program showing these procedures into the program memory 16 and executed.

ここで、記憶媒体とは、RAM、ROM等の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒体、CD、CDV、LD、DVD等の光学的読取方式記憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。   Here, the storage medium is a semiconductor storage medium such as RAM or ROM, a magnetic storage type storage medium such as FD or HD, an optical reading type storage medium such as CD, CDV, LD, or DVD, or a magnetic storage type such as MO. / Optical reading type storage media, including any storage media that can be read by a computer regardless of electronic, magnetic, optical, or other reading methods.

また、上記第1および第2の実施の形態においては、本発明に係るデータ演算装置を、デジタル信号処理を行う32ビットRISC型のデジタル信号処理装置100においてデータ演算部12に適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。   In the first and second embodiments, the data operation device according to the present invention is applied to the data operation unit 12 in the 32-bit RISC type digital signal processing device 100 that performs digital signal processing. However, the present invention can be applied to other cases without departing from the gist of the present invention.

デジタル信号処理装置100のハードウェア構成を示すブロック図である。2 is a block diagram showing a hardware configuration of a digital signal processing apparatus 100. FIG. データアドレスのデータ構造を示す図である。It is a figure which shows the data structure of a data address. データ演算部12のハードウェア構成を示すブロック図である。2 is a block diagram illustrating a hardware configuration of a data calculation unit 12. FIG. エレメントインデックスデータのデータ構造を示す図である。It is a figure which shows the data structure of element index data. プログラムシーケンサ18で実行される処理を示すフローチャートである。3 is a flowchart showing processing executed by a program sequencer 18; プログラムシーケンサ18で実行される処理を示すフローチャートである。3 is a flowchart showing processing executed by a program sequencer 18; データ演算部12のハードウェア構成を示すブロック図である。2 is a block diagram illustrating a hardware configuration of a data calculation unit 12. FIG. レジスタブロックの構成を示す図である。It is a figure which shows the structure of a register block. エレメントインデックスデータのデータ構造を示す図である。It is a figure which shows the data structure of element index data. メモリ上のデータの配置を示す図である。It is a figure which shows arrangement | positioning of the data on memory. 従来のデジタル信号プロセッサの構成を示すブロック図である。It is a block diagram which shows the structure of the conventional digital signal processor. 従来のデジタル信号プロセッサの動作を説明するための図である。It is a figure for demonstrating operation | movement of the conventional digital signal processor.

符号の説明Explanation of symbols

100 デジタル信号処理装置
10 データメモリ
12 プロセッサ
14 データアドレス生成部
16 プログラムメモリ
18 プログラムシーケンサ
20 バス
200 レジスタファイル
202 演算器
204,206,210,212 セレクタ
208,228 インデックスレジスタファイル
214,234 計算器
216 セレクタ
224,226,230,232 セレクタ
236 セレクタ
DESCRIPTION OF SYMBOLS 100 Digital signal processor 10 Data memory 12 Processor 14 Data address generation part 16 Program memory 18 Program sequencer 20 Bus 200 Register file 202 Calculator 204,206,210,212 Selector 208,228 Index register file 214,234 Calculator 216 Selector 224, 226, 230, 232 selector 236 selector

Claims (8)

複数のレジスタからなるレジスタファイルと、前記レジスタのデータを用いて演算を行う演算器とを備え、前記レジスタファイルと外部との間のデータアクセスを、複数の前記レジスタからなるグループレジスタ単位で行うデータ演算装置であって、
インデックスデータを記憶するインデックスレジスタと、
前記インデックスレジスタのインデックスデータに基づいて、前記レジスタファイルのレジスタのうち少なくとも2つの前記グループレジスタのなかから、1または複数の前記レジスタのデータを選択して前記演算器に出力するセレクタとを備えることを特徴とするデータ演算装置。
Data that includes a register file composed of a plurality of registers and a computing unit that performs computation using the data of the registers, and performs data access between the register file and the outside in a group register unit composed of the plurality of registers An arithmetic unit,
An index register for storing index data;
A selector that selects data of one or a plurality of the registers from at least two of the registers of the register file based on the index data of the index register and outputs the selected data to the arithmetic unit; A data operation device characterized by the above.
複数のレジスタからなるレジスタファイルと、前記レジスタのデータを用いて演算を行う演算器とを備え、前記レジスタファイルと外部との間のデータアクセスを、複数の前記レジスタからなるグループレジスタ単位で行うデータ演算装置であって、
前記レジスタファイルのレジスタのうち少なくとも2つの前記グループレジスタをレジスタブロックとしてグループ化したときに、前記レジスタブロック内のデータの位置を指定するエレメントインデックスデータを記憶するインデックスレジスタと、
前記インデックスレジスタのエレメントインデックスデータに基づいて、前記レジスタブロックのレジスタのなかからいずれか1つの前記レジスタのデータを選択して前記演算器に出力するセレクタとを備えることを特徴とするデータ演算装置。
Data that includes a register file composed of a plurality of registers and a computing unit that performs computation using the data of the registers, and performs data access between the register file and the outside in a group register unit composed of the plurality of registers An arithmetic unit,
An index register for storing element index data for designating a position of data in the register block when grouping at least two of the group registers in the register file as a register block;
A data arithmetic device comprising: a selector that selects data of any one of the registers of the register block based on element index data of the index register and outputs the selected data to the arithmetic unit.
請求項2において、
さらに、複数の前記インデックスレジスタからなるインデックスレジスタファイルと、
与えられたセレクトデータに基づいて、前記インデックスレジスタファイルのなかからいずれか1つの前記インデックスレジスタのエレメントインデックスデータを選択して前記セレクタに出力する第2セレクタとを備えることを特徴とするデータ演算装置。
In claim 2,
Furthermore, an index register file composed of a plurality of the index registers,
A data selector comprising: a second selector that selects element index data of any one of the index registers from the index register file based on given select data and outputs the selected element index data to the selector .
請求項3において、
さらに、前記セレクタに出力したエレメントインデックスデータを更新して前記インデックスレジスタファイルに格納するインデックスデータ更新手段を備えることを特徴とするデータ演算装置。
In claim 3,
The data operation device further comprises index data updating means for updating the element index data output to the selector and storing it in the index register file.
請求項2ないし4のいずれか1項において、
さらに、前記レジスタブロックを指定するバンドルインデックスデータが与えられたときに、与えられたバンドルインデックスデータ、および前記インデックスレジスタのエレメントインデックスデータに基づいて、当該バンドルインデックスデータにより指定される前記レジスタブロックおよび当該レジスタブロック内のデータの位置を示す第2エレメントインデックスデータを生成するインデックスデータ生成手段を備え、
前記セレクタは、前記インデックスデータ生成手段で生成した第2エレメントインデックスデータに基づいて、複数の前記レジスタブロックのレジスタのなかからいずれか1つの前記レジスタのデータを選択して前記演算器に出力するようになっていることを特徴とするデータ演算装置。
In any one of Claims 2 thru | or 4,
Furthermore, when bundle index data designating the register block is given, the register block designated by the bundle index data based on the given bundle index data and the element index data of the index register, and Index data generating means for generating second element index data indicating the position of data in the register block;
The selector selects data of any one of the registers from a plurality of registers of the register block based on the second element index data generated by the index data generating means, and outputs the selected data to the arithmetic unit. A data operation device characterized by that.
請求項5において、
前記インデックスデータ生成手段は、2以上の第1所定数の前記グループレジスタを前記レジスタブロックとして論理的にグループ化する第1バンドルモード、および前記第1所定数よりも多い第2所定数の前記グループレジスタを前記レジスタブロックとして論理的にグループ化する第2バンドルモードのうちいずれかを指定するバンドルモードデータが与えられたときに、与えられたバンドルモードデータ、前記バンドルインデックスデータおよび前記エレメントインデックスデータに基づいて、前記第2エレメントインデックスデータを生成するようになっていることを特徴とするデータ演算装置。
In claim 5,
The index data generation means includes a first bundle mode for logically grouping two or more first predetermined number of the group registers as the register block, and a second predetermined number of the groups greater than the first predetermined number. When bundle mode data that designates one of the second bundle modes that logically group registers as the register block is given, the given bundle mode data, the bundle index data, and the element index data Based on this, the second element index data is generated.
複数のレジスタからなるレジスタファイルと、前記レジスタのデータを用いて演算を行う演算器とを備え、前記レジスタファイルと外部との間のデータアクセスを、複数の前記レジスタからなるグループレジスタ単位で行うデータ演算装置を利用して演算を行うデータ演算方法であって、
前記レジスタファイルのレジスタのうち少なくとも2つの前記グループレジスタをレジスタブロックとしてグループ化したときに、前記レジスタブロックの各グループレジスタに前記外部からデータを読み込むデータ読込ステップと、
前記レジスタブロック内のデータの位置を指定するエレメントインデックスデータをインデックスレジスタに格納するインデックスデータ格納ステップと、
前記インデックスレジスタのエレメントインデックスデータに基づいて、前記レジスタブロックのレジスタのなかからいずれか1つの前記レジスタのデータを選択して前記演算器に出力するデータ選択ステップと、
前記演算器により演算を行う演算ステップとを含むことを特徴とするデータ演算方法。
Data that includes a register file composed of a plurality of registers and a computing unit that performs operations using the data of the registers, and performs data access between the register file and the outside in a group register unit composed of the plurality of registers A data calculation method for performing calculation using an arithmetic device,
A data reading step of reading data from the outside to each group register of the register block when grouping at least two of the group registers of the registers of the register file as a register block;
An index data storage step of storing in the index register element index data specifying the position of data in the register block;
A data selection step of selecting data of any one of the registers from the registers of the register block based on element index data of the index register and outputting the selected data to the computing unit;
A data operation method comprising: an operation step of performing an operation by the operation unit.
請求項7において、
さらに、前記インデックスデータ格納ステップ、前記データ選択ステップおよび前記演算ステップを繰り返し行う反復演算ステップを含むことを特徴とするデータ演算方法。
In claim 7,
The data calculation method further includes an iterative calculation step in which the index data storage step, the data selection step, and the calculation step are repeated.
JP2004180639A 2004-06-18 2004-06-18 Data arithmetic unit Pending JP2006004226A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004180639A JP2006004226A (en) 2004-06-18 2004-06-18 Data arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004180639A JP2006004226A (en) 2004-06-18 2004-06-18 Data arithmetic unit

Publications (1)

Publication Number Publication Date
JP2006004226A true JP2006004226A (en) 2006-01-05

Family

ID=35772566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004180639A Pending JP2006004226A (en) 2004-06-18 2004-06-18 Data arithmetic unit

Country Status (1)

Country Link
JP (1) JP2006004226A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4152146A4 (en) * 2020-06-09 2023-11-08 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data processing method and device, and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4152146A4 (en) * 2020-06-09 2023-11-08 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Data processing method and device, and storage medium

Similar Documents

Publication Publication Date Title
CN110383237B (en) Reconfigurable matrix multiplier system and method
US6260137B1 (en) Data processing unit with digital signal processing capabilities
JP4277042B2 (en) Arithmetic processing unit
CN101030192B (en) Method and system for management of register
CN101495959B (en) Method and system to combine multiple register units within a microprocessor
KR101371931B1 (en) Data file storing multiple data types with controlled data access
JP5538889B2 (en) Adaptive microprocessor register file
US20070130444A1 (en) Integrated processor array, instruction sequencer and I/O controller
JPS59501684A (en) Accelerated instruction mapping outside the source and destination instruction streams for near real-time insertion into the destination instruction stream
JP3954171B2 (en) How to fill a vector with scalar values on a computer
JP4349265B2 (en) Processor
US8145804B2 (en) Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor
JP4901754B2 (en) Evaluation unit for flag register of single instruction multiple data execution engine
JP3985797B2 (en) Processor
JPH1049369A (en) Data processor
JP3990423B2 (en) Coding data access program instructions
US7441099B2 (en) Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit
JP3753991B2 (en) Processor, arithmetic instruction processing method and arithmetic control method in processor
JP2002229778A (en) Pc relative branching method with high-speed displacement
JP2006004226A (en) Data arithmetic unit
JP5327432B2 (en) Signal processor and semiconductor device
JP5145659B2 (en) Vector renaming method and vector computer
JP2812292B2 (en) Image processing device
JP5263498B2 (en) Signal processor and semiconductor device
JPWO2020084721A1 (en) Arithmetic processing unit and control method of arithmetic processing unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090623