Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5000248B2 - Information processing apparatus and information processing method - Google Patents
[go: Go Back, main page]

JP5000248B2 - Information processing apparatus and information processing method - Google Patents

Information processing apparatus and information processing method Download PDF

Info

Publication number
JP5000248B2
JP5000248B2 JP2006262640A JP2006262640A JP5000248B2 JP 5000248 B2 JP5000248 B2 JP 5000248B2 JP 2006262640 A JP2006262640 A JP 2006262640A JP 2006262640 A JP2006262640 A JP 2006262640A JP 5000248 B2 JP5000248 B2 JP 5000248B2
Authority
JP
Japan
Prior art keywords
register
physical
vector register
entry
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006262640A
Other languages
Japanese (ja)
Other versions
JP2008083947A (en
Inventor
聡 神宮寺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2006262640A priority Critical patent/JP5000248B2/en
Publication of JP2008083947A publication Critical patent/JP2008083947A/en
Application granted granted Critical
Publication of JP5000248B2 publication Critical patent/JP5000248B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

この発明は、複数のデータを格納可能なレジスタを用いて様々な演算を実行する情報処理装置において、レジスタ・リネーミングが可能な情報処理装置に関し、特に、マスク付き演算を実行する際にもレジスタ・リネーミングが可能な情報処理装置に関する。   The present invention relates to an information processing apparatus capable of register renaming in an information processing apparatus that performs various operations using a register capable of storing a plurality of data, and more particularly to a register even when executing a masked operation. -It relates to an information processing apparatus capable of renaming.

従来、特許文献1に記載されるように、レジスタ・リネーミングにより、情報処理装置における命令の実行性能の向上を図る技術が存在する。   Conventionally, as described in Patent Document 1, there is a technique for improving instruction execution performance in an information processing apparatus by register renaming.

なお、レジスタ・リネーミングとは、複数の命令を実行する際に、同一のレジスタに対してデータの読み書きが生じた場合、別のレジスタを仮想的に同一のレジスタとみなすことによって、レジスタの競合を回避する技術である。   Note that register renaming refers to register contention by regarding another register as virtually the same register when data is read from or written to the same register when executing multiple instructions. This is a technique for avoiding

特開平9−311788号公報Japanese Patent Laid-Open No. 9-311788

しかし、複数のデータを格納可能なレジスタを用いて演算を実行する情報処理装置において、従来技術に基づいてレジスタ・リネーミングを実行すると、以下の問題が生じる。   However, when register renaming is executed based on the prior art in an information processing apparatus that executes an operation using a register capable of storing a plurality of data, the following problems occur.

マスク付き演算を実行する命令においてレジスタ・リネーミングを行うと、データ化けが生じてしまう。   If register renaming is performed in an instruction that executes an operation with a mask, data corruption occurs.

これは、レジスタ・リネーミングにより論理レジスタと物理レジスタとを対応付ける際に、物理レジスタ番号と、データ格納位置の指定に用いるWP(ライトポインタ)又はRP(リードポインタ)とを合成し、論理レジスタのデータ格納位置を指定するためのポインタを生成しているからである。物理レジスタの全てのデータ格納位置が、物理レジスタ番号を用いて論理レジスタのデータ格納位置と対応付けられるので、物理レジスタ単位でしか論理レジスタと関連付けができない。つまり、論理レジスタと関連付けられている物理レジスタを、レジスタ・リネーミングにより他の物理レジスタに変更すると、それに伴い、レジスタ・リネーミング前に物理レジスタのそれぞれのデータ格納位置と関連付けられていた論理レジスタのデータ格納位置の全てが、新たな論理レジスタのデータ格納位置に変更されて、論理レジスタと他の物理レジスタが関連付けられる。具体的には以下のようになる。   This is because when registering a logical register and a physical register by register renaming, the physical register number and the WP (write pointer) or RP (read pointer) used for designating the data storage position are synthesized, and the logical register This is because a pointer for designating the data storage position is generated. Since all the data storage positions of the physical register are associated with the data storage position of the logical register using the physical register number, it can be associated with the logical register only in physical register units. In other words, when a physical register associated with a logical register is changed to another physical register by register renaming, the logical register associated with each data storage location of the physical register before register renaming All of the data storage positions are changed to the data storage positions of the new logical register, and the logical register and other physical registers are associated with each other. Specifically:

物理レジスタ0番及び1番が4つのデータを格納可能であるものとし、それぞれのデータ格納位置は、WP又はRPにより“00”、“01”、“10”、“11”(2bitの2進数)と表現される。論理レジスタと物理レジスタ0番が関連付けられる場合、物理レジスタ番号の“0”と、WP又はRPの“00”、“01”、“10”、“11”のそれぞれが合成され、“000”、“001”、“010”、“011”で表現される論理レジスタのデータ格納位置と物理レジスタ0番のデータ格納位置が関連付けられる。その後、レジスタ・リネーミングにより、論理レジスタと物理レジスタ1番を関連付けると、物理レジスタ番号の“1”と、“00”、“01”、“10”、“11”がそれぞれ合成され、“100”、“101”、“110”、“111”で表現される論理レジスタのデータ格納位置と物理レジスタ1番のデータ格納位置が関連付けられる。このように、従来技術によると、レジスタ・リネーミングにより、物理レジスタと関連付けられている論理レジスタのデータ格納位置の全てが変更されてしまう。つまり、物理レジスタ毎に、レジスタ・リネーミングにより関連付けられる論理レジスタのデータ格納位置が固定されてしまう。   Assume that physical registers No. 1 and No. 1 can store four data, and each data storage location is “00”, “01”, “10”, “11” (2-bit binary number) by WP or RP. ). When the logical register and the physical register 0 are associated with each other, the physical register number “0” and the WP or RP “00”, “01”, “10”, “11” are combined, and “000”, The data storage position of the logical register represented by “001”, “010”, and “011” is associated with the data storage position of physical register 0. If the logical register and physical register number 1 are then associated by register renaming, the physical register numbers “1”, “00”, “01”, “10”, and “11” are combined, and “100” ”,“ 101 ”,“ 110 ”,“ 111 ”, the data storage position of the logical register and the data storage position of the physical register 1 are associated with each other. As described above, according to the conventional technique, all the data storage positions of the logical registers associated with the physical registers are changed by register renaming. That is, for each physical register, the data storage position of the logical register associated by register renaming is fixed.

従って、マスク付き命令の実行時にレジスタ・リネーミングをすると、データの書込みを実行すべきでないデータ格納位置も含めて、物理レジスタの内容が置換されてしまう。このように、従来の技術では、マスク付き演算を実行する際には、レジスタ・リネーミングを抑止する必要があり、命令の実行性能の向上に支障が生じていた。   Therefore, if register renaming is performed when an instruction with a mask is executed, the contents of the physical register are replaced, including the data storage position where data writing should not be executed. As described above, in the conventional technique, it is necessary to suppress register renaming when executing an operation with a mask, which hinders improvement in instruction execution performance.

この発明は上記課題を鑑みてなされたもので、マスク付き命令の実行時でも、複数のデータを格納可能なレジスタについてレジスタ・リネーミングを実行可能とすることを目的とする。   The present invention has been made in view of the above problems, and an object of the present invention is to enable register renaming for a register capable of storing a plurality of data even when a masked instruction is executed.

上記課題を解決するため、本発明の情報処理装置は、データを格納するための複数の第1の格納領域を備える複数の第1の記憶領域と、前記データを格納するための複数の第2の格納領域を備え、位置指定情報により前記第2の格納領域が指定される第2の記憶領域と、前記第1の格納領域の指定に用いる第1のデータと、前記第1のデータにより指定された前記第1の格納領域に対応する第2のデータとを合成して前記位置指定情報を生成する制御部とを含むことを特徴とする。   In order to solve the above problems, an information processing apparatus according to the present invention includes a plurality of first storage areas including a plurality of first storage areas for storing data, and a plurality of second storage areas for storing the data. A second storage area in which the second storage area is designated by position designation information, first data used for designation of the first storage area, and designation by the first data And a controller that synthesizes the second data corresponding to the first storage area thus generated to generate the position designation information.

本発明は、第1の記憶領域の第1の格納領域の指定に用いる第1のデータと、第1のデータにより指定された第1の格納領域に対応する第2のデータ、とを合成して、第2の格納領域を指定するための位置指定情報を生成することにより、第1の記憶領域毎に、関連付けをする第2の格納領域を指定することが可能となる。よって、マスク付き演算実行時にレジスタ・リネーミングを行う場合でも、データの書き込みが必要な格納領域のみを指定してレジスタ・リネーミングによる関連付けを行うことが可能となる。このように、本発明によると、マスク付き演算を実行する場合においても、複数のデータを格納可能なレジスタについてレジスタ・リネーミングを行うことが可能となり、命令の実行性能を効果的に向上することができるという格別の効果が得られる。   The present invention combines the first data used for designating the first storage area of the first storage area and the second data corresponding to the first storage area designated by the first data. Thus, by generating position designation information for designating the second storage area, it becomes possible to designate the second storage area to be associated for each first storage area. Therefore, even when register renaming is performed during execution of an operation with a mask, it is possible to specify only a storage area where data writing is required and perform association by register renaming. As described above, according to the present invention, it is possible to perform register renaming for a register capable of storing a plurality of data even when executing an operation with a mask, thereby effectively improving instruction execution performance. The special effect of being able to do is obtained.

次に、本発明の実施の形態について説明する。なお、以下において、複数のデータを格納可能なレジスタの一例として、ベクトルレジスタを用いて説明する。しかし、本発明は、ベクトルレジスタに限定されるものではなく、あるレジスタに、データを格納するための格納領域(エントリ)が複数設けられているものについて本発明を適用可能である。   Next, an embodiment of the present invention will be described. In the following description, a vector register is used as an example of a register capable of storing a plurality of data. However, the present invention is not limited to the vector register, and the present invention can be applied to a register in which a plurality of storage areas (entries) for storing data are provided.

(第1の実施形態)
図1を参照し、本発明の第1の実施形態について説明する。
(First embodiment)
A first embodiment of the present invention will be described with reference to FIG.

図1を参照すると、本発明の第1の実施形態における情報処理装置13は、ベクトルレジスタ1、WDレジスタ2、RDレジスタ3、WPレジスタ4、RPレジスタ5、マスク部6、レジスタ管理部7、拡張ビット部8、ポインタ合成部9、WEレジスタ10、WE制御部11及びレジスタ制御部12を有する。   Referring to FIG. 1, an information processing device 13 according to the first embodiment of the present invention includes a vector register 1, a WD register 2, an RD register 3, a WP register 4, an RP register 5, a mask unit 6, a register management unit 7, An extension bit unit 8, a pointer synthesis unit 9, a WE register 10, a WE control unit 11, and a register control unit 12 are included.

ベクトルレジスタ1は、プログラムからは論理ベクトルレジスタとしてアクセスされる。ベクトルレジスタ1には、論理ベクトルレジスタ番号が付与される。論理ベクトルレジスタ番号とは、プログラムによりベクトルレジスタ1にアクセスする際の識別子(例えば変数)である。プログラムからは、ベクトルレジスタ1に対して論理ベクトルレジスタ番号に基づいてアクセスされる。   The vector register 1 is accessed as a logical vector register from the program. The vector register 1 is given a logical vector register number. The logical vector register number is an identifier (for example, a variable) when accessing the vector register 1 by a program. From the program, the vector register 1 is accessed based on the logical vector register number.

また、ベクトルレジスタ1は、物理ベクトルレジスタにより構成される。物理ベクトルレジスタとは、演算の対象となるデータの物理的な格納場所である。   The vector register 1 is constituted by a physical vector register. A physical vector register is a physical storage location of data to be operated.

ベクトルレジスタ1は、演算に用いるデータを格納するためのエントリを有する。物理ベクトルレジスタも、演算に用いるデータを格納するためのエントリを有する。   The vector register 1 has an entry for storing data used for calculation. The physical vector register also has an entry for storing data used for calculation.

論理ベクトルレジスタと物理ベクトルレジスタは、レジスタ・リネーミングにより関連付けられる。論理ベクトルレジスタ及び物理ベクトルレジスタのそれぞれのエントリは、ポインタを用いてその位置が指定される。本発明は、レジスタ・リネーミングにおいて、論理ベクトルレジスタと物理ベクトルレジスタとを、エントリ毎に関連付ける。物理ベクトルレジスタのエントリ毎に対応付けられた拡張ビットを設け、ポインタ合成部9が当該拡張ビットと物理ベクトルレジスタのエントリの位置を指定するためのポインタとを合成し、論理ベクトルレジスタのエントリを指定するためのポインタを作成する。つまり、物理ベクトルレジスタのエントリ毎に、 論理ベクトルレジスタのエントリと対応するポインタが作成される。これにより、演算実行時に、データを書込む論理ベクトルレジスタのエントリを、物理ベクトルレジスタのエントリ毎に関連付けることが可能となる。   The logical vector register and the physical vector register are associated by register renaming. The position of each entry of the logical vector register and the physical vector register is designated by using a pointer. The present invention associates a logical vector register and a physical vector register for each entry in register renaming. An extension bit associated with each entry of the physical vector register is provided, and the pointer synthesis unit 9 synthesizes the extension bit and a pointer for designating the entry position of the physical vector register, and designates the entry of the logical vector register Create a pointer to That is, for each entry in the physical vector register, a pointer corresponding to the entry in the logical vector register is created. This makes it possible to associate the entry of the logical vector register into which data is written for each entry of the physical vector register when executing the operation.

次に、図1に示す各構成について、それぞれ説明する。   Next, each configuration shown in FIG. 1 will be described.

ベクトルレジスタ1は、演算の対象となる一連の順序付けられたベクトルデータを格納する。ベクトルレジスタ1は、複数のエントリを有し、ベクトルデータはエントリ毎に格納される。なお、ベクトルデータは、複数のワード(以下、要素という)で構成される。ワードとは、1つのデータの単位である。よって、ベクトルレジスタ1の各エントリには、ベクトルデータの要素が格納されることになる。命令で指定された数の要素が、ポインタで指定されたベクトルレジスタ1のエントリから1マシンサイクルに1要素ずつ読み出される。また、演算結果のベクトルデータが、ポインタで指定されたベクトルレジスタ1のエントリに順に格納される。ベクトルレジスタ1は、所定の要素数からなる論理ベクトルレジスタで構成される。つまり、論理ベクトルレジスタは、所定の要素数の単位でアクセスされる。論理ベクトルレジスタには、論理ベクトルレジスタ番号が与えられ、ベクトルレジスタ1はプログラムから論理ベクトルレジスタ番号によりアクセスされる。つまり、ベクトルレジスタ1は、プログラムから所定の要素数の単位でアクセスされる仮想的なレジスタである。論理ベクトルレジスタは、ベクトルレジスタ1のエントリのうちの所定の要素数の分のエントリにより構成される。また、ベクトルレジスタ1は、所定の数の物理ベクトルレジスタにより構成される。よって、プログラムによりベクトルレジスタ1のエントリに読み書きされた要素は、物理的に、対応する物理ベクトルレジスタのエントリに読み書きされる。つまり、論理ベクトルレジスタのエントリと物理ベクトルレジスタのエントリは1対1に対応している。物理ベクトルレジスタには、物理ベクトルレジスタ番号が付与され、物理ベクトルレジスタは当該番号により指定される。   The vector register 1 stores a series of ordered vector data to be operated. The vector register 1 has a plurality of entries, and vector data is stored for each entry. The vector data is composed of a plurality of words (hereinafter referred to as elements). A word is a unit of data. Therefore, each entry of the vector register 1 stores vector data elements. The number of elements specified by the instruction is read out one element per machine cycle from the entry of the vector register 1 specified by the pointer. Further, the vector data of the operation result is sequentially stored in the entry of the vector register 1 designated by the pointer. The vector register 1 is composed of a logical vector register having a predetermined number of elements. That is, the logical vector register is accessed in units of a predetermined number of elements. The logical vector register is given a logical vector register number, and the vector register 1 is accessed from the program by the logical vector register number. That is, the vector register 1 is a virtual register that is accessed from the program in units of a predetermined number of elements. The logical vector register is configured by entries corresponding to a predetermined number of elements among the entries of the vector register 1. The vector register 1 includes a predetermined number of physical vector registers. Therefore, an element read / written to / from the entry of the vector register 1 by the program is physically read / written from / to the corresponding entry of the physical vector register. That is, the logical vector register entry and the physical vector register entry have a one-to-one correspondence. A physical vector register number is assigned to the physical vector register, and the physical vector register is designated by the number.

WDレジスタ2は、ベクトルレジスタ1に書込むベクトルデータの要素を一時的に格納する。なお、WDは、“ライトデータ”と読む。   The WD register 2 temporarily stores elements of vector data to be written to the vector register 1. The WD is read as “write data”.

RDレジスタ3は、ベクトルレジスタ1から読み出されたベクトルデータの要素を一時的に格納する。なお、RDは、“リードデータ”と読む。   The RD register 3 temporarily stores elements of vector data read from the vector register 1. The RD is read as “read data”.

WPレジスタ4は、物理ベクトルレジスタの各エントリとそれぞれ対応するWPを格納する。WPレジスタ4は、ベクトルレジスタ1への書き込みに同期してWPの値に1を加算する。WPレジスタ4は、パス40を介して、WPを拡張ビット部8とポインタ合成部9に通知する。なお、WPは、“ライトポインタ”と読む。   The WP register 4 stores a WP corresponding to each entry of the physical vector register. The WP register 4 adds 1 to the value of WP in synchronization with the writing to the vector register 1. The WP register 4 notifies the WP to the extension bit unit 8 and the pointer synthesis unit 9 via the path 40. Note that WP reads “write pointer”.

RPレジスタ5は、物理ベクトルレジスタの各エントリとそれぞれ対応するRPを格納する。RPレジスタ5は、ベクトルレジスタ1からの読み出しに同期してRPの値に1を加算する。RPレジスタ5は、パス50を介して、RPを拡張ビット部8とポインタ合成部9に通知する。なお、RPは、“リードポインタ”と読む。   The RP register 5 stores an RP corresponding to each entry of the physical vector register. The RP register 5 adds 1 to the value of RP in synchronization with reading from the vector register 1. The RP register 5 notifies the extension bit unit 8 and the pointer synthesis unit 9 via the path 50. RP is read as “read pointer”.

マスク部6は、論理ベクトルレジスタの要素数と同じ数のビット数で構成される。このことは、つまり、物理ベクトルレジスタの要素数と同じ数のビット数で構成されるということも意味する。マスク部6は、それぞれのビットが、要素が格納されている論理ベクトルレジスタの各エントリのそれぞれに対応するマスクレジスタを有する。マスクレジスタのそれぞれのビットは、要素が格納されている物理ベクトルレジスタの各エントリのそれぞれにも対応する。マスク部6は、マスクレジスタの設定により、マスク付き演算が実行される際に命令で指定された論理ベクトルレジスタに演算結果を書込むか否かを、要素が格納されているエントリ毎に指定する。マスク部6は、書き込みを行うエントリに格納されている要素(以下、有効要素という)に対応するマスクレジスタのビットに“1”を設定する。また、マスク部6は、書き込みを行わないエントリに格納されている要素(以下、無効要素という)に対応するマスクレジスタのビットに“0”を設定する。マスク部6は、拡張ビット部8とWE制御部11に対して、パス60を介して、書き込みを行うエントリに対応するマスクレジスタの内容1ビットと、そのマスクレジスタの値を使用するか否かをマスク情報として通知する。   The mask unit 6 is composed of the same number of bits as the number of elements of the logical vector register. This means that the number of bits is the same as the number of elements of the physical vector register. The mask unit 6 has a mask register in which each bit corresponds to each entry of the logical vector register in which the element is stored. Each bit of the mask register also corresponds to each entry of the physical vector register in which the element is stored. The mask unit 6 specifies, for each entry in which an element is stored, whether or not to write the operation result to the logical vector register specified by the instruction when an operation with a mask is executed by setting the mask register. . The mask unit 6 sets “1” to a bit of a mask register corresponding to an element (hereinafter referred to as a valid element) stored in an entry to be written. Further, the mask unit 6 sets “0” to a bit of a mask register corresponding to an element (hereinafter referred to as an invalid element) stored in an entry to which writing is not performed. Whether the mask unit 6 uses the 1 bit of the contents of the mask register corresponding to the entry to be written and the value of the mask register, via the path 60, with respect to the extension bit unit 8 and the WE control unit 11 Is notified as mask information.

レジスタ管理部7は、レジスタ・リネーミングを行う際に、論理ベクトルレジスタと物理ベクトルレジスタとの対応関係を制御する。レジスタ管理部7は、書き込みが実行される物理ベクトルレジスタ番号をライト物理ベクトルレジスタ番号とし、読込みが実行される物理ベクトルレジスタ番号をリード物理ベクトルレジスタ番号として、それぞれ管理する。レジスタ管理部7は、ライト物理ベクトルレジスタ番号を、パス70を介して拡張ビット部8に通知する。レジスタ管理部7は、リード物理ベクトルレジスタ番号を、パス71を介して拡張ビット部8に通知する。ライト物理ベクトルレジスタ番号及びリード物理ベクトルレジスタ番号は、2進数で送信される。また、レジスタ管理部7は、ベクトルレジスタ1のエントリ毎に、エントリ内のベクトルデータの要素が使用中であるか否かを示すフラグを有する。このことは、同時に、レジスタ管理部7は、論理ベクトルレジスタのエントリ毎に、エントリ内のベクトルデータの要素が使用中であるか否かを管理することを意味する。使用中とは、当該要素を他の要素に上書きすることができない状態をいう。フラグは、例えば1ビットの値とし、エントリ内の要素が使用中であれば“1”、そうでなければ“0”を示すというように構成すればよい。レジスタ管理部7は、全エントリ分のフラグを、パス72を介してポインタ合成部9に送信する。なお、レジスタ管理部7は、フラグの内容が更新される度に、全エントリ分のフラグをパス72を介してポインタ合成部9に送信する。レジスタ管理部7は、レジスタ・リネーミング後の論理ベクトルレジスタと物理ベクトルレジスタとのエントリ毎の対応関係を管理する。つまり、レジスタ管理部7は、論理ベクトルレジスタの要素数の単位で、物理ベクトルレジスタとのエントリ毎の対応関係を管理する。   The register management unit 7 controls the correspondence between the logical vector register and the physical vector register when register renaming is performed. The register management unit 7 manages a physical vector register number in which writing is executed as a write physical vector register number and a physical vector register number in which reading is executed as a read physical vector register number. The register management unit 7 notifies the extension bit unit 8 via the path 70 of the write physical vector register number. The register management unit 7 notifies the extension bit unit 8 of the read physical vector register number via the path 71. The write physical vector register number and the read physical vector register number are transmitted in binary numbers. The register management unit 7 has a flag indicating whether or not the element of the vector data in the entry is in use for each entry of the vector register 1. This means that, at the same time, the register management unit 7 manages whether or not the element of the vector data in the entry is in use for each entry of the logical vector register. In use means a state in which the element cannot be overwritten with another element. The flag may be configured to have a value of 1 bit, for example, “1” if an element in the entry is in use, and “0” otherwise. The register management unit 7 transmits flags for all entries to the pointer synthesis unit 9 via the path 72. Note that the register management unit 7 transmits flags for all entries to the pointer synthesis unit 9 via the path 72 every time the contents of the flag are updated. The register management unit 7 manages the correspondence for each entry between the logical vector register and the physical vector register after register renaming. That is, the register management unit 7 manages the correspondence for each entry with the physical vector register in units of the number of elements of the logical vector register.

拡張ビット部8は、WPとRPを、それぞれパス40、パス50経由で受信する。拡張ビット部8は、マスク部6からパス60を経由してマスク情報を受信する。拡張ビット部8は、レジスタ管理部7からライト物理ベクトルレジスタ番号、リード物理ベクトルレジスタ番号を、それぞれパス70、パス71から受信する。拡張ビット部8は、物理ベクトルレジスタの各エントリと1対1に対応する拡張ビットを生成する。拡張ビット部8は、WPで指定されるエントリに対応した拡張ビットを生成し、ライト拡張ビット(以下 WEX)としてパス80を介してポインタ合成部9に通知する。拡張ビット部8は、RPで指定されるエントリに対応した拡張ビットを生成し、リード拡張ビット(以下 REX)としてパス81を介してポインタ合成部9に通知する。なお、拡張ビット部8は、拡張ビットを、対応するエントリ毎に格納する拡張ビットレジスタを備える。拡張ビット部8は、物理ベクトルレジスタのそれぞれに対応した拡張ビットレジスタを備える。   The extension bit unit 8 receives WP and RP via the path 40 and the path 50, respectively. The extension bit unit 8 receives mask information from the mask unit 6 via the path 60. The extension bit unit 8 receives the write physical vector register number and the read physical vector register number from the register management unit 7 from the path 70 and the path 71, respectively. The extension bit unit 8 generates an extension bit corresponding to each entry of the physical vector register on a one-to-one basis. The extension bit unit 8 generates an extension bit corresponding to the entry specified by the WP, and notifies the pointer synthesis unit 9 via the path 80 as a write extension bit (hereinafter referred to as WEX). The extension bit unit 8 generates an extension bit corresponding to the entry specified by the RP, and notifies the pointer synthesis unit 9 via the path 81 as a read extension bit (hereinafter REX). The extension bit unit 8 includes an extension bit register that stores an extension bit for each corresponding entry. The extension bit unit 8 includes an extension bit register corresponding to each physical vector register.

ポインタ合成部9は、WP、RPを、それぞれパス40、パス50経由で受信する。拡張ビット部8から、WEX、REXを、それぞれパス80、パス81経由で受信する。ポインタ合成部9は、WPとWEXから、ベクトルレジスタ1に対してベクトルデータを書込むエントリを指定するための、ライト拡張ポインタを生成する。また、ポインタ合成部9は、RPとREXから、ベクトルレジスタ1に対してベクトルデータを読み出すエントリを指定するための、リード拡張ポインタを生成する。ポインタ合成部9は、ライト拡張ポインタ、リード拡張ポインタを、それぞれパス90、パス91を経由してベクトルレジスタ1に送信する。ポインタ合成部9は、パス72を介してレジスタ管理部7からエントリの使用可否を示すフラグを受信する。ポインタ合成部9は、WEXから生成したライト拡張ポインタに対応するベクトルレジスタ1のエントリの使用可否を、レジスタ管理部7から受信したフラグを用いて判断する。ポインタ合成部9は、ライト拡張ポインタに対応するエントリが使用不可の場合、パス80を介して受信したWEXの値を変更し、新たなライト拡張ポインタを生成する。ポインタ合成部9は、生成した新たなライト拡張ポインタを、パス94を介して拡張ビット部8へ送信する。   The pointer synthesis unit 9 receives WP and RP via the path 40 and the path 50, respectively. WEX and REX are received from the extension bit unit 8 via the path 80 and the path 81, respectively. The pointer synthesis unit 9 generates a write extension pointer for designating an entry for writing vector data to the vector register 1 from WP and WEX. Further, the pointer synthesis unit 9 generates a read extension pointer for designating an entry for reading vector data from the RP and REX to the vector register 1. The pointer synthesis unit 9 transmits the write extension pointer and the read extension pointer to the vector register 1 via the path 90 and the path 91, respectively. The pointer synthesis unit 9 receives a flag indicating whether or not the entry can be used from the register management unit 7 via the path 72. The pointer synthesizer 9 determines whether or not the entry of the vector register 1 corresponding to the write extension pointer generated from WEX can be used using the flag received from the register manager 7. When the entry corresponding to the write extension pointer is unusable, the pointer synthesis unit 9 changes the value of WEX received via the path 80 and generates a new write extension pointer. The pointer synthesis unit 9 transmits the generated new write extension pointer to the extension bit unit 8 via the path 94.

WEレジスタ10は、ベクトルレジスタ1に対して、書き込みの動作タイミングを指示する。WEレジスタ10には、WDレジスタ2に有効な書き込みデータが存在する場合には“1”、存在しない場合には“0”が格納される。WEレジスタ10は、自己に格納されている値を、WE制御部11に通知する。なお、WEは“ライトイネーブル”と読む。   The WE register 10 instructs the vector register 1 on the write operation timing. The WE register 10 stores “1” when valid write data exists in the WD register 2 and “0” when there is no valid write data. The WE register 10 notifies the WE control unit 11 of the value stored in itself. WE is read as “write enable”.

WE制御部11は、WEレジスタ10の値と、マスク部6からパス60を介してマスク情報を受信する。マスク情報によりマスクレジスタの値を使用することが通知された場合、WE制御部11は、マスクビットとWEレジスタ10の値の論理積を計算し、WE信号としてベクトルレジスタ1へ送信する。また、マスク情報によりマスクレジスタの値を使用しないことが通知された場合、WEレジスタ10の値をそのままWE信号としてベクトルレジスタ1に送信する。ベクトルレジスタ1では、WE信号が“1”のときに書き込みが実行され、“0”のときには書き込みは実行されない。   The WE control unit 11 receives the value of the WE register 10 and the mask information from the mask unit 6 via the path 60. When it is notified by the mask information that the value of the mask register is to be used, the WE control unit 11 calculates the logical product of the mask bit and the value of the WE register 10 and transmits it to the vector register 1 as a WE signal. When it is notified by the mask information that the value of the mask register is not used, the value of the WE register 10 is transmitted as it is to the vector register 1 as a WE signal. In the vector register 1, writing is executed when the WE signal is “1”, and writing is not executed when it is “0”.

レジスタ制御部12は、命令発行をトリガとし、WPレジスタ4とRPレジスタ5の動作タイミング、拡張ビット部8における拡張ビットレジスタの動作タイミング、WEレジスタ10の動作タイミングを制御する。   The register control unit 12 controls the operation timing of the WP register 4 and the RP register 5, the operation timing of the extension bit register in the extension bit unit 8, and the operation timing of the WE register 10 using the instruction issuance as a trigger.

以下において、ベクトルレジスタ1は、要素数4の1つの論理ベクトルレジスタ(論理ベクトルレジスタ0番)からなり、物理ベクトルレジスタ2個(物理ベクトルレジスタ0番及び1番)からなる構成により、本発明の第1の実施形態についてより詳細に説明する。なお、各物理ベクトルレジスタの要素数も4であるものとする。   In the following, the vector register 1 is composed of one logical vector register (logical vector register No. 0) having 4 elements, and has two physical vector registers (physical vector registers 0 and 1). The first embodiment will be described in more detail. It is assumed that the number of elements of each physical vector register is four.

まず、論理ベクトルレジスタの各エントリと、物理ベクトルレジスタのエントリとの関連付けについて説明する。   First, the association between each entry in the logical vector register and the entry in the physical vector register will be described.

図2に、物理ベクトルレジスタの各エントリと、論理ベクトルレジスタの各エントリとの関連付けの対応表を示す。図2を用いて、物理ベクトルレジスタ0番についての関連付けについて説明する。なお、図2において、WPレジスタ4の値を用いて関連付けについて説明するが、RPレジスタ5の値を用いて関連付けを行うことも可能である。   FIG. 2 shows a correspondence table of association between each entry in the physical vector register and each entry in the logical vector register. The association with respect to the physical vector register No. 0 will be described with reference to FIG. In FIG. 2, the association is described using the value of the WP register 4, but the association can also be performed using the value of the RP register 5.

関連付けのために、物理ベクトルレジスタ0番に対応する拡張ビットレジスタ(以下、物理0拡張ビットレジスタ)に格納されている拡張ビットを用いる。   For the association, an extension bit stored in an extension bit register (hereinafter, physical 0 extension bit register) corresponding to the physical vector register 0 is used.

物理ベクトルレジスタ0番のエントリ00(2進数の“00”で、エントリの番号を表現)は、WPレジスタ4の値“00”(2進数)と、WPレジスタ4の値“00”に対応する物理0拡張ビットレジスタの値を用いて、論理ベクトルレジスタのエントリと関連付けられる。物理0拡張ビットレジスタの値が“0”の場合、当該値とWPレジスタ4の値“00”を合成して生成されるライト拡張ポインタは“000”(2進数)となり、ベクトルレジスタ1のエントリe0(即ち、論理ベクトルレジスタのエントリ0)と関連付けられる。物理0拡張ビットレジスタの値が“1”のとき、物理ベクトルレジスタ0番は、ライト拡張ポインタは“100”となり、ベクトルレジスタ1のエントリe4(即ち、論理ベクトルレジスタのエントリ0)と関連付けられる。物理ベクトルレジスタ1番についても、物理1拡張ビットレジスタの値を用いて同様に関連付けが実行される。このように、図2に示した対応表に基づいて、関連付けが実行される。ただし、図2は一例であり、図2に示した対応表による関連付けに限定されるものではない。   The physical vector register 0 entry 00 (the binary number “00” represents the entry number) corresponds to the WP register 4 value “00” (binary number) and the WP register 4 value “00”. The value of the physical 0 extension bit register is used to associate with the entry in the logical vector register. When the value of the physical 0 extension bit register is “0”, the write extension pointer generated by combining the value and the value “00” of the WP register 4 is “000” (binary number), and the entry of the vector register 1 Associated with e0 (ie, entry 0 in the logical vector register). When the value of the physical 0 extension bit register is “1”, the physical vector register No. 0 has a write extension pointer of “100” and is associated with the entry e4 of the vector register 1 (that is, entry 0 of the logical vector register). The physical vector register 1 is also associated in the same manner using the value of the physical 1 extension bit register. In this way, the association is executed based on the correspondence table shown in FIG. However, FIG. 2 is an example and is not limited to the association by the correspondence table shown in FIG.

図3を用いて、関連付けについて具体的に説明する。   The association will be specifically described with reference to FIG.

ベクトルレジスタ1は、エントリe0〜e7を有する。ベクトルレジスタ1は、上述したように、要素数4の論理ベクトルレジスタにより構成される。つまり、命令実行時に、ベクトルレジスタ1の8つのエントリ(e0〜e7)のうちの4つのエントリが論理ベクトルレジスタを構成する。また、物理ベクトルレジスタ0番及び1番は、それぞれ、エントリfe0〜fe3を有する。ベクトルレジスタ1のe0〜e7の内容が、A,B、C,D、E,K、初期値(−)、Hとする。物理0拡張ビットレジスタの内容が、0101である場合、WPレジスタ4の対応する値と物理0拡張ビットレジスタのそれぞれの値を合成し、物理ベクトルレジスタ0番のエントリfe0〜fe3は、それぞれ、e0、e5、e2、e7と関連付けられる。図3では、fe0(e0)、fe1(e5)、fe2(e2)、fe3(e7)と表す。物理ベクトルレジスタ0番の内容は、A、K、C、Hとなる。これにより、論理ベクトルレジスタの4つのエントリはそれぞれ、ベクトルレジスタ1のe0、e5、e2、e7と関連付けられる。   The vector register 1 has entries e0 to e7. As described above, the vector register 1 is composed of a logical vector register having four elements. That is, at the time of instruction execution, four of the eight entries (e0 to e7) of the vector register 1 constitute a logical vector register. The physical vector registers No. 0 and No. 1 have entries fe0 to fe3, respectively. Assume that the contents of e0 to e7 of the vector register 1 are A, B, C, D, E, K, initial values (-), and H. When the contents of the physical 0 extension bit register are 0101, the corresponding values of the WP register 4 and the respective values of the physical 0 extension bit register are synthesized, and the entries fe0 to fe3 of the physical vector register 0 are respectively set to e0. , E5, e2, e7. In FIG. 3, they are represented as fe0 (e0), fe1 (e5), fe2 (e2), and fe3 (e7). The contents of the physical vector register No. 0 are A, K, C, and H. Thus, the four entries of the logical vector register are associated with e0, e5, e2, and e7 of the vector register 1, respectively.

物理1拡張ビットレジスタの内容が、1001である場合、WPレジスタ4の対応する値と物理1拡張ビットレジスタのそれぞれの値を合成し、物理ベクトルレジスタ1番のエントリfe0〜fe3は、それぞれ、e4、e1、e2、e7と関連付けられる。図3では、fe0(e4)、fe1(e1)、fe2(e2)、fe3(e7)と表す。物理ベクトルレジスタ1番の内容は、E、B、C、Hとなる。これにより、論理ベクトルレジスタの4つのエントリはそれぞれ、ベクトルレジスタ1のe4、e1、e2、e7と関連付けられる。   When the contents of the physical 1 extension bit register are 1001, the corresponding values of the WP register 4 and the respective values of the physical 1 extension bit register are synthesized, and the entries fe0 to fe3 of the physical vector register 1 are respectively e4. , E1, e2, e7. In FIG. 3, they are represented as fe0 (e4), fe1 (e1), fe2 (e2), and fe3 (e7). The contents of the physical vector register 1 are E, B, C, and H. Thus, the four entries of the logical vector register are associated with e4, e1, e2, e7 of the vector register 1, respectively.

以上のように、物理ベクトルレジスタの各エントリと、論理ベクトルレジスタの各エントリが、エントリ毎に関連付けられる。   As described above, each entry in the physical vector register and each entry in the logical vector register are associated with each entry.

次に、図4及び図5を用いて、拡張ビット部8について詳細に説明する。   Next, the extension bit unit 8 will be described in detail with reference to FIGS. 4 and 5.

拡張ビット部8は、物理ベクトルレジスタ0番、物理ベクトルレジスタ1番にそれぞれ対応する物理0拡張ビットレジスタ82、物理1拡張ビットレジスタ83を有する。また、拡張ビット部8は、更新部84、リードセレクタ85、拡張ビットレジスタ制御部86を有する。   The extension bit unit 8 includes a physical 0 extension bit register 82 and a physical 1 extension bit register 83 respectively corresponding to the physical vector register 0 and the physical vector register 1. The extension bit unit 8 includes an update unit 84, a read selector 85, and an extension bit register control unit 86.

物理0拡張ビットレジスタ82は、物理ベクトルレジスタ0番の各エントリのそれぞれに対応した1ビットの値を格納する。物理0拡張ビットレジスタ82が格納する値は、WP、RPそれぞれの値のビット数を1ビット拡張するために用いられる。   The physical 0 extension bit register 82 stores a 1-bit value corresponding to each entry of the physical vector register 0. The value stored in the physical 0 extension bit register 82 is used to extend the number of bits of each value of WP and RP by 1 bit.

物理1拡張ビットレジスタ83は、物理ベクトルレジスタ1番の各エントリのそれぞれに対応した1ビットの値を格納する。物理1拡張ビットレジスタ83が格納する値は、WP、RPそれぞれの値のビット数を1ビット拡張するために用いられる。   The physical 1 extension bit register 83 stores a 1-bit value corresponding to each entry of the physical vector register 1. The value stored in the physical 1 extension bit register 83 is used to extend the number of bits of each value of WP and RP by 1 bit.

物理0拡張ビットレジスタ82、物理1拡張ビットレジスタ83と更新部84は、それぞれパス820、パス830を介して接続される。   The physical 0 extension bit register 82, the physical 1 extension bit register 83, and the update unit 84 are connected via a path 820 and a path 830, respectively.

物理0拡張ビットレジスタ82、物理1拡張ビットレジスタ83とリードセレクタ85は、それぞれパス821、パス831を介して接続される。   The physical 0 extension bit register 82, the physical 1 extension bit register 83, and the read selector 85 are connected through a path 821 and a path 831, respectively.

更新部84は、パス820を介して物理0拡張ビットレジスタ82から1ビットの値を受信する。また、更新部84は、パス830を介して物理1拡張ビットレジスタ83から1ビットの値を受信する。更新部84は、パス70を介してライト物理ベクトルレジスタ番号を受信し、パス60経由でマスク情報を受信する。更新部84は、物理0拡張ビットレジスタ82若しくは物理1拡張ビットレジスタ83の内容を更新するための新たな値、及び、WEXを生成する。更新部84は、パス844を介して物理0拡張ビットレジスタの内容を更新する。また、更新部84は、パス845を介して物理1拡張ビットレジスタの内容を更新する。   The update unit 84 receives a 1-bit value from the physical 0 extension bit register 82 via the path 820. In addition, the update unit 84 receives a 1-bit value from the physical 1 extension bit register 83 via the path 830. The update unit 84 receives the write physical vector register number via the path 70 and receives mask information via the path 60. The update unit 84 generates a new value and WEX for updating the contents of the physical 0 extension bit register 82 or the physical 1 extension bit register 83. The update unit 84 updates the contents of the physical 0 extension bit register via the path 844. In addition, the update unit 84 updates the contents of the physical 1 extension bit register via the path 845.

リードセレクタ85は、パス821を介して物理0拡張ビットレジスタ82から1ビットの値を受信する。リードセレクタ85は、パス831を介して物理1拡張ビットレジスタ83から1ビットの値を受信する。また、リードセレクタ85は、パス71を介してリード物理ベクトルレジスタ番号を受信する。リードセレクタ85は、物理0拡張ビットレジスタ82、物理1拡張ビットレジスタ83からそれぞれ受信した1ビットの値のいずれかを、リード物理ベクトルレジスタ番号に基づいて選択する。リード物理ベクトルレジスタ番号が物理ベクトルレジスタ0番を指定している場合、リードセレクタ85は、パス821を選択し、物理0拡張ビットレジスタから受信した値を選択する。リード物理ベクトルレジスタが物理ベクトルレジスタ1番を指定している場合、リードセレクタ85は、パス831を選択し、物理1拡張ビットレジスタから受信した値を選択する。   The read selector 85 receives a 1-bit value from the physical 0 extension bit register 82 via the path 821. The read selector 85 receives a 1-bit value from the physical 1 extension bit register 83 via the path 831. The read selector 85 receives the read physical vector register number via the path 71. The read selector 85 selects one of the 1-bit values received from the physical 0 extension bit register 82 and the physical 1 extension bit register 83 based on the read physical vector register number. When the read physical vector register number specifies physical vector register 0, the read selector 85 selects the path 821 and selects the value received from the physical 0 extension bit register. When the read physical vector register designates the physical vector register 1, the read selector 85 selects the path 831 and selects the value received from the physical 1 extension bit register.

拡張ビットレジスタ制御部86は、レジスタ制御部12からの指示により、物理0拡張ビットレジスタ82、物理1拡張ビットレジスタ83を制御する。つまり、拡張ビットレジスタ制御部86は、物理0拡張ビットレジスタ82、物理1拡張ビットレジスタ83の動作タイミングを制御する。   The extension bit register control unit 86 controls the physical 0 extension bit register 82 and the physical 1 extension bit register 83 according to an instruction from the register control unit 12. That is, the extension bit register control unit 86 controls the operation timing of the physical 0 extension bit register 82 and the physical 1 extension bit register 83.

物理0拡張ビットレジスタ82は、物理ベクトルレジスタ0番のエントリ数、つまり物理ベクトルレジスタ0番に格納される要素数の分の1ビットの値を保持する。物理0拡張ビットレジスタ82が保持する値のそれぞれは、物理ベクトルレジスタ0番の各エントリと1対1に対応する。WP、RPにより、物理ベクトルレジスタ0番のエントリに対応する物理0拡張ビットレジスタ82の値が読み出される。これは、WP、RPが物理ベクトルレジスタの各エントリと1対1に対応しているからである。   The physical 0 extension bit register 82 holds a value of 1 bit of the number of entries of the physical vector register 0, that is, the number of elements stored in the physical vector register 0. Each value held by the physical 0 extension bit register 82 has a one-to-one correspondence with each entry of the physical vector register 0. The value of the physical 0 extension bit register 82 corresponding to the entry of the physical vector register 0 is read by WP and RP. This is because WP and RP have a one-to-one correspondence with each entry in the physical vector register.

WPによって読み出された値は、パス820を介して更新部84へ送信される。RPによって読み出された値は、パス821を介してリードセレクタ85へ送信される。   The value read by the WP is transmitted to the update unit 84 via the path 820. The value read by the RP is transmitted to the read selector 85 via the path 821.

物理0拡張ビットレジスタ82は、パス844を介して、更新部84からの指示により対応する物理0拡張ビットレジスタ82のエントリの内容を更新する。   The physical 0 extension bit register 82 updates the contents of the entry of the corresponding physical 0 extension bit register 82 via the path 844 according to an instruction from the update unit 84.

物理0拡張ビットレジスタ82に格納されている値は、ポインタ合成部9で生成されるリード拡張ポインタ又はライト拡張ポインタ(いずれも2進数)の最上位ビットとなる。   The value stored in the physical 0 extension bit register 82 is the most significant bit of the read extension pointer or write extension pointer (both binary numbers) generated by the pointer synthesis unit 9.

物理1拡張ビットレジスタ83は、物理ベクトルレジスタ1番のエントリ数、つまり物理ベクトルレジスタ1番に格納される要素数の分の1ビットの値を保持する。物理1拡張ビットレジスタ83が保持する値のそれぞれは、物理ベクトルレジスタ1番の各エントリと1対1に対応する。WP、RPにより、物理ベクトルレジスタ1番のエントリに対応する物理1拡張ビットレジスタ83の値が読み出される。これは、WP、RPが物理ベクトルレジスタの各エントリと1対1に対応しているからである。   The physical 1 extension bit register 83 holds a value of 1 bit of the number of entries of the physical vector register 1, that is, the number of elements stored in the physical vector register 1. Each value held by the physical 1 extension bit register 83 corresponds to each entry of the physical vector register 1 on a one-to-one basis. The value of the physical 1 extension bit register 83 corresponding to the entry of the physical vector register 1 is read by WP and RP. This is because WP and RP have a one-to-one correspondence with each entry in the physical vector register.

WPによって読み出された値は、パス830を介して更新部84へ送信される。RPによって読み出された値は、パス831を介してリードセレクタ85へ送信される。   The value read by the WP is transmitted to the update unit 84 via the path 830. The value read by the RP is transmitted to the read selector 85 via the path 831.

物理1拡張ビットレジスタ83は、パス845を介して、更新部84からの指示により対応する物理1拡張ビットレジスタ83のエントリの内容を更新する。   The physical 1 extension bit register 83 updates the contents of the corresponding entry of the physical 1 extension bit register 83 according to an instruction from the update unit 84 via the path 845.

物理1拡張ビットレジスタ83に格納されている値は、ポインタ合成部9で生成されるリード拡張ポインタ又はライト拡張ポインタ(いずれも2進数)の最上位ビットとなる。   The value stored in the physical 1 extension bit register 83 is the most significant bit of the read extension pointer or write extension pointer (both binary numbers) generated by the pointer synthesis unit 9.

図5を参照すると、更新部84は、ライトセレクタ840、マスク識別回路841、演算回路842及び更新判定回路843を有する。   Referring to FIG. 5, the update unit 84 includes a write selector 840, a mask identification circuit 841, an arithmetic circuit 842, and an update determination circuit 843.

ライトセレクタ840は、パス70を介して受信するライト物理ベクトルレジスタ番号により、パス820若しくはパス830のいずれかを選択する。ライトセレクタ840は、選択したパスから受信した1ビットの値を演算回路842に送信する。   The write selector 840 selects either the path 820 or the path 830 according to the write physical vector register number received via the path 70. The write selector 840 transmits the 1-bit value received from the selected path to the arithmetic circuit 842.

