JP3341662B2 - Information processing device and multi-port register file - Google Patents

Information processing device and multi-port register file

Info

Publication number
JP3341662B2
JP3341662B2 JP34114297A JP34114297A JP3341662B2 JP 3341662 B2 JP3341662 B2 JP 3341662B2 JP 34114297 A JP34114297 A JP 34114297A JP 34114297 A JP34114297 A JP 34114297A JP 3341662 B2 JP3341662 B2 JP 3341662B2
Authority
JP
Japan
Prior art keywords
memory cell
port
instruction
functional unit
register
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
JP34114297A
Other languages
Japanese (ja)
Other versions
JPH11175394A (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 Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP34114297A priority Critical patent/JP3341662B2/en
Publication of JPH11175394A publication Critical patent/JPH11175394A/en
Application granted granted Critical
Publication of JP3341662B2 publication Critical patent/JP3341662B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、複数の機能ユニッ
トを有する情報処理装置及びこのような情報処理装置で
用いられる多ポートレジスタファイルに関する。
The present invention relates to an information processing apparatus having a plurality of functional units and a multi-port register file used in such an information processing apparatus.

【0002】[0002]

【従来の技術】近年、スーパスカラ技術などの並列処理
に処理によってマイクロプロセッサの高性能化が進んで
いる。このスーパスカラ技術が適用されている情報処理
装置は、複数の機能ユニットによって複数命令を並列し
て実行するものであり、該複数の機能ユニット間でのデ
ータの転送のために多ポートレジスタファイルが使用さ
れている。
2. Description of the Related Art In recent years, the performance of microprocessors has been improved by parallel processing such as superscalar technology. An information processing apparatus to which this superscalar technology is applied executes a plurality of instructions in parallel by a plurality of functional units, and uses a multi-port register file for data transfer between the plurality of functional units. Have been.

【0003】図13は、従来のこのような情報処理装置
の第1の例を示す図である。この情報処理装置において
は、デコーダ105がワード線106をアクティブにし
てトランジスタ114をオンすることによって、多ポー
トレジスタファイル101のメモリセル102内のデー
タがビット線110を介して機能ユニット103に読み
出される。また、デコーダ105がワード線107をア
クティブにしてトランジスタ115をオンすることによ
って、メモリセル102内のデータがビット線111を
介して機能ユニット104に読み出される。また、デコ
ーダ105がワード線108をアクティブにしてトラン
ジスタ116をオンすることによって、機能ユニット1
03からビット線112を介してメモリセル102にデ
ータが書き込まれる。また、デコーダ105がワード線
109をアクティブにしてトランジスタ117をオンす
ることによって、機能ユニット104からビット線11
3を介してメモリセル102にデータが書き込まれる。
すなわち、この情報処理装置で使用されている多ポート
レジスタファイル101は、読み出しポートと書き込み
ポートを2つずつ保有するものとなる。
FIG. 13 is a diagram showing a first example of such a conventional information processing apparatus. In this information processing apparatus, when the decoder 105 activates the word line 106 and turns on the transistor 114, data in the memory cell 102 of the multi-port register file 101 is read out to the functional unit 103 via the bit line 110. . When the decoder 105 activates the word line 107 to turn on the transistor 115, data in the memory cell 102 is read out to the functional unit 104 via the bit line 111. When the decoder 105 activates the word line 108 to turn on the transistor 116, the functional unit 1
From 03, data is written to the memory cell 102 via the bit line 112. When the decoder 105 activates the word line 109 to turn on the transistor 117, the functional unit 104 causes the bit line 11
3, data is written to the memory cell 102.
That is, the multi-port register file 101 used in this information processing apparatus has two read ports and two write ports.

【0004】図14は、従来の情報処理装置の第2の例
を示す図である。この情報処理装置の多ポートレジスタ
ファイル201内には複数のメモリセルブロック20
2、203が設けられ、ワード線216、219は、デ
コーダ206、207によって同時にアクティブにな
り、トランジスタ222、225をオンする。これによ
り、機能ユニット208からビット線210、213を
介してメモリセル204、205の双方にデータが書き
込まれる。同様に、ワード線217、220は、デコー
ダ206、207によって同時にアクティブになり、ト
ランジスタ223、226をオンする。これにより、機
能ユニット209からビット線211、214を介して
メモリセル204、205の双方にデータが書き込まれ
る。一方、機能ユニット208がデータの読み出しを行
うときに、デコーダ206によってワード線218がア
クティブにされ、これによりオンされたトランジスタ2
24、ビット線212を介して機能ユニット208にメ
モリセル204内のデータが読み出される。また、機能
ユニット209がデータの読み出しを行うときに、デコ
ーダ207によってワード線221がアクティブにさ
れ、これによりオンされたトランジスタ227、ビット
線215を介して機能ユニット209にメモリセル20
5内のデータが読み出される。すなわち、この多ポート
レジスタファイル201は、読み出しポートを1つにし
てもメモリセルを2つ設けることによって、機能ユニッ
ト208、209による並列処理を可能とするものであ
る。
FIG. 14 is a diagram showing a second example of a conventional information processing apparatus. A plurality of memory cell blocks 20 are stored in the multi-port register file 201 of this information processing apparatus.
2, 203 are provided, and the word lines 216, 219 are simultaneously activated by the decoders 206, 207 to turn on the transistors 222, 225. As a result, data is written from the functional unit 208 to both the memory cells 204 and 205 via the bit lines 210 and 213. Similarly, word lines 217, 220 are simultaneously activated by decoders 206, 207, turning on transistors 223, 226. As a result, data is written from the functional unit 209 to both the memory cells 204 and 205 via the bit lines 211 and 214. On the other hand, when the functional unit 208 reads data, the word line 218 is activated by the decoder 206, and the transistor 2
24. Data in the memory cell 204 is read out to the functional unit 208 via the bit line 212. Further, when the functional unit 209 reads data, the word line 221 is activated by the decoder 207, and the memory cell 20 is transferred to the functional unit 209 via the transistor 227 and the bit line 215 which are turned on.
The data in 5 is read. That is, this multi-port register file 201 enables parallel processing by the functional units 208 and 209 by providing two memory cells even with one read port.

【0005】図15は、従来例の情報処理装置の第3の
例を示す図である。この情報処理装置では、整数演算用
レジスタファイル301と浮動小数点演算用レジスタフ
ァイル302とが設けられている。整数演算用ユニット
(IU)303は、読み出しポート305、306を介
して整数演算用レジスタファイル301からデータを読
み出し、書き込みポート309を介して演算結果を整数
演算用レジスタファイル301に書き込むことができ
る。また、浮動小数点演算用ユニット(FPU)302
は、読み出しポート307、308を介して浮動小数点
演算用レジスタファイル302からデータを読み出し、
書き込みポート310を介して演算結果を浮動小数点演
算用レジスタファイル302に書き込むことができる。
FIG. 15 is a diagram showing a third example of a conventional information processing apparatus. In this information processing apparatus, an integer operation register file 301 and a floating point operation register file 302 are provided. The integer operation unit (IU) 303 can read data from the integer operation register file 301 via the read ports 305 and 306 and write the operation result to the integer operation register file 301 via the write port 309. Also, a floating point arithmetic unit (FPU) 302
Reads data from the floating-point operation register file 302 through the read ports 307 and 308,
The operation result can be written to the floating-point operation register file 302 via the write port 310.

【0006】[0006]

【発明が解決しようとする課題】しかしながら、上記第
1の従来例では、多ポートレジスタファイル101に
は、機能ユニット103、104の数と少なくとも同数
の読み出しポートと書き込みポートが必要となる。そし
て、読み出しポートと書き込みポートに対応して、それ
ぞれワード線106〜109、ビット線110〜113
及びトランジスタ114〜117を設けなければならな
い。このため、多ポートレジスタファイル101の面積
が大きくなるという問題があった。
However, in the first conventional example, the multiport register file 101 requires at least the same number of read ports and write ports as the number of functional units 103 and 104. The word lines 106 to 109 and the bit lines 110 to 113 correspond to the read port and the write port, respectively.
And transistors 114 to 117 must be provided. Therefore, there is a problem that the area of the multi-port register file 101 becomes large.

【0007】また、上記第2の従来例では、同一のデー
タを書き込むために複数のメモリセル204、205
と、それぞれのメモリセルへの書き込みポート210、
211、213、214を設けなければならなかった。
このため、多ポートレジスタファイル201全体の面積
が大きくなると共に、消費電力が大きくなるという問題
があった。
In the second conventional example, a plurality of memory cells 204 and 205 are used to write the same data.
And a write port 210 to each memory cell,
211, 213, 214 had to be provided.
For this reason, there has been a problem that the area of the entire multi-port register file 201 increases and the power consumption increases.

【0008】また、上記第3の従来例では、浮動小数点
演算用ユニット304が整数演算用レジスタファイル3
01に格納されているデータを使用するためには、ま
ず、データ線311を介して整数演算用レジスタファイ
ル301から浮動小数点演算用レジスタファイル302
にデータを読み出さなければならないという問題があっ
た。同様に、整数演算用ユニット303が浮動小数点演
算用レジスタファイル302に格納されているデータを
使用するためには、まず、データ線311を介して浮動
小数点演算用レジスタファイル302から整数演算用レ
ジスタファイル301にデータを読み出さなければなら
ないという問題があった。これらの問題点はレジスタフ
ァイルのポート数を増大させるという欠点がある。
In the third conventional example, the floating-point operation unit 304 includes the integer operation register file 3.
01 to use the data stored in the floating-point operation register file 302 from the integer operation register file 301 via the data line 311.
There was a problem that data had to be read out. Similarly, in order for the integer operation unit 303 to use the data stored in the floating point operation register file 302, first, the integer operation register file 302 is transferred from the floating point operation register file 302 via the data line 311. There was a problem that data had to be read out to 301. These problems have the disadvantage of increasing the number of ports in the register file.

【0009】本発明は、上記従来例の問題点を解消する
ためになされたものであり、複数の機能ユニット間での
データ交換のために用いられる多ポートレジスタファイ
ルの面積を小さくした情報処理装置、及びこのような多
ポートレジスタファイルを提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems of the conventional example, and an information processing apparatus having a reduced area of a multi-port register file used for data exchange between a plurality of functional units. , And such a multi-port register file.

【0010】[0010]

【課題を解決するための手段】上記目的を達成するた
め、本発明の第1の観点にかかる情報処理装置は、同時
に複数の命令をデコードすることが可能なデコーダと、
前記デコーダで同時にデコードされた複数の命令をそれ
ぞれで同時に実行することが可能な複数の機能ユニット
と、それぞれ少なくとも1つのメモリセルから構成され
る複数のメモリセルブロックを有し、前記メモリセルに
書き込まれたデータを前記複数の機能ユニットのそれぞ
れに読み出すための複数の読み出しポートが、前記複数
のメモリセルブロック毎に前記複数の機能ユニットのそ
れぞれに対応して設けられ、前記メモリセルにデータを
書き込むための複数の書き込みポートが前記メモリセル
ブロック毎に前記複数の機能ユニットの一部に対応して
設けられている多ポートレジスタファイルと、を備える
ことを特徴とする。
To achieve the above object, an information processing apparatus according to a first aspect of the present invention comprises a decoder capable of decoding a plurality of instructions at the same time;
A plurality of functional units capable of simultaneously executing a plurality of instructions simultaneously decoded by the decoder; and a plurality of memory cell blocks each including at least one memory cell, and written in the memory cells. A plurality of read ports for reading the read data to each of the plurality of functional units are provided corresponding to each of the plurality of functional units for each of the plurality of memory cell blocks, and write data to the memory cells. And a multi-port register file provided corresponding to a part of the plurality of functional units for each of the memory cell blocks.

【0011】すなわち、上記情報処理装置において、前
記複数の機能ユニットはそれぞれ、該機能ユニットに対
応して設けられている書き込みポートを介して、前記複
数のメモリブロックのうちの一部のメモリブロック内の
メモリセルにデータを書き込むことができるものとする
ものである。
That is, in the above information processing apparatus, each of the plurality of functional units is provided in a part of the plurality of memory blocks via a write port provided corresponding to the functional unit. Data can be written into the memory cells of

【0012】上記情報処理装置では、前記複数の機能ユ
ニットのそれぞれがデータを書き込めるメモリセルブロ
ックが制限されていても、読み出しは任意のメモリセル
ブロックから行うことができるので、前記複数の機能ユ
ニットが前記多ポートレジスタファイルのメモリセルブ
ロックのすべてに接続されていなくても、前記複数の機
能ユニットによる並列処理が可能となる。このため、前
記多ポートレジスタファイルに設ける書き込みポートの
数を少なく抑えることができ、しかも多ポートレジスタ
ファイル内に同一のデータを書き込むためのメモリセル
を複数設ける必要がない。従って、前記多ポートレジス
タファイル全体での面積を小さくすることができる。
In the above information processing apparatus, even if the memory cell blocks to which data can be written in each of the plurality of functional units are limited, reading can be performed from an arbitrary memory cell block. Even if not connected to all of the memory cell blocks of the multiport register file, parallel processing by the plurality of functional units becomes possible. Therefore, the number of write ports provided in the multi-port register file can be reduced, and there is no need to provide a plurality of memory cells for writing the same data in the multi-port register file. Therefore, the area of the entire multi-port register file can be reduced.

【0013】上記情報処理装置において、前記複数の命
令は、それぞれ前記複数のメモリセルブロック内のどの
メモリセルを使用し、前記複数の機能ユニットのいずれ
で実行されるかがソフトウェアによって決定されている
ものとしてもよい。
In the above information processing apparatus, it is determined by software which of the plurality of instructions uses which memory cell in the plurality of memory cell blocks and which of the plurality of functional units executes. It may be a thing.

【0014】なお、このように上記複数の命令がそれぞ
れ前記複数のメモリセルブロック内のどのメモリセルを
使用し、前記複数の機能ユニットのいずれで実行される
かを決定するソフトウェアは、例えば、コンパイラの機
能の一部として設けても、専用のソフトウェアによって
もよい。
The software for determining which of the plurality of instructions uses which memory cell in each of the plurality of memory cell blocks and which of the plurality of functional units is used is, for example, a compiler. Or a dedicated software.

【0015】この場合、上記情報処理装置は、前記ソフ
トウェアによって決定された使用されるべきメモリセル
を命令の実行時に変更し、このメモリセルブロックの変
更に応じて前記ソフトウェアによって決定された該命令
を実行すべき機能ユニットを変更する変更手段をさらに
備えるものとすることができる。
In this case, the information processing apparatus changes a memory cell to be used determined by the software at the time of execution of the instruction, and changes the instruction determined by the software according to the change of the memory cell block. The information processing apparatus may further include changing means for changing a functional unit to be executed.

【0016】上記目的を達成するため、本発明の第2の
観点にかかる多ポートレジスタファイルは、少なくとも
1つのメモリセルで構成されるメモリセルブロックを複
数有し、読み出しポートと書き込みポートとを複数有す
多ポートレジスタファイルにおいて、前記読み出しポ
ートは、前記メモリセルブロック毎に複数の機能ユニッ
トすべてに対応して設けられ前記書き込みポートは、
前記メモリセルブロック毎に複数の機能ユニットの一部
に対応して設けられていることを特徴とする。前記メモ
リセルブロック内のすべてのメモリセルは、前記読み出
しポート或いは前記書き込みポートを介して、前記機能
ユニットに接続されていてもよい
To achieve the above object, a multi-port register file according to a second aspect of the present invention comprises at least
Multiple memory cell blocks consisting of one memory cell
Number and multiple read and write ports
In the multi-port register file that, the read port
A plurality of functional units are provided for each memory cell block.
The write port is provided corresponding to all
Part of a plurality of functional units for each of the memory cell blocks
It is characterized in that it is provided corresponding to . The note
All the memory cells in the recell block are
Via the write port or the write port
It may be connected to a unit .

【0017】[0017]

【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態について説明する。
Embodiments of the present invention will be described below with reference to the accompanying drawings.

【0018】[第1の実施の形態]図1は、この実施の
形態にかかる情報処理装置の構成を示すブロック図であ
る。図示するように、この情報処理装置は、命令キャッ
シュ11と、プリフェッチバッファ12と、デコーダ1
3と、多ポートレジスタファイル14と、機能ユニット
A15と、機能ユニットB16と、データキャッシュ1
7とから構成されている。
[First Embodiment] FIG. 1 is a block diagram showing the configuration of an information processing apparatus according to this embodiment. As shown, the information processing apparatus includes an instruction cache 11, a prefetch buffer 12, a decoder 1
3, the multi-port register file 14, the functional unit A15, the functional unit B16, and the data cache 1
7 is comprised.

【0019】命令キャッシュ11は、命令を記憶するた
めに用いられるキャッシュメモリである。命令キャッシ
ュ11に記憶される命令は、コンパイラによってコンパ
イルされたアセンブラプログラムについての各命令であ
る。各命令は、コンパイル時に、レジスタを指定するこ
とにより演算結果が書き込まれるレジスタに書き込みポ
ートが接続されている機能ユニットによって演算される
ように決定される。なお、この命令は、後述するよう
に、レジスタを3つ指定する。
The instruction cache 11 is a cache memory used to store instructions. The instructions stored in the instruction cache 11 are the respective instructions of the assembler program compiled by the compiler. Each instruction is determined so as to be operated by a functional unit having a write port connected to a register to which an operation result is written by designating the register at the time of compilation. This instruction specifies three registers as described later.

【0020】プリフェッチバッファ12は、データ取り
出し機構(図示せず)によって命令データ線21を介し
て命令キャッシュ11から取り出された命令が一時的に
格納されるバッファである。データ取り出し機構は、命
令キャッシュから複数の命令を同時に取り出すことがで
き、プリフェッチバッファ12は、これらの同時に取り
出された複数の命令を格納する。
The prefetch buffer 12 is a buffer in which an instruction fetched from the instruction cache 11 via the instruction data line 21 by a data fetching mechanism (not shown) is temporarily stored. The data fetching mechanism can simultaneously fetch a plurality of instructions from the instruction cache, and the prefetch buffer 12 stores these simultaneously fetched instructions.

【0021】デコーダ13は、命令データ線22を介し
てプリフェッチバッファ12に格納されている命令列中
の複数の命令を同時にデコードする。デコーダ13は、
デコード結果に従って、信号線23、24を介して制御
信号を多ポートレジスタファイル14のメモリセルブロ
ック18、19に制御信号を送る。これにより、機能ユ
ニットA15、機能ユニットB16からレジスタへのデ
ータの読み書きが行われる。デコーダ13は、デコード
した命令に対応して命令キャッシュ11に格納されてい
る後述する機能ユニットの振り分け情報に従って、機能
ユニットA15と機能ユニットB16のいずれかに指定
されたレジスタを用いる命令コードが示す演算を実行さ
せる。
The decoder 13 simultaneously decodes a plurality of instructions in the instruction sequence stored in the prefetch buffer 12 via the instruction data line 22. The decoder 13
According to the decoding result, a control signal is sent to the memory cell blocks 18 and 19 of the multi-port register file 14 via signal lines 23 and 24. Thereby, reading and writing of data from the functional units A15 and B16 to the registers are performed. The decoder 13 performs an operation indicated by an instruction code using a register designated to one of the functional unit A15 and the functional unit B16 according to distribution information of a functional unit described later stored in the instruction cache 11 corresponding to the decoded instruction. Is executed.

【0022】多ポートレジスタファイル14は、2つの
メモリセルブロック18、19を有する。メモリセルブ
ロック18、19は、それぞれ1ワード分のビット数の
メモリセルによって構成されるレジスタを3つずつ有す
る。メモリセルブロックの18の各レジスタは、機能ユ
ニットA15に接続されている読み出しポート31と、
機能ユニットB16に接続されている読み出しポート3
2と、機能ユニットA15に接続されている書き込みポ
ート35とに接続されている。メモリセルブロック19
の各レジスタは、機能ユニットA15に接続されている
読み出しポート33と、機能ユニットB16に接続され
ている読み出しポート34と、機能ユニットB16に接
続されている書き込みポート36とに接続されている。
また、多ポートメモリレジスタ内の各レジスタには、デ
ータ線27を介してデータキャッシュ17に格納されて
いるデータを書き込むことが可能である。
The multiport register file 14 has two memory cell blocks 18 and 19. Each of the memory cell blocks 18 and 19 has three registers each including memory cells having the number of bits of one word. Each of the 18 registers of the memory cell block includes a read port 31 connected to the functional unit A15,
Read port 3 connected to functional unit B16
2 and a write port 35 connected to the functional unit A15. Memory cell block 19
Are connected to a read port 33 connected to the functional unit A15, a read port 34 connected to the functional unit B16, and a write port 36 connected to the functional unit B16.
In addition, data stored in the data cache 17 can be written to each register in the multi-port memory register via the data line 27.

【0023】機能ユニットA15及び機能ユニットB1
6は、それぞれ固定小数点演算装置或いは浮動小数点演
算装置などによって構成され、デコーダ13の制御結果
に従い、前述のように指定されたメモリセルブロック1
8、19内のレジスタを用いて、命令コードが示す演算
を実行する。すなわち、多ポートレジスタファイル14
のメモリセルブロック18、19内のレジスタから読み
出されたデータに対して、命令コードで示す処理を行
い、オペランド部で指定されたレジスタに処理結果のデ
ータを書き込む。なお、この実施の形態においては、機
能ユニットA15と機能ユニットB15とは同一の機能
を持つものとし、並行処理が可能である。また、機能ユ
ニットA15と機能ユニットB16とのいずれで演算を
実行するかは、後述するようにプログラムの変数に割り
当てられるレジスタに応じてコンパイル段階で決定さ
れ、各命令と共に命令キャッシュ11に書き込まれてい
る。
Function unit A15 and function unit B1
Reference numeral 6 denotes a fixed-point arithmetic unit or a floating-point arithmetic unit, and according to the control result of the decoder 13, the memory cell block 1 designated as described above.
The operation indicated by the instruction code is executed using the registers in 8 and 19. That is, the multi-port register file 14
Performs the processing indicated by the instruction code on the data read from the registers in the memory cell blocks 18 and 19, and writes the processing result data to the register specified by the operand section. In this embodiment, the functional unit A15 and the functional unit B15 have the same function, and can perform parallel processing. Whether the operation is performed by the functional unit A15 or the functional unit B16 is determined at a compilation stage according to a register assigned to a variable of the program as described later, and is written in the instruction cache 11 together with each instruction. I have.

【0024】多ポートレジスタファイル14、機能ユニ
ットA15及び機能ユニットB16の機能について、図
2を参照してさらに詳しく説明する。図2に示すよう
に、多ポートレジスタファイル14のメモリセルブロッ
ク18には、3つのレジスタR1〜R3が含まれてい
る。メモリセルブロック19には、3つのレジスタR4
〜R6が含まれている。
The functions of the multi-port register file 14, the functional units A15 and B16 will be described in more detail with reference to FIG. As shown in FIG. 2, the memory cell block 18 of the multi-port register file 14 includes three registers R1 to R3. The memory cell block 19 has three registers R4
To R6.

【0025】デコーダ13によってデコードされた命令
が機能ユニットA15によって実行されるものであると
きは、メモリセルブロック18中のレジスタR1〜R3
に格納されているデータは、読み出しポート31を介し
て機能ユニットA15に読み出される。メモリセルブロ
ック19中のレジスタR4〜R6に格納されているデー
タは、読み出しポート33を介して機能ユニットA15
に読み出される。機能ユニットA15による演算結果
は、書き込みポート35を介してメモリセルブロック1
8中のレジスタR1〜R3に書き込まれる。
When the instruction decoded by the decoder 13 is to be executed by the functional unit A15, the registers R1 to R3 in the memory cell block 18
Is read out to the functional unit A15 via the readout port 31. The data stored in the registers R4 to R6 in the memory cell block 19 is transferred to the functional unit A15 via the read port 33.
Is read out. The operation result by the functional unit A15 is transmitted to the memory cell block 1 via the write port 35.
8 are written to the registers R1 to R3.

【0026】デコーダ13によってデコードされた命令
が機能ユニットB16によって実行されるものであると
きは、メモリセルブロック19中のレジスタR4〜R6
に格納されているデータは、読み出しポート32を介し
て機能ユニットB16に読み出される。メモリセルブロ
ック19中のレジスタR4〜R6に格納されているデー
タは、読み出しポート34を介して機能ユニットB16
に読み出される。機能ユニットB16による演算結果
は、書き込みポート36を介してメモリセルブロック1
9中のレジスタR4〜R6に書き込まれる。
When the instruction decoded by the decoder 13 is to be executed by the functional unit B16, the registers R4 to R6 in the memory cell block 19
Is read out to the functional unit B16 via the readout port 32. Data stored in the registers R4 to R6 in the memory cell block 19 is transmitted to the functional unit B16 via the read port 34.
Is read out. The operation result by the functional unit B16 is transmitted to the memory cell block 1 via the write port 36.
9 are written to the registers R4 to R6.

【0027】すなわち、機能ユニットA15及び機能ユ
ニットB16は、メモリセルブロック18、19のいず
れに含まれているレジスタからもデータを読み出すこと
ができる。一方、機能ユニットA15の演算結果は、メ
モリセルブロック18に含まれているレジスタにのみ書
き込みが可能である。演算ユニットB16の演算結果
は、メモリセルブロック19に含まれているレジスタに
のみ書き込みが可能である。
That is, the functional unit A15 and the functional unit B16 can read data from the registers included in both the memory cell blocks 18 and 19. On the other hand, the operation result of the functional unit A15 can be written only to the register included in the memory cell block 18. The operation result of the operation unit B16 can be written only to the register included in the memory cell block 19.

【0028】図1に戻り、データキャッシュ17は、命
令以外のデータを記憶するために用いられるキャッシュ
メモリである。機能ユニットA15或いは機能ユニット
B16が実行する命令がSTORE命令である場合に
は、その演算結果は、機能ユニットデータキャッシュ1
7にも書き込まれる。この場合、主記憶装置(図示せ
ず)への書き込みは、ライトスルー方式またはライトバ
ック方式のいずれによってもよい。
Returning to FIG. 1, the data cache 17 is a cache memory used to store data other than instructions. When the instruction executed by the functional unit A15 or the functional unit B16 is a STORE instruction, the operation result is stored in the functional unit data cache 1
7 is also written. In this case, writing to the main storage device (not shown) may be performed by either a write-through method or a write-back method.

【0029】以下、この実施の形態にかかる情報処理装
置の動作について、説明する。ここでは、この情報処理
装置は、数式1に示す処理を実行するものとする。
The operation of the information processing apparatus according to this embodiment will be described below. Here, it is assumed that this information processing apparatus executes the processing shown in Expression 1.

【数1】 c←a+b e←c+d f←c−d## EQU1 ## c ← a + be e ← c + d f ← cd

【0030】この実施の形態では、上記処理を実行する
ためのソースプログラムをアセンブラプログラムにコン
パイルするときに、コンパイラは、表1に示すように、
上記処理中の変数a〜fに多ポートレジスタファイル1
4中のレジスタR1〜R6を割り当てる。
In this embodiment, when compiling a source program for executing the above processing into an assembler program, the compiler performs the following operations as shown in Table 1.
The multiport register file 1 is stored in the variables a to f during the above processing.
4 are assigned to registers R1 to R6.

【表1】 [Table 1]

【0031】また、上記コンパイラによってコンパイル
されたアセンブラプログラムは、表2に示すようにな
る。また、コンパイラによって、各命令ステップを処理
するための機能ユニットは、表2に示すように振り分け
られる。これらは、命令キャッシュ11に格納される
(但し、命令アドレスは16進の下2桁のみを示し、命
令は0x00番地から格納される)。
Table 2 shows the assembler program compiled by the compiler. The functional units for processing each instruction step are assigned by the compiler as shown in Table 2. These are stored in the instruction cache 11 (however, the instruction address indicates only the last two digits of hexadecimal, and the instruction is stored from address 0x00).

【表2】 [Table 2]

【0032】なお、後述するように表2に示す命令の実
行が開始されるときには、変数a、b及びdの値は、そ
れぞれに割り当てられたレジスタR1、R4及びR6に
格納されているものとする。
When the execution of the instructions shown in Table 2 is started as described later, the values of the variables a, b, and d are assumed to be stored in the registers R1, R4, and R6 assigned to them. I do.

【0033】プリフェッチバッファ12のデータ読み出
し機構は、命令データ線21を介して命令キャッシュ1
1に格納されている命令を順次読み出し、複数の命令を
プリフェッチバッファ12に格納する。
The data reading mechanism of the prefetch buffer 12 is configured such that the instruction cache 1
1 are sequentially read out, and a plurality of instructions are stored in the prefetch buffer 12.

【0034】次に、デコーダ13は、プリフェッチバッ
ファ12に格納されている複数の命令と読み出し、デコ
ードする。ここで、アドレス0x04からの命令はアド
レス0x00からの命令の実行結果を利用しているた
め、アドレス0x00からの命令と同時に実行できない
が、アドレス0x08からの命令は、アドレス0x04
からの命令の結果を利用していないため、機能ユニット
A15と機能ユニットBとの両方を用いて同時に実行す
る。
Next, the decoder 13 reads out and decodes a plurality of instructions stored in the prefetch buffer 12. Here, since the instruction from address 0x04 uses the execution result of the instruction from address 0x00, it cannot be executed simultaneously with the instruction from address 0x00, but the instruction from address 0x08 is
Since the result of the instruction from the CPU is not used, the execution is performed simultaneously using both the functional unit A15 and the functional unit B.

【0035】以下、この情報処理装置における上記の表
2に示す命令列の実行について、図3〜図5を参照し
て、説明する。
Hereinafter, execution of the instruction sequence shown in Table 2 in this information processing apparatus will be described with reference to FIGS.

【0036】まず、アドレス0x00からの命令は、機
能ユニットA15が実行する。機能ユニットA15は、
図3に示すように、読み出しポート31を介してレジス
タR1のデータを読み出す。また、読み出しポート33
を介してレジスタR4のデータを読み出す。そして、レ
ジスタR1のデータとレジスタR4のデータとを加算
し、その加算結果を書き込みポート35を介してレジス
タR3に書き込む。
First, the instruction from the address 0x00 is executed by the functional unit A15. The functional unit A15 is
As shown in FIG. 3, the data in the register R1 is read through the read port 31. Also, the read port 33
, The data of the register R4 is read out. Then, the data of the register R1 and the data of the register R4 are added, and the addition result is written to the register R3 via the write port 35.

【0037】次に、機能ユニットB16によるアドレス
0x04からの命令の実行と、機能ユニットA15によ
るアドレス0x08からの命令の実行とが、同時に行わ
れる。機能ユニットB16は、図4に示すように、読み
出しポート32を介してレジスタR3のデータを読み出
す。また、読み出しポート34を介してレジスタR6の
データを読み出す。そして、レジスタR3のデータとレ
ジスタR6のデータとを加算し、その加算結果を書き込
みポート36を介してレジスタR5に書き込む。
Next, the execution of the instruction from the address 0x04 by the functional unit B16 and the execution of the instruction from the address 0x08 by the functional unit A15 are performed simultaneously. The functional unit B16 reads the data of the register R3 via the read port 32, as shown in FIG. Further, the data of the register R6 is read through the read port 34. Then, the data of the register R3 and the data of the register R6 are added, and the addition result is written to the register R5 via the write port 36.

【0038】一方、機能ユニットA15は、図5に示す
ように、読み出しポート31を介してレジスタR3のデ
ータを読み出す。また、読み出しポート33を介してレ
ジスタR6のデータを読み出す。そして、レジスタR3
のデータからレジスタR6のデータを減算し、その加算
結果を書き込みポート35を介してレジスタR2に書き
込む。すなわち、アドレス0x04からの命令とアドレ
ス0x08からの命令とは、読み出しポート31〜34
或いは書き込みポート35、36の競合が発生せず、同
時に実行することが可能となる。
On the other hand, the functional unit A15 reads data from the register R3 through the read port 31, as shown in FIG. Further, the data in the register R6 is read through the read port 33. And register R3
Is subtracted from the data of the register R6, and the result of the addition is written to the register R2 via the write port 35. That is, the instruction from the address 0x04 and the instruction from the address 0x08 correspond to the read ports 31 to 34.
Alternatively, the contention between the write ports 35 and 36 does not occur, and it is possible to execute them simultaneously.

【0039】以上説明したように、この実施の形態の情
報処理装置に設けられている多ポートレジスタメモリ1
4では、メモリセルブロック18、19のそれぞれに対
応する書き込みポートを1つだけとすることができ、機
能ユニットに対応する数だけ設ける必要がない。また、
同一のデータを書き込むための複数のメモリセルを設け
る必要がない。このため、多ポートレジスタファイル1
4の全体の面積を小さくすることができる。
As described above, the multi-port register memory 1 provided in the information processing apparatus of this embodiment
In No. 4, only one write port corresponding to each of the memory cell blocks 18 and 19 can be provided, and there is no need to provide a number corresponding to the number of functional units. Also,
There is no need to provide a plurality of memory cells for writing the same data. Therefore, multi-port register file 1
4 can be reduced in overall area.

【0040】また、この実施の形態の情報処理装置で
は、上記したように、読み出しポート31〜34或いは
書き込みポート35、36の競合が発生することなく、
機能ユニットA15と機能ユニットB16との並列動作
が可能となる。
Further, in the information processing apparatus of this embodiment, as described above, without conflict between the read ports 31 to 34 or the write ports 35 and 36,
The parallel operation of the functional unit A15 and the functional unit B16 becomes possible.

【0041】[第2の実施の形態]この実施の形態にか
かる情報処理装置は、第1の実施の形態のもの(図1)
とほぼ同一である。但し、この実施の形態においては、
機能ユニットA15が有する機能と機能ユニットB16
が有する機能とが異なり、機能ユニットA15は“AD
D”命令を、機能ユニットB16は“SUB”命令を実
行するものとする。各命令の演算を処理する機能ユニッ
トは、コンパイル時に命令の種類によって決定される
が、変数へのレジスタR1〜R6の割り付けは、演算を
行った機能ユニットが結果を書き込むものによって決定
される。
[Second Embodiment] An information processing apparatus according to the second embodiment is that of the first embodiment (FIG. 1).
Is almost the same as However, in this embodiment,
Function of Function Unit A15 and Function Unit B16
Is different from the function provided by the function unit A15.
The functional unit B16 executes the “SUB” instruction, and the functional unit that processes the operation of each instruction is determined at compile time by the type of the instruction. The assignment is determined by what the functional unit that performed the operation writes the result.

【0042】以下、この実施の形態にかかる情報処理装
置の動作について、説明する。この実施の形態におい
て、情報処理装置が処理する処理は、第1の実施の形態
のものと同じ、数式1に示すものとする。
Hereinafter, the operation of the information processing apparatus according to this embodiment will be described. In this embodiment, the processing performed by the information processing apparatus is represented by the same equation 1 as in the first embodiment.

【0043】この実施の形態では、上記処理を実行する
ためのソースプログラムをアセンブラプログラムにコン
パイルするときに、コンパイラは、表3に示すように、
上記処理中の変数a〜fに多ポートレジスタファイル1
4中のレジスタR1〜R6を割り当てる。
In this embodiment, when compiling a source program for executing the above-mentioned processing into an assembler program, as shown in Table 3, the compiler
The multiport register file 1 is stored in the variables a to f during the above processing.
4 are assigned to registers R1 to R6.

【表3】 [Table 3]

【0044】また、上記コンパイラによってコンパイル
されたアセンブラプログラムは、表4に示すようにな
る。また、コンパイラによって、各命令ステップを処理
するための機能ユニットは、表4に示すように振り分け
られる。これらは、命令キャッシュ11に格納される
(但し、命令アドレスは16進の下2桁のみを示し、命
令は0x00番地から格納される)。
Table 4 shows the assembler program compiled by the compiler. The functional units for processing each instruction step are assigned by the compiler as shown in Table 4. These are stored in the instruction cache 11 (however, the instruction address indicates only the last two digits of hexadecimal, and the instruction is stored from address 0x00).

【表4】 [Table 4]

【0045】なお、後述するように表4に示す命令の実
行が開始されるときには、変数a、b及びdの値は、そ
れぞれに割り当てられたレジスタR1、R4及びR5に
格納されているものとする。
When the execution of the instructions shown in Table 4 is started as described later, the values of the variables a, b, and d are assumed to be stored in the registers R1, R4, and R5 assigned to them. I do.

【0046】この実施の形態において、命令キャッシュ
11に格納された命令の取り出しからデコーダ13によ
る命令のデコードまでの動作は、第1の実施の形態の場
合と同一である。ここで、アドレス0x04からの命令
はアドレス0x00からの命令の実行結果を利用してい
るため、アドレス0x00からの命令と同時に実行でき
ないが、アドレス0x08からの命令は、アドレス0x
04からの命令の結果を利用しておらず、しかも実行さ
れる機能ユニットが異なるため、機能ユニットA15と
機能ユニットBとの両方を用いて同時に実行する。
In this embodiment, the operations from the retrieval of the instruction stored in the instruction cache 11 to the decoding of the instruction by the decoder 13 are the same as those in the first embodiment. Here, since the instruction from address 0x04 uses the execution result of the instruction from address 0x00, it cannot be executed simultaneously with the instruction from address 0x00, but the instruction from address 0x08 is
Since the result of the instruction from the instruction unit 04 is not used and the functional units to be executed are different, the functional units A15 and B are executed at the same time.

【0047】以下、この情報処理装置における上記の表
2に示す命令列の実行について、図6〜図8を参照し
て、説明する。
Hereinafter, the execution of the instruction sequence shown in Table 2 in this information processing apparatus will be described with reference to FIGS.

【0048】まず、アドレス0x00からの命令は、機
能ユニットA15が実行する。機能ユニットA15は、
図6に示すように、読み出しポート31を介してレジス
タR1のデータを読み出す。また、読み出しポート33
を介してレジスタR4のデータを読み出す。そして、レ
ジスタR1のデータとレジスタR4のデータとを加算
し、その加算結果を書き込みポート35を介してレジス
タR3に書き込む。
First, the instruction from the address 0x00 is executed by the functional unit A15. The functional unit A15 is
As shown in FIG. 6, the data in the register R1 is read through the read port 31. Also, the read port 33
, The data of the register R4 is read out. Then, the data of the register R1 and the data of the register R4 are added, and the addition result is written to the register R3 via the write port 35.

【0049】次に、機能ユニットA15によるアドレス
0x04からの命令の実行と、機能ユニットB16によ
るアドレス0x08からの命令の実行とが、同時に行わ
れる。機能ユニットA15は、図8に示すように、読み
出しポート31を介してレジスタR3のデータを読み出
す。また、読み出しポート33を介してレジスタR5の
データを読み出す。そして、レジスタR3のデータとレ
ジスタR5のデータとを加算し、その加算結果を書き込
みポート35を介してレジスタR2に書き込む。
Next, the execution of the instruction from the address 0x04 by the functional unit A15 and the execution of the instruction from the address 0x08 by the functional unit B16 are performed simultaneously. The functional unit A15 reads the data of the register R3 via the read port 31, as shown in FIG. Further, the data of the register R5 is read through the read port 33. Then, the data of the register R3 and the data of the register R5 are added, and the addition result is written to the register R2 via the write port 35.

【0050】一方、機能ユニットB16は、図5に示す
ように、読み出しポート32を介してレジスタR3のデ
ータを読み出す。また、読み出しポート34を介してレ
ジスタR5のデータを読み出す。そして、レジスタR3
のデータからレジスタR5のデータを減算し、その減算
結果を書き込みポート36を介してレジスタR6に書き
込む。すなわち、アドレス0x04からの命令とアドレ
ス0x08からの命令とは、読み出しポート31〜34
或いは書き込みポート35、36の競合が発生せず、同
時に実行することが可能となる。
On the other hand, as shown in FIG. 5, the functional unit B16 reads data from the register R3 through the read port 32. Further, the data in the register R5 is read through the read port 34. And register R3
Is subtracted from the data of the register R5, and the result of the subtraction is written to the register R6 via the write port 36. That is, the instruction from the address 0x04 and the instruction from the address 0x08 correspond to the read ports 31 to 34.
Alternatively, the contention between the write ports 35 and 36 does not occur, and it is possible to execute them simultaneously.

【0051】以上説明したように、この実施の形態の情
報処理装置では、機能ユニットA15と機能ユニットB
16との機能が異なっても、読み出しポート31〜34
或いは書き込みポート35、36の競合が発生すること
なく、機能ユニットA15と機能ユニットB16との並
列動作が可能となる。このため、例えば、整数演算と浮
動小数点演算を別々の機能ユニットを用いて行う場合
に、それぞれの機能ユニットに固有のレジスタファイル
を設ける必要がない。
As described above, in the information processing apparatus of this embodiment, the functional unit A15 and the functional unit B
16, the read ports 31 to 34
Alternatively, the parallel operation of the functional unit A15 and the functional unit B16 can be performed without contention between the write ports 35 and 36. Therefore, for example, when performing the integer operation and the floating-point operation using different functional units, it is not necessary to provide a register file unique to each functional unit.

【0052】[第3の実施の形態]図9は、この実施の
形態にかかる情報処理装置の構成を示すブロック図であ
る。図示するように、この情報処理装置は、命令キャッ
シュ11と、プリフェッチバッファ12と、デコーダ1
3と、リネーミング機構41と、多ポートレジスタファ
イル42と、機能ユニットA15と、機能ユニットB1
6とから構成されている。
[Third Embodiment] FIG. 9 is a block diagram showing a configuration of an information processing apparatus according to the third embodiment. As shown, the information processing apparatus includes an instruction cache 11, a prefetch buffer 12, a decoder 1
3, a renaming mechanism 41, a multi-port register file 42, a functional unit A15, and a functional unit B1.
6 is comprised.

【0053】この情報処理装置において、命令キャッシ
ュ11、プリフェッチバッファ12、デコーダ13、機
能ユニットA15及び機能ユニットB16の構成は、第
1の実施の形態のもの(図1)と同一である。また、多
ポートファイルレジスタ42及び多ポートレジスタファ
イル42内に含まれるメモリセルブロック43、44
は、コンパイルされたアセンブラプログラムでは、論理
レジスタとして指定され、各論理レジスタR1〜R6が
後述するようにリネーミング機構41によって変換され
た物理レジスタr1〜r6としてアクセスされる以外
は、第1の実施の形態のものと同一である。
In this information processing apparatus, the configuration of the instruction cache 11, prefetch buffer 12, decoder 13, functional unit A15 and functional unit B16 is the same as that of the first embodiment (FIG. 1). Also, the multi-port file register 42 and the memory cell blocks 43 and 44 included in the multi-port register file 42
Are the same as those in the compiled assembler program except that the logical registers R1 to R6 are accessed as physical registers r1 to r6 converted by the renaming mechanism 41 as described later. It is the same as that of the form.

【0054】リネーミング機構41は、後述するように
コンパイル時に各変数に割り当てられたレジスタを論理
レジスタR1〜R6とし、各論理レジスタR1〜R6に
対して、多ポートレジスタファイル42のメモリセルブ
ロック43、44内に設けられている物理レジスタr1
〜r6を割り当てる。ここで、物理レジスタr1〜r3
は、メモリセルブロック43内に設けられており、物理
レジスタr4〜r6は、メモリセルブロック44内に設
けられている。
As will be described later, the renaming mechanism 41 designates the registers assigned to each variable at the time of compilation as logical registers R1 to R6, and for each logical register R1 to R6, the memory cell block 43 of the multiport register file 42. , 44 provided in the physical register r1
To r6. Here, the physical registers r1 to r3
Are provided in the memory cell block 43, and the physical registers r4 to r6 are provided in the memory cell block 44.

【0055】以下、この実施の形態にかかる情報処理装
置の動作について、説明する。この実施の形態におい
て、情報処理装置が処理する処理は、第1の実施の形態
のものと同じ、数式1に示すものとする。
Hereinafter, the operation of the information processing apparatus according to this embodiment will be described. In this embodiment, the processing performed by the information processing apparatus is represented by the same equation 1 as in the first embodiment.

【0056】この実施の形態では、上記処理を実行する
ためのソースプログラムをアセンブラプログラムにコン
パイルするときに、コンパイラは、表5に示すように、
上記処理中の変数a〜fに多ポートレジスタファイル1
4の論理レジスタR1〜R6を割り当てる。また、リネ
ーミング機構41は、割り当てられた論理レジスタR1
〜R6に対して、表5に示すように物理レジスタr1〜
r6を割り当てる。
In this embodiment, when compiling a source program for executing the above processing into an assembler program, the compiler executes
The multiport register file 1 is stored in the variables a to f during the above processing.
4 logical registers R1 to R6. Further, the renaming mechanism 41 determines whether the assigned logical register R1
, The physical registers r1 to r6 as shown in Table 5.
Assign r6.

【表5】 [Table 5]

【0057】また、上記コンパイラによってコンパイル
されたアセンブラプログラムは、表6に示すようにな
る。また、コンパイラによって、各命令ステップを処理
するための機能ユニットは、論理レジスタR1〜R6の
割当に従って、表6に示すように振り分けられる。これ
らは、命令キャッシュ11に格納される(但し、命令ア
ドレスは16進の下2桁のみを示し、命令は0x00番
地から格納される)。
Table 6 shows the assembler program compiled by the compiler. The functional units for processing the respective instruction steps are allocated by the compiler as shown in Table 6 according to the assignment of the logical registers R1 to R6. These are stored in the instruction cache 11 (however, the instruction address indicates only the last two digits of hexadecimal, and the instruction is stored from address 0x00).

【表6】 [Table 6]

【0058】しかしながら、この実施の形態において
は、リネーミング機構41によって物理レジスタr1〜
r6が割り当てられ、実際に実行されるプログラム及び
各命令ステップでの機能ユニットの振り分けは、表7に
示すものとなる。
However, in this embodiment, the physical registers r1 to r1 are
Table 6 shows the program to which r6 is assigned and the allocation of functional units at each instruction step and the program to be actually executed.

【表7】 [Table 7]

【0059】なお、後述するように表6に示す命令の実
行が開始されるときには、変数a、b及びdの値は、そ
れぞれに割り当てられた論理レジスタR1、R2及びR
3対して割り当てられる物理レジスタr1、r4及びr
3に格納されているものとする。
When the execution of the instructions shown in Table 6 is started as described later, the values of the variables a, b and d are set to the logical registers R1, R2 and R assigned to them.
Physical registers r1, r4, and r assigned to
3 is stored.

【0060】この実施の形態において、命令キャッシュ
11に格納された命令の取り出しからデコーダ13によ
る命令のデコードまでの動作は、第1の実施の形態の場
合と同一である。ここで、デコーダ13によるデコード
結果では、表6に示すように、アドレス0x00からの
命令、アドレス0x04からの命令、アドレス0x08
からの命令のいずれも機能ユニットB16によって実行
されることとなるので、並列処理ができない。
In this embodiment, the operation from the retrieval of the instruction stored in the instruction cache 11 to the decoding of the instruction by the decoder 13 is the same as that in the first embodiment. Here, as shown in Table 6, the decoding result by the decoder 13 indicates the instruction from the address 0x00, the instruction from the address 0x04, and the address 0x08.
Are executed by the functional unit B16, so that parallel processing cannot be performed.

【0061】そこで、リネーム機構41は、命令中で割
り当てられているレジスタを論理レジスタとし、表5に
示すように、各論理レジスタR1〜R6に対して物理レ
ジスタr1〜r6を割り当てる。すると、この情報処理
装置は、実質的に表7に示す命令を実行していることと
なる。
Therefore, the rename mechanism 41 uses the registers allocated in the instruction as logical registers, and allocates the physical registers r1 to r6 to the logical registers R1 to R6 as shown in Table 5. Then, this information processing apparatus is substantially executing the commands shown in Table 7.

【0062】以下、この情報処理装置における上記の表
7に示す命令列の実行について、図10〜図12を参照
して、説明する。
Hereinafter, execution of the instruction sequence shown in Table 7 in this information processing apparatus will be described with reference to FIGS.

【0063】まず、アドレス0x00からの命令は、機
能ユニットB16が実行する。機能ユニットB16は、
図10に示すように、読み出しポート52を介して物理
レジスタr1(論理レジスタR1)のデータを読み出
す。また、読み出しポート54を介して物理レジスタr
4(論理レジスタR2)のデータを読み出す。そして、
物理レジスタr1のデータと物理レジスタr4のデータ
とを加算し、その加算結果を書き込みポート56を介し
て物理レジスタr5(論理レジスタR4)に書き込む。
First, the instruction from the address 0x00 is executed by the functional unit B16. The functional unit B16 is
As shown in FIG. 10, data of the physical register r1 (logical register R1) is read through the read port 52. Also, the physical register r via the read port 54
4 (logical register R2). And
The data of the physical register r1 and the data of the physical register r4 are added, and the addition result is written to the physical register r5 (logical register R4) via the write port 56.

【0064】次に、機能ユニットA15によるアドレス
0x04からの命令の実行と、機能ユニットB16によ
るアドレス0x08からの命令の実行とが、同時に行わ
れる。機能ユニットA15は、図11に示すように、読
み出しポート51を介して物理レジスタr3(論理レジ
スタR3)のデータを読み出す。また、読み出しポート
53を介して物理レジスタr5(論理レジスタR4)の
データを読み出す。そして、物理レジスタr3のデータ
と物理レジスタr5のデータとを加算し、その加算結果
を書き込みポート55を介して物理レジスタr2(論理
レジスタR6)に書き込む。
Next, the execution of the instruction from the address 0x04 by the functional unit A15 and the execution of the instruction from the address 0x08 by the functional unit B16 are performed simultaneously. The functional unit A15 reads the data of the physical register r3 (logical register R3) via the read port 51 as shown in FIG. Further, the data of the physical register r5 (logical register R4) is read through the read port 53. Then, the data of the physical register r3 and the data of the physical register r5 are added, and the addition result is written to the physical register r2 (logical register R6) via the write port 55.

【0065】一方、機能ユニットB16は、図12に示
すように、読み出しポート52を介して物理レジスタr
3(論理レジスタR3)のデータを読み出す。また、読
み出しポート54を介して物理レジスタr5(論理レジ
スタR4)のデータを読み出す。そして、物理レジスタ
r5のデータから物理レジスタr3のデータを減算し、
その減算結果を書き込みポート56を介して物理レジス
タr6(論理レジスタR5)に書き込む。
On the other hand, as shown in FIG. 12, the functional unit B16 sends the physical register r through the read port 52.
3 (logical register R3). Further, the data of the physical register r5 (logical register R4) is read through the read port 54. Then, the data of the physical register r3 is subtracted from the data of the physical register r5,
The result of the subtraction is written to the physical register r6 (logical register R5) via the write port 56.

【0066】すなわち、アドレス0x04からの命令と
アドレス0x08からの命令とは、表6に示した論理レ
ジスタをそのまま物理レジスタとした場合には同時に実
行することが不可能であるが、リネーム機構41によっ
て論理レジスタR1〜R6に対してそれぞれ特定の物理
レジスタr1〜r6を割り当てることによって、読み出
しポート51〜54或いは書き込みポート55、56の
競合が発生せず、同時に実行することが可能となる。
That is, the instruction from address 0x04 and the instruction from address 0x08 cannot be executed at the same time if the logical registers shown in Table 6 are directly used as physical registers. By allocating the specific physical registers r1 to r6 to the logical registers R1 to R6, it is possible to execute the physical registers r1 to r6 at the same time without conflict between the read ports 51 to 54 or the write ports 55 and 56.

【0067】以上説明したように、この実施の形態の情
報処理装置では、コンパイル時に決定された論理レジス
タR1〜R6の割当のままでは機能ユニットA15と機
能ユニットB16との並列処理が不可能な場合でも、リ
ネーム機構41が論理レジスタR1〜R6に物理レジス
タr1〜r6を割り当てることによって、機能ユニット
A15と機能ユニットB16との並列処理が可能とな
る。
As described above, in the information processing apparatus of this embodiment, the parallel processing of the functional unit A15 and the functional unit B16 cannot be performed without the assignment of the logical registers R1 to R6 determined at the time of compiling. However, when the rename mechanism 41 assigns the physical registers r1 to r6 to the logical registers R1 to R6, parallel processing of the functional unit A15 and the functional unit B16 becomes possible.

【0068】[実施の形態の変形]上記の第1〜第3の
実施の形態では、各命令についての演算処理を機能ユニ
ットA15と機能ユニットB16のいずれで行うべきか
の振り分けは、コンパイル段階で行われ、命令と共に命
令キャッシュ11に書き込まれていた。しかしながら、
機能ユニットA15と機能ユニットB16との振り分け
は、デコーダ13が、命令中の命令コード或いは指定さ
れているレジスタに従って判断して行ってもよい。
[Modification of Embodiment] In the above-described first to third embodiments, whether the arithmetic processing for each instruction should be performed by the functional unit A15 or the functional unit B16 is determined at the compilation stage. The instruction has been written in the instruction cache 11 together with the instruction. However,
The distribution between the functional unit A15 and the functional unit B16 may be determined by the decoder 13 according to the instruction code in the instruction or the designated register.

【0069】上記の第1〜第3の実施の形態では、各命
令へのレジスタの割り当て及び実行すべき機能ユニット
の決定は、ソースプログラムをアセンブラプログラムに
コンパイルするときにコンパイラが行っていた。しかし
ながら、各命令を実行すべき機能ユニットの決定は、ソ
ースプログラムからアセンブラプログラムへコンパイル
した後、コンパイラとは別の専用のソフトウェアによっ
て行ってもよい。
In the first to third embodiments, the compiler allocates registers to each instruction and determines the functional unit to be executed when compiling a source program into an assembler program. However, the determination of the functional unit that should execute each instruction may be performed by compiling a source program into an assembler program and then using dedicated software separate from the compiler.

【0070】上記の第1〜第3の実施の形態では、アド
レス0x04からの命令は、同時にデコードされたアド
レス0x00からの命令の実行結果を利用するものであ
ったため、逐次実行されていた。しかしながら、デコー
ダ13は、同時にデコードされる命令が互いの処理結果
を利用しないものである場合は、読み出しポート31〜
34及び書き込みポート35、36に衝突が生じない範
囲で、デコードした複数の命令を機能ユニットA15と
機能ユニットB16とに同時に実行させるように制御し
てもよい。
In the above-described first to third embodiments, the instruction from address 0x04 uses the execution result of the instruction from address 0x00 decoded at the same time, and is therefore executed sequentially. However, if the instructions to be decoded at the same time do not use the processing results of the other, the decoder 13
Control may be performed so that the functional units A15 and B16 simultaneously execute a plurality of decoded instructions within a range in which no collision occurs between the write unit 34 and the write ports 35 and 36.

【0071】上記の第1〜第3の実施の形態では、機能
ユニットA15と機能ユニットB16との2つの機能ユ
ニットが設けられた2並列で処理を行う情報処理装置に
本発明を適用した場合について説明した。しかしなが
ら、本発明の情報処理装置は、2つ以上の任意数の機能
ユニットをもつことができる。この場合、情報処理装置
内に設けられる多ポートレジスタメモリ内の各レジスタ
(メモリセル)の内容は、機能ユニットの数と同数の読
み出しポートに接続され、この読み出しポートの数より
も少ない数(好ましくは、1つ)の書き込みポートに接
続されたものとすることができる。
In the above-described first to third embodiments, the case where the present invention is applied to an information processing apparatus provided with two functional units, a functional unit A15 and a functional unit B16, which performs processing in parallel. explained. However, the information processing apparatus of the present invention can have two or more arbitrary number of functional units. In this case, the content of each register (memory cell) in the multi-port register memory provided in the information processing device is connected to the same number of read ports as the number of functional units, and is smaller than the number of read ports (preferably Can be connected to one) write port.

【0072】上記の第1〜第3の実施の形態の情報処理
装置では、1命令が4ワードによって構成されるもので
あった。これに対し、本発明は、VLIW(Very Long
Instruction Word)方式の情報処理装置に適用すること
もできる。この場合、機能ユニットの振り分けは、命令
中に含まれる複数のフィールドによって行われるものと
なる。
In the information processing apparatuses according to the first to third embodiments, one instruction is composed of four words. In contrast, the present invention provides VLIW (Very Long
The present invention can be applied to an information processing device of the Instruction Word) type. In this case, the distribution of the functional units is performed by a plurality of fields included in the instruction.

【0073】[0073]

【発明の効果】以上説明したように、本発明によれば、
複数の機能ユニットが多ポートレジスタファイルの各メ
モリセルブロックに接続されていなくても、複数の機能
ユニットによる並列処理が可能となる。このため、多ポ
ートレジスタファイルに設ける書き込みポートの数を少
なく抑えることができ、しかも同一のデータを書き込む
メモリセルを複数設ける必要がない。従って、多ポート
レジスタファイルの面積を小さくすることができる。
As described above, according to the present invention,
Even if a plurality of functional units are not connected to each memory cell block of the multi-port register file, parallel processing can be performed by the plurality of functional units. Therefore, the number of write ports provided in the multi-port register file can be reduced, and there is no need to provide a plurality of memory cells for writing the same data. Therefore, the area of the multi-port register file can be reduced.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1の実施の形態にかかる情報処理装
置の構成を示すブロック図である。
FIG. 1 is a block diagram illustrating a configuration of an information processing apparatus according to a first embodiment of the present invention.

【図2】図1の情報処理装置における多ポートレジスタ
ファイルと機能ユニットの接続を示す図である。
FIG. 2 is a diagram showing a connection between a multi-port register file and a functional unit in the information processing apparatus of FIG. 1;

【図3】本発明の第1の実施の形態における動作を説明
する図である。
FIG. 3 is a diagram illustrating an operation according to the first exemplary embodiment of the present invention.

【図4】本発明の第1の実施の形態における動作を説明
する図である。
FIG. 4 is a diagram illustrating an operation according to the first exemplary embodiment of the present invention.

【図5】本発明の第1の実施の形態における動作を説明
する図である。
FIG. 5 is a diagram illustrating an operation according to the first exemplary embodiment of the present invention.

【図6】本発明の第2の実施の形態における動作を説明
する図である。
FIG. 6 is a diagram illustrating an operation according to the second exemplary embodiment of the present invention.

【図7】本発明の第2の実施の形態における動作を説明
する図である。
FIG. 7 is a diagram illustrating an operation according to the second exemplary embodiment of the present invention.

【図8】本発明の第2の実施の形態における動作を説明
する図である。
FIG. 8 is a diagram illustrating an operation according to the second embodiment of the present invention.

【図9】本発明の第3の実施の形態にかかる情報処理装
置の構成を示すブロック図である。
FIG. 9 is a block diagram illustrating a configuration of an information processing apparatus according to a third embodiment of the present invention.

【図10】本発明の第3の実施の形態における動作を説
明する図である。
FIG. 10 is a diagram illustrating an operation according to the third embodiment of the present invention.

【図11】本発明の第3の実施の形態における動作を説
明する図である。
FIG. 11 is a diagram illustrating an operation according to the third embodiment of the present invention.

【図12】本発明の第3の実施の形態における動作を説
明する図である。
FIG. 12 is a diagram illustrating an operation according to the third embodiment of the present invention.

【図13】従来例の情報処理装置の構成を示す図であ
る。
FIG. 13 is a diagram showing a configuration of a conventional information processing apparatus.

【図14】従来例の情報処理装置の構成を示す図であ
る。
FIG. 14 is a diagram illustrating a configuration of a conventional information processing apparatus.

【図15】従来例の整数演算用レジスタファイルと浮動
小数点演算用レジスタファイルを分けた装置の構成を示
す図である。
FIG. 15 is a diagram showing a configuration of a conventional device in which an integer operation register file and a floating point operation register file are separated.

【符号の説明】[Explanation of symbols]

11 命令キャッシュ 12 プリフェッチバッファ 13 デコーダ 14 多ポートレジスタファイル 15 機能ユニットA 16 機能ユニットB 17 データキャッシュ 18、19 メモリセルブロック 21、22 命令データ線 23、24 信号線 25〜27 データ線 31〜34 読み出しポート 35、36 書き込みポート 41 リネーミング機構 42 多ポートレジスタファイル 43、44 メモリセルブロック 51〜54 読み出しポート 55、56 書き込みポート DESCRIPTION OF SYMBOLS 11 Instruction cache 12 Prefetch buffer 13 Decoder 14 Multi-port register file 15 Functional unit A 16 Functional unit B 17 Data cache 18, 19 Memory cell block 21, 22 Instruction data line 23, 24 Signal line 25-27 Data line 31-34 Reading Port 35, 36 Write port 41 Renaming mechanism 42 Multi-port register file 43, 44 Memory cell block 51-54 Read port 55, 56 Write port

Claims (6)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】同時に複数の命令をデコードすることが可
能なデコーダと、 前記デコーダで同時にデコードされた複数の命令をそれ
ぞれで同時に実行することが可能な複数の機能ユニット
と、 それぞれ少なくとも1つのメモリセルから構成される複
数のメモリセルブロックを有し、前記メモリセルに書き
込まれたデータを前記複数の機能ユニットのそれぞれに
読み出すための複数の読み出しポートが、前記複数のメ
モリセルブロック毎に前記複数の機能ユニットのそれぞ
れに対応して設けられ、前記メモリセルにデータを書き
込むための複数の書き込みポートが前記メモリセルブロ
ック毎に前記複数の機能ユニットの一部に対応して設け
られている多ポートレジスタファイルと、を備えること
を特徴とする情報処理装置。
1. A decoder capable of simultaneously decoding a plurality of instructions, a plurality of functional units capable of simultaneously executing a plurality of instructions simultaneously decoded by the decoder, and at least one memory each A plurality of memory cell blocks composed of cells, a plurality of read ports for reading data written in the memory cells to each of the plurality of functional units, and a plurality of read ports for each of the plurality of memory cell blocks; A plurality of write ports provided corresponding to each of the functional units, and a plurality of write ports for writing data to the memory cells are provided corresponding to some of the plurality of functional units for each memory cell block. An information processing apparatus comprising: a register file.
【請求項2】前記複数の機能ユニットはそれぞれ、該機
能ユニットに対応して設けられている書き込みポートを
介して、前記複数のメモリブロックのうちの一部のメモ
リブロック内のメモリセルにデータを書き込むことがで
きることを特徴とする請求項1に記載の情報処理装置。
2. A method according to claim 1, wherein each of the plurality of functional units stores data in a memory cell in a part of the plurality of memory blocks via a write port provided corresponding to the functional unit. The information processing apparatus according to claim 1, wherein the information can be written.
【請求項3】前記複数の命令は、それぞれ前記複数のメ
モリセルブロック内のどのメモリセルを使用し、前記複
数の機能ユニットのいずれで実行されるかがソフトウェ
アによって決定されていることを特徴とする請求項1ま
たは2に記載の情報処理装置。
3. The method according to claim 1, wherein the plurality of instructions use software cells to determine which memory cell in the plurality of memory cell blocks is to be used and which of the plurality of functional units is to be executed. The information processing apparatus according to claim 1, wherein
【請求項4】前記ソフトウェアによって決定された使用
されるべきメモリセルを命令の実行時に変更し、このメ
モリセルブロックの変更に応じて前記ソフトウェアによ
って決定された該命令を実行すべき機能ユニットを変更
する変更手段を備えることを特徴とする請求項3に記載
の情報処理装置。
4. A memory cell to be used determined by the software is changed at the time of execution of an instruction, and a functional unit to execute the instruction determined by the software is changed according to the change of the memory cell block. The information processing apparatus according to claim 3, further comprising a change unit that performs the change.
【請求項5】少なくとも1つのメモリセルで構成される
メモリセルブロックを複数有し、読み出しポートと書き
込みポートとを複数有する多ポートレジスタファイルに
おいて、前記読み出しポートは、前記メモリセルブロック毎に複
数の機能ユニットすべてに対応して設けられ前記書き込みポートは、前記メモリセルブロック毎に複
数の機能ユニットの一部に対応して設けられている こと
を特徴とする多ポートレジスタファイル。
5. A semiconductor device comprising at least one memory cell.
Has multiple memory cell blocks, read port and write
In a multi-port register file having a plurality of write ports , the read port is provided for each memory cell block.
The write port is provided corresponding to all the functional units , and the write port is provided for each of the memory cell blocks.
A multi-port register file provided corresponding to some of the number of functional units .
【請求項6】6. 前記メモリセルブロック内のすべてのメモAll notes in the memory cell block
リセルは、前記読み出しポート或いは前記書き込みポーThe recell is connected to the read port or the write port.
トを介して、前記機能ユニットに接続されているConnected to the functional unit via ことをThat
特徴とする請求項5に記載の多ポートレジスタファイThe multi-port register file according to claim 5, wherein
ル。Le.
JP34114297A 1997-12-11 1997-12-11 Information processing device and multi-port register file Expired - Fee Related JP3341662B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34114297A JP3341662B2 (en) 1997-12-11 1997-12-11 Information processing device and multi-port register file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34114297A JP3341662B2 (en) 1997-12-11 1997-12-11 Information processing device and multi-port register file

Publications (2)

Publication Number Publication Date
JPH11175394A JPH11175394A (en) 1999-07-02
JP3341662B2 true JP3341662B2 (en) 2002-11-05

Family

ID=18343654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34114297A Expired - Fee Related JP3341662B2 (en) 1997-12-11 1997-12-11 Information processing device and multi-port register file

Country Status (1)

Country Link
JP (1) JP3341662B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7304883B2 (en) 2004-06-09 2007-12-04 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit
CN1333356C (en) * 2004-07-23 2007-08-22 中国人民解放军国防科学技术大学 Write serialization and resource duplication combined multi-port register file design method
US8331133B2 (en) * 2009-06-26 2012-12-11 Intel Corporation Apparatuses for register file with novel bit cell implementation

Also Published As

Publication number Publication date
JPH11175394A (en) 1999-07-02

Similar Documents

Publication Publication Date Title
JP4829541B2 (en) Digital data processing apparatus with multi-level register file
US6718457B2 (en) Multiple-thread processor for threaded software applications
JP3916680B2 (en) Processor
EP0782071B1 (en) Data processor
US7028170B2 (en) Processing architecture having a compare capability
US6330661B1 (en) Reducing inherited logical to physical register mapping information between tasks in multithread system using register group identifier
US7428631B2 (en) Apparatus and method using different size rename registers for partial-bit and bulk-bit writes
US20030005260A1 (en) Superscalar RISC instruction scheduling
US8176478B2 (en) Process for running programs on processors and corresponding processor system
US20020069345A1 (en) High performance VLIW processor
US20060265555A1 (en) Methods and apparatus for sharing processor resources
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
US6256725B1 (en) Shared datapath processor utilizing stack-based and register-based storage spaces
JP3341662B2 (en) Information processing device and multi-port register file
US8285975B2 (en) Register file with separate registers for compiler code and low level code
US7024540B2 (en) Methods and apparatus for establishing port priority functions in a VLIW processor
US7346763B2 (en) Processor instruction with repeated execution code
US20040128475A1 (en) Widely accessible processor register file and method for use
JP3737573B2 (en) VLIW processor
US6704855B1 (en) Method and apparatus for reducing encoding needs and ports to shared resources in a processor
US11775310B2 (en) Data processing system having distrubuted registers
JPH0666052B2 (en) A computer that automatically maps memory contents to machine registers
JPH06332700A (en) Information processor
JP2008065370A (en) Superscalar processor and cache memory accessing method

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070823

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080823

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080823

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090823

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090823

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100823

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110823

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110823

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120823

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130823

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees