JP5145659B2 - Vector renaming method and vector computer - Google Patents
Vector renaming method and vector computer Download PDFInfo
- Publication number
- JP5145659B2 JP5145659B2 JP2006169010A JP2006169010A JP5145659B2 JP 5145659 B2 JP5145659 B2 JP 5145659B2 JP 2006169010 A JP2006169010 A JP 2006169010A JP 2006169010 A JP2006169010 A JP 2006169010A JP 5145659 B2 JP5145659 B2 JP 5145659B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- cell
- register
- renaming
- mask
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 14
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
Description
本発明は、ベクトル型計算機に関し、特に、レジスタリネーミングを可能にして演算スループットを向上させるためのレジスタリネーミング方式と、このようなレジスタリネーミング方式を採用したベクトル型計算機とに関する。 The present invention relates to a vector computer, and more particularly, to a register renaming method that enables register renaming to improve calculation throughput, and a vector computer that employs such a register renaming method.
計算機システムにおいてその性能を向上させるためには、単位時間当たりに実行できる命令数を高めることが必要である。特に、持続的な性能(Sustained Performance)の向上のためには、命令を発行するレート(Issueレート)を向上することが必要である。 In order to improve the performance of a computer system, it is necessary to increase the number of instructions that can be executed per unit time. In particular, in order to improve sustained performance, it is necessary to improve the rate at which instructions are issued (Issue rate).
計算機システムにおいて、演算処理は一般にレジスタ間で行われるが、パイプライン処理を用いている場合に、あるレジスタに対する命令を発行した後、同じレジスタが別の命令を実行できるようになるためには一定のマシンサイクルを必要とする。ハードウェアには、プログラムが前提とする個数よりも多くの個数のレジスタを用意しておき、プログラム上では同一のレジスタに対するものである複数の命令があるときに、命令の実行時において、プログラムで規定されているレジスタとは別のレジスタを用いるようにすることによって、演算の高速化が可能になる。このような手法で演算の高速化を図るものが、レジスタリネーミング(レジスタの名前の付け替え)である。 In computer systems, arithmetic processing is generally performed between registers. However, when pipeline processing is used, after issuing an instruction for one register, the same register can execute another instruction. Need machine cycles. The hardware has more registers than the program assumes, and when there are multiple instructions that are for the same register in the program, By using a register different from the defined register, the operation speed can be increased. Register renaming (renaming of registers) is a method for speeding up operations by such a method.
一般的に行われているレジスタリネーミングでは、ある演算結果を書き込むレジスタに別名を与え、リソースの依存性を緩和する。たとえば、命令Aが論理リソースXに対してデータを読み出している途中で、同一の論理リソースXに対する書き込みを行う後続命令Bに関して、論理リソースXに対して物理リソースX1、X2をそれぞれA,Bに割り当てておくことで、B実行によるデータの書きつぶしを防ぐことが可能となる。これは命令Bの発行制限の緩和を意味し、発行レートの向上が見込める。 In register renaming that is generally performed, an alias is given to a register to which a certain operation result is written, and resource dependency is relaxed. For example, regarding the subsequent instruction B that writes to the same logical resource X while the instruction A is reading data from the logical resource X, the physical resources X1 and X2 are changed to A and B for the logical resource X, respectively. By allocating, it becomes possible to prevent data from being overwritten by B execution. This means that the issue limit of the instruction B is relaxed, and an increase in the issue rate can be expected.
しかしながら、レジスタリネーミングをベクトル型計算機に適用しようとする場合には、ベクトル型計算機には、要素ごとに計算の有無を切り替えることのできるマスク機能が設けられており、単純にリネーミングメカニズムを実現できない、という問題点がある。たとえば前述の命令Bにマスクがかかっていた場合、マスク対象の要素には、演算結果の元の値、すなわち命令Aの実行結果の対応する要素を格納する必要がある。これは、演算がマスクされている以上、あるレジスタに既に書き込まれたデータが、あとに実行される命令で参照される可能性があるからである。ベクトル計算機におけるマスク機能については、例えば、特許文献1、2に記載されている。
However, if register renaming is to be applied to a vector computer, the vector computer is provided with a mask function that can switch the presence / absence of calculation for each element, thus realizing a simple renaming mechanism. There is a problem that it is not possible. For example, when the above-described instruction B is masked, it is necessary to store the original value of the operation result, that is, the corresponding element of the execution result of the instruction A, in the masked element. This is because data already written in a certain register may be referred to by an instruction to be executed later as long as the operation is masked. The mask function in the vector computer is described in
そのため、単純に複数の独立したリソースをA,Bに割り当てるだけで不十分で、そのリソース間での値の引渡しが必要となり、既存のレジスタリネーミング技術を単純に導入することができなかった。リソース間での値の引渡しを行うようにした構成は、例えば、特許文献3に記載されている。
上述したように従来のレジスタリネーミングの手法は、命令の発行レートを向上することによって演算処理性能を高める手法として広く用いられているものの、ベクトル計算機にはそのままでは適用できない、という問題点を有する。特許文献3に記載されたようにリソース間で値の引渡しを行えるような構成を採用する場合には、ハードウェア構成が複雑になる、という問題点がある。
As described above, the conventional register renaming technique is widely used as a technique for improving the arithmetic processing performance by improving the instruction issue rate, but has a problem that it cannot be applied to a vector computer as it is. . When adopting a configuration in which a value can be transferred between resources as described in
そこで本発明の目的は、単純なハードウェアを用い、ベクトル型計算機においてマスク演算動作とレジスタリネーミングを同時に実現することが可能な、ベクトルリネーミング方式と、このようなベクトルリネーミング方式を採用したベクトル型計算機とを提供することにある。 Therefore, an object of the present invention is to adopt a vector renaming method and a vector renaming method that can simultaneously realize mask operation and register renaming in a vector computer using simple hardware. It is to provide a vector type computer.
本発明のベクトルリネーミング方式は、ベクトル計算機においてマスク演算機能を実現したままレジスタリネーミングを可能にするベクトルリネーミング方式であって、論理ベクトルレジスタに対応するとともに相互に組をなす複数のリネーミングレジスタを備え、各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルと、セルごとに設けられたセレクタとを有し、セレクタは、ライトデータか組内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、マスクが設定されている場合にはセル間でセルの値をコピーし、マスクが設定されていないときにはライトデータをいずれかのセルに書き込むようにしたものである。 Baie transfected Ruri naming scheme of the present invention is a vector renaming scheme that enables left register renaming to achieve a mask operation function in vector computer, a plurality of forming a pair with each other while corresponding to the logical vector register Each renaming register has a cell that holds 1-bit data and a selector provided for each cell, and the selector holds the write data or other cells in the set . The value is supplied to the corresponding cell according to the mask signal. When the mask is set, the cell value is copied between the cells. When the mask is not set, the write data is written to any cell. It is what I did.
本発明のベクトル型計算機は、レジスタリネーミングを制御する制御手段と、論理ベクトルレジスタに対応するとともに相互に組をなす複数のリネーミングレジスタと、演算器と、制御手段によって制御されて複数のリネーミングレジスタのうちの1つの出力を演算器に供給する第1のセレクタと、演算器の演算結果を入力して複数のリネーミングレジスタのいずれかに格納する書き込み制御手段と、を備え、各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルと、セルごとに設けられた第2のセレクタとを有し、第2のセレクタは、書き込み制御手段からのライトデータか組内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、マスクが設定されている場合にはセル間でセルの値をコピーし、マスクが設定されていないときにはライトデータをいずれかのセルに書き込むようにしたものである。 Vector type computer of the present invention includes a control unit for controlling the register renaming, a plurality of renaming register constituting a pair mutually with corresponding logical vector registers, and the arithmetic unit is controlled by the control means more A first selector that supplies an output of one of the renaming registers to the arithmetic unit, and a write control unit that inputs an operation result of the arithmetic unit and stores it in any of the plurality of renaming registers, Each renaming register has a cell that holds 1-bit data, and a second selector provided for each cell. The second selector can select either write data from the write control means or other data in the set . Is supplied to the corresponding cell according to the mask signal, and if the mask is set, the cell value is copied between cells and When the but not set is obtained so as to write the write data into one of the cells.
本発明は、論理ベクトルレジスタにマッピングされる複数のリネーミングレジスタにおいて、これらのリネーミングレジスタを結合することによってマスク演算に必要な値のコピーを行えるようにすることにより、単純なセル構成によって、マスク演算を実現したままレジスタリネーミングを実現をできるという効果がある。特に本発明は、大掛かりなハードウェアを必要とせずにマスク演算とレジスタリネーミングとを両立させているので、低コストで、ベクトル命令の発行レートを大幅に向上させることができる。 The present invention allows a plurality of renaming registers mapped to a logical vector register to copy values necessary for mask operation by combining these renaming registers, thereby enabling a simple cell configuration. There is an effect that register renaming can be realized while the mask operation is realized. In particular, according to the present invention, since the mask operation and the register renaming are made compatible without requiring a large-scale hardware, the issue rate of vector instructions can be greatly improved at low cost.
次に、本発明の好ましい実施の形態について、図面を参照して説明する。図1は本発明の実施の一形態のベクトルリネームミング方式で用いられるセルセット(セルの組)の構成を示している。 Next, a preferred embodiment of the present invention will be described with reference to the drawings. FIG. 1 shows the configuration of a cell set (cell set) used in the vector renaming method according to the embodiment of the present invention.
図1に示すセルセットは、それぞれ1ビットのRAM(ランダムアクセスメモリ)セルC0,C1を備えており、それぞれのビットは、同一論理レジスタにマップされる2つの物理レジスタに対応している。ここでは、1つの論理ベクトルレジスタが2つの物理ベクトルレジスタのいずれかにリネーミングされるものとして、2ビット分のセルを有するが、実際には、リネーミングの形態に応じて、3個以上のセルを用いて1つのセルセットを構成してもよい。 The cell set shown in FIG. 1 includes 1-bit RAM (Random Access Memory) cells C0 and C1, and each bit corresponds to two physical registers mapped to the same logical register. Here, one logical vector register is renamed to one of two physical vector registers, and has cells for 2 bits. However, actually, three or more cells are used depending on the form of renaming. One cell set may be configured using cells.
これらのセルは、ハードウェア上に近接してレイアウトされることが望ましい。このようにセルが集まった単位をセルセットと読んでいる。 These cells are preferably laid out in close proximity on the hardware. A unit in which cells are gathered in this way is read as a cell set.
各セルC0,C1に対してデータを書き込む経路には、それぞれ、セレクタS0,S1が設けられている。セルに対するライトデータWDがセルセットに入力しており、このデータWDは、セルC0,C1のいずれかあるいは両方に対して書き込みを行う際の入力データとなる。セレクタS0には、セルC1の出力RD1も接続し、セレクタS1にはセルC0の出力RD0も接続する。結局、セレクタS0,S1を介して、セルC0,C1がたすきがけとなるように接続していることになる。セレクタS0,S1には、マスク信号MASKが与えられている。マスク信号MASKがアクティブ(“1”)であれば、セレクタS0,S1は、セルC0,C1に対してそれぞれ書込データとして、相手側セルの出力(セルC1,C0の出力)を供給し、MASK信号がアクティブでなければ(すなわち“0”であれば)、ライドデータWDを供給する。各セルC0,C1からは、それぞれ、リードデータRD0,RD1が読み出される。なお、ベクトル計算機における各演算器(後述するFMAC70,73、FDV71,74、FLOGIC72,75)に対してリードRD0,RD1のどちらが供給されるかは、リソース管理部4からの選択信号42によって制御される後述するセレクタ80によって選択される。セレクタは、対をなして設けられた物理ベクトルレジスタから、論理レジスタにマップされるものを選択してその出力を各演算器に供給するために設けられている。
Selectors S0 and S1 are provided in the paths for writing data to the cells C0 and C1, respectively. Write data WD for the cell is input to the cell set, and this data WD becomes input data when writing to one or both of the cells C0 and C1. The output RD1 of the cell C1 is also connected to the selector S0, and the output RD0 of the cell C0 is also connected to the selector S1. Eventually, the cells C0 and C1 are connected through the selectors S0 and S1 so as to be opened. The selectors S0 and S1 are supplied with a mask signal MASK. If the mask signal MASK is active (“1”), the selectors S0 and S1 supply the outputs of the counterpart cell (the outputs of the cells C1 and C0) as write data to the cells C0 and C1, respectively. If the MASK signal is not active (ie, “0”), the ride data WD is supplied. Read data RD0 and RD1 are read from the cells C0 and C1, respectively. Note that the
各セルC0,C1に対しては、それぞれ、ライトイネーブル信号WE0,WE1が与えられている。WE0はC0に対するライトイネーブルであり、この信号がアクティブであれば、そのときセレクタC0で選択されている信号がセルC0に書き込まれる。すなわち、WE0がアクティブであれば、セルC0に対して、データWDあるいはセルC1の出力値が書き込まれる。例えば、マスク信号MASKが“1”のときに信号WE0がアクティブ(“1”)になると、セルC0にはセルC1の内容が書き込まれる、すなわち値がコピーされる。信号MASKが“0”の時に信号WE0がアクティブになると、セルC0にはライトデータWDの値が書き込まれる。同様に、信号WE1はセルC1に対するライトイネーブル信号であり、この信号WE1がアクティブになると、セルC1に対して、データWDあるいはセルC0の出力値が書き込まれる。 Write enable signals WE0 and WE1 are supplied to the cells C0 and C1, respectively. WE0 is a write enable for C0. If this signal is active, the signal selected by the selector C0 is written to the cell C0. That is, if WE0 is active, data WD or the output value of cell C1 is written into cell C0. For example, when the signal WE0 becomes active (“1”) when the mask signal MASK is “1”, the contents of the cell C1 are written into the cell C0, that is, the value is copied. When the signal WE0 becomes active when the signal MASK is “0”, the value of the write data WD is written in the cell C0. Similarly, the signal WE1 is a write enable signal for the cell C1, and when this signal WE1 becomes active, the output value of the data WD or the cell C0 is written into the cell C1.
結局、このセルセットでは、マスク信号(マスクビット)MASKを指定することで、書き込みデータを外部からのライトデータWD、あるいはセルセット内部の自セルの反対側のセル(自セルがセルC0であればセルC1側)のデータを切り替えて書き込むことが可能である。 After all, in this cell set, by designating the mask signal (mask bit) MASK, the write data is written from the outside or the cell on the opposite side of the own cell in the cell set (if the own cell is the cell C0). For example, data on the cell C1 side) can be switched and written.
ベクトル計算機には、演算要素ごとに演算の可否を指定できる演算マスク機能が存在し、マスクされた要素に対して値を変化させない命令であるベクトルマスク対象命令が存在する。そのため、ベクトル計算機におけるリネーミング機構では、マスクされた「変化しない」データを考慮することが必要である。論理レジスタVR0に物理レジスタVRR100,VRR108が対応する場合、論理ベクトルレジスタVR0と物理ベクトルレジスタVRR100,VRR108のうちの対応する要素との間には、情報の受け渡しパスが必要となる。 A vector computer has an operation mask function that can specify whether or not an operation can be performed for each operation element, and a vector mask target instruction that is an instruction that does not change the value of the masked element. Therefore, the renaming mechanism in the vector computer needs to consider the masked “no change” data. When the physical registers VRR100 and VRR108 correspond to the logical register VR0, an information passing path is required between the logical vector register VR0 and the corresponding elements of the physical vector registers VRR100 and VRR108.
本実施形態のセルセットを用いることにより、セルセット内のVRR(物理ベクトルレジスタ)セルのいずれかに元のデータが入っていれば、その値を反対側にあるセルの更新時に受け継ぐことが可能となり、リネーミング動作とマスク動作を両立されることが可能となる。本実施形態では、このようなセルセットが、論理ベクトルレジスタのサイズだけ存在することになる。たとえば、64ビット構成で256エントリのベクトルレジスタを論理的に8本持つアーキテクチャでは、上述したセルセットを64×256×8=131,072個用意することになる。各セルセットが2セルから構成されているとすれば、262,144個の物理セルが存在することになる。 By using the cell set of this embodiment, if the original data is contained in any of the VRR (physical vector register) cells in the cell set, the value can be inherited when the cell on the opposite side is updated. Thus, both the renaming operation and the mask operation can be achieved. In the present embodiment, such a cell set exists for the size of the logical vector register. For example, in an architecture having a 64-bit configuration and eight logically 256 vector registers, 64 × 256 × 8 = 131,072 cell sets described above are prepared. If each cell set is composed of two cells, there will be 262,144 physical cells.
図2は、上述したセルセットを用いることによってレジスタリネーミングを実行するベクトル計算機の構成の一例を示している。このベクトル計算機は、一般的な命令キャッシュなどを含む命令供給部1と、命令供給部1からの命令をデコードするデコーダ2と、デコードされた命令の発行制御を行う発行制御部3と、発行制御部3で発行された命令が用いるリソースの管理を行うリソース管理部4と、を備えている。リソース管理部4は、発行制御部3が発行する命令について、特にレジスタリネーミング機能のために論理ベクトルレジスタ番号と物理ベクトルレジスタ番号の対応テーブル41を用意する。図3は、対応テーブル41の内容の一例を示している。
FIG. 2 shows an example of the configuration of a vector computer that performs register renaming by using the above-described cell set. This vector computer includes an
ここでVRR10は、ベクトルリネーミングレジスタであり、論理的にベクトルレジスタVR0〜VR7を構成する場合の実体のレジスタ群であり、物理ベクトルレジスタVRR100〜VRR115の16個から構成される。各物理ベクトルレジスタは、64ビット幅を持つデータレジスタを256エントリ備える。ベクトルリネーミングレジスタVRR10には、発行制御部3から制御信号31が供給されている。
Here, the
なお、論理レジスタVR0の物理的な値は、物理ベクトルレジスタVRR100あるいは物理ベクトルレジスタVRR108のいずれかに格納される。同様に論理レジスタVR1の物理的な値は物理ベクトルレジスタVRR101あるいは物理ベクトルレジスタVRR109のいずれかに格納され、以下同様に、論理レジスタと物理ベクトルレジスタの対応付けがなされる。 The physical value of the logical register VR0 is stored in either the physical vector register VRR100 or the physical vector register VRR108. Similarly, the physical value of the logical register VR1 is stored in either the physical vector register VRR101 or the physical vector register VRR109. Similarly, the logical register and the physical vector register are associated with each other.
ベクトル計算機には、加算及び乗算を行うFMAC(演算器)70,FMAC73と、除算を行うFDV(除算器)71,FDV74と、論理演算を行うFLOGIC(論理演算器)72,FLOGIC75が設けられ、また、それぞれの計算結果が送られてくるデータ書き込み制御部9が設けられている。データ書き込み制御部9は、論理ベクトルレジスタ番号と、割り当てられた物理ベクトルレジスタ番号(すなわちVRR100〜VRR115)の対応付け、およびマスク情報から、ベクトルリネーミングレジスタVRR10の適当な場所に、計算結果として得られたデータ、あるいは物理べクトルレジスタVRR100〜115に既に書き込まれているデータを書き込む。
The vector computer is provided with FMAC (arithmetic unit) 70 and
なお、対をなす物理ベクトルレジスタの出力のいずれか一方を選択するためにセレクタ80が設けられており、セレクタ80で選択された物理ベクトルレジスタから読出されたベクトルデータが、FMAC70,FDV71,FLOGIC(論理演算器)72,FMAC73,FDV74,FLOGIC75に供給される。セレクタ80はリソース管理部4からの選択信号42によって制御される。例えば、物理ベクトルレジスタVRR100および物理ベクトルレジスタVRR108の一方がセレクタ80によって選択されるようになっている。
Note that a
さらにこのベクトル計算機には、LSユニット5と、外部記憶メモリ6とが設けられている。LSユニット6は、物理ベクトルレジスタVRR100〜115からのデータを外部記憶メモリ6にストアする動作、また外部記憶メモリ6からデータをロードして物理ベクトルレジスタVRR100〜115のいずれかに書き込む動作を管理する。
Further, the vector computer is provided with an
次に、このベクトル計算機におけるレジスタリネーミングの動作について説明する。 Next, the register renaming operation in this vector computer will be described.
以下の説明において、「ベクトル」とは、複数の要素データを内在するデータ列を意味する。ここではベクトルは、最大256個の64ビット要素データを持つこととする。以下では、図4に示す命令列を実行するものとした場合の処理を説明する。図4に示す命令列において、「VADD」はオペランドで指定した2つの論理ベクトルレジスタに格納されたベクトルデータ同士の要素ごとの加算を行い、結果をディスティネーションベクトルレジスタに格納する命令である。 In the following description, “vector” means a data string containing a plurality of element data. Here, it is assumed that the vector has a maximum of 256 64-bit element data. Hereinafter, processing when the instruction sequence shown in FIG. 4 is executed will be described. In the instruction sequence shown in FIG. 4, “VADD” is an instruction for performing addition for each element of vector data stored in two logical vector registers specified by operands and storing the result in the destination vector register.
「VSUB」は、オペランドで指定した2つの論理ベクトルレジスタに格納されたベクトルデータ同士の要素ごとの減算を行い、結果をディスティネーションベクトルレジスタに格納する命令である。 “VSUB” is an instruction that performs subtraction for each element between the vector data stored in the two logical vector registers specified by the operand, and stores the result in the destination vector register.
ここで、VADD命令およびVSUB命令は、いずれも、演算を行わない要素を選択的に指定すること(すなわちマスクをかける)が可能である。VFMK命令は、ベクトルのマスクを変更する命令である。ベクトル演算を実際に行う要素数(VL;ベクトル長)は、ソフトウエアによって0〜256の間で変化させることが可能である。LVL命令は、演算対象のベクトル要素数を変更する命令である。たとえばLVL命令でVLを10と指定すると、ベクトル演算はベクトルレジスタに含まれる要素のうち、先頭から10要素だけに対して行われる。 Here, in both the VADD instruction and the VSUB instruction, it is possible to selectively specify (that is, apply a mask) an element on which an operation is not performed. The VFMK instruction is an instruction for changing a vector mask. The number of elements (VL; vector length) in which the vector operation is actually performed can be changed between 0 and 256 by software. The LVL instruction is an instruction for changing the number of vector elements to be calculated. For example, when VL is specified as 10 by the LVL instruction, vector operation is performed on only 10 elements from the top among the elements included in the vector register.
まず、図4に示した命令群において、1行目の命令LVLが命令供給部1から供給され、デコーダ2でデコードされ、発行制御部3においてLVL命令が発行され、ベクトル長VLが4にセットされる。LVL命令でVLとして4が指定されたことにより、以下では、ベクトル演算は、ベクトルレジスタに含まれている要素のうち最初の4要素に対して行われることになる。このLVL命令の終了時における、リソース管理部4内の対応テーブル41、マスク情報、VL、およびリネーミングレジスタ(物理ベクトルレジスタ)VRR100,VRR101,VRR102,VRR108の値を図5に示す。図5に示すように、VLに4という値がセットされている。なお、現時点では、論理ベクトルレジスタVR0に対する物理ベクトルレジスタとして、VRR100が割り振られている。これは、この時点での物理ベクトルレジスタVRR100の値が論理レジスタVR0の値になっているということを示している。
First, in the instruction group shown in FIG. 4, the instruction LVL in the first row is supplied from the
次に、図4に示す命令群のうち2行目の命令VFMKが命令供給部1から供給され、デコーダ2でデコードされる。発行制御部3においてLFMK命令が発行され、ベクトルマスクに“0101”がセットされる。オペランドを“0101”とするVFMK命令は、マスクが“1”になっている要素、すなわちこの場合は、第2の要素および第4の要素に対して演算を行わないようなマスクをかける命令である。
Next, the instruction VFMK in the second row in the instruction group shown in FIG. 4 is supplied from the
このVFMK命令の終了時における、リソース管理部4内の対応テーブル41、マスク情報、VL、およびリネーミングレジスタVRR100,VRR101,VRR102,VRR108の値を図6に示す。図6の通り、マスク情報に“0101”という値がセットされている。
FIG. 6 shows values of the correspondence table 41, mask information, VL, and renaming registers VRR100, VRR101, VRR102, and VRR108 in the
次に、3行目の命令VADDが命令供給部1から供給され、デコーダ2でデコードされる。図示した例では、この命令VADDは、論理ベクトルレジスタVR1,VR2に格納された値のベクトル加算を行って論理ベクトルレジスタVR0に格納するものである。
Next, the instruction VADD in the third row is supplied from the
発行制御部3においてVADD命令が発行される。その際、リソース管理部4は、このVADD命令の結果を書き込む論理レジスタVR0に対して、物理ベクトルレジスタVRR108側を割り当て、リソース管理部4内の対応情報を物理ベクトルレジスタVRR108に書き換える。VADD命令はFMAC70によって実行され、その計算結果は、データ書き込み制御部9に送られる。
The
なお、このVADD命令を実行させた結果を書き込む動作は、データ書き込み制御部9によって行われる。図7は、データ書き込み制御部9からの制御データを示している。データ書き込み制御部9からは、要素番号、書き込み物理ベクトルレジスタVRRのレジスタ名、計算結果であるライトデータWD、マスク情報MASKがリネーミングベクトルレジスタVRR10に送られる。そして、リネーミングベクトルレジスタVRR10内の対応するレジスタ、すなわち物理ベクトルレジスタVRR108内にあるセルセットにおいて、適切な書き込みが行われる。
The operation of writing the result of executing the VADD instruction is performed by the data write
たとえば、要素0の演算結果に関しては、マスク情報が“0”なので、計算結果である“12”が、ライトデータWDとして物理ベクトルレジスタVRR100側のセルに書き込まれる。図1に示したセルセットにおいて、セルC0側に物理ベクトルレジスタVRR100のデータ、セルC1側に物理ベクトルレジスタVR108のデータが書き込まれているとすると、ライトイネーブル信号WE1が“1”となり、かつMASK信号は“0”のままで、セルC1に対してライトデータWDである“12”が書き込まれる。
For example, regarding the operation result of
要素1の演算結果に関しては、マスク情報が“1”すなわちアクティブであるので、物理ベクトルレジスタVRR100側のデータである“1”が反対側の物理ベクトルレジスタVRR108側のセルに書き込まれる。図1のセルセットにおいては、セルC0側に物理ベクトルレジスタVRR100側のデータ、セルC1側に物理ベクトルレジスタVR108側のデータが書き込まれているとすると、ライトイネーブル信号WE1が“1”となり、かつMASK信号は“1”となって、セルC1に、セルC0の格納値である“1”が書き込まれる。
Regarding the operation result of
このVADD命令の実行終了時における、リソース管理部4内の対応テーブル41、マスク情報、VL、およびリネーミングレジスタVRR100,VRR101,VRR102,VRR108の値を図8に示す。図8に示す通り、VADD命令の実行結果は、割り当てられた物理ベクトルレジスタVRR108に、マスク情報を反映した形で格納されている。
FIG. 8 shows values of the correspondence table 41, mask information, VL, and renaming registers VRR100, VRR101, VRR102, and VRR108 in the
最後に、4行目のVSUB命令が命令供給部1から供給され、デコーダ2でデコードされる。図示したものは、このVSUB命令は、論理ベクトルレジスタVR2の内容から論理ベクトルレジスタVR1の内容をベクトル減算し、論理ベクトルレジスタVR0に格納するものである。
Finally, the VSUB instruction in the fourth row is supplied from the
発行制御部3においてVSUB命令が発行される。その際、リソース管理部4は、このVSUB命令の結果を書き込む論理レジスタVR0に対して、物理ベクトルレジスタVRR100側を割り当て、リソース管理部4内の対応情報を物理ベクトルレジスタVRR100に書き換える。VSUB命令はFMAC70によって実行され、その計算結果は、データ書き込み制御部9に送られる。
The
前述のVADD命令の場合と同様に、このVSUB命令の実行結果の書き込み動作は、データ書き込み制御部9によって行われる。図9は、データ書き込み制御部9からの制御データを示している。物理ベクトルレジスタVRR100内の対応するレジスタ、すなわち物理ベクトルレジスタVRR100内にあるセルセットにおいて、適切な書き込みが行われる。
As in the case of the VADD instruction described above, the write operation of the execution result of this VSUB instruction is performed by the data write
たとえば、要素0の演算結果に関しては、マスク情報が“0”であるので、計算結果である“4”が、ライトデータWDとして物理ベクトルレジスタVRR100側のセルに書き込まれる。図1のセルセットにおいては、セルC0側にV物理ベクトルレジスタRR100側のデータ、セルC1側に物理ベクトルレジスタVRR108側のデータが書き込まれているとすると、ライトイーネーブル信号WE0が“1”となり、かつMASK信号は“0”のままで、セルC0に、ライトデータWDである“12”が書き込まれる。
For example, for the operation result of
要素1の演算結果に関しては、マスク情報が“1”であるので、物理ベクトルレジスタVRR100側のデータである“1”が物理ベクトルレジスタVRR108側のセルに書き込まれる。図1のセルセットにおいては、セルC0側に物理ベクトルレジスタVRR100のデータ、セルC1側に物理ベクトルレジスタVR108側のデータが書き込まれているとすると、ライトイネーブル信号WE0が“1”となり、かつMASK信号は“1”となって、セルC0には、セルC1の格納値である“1”が書き込まれる。
Regarding the operation result of
このVSUB命令の終了時における、リソース管理部4内の対応テーブル41、マスク情報、VL、およびリネーミングレジスタVRR100,VRR101,VRR102,VRR108の値を図10に示す。図10に示す通り、VSUB命令の実行結果は、割り当てられた物理ベクトルレジスタVRR100に、マスク情報を反映した形で格納されている。
FIG. 10 shows the correspondence table 41 in the
このようにして、本実施形態によれば、ベクトル計算機においてマスク演算が行われていたとしても、リネームされたベクトルレジスタ側にも正常な結果が書き込まれることが保障できる。 In this way, according to the present embodiment, even if a mask operation is performed in the vector computer, it can be ensured that a normal result is written also to the renamed vector register side.
なお、上述では一つ一つの命令が非パイプライン的に動作した例を説明したが、当然のことながら、各命令はパイプライン的に動作し、それぞれの命令動作の一部が互いにオーバーラップしてもよい。 In the above description, an example in which each instruction operates in a non-pipeline is described. However, as a matter of course, each instruction operates in a pipeline, and a part of each instruction operation overlaps each other. May be.
1 命令供給部
2 デコーダ
3 発行制御部
4 リソース管理部
5 LSユニット
6 外部記憶メモリ
9 データ書き込み制御部
31 制御信号
41 対応テーブル
42 選択信号
80,S0,S1 セレクタ
70,73 FMAC(演算器)
71,74 FDV(除算器)
72,75 FLOGIC(論理演算器)
C0,C1 セル
VR 論理レジスタ
VRR 物理ベクトルレジスタ
DESCRIPTION OF
71,74 FDV (divider)
72,75 FLOGIC (logic operator)
C0, C1 cell VR logical register VRR physical vector register
Claims (3)
論理ベクトルレジスタに対応するとともに相互に組をなす複数のリネーミングレジスタを備え、
前記各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルと、セルごとに設けられたセレクタとを有し、
前記セレクタは、ライトデータか前記組内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、
マスクが設定されている場合には前記セル間でセルの値をコピーし、前記マスクが設定されていないときには前記ライトデータをいずれかのセルに書き込むようにした、ベクトルリネーミング方式。 A vector renaming method that enables register renaming while realizing a mask operation function in a vector computer,
Comprising a plurality of renaming register constituting a pair mutually with corresponding logical vector register,
Each of the renaming registers includes a cell that holds 1-bit data, and a selector provided for each cell.
The selector supplies write data or a value held by another cell in the set to a corresponding cell according to a mask signal,
A vector renaming method in which a cell value is copied between the cells when a mask is set, and the write data is written to any cell when the mask is not set.
レジスタリネーミングを制御する制御手段と、
論理ベクトルレジスタに対応するとともに相互に組をなす複数のリネーミングレジスタと、
演算器と、
前記制御手段によって制御されて前記複数のリネーミングレジスタのうちの1つの出力を前記演算器に供給する第1のセレクタと、
前記演算器の演算結果を入力して前記複数のリネーミングレジスタのいずれかに格納する書き込み制御手段と、
を備え、
前記各リネーミングレジスタは、それぞれ1ビットのデータを保持するセルと、セルごとに設けられた第2のセレクタとを有し、
前記第2のセレクタは、前記書き込み制御手段からのライトデータか前記組内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、
マスクが設定されている場合には前記セル間でセルの値をコピーし、前記マスクが設定されていないときには前記ライトデータをいずれかのセルに書き込むようにした、ベクトル型計算機。 A vector calculator,
Control means for controlling register renaming;
A plurality of renaming register constituting a pair mutually with corresponding logical vector register,
An arithmetic unit;
A first selector which is controlled by the control means and supplies an output of one of the plurality of renaming registers to the computing unit;
Write control means for inputting a calculation result of the calculator and storing it in any of the plurality of renaming registers;
With
Each of the renaming registers includes a cell that holds 1-bit data, and a second selector provided for each cell,
The second selector supplies write data from the write control means or a value held by another cell in the set to a corresponding cell according to a mask signal,
A vector calculator that copies a cell value between the cells when a mask is set, and writes the write data to any cell when the mask is not set.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006169010A JP5145659B2 (en) | 2006-06-19 | 2006-06-19 | Vector renaming method and vector computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006169010A JP5145659B2 (en) | 2006-06-19 | 2006-06-19 | Vector renaming method and vector computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007334819A JP2007334819A (en) | 2007-12-27 |
JP5145659B2 true JP5145659B2 (en) | 2013-02-20 |
Family
ID=38934210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006169010A Active JP5145659B2 (en) | 2006-06-19 | 2006-06-19 | Vector renaming method and vector computer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5145659B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010205088A (en) * | 2009-03-04 | 2010-09-16 | Nec Computertechno Ltd | Vector processing apparatus and vector processing method |
JP6020428B2 (en) * | 2013-12-02 | 2016-11-02 | 日本電気株式会社 | Vector register renaming control method, vector processor, and vector register renaming control method |
JP6705473B2 (en) * | 2018-06-22 | 2020-06-03 | 日本電気株式会社 | Arithmetic device and arithmetic system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01284970A (en) * | 1988-05-11 | 1989-11-16 | Nec Corp | Iteration arithmetic circuit |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
-
2006
- 2006-06-19 JP JP2006169010A patent/JP5145659B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2007334819A (en) | 2007-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4829541B2 (en) | Digital data processing apparatus with multi-level register file | |
JP2004234642A (en) | Layout of integrated structure for instruction execution unit | |
JPH09311786A (en) | Data processor | |
JP2006509306A (en) | Cell engine for cross-referencing data processing systems to related applications | |
CN107851013B (en) | Data processing apparatus and method | |
JP5145659B2 (en) | Vector renaming method and vector computer | |
KR102458467B1 (en) | vector creation command | |
US9690600B2 (en) | Reconfigurable processor and method of operating the same | |
US7143268B2 (en) | Circuit and method for instruction compression and dispersal in wide-issue processors | |
EP1220100B1 (en) | Circuit and method for hardware-assisted software flushing of data and instruction caches | |
EP1220089B1 (en) | Method for executing conditional branch instructions in a data processor and corresponding data processor | |
CN101727435A (en) | Very-long instruction word processor | |
JP6891596B2 (en) | Processor | |
JP4444305B2 (en) | Semiconductor device | |
JP4868255B2 (en) | Processor, processor control method, and information processing apparatus | |
JP6020428B2 (en) | Vector register renaming control method, vector processor, and vector register renaming control method | |
JP5327432B2 (en) | Signal processor and semiconductor device | |
US5812845A (en) | Method for generating an object code for a pipeline computer process to reduce swapping instruction set | |
JP5229321B2 (en) | Arithmetic processing unit | |
JP2006506727A (en) | VLIW with copy register file | |
JP5644571B2 (en) | Processor | |
JP4703735B2 (en) | Compiler, code generation method, code generation program | |
JP5311008B2 (en) | Signal processor and semiconductor device | |
JPH033047A (en) | Memory with arithmetic function | |
JPH07105017A (en) | Register renaming device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090415 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120424 |
|
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: 20121030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121112 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5145659 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: 20151207 Year of fee payment: 3 |