マスク識別回路841は、パス60を介してマスク情報を受信する。マスク付き命令の実行時、即ち、マスク情報がマスクレジスタの値を使用することを指定している場合には、物理ベクトルレジスタのエントリに対応するマスクレジスタに格納されている値を、演算回路842に対して出力する。通常命令の実行時、即ち、マスク情報がマスクレジスタの値を使用しないことを指定している場合には、常に1ビットの“1”を、演算回路842に対して出力する。   The mask identification circuit 841 receives the mask information via the path 60. When an instruction with a mask is executed, that is, when the mask information specifies that the value of the mask register is to be used, the value stored in the mask register corresponding to the entry of the physical vector register is used as the arithmetic circuit 842. Output for. When a normal instruction is executed, that is, when the mask information specifies that the value of the mask register is not used, 1-bit “1” is always output to the arithmetic circuit 842.

演算回路842は、ライトセレクタ840から受信した値とマスク識別回路841から受信した値の排他的論理和(以下 XORという)をとり、WEXを生成する。演算回路842は、生成したWEXを、パス80を介してポインタ合成部9へ送信する。また、演算回路842は、生成したWEXを、更新判定回路843にも送信する。XOR演算を実行するだけなので、演算回路の構成を単純化でき、従来技術と比較してHW量の増大を抑えつつ、マスク付き演算の実行時でもレジスタ・リネーミングを実現することができる。   The arithmetic circuit 842 calculates the exclusive OR (hereinafter referred to as XOR) of the value received from the write selector 840 and the value received from the mask identification circuit 841 to generate WEX. The arithmetic circuit 842 transmits the generated WEX to the pointer synthesis unit 9 via the path 80. The arithmetic circuit 842 also transmits the generated WEX to the update determination circuit 843. Since only the XOR operation is executed, the configuration of the operation circuit can be simplified, and register renaming can be realized even during execution of the masked operation while suppressing an increase in the amount of HW compared to the prior art.

更新判定回路843は、パス70を介して受信したライト物理ベクトルレジスタ番号により、パス844若しくはパス845のいずれかを選択する。更新判定回路843は、ライト物理ベクトルレジスタ番号が0のとき、パス844を選択し、ライト物理ベクトルレジスタ番号が1のとき、パス845を選択する。更新判定回路843は、選択したパスを介して、演算回路842から受信したWEX及び更新指示を、物理拡張ビットレジスタに対して送信する。   The update determination circuit 843 selects either the path 844 or the path 845 according to the write physical vector register number received via the path 70. The update determination circuit 843 selects the path 844 when the write physical vector register number is 0, and selects the path 845 when the write physical vector register number is 1. The update determination circuit 843 transmits the WEX and update instruction received from the arithmetic circuit 842 to the physical extension bit register via the selected path.

ライトセレクタ840は、ライト物理ベクトルレジスタ番号が0のとき、パス830を介して送信された物理1拡張ビットレジスタ83の値を選択し、演算回路842へ出力する。また、ライトセレクタ840は、ライト物理ベクトルレジスタ番号が1のとき、パス820を介して送信された物理0拡張ビットレジスタ82の値を選択し、演算回路842へ出力する。   When the write physical vector register number is 0, the write selector 840 selects the value of the physical 1 extension bit register 83 transmitted via the path 830 and outputs it to the arithmetic circuit 842. Further, when the write physical vector register number is 1, the write selector 840 selects the value of the physical 0 extension bit register 82 transmitted via the path 820 and outputs it to the arithmetic circuit 842.

次に、図6を用いて、ポインタ合成部9について詳細に説明する。   Next, the pointer composition unit 9 will be described in detail with reference to FIG.

ポインタ合成部9は、WP合成回路92及びRP合成回路93を有する。   The pointer synthesis unit 9 has a WP synthesis circuit 92 and an RP synthesis circuit 93.

WP合成回路92は、パス40を介してWPレジスタ4からWPを受信する。また、WP合成回路92は、パス80を介して演算回路842からWEXを受信する。WP合成回路92は、それぞれのパスから受信した値を合成し、ライト拡張ポインタを生成する。WP合成回路92は、合成において、WEXがライト拡張ポインタの最上位ビットとなるように、WEXとWPを合成する。WEXは1ビット、WPは2ビットであるので、ライト拡張ポインタは3ビットとなる。図2の表に示したように、WEXが“0”のとき、ライト拡張ポインタは、ベクトルレジスタ1のエントリe0〜e3(以下 前半という)と関連付けられる。また、WEXが“1”のとき、ライト拡張ポインタは、ベクトルレジスタ1のエントリe4〜e7(以下 後半という)と関連付けられる。ライト拡張ポインタは、ベクトルレジスタ1のエントリ(即ち、論理ベクトルレジスタのエントリと対応するベクトルレジスタ1のエントリ)を決定する情報として、パス90を介してベクトルレジスタ1へ通知される。   The WP synthesis circuit 92 receives WP from the WP register 4 via the path 40. Further, the WP combining circuit 92 receives WEX from the arithmetic circuit 842 via the path 80. The WP synthesis circuit 92 synthesizes the values received from the respective paths and generates a write extension pointer. The WP synthesis circuit 92 synthesizes WEX and WP so that WEX becomes the most significant bit of the write extension pointer in the synthesis. Since WEX is 1 bit and WP is 2 bits, the write extension pointer is 3 bits. As shown in the table of FIG. 2, when WEX is “0”, the write extension pointer is associated with entries e0 to e3 (hereinafter referred to as the first half) of the vector register 1. When WEX is “1”, the write extension pointer is associated with entries e4 to e7 (hereinafter referred to as the latter half) of the vector register 1. The write extension pointer is notified to the vector register 1 via the path 90 as information for determining the entry of the vector register 1 (that is, the entry of the vector register 1 corresponding to the entry of the logical vector register).

RP合成回路93は、パス50を介してRPレジスタ5からRPを受信する。また、RP合成回路93は、パス81を介してリードセレクタ85からREXを受信する。RP合成回路93は、それぞれのパスから受信した値を合成し、リード拡張ポインタを生成する。RP合成回路93は、合成において、REXがリード拡張ポインタの最上位ビットとなるように、REXとRPを合成する。REXは1ビット、RPは2ビットであるので、リード拡張ポインタは3ビットとなる。REXが“0”のとき、リード拡張ポインタは、ベクトルレジスタ1のエントリe0〜e3(以下 前半という)と関連付けられる。また、REXが“1”のとき、リード拡張ポインタは、ベクトルレジスタ1のエントリe4〜e7(以下 後半という)と関連付けられる。リード拡張ポインタは、ベクトルレジスタ1のエントリ(即ち、論理ベクトルレジスタのエントリと対応するベクトルレジスタ1のエントリ)を決定する情報として、パス91を介してベクトルレジスタ1へ通知される。   The RP synthesis circuit 93 receives the RP from the RP register 5 via the path 50. Further, the RP synthesis circuit 93 receives REX from the read selector 85 via the path 81. The RP synthesis circuit 93 synthesizes the values received from the respective paths and generates a read extension pointer. The RP synthesis circuit 93 synthesizes REX and RP so that REX is the most significant bit of the read extension pointer in the synthesis. Since REX is 1 bit and RP is 2 bits, the read extension pointer is 3 bits. When REX is “0”, the read extension pointer is associated with entries e0 to e3 (hereinafter referred to as the first half) of the vector register 1. When REX is “1”, the read extension pointer is associated with entries e4 to e7 (hereinafter referred to as the latter half) of the vector register 1. The read extension pointer is notified to the vector register 1 via the path 91 as information for determining the entry of the vector register 1 (that is, the entry of the vector register 1 corresponding to the entry of the logical vector register).

WP合成回路92は、パス72を介して、レジスタ管理部7から、ベクトルレジスタ1のエントリ内のベクトルデータの要素が使用中であるか否かを示すフラグを受信する。WP合成回路92は、生成したライト拡張ポインタにより指定されるベクトルレジスタ1のエントリと対応するフラグの内容を確認する。フラグにより要素が使用中でないことが確認できた場合、WP合成回路92は、生成したライト拡張ポインタを、パス90を介してベクトルレジスタ1へ通知する。   The WP synthesis circuit 92 receives a flag indicating whether or not the element of the vector data in the entry of the vector register 1 is in use from the register management unit 7 via the path 72. The WP synthesis circuit 92 confirms the contents of the flag corresponding to the entry of the vector register 1 designated by the generated write extension pointer. If the flag confirms that the element is not in use, the WP synthesis circuit 92 notifies the vector register 1 via the path 90 of the generated write extension pointer.

フラグにより要素が使用中であることが確認された場合、WP合成回路92は、パス80を介して受信したWEXの値を変更する。例えば、WP合成回路92は、受信したWEXの値に1を加算(インクリメント)し、若しくは、受信したWEXの値から1を減算する(デクリメント)ことにより、受信したWEXの値を変更する。その上で、再度ライト拡張ポインタを生成し、当該ライト拡張ポインタにより指定されるベクトルレジスタ1のエントリと対応するフラグの内容を再確認する。フラグにより要素が使用中でないことが確認できた場合、WP合成回路92は、再生成されたライト拡張ポインタを、パス90を介してベクトルレジスタ1に通知する。それと共に、WP合成回路92は、パス94を介して、更新判定回路843に対して変更後のWEXの値を通知する。更新判定回路843は、当該通知を受けて、対応する物理拡張ビットレジスタのエントリの値を変更する。   When the flag confirms that the element is in use, the WP combining circuit 92 changes the value of WEX received via the path 80. For example, the WP synthesis circuit 92 changes the received WEX value by adding (incrementing) 1 to the received WEX value or subtracting 1 from the received WEX value (decrement). Then, a write extension pointer is generated again, and the contents of the flag corresponding to the entry of the vector register 1 designated by the write extension pointer are reconfirmed. If the flag confirms that the element is not in use, the WP synthesis circuit 92 notifies the regenerated write extension pointer to the vector register 1 via the path 90. At the same time, the WP combining circuit 92 notifies the update determination circuit 843 of the changed WEX value via the path 94. Upon receiving the notification, the update determination circuit 843 changes the value of the corresponding physical extension bit register entry.

再生成したライト拡張ポインタに対応するフラグの内容を再確認しても当該フラグに対応する要素が使用中であった場合、WP合成回路92は、パス80を介して受信した最初のWEXにより生成したライト拡張ポインタに対応するエントリの要素が使用可能となるまで待機する。つまり、パス80を介して受信したWEXの値を、予め定めた一定の回数だけ変更しても、使用可能な要素が無い場合は、パス80を介して受信した最初のWEXにより生成したライト拡張ポインタに対応するエントリの要素が使用可能となるまで待機するということである。また、変更によりWEXの値が上限値若しくは下限値に到達した場合は、パス80を介して受信した最初のWEXにより生成したライト拡張ポインタに対応するエントリの要素が使用可能となるまで待機するようにしてもよい。   If the element corresponding to the flag is still in use even if the contents of the flag corresponding to the regenerated write extension pointer are reconfirmed, the WP synthesis circuit 92 generates the first WEX received via the path 80. Wait until the element of the entry corresponding to the write extension pointer becomes available. That is, if there is no usable element even if the value of WEX received via path 80 is changed a predetermined number of times, the write extension generated by the first WEX received via path 80 The process waits until the entry element corresponding to the pointer becomes available. If the WEX value reaches the upper limit value or the lower limit value due to the change, the process waits until the entry element corresponding to the write extension pointer generated by the first WEX received via the path 80 becomes usable. It may be.

ベクトルレジスタ1のエントリ毎に、使用中か否かを確認することで、マスク付き演算の実行時においてレジスタ・リネーミングを実行した場合でも、レジスタ内容の不正な上書きを防ぎ、データ化けを回避できるという効果が得られる。   By checking whether or not each entry in the vector register 1 is in use, even when register renaming is executed during execution of an operation with a mask, illegal overwriting of the register contents can be prevented and data corruption can be avoided. The effect is obtained.

次に、ベクトルレジスタ1が要素数4の1つの論理ベクトルレジスタ(論理ベクトルレジスタ0番)からなり、物理ベクトルレジスタ2個(物理ベクトルレジスタ0番及び1番)からなる構成において、レジスタ・リネーミングにより論理ベクトルレジスタと物理ベクトルレジスタをエントリ毎に関連付ける方式について、詳細に説明する。ベクトルレジスタ1は、プログラムからは要素数が4(エントリ数が4)の1つの論理ベクトルレジスタとしてアクセスされる。なお、各物理ベクトルレジスタの要素数も4であるものとする。   Next, in the configuration in which the vector register 1 is composed of one logical vector register (logical vector register No. 0) having four elements and two physical vector registers (physical vector registers No. 1 and No. 1), register renaming A method for associating the logical vector register and the physical vector register for each entry will be described in detail. The vector register 1 is accessed from the program as one logical vector register having 4 elements (4 entries). It is assumed that the number of elements of each physical vector register is four.

図7(a)〜(g)を参照して、論理ベクトルレジスタ0番に書込む通常命令である3命令(以降、それぞれ命令0、命令1、命令2)を実行した場合について説明する。なお、図7において、ベクトルレジスタ1のエントリをe0〜e7とし、物理ベクトルレジスタのエントリをfe0〜fe3とする。なお、ベクトルレジスタ1のエントリe0〜e7のうちのいずれか4つが、論理ベクトルレジスタ0番のエントリと対応付けられる。つまり、物理ベクトルレジスタのエントリと関連付けられる論理ベクトルレジスタ0番のエントリは、ベクトルレジスタ1のエントリのうちのいずれか4つのエントリとなる。   With reference to FIGS. 7A to 7G, a description will be given of a case where three instructions (hereinafter, instruction 0, instruction 1, and instruction 2, respectively), which are normal instructions written in the logical vector register 0, are executed. In FIG. 7, the entries in the vector register 1 are e0 to e7, and the physical vector register entries are fe0 to fe3. Note that any four of the entries e0 to e7 of the vector register 1 are associated with the logical vector register 0th entry. That is, the logical vector register 0 entry associated with the physical vector register entry is any four of the vector register 1 entries.

図7(a)に初期状態を示す。初期状態は、物理0拡張ビットレジスタ82の全ての値が“0”となり、物理1拡張ビットレジスタ83の全ての値が“1”となる。これは、原則として、レジスタ・リネーミングにより、物理ベクトルレジスタ0番の各エントリをエントリe0〜e7の前半(e0〜e3)と関連付け、物理ベクトルレジスタ1番の各エントリをエントリ(e0〜e7)の後半(e4〜e7)と関連付けたいからである。ベクトルレジスタ1の全エントリ、物理ベクトルレジスタ0番の全エントリ、物理ベクトルレジスタ1番の全エントリは、それぞれ初期値(−)となる。   FIG. 7A shows an initial state. In an initial state, all values of the physical 0 extension bit register 82 are “0”, and all values of the physical 1 extension bit register 83 are “1”. In principle, each entry of physical vector register 0 is associated with the first half (e0 to e3) of entries e0 to e7 by register renaming, and each entry of physical vector register 1 is an entry (e0 to e7). This is because we want to associate it with the second half (e4 to e7). All entries in the vector register 1, all entries in the physical vector register 0, and all entries in the physical vector register 1 have initial values (-).

命令0を実行した場合について説明する。   A case where instruction 0 is executed will be described.

なお、命令の発行により、マスク部6、レジスタ管理部7、レジスタ制御部12に制御情報が渡される。以下、命令実行について説明する場合には、全て同様とする。   Note that control information is transferred to the mask unit 6, the register management unit 7, and the register control unit 12 by issuing an instruction. Hereinafter, the same applies to the description of instruction execution.

命令0の論理ベクトルレジスタ0番は、レジスタ管理部7においてレジスタ・リネーミングにより、物理ベクトルレジスタ0番が指定されるものとする。命令0は通常命令なので、マスク識別回路841の出力は“1”となる。   The logical vector register 0 of the instruction 0 is assumed to be designated as the physical vector register 0 by register renaming in the register management unit 7. Since the instruction 0 is a normal instruction, the output of the mask identification circuit 841 is “1”.

図7(b)に、ベクトルデータを書込む直前の状態を示す。通常命令なので、各エントリに対応するマスク識別回路841の出力は、全て“1”となる。ライト物理ベクトルレジスタ番号が“0”(実際は2進数で表現されるが、便宜上10進数で表示する。以下同様とする。)なので、ライトセレクタ840により、物理1拡張ビットレジスタ83の値が選択される。従って、演算回路842は、データを書込むエントリに対応する、マスク識別回路841の出力及び物理1拡張ビットレジスタ83の値をXOR演算する。演算結果は、更新判定回路843により、パス844を介して、物理0拡張ビットレジスタ82の対応するエントリに書込まれる。   FIG. 7B shows a state immediately before the vector data is written. Since it is a normal instruction, the outputs of the mask identification circuit 841 corresponding to each entry are all “1”. Since the write physical vector register number is “0” (actually expressed in binary, but displayed in decimal for convenience. The same applies hereinafter), the value of the physical 1 extension bit register 83 is selected by the write selector 840. The Therefore, the arithmetic circuit 842 performs an XOR operation on the output of the mask identification circuit 841 and the value of the physical 1 extension bit register 83 corresponding to the entry to which data is written. The calculation result is written to the corresponding entry of the physical 0 extension bit register 82 via the path 844 by the update determination circuit 843.

物理ベクトルレジスタ0番の各エントリと、論理ベクトルレジスタ0番の各エントリとの関連付けは、以下のように行われる。   The association between each entry in the physical vector register 0 and each entry in the logical vector register 0 is performed as follows.

1)物理ベクトルレジスタ0番のエントリ0(fe0)に対応するWP(2進数で“00”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1) The corresponding 1-bit value (from the physical 0 extended bit register 82 and the physical 1 extended bit register 83) by the WP (binary “00”) corresponding to the entry 0 (fe0) of the physical vector register 0 Here, “0” and “1”) are respectively read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令0は通常命令なので、マスク識別回路841は、マスク情報に基づいて1ビットの値“1”を演算回路842へ出力する。   2) The mask identification circuit 841 receives the contents and mask information of the mask register corresponding to the WP from the mask unit 6 via the path 60. Since the instruction 0 is a normal instruction, the mask identification circuit 841 outputs a 1-bit value “1” to the arithmetic circuit 842 based on the mask information.

3)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。よって、ライトセレクタ840は、パス830を選択し、物理1拡張ビットレジスタの値である“1”を演算回路842へ送信する。   3) The write selector 840 receives the write physical vector register number “0” via the path 70. Therefore, the write selector 840 selects the path 830 and transmits “1”, which is the value of the physical 1 extension bit register, to the arithmetic circuit 842.

4)演算回路842は、マスク識別回路841の出力値である“1”と、ライトセレクタ840から受信した値である“1”を、XOR演算する。結果は“0”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4) The arithmetic circuit 842 performs an XOR operation on “1” that is the output value of the mask identification circuit 841 and “1” that is the value received from the write selector 840. The result is “0”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“0”なので、更新判定回路843は、パス844に対して演算結果及び更新指示を送信する。   5) The update determination circuit 843 receives the write physical vector register number “0” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “0”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 844.

6)物理0拡張ビットレジスタ82は、WPと対応するエントリに、パス844を介して更新判定回路843から受信した演算結果を書込む。   6) The physical 0 extension bit register 82 writes the operation result received from the update determination circuit 843 via the path 844 in the entry corresponding to WP.

7)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“0”、WPは“00”であるので、ライト拡張ポインタは2進数の“000”となる。ライト拡張ポインタ“000”は、図2の対応表により、ベクトルレジスタ1のe0を指す。   7) The pointer combining unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP combining circuit 92. Since WEX is “0” and WP is “00”, the write extension pointer is binary “000”. The write extension pointer “000” indicates e0 of the vector register 1 according to the correspondence table of FIG.

以上のようにして、論理ベクトルレジスタ0番のエントリ0は、ベクトルレジスタ1のe0及び物理ベクトルレジスタ0番のfe0が関連付けられる。命令0の実行により、ライト拡張ポインタ“000”で指定されるベクトルレジスタ1のエントリe0にベクトルデータの要素が書込まれる。つまり、プログラムにより、論理ベクトルレジスタ0番のエントリ0に、ベクトルレジスタ1のe0に書込まれたベクトルデータの要素が書込まれるということである。また、物理的には、エントリe0に対応する物理ベクトルレジスタ0番のエントリfe0にベクトルデータの要素が書込まれる。   As described above, entry 0 of logical vector register 0 is associated with e0 of vector register 1 and fe0 of physical vector register 0. Execution of the instruction 0 writes the vector data element to the entry e0 of the vector register 1 designated by the write extension pointer “000”. That is, the element of the vector data written in e0 of the vector register 1 is written in the entry 0 of the logical vector register 0 by the program. Physically, an element of vector data is written in entry fe0 of physical vector register 0 corresponding to entry e0.

このとき、WDレジスタ2に、ベクトルレジスタ1に対する有効な書込みデータが存在する場合、WEレジスタ10は“1”となる。WE制御部11は、WEレジスタ10の値、パス60を介して受信したマスク情報からWEを“1”と判断し、WEとしてベクトルレジスタ1へ出力する。ベクトルレジスタ1は、ライト拡張ポインタが指定するエントリに、WDレジスタ2のデータを書込む。   At this time, when valid write data for the vector register 1 exists in the WD register 2, the WE register 10 becomes "1". The WE control unit 11 determines that WE is “1” from the value of the WE register 10 and the mask information received via the path 60, and outputs the result to the vector register 1 as WE. The vector register 1 writes the data of the WD register 2 to the entry specified by the write extension pointer.

なお、物理ベクトルレジスタ0番のエントリ1以降は、WPを+1(インクリメント)して、上記 1)から物理ベクトルレジスタ0番のエントリ数分繰り返す。WPが“00”〜“11”まで変化した際に物理ベクトルレジスタ0番と関連付けられるベクトルレジスタ1のエントリは、それぞれ、e0、e1、e2、e3となる。図7(c)において、fe0(e0)、fe1(e1)、fe2(e2)、fe3(e4)と表現する。また、論理ベクトルレジスタ0番の4つのエントリはそれぞれ、ベクトルレジスタ1のe0、e1、e2、e3と関連付けられる。   From entry 1 onward of physical vector register 0, WP is incremented by 1 (incremented), and the number of entries of physical vector register 0 is repeated from 1) above. When the WP changes from “00” to “11”, the entries of the vector register 1 associated with the physical vector register No. 0 are e0, e1, e2, and e3, respectively. In FIG. 7C, they are expressed as fe0 (e0), fe1 (e1), fe2 (e2), and fe3 (e4). The four entries of the logical vector register 0 are associated with e0, e1, e2, and e3 of the vector register 1, respectively.

このとき、物理ベクトルレジスタ0番からのデータの読み出しが要求された場合について説明する。   At this time, a case where reading of data from the physical vector register 0 is requested will be described.

1)物理ベクトルレジスタ0番のエントリ0(fe0)に対応するRP(2進数で“00”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス821、パス831を介してリードセレクタ85へ送信される。   1) From the physical 0 extension bit register 82 and the physical 1 extension bit register 83, the corresponding 1-bit value (indicated by “00” in binary) corresponding to the entry 0 (fe0) of the physical vector register 0 Here, “0” and “1”) are respectively read by the extension bit register control unit 86. The read values are transmitted to the read selector 85 via the path 821 and the path 831, respectively.

2)リードセレクタ85は、パス71を介してリード物理ベクトルレジスタ番号を受信する。リード物理ベクトルレジスタ番号が“0”であるので、パス821を選択し、物理0拡張ビットレジスタ82の値(ここでは、“0”)をREXとしてポインタ合成部9に送信する。   2) The read selector 85 receives the read physical vector register number via the path 71. Since the read physical vector register number is “0”, the path 821 is selected, and the value of the physical 0 extension bit register 82 (here “0”) is transmitted to the pointer synthesis unit 9 as REX.

3)ポインタ合成部9は、パス81を介して受信したREXと、パス50を介して受信したRPから、リード拡張ポインタを生成する。このとき、REXの値は“0”、RPの値は“00”なので、リード拡張ポインタは“000”となる。リード拡張ポインタ“000”は、ベクトルレジスタ1のエントリe0を指す。よって、論理ベクトルレジスタ0番エントリ0は、ベクトルレジスタ1のe0及び物理ベクトルレジスタ0番のfe0が関連付けられる。   3) The pointer synthesis unit 9 generates a read extension pointer from the REX received via the path 81 and the RP received via the path 50. At this time, since the value of REX is “0” and the value of RP is “00”, the read extension pointer is “000”. The read extension pointer “000” points to the entry e0 of the vector register 1. Therefore, the logical vector register 0 entry 0 is associated with e0 of the vector register 1 and fe0 of the physical vector register 0.

4)論理ベクトルレジスタ0番のエントリ0、即ちベクトルレジスタ1のe0(物理ベクトルレジスタ0番のfe0)からデータが読み出される。   4) Data is read from entry 0 of logical vector register 0, that is, e0 of vector register 1 (fe0 of physical vector register 0).

エントリ1以降はRPを+1して、1)からエントリ数分繰り返せばよい。   For entry 1 and later, RP is incremented by 1 and the number of entries is repeated from 1).

図7(c)に、命令0の実行後の状態を示す。   FIG. 7C shows a state after the instruction 0 is executed.

物理0拡張ビットレジスタ82は、全てのビットの値が“0”となり、物理1拡張ビットレジスタ83は、全てのビットの値が“1”となる。ベクトルレジスタ1のe0〜e3(即ち、論理ベクトルレジスタ0番のエントリ0〜3)はそれぞれA、B、C、Dが格納されている。このとき、物理ベクトルレジスタ0番の4つのエントリfe0〜fe3は、ベクトルレジスタ1のe0〜e3(即ち、論理ベクトルレジスタ0番のエントリ0〜3)のそれぞれが対応し、その内容は、A、B、C、Dとなる。   In the physical 0 extension bit register 82, the values of all bits are “0”, and in the physical 1 extension bit register 83, the values of all bits are “1”. A, B, C, and D are stored in e0 to e3 of the vector register 1 (that is, entries 0 to 3 of the logical vector register 0), respectively. At this time, the four entries fe0 to fe3 of the physical vector register 0 correspond to the e0 to e3 of the vector register 1 (that is, the entries 0 to 3 of the logical vector register 0), and their contents are A, B, C, D.

命令0の実行後、物理ベクトルレジスタ0番にはレジスタ・リネーミング後のレジスタ状態が保持され、物理ベクトルレジスタ1番にはレジスタ・リネーミング前のレジスタ状態が保持されている。よって、1つの論理ベクトルレジスタ番号に対する、2つの物理ベクトルレジスタによるレジスタ・リネーミングが正しく行われている事になる。   After execution of the instruction 0, the physical vector register 0 holds the register state after register renaming, and the physical vector register 1 holds the register state before register renaming. Therefore, register renaming by two physical vector registers is correctly performed for one logical vector register number.

次に、命令1が実行された場合について説明する。   Next, a case where instruction 1 is executed will be described.

命令1の論理ベクトルレジスタ0番は、レジスタ管理部7においてレジスタ・リネーミングにより、物理ベクトルレジスタ1番が指定されるものとする。命令1は通常命令なので、マスク識別回路841の出力は“1”となる。   It is assumed that the logical vector register 0 of the instruction 1 is designated as the physical vector register 1 by register renaming in the register management unit 7. Since the instruction 1 is a normal instruction, the output of the mask identification circuit 841 is “1”.

図7(d)に、ベクトルデータを書込む直前の状態を示す。通常命令なので、各エントリに対応するマスク識別回路841の出力は、全て“1”となる。ライト物理ベクトルレジスタ番号が“1”なので、ライトセレクタ840により、物理0拡張ビットレジスタ82の値が選択される。従って、演算回路842は、データを書込むエントリに対応する、マスク識別回路841の出力及び物理0拡張ビットレジスタ82の値をXOR演算する。演算結果は、更新判定回路843により、パス845を介して、物理1拡張ビットレジスタ83の対応するエントリに書込まれる。   FIG. 7D shows a state immediately before the vector data is written. Since it is a normal instruction, the outputs of the mask identification circuit 841 corresponding to each entry are all “1”. Since the write physical vector register number is “1”, the value of the physical 0 extension bit register 82 is selected by the write selector 840. Therefore, the arithmetic circuit 842 performs an XOR operation on the output of the mask identification circuit 841 and the value of the physical 0 extension bit register 82 corresponding to the entry to which data is written. The calculation result is written to the corresponding entry of the physical 1 extension bit register 83 via the path 845 by the update determination circuit 843.

物理ベクトルレジスタ1番の各エントリと、論理ベクトルレジスタ0番の各エントリとの関連付けは、以下のように行われる。   The association between each entry in the physical vector register 1 and each entry in the logical vector register 0 is performed as follows.

1)物理ベクトルレジスタ1番のエントリ0(fe0)に対応するWP(2進数で“00”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1) The corresponding 1-bit value (from the physical 0 extended bit register 82 and the physical 1 extended bit register 83) by the WP (in binary “00”) corresponding to the entry 0 (fe0) of the physical vector register 1 Here, “0” and “1”) are respectively read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令1は通常命令なので、マスク識別回路841は、マスク情報に基づいて1ビットの値“1”を演算回路842へ出力する。   2) The mask identification circuit 841 receives the contents and mask information of the mask register corresponding to the WP from the mask unit 6 via the path 60. Since the instruction 1 is a normal instruction, the mask identification circuit 841 outputs a 1-bit value “1” to the arithmetic circuit 842 based on the mask information.

3)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。よって、ライトセレクタ840は、パス820を選択し、物理0拡張ビットレジスタの値である“0”を演算回路842へ送信する。   3) The write selector 840 receives the write physical vector register number “1” via the path 70. Therefore, the write selector 840 selects the path 820 and transmits “0”, which is the value of the physical 0 extension bit register, to the arithmetic circuit 842.

4)演算回路842は、マスク識別回路841の出力値である“1”と、ライトセレクタ840から受信した値である“0”を、XOR演算する。結果は“1”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4) The arithmetic circuit 842 performs an XOR operation on “1” that is the output value of the mask identification circuit 841 and “0” that is the value received from the write selector 840. The result is “1”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“1”なので、更新判定回路843は、パス845に対して演算結果及び更新指示を送信する。   5) The update determination circuit 843 receives the write physical vector register number “1” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “1”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 845.

6)物理1拡張ビットレジスタ83は、WPと対応するエントリに、パス845を介して更新判定回路843から受信した演算結果を書込む。   6) The physical 1 extension bit register 83 writes the operation result received from the update determination circuit 843 via the path 845 in the entry corresponding to WP.

7)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“1”、WPは“00”であるので、ライト拡張ポインタは2進数の“100”となる。ライト拡張ポインタ“100”は、図2の対応表により、ベクトルレジスタ1のe4を指す。   7) The pointer combining unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP combining circuit 92. Since WEX is “1” and WP is “00”, the write extension pointer is binary “100”. The write extension pointer “100” points to e4 of the vector register 1 according to the correspondence table of FIG.

以上のようにして、論理ベクトルレジスタ0番エントリ0と、ベクトルレジスタ1のe4及び物理ベクトルレジスタ1番のfe0が関連付けられる。命令1により、ライト拡張ポインタ“100”で指定されるベクトルレジスタ1のエントリe4にベクトルデータの要素が書込まれる。つまり、プログラムにより、論理ベクトルレジスタ0番のエントリ0に、ベクトルレジスタ1のe4に書込まれたベクトルデータの要素が書込まれるということである。また、物理的には、エントリe4に対応する物理ベクトルレジスタ0番のエントリfe0にベクトルデータの要素が書込まれる。   As described above, the logical vector register 0 entry 0 is associated with e4 of the vector register 1 and fe0 of the physical vector register 1. By the instruction 1, the element of the vector data is written to the entry e4 of the vector register 1 designated by the write extension pointer “100”. That is, the element of the vector data written in e4 of the vector register 1 is written in the entry 0 of the logical vector register 0 by the program. Physically, vector data elements are written in entry fe0 of physical vector register 0 corresponding to entry e4.

このとき、WDレジスタ2に、ベクトルレジスタ1に対する有効な書込みデータが存在する場合、WEレジスタ10は“1”となる。WE制御部11は、WEレジスタ10の値、パス60を介して受信したマスク情報からWEを“1”と判断し、WEとしてベクトルレジスタ1へ出力する。ベクトルレジスタ1は、ライト拡張ポインタが指定するエントリに、WDレジスタ2のデータを書込む。   At this time, when valid write data for the vector register 1 exists in the WD register 2, the WE register 10 becomes "1". The WE control unit 11 determines that WE is “1” from the value of the WE register 10 and the mask information received via the path 60, and outputs the result to the vector register 1 as WE. The vector register 1 writes the data of the WD register 2 to the entry specified by the write extension pointer.

なお、物理ベクトルレジスタ1番のエントリ1以降は、WPを+1(インクリメント)して、上記 1)から物理ベクトルレジスタ1番のエントリ数分繰り返す。WPが“00”〜“11”まで変化した際に物理ベクトルレジスタ1番と関連付けられるベクトルレジスタ1のエントリは、それぞれ、e4、e5、e6、e7となる。図7(e)において、fe0(e4)、fe1(e5)、fe2(e6)、fe3(e7)と表現する。また、論理ベクトルレジスタ0番の4つのエントリはそれぞれ、ベクトルレジスタ1のe4、e5、e6、e7と関連付けられる。   From entry 1 onward for physical vector register 1, WP is incremented by +1 (increment), and the number of entries in physical vector register 1 is repeated from 1) above. When the WP changes from “00” to “11”, the entries of the vector register 1 associated with the physical vector register 1 are e4, e5, e6, and e7, respectively. In FIG. 7 (e), they are expressed as fe0 (e4), fe1 (e5), fe2 (e6), and fe3 (e7). The four entries of the logical vector register 0 are associated with e4, e5, e6, and e7 of the vector register 1, respectively.

このとき、物理ベクトルレジスタ1番からのデータの読み出しが要求された場合について説明する。   At this time, a case where reading of data from the physical vector register 1 is requested will be described.

1)物理ベクトルレジスタ1番のエントリ0(fe0)に対応するRP(2進数で“00”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス821、パス831を介してリードセレクタ85へ送信される。   1) From the physical 0 extension bit register 82 and the physical 1 extension bit register 83, the corresponding 1-bit value ((00) in binary) corresponding to the entry 0 (fe0) of the physical vector register 1 Here, “0” and “1”) are respectively read by the extension bit register control unit 86. The read values are transmitted to the read selector 85 via the path 821 and the path 831, respectively.

2)リードセレクタ85は、パス71を介してリード物理ベクトルレジスタ番号を受信する。リード物理ベクトルレジスタ番号が“1”であるので、パス831を選択し、物理1拡張ビットレジスタ83の値(ここでは、“1”)をREXとしてポインタ合成部9に送信する。   2) The read selector 85 receives the read physical vector register number via the path 71. Since the read physical vector register number is “1”, the path 831 is selected, and the value of the physical 1 extension bit register 83 (here, “1”) is transmitted to the pointer synthesis unit 9 as REX.

3)ポインタ合成部9は、パス81を介して受信したREXと、パス50を介して受信したRPから、リード拡張ポインタを生成する。このとき、REXの値は“1”、RPの値は“00”なので、リード拡張ポインタは“000”となる。リード拡張ポインタ“100”は、ベクトルレジスタ1のエントリe4を指す。よって、論理ベクトルレジスタ0番のエントリ0は、ベクトルレジスタ1のe4及び物理ベクトルレジスタ1番のfe0が関連付けられる。   3) The pointer synthesis unit 9 generates a read extension pointer from the REX received via the path 81 and the RP received via the path 50. At this time, since the value of REX is “1” and the value of RP is “00”, the read extension pointer is “000”. The read extension pointer “100” points to the entry e4 of the vector register 1. Therefore, entry 0 of logical vector register 0 is associated with e4 of vector register 1 and fe0 of physical vector register 1.

4)論理ベクトルレジスタのエントリ0、即ちベクトルレジスタ1のe4(物理ベクトルレジスタ1番のfe0)からデータが読み出される。   4) Data is read from entry 0 of the logical vector register, that is, e4 of vector register 1 (fe0 of physical vector register 1).

エントリ1以降はRPを+1して、1)からエントリ数分繰り返せばよい。   For entry 1 and later, RP is incremented by 1 and the number of entries is repeated from 1).

図7(e)に、命令1の実行後の状態を示す。   FIG. 7E shows a state after the execution of the instruction 1.

物理0拡張ビットレジスタ82は、全てのビットの値が“0”となり、物理1拡張ビットレジスタ83は、全てのビットの値が“1”となる。ベクトルレジスタ1のe4〜e7(即ち、論理ベクトルレジスタ0番のエントリ0〜3)はそれぞれE、F、G、Hが格納されている。このとき、物理ベクトルレジスタ1番の4つのエントリfe0〜fe3は、ベクトルレジスタ1のe4〜e7(即ち、論理ベクトルレジスタ0番のエントリ0〜3)のそれぞれが対応し、その内容は、E、F、G、Hとなる。   In the physical 0 extension bit register 82, the values of all bits are “0”, and in the physical 1 extension bit register 83, the values of all bits are “1”. E4 to e7 of the vector register 1 (that is, entries 0 to 3 of the logical vector register 0) store E, F, G, and H, respectively. At this time, the four entries fe0 to fe3 of the physical vector register 1 correspond to the e4 to e7 of the vector register 1 (that is, the entries 0 to 3 of the logical vector register 0), and their contents are E, F, G, H.

命令1の実行後、物理ベクトルレジスタ0番にはレジスタ・リネーミング前のレジスタ状態が保持され、物理ベクトルレジスタ1番にはレジスタ・リネーミング後のレジスタ状態が保持されている。よって、1つの論理ベクトルレジスタ番号に対する、2つの物理ベクトルレジスタによるレジスタ・リネーミングが正しく行われている事になる。   After execution of the instruction 1, the physical vector register 0 holds the register state before register renaming, and the physical vector register 1 holds the register state after register renaming. Therefore, register renaming by two physical vector registers is correctly performed for one logical vector register number.

次に、命令2が実行された場合について説明する。   Next, a case where instruction 2 is executed will be described.

命令2の論理ベクトルレジスタ0番は、レジスタ管理部7においてレジスタ・リネーミングにより、物理ベクトルレジスタ0番が指定されるものとする。命令2は通常命令なので、マスク識別回路841の出力は“1”となる。   It is assumed that the logical vector register 0 of the instruction 2 is designated as the physical vector register 0 by register renaming in the register management unit 7. Since the instruction 2 is a normal instruction, the output of the mask identification circuit 841 is “1”.

図7(f)に、ベクトルデータを書込む直前の状態を示す。   FIG. 7F shows a state immediately before the vector data is written.

物理ベクトルレジスタ0番の各エントリと、論理ベクトルレジスタ0番の各エントリとの関連付けは、命令0と同様である。   The association between each entry of the physical vector register 0 and each entry of the logical vector register 0 is the same as that of the instruction 0.

このとき、物理ベクトルレジスタ0番の読出しがあった場合の動作は、命令0により物理ベクトルレジスタ0番から読出しがあった場合と同様である。   At this time, the operation when the physical vector register No. 0 is read is the same as when the instruction 0 reads the physical vector register No. 0.

図7(g)に、命令2の実行後の状態を示す。   FIG. 7G shows a state after the execution of the instruction 2.

物理0拡張ビットレジスタ82は、全てのビットの値が“0”となり、物理1拡張ビットレジスタ83は、全てのビットの値が“1”となる。ベクトルレジスタ1のe0〜e7はそれぞれI、J、K、L、E、F、G、Hが格納されている。このとき、物理ベクトルレジスタ0番の4つのエントリfe0〜fe3は、ベクトルレジスタ1のe0〜e3(即ち、論理ベクトルレジスタ0番のエントリ0〜3)のそれぞれが対応し、その内容は、I、J、K、Lとなる。   In the physical 0 extension bit register 82, the values of all bits are “0”, and in the physical 1 extension bit register 83, the values of all bits are “1”. E0 to e7 of the vector register 1 store I, J, K, L, E, F, G, and H, respectively. At this time, the four entries fe0 to fe3 of the physical vector register No. 0 correspond to the e0 to e3 of the vector register 1 (that is, the entries 0 to 3 of the logical vector register No. 0). J, K, L.

命令2の実行後、物理ベクトルレジスタ0番にはレジスタ・リネーミング後のレジスタ状態が保持され、物理ベクトルレジスタ1番にはレジスタ・リネーミング前のレジスタ状態が保持されている。よって、1つの論理ベクトルレジスタ番号に対する、2つの物理ベクトルレジスタによるレジスタ・リネーミングが正しく行われていることになる。   After execution of the instruction 2, the physical vector register No. 0 holds the register state after register renaming, and the physical vector register No. 1 holds the register state before register renaming. Therefore, register renaming by two physical vector registers is correctly performed for one logical vector register number.

次に、マスク付き演算を行う命令を実行する場合について、図8を用いて説明する。   Next, the case of executing an instruction for performing an operation with a mask will be described with reference to FIG.

図8(a)〜(e)に、論理ベクトルレジスタ0番に書込む命令0と、論理ベクトルレジスタ0番に書込むマスク付き命令が2命令(以下、それぞれ、命令M1、命令M2)の3命令を実行した場合について説明する。   FIGS. 8A to 8E show that instruction 0 to be written to logical vector register 0 and masked instructions to be written to logical vector register 0 are 2 instructions (hereinafter referred to as instruction M1 and instruction M2, respectively). A case where an instruction is executed will be described.

初期状態から命令0を実行した場合については、図7で説明した命令0と同様となる。図8(a)は、命令0の実行後の各レジスタの状態を示し、図7(c)と同様である。   The case where the instruction 0 is executed from the initial state is the same as the instruction 0 described in FIG. FIG. 8A shows the state of each register after execution of the instruction 0, which is the same as FIG. 7C.

次に、マスク付き演算を行う命令M1が実行された場合について説明する。   Next, the case where the instruction M1 for performing the masked operation is executed will be described.

命令M1の論理ベクトルレジスタ0番は、レジスタ管理部7においてレジスタ・リネーミングにより、物理ベクトルレジスタ1番が指定されているものとする。命令M1のマスクレジスタの値は、論理ベクトルレジスタ0番、物理ベクトルレジスタ1番のそれぞれのエントリに対応して、1001(2進数)となっている。   As for the logical vector register 0 of the instruction M1, it is assumed that the physical vector register 1 is designated by register renaming in the register management unit 7. The value of the mask register of the instruction M1 is 1001 (binary number) corresponding to the entries of the logical vector register 0 and the physical vector register 1 respectively.

図8(b)は、ベクトルデータを書込む直前の状態を示す。   FIG. 8B shows a state immediately before the vector data is written.

物理ベクトルレジスタ1番のエントリ0(fe0)に相当する論理ベクトルレジスタ0番のエントリ0は以下のようにして決定される。   The entry 0 of the logical vector register 0 corresponding to the entry 0 (fe0) of the physical vector register 1 is determined as follows.

1−0)物理ベクトルレジスタ1番のエントリ0(fe0)に対応するWP(2進数で“00”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1-0) From the physical 0 extended bit register 82 and the physical 1 extended bit register 83, the corresponding 1 bit of WP (binary number “00”) corresponding to the entry 0 (fe0) of the physical vector register 1 Values (here, “0” and “1”, respectively) are read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2−0)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M1はマスク付き命令なので、マスク識別回路841は、マスク情報に基づいて対応するマスクレジスタの1ビットの値“1”を演算回路842へ出力する。   2-0) The mask identification circuit 841 receives the contents of the mask register and the mask information corresponding to the WP from the mask unit 6 via the path 60. Since the instruction M1 is an instruction with a mask, the mask identification circuit 841 outputs the 1-bit value “1” of the corresponding mask register to the arithmetic circuit 842 based on the mask information.

3−0)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。よって、ライトセレクタ840は、パス820を選択し、物理0拡張ビットレジスタの値である“0”を演算回路842へ送信する。   3-0) The write selector 840 receives the write physical vector register number “1” via the path 70. Therefore, the write selector 840 selects the path 820 and transmits “0” that is the value of the physical 0 extension bit register to the arithmetic circuit 842.

4−0)演算回路842は、マスク識別回路841の出力値である“1”と、ライトセレクタ840から受信した値である“0”を、XOR演算する。結果は“1”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-0) The arithmetic circuit 842 performs an XOR operation on “1” that is the output value of the mask identification circuit 841 and “0” that is the value received from the write selector 840. The result is “1”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−0)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“1”なので、更新判定回路843は、パス845に対して演算結果及び更新指示を送信する。   5-0) The update determination circuit 843 receives the write physical vector register number “1” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “1”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 845.

6−0)物理1拡張ビットレジスタ83は、WPと対応する自己のエントリに、パス845を介して更新判定回路843から受信した演算結果を書込む。   6-0) The physical 1 extension bit register 83 writes the operation result received from the update determination circuit 843 via the path 845 in its own entry corresponding to WP.

7−0)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“1”、WPは“00”であるので、ライト拡張ポインタは2進数の“100”となる。ライト拡張ポインタ“100”は、図2の対応表により、ベクトルレジスタ1のe4を指す。よって、論理ベクトルレジスタ0番のエントリ0は、ベクトルレジスタ1のe4及び物理ベクトルレジスタ1番のfe0と関連付けられる。   7-0) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “1” and WP is “00”, the write extension pointer is binary “100”. The write extension pointer “100” points to e4 of the vector register 1 according to the correspondence table of FIG. Therefore, entry 0 of logical vector register 0 is associated with e4 of vector register 1 and fe0 of physical vector register 1.

物理ベクトルレジスタ1番のエントリ1に相当する論理ベクトルレジスタ0番のエントリ1は、以下のように決定される。   The entry 1 of the logical vector register 0 corresponding to the entry 1 of the physical vector register 1 is determined as follows.

1−1)物理ベクトルレジスタ1番のエントリ1(fe1)に対応するWP(2進数で“01”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1-1) From the physical 0 extended bit register 82 and the physical 1 extended bit register 83, the corresponding 1 bit of WP corresponding to the entry 1 (fe1) of the physical vector register 1 is output from the physical 0 extended bit register 82 and the physical 1 extended bit register 83. Values (here, “0” and “1”, respectively) are read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2−1)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M1はマスク付き命令なので、マスク識別回路841は、マスク情報に基づいて対応するマスクレジスタの1ビットの値“0”を演算回路842へ出力する。   2-1) The mask identification circuit 841 receives the contents and mask information of the mask register corresponding to the WP from the mask unit 6 via the path 60. Since the instruction M1 is an instruction with a mask, the mask identification circuit 841 outputs the 1-bit value “0” of the corresponding mask register to the arithmetic circuit 842 based on the mask information.

3−1)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。よって、ライトセレクタ840は、パス820を選択し、物理0拡張ビットレジスタの値である“0”を演算回路842へ送信する。   3-1) The write selector 840 receives the write physical vector register number “1” via the path 70. Therefore, the write selector 840 selects the path 820 and transmits “0”, which is the value of the physical 0 extension bit register, to the arithmetic circuit 842.

4−1)演算回路842は、マスク識別回路841の出力値である“0”と、ライトセレクタ840から受信した値である“0”を、XOR演算する。結果は“0”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-1) The arithmetic circuit 842 performs an XOR operation on “0” that is the output value of the mask identification circuit 841 and “0” that is the value received from the write selector 840. The result is “0”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−1)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“1”なので、更新判定回路843は、パス845に対して演算結果及び更新指示を送信する。   5-1) The update determination circuit 843 receives the write physical vector register number “1” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “1”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 845.

6−1)物理1拡張ビットレジスタ83は、WPと対応する自己のエントリに、パス845を介して更新判定回路843から受信した演算結果を書込む。   6-1) The physical 1 extension bit register 83 writes the operation result received from the update determination circuit 843 via the path 845 in its own entry corresponding to WP.

7−1)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“0”、WPは“01”であるので、ライト拡張ポインタは2進数の“001”となる。ライト拡張ポインタ“001”は、図2の対応表により、ベクトルレジスタ1のe1を指す。よって、論理ベクトルレジスタ0番のエントリ1は、ベクトルレジスタ1のe1及び物理ベクトルレジスタ1番のfe1と関連付けられる。但し、マスクビットが“0”であるので、ベクトルレジスタ1のエントリe1(即ち、論理ベクトルレジスタ0番のエントリ1)に対する書込みは実行されない。   7-1) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “0” and WP is “01”, the write extension pointer is binary “001”. The write extension pointer “001” points to e1 of the vector register 1 according to the correspondence table of FIG. Therefore, entry 1 of logical vector register 0 is associated with e1 of vector register 1 and fe1 of physical vector register 1. However, since the mask bit is “0”, writing to the entry e1 of the vector register 1 (that is, the entry 1 of the logical vector register 0) is not executed.

物理ベクトルレジスタ1番のエントリ2に相当する論理ベクトルレジスタ0番のエントリ2は、以下のように決定される。   The entry 2 of the logical vector register 0 corresponding to the entry 2 of the physical vector register 1 is determined as follows.

1−2)物理ベクトルレジスタ1番のエントリ2(fe2)に対応するWP(2進数で“10”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1-2) From the physical 0 extended bit register 82 and the physical 1 extended bit register 83, the corresponding 1 bit of WP corresponding to the entry 2 (fe2) of the physical vector register 1 is output from the physical 0 extended bit register 82 and the physical 1 extended bit register 83. Values (here, “0” and “1”, respectively) are read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2−2)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M1はマスク付き命令なので、マスク識別回路841は、マスク情報に基づいて対応するマスクレジスタの1ビットの値“0”を演算回路842へ出力する。   2-2) The mask identification circuit 841 receives the contents of the mask register and the mask information corresponding to the WP from the mask unit 6 via the path 60. Since the instruction M1 is an instruction with a mask, the mask identification circuit 841 outputs the 1-bit value “0” of the corresponding mask register to the arithmetic circuit 842 based on the mask information.

3−2)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。よって、ライトセレクタ840は、パス820を選択し、物理0拡張ビットレジスタの値である“0”を演算回路842へ送信する。   3-2) The write selector 840 receives the write physical vector register number “1” via the path 70. Therefore, the write selector 840 selects the path 820 and transmits “0”, which is the value of the physical 0 extension bit register, to the arithmetic circuit 842.

4−2)演算回路842は、マスク識別回路841の出力値である“0”と、ライトセレクタ840から受信した値である“0”を、XOR演算する。結果は“0”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-2) The arithmetic circuit 842 performs an XOR operation between “0” that is the output value of the mask identification circuit 841 and “0” that is the value received from the write selector 840. The result is “0”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−2)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“1”なので、更新判定回路843は、パス845に対して演算結果及び更新指示を送信する。   5-2) The update determination circuit 843 receives the write physical vector register number “1” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “1”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 845.

6−2)物理1拡張ビットレジスタ83は、WPと対応する自己のエントリに、パス845を介して更新判定回路843から受信した演算結果を書込む。   6-2) The physical 1 extension bit register 83 writes the operation result received from the update determination circuit 843 via the path 845 in its own entry corresponding to the WP.

7−2)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“0”、WPは“10”であるので、ライト拡張ポインタは2進数の“010”となる。ライト拡張ポインタ“010”は、図2の対応表により、ベクトルレジスタ1のe2を指す。よって、論理ベクトルレジスタ0番のエントリ2は、ベクトルレジスタ1のe2及び物理ベクトルレジスタ1番のfe2と関連付けられる。但し、マスクビットが“0”であるので、ベクトルレジスタ1のエントリe2(即ち、論理ベクトルレジスタ0番のエントリ2)に対する書込みは実行されない。   7-2) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “0” and WP is “10”, the write extension pointer is binary “010”. The write extension pointer “010” points to e2 of the vector register 1 according to the correspondence table of FIG. Therefore, entry 2 of logical vector register 0 is associated with e2 of vector register 1 and fe2 of physical vector register 1. However, since the mask bit is “0”, writing to the entry e2 of the vector register 1 (that is, the entry 2 of the logical vector register 0) is not executed.

物理ベクトルレジスタ1番のエントリ3に相当する論理ベクトルレジスタ0番のエントリ3は、以下のように決定される。   The entry 3 of the logical vector register 0 corresponding to the entry 3 of the physical vector register 1 is determined as follows.

1−3)物理ベクトルレジスタ1番のエントリ3(fe3)に対応するWP(2進数で“11”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1-3) From the physical 0 extension bit register 82 and the physical 1 extension bit register 83, the corresponding 1 bit of WP corresponding to the entry 3 (fe3) of the physical vector register 1 is output from the physical 0 extension bit register 82 and the physical 1 extension bit register 83. Values (here, “0” and “1”, respectively) are read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2−3)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M1はマスク付き命令なので、マスク識別回路841は、マスク情報に基づいて対応するマスクレジスタの1ビットの値“1”を演算回路842へ出力する。   2-3) The mask identification circuit 841 receives the contents and mask information of the mask register corresponding to WP from the mask unit 6 via the path 60. Since the instruction M1 is an instruction with a mask, the mask identification circuit 841 outputs the 1-bit value “1” of the corresponding mask register to the arithmetic circuit 842 based on the mask information.

3−3)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。よって、ライトセレクタ840は、パス820を選択し、物理0拡張ビットレジスタの値である“0”を演算回路842へ送信する。   3-3) The write selector 840 receives the write physical vector register number “1” via the path 70. Therefore, the write selector 840 selects the path 820 and transmits “0”, which is the value of the physical 0 extension bit register, to the arithmetic circuit 842.

4−3)演算回路842は、マスク識別回路841の出力値である“1”と、ライトセレクタ840から受信した値である“0”を、XOR演算する。結果は“1”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-3) The arithmetic circuit 842 performs an XOR operation between “1” that is the output value of the mask identification circuit 841 and “0” that is the value received from the write selector 840. The result is “1”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−3)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“1”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“1”なので、更新判定回路843は、パス845に対して演算結果及び更新指示を送信する。   5-3) The update determination circuit 843 receives the write physical vector register number “1” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “1”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 845.

6−3)物理1拡張ビットレジスタ83は、WPと対応する自己のエントリに、パス845を介して更新判定回路843から受信した演算結果を書込む。   6-3) The physical 1 extension bit register 83 writes the operation result received from the update determination circuit 843 via the path 845 in its own entry corresponding to the WP.

7−3)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“1”、WPは“11”であるので、ライト拡張ポインタは2進数の“111”となる。ライト拡張ポインタ“111”は、図2の対応表により、ベクトルレジスタ1のe7を指す。よって、論理ベクトルレジスタ0番のエントリ3は、ベクトルレジスタ1のe7及び物理ベクトルレジスタ1番のfe3と関連付けられる。   7-3) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “1” and WP is “11”, the write extension pointer is binary “111”. The write extension pointer “111” points to e7 of the vector register 1 according to the correspondence table of FIG. Therefore, entry 3 of logical vector register 0 is associated with e7 of vector register 1 and fe3 of physical vector register 1.

以上より、物理ベクトルレジスタ1番として書込まれるベクトルレジスタ1のエントリ(即ち、論理ベクトルレジスタ0番のエントリ)は、それぞれe4、書込み無し(e1)、書込み無し(e2)、e7となる。   From the above, the entry of the vector register 1 written as the physical vector register 1 (that is, the entry of the logical vector register 0) is e4, no write (e1), no write (e2), and e7, respectively.

図8(c)に、命令M1の実行後の状態を示す。   FIG. 8C shows a state after the execution of the instruction M1.

物理0拡張ビットレジスタ82の全ての値は“0”、物理1拡張ビットレジスタ83の値はそれぞれ1、0、0、1となる。ベクトルレジスタ1のe0〜e7は、それぞれA,B,C,D,E,−、−、H(ハイフン(−)は初期値)が格納されている。このとき、物理ベクトルレジスタ0番の4つのエントリは、ベクトルレジスタ1のe0〜e3が対応し、その内容はそれぞれA,B,C,Dとなる。物理ベクトルレジスタ1番の4つのエントリは、ベクトルレジスタ1のe4、e1、e2、e7がそれぞれ対応し、その内容はそれぞれE,B,C,Hとなる。   All the values of the physical 0 extension bit register 82 are “0”, and the values of the physical 1 extension bit register 83 are 1, 0, 0, 1 respectively. E0 to e7 of the vector register 1 store A, B, C, D, E,-,-, H (hyphen (-) is an initial value), respectively. At this time, the four entries of the physical vector register 0 correspond to e0 to e3 of the vector register 1, and the contents thereof are A, B, C, and D, respectively. The four entries of the physical vector register 1 correspond to e4, e1, e2, and e7 of the vector register 1, and their contents are E, B, C, and H, respectively.

命令M1の実行により、論理ベクトルレジスタ0番の4つのエントリの値は、A,B,C,Dという内容から、マスクレジスタの値が“1”となっているエントリのみが更新されて、E,B,C,Hとなる。   By executing the instruction M1, the values of the four entries of the logical vector register 0 are updated from the contents of A, B, C, and D, and only the entry whose mask register value is “1” is updated. , B, C, H.

命令M1の実行後、物理ベクトルレジスタ0番にはレジスタ・リネーミング前のレジスタ状態が保持され、物理ベクトルレジスタ1番にはレジスタ・リネーミング後のレジスタ状態が保持されている。よって、1つの論理ベクトルレジスタ番号に対する、2つの物理ベクトルレジスタによるレジスタ・リネーミングが正しく行われていることになる。   After execution of the instruction M1, the physical vector register 0 holds the register state before register renaming, and the physical vector register 1 holds the register state after register renaming. Therefore, register renaming by two physical vector registers is correctly performed for one logical vector register number.

ここで、図8(c')に、従来技術により、命令M1の実行時にレジスタ・リネーミングを実行した後の状態を示す。物理ベクトルレジスタ1番の4つのエントリは、ベクトルレジスタ1のe4〜e7がそれぞれ対応し、その内容は、E,−、−、Hとなっている。つまり、物理ベクトルレジスタ番号である“1”と、WPのそれぞれを合成しているため、上記のような関連付けがなされる。結果として、論理ベクトルレジスタ1番の4つのエントリの値は、レジスタ・リネーミング実行前のA,B,C,Dという内容から、マスクレジスタの値が“1”となっているエントリのみが更新されて、E,B,C,Hになるという期待値と一致していない。従って、結果はデータ化けとなってしまう。   Here, FIG. 8C ′ shows a state after register renaming is executed when the instruction M1 is executed according to the conventional technique. The four entries of the physical vector register 1 correspond to e4 to e7 of the vector register 1, and their contents are E,-,-, and H, respectively. That is, since the physical vector register number “1” and each of the WP are combined, the above association is made. As a result, the values of the four entries in the logical vector register 1 are updated only for the entries whose mask register value is “1” based on the contents of A, B, C, and D before register renaming. Thus, the expected values of E, B, C, and H are not met. Therefore, the result is garbled data.

次に、命令M2が実行された場合について説明する。   Next, a case where the instruction M2 is executed will be described.

命令M2の論理ベクトルレジスタ0番は、レジスタ管理部7においてレジスタ・リネーミングにより、物理ベクトルレジスタ0番が指定されているものとする。命令M2のマスクレジスタの値は、論理ベクトルレジスタ0番又は物理ベクトルレジスタ1番のそれぞれのエントリに対応して、1100(2進数)となっている。   As for the logical vector register 0 of the instruction M2, the physical vector register 0 is designated by the register renaming in the register management unit 7. The value of the mask register of the instruction M2 is 1100 (binary number) corresponding to each entry of the logical vector register 0 or the physical vector register 1.

図8(d)は、ベクトルデータを書込む直前の状態を示す。   FIG. 8D shows a state immediately before writing vector data.

物理ベクトルレジスタ0番のエントリ0(fe0)に相当する論理ベクトルレジスタ0番のエントリ0は以下のようにして決定される。   The entry 0 of the logical vector register 0 corresponding to the entry 0 (fe0) of the physical vector register 0 is determined as follows.

1−0)物理ベクトルレジスタ0番のエントリ0(fe0)に対応するWP(2進数で“00”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1-0) From the physical 0 extended bit register 82 and the physical 1 extended bit register 83, the corresponding 1 bit of WP (binary number “00”) corresponding to the entry 0 (fe0) of the physical vector register 0 Values (here, “0” and “1”, respectively) are read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2−0)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M2はマスク付き命令なので、マスク識別回路841は、マスク情報に基づいて対応するマスクレジスタの1ビットの値“1”を演算回路842へ出力する。   2-0) The mask identification circuit 841 receives the contents of the mask register and the mask information corresponding to the WP from the mask unit 6 via the path 60. Since the instruction M2 is a masked instruction, the mask identification circuit 841 outputs the 1-bit value “1” of the corresponding mask register to the arithmetic circuit 842 based on the mask information.

3−0)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。よって、ライトセレクタ840は、パス830を選択し、物理1拡張ビットレジスタ83の値である“1”を演算回路842へ送信する。   3-0) The write selector 840 receives the write physical vector register number “0” via the path 70. Therefore, the write selector 840 selects the path 830 and transmits “1” that is the value of the physical 1 extension bit register 83 to the arithmetic circuit 842.

4−0)演算回路842は、マスク識別回路841の出力値である“1”と、ライトセレクタ840から受信した値である“1”を、XOR演算する。結果は“0”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-0) The arithmetic circuit 842 performs an XOR operation on “1” that is the output value of the mask identification circuit 841 and “1” that is the value received from the write selector 840. The result is “0”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−0)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“0”なので、更新判定回路843は、パス844に対して演算結果及び更新指示を送信する。   5-0) The update determination circuit 843 receives the write physical vector register number “0” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “0”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 844.

6−0)物理0拡張ビットレジスタ82は、WPと対応する自己のエントリに、パス844を介して更新判定回路843から受信した演算結果を書込む。   6-0) The physical 0 extension bit register 82 writes the operation result received from the update determination circuit 843 via the path 844 in its own entry corresponding to WP.

7−0)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“0”、WPは“00”であるので、ライト拡張ポインタは2進数の“000”となる。ライト拡張ポインタ“000”は、図2の対応表により、ベクトルレジスタ1のe0を指す。よって、論理ベクトルレジスタ0番のエントリ0は、ベクトルレジスタ1のe0及び物理ベクトルレジスタ0番のfe0と関連付けられる。   7-0) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “0” and WP is “00”, the write extension pointer is binary “000”. The write extension pointer “000” indicates e0 of the vector register 1 according to the correspondence table of FIG. Therefore, entry 0 of logical vector register 0 is associated with e0 of vector register 1 and fe0 of physical vector register 0.

物理ベクトルレジスタ0番のエントリ1に相当する論理ベクトルレジスタ0番のエントリ1は、以下のように決定される。   The entry 1 of the logical vector register 0 corresponding to the entry 1 of the physical vector register 0 is determined as follows.

1−1)物理ベクトルレジスタ1番のエントリ1(fe1)に対応するWP(2進数で“01”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“0”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1-1) From the physical 0 extended bit register 82 and the physical 1 extended bit register 83, the corresponding 1 bit of WP corresponding to the entry 1 (fe1) of the physical vector register 1 is output from the physical 0 extended bit register 82 and the physical 1 extended bit register 83. Values (here, “0” and “0”, respectively) are read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2−1)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M2はマスク付き命令なので、マスク識別回路841は、マスク情報に基づいて対応するマスクレジスタの1ビットの値“1”を演算回路842へ出力する。   2-1) The mask identification circuit 841 receives the contents and mask information of the mask register corresponding to the WP from the mask unit 6 via the path 60. Since the instruction M2 is a masked instruction, the mask identification circuit 841 outputs the 1-bit value “1” of the corresponding mask register to the arithmetic circuit 842 based on the mask information.

3−1)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。よって、ライトセレクタ840は、パス830を選択し、物理1拡張ビットレジスタ83の値である“0”を演算回路842へ送信する。   3-1) The write selector 840 receives the write physical vector register number “0” via the path 70. Therefore, the write selector 840 selects the path 830 and transmits “0” that is the value of the physical 1 extension bit register 83 to the arithmetic circuit 842.

4−1)演算回路842は、マスク識別回路841の出力値である“1”と、ライトセレクタ840から受信した値である“0”を、XOR演算する。結果は“1”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-1) The arithmetic circuit 842 performs an XOR operation between “1” that is the output value of the mask identification circuit 841 and “0” that is the value received from the write selector 840. The result is “1”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−1)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“0”なので、更新判定回路843は、パス844に対して演算結果及び更新指示を送信する。   5-1) The update determination circuit 843 receives the write physical vector register number “0” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “0”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 844.

6−1)物理0拡張ビットレジスタ82は、WPと対応する自己のエントリに、パス844を介して更新判定回路843から受信した演算結果を書込む。   6-1) The physical 0 extension bit register 82 writes the operation result received from the update determination circuit 843 via the path 844 in its own entry corresponding to WP.

7−1)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“1”、WPは“01”であるので、ライト拡張ポインタは2進数の“101”となる。ライト拡張ポインタ“101”は、図2の対応表により、ベクトルレジスタ1のe5を指す。よって、論理ベクトルレジスタ0番のエントリ1は、ベクトルレジスタ1のe5及び物理ベクトルレジスタ0番のfe1と関連付けられる。   7-1) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “1” and WP is “01”, the write extension pointer is binary “101”. The write extension pointer “101” points to e5 of the vector register 1 according to the correspondence table of FIG. Therefore, entry 1 of logical vector register 0 is associated with e5 of vector register 1 and fe1 of physical vector register 0.

物理ベクトルレジスタ0番のエントリ2に相当する論理ベクトルレジスタ0番のエントリ2は、以下のように決定される。   The entry 2 of the logical vector register 0 corresponding to the entry 2 of the physical vector register 0 is determined as follows.

1−2)物理ベクトルレジスタ0番のエントリ2(fe2)に対応するWP(2進数で“10”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“0”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1-2) From the physical 0 extended bit register 82 and the physical 1 extended bit register 83, the corresponding 1 bit of the physical vector register 0 corresponding to entry 2 (fe2) of the physical vector register 0 is obtained. Values (here, “0” and “0”, respectively) are read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2−2)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M2はマスク付き命令なので、マスク識別回路841は、マスク情報に基づいて対応するマスクレジスタの1ビットの値“0”を演算回路842へ出力する。   2-2) The mask identification circuit 841 receives the contents of the mask register and the mask information corresponding to the WP from the mask unit 6 via the path 60. Since the instruction M2 is an instruction with a mask, the mask identification circuit 841 outputs the 1-bit value “0” of the corresponding mask register to the arithmetic circuit 842 based on the mask information.

3−2)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。よって、ライトセレクタ840は、パス830を選択し、物理1拡張ビットレジスタ83の値である“0”を演算回路842へ送信する。   3-2) The write selector 840 receives the write physical vector register number “0” via the path 70. Therefore, the write selector 840 selects the path 830 and transmits “0” that is the value of the physical 1 extension bit register 83 to the arithmetic circuit 842.

4−2)演算回路842は、マスク識別回路841の出力値である“0”と、ライトセレクタ840から受信した値である“0”を、XOR演算する。結果は“0”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-2) The arithmetic circuit 842 performs an XOR operation between “0” that is the output value of the mask identification circuit 841 and “0” that is the value received from the write selector 840. The result is “0”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−2)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“0”なので、更新判定回路843は、パス844に対して演算結果及び更新指示を送信する。   5-2) The update determination circuit 843 receives the write physical vector register number “0” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “0”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 844.

6−2)物理0拡張ビットレジスタ82は、WPと対応する自己のエントリに、パス844を介して更新判定回路843から受信した演算結果を書込む。   6-2) The physical 0 extension bit register 82 writes the operation result received from the update determination circuit 843 via the path 844 in its own entry corresponding to WP.

7−2)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“0”、WPは“10”であるので、ライト拡張ポインタは2進数の“010”となる。ライト拡張ポインタ“010”は、図2の対応表により、ベクトルレジスタ1のe2を指す。よって、論理ベクトルレジスタ0番のエントリ2は、ベクトルレジスタ1のe2及び物理ベクトルレジスタ0番のfe2と関連付けられる。但し、マスクビットが“0”であるので、ベクトルレジスタ1のエントリe2(即ち、論理ベクトルレジスタ0番のエントリ2)に対する書込みは実行されない。   7-2) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “0” and WP is “10”, the write extension pointer is binary “010”. The write extension pointer “010” points to e2 of the vector register 1 according to the correspondence table of FIG. Therefore, entry 2 of logical vector register 0 is associated with e2 of vector register 1 and fe2 of physical vector register 0. However, since the mask bit is “0”, writing to the entry e2 of the vector register 1 (that is, the entry 2 of the logical vector register 0) is not executed.

物理ベクトルレジスタ0番のエントリ3に相当する論理ベクトルレジスタ0番のエントリ3は、以下のように決定される。   The entry 3 of the logical vector register 0 corresponding to the entry 3 of the physical vector register 0 is determined as follows.

1−3)物理ベクトルレジスタ0番のエントリ3(fe3)に対応するWP(2進数で“11”)により、物理0拡張ビットレジスタ82と、物理1拡張ビットレジスタ83から、対応する1ビットの値(ここでは、それぞれ“0”、“1”)が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820、パス830を介して更新部84へ送信される。   1-3) From the physical 0 extended bit register 82 and the physical 1 extended bit register 83, the corresponding 1 bit of WP corresponding to the entry 3 (fe3) of the physical vector register 0 is output from the physical 0 extended bit register 82 and the physical 1 extended bit register 83. Values (here, “0” and “1”, respectively) are read by the extension bit register control unit 86. The read values are transmitted to the update unit 84 via the path 820 and the path 830, respectively.

2−3)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M2はマスク付き命令なので、マスク識別回路841は、マスク情報に基づいて対応するマスクレジスタの1ビットの値“0”を演算回路842へ出力する。   2-3) The mask identification circuit 841 receives the contents and mask information of the mask register corresponding to WP from the mask unit 6 via the path 60. Since the instruction M2 is an instruction with a mask, the mask identification circuit 841 outputs the 1-bit value “0” of the corresponding mask register to the arithmetic circuit 842 based on the mask information.

3−3)ライトセレクタ840は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。よって、ライトセレクタ840は、パス830を選択し、物理1拡張ビットレジスタ83の値である“1”を演算回路842へ送信する。   3-3) The write selector 840 receives the write physical vector register number “0” via the path 70. Therefore, the write selector 840 selects the path 830 and transmits “1” that is the value of the physical 1 extension bit register 83 to the arithmetic circuit 842.

4−3)演算回路842は、マスク識別回路841の出力値である“0”と、ライトセレクタ840から受信した値である“1”を、XOR演算する。結果は“1”となり、演算回路842は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-3) The arithmetic circuit 842 performs an XOR operation on “0” that is the output value of the mask identification circuit 841 and “1” that is the value received from the write selector 840. The result is “1”, and the arithmetic circuit 842 transmits the arithmetic result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−3)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“0”なので、更新判定回路843は、パス844に対して演算結果及び更新指示を送信する。   5-3) The update determination circuit 843 receives the write physical vector register number “0” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “0”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 844.

6−3)物理0拡張ビットレジスタ82は、WPと対応する自己のエントリに、パス844を介して更新判定回路843から受信した演算結果を書込む。   6-3) The physical 0 extension bit register 82 writes the operation result received from the update determination circuit 843 via the path 844 in its own entry corresponding to WP.

7−3)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“1”、WPは“11”であるので、ライト拡張ポインタは2進数の“111”となる。ライト拡張ポインタ“111”は、図2の対応表により、ベクトルレジスタ1のe7を指す。よって、論理ベクトルレジスタ0番のエントリ3は、ベクトルレジスタ1のe7及び物理ベクトルレジスタ0番のfe3と関連付けられる。   7-3) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “1” and WP is “11”, the write extension pointer is binary “111”. The write extension pointer “111” points to e7 of the vector register 1 according to the correspondence table of FIG. Thus, entry 3 of logical vector register 0 is associated with e7 of vector register 1 and fe3 of physical vector register 0.

以上より、物理ベクトルレジスタ0番として書込まれるベクトルレジスタ1のエントリ(即ち、論理ベクトルレジスタ0番のエントリ)は、それぞれe0、e5、書込み無し(e2)、書込み無し(e7)となる。   As described above, the entry of the vector register 1 written as the physical vector register No. 0 (that is, the entry of the logical vector register No. 0) is e0, e5, no write (e2), and no write (e7), respectively.

図8(e)に、命令M2の実行後の状態を示す。   FIG. 8E shows a state after execution of the instruction M2.

物理0拡張ビットレジスタ82の値はそれぞれ0、1、0、1となり、物理1拡張ビットレジスタ83の値はそれぞれ1、0、0、1となる。ベクトルレジスタ1のe0〜e7は、それぞれI,B,C,D,E,J、−、H(ハイフン(−)は初期値)が格納されている。このとき、物理ベクトルレジスタ0番の4つのエントリは、ベクトルレジスタ1のe0、e5、e2、e7が対応し、その内容はそれぞれI,J,C,Hとなる。物理ベクトルレジスタ1番の4つのエントリは、ベクトルレジスタ1のe4、e1、e2、e7がそれぞれ対応し、その内容はそれぞれE,B,C,Hとなる。   The values of the physical 0 extension bit register 82 are 0, 1, 0, 1, respectively, and the values of the physical 1 extension bit register 83 are 1, 0, 0, 1, respectively. E0 to e7 of the vector register 1 store I, B, C, D, E, J,-, H (hyphen (-) is an initial value), respectively. At this time, the four entries of the physical vector register No. 0 correspond to e0, e5, e2, and e7 of the vector register 1, and their contents are I, J, C, and H, respectively. The four entries of the physical vector register 1 correspond to e4, e1, e2, and e7 of the vector register 1, and their contents are E, B, C, and H, respectively.

命令M2の実行により、論理ベクトルレジスタ0番の4つのエントリの値は、E,B,C,Hという内容から、マスクレジスタの値が“1”となっているエントリのみが更新されて、I,J,C,Hとなる。   By executing the instruction M2, the values of the four entries of the logical vector register 0 are updated from the contents of E, B, C, and H, only the entry whose mask register value is “1”. , J, C, H.

命令M2の実行後、物理ベクトルレジスタ0番にはレジスタ・リネーミング後のレジスタ状態が保持され、物理ベクトルレジスタ1番にはレジスタ・リネーミング前のレジスタ状態が保持されている。よって、1つの論理ベクトルレジスタ番号に対する、2つの物理ベクトルレジスタによるレジスタ・リネーミングが正しく行われていることになる。   After execution of the instruction M2, the physical vector register No. 0 holds the register state after register renaming, and the physical vector register No. 1 holds the register state before register renaming. Therefore, register renaming by two physical vector registers is correctly performed for one logical vector register number.

ここで、図8(e')に、従来技術により、図8(c')に示す状態から命令M2の実行した場合において、レジスタ・リネーミングを実行した後の状態を示す。物理ベクトルレジスタ0番の4つのエントリは、ベクトルレジスタ1のe0〜e3(即ち、論理ベクトルレジスタ0番のe0〜e3)がそれぞれ対応し、その内容は、I,J,C,Dとなっている。つまり、物理ベクトルレジスタ番号である“0”と、WPのそれぞれを合成しているため、上記のような関連付けがなされる。結果として、図8(e')に示す論理ベクトルレジスタ1番の4つのエントリの値は、図8(e)に示すI,J,C,Hという期待値と一致していない。従って、結果はデータ化けとなってしまう。   Here, FIG. 8 (e ′) shows a state after register renaming in the case where the instruction M2 is executed from the state shown in FIG. 8 (c ′) by the conventional technique. The four entries of physical vector register 0 correspond to e0 to e3 of vector register 1 (that is, e0 to e3 of logical vector register 0), and their contents are I, J, C, and D, respectively. Yes. That is, since the physical vector register number “0” and the WP are combined, the above association is made. As a result, the values of the four entries of the logical vector register 1 shown in FIG. 8 (e ′) do not match the expected values of I, J, C, and H shown in FIG. 8 (e). Therefore, the result is garbled data.

このように、論理ベクトルレジスタと物理ベクトルレジスタとの間で、エントリ毎に、レジスタ・リネーミングによる関連付けを実行できるので、マスク付き演算を実行してもレジスタ・リネーミングによるデータ化けを回避できるという格別の効果が得られる。   As described above, since association can be performed by register renaming for each entry between the logical vector register and the physical vector register, it is possible to avoid data corruption due to register renaming even if a masked operation is performed. A special effect is obtained.

次に、図9のフローチャートを参照し、本発明の第1の実施形態の動作について説明する。   Next, the operation of the first embodiment of the present invention will be described with reference to the flowchart of FIG.

レジスタ管理部7により、論理ベクトルレジスタと物理ベクトルレジスタの間で、レジスタ・リネーミングが実行される(S1)。   The register management unit 7 executes register renaming between the logical vector register and the physical vector register (S1).

拡張ビット部8により、WPレジスタ4からWPが受信される(S2)。このとき、レジスタ・リネーミング時にレジスタ管理部7により指定された物理ベクトルレジスタのエントリのうち、データの書き込み対象のエントリに対応するWPが、1つずつ受信される。   The extension bit unit 8 receives WP from the WP register 4 (S2). At this time, among the entries of the physical vector register designated by the register management unit 7 at the time of register renaming, the WP corresponding to the entry to which data is to be written is received one by one.

更新部84は、物理0拡張ビットレジスタ82及び物理1拡張ビットレジスタ83から、WPに対応する拡張ビットを受信する(S3)。   The update unit 84 receives the extension bits corresponding to the WP from the physical 0 extension bit register 82 and the physical 1 extension bit register 83 (S3).

ライトセレクタ840は、ライト物理ベクトルレジスタ番号に基づいて、拡張ビットを選択する(S4)。ここで、ライトセレクタ840は、ライト物理ベクトルレジスタ番号が“0”である場合には、物理1拡張ビットレジスタ83から読込まれた拡張ビットを選択する。ライト物理ベクトルレジスタ番号が“1”である場合には、物理0拡張ビットレジスタ82から読込まれた拡張ビットを選択する。   The write selector 840 selects an extension bit based on the write physical vector register number (S4). Here, the write selector 840 selects the extension bit read from the physical 1 extension bit register 83 when the write physical vector register number is “0”. When the write physical vector register number is “1”, the extension bit read from the physical 0 extension bit register 82 is selected.

マスク識別回路841は、マスク部6からレジスタ・リネーミング時にレジスタ管理部7により指定された物理ベクトルレジスタのエントリのうち、データの書き込み対象のエントリに対応するマスクビットを受信する(S4)。   The mask identification circuit 841 receives a mask bit corresponding to an entry to which data is to be written among the entries of the physical vector register designated by the register management unit 7 during register renaming from the mask unit 6 (S4).

演算回路842は、マスクビットの値とライトセレクタ840が選択した拡張ビットの値を用いて演算処理を実行する(S6)。演算回路842は、XOR演算を実行し、演算結果をWEXとしてポインタ合成部9へ送信する。   The arithmetic circuit 842 executes arithmetic processing using the mask bit value and the extension bit value selected by the write selector 840 (S6). The arithmetic circuit 842 performs an XOR operation and transmits the operation result to the pointer synthesis unit 9 as WEX.

ポインタ合成部9は、演算回路842による演算結果とWPレジスタ4から受信したWPを合成し、ライト拡張ポインタを生成する(S7)。   The pointer synthesizer 9 synthesizes the calculation result of the calculation circuit 842 and the WP received from the WP register 4 to generate a write extension pointer (S7).

ライト拡張ポインタに対応するベクトルレジスタ1のエントリと、WPに対応する物理ベクトルレジスタのエントリが関連付けされる(S8)。これにより、論理ベクトルレジスタのエントリと、ベクトルレジスタ1のエントリ及び物理ベクトルレジスタのエントリが、それぞれ関連付けられる。   The entry of the vector register 1 corresponding to the write extension pointer is associated with the entry of the physical vector register corresponding to WP (S8). Thereby, the entry of the logical vector register is associated with the entry of the vector register 1 and the entry of the physical vector register.

ライト拡張ポインタで指定されたエントリに、ベクトルデータの要素が書込まれる(S9)。   Vector data elements are written in the entry designated by the write extension pointer (S9).

ベクトルデータの読出し要求があった場合(S10でYes)、リードセレクタ85は、レジスタ・リネーミングにより指定された物理ベクトルレジスタに対応する拡張ビットレジスタから、RPに対応する拡張ビットを受信する(S11)。リードセレクタ85は、受信した拡張ビットをポインタ合成部9へ送信する。   When there is a vector data read request (Yes in S10), the read selector 85 receives the extension bit corresponding to RP from the extension bit register corresponding to the physical vector register designated by the register renaming (S11). ). The read selector 85 transmits the received extension bit to the pointer synthesis unit 9.

ポインタ合成部9は、受信した拡張ビットとRPを合成し、リード拡張ポインタを生成する(S12)。   The pointer synthesis unit 9 synthesizes the received extension bit and RP to generate a read extension pointer (S12).

ベクトルレジスタ1のエントリのうち、リード拡張ポインタにより指定されるエントリからベクトルデータの要素が読込まれる(S13)。   Among the entries in the vector register 1, the element of the vector data is read from the entry specified by the read extension pointer (S13).

(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described.

第1の実施形態では、主として、ベクトルレジスタ1のエントリ数が8、エントリ数が4の物理ベクトルレジスタが2個の場合により説明した。しかし、本発明はこれに限るものではない。図10に示す所定の条件下において、ベクトルレジスタのエントリ数、物理ベクトルレジスタのエントリ数及び物理ベクトルレジスタの数は、いくつであってもよい。   In the first embodiment, the case where the number of entries in the vector register 1 is 8 and the number of physical vector registers in which the number of entries is 4 is two has been mainly described. However, the present invention is not limited to this. Under the predetermined conditions shown in FIG. 10, the number of vector register entries, the number of physical vector register entries, and the number of physical vector registers may be any number.

図10を参照し、所定の条件について説明する。物理ベクトルレジスタのエントリ数を2のx乗で表される数とする。この場合、WP又はRPのビット数はxビットの値となる。WP又はRPは、物理ベクトルレジスタの各エントリと1対1に対応するからである。ベクトルレジスタ1のエントリ数を2のm乗で表される数とすると、ライト拡張ポインタ若しくはリード拡張ポインタは、mビットの値となる。ライト拡張ポインタ若しくはリード拡張ポインタは、WP若しくはRPとWEX若しくはREXとを合成した値である。よって、WEX若しくはREXは、(m−x)ビットの値となる。   The predetermined condition will be described with reference to FIG. Let the number of entries in the physical vector register be a number represented by 2 to the power of x. In this case, the number of bits of WP or RP is an x-bit value. This is because WP or RP has a one-to-one correspondence with each entry in the physical vector register. If the number of entries in the vector register 1 is a number expressed by 2 to the power of m, the write extension pointer or the read extension pointer has an m-bit value. The write extension pointer or read extension pointer is a value obtained by combining WP or RP and WEX or REX. Therefore, WEX or REX has a value of (mx) bits.

この条件下において、クトルレジスタのエントリ数、物理ベクトルレジスタのエントリ数及び物理ベクトルレジスタの数は、それぞれ任意に決定できる。   Under this condition, the number of entries in the Kuttle register, the number of entries in the physical vector register, and the number of physical vector registers can be determined arbitrarily.

次に、本発明の第2の実施形態の構成について、図11、図12、図13及び図14を用いて説明する。なお、図11、図12、図13及び図14において、第1の実施形態において説明した各構成と同一の番号を付してあるものは、第1の実施形態の各構成と同一である。   Next, the structure of the 2nd Embodiment of this invention is demonstrated using FIG.11, FIG.12, FIG.13 and FIG. In FIG. 11, FIG. 12, FIG. 13, and FIG. 14, the components having the same numbers as those described in the first embodiment are the same as those in the first embodiment.

図11を参照すると、本発明の第2の実施形態における情報処理装置130は、レジスタ管理部700、拡張ビット部800を有する。他の部分は、第1の実施形態と同様である。   Referring to FIG. 11, the information processing apparatus 130 according to the second exemplary embodiment of the present invention includes a register management unit 700 and an extension bit unit 800. Other parts are the same as those in the first embodiment.

レジスタ管理部700は、本発明の第1の実施形態のレジスタ管理部7が備える機能に加え、命令実行時のレジスタ・リネーミングにおける論理ベクトルレジスタと物理ベクトルレジスタとの対応関係をより詳細に管理する。対応関係とは、つまり、論理ベクトルレジスタと物理ベクトルレジスタの、エントリ毎の対応関係である。例えば、レジスタ管理部700は、物理ベクトルレジスタの数がnとすると、最大で過去n回分の命令実行後の論理ベクトルレジスタと物理ベクトルレジスタの対応関係を、命令の実行順序に従って管理できるように構成すればよい。なお、必ずしも過去n回分の対応関係を管理する必要はなく、ハードウェア資源等を考慮し、最適な設計をすればよい。レジスタ管理部700は、論理ベクトルレジスタに対応付けた物理ベクトルレジスタの物理ベクトルレジスタ番号により、対応関係を管理する。レジスタ管理部700は、リネーム情報と最新状態情報を、パス701を介して拡張ビット部800に送信する。レジスタ管理部700は、命令の実行毎に、最新状態情報とリネーム情報を送信する。最新状態情報及びリネーム情報は、レジスタ管理部700が管理する論理ベクトルレジスタと物理ベクトルレジスタの過去の対応関係に基づいて生成される情報である。最新状態情報及びリネーム情報は、物理ベクトルレジスタの番号で表される。リネーム情報とは、ある実行中の命令において、レジスタ・リネーミングにより論理ベクトルレジスタと関連付けられている物理ベクトルレジスタの番号である。レジスタ管理部700は、物理ベクトルレジスタの中からレジスタ・リネーミングの対象とする物理ベクトルレジスタを選択し、当該物理ベクトルレジスタの番号をリネーム情報として拡張ビット部800へ送信する。最新状態情報とは、ある命令を実行する際において、論理ベクトルレジスタの最新状態のデータを保持している物理ベクトルレジスタの番号である。論理ベクトルレジスタの内容は、命令の実行により逐次書き換えられていくが、最後に内容が書き換えられた状態が最新状態となる。レジスタ管理部700は、命令の実行順に従って管理している論理ベクトルレジスタと物理ベクトルレジスタとの対応関係を参照すれば、最新状態を保持している論理ベクトルレジスタと対応している物理ベクトルレジスタを特定できる。レジスタ管理部700は、物理ベクトルレジスタの中から論理ベクトルレジスタの最新状態のデータを保持している物理ベクトルレジスタを選択し、当該物理ベクトルレジスタの番号を最新状態情報として拡張ビット部800へ送信する。なお、レジスタ管理部700は、論理ベクトルレジスタの更新履歴に基づいて、自己が管理している過去の論理ベクトルレジスタと物理ベクトルレジスタの対応関係から、論理ベクトルレジスタの最新状態を保持している物理ベクトルレジスタを選択すればよい。   In addition to the functions of the register management unit 7 according to the first embodiment of the present invention, the register management unit 700 manages the correspondence between logical vector registers and physical vector registers in register renaming during instruction execution in more detail. To do. The correspondence relationship is a correspondence relationship between the logical vector register and the physical vector register for each entry. For example, when the number of physical vector registers is n, the register management unit 700 is configured to manage the correspondence between the logical vector registers and the physical vector registers after the instruction execution for the past n times at the maximum according to the instruction execution order. do it. Note that it is not always necessary to manage the correspondence relationship for the past n times, and an optimal design may be made in consideration of hardware resources and the like. The register management unit 700 manages the correspondence relationship based on the physical vector register number of the physical vector register associated with the logical vector register. The register management unit 700 transmits the rename information and the latest state information to the extension bit unit 800 via the path 701. The register management unit 700 transmits the latest state information and rename information every time an instruction is executed. The latest state information and rename information are information generated based on the past correspondence relationship between the logical vector register and the physical vector register managed by the register management unit 700. The latest state information and rename information are represented by physical vector register numbers. Rename information is the number of a physical vector register associated with a logical vector register by register renaming in an instruction being executed. The register management unit 700 selects a physical vector register as a register renaming target from the physical vector registers, and transmits the physical vector register number to the extension bit unit 800 as rename information. The latest state information is the number of a physical vector register that holds data of the latest state of the logical vector register when executing a certain instruction. The contents of the logical vector register are sequentially rewritten by executing the instruction, but the state in which the contents are rewritten last becomes the latest state. If the register management unit 700 refers to the correspondence between the logical vector register and the physical vector register managed in accordance with the execution order of the instructions, the register management unit 700 selects the physical vector register corresponding to the logical vector register holding the latest state. Can be identified. The register management unit 700 selects a physical vector register that holds the latest data of the logical vector register from the physical vector registers, and transmits the physical vector register number to the extension bit unit 800 as the latest state information. . Note that the register management unit 700 stores the latest state of the logical vector register based on the correspondence relationship between the past logical vector register and the physical vector register managed by the register management unit 700 based on the update history of the logical vector register. A vector register may be selected.

次に、図12を参照して、拡張ビット部800について説明する。   Next, the extension bit unit 800 will be described with reference to FIG.

拡張ビット部800は、拡張ビット格納部8000、物理0拡張ビットレジスタ82−0〜物理n拡張ビットレジスタ82−n(nは、物理ベクトルレジスタの数)、更新部8400を有する。その他の部分は、第1の実施形態と同様である。   The extension bit unit 800 includes an extension bit storage unit 8000, a physical 0 extension bit register 82-0 to a physical n extension bit register 82-n (n is the number of physical vector registers), and an update unit 8400. Other parts are the same as those in the first embodiment.

拡張ビット格納部8000は、物理ベクトルレジスタ数分の拡張ビットレジスタを備える。物理ベクトルレジスタの数がnである場合(nは任意の数)、拡張ビット格納部8000は、物理0拡張ビットレジスタ82−0〜物理n拡張ビットレジスタ82−nを備える。物理0拡張ビットレジスタ82−0〜物理n拡張ビットレジスタ82−nはそれぞれ、物理ベクトルレジスタのエントリ数と同数のエントリを有し、各エントリに拡張ビットを格納する。物理0拡張ビットレジスタ82−0〜物理n拡張ビットレジスタ82−nはそれぞれ、パス820−0〜パス820−nを介して更新部8400を接続している。また、物理0拡張ビットレジスタ82−0〜物理n拡張ビットレジスタ82−nはそれぞれ、パス821−0〜パス821−nを介してリードセレクタ85と接続している。   The extension bit storage unit 8000 includes as many extension bit registers as the number of physical vector registers. When the number of physical vector registers is n (n is an arbitrary number), the extension bit storage unit 8000 includes physical 0 extension bit registers 82-0 to physical n extension bit registers 82-n. Each of the physical 0 extension bit register 82-0 to physical n extension bit register 82-n has the same number of entries as the number of entries in the physical vector register, and stores an extension bit in each entry. The physical 0 extension bit register 82-0 to physical n extension bit register 82-n are connected to the update unit 8400 via the path 820-0 to path 820-n, respectively. The physical 0 extension bit register 82-0 to physical n extension bit register 82-n are connected to the read selector 85 via the path 821-0 to path 821-n, respectively.

次に、図13を参照して、更新部8400について説明する。   Next, the update unit 8400 will be described with reference to FIG.

更新部8400は、ライトセレクタ8401、演算回路8420を有する。その他の部分は、第1の実施形態と同様である。   The update unit 8400 includes a write selector 8401 and an arithmetic circuit 8420. Other parts are the same as those in the first embodiment.

ライトセレクタ8401は、パス820−0〜パス820−nのうちの1つを選択し、選択したパスを介して物理0拡張ビットレジスタ82−0〜物理n拡張ビットレジスタ82−nのいずれかから拡張ビットを受信する。ライトセレクタ8401は、パス701を介してレジスタ管理部700から、最新状態情報を受信する。ライトセレクタ8401は、最新状態情報で示される物理ベクトルレジスタ番号に対応するパスを選択し、拡張ビットを受信する。ライトセレクタ8401は、受信した拡張ビットを、パス84010を介して演算回路8420へ送信する。例えば、最新状態情報が“2”であった場合、ライトセレクタ8401は、物理ベクトルレジスタ2番に対応するパス820−2を選択し、拡張ビットを受信する。なお、最新状態情報が初期値であった場合(例えば、NULL等)、パス70を介して受信したライト物理ベクトルレジスタ番号と対応するパスを選択する。例えば、ライト物理ベクトルレジスタ番号が“0”であった場合、ライトセレクタ8401は、パス820−0を選択する。   The write selector 8401 selects one of the paths 820-0 to 820-n, and selects one of the physical 0 extension bit register 82-0 to physical n extension bit register 82-n via the selected path. Receive extension bits. The write selector 8401 receives the latest state information from the register management unit 700 via the path 701. The write selector 8401 selects a path corresponding to the physical vector register number indicated by the latest state information, and receives the extension bit. The write selector 8401 transmits the received extension bit to the arithmetic circuit 8420 via the path 84010. For example, when the latest state information is “2”, the write selector 8401 selects the path 820-2 corresponding to the physical vector register 2 and receives the extension bit. If the latest state information is an initial value (for example, NULL), the path corresponding to the write physical vector register number received via the path 70 is selected. For example, when the write physical vector register number is “0”, the write selector 8401 selects the path 820-0.

演算回路8420は、マスク識別回路841から受信したマスクビットと、ライトセレクタ8401から受信した拡張ビットとに基づいて、所定の演算を実行する。詳細は後述する。   The arithmetic circuit 8420 performs a predetermined calculation based on the mask bit received from the mask identification circuit 841 and the extension bit received from the write selector 8401. Details will be described later.

更新判定回路843は、パス70を介して受信したライト物理ベクトルレジスタ番号に対応するパスを、844−0乃至844−nから選択する。例えば、ライト物理ベクトルレジスタ番号が“1”の場合、パス844−1を選択する。その他の機能は、第1の実施形態と同様である。   The update determination circuit 843 selects a path corresponding to the write physical vector register number received via the path 70 from 844-0 to 844-n. For example, when the write physical vector register number is “1”, the path 844-1 is selected. Other functions are the same as those in the first embodiment.

次に、図14を参照して、演算回路8420について説明する。   Next, the arithmetic circuit 8420 will be described with reference to FIG.

演算回路8420は、マスクビット格納部8421、拡張ビット格納部8422及び演算実行部8423を有する。   The arithmetic circuit 8420 includes a mask bit storage unit 8421, an extended bit storage unit 8422, and an arithmetic execution unit 8423.

マスクビット格納部8421は、マスク識別回路841から受信したマスクビットを格納する。   The mask bit storage unit 8421 stores the mask bits received from the mask identification circuit 841.

拡張ビット格納部8422は、ライトセレクタ8401から受信した拡張ビットを格納する。   The extension bit storage unit 8422 stores the extension bits received from the write selector 8401.

演算実行部8423は、マスクビット格納部8421に格納された値と、拡張ビット格納部8422に格納された値とに基づいて、所定の演算を実行する。演算実行部8423は、マスクビット格納部8421に格納されている値が“1”である場合、演算実行部8423は、拡張ビット格納部8422に格納されている値をインクリメントする。例えば、拡張ビット格納部8422に格納されている値が“010”である場合、演算実行部8423は、当該値を“1”インクリメントして、“011”とするように構成すればよい。なお、演算実行部8422による演算処理はこれに限定されるものではなく、例えば、インクリメントする量を1以外としてもよい。また、インクリメントするのではなく、拡張ビット格納部8422に格納されている値を所定の量だけデクリメントするように構成してもよい。マスクビット格納部8421に格納されている値が“0”である場合、演算実行部8423は、演算処理を実行せず、拡張ビット格納部8422に格納されている値をそのままパス80へ送信する。演算実行部8423は、演算結果をWEXとして、パス80を介してポインタ合成部9へ送信する。拡張ビットの値は、上述したように(m−x)ビットの値となる。よって、上限値及び下限値が存在する。例えば、拡張ビットが3ビットの値である場合、上限値は“111”、下限値は“000”となる。演算実行部8423は、演算処理の結果が上限値を超過した場合、演算結果を下限値の値に設定する。また、演算実行部8423は、演算処理の結果が下限値を下回る場合、演算結果を上限値の値に設定する。   The operation execution unit 8423 executes a predetermined operation based on the value stored in the mask bit storage unit 8421 and the value stored in the extension bit storage unit 8422. When the value stored in the mask bit storage unit 8421 is “1”, the operation execution unit 8423 increments the value stored in the extension bit storage unit 8422. For example, when the value stored in the extension bit storage unit 8422 is “010”, the calculation execution unit 8423 may be configured to increment the value by “1” to “011”. Note that the arithmetic processing by the arithmetic execution unit 8422 is not limited to this, and the increment amount may be other than 1, for example. Further, instead of incrementing the value, the value stored in the extension bit storage unit 8422 may be decremented by a predetermined amount. When the value stored in the mask bit storage unit 8421 is “0”, the calculation execution unit 8423 does not execute the calculation process and transmits the value stored in the extension bit storage unit 8422 to the path 80 as it is. . The calculation execution unit 8423 transmits the calculation result as WEX to the pointer synthesis unit 9 via the path 80. The value of the extension bit is a value of (mx) bits as described above. Therefore, there is an upper limit value and a lower limit value. For example, when the extension bit is a 3-bit value, the upper limit value is “111” and the lower limit value is “000”. The calculation execution unit 8423 sets the calculation result to the lower limit value when the result of the calculation process exceeds the upper limit value. In addition, when the result of the arithmetic processing is below the lower limit value, the arithmetic execution unit 8423 sets the calculation result to the upper limit value.

なお、拡張ビット格納部8422に格納されている値が初期値(例えば、NULL等)の場合、演算実行部8423は、演算処理を実行せず、拡張ビットの値を上限値若しくは下限値のいずれかに設定する処理をする。但し、この場合、上限値若しくは下限値以外の任意の値を設定してもよい。   When the value stored in the extension bit storage unit 8422 is an initial value (for example, NULL), the calculation execution unit 8423 does not execute the calculation process, and sets the value of the extension bit as either the upper limit value or the lower limit value. Process to set to. However, in this case, any value other than the upper limit value or the lower limit value may be set.

次に、図15のフローチャートを参照して、演算回路8420による演算処理について説明する。   Next, arithmetic processing by the arithmetic circuit 8420 will be described with reference to the flowchart of FIG.

演算回路8420は、マスク識別回路841からマスクビットを受信し、マスクビット格納部8421に格納する(S21)。   The arithmetic circuit 8420 receives the mask bit from the mask identification circuit 841 and stores it in the mask bit storage unit 8421 (S21).

演算回路8420は、ライトセレクタ8401により選択された拡張ビットを、拡張ビット格納部8422に格納する(S22)。   The arithmetic circuit 8420 stores the extension bit selected by the write selector 8401 in the extension bit storage unit 8422 (S22).

演算実行部8423は、拡張ビット格納部内の拡張ビットの値が初期値(例えば、NULL等)か否かを判断する(S23)。   The operation execution unit 8423 determines whether or not the value of the extension bit in the extension bit storage unit is an initial value (for example, NULL or the like) (S23).

拡張ビットの値が初期値であった場合(S23でYesの場合)、演算実行部8423は、拡張ビットの値を設定する(S24)。演算実行部8423は、拡張ビットの値を上限値若しくは下限値に設定する。また、上限値若しくは下限値以外の任意の値に設定してもよい。   When the value of the extension bit is an initial value (Yes in S23), the operation execution unit 8423 sets the value of the extension bit (S24). The operation execution unit 8423 sets the value of the extension bit to the upper limit value or the lower limit value. Moreover, you may set to arbitrary values other than an upper limit or a lower limit.

演算実行部8423は、マスクビットがエントリへの書込みを許可しているか否かを判断する(S25)。例えば、マスクビットが“1”である場合、書込みが許可されていると判断する。   The operation execution unit 8423 determines whether or not the mask bit permits writing to the entry (S25). For example, when the mask bit is “1”, it is determined that writing is permitted.

書込みが許可されていると判断した場合(S25でYesの場合)、演算実行部8423は、拡張ビット格納部8422に格納されている値に対して演算処理を行う(S26)。例えば、当該値をインクリメント又はデクリメントするという演算処理を行う。ここで、演算処理の結果が、拡張ビットの値の上限値を超過した場合、演算実行部8423は、演算処理の結果として拡張ビットの下限値を設定する。また、演算処理の結果が、拡張ビットの値の下限値を下回った場合、演算実行部8423は、演算処理の結果として拡張ビットの上限値を設定する。   When it is determined that writing is permitted (Yes in S25), the operation execution unit 8423 performs operation processing on the value stored in the extension bit storage unit 8422 (S26). For example, an arithmetic process of incrementing or decrementing the value is performed. Here, when the result of the arithmetic processing exceeds the upper limit value of the extension bit value, the arithmetic execution unit 8423 sets the lower limit value of the extension bit as the result of the arithmetic processing. Also, when the result of the arithmetic processing falls below the lower limit value of the extension bit value, the arithmetic execution unit 8423 sets the upper limit value of the extension bit as the result of the arithmetic processing.

次に、図16、図17及び図18を参照して、第2の実施形態において命令を実行した場合について説明する。なお、説明においては、mが4、xが2の場合、即ち、ベクトルレジスタ1のエントリ数が16、物理ベクトルレジスタのエントリ数が4の場合について説明する。また、物理ベクトルレジスタの数は4であるものとして説明する。ベクトルレジスタ1には1つの論理ベクトルレジスタ番号(0番)が与えられ、また、論理ベクトルレジスタ0番の要素数は4であるものとする。つまり、ベクトルレジスタ1は、プログラムからは要素数が4(エントリ数が4)の1つの論理ベクトルレジスタとしてアクセスされる。   Next, a case where an instruction is executed in the second embodiment will be described with reference to FIGS. In the description, a case where m is 4 and x is 2, that is, a case where the number of entries in the vector register 1 is 16 and the number of entries in the physical vector register is 4 will be described. The description will be made assuming that the number of physical vector registers is four. One logical vector register number (0) is given to the vector register 1, and the number of elements of the logical vector register 0 is 4. That is, the vector register 1 is accessed from the program as one logical vector register having four elements (four entries).

図16に、レジスタ・リネーミングを実行した場合における、論理ベクトルレジスタのエントリと、物理ベクトルレジスタのエントリとの対応表を示す。当該対応表に基づいて、論理ベクトルレジスタと物理ベクトルレジスタとの関連付けが行われる。なお、当該対応表は一例であり、関連付けはこれに限定されるものではない。   FIG. 16 shows a correspondence table between logical vector register entries and physical vector register entries when register renaming is executed. Based on the correspondence table, the logical vector register and the physical vector register are associated with each other. The correspondence table is an example, and the association is not limited to this.

図17(a)〜(b)及び図18(c)〜(d)を参照して、論理ベクトルレジスタ0番にベクトルデータを書込む通常命令を1命令(以降、命令0)、マスク付き命令を2命令(以降、それぞれ命令M1、命令M2)実行した場合について説明する。なお、図17及び図18において、ベクトルレジスタ1のエントリをe0〜e15とし、各物理ベクトルレジスタのエントリをfe0〜fe3とする。なお、ベクトルレジスタ1のエントリe0〜e15のいずれか4つが、論理ベクトルレジスタ0番の4つのエントリのいずれかと対応付けられる。つまり、物理ベクトルレジスタのエントリと関連付けられる論理ベクトルレジスタ0番のエントリは、ベクトルレジスタ1のエントリのうちのいずれか4つのエントリとなる。   Referring to FIGS. 17A to 17B and FIGS. 18C to 18D, one normal instruction for writing vector data to logical vector register No. 0 (hereinafter, instruction 0), masked instruction A case where two instructions are executed (hereinafter, instruction M1 and instruction M2 respectively) will be described. In FIG. 17 and FIG. 18, the entry of the vector register 1 is e0 to e15, and the entry of each physical vector register is fe0 to fe3. Note that any four of the entries e0 to e15 of the vector register 1 are associated with any of the four entries of the logical vector register 0. That is, the logical vector register 0 entry associated with the physical vector register entry is any four of the vector register 1 entries.

図17(a)に初期状態を示す。初期状態は、物理0拡張ビットレジスタ82−0〜物理3拡張ビットレジスタ82−3の全ての値が初期値(ここでは、ハイフン(−)で表す)となっているものとする。ベクトルレジスタ1の全エントリ、物理ベクトルレジスタ0番〜物理ベクトルレジスタ3番の全エントリは、それぞれ初期値(ここでは、ハイフン(−)で表す)となっているものとする。また、リネーム情報、最新状態情報共に初期値(ここでは、ハイフン(−)で表す)であるものとする。   FIG. 17A shows an initial state. In the initial state, it is assumed that all values of the physical 0 extension bit register 82-0 to the physical 3 extension bit register 82-3 are initial values (represented by hyphens (-) here). It is assumed that all entries in the vector register 1 and all entries in the physical vector register 0 to the physical vector register 3 have initial values (represented by hyphens (-) here). It is assumed that both the rename information and the latest state information are initial values (represented by a hyphen (-) here).

命令0を実行した場合について説明する。   A case where instruction 0 is executed will be described.

なお、命令の発行により、マスク部6、レジスタ管理部700、レジスタ制御部12に制御情報が渡される。以下、命令実行について説明する場合には、全て同様とする。   Note that control information is transferred to the mask unit 6, the register management unit 700, and the register control unit 12 by issuing an instruction. Hereinafter, the same applies to the description of instruction execution.

命令0の論理ベクトルレジスタ0番は、レジスタ管理部700においてレジスタ・リネーミングにより、物理ベクトルレジスタ2番が指定されるものとする。命令0は通常命令なので、マスク識別回路841の出力は“1”となる。マスク識別回路841の出力は、マスクビット格納部8421へ格納される。   As for the logical vector register No. 0 of the instruction 0, the physical vector register No. 2 is designated by register renaming in the register management unit 700. Since the instruction 0 is a normal instruction, the output of the mask identification circuit 841 is “1”. The output of the mask identification circuit 841 is stored in the mask bit storage unit 8421.

命令0は通常命令なので、各エントリに対応するマスク識別回路841の出力は、全て“1”となる。レジスタ管理部700から送信された最新状態情報が初期値なので、ライトセレクタ8401により、ライト物理ベクトルレジスタ番号“2”に対応する物理2拡張ビットレジスタ82−2の値が選択される。ライトセレクタ8401により選択された値は、拡張ビット格納部8422に格納される。演算回路8420は、マスクビット格納部8421に格納された値及び拡張ビット格納部8422に格納された値により演算処理を実行する。ここで、物理2拡張ビットレジスタ82−2に格納されている値は初期値なので、演算回路8420は、ここでは、拡張ビットの下限値である“00”を演算結果として出力する。演算結果は、更新判定回路843により、パス844−2を介して、物理2拡張ビットレジスタ82−2の対応するエントリに書込まれる。   Since the instruction 0 is a normal instruction, the outputs of the mask identification circuit 841 corresponding to each entry are all “1”. Since the latest state information transmitted from the register management unit 700 is an initial value, the value of the physical 2 extension bit register 82-2 corresponding to the write physical vector register number “2” is selected by the write selector 8401. The value selected by the write selector 8401 is stored in the extension bit storage unit 8422. The arithmetic circuit 8420 performs arithmetic processing using the value stored in the mask bit storage unit 8421 and the value stored in the extension bit storage unit 8422. Here, since the value stored in the physical 2 extension bit register 82-2 is an initial value, the arithmetic circuit 8420 outputs “00”, which is the lower limit value of the extension bit, as an operation result. The calculation result is written by the update determination circuit 843 to the corresponding entry of the physical 2 extension bit register 82-2 via the path 844-2.

物理ベクトルレジスタ2番の各エントリと、論理ベクトルレジスタ0番の各エントリとの関連付けは、以下のように行われる。   The association between each entry of the physical vector register 2 and each entry of the logical vector register 0 is performed as follows.

1)物理ベクトルレジスタ2番のエントリ0(fe0)に対応するWP(2進数で“00”)により、物理0拡張ビットレジスタ82−0〜物理n拡張ビットレジスタ82−nから、対応する1ビットの値が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820−0〜パス820−nを介して更新部8400へ送信される。   1) 1 bit corresponding from physical 0 extended bit register 82-0 to physical n extended bit register 82-n by WP (binary number "00") corresponding to entry 0 (fe0) of physical vector register 2 Is read by the extension bit register control unit 86. The read values are transmitted to the update unit 8400 via the path 820-0 to path 820-n, respectively.

2)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令0は通常命令なので、マスク識別回路841は、マスク情報に基づいて1ビットの値“1”を演算回路8420へ出力する。   2) The mask identification circuit 841 receives the contents and mask information of the mask register corresponding to the WP from the mask unit 6 via the path 60. Since the instruction 0 is a normal instruction, the mask identification circuit 841 outputs a 1-bit value “1” to the arithmetic circuit 8420 based on the mask information.

3)ライトセレクタ8401は、パス70を介してライト物理ベクトルレジスタ番号“2”を受信する。また、ライトセレクタ8401は、パス701を介して、最新状態情報を受信する。最新状態情報が初期値であるので、ライトセレクタ8401は、ライト物理ベクトルレジスタ番号“2”に対応するパス820−2を選択し、物理2拡張ビットレジスタの値である初期値を演算回路842へ送信する。ここで、初期値として、例えばNULLデータ等が送信される。   3) The write selector 8401 receives the write physical vector register number “2” via the path 70. Further, the write selector 8401 receives the latest state information via the path 701. Since the latest state information is an initial value, the write selector 8401 selects the path 820-2 corresponding to the write physical vector register number “2”, and sends the initial value, which is the value of the physical 2 extension bit register, to the arithmetic circuit 842. Send. Here, for example, NULL data or the like is transmitted as an initial value.

4)演算回路8420は、ライトセレクタ8401から受信した初期値が拡張ビット格納部8422に格納されているので、拡張ビットの下限値である“00”を演算結果として出力する。演算回路8420は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4) Since the initial value received from the write selector 8401 is stored in the extension bit storage unit 8422, the arithmetic circuit 8420 outputs “00”, which is the lower limit value of the extension bit, as the operation result. The arithmetic circuit 8420 transmits the calculation result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“2”を受信する。また、更新判定回路843は、パス80を介して演算回路842の演算結果を受信する。ライト物理ベクトルレジスタ番号が“2”なので、更新判定回路843は、パス844−2に対して演算結果及び更新指示を送信する。   5) The update determination circuit 843 receives the write physical vector register number “2” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 842 through the path 80. Since the write physical vector register number is “2”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 844-2.

6)物理2拡張ビットレジスタ82−2は、WPと対応するエントリに、パス844−2を介して更新判定回路843から受信した演算結果を書込む。   6) The physical 2 extension bit register 82-2 writes the calculation result received from the update determination circuit 843 via the path 844-2 into the entry corresponding to WP.

7)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“00”、WPは“00”であるので、ライト拡張ポインタは2進数の“0000”となる。ライト拡張ポインタ “0000”は、図16の対応表により、ベクトルレジスタ1のe0を指す。   7) The pointer combining unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP combining circuit 92. Since WEX is “00” and WP is “00”, the write extension pointer is binary “0000”. The write extension pointer “0000” points to e0 of the vector register 1 according to the correspondence table of FIG.

以上のようにして、論理ベクトルレジスタ0番エントリ0は、ベクトルレジスタ1のe0及び物理ベクトルレジスタ2番のfe0が関連付けられる。命令0により、ライト拡張ポインタ“0000”で指定されるベクトルレジスタ1のエントリe0にベクトルデータの要素が書込まれる。つまり、プログラムにより、論理ベクトルレジスタ0番のエントリ0に、ベクトルレジスタ1のe0に書込まれたベクトルデータの要素が書込まれるということである。また、物理的には、ベクトルレジスタ1のe0に対応する物理ベクトルレジスタ2番のエントリfe0にベクトルデータの要素が書込まれる。   As described above, the logical vector register 0 entry 0 is associated with e0 of the vector register 1 and fe0 of the physical vector register 2. By the instruction 0, an element of vector data is written in the entry e0 of the vector register 1 specified by the write extension pointer “0000”. That is, the element of the vector data written in e0 of the vector register 1 is written into the entry 0 of the logical vector register 0 by the program. Physically, an element of vector data is written in entry fe0 of physical vector register 2 corresponding to e0 of vector register 1.

なお、物理ベクトルレジスタ2番のエントリ1以降は、WPを+1(インクリメント)して、上記 1)から物理ベクトルレジスタ1番のエントリ数分繰り返す。WPが“00”〜“11”まで変化した際に物理ベクトルレジスタ2番と関連付けられるベクトルレジスタ1のエントリは、それぞれ、e0、e1、e2、e3となる。図17(b)において、fe0(e0)、fe1(e1)、fe2(e2)、fe3(e3)と表現する。また、論理ベクトルレジスタ0番の4つのエントリはそれぞれ、ベクトルレジスタ1のe0、e1、e2、e3と関連付けられる。   From entry 1 onward of physical vector register 2, WP is incremented by 1 (increment), and the number of entries of physical vector register 1 is repeated from 1) above. When the WP changes from “00” to “11”, the entries of the vector register 1 associated with the physical vector register 2 are e0, e1, e2, and e3, respectively. In FIG. 17B, they are expressed as fe0 (e0), fe1 (e1), fe2 (e2), and fe3 (e3). The four entries of the logical vector register 0 are associated with e0, e1, e2, and e3 of the vector register 1, respectively.

図17(b)に、命令0の実行後の状態を示す。   FIG. 17B shows the state after the instruction 0 is executed.

物理2拡張ビットレジスタ82−2は、全てのビットの値が“00”となる。ベクトルレジスタ1のe0〜e3(即ち、論理ベクトルレジスタ0番のエントリ0〜3)はそれぞれA、B、C、Dが格納されている。このとき、物理ベクトルレジスタ2番の4つのエントリfe0〜fe3は、ベクトルレジスタ1のe0〜e3(即ち、論理ベクトルレジスタ0番のエントリ0〜3)のそれぞれが対応し、その内容は、A、B、C、Dとなる。   In the physical 2 extension bit register 82-2, the values of all bits are “00”. A, B, C, and D are stored in e0 to e3 of the vector register 1 (that is, entries 0 to 3 of the logical vector register 0), respectively. At this time, the four entries fe0 to fe3 of the physical vector register 2 correspond to the e0 to e3 of the vector register 1 (that is, the entries 0 to 3 of the logical vector register 0), and their contents are A, B, C, D.

命令0の実行後、物理ベクトルレジスタ2番にはレジスタ・リネーミング後のレジスタ状態が保持され、他の物理ベクトルレジスタにはレジスタ・リネーミング前のレジスタ状態が保持されている。よって、レジスタ・リネーミングが正しく行われていることになる。   After the instruction 0 is executed, the register state after the register renaming is held in the physical vector register No. 2, and the register state before the register renaming is held in the other physical vector registers. Therefore, register renaming is correctly performed.

次に、マスク付き命令である命令M1の実行について説明する。   Next, execution of the instruction M1, which is an instruction with a mask, will be described.

命令M1の論理ベクトルレジスタ0番は、レジスタ管理部700においてレジスタ・リネーミングにより、物理ベクトルレジスタ0番が指定されるものとする。マスク識別回路841の出力は、マスクビット格納部8421へ格納される。   The logical vector register 0 of the instruction M1 is assumed to be designated as the physical vector register 0 by register renaming in the register management unit 700. The output of the mask identification circuit 841 is stored in the mask bit storage unit 8421.

命令M1はマスク付き命令であり、各エントリに対応するマスク識別回路841の出力は、それぞれ1、1、0、0となる。レジスタ管理部700から送信された最新状態情報が物理ベクトルレジスタ2番を示す“2”であるので、ライトセレクタ8401により、物理2拡張ビットレジスタ82−2の値が選択される。ライトセレクタ8401により選択された値は、拡張ビット格納部8422に格納される。演算回路8420は、マスクビット格納部8421に格納された値及び拡張ビット格納部8422に格納された値により演算処理を実行する。演算回路8420は、演算結果をポインタ合成部9及び更新判定回路843に送信する。演算結果は、更新判定回路843により、パス844−0を介して、物理0拡張ビットレジスタ82−0の対応するエントリに書込まれる。ライト物理ベクトルレジスタ番号が“0”だからである。   The instruction M1 is an instruction with a mask, and the output of the mask identification circuit 841 corresponding to each entry is 1, 1, 0, 0, respectively. Since the latest state information transmitted from the register management unit 700 is “2” indicating the physical vector register No. 2, the value of the physical 2 extension bit register 82-2 is selected by the write selector 8401. The value selected by the write selector 8401 is stored in the extension bit storage unit 8422. The arithmetic circuit 8420 performs arithmetic processing using the value stored in the mask bit storage unit 8421 and the value stored in the extension bit storage unit 8422. The arithmetic circuit 8420 transmits the calculation result to the pointer synthesis unit 9 and the update determination circuit 843. The calculation result is written by the update determination circuit 843 into the corresponding entry of the physical 0 extension bit register 82-0 via the path 844-0. This is because the write physical vector register number is “0”.

物理ベクトルレジスタ0番の各エントリと、論理ベクトルレジスタ0番の各エントリとの関連付けは、以下のように行われる。   The association between each entry in the physical vector register 0 and each entry in the logical vector register 0 is performed as follows.

1−0)物理ベクトルレジスタ2番のエントリ0(fe0)に対応するWP(2進数で“00”)により、物理0拡張ビットレジスタ82−0〜物理n拡張ビットレジスタ82−nから、対応する1ビットの値が、拡張ビットレジスタ制御部86により読み出される。読み出された値は、それぞれパス820−0〜パス820−nを介して更新部8400へ送信される。   1-0) Corresponding from the physical 0 extension bit register 82-0 to the physical n extension bit register 82-n by the WP (binary number "00") corresponding to the entry 0 (fe0) of the physical vector register 2 The 1-bit value is read by the extension bit register control unit 86. The read values are transmitted to the update unit 8400 via the path 820-0 to path 820-n, respectively.

2−0)マスク識別回路841は、マスク部6からパス60を介して、WPに対応するマスクレジスタの内容及びマスク情報を受信する。命令M1はマスク付き命令であり、エントリ0に対応する値は“1”である。マスク識別回路841は、マスクビット格納部8421へ出力する。   2-0) The mask identification circuit 841 receives the contents of the mask register and the mask information corresponding to the WP from the mask unit 6 via the path 60. The instruction M1 is an instruction with a mask, and the value corresponding to the entry 0 is “1”. The mask identification circuit 841 outputs the result to the mask bit storage unit 8421.

3−0)ライトセレクタ8401は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。また、ライトセレクタ8401は、パス701を介して、最新状態情報を受信する。最新状態情報は“2”(実際は2進数で表現されるが、便宜上10進数で表現する。以下同様とする。)であるので、ライトセレクタ8401は、パス820−2を選択し、物理2拡張ビットレジスタの値である“00”を演算回路8420の拡張ビット格納部8422へ送信する。   3-0) The write selector 8401 receives the write physical vector register number “0” via the path 70. Further, the write selector 8401 receives the latest state information via the path 701. Since the latest state information is “2” (actually expressed in binary, but expressed in decimal for convenience. The same shall apply hereinafter), the write selector 8401 selects the path 820-2 and expands physical 2 The bit register value “00” is transmitted to the extension bit storage unit 8422 of the arithmetic circuit 8420.

4−0)演算回路8420は、マスクビット格納部8421の値と拡張ビット格納部8422に格納されている値により、演算処理を実行する。演算回路8420は、マスクビット格納部8421に格納されている値が“1”であるので、演算処理を実行する。ここでは、演算回路8420は、拡張ビット格納部8422に格納されている値の“00”を1だけインクリメントした“01”を演算結果として生成する。演算回路8420は、当該演算結果をパス80を介してポインタ合成部9及び更新判定回路843へ送信する。演算結果は、WEXとしてポインタ合成部9へ送信される。   4-0) The arithmetic circuit 8420 executes arithmetic processing based on the value stored in the mask bit storage unit 8421 and the value stored in the extension bit storage unit 8422. Since the value stored in the mask bit storage unit 8421 is “1”, the arithmetic circuit 8420 executes arithmetic processing. Here, the arithmetic circuit 8420 generates “01” obtained by incrementing the value “00” stored in the extension bit storage unit 8422 by 1, as the operation result. The arithmetic circuit 8420 transmits the calculation result to the pointer synthesis unit 9 and the update determination circuit 843 via the path 80. The calculation result is transmitted to the pointer synthesis unit 9 as WEX.

5−0)更新判定回路843は、パス70を介してライト物理ベクトルレジスタ番号“0”を受信する。また、更新判定回路843は、パス80を介して演算回路8420の演算結果を受信する。ライト物理ベクトルレジスタ番号が“0”なので、更新判定回路843は、パス844−0に対して演算結果及び更新指示を送信する。   5-0) The update determination circuit 843 receives the write physical vector register number “0” via the path 70. In addition, the update determination circuit 843 receives the calculation result of the calculation circuit 8420 through the path 80. Since the write physical vector register number is “0”, the update determination circuit 843 transmits the calculation result and the update instruction to the path 844-0.

6−0)物理0拡張ビットレジスタ82−0は、WPと対応するエントリに、パス844−0を介して受信した演算結果を書込む。   6-0) The physical 0 extension bit register 82-0 writes the operation result received via the path 844-0 in the entry corresponding to WP.

7−0)ポインタ合成部9は、パス80を介して受信したWEXと、パス40を介して受信したWPからWP合成回路92によりライト拡張ポインタを生成する。WEXは“01”、WPは“00”であるので、ライト拡張ポインタは2進数の“0100”となる。ライト拡張ポインタ“0100”は、図16の対応表により、ベクトルレジスタ1のe4を指す。   7-0) The pointer synthesis unit 9 generates a write extension pointer from the WEX received via the path 80 and the WP received via the path 40 by the WP synthesis circuit 92. Since WEX is “01” and WP is “00”, the write extension pointer is binary “0100”. The write extension pointer “0100” points to e4 of the vector register 1 according to the correspondence table of FIG.

物理ベクトルレジスタ0番のエントリ1以降も、上記と同様に関連付けが行われる。   The association is also performed in the same manner as described above for the entry 1 and later of the physical vector register 0.

物理ベクトルレジスタ0番と関連付けられるベクトルレジスタ1のエントリは、それぞれ、e4、e5、e2、e3となる。図18(c)において、fe0(e4)、fe1(e5)、fe2(e2)、fe3(e3)と表現する。また、論理ベクトルレジスタ0番の4つのエントリはそれぞれ、ベクトルレジスタ1のe4、e5、e2、e3と関連付けられる。   The entries in the vector register 1 associated with the physical vector register 0 are e4, e5, e2, and e3, respectively. In FIG. 18C, they are expressed as fe0 (e4), fe1 (e5), fe2 (e2), and fe3 (e3). The four entries of the logical vector register 0 are associated with e4, e5, e2, and e3 of the vector register 1, respectively.

図18(c)に、命令M1の実行後の状態を示す。   FIG. 18C shows a state after execution of the instruction M1.

物理0拡張ビットレジスタ82−0の値は、それぞれ“01”、“01”、“00”、“00”となる。ベクトルレジスタ1のe4及びe5にはそれぞれE、Fが格納されている。このとき、物理ベクトルレジスタ0番の4つのエントリfe0〜fe3は、ベクトルレジスタ1のe4、e5、e2、e3(即ち、論理ベクトルレジスタ0番のエントリ0〜3)のそれぞれが対応し、その内容は、E、F、C、Dとなる。   The values of the physical 0 extension bit register 82-0 are “01”, “01”, “00”, and “00”, respectively. E and F are stored in e4 and e5 of the vector register 1, respectively. At this time, the four entries fe0 to fe3 of the physical vector register 0 correspond to the e4, e5, e2, and e3 of the vector register 1 (that is, the entries 0 to 3 of the logical vector register 0), and their contents Are E, F, C, and D.

命令M1の実行後、物理ベクトルレジスタ0番にはレジスタ・リネーミング後のレジスタ状態が保持され、他の物理ベクトルレジスタにはレジスタ・リネーミング前のレジスタ状態が保持されている。よって、レジスタ・リネーミングが正しく行われていることになる。   After execution of the instruction M1, the physical vector register No. 0 holds the register state after register renaming, and the other physical vector registers hold the register state before register renaming. Therefore, register renaming is correctly performed.

命令M2も、上記と同様の処理により実行される。   The instruction M2 is also executed by the same process as described above.

図18(d)に命令M2の実行後の状態を示す。命令M1の実行後と同様、レジスタ・リネーミングが正しく実行されている。   FIG. 18D shows a state after execution of the instruction M2. The register renaming is correctly executed as in the case after the execution of the instruction M1.

以上のように、本発明の第2の実施形態によれば、ベクトルレジスタのエントリ数、物理ベクトルレジスタのエントリ数及び物理ベクトルレジスタの数を任意に設定した場合でも、マスク演算の実行時において、ベクトルレジスタについてレジスタ・リネーミングが可能となる。これにより、ベクトルデータを用いる処理において、命令の実行性能の向上を図ることが可能になる。なお、ベクトルデータを処理する情報処理装置において、ベクトルデータを格納するベクトルレジスタの数は非常に多くなるので、ベクトルレジスタのエントリ数、物理ベクトルレジスタのエントリ数及び物理ベクトルレジスタの数を任意に設定した場合においても、レジスタ・リネーミングを可能とし、命令の実行性能の向上が図れるという効果は格別のものである。   As described above, according to the second embodiment of the present invention, even when the number of vector register entries, the number of physical vector register entries, and the number of physical vector registers are arbitrarily set, at the time of executing the mask operation, Register renaming is possible for vector registers. This makes it possible to improve instruction execution performance in processing using vector data. In an information processing device that processes vector data, the number of vector registers that store vector data becomes very large, so the number of vector register entries, the number of physical vector register entries, and the number of physical vector registers can be set arbitrarily. Even in this case, register renaming is possible, and the effect of improving the instruction execution performance is exceptional.

本発明の第1の実施形態における情報処理装置を説明するためのブロック図である。It is a block diagram for demonstrating the information processing apparatus in the 1st Embodiment of this invention. 本発明の第1の実施形態を説明するための表である。It is a table | surface for demonstrating the 1st Embodiment of this invention. 本発明の第1の実施形態を説明するための図である。It is a figure for demonstrating the 1st Embodiment of this invention. 本発明の第1の実施形態における拡張ビット部を説明するためのブロック図である。It is a block diagram for demonstrating the extension bit part in the 1st Embodiment of this invention. 本発明の第1の実施形態における更新部を説明するためのブロック図である。It is a block diagram for demonstrating the update part in the 1st Embodiment of this invention. 本発明の第1の実施形態におけるポインタ合成部を説明するためのブロック図である。It is a block diagram for demonstrating the pointer synthetic | combination part in the 1st Embodiment of this invention. 本発明の第1の実施形態を説明するための図である。It is a figure for demonstrating the 1st Embodiment of this invention. 本発明の第1の実施形態を説明するための図である。It is a figure for demonstrating the 1st Embodiment of this invention. 本発明の第1の実施形態を説明するためのフローチャートである。It is a flowchart for demonstrating the 1st Embodiment of this invention. 本発明の第2の実施形態を説明するための表である。It is a table | surface for demonstrating the 2nd Embodiment of this invention. 本発明の第2の実施形態における情報処理装置を説明するためのブロック図である。It is a block diagram for demonstrating the information processing apparatus in the 2nd Embodiment of this invention. 本発明の第2の実施形態における拡張ビット部を説明するためのブロック図である。It is a block diagram for demonstrating the extension bit part in the 2nd Embodiment of this invention. 本発明の第2の実施形態における更新部を説明するためのブロック図である。It is a block diagram for demonstrating the update part in the 2nd Embodiment of this invention. 本発明の第2の実施形態における演算回路を説明するためのブロック図である。It is a block diagram for demonstrating the arithmetic circuit in the 2nd Embodiment of this invention. 本発明の第2の実施形態の動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement of the 2nd Embodiment of this invention. 本発明の第2の実施形態を説明するための表である。It is a table | surface for demonstrating the 2nd Embodiment of this invention. 本発明の第2の実施形態を説明するための図である。It is a figure for demonstrating the 2nd Embodiment of this invention. 本発明の第2の実施形態を説明するための図である。It is a figure for demonstrating the 2nd Embodiment of this invention.

符号の説明Explanation of symbols

1 ベクトルレジスタ
2 WDレジスタ
3 RDレジスタ
4 WPレジスタ
5 RPレジスタ
6 マスク部
7 レジスタ管理部
700 レジスタ管理部
8 拡張ビット部
800 拡張ビット部
82 物理0拡張ビットレジスタ
82−0〜82−n 物理n拡張ビットレジスタ
83 物理1拡張ビットレジスタ
84 更新部
8400 更新部
840 ライトセレクタ
8401 ライトセレクタ
841 マスク識別回路
842 演算回路
8420 演算回路
8421 マスクビット格納部
8422 拡張ビット格納部
8423 演算実行部
843 更新判定回路
8000 拡張ビット格納部
85 リードセレクタ
86 拡張ビットレジスタ制御部
9 ポインタ合成部
92 WP合成回路
93 RP合成回路
10 WEレジスタ
11 WE制御部
12 レジスタ制御部
13 情報処理装置
1 Vector register 2 WD register 3 RD register 4 WP register 5 RP register 6 Mask unit 7 Register management unit 700 Register management unit 8 Extension bit unit 800 Extension bit unit 82 Physical 0 extension bit register 82-0 to 82-n Physical n extension Bit register 83 Physical 1 extension bit register 84 Update unit 8400 Update unit 840 Write selector 8401 Write selector 841 Mask identification circuit 842 Calculation circuit 8420 Calculation circuit 8421 Mask bit storage unit 8422 Extension bit storage unit 8423 Calculation execution unit 843 Update determination circuit 8000 Extension Bit storage unit 85 Read selector 86 Extension bit register control unit 9 Pointer synthesis unit 92 WP synthesis circuit 93 RP synthesis circuit 10 WE register 11 WE control unit 12 Register control unit 13 Information processing device

Claims (2)

n個の要素(0番要素〜n−1番要素)を有する論理ベクタレジスタを処理する情報処理装置であって、
該情報処理装置は、2n個のエントリ(0番エントリ〜2n−1番エントリ)を有するベクタレジスタと、nビットの第1の拡張ビットレジスタ及びnビットの第2の拡張ビットレジスタと、nビットのマスクレジスタを備えており、
該情報処理装置は、前記論理レジスタの各要素を前記ベクタレジスタのエントリに対応付けるリネーム処理を行うものであり、
該リネーム処理は、前記論理レジスタのi番要素(0≦i≦n−1)を前記ベクタレジスタのi番エントリ又はi+n番エントリのどちらかのエントリに対応付ける処理を前記論理レジスタの0番要素〜n−1番要素について行うものであり、
前記リネーム処理の結果は、要素毎にi番エントリに対応付けた場合は「0」を、i+n番エントリに対応付けた場合は「1」を、第1の拡張ビットレジスタに格納して合計nビットで表し、
演算処理を実行して、前記リネーム処理の結果に基づいた前記ベクトルレジスタの対応するエントリ(物理ベクトルレジスタ)を更新し、
次に前記論理レジスタをリネーム処理する場合は、前記リネーム処理と同様にリネーム処理した結果を、第2の拡張ビットレジスタに格納して合計nビットで表し、
演算処理を実行して、前記リネーム処理の結果に基づいた前記ベクトルレジスタの対応するエントリ(物理ベクトルレジスタ)を更新し、
以降、リネーム処理及び演算処理は交互に前記第1の拡張ビットレジスタ又は前記第2の拡張ビットレジスタを用いて行うものであり、
前記マスクレジスタはマスク付き演算を行わない場合は全ビットに「1」を、マスク付き演算を行う場合は、更新対象となる要素に対応したビット位置に「1」を、更新対象外の要素に対応したビット位置に「0」を保持させておき、
前記リネーム処理において、リネーム処理の結果を格納しない方(前回リネーム処理の結果を格納した方)の拡張ビットレジスタと前記マスクレジスタとの排他的論理和(XOR)演算を行った結果を、新たにリネーム処理の結果を格納する方の拡張ビットレジスタに格納することによって、前記マスクレジスタの「0」であるビット位置に対応する構成要素は、更新前のベクトルレジスタのエントリに対応付け、前記マスクレジスタの「1」であるビット位置に対応する構成要素は、更新対象のベクトルレジスタのエントリに対応付ける
ことを特徴とする情報処理装置。
An information processing apparatus for processing a logical vector register having n elements (0th element to n-1th element),
The information processing apparatus includes a vector register having 2n entries (0th entry to 2n-1th entry), an n-bit first extension bit register, an n-bit second extension bit register, and n bits With a mask register,
The information processing apparatus performs a rename process for associating each element of the logical register with an entry of the vector register,
The renaming process is a process of associating the i-th element (0 ≦ i ≦ n−1) of the logical register with either the i-th entry or i + n-th entry of the vector register. for the n-1 element,
As a result of the rename process, “0” is stored in the first extension bit register when “0” is associated with the i-th entry for each element, and “1” is stored in the first extension bit register. Represented in bits,
Performing an arithmetic process to update a corresponding entry (physical vector register) of the vector register based on the result of the rename process;
Next, when the logical register is renamed, the result of the rename process similar to the rename process is stored in the second extension bit register and expressed by a total of n bits,
Performing an arithmetic process to update a corresponding entry (physical vector register) of the vector register based on the result of the rename process;
Thereafter, the rename process and the arithmetic process are alternately performed using the first extension bit register or the second extension bit register.
The mask register sets “1” to all bits when the operation with mask is not performed, and sets “1” to the bit position corresponding to the element to be updated and “1” as the element not to be updated when the operation with mask is performed. Keep “0” in the corresponding bit position,
In the renaming process, the result of performing an exclusive OR (XOR) operation between the extension bit register and the mask register that does not store the result of the renaming process (the one that stored the result of the previous renaming process) By storing the result of the renaming process in the extension bit register that stores the result, the component corresponding to the bit position that is “0” of the mask register is associated with the entry of the vector register before the update, and the mask register An information processing apparatus characterized in that a component corresponding to a bit position of “1” is associated with an entry of a vector register to be updated .
n個の要素(0番要素〜n−1番要素)を有する論理ベクタレジスタを処理する情報処理装置における情報処理方法であって、
該情報処理装置は、2n個のエントリ(0番エントリ〜2n−1番エントリ)を有するベクタレジスタと、nビットの第1の拡張ビットレジスタ及びnビットの第2の拡張ビットレジスタを含む拡張ビット部と、nビットのマスクレジスタを備えており、
該情報処理装置は、前記論理レジスタの各要素を前記ベクタレジスタのエントリに対応付けるリネーム処理を行うものであり、
該リネーム処理は、前記論理レジスタのi番要素(0≦i≦n−1)を前記ベクタレジスタのi番エントリ又はi+n番エントリのどちらかのエントリに対応付ける処理を前記論理レジスタの0番要素〜n−1番要素について行うものであり、
前記拡張ビット部は、前記リネーム処理の結果を、要素毎にi番エントリに対応付けた場合は「0」を、i+n番エントリに対応付けた場合は「1」を、第1の拡張ビットレジスタに格納して合計nビットで表し、
前記拡張ビット部は、演算処理を実行して、前記リネーム処理の結果に基づいた前記ベクトルレジスタの対応するエントリ(物理ベクトルレジスタ)を更新し、
次に前記論理レジスタをリネーム処理する場合は、前記リネーム処理と同様にリネーム処理した結果を、第2の拡張ビットレジスタに格納して合計nビットで表し、
前記拡張ビット部は、演算処理を実行して、前記リネーム処理の結果に基づいた前記ベクトルレジスタの対応するエントリ(物理ベクトルレジスタ)を更新し、
以降、リネーム処理及び演算処理は交互に前記第1の拡張ビットレジスタ又は前記第2の拡張ビットレジスタを用いて行うものであり、
前記マスクレジスタはマスク付き演算を行わない場合は全ビットに「1」を、マスク付き演算を行う場合は、更新対象となる要素に対応したビット位置に「1」を、更新対象外の要素に対応したビット位置に「0」を保持させておき、
前記拡張ビット部は、前記リネーム処理において、リネーム処理の結果を格納しない方(前回リネーム処理の結果を格納した方)の拡張ビットレジスタと前記マスクレジスタとの排他的論理和(XOR)演算を行った結果を、新たにリネーム処理の結果を格納する方の拡張ビットレジスタに格納することによって、前記マスクレジスタの「0」であるビット位置に対応する構成要素は、更新前のベクトルレジスタのエントリに対応付け、前記マスクレジスタの「1」であるビット位置に対応する構成要素は、更新対象のベクトルレジスタのエントリに対応付ける
ことを特徴とする情報処理方法
An information processing method in an information processing apparatus for processing a logical vector register having n elements (0th element to n-1th element),
The information processing apparatus includes a vector register having 2n entries (0th entry to 2n-1th entry), an extension bit including an n-bit first extension bit register and an n-bit second extension bit register And an n-bit mask register,
The information processing apparatus performs a rename process for associating each element of the logical register with an entry of the vector register,
The renaming process is a process of associating the i-th element (0 ≦ i ≦ n−1) of the logical register with either the i-th entry or i + n-th entry of the vector register. for the n-1 element,
The extension bit unit sets the result of the rename process to “0” when the element is associated with the i-th entry for each element, and “1” when the element is associated with the i + n-th entry. Stored in a total of n bits,
The extension bit unit performs an arithmetic process to update a corresponding entry (physical vector register) of the vector register based on the result of the rename process,
Next, when the logical register is renamed, the result of the rename process similar to the rename process is stored in the second extension bit register and expressed by a total of n bits,
The extension bit unit performs an arithmetic process to update a corresponding entry (physical vector register) of the vector register based on the result of the rename process,
Thereafter, the rename process and the arithmetic process are alternately performed using the first extension bit register or the second extension bit register.
The mask register sets “1” to all bits when the operation with mask is not performed, and sets “1” to the bit position corresponding to the element to be updated and “1” as the element not to be updated when the operation with mask is performed. Keep “0” in the corresponding bit position,
The extension bit unit performs an exclusive OR (XOR) operation between the extension bit register that does not store the result of the rename process (the one that stores the result of the previous rename process) and the mask register in the rename process. The result corresponding to the bit position that is “0” of the mask register is stored in the entry of the vector register before the update. An information processing method , wherein a component corresponding to a bit position that is “1” of the mask register is associated with an entry of a vector register to be updated .
JP2006262640A 2006-09-27 2006-09-27 Information processing apparatus and information processing method Expired - Fee Related JP5000248B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006262640A JP5000248B2 (en) 2006-09-27 2006-09-27 Information processing apparatus and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006262640A JP5000248B2 (en) 2006-09-27 2006-09-27 Information processing apparatus and information processing method

Publications (2)

Publication Number Publication Date
JP2008083947A JP2008083947A (en) 2008-04-10
JP5000248B2 true JP5000248B2 (en) 2012-08-15

Family

ID=39354775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006262640A Expired - Fee Related JP5000248B2 (en) 2006-09-27 2006-09-27 Information processing apparatus and information processing method

Country Status (1)

Country Link
JP (1) JP5000248B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4868255B2 (en) * 2008-09-24 2012-02-01 日本電気株式会社 Processor, processor control method, and information processing apparatus
JP2010205088A (en) * 2009-03-04 2010-09-16 Nec Computertechno Ltd Vector processing apparatus and vector processing method
JP5419134B2 (en) * 2009-03-04 2014-02-19 エヌイーシーコンピュータテクノ株式会社 Vector processor and vector instruction issuing method
JP5413473B2 (en) * 2012-03-01 2014-02-12 日本電気株式会社 Vector processing apparatus and vector processing method
GB2553783B (en) 2016-09-13 2020-11-04 Advanced Risc Mach Ltd Vector multiply-add instruction
JP7078380B2 (en) * 2017-11-01 2022-05-31 Necプラットフォームズ株式会社 Instruction control device, instruction control method and program
JP6705473B2 (en) * 2018-06-22 2020-06-03 日本電気株式会社 Arithmetic device and arithmetic system

Also Published As

Publication number Publication date
JP2008083947A (en) 2008-04-10

Similar Documents

Publication Publication Date Title
CN102124443B (en) Provision of extended addressing modes in a single instruction multiple data (SIMD) data processor
JP6293795B2 (en) Vector register addressing and functions based on scalar register data values
JP3204323B2 (en) Microprocessor with built-in cache memory
KR20130085042A (en) Memories and methods for performing atomic memory operations in accordance with configuration information
TW202246973A (en) Hardware processor and processor
JP2012119009A5 (en) A processor that performs a selection operation
WO2012102002A1 (en) Virtual computer system, virtual computer control method, virtual computer control program, recording medium, and integrated circuit
JP5000248B2 (en) Information processing apparatus and information processing method
CN107851013A (en) element size increase instruction
JPS59128670A (en) Vector processor
WO2001086432A2 (en) Cryptographic data processing systems, computer program products, and methods of operating same, using parallel execution units
CN119127725A (en) Lookup table with data element promotion
TW201823972A (en) Vector generation instruction
JPH10207717A (en) Microcomputer
JP3659252B2 (en) Vector data address reference method and vector processor
JPH04343134A (en) Program counter device
WO2019094492A1 (en) System and method of vliw instruction processing using reduced-width vliw processor
US10572262B2 (en) Register mapping of register specifiers to registers depending on a key value used for mapping at least two of the register specifiers
JP2003241960A (en) Processor, operation instruction processing method and operation control method in the processor
JP4686435B2 (en) Arithmetic unit
JP5751181B2 (en) Instruction control circuit, processor, and instruction control method
US20020156992A1 (en) Information processing device and computer system
JP5659772B2 (en) Arithmetic processing unit
JP2006285996A (en) Conditional branch instruction encoding in multiple instruction set data processing systems
JP3395727B2 (en) Arithmetic device and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080415

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080616

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090519

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120516

R150 Certificate of patent or registration of utility model

Ref document number: 5000248

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees