JPH07262004A - Processor - Google Patents

Processor

Info

Publication number
JPH07262004A
JPH07262004A JP6051502A JP5150294A JPH07262004A JP H07262004 A JPH07262004 A JP H07262004A JP 6051502 A JP6051502 A JP 6051502A JP 5150294 A JP5150294 A JP 5150294A JP H07262004 A JPH07262004 A JP H07262004A
Authority
JP
Japan
Prior art keywords
storage
storage area
data
storage means
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6051502A
Other languages
Japanese (ja)
Inventor
Yasumasa Nakada
恭正 中田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6051502A priority Critical patent/JPH07262004A/en
Publication of JPH07262004A publication Critical patent/JPH07262004A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To move data at a high speed while applying an instruction sequence composed of a store instruction and a load instruction, to the move of data from a first storage means of a first arithmetic means to a second storage means of a second arithmetic means on the same chip. CONSTITUTION:When executing the store instruction to store the data in a register inside a register file 13 to a main memory 2, a virtual address showing the store destination is set to a slot inside an address/size holding part 14 corresponding to the register by an integral arithmetic unit 12. In the case of decoding the load instruction to load the data from the main memory to a register file 16, when there is any valid slot inside the address/size holding part 14 to which the virtual address showing the load destination designated by the load instruction is set, the data in the register inside the register file 13 corresponding to the slot are transferred to the designated register in the register file 16 by a data transfer unit 17.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】この発明は、第1の演算機能を有
する第1の演算手段と、この第1の演算手段にはない第
2の演算機能を持つ第2の演算手段とを1つのチップに
内蔵するプロセッサに係り、特に、第1の演算手段用の
第1の記憶手段から第2の演算手段用の第2の記憶手段
へのデータ移動に、第1の記憶手段からチップ外部のメ
モリへのストアと、当該メモリから第2の記憶手段への
ロードという命令シーケンスを適用するプロセッサに関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention comprises a first arithmetic means having a first arithmetic function and a second arithmetic means having a second arithmetic function which the first arithmetic means does not have. More specifically, the present invention relates to a processor incorporated in a chip, and more particularly, for moving data from a first storage means for a first arithmetic means to a second storage means for a second arithmetic means, The present invention relates to a processor that applies an instruction sequence of storing in a memory and loading from the memory into a second storage unit.

【0002】[0002]

【従来の技術】近年のプロセッサには、同一チップ内
に、整数演算ユニット(第1の演算機能を有する第1の
演算手段)の他に、当該ユニットにはない浮動小数点演
算機能(第2の演算機能)を持つコプロセッサ(第2の
演算手段)を内蔵するものがある。
2. Description of the Related Art In recent processors, in addition to an integer arithmetic unit (first arithmetic means having a first arithmetic function), a floating point arithmetic function (second Some include a coprocessor (second arithmetic means) having an arithmetic function.

【0003】この種のプロセッサは、整数演算ユニット
が行う演算に使用されるデータを保持する整数演算用の
汎用レジスタファイル(第1の記憶手段)と、コプロセ
ッサが行う演算に使用されるデータを保持するコプロセ
ッサ汎用レジスタファイル(第2の記憶手段)とを有す
る。
This type of processor stores a general-purpose register file (first storage means) for integer arithmetic, which holds data used for arithmetic operations performed by the integer arithmetic unit, and data used for arithmetic operations performed by the coprocessor. And a coprocessor general-purpose register file (second storage means) for holding.

【0004】さて、整数演算用汎用レジスタファイルの
データをコプロセッサによる浮動小数点演算等に用いる
ためには、当該データをコプロセッサ汎用レジスタファ
イルに移動する必要がある。
In order to use the data in the general-purpose register file for integer arithmetic in floating-point arithmetic and the like by the coprocessor, it is necessary to move the data to the coprocessor general-purpose register file.

【0005】従来、この整数演算用汎用レジスタファイ
ルからコプロセッサ汎用レジスタファイルへデータを移
動するには、整数演算用汎用レジスタファイルから主メ
モリへのストアと、主メモリからコプロセッサ汎用レジ
スタファイルへのロードという命令シーケンスを実行す
る必要があった。
Conventionally, in order to move data from the general-purpose register file for integer arithmetic to the general-purpose register file for coprocessor, the general-purpose register file for integer arithmetic is stored in the main memory and the main-memory is stored in the coprocessor general-purpose register file. It was necessary to execute the load instruction sequence.

【0006】[0006]

【発明が解決しようとする課題】上記したように、第1
の演算機能を有する演算手段(第1の演算手段)の他
に、当該第1の演算手段にはない第2の演算機能を有す
る演算手段(第2の演算手段)を持つ従来のプロセッサ
では、第1の演算手段用の第1の記憶手段から第2の演
算手段用の第2の記憶手段へデータを移動するには、第
1の記憶手段から主メモリへのストアと、主メモリから
第2の記憶手段へのロードという命令シーケンスを忠実
に実行する必要があった。
SUMMARY OF THE INVENTION As described above, the first
In a conventional processor having an arithmetic means (first arithmetic means) having the arithmetic function (1), and an arithmetic means (second arithmetic means) not having the first arithmetic means, To move data from the first storage means for the first arithmetic means to the second storage means for the second arithmetic means, a store from the first storage means to the main memory and a transfer from the main memory to the main memory are performed. It was necessary to faithfully execute the instruction sequence of loading into the second storage means.

【0007】しかし、主メモリのアクセスには時間がか
かるため、第1の記憶手段から第2の記憶手段へのデー
タ移動が高速に行えないという問題があった。特に、キ
ャッシュミスなどの要因で、第1の記憶手段から主メモ
リへのストアが待たされている間は、それに続く主メモ
リから第2の記憶手段へのロードが実行できないため、
第1の記憶手段から第2の記憶手段へのデータ移動が一
層遅れるという問題があった。
However, since it takes time to access the main memory, there is a problem that the data cannot be moved from the first storage means to the second storage means at high speed. In particular, while the store from the first storage unit to the main memory is being waited for due to a cache miss or the like, subsequent loading from the main memory to the second storage unit cannot be executed.
There is a problem that the data movement from the first storage means to the second storage means is further delayed.

【0008】この発明は上記事情に鑑みてなされたもの
でその目的は、第1の演算機能を有する演算手段(第1
の演算手段)用の第1の記憶手段から同一チップ上の第
2の演算機能を有する演算手段(第2の演算手段)用の
第2の記憶手段へのデータ移動にストア命令およびロー
ド命令からなる命令シーケンスを適用しながら、ストア
命令実行時の情報を記憶手段(第3の記憶手段)に設定
してロード命令時に当該情報を利用することにより、高
速データ移動が行えるプロセッサを提供することにあ
る。
The present invention has been made in view of the above circumstances, and an object thereof is an arithmetic means having a first arithmetic function (first arithmetic function).
Storage means and load instruction for data movement from the first storage means for the second calculation means) to the second storage means for the second calculation means having the second calculation function on the same chip. To provide a processor capable of high-speed data movement by setting information at the time of executing a store instruction in a storage unit (third storage unit) and applying the information at the time of a load instruction while applying the following instruction sequence. is there.

【0009】この発明の他の目的は、ストア命令実行時
の情報を設定するための記憶手段の容量が少なくて済む
プロセッサを提供することにある。この発明の更に他の
目的は、ストアすべきデータを一時格納するための記憶
手段を有効利用することにより、特別の記憶手段を設け
ることなく、第1の記憶手段から第2の記憶手段へのデ
ータ移動の高速化が図れるプロセッサを提供することに
ある。
Another object of the present invention is to provide a processor which requires only a small capacity of storage means for setting information when executing a store instruction. Still another object of the present invention is to effectively use the storage means for temporarily storing the data to be stored, so that the first storage means can be transferred to the second storage means without providing any special storage means. It is to provide a processor capable of speeding up data movement.

【0010】[0010]

【課題を解決するための手段および作用】この発明は、
第1の演算機能を有する第1の演算手段用の第1の記憶
手段から同一チップ上の第2の演算機能を有する第2の
演算手段用の第2の記憶手段へのデータ移動にストア命
令およびロード命令からなる命令シーケンスを適用する
プロセッサにおいて、第1の記憶手段の各記憶領域にそ
れぞれ対応する記憶領域を有する第3の記憶手段と、上
記ストア命令の実行時には、対象データが格納されてい
る第1の記憶手段内記憶領域に対応する第3の記憶手段
内記憶領域に、ストア先を示すアドレス情報を含む情報
をセットする情報セット手段と、第1の記憶手段から第
2の記憶手段へ直接データを転送するデータ転送手段
と、ロード命令がデコードされた際に第3の記憶手段内
を参照し、ロード元を示すアドレス情報が格納されてい
る有効な記憶領域が存在するならば、当該ロード命令の
実行に代えて、その記憶領域に対応する第1の記憶手段
内記憶領域に格納されているデータを上記のデータ転送
手段により当該ロード命令の指定する第2の記憶手段内
記憶領域に転送させるデータ転送制御手段とを備えたこ
とを特徴とするものである。
Means and Actions for Solving the Problems
A store instruction for data movement from the first storage means for the first calculation means having the first calculation function to the second storage means for the second calculation means having the second calculation function on the same chip. In a processor to which an instruction sequence consisting of a load instruction and a load instruction is applied, third storage means having storage areas corresponding to the respective storage areas of the first storage means and target data are stored when the store instruction is executed. An information setting means for setting information including address information indicating a store destination in the third storage means internal storage area corresponding to the first storage means internal storage area, and the first storage means to the second storage means A data transfer means for directly transferring data to the third storage means and a valid storage area in which the address information indicating the load source is stored by referring to the third storage means when the load instruction is decoded. If present, instead of executing the load instruction, the data stored in the storage area in the first storage means corresponding to the storage area is designated by the data transfer means by the second load instruction. Data transfer control means for transferring to a storage area in the storage means are provided.

【0011】上記の構成において、第1の記憶手段から
第2の記憶手段へのデータ移動のための命令シーケンス
中のストア命令の実行時には、対象データが格納されて
いる第1の記憶手段内記憶領域に対応する第3の記憶手
段内記憶領域に、ストア先を示すアドレス情報を含む情
報が情報セット手段によりセットされる。
In the above structure, when the store instruction in the instruction sequence for moving the data from the first storage means to the second storage means is executed, the target data is stored in the first storage means. Information including address information indicating a store destination is set by the information setting means in the storage area in the third storage means corresponding to the area.

【0012】一方、上記命令シーケンス中のロード命令
がデコードされた場合には、転送制御手段により第3の
記憶手段内が参照され、ロード元を示すアドレス情報が
格納されている有効な記憶領域が存在するならば、当該
ロード命令が実行される代わりにデータ転送手段が起動
される。このデータ転送手段は、上記ロード元を示すア
ドレス情報が格納されている第3記憶手段内記憶領域に
対応する第1の記憶手段内記憶領域からデータを取り出
す。このデータは、当該ロード命令の対象データに一致
する。そこでデータ転送手段は、このデータを、当該ロ
ード命令の指定する第2の記憶手段内記憶領域に転送す
る。
On the other hand, when the load instruction in the above instruction sequence is decoded, the transfer control means refers to the inside of the third storage means, and an effective storage area in which the address information indicating the load source is stored. If so, the data transfer means is activated instead of executing the load instruction. The data transfer means extracts data from the first storage means internal storage area corresponding to the third storage means internal storage area in which the address information indicating the load source is stored. This data matches the target data of the load instruction. Then, the data transfer means transfers this data to the storage area in the second storage means designated by the load instruction.

【0013】このように、第1の記憶手段から第2の記
憶手段へのデータ移動のためにストア命令およびロード
命令からなる命令シーケンスを適用しながらも、ストア
命令実行時に第3の記憶手段にセットされた情報を利用
することで、第2の記憶手段にロードすべきデータを外
部のメモリからではなくて第1の記憶手段から取り出せ
ることから、第1の記憶手段から第2の記憶手段へのデ
ータ移動が高速に行える。
As described above, while applying the instruction sequence consisting of the store instruction and the load instruction for the data movement from the first storage means to the second storage means, the third storage means is stored in the third storage means when the store instruction is executed. By using the set information, the data to be loaded into the second storage means can be taken out from the first storage means rather than from the external memory, so that the first storage means to the second storage means. Data can be moved at high speed.

【0014】上記の構成においては、第3の記憶手段は
第1の記憶手段と同数の記憶領域を有している必要があ
るが、第3の記憶手段内の記憶領域の数を第1の記憶手
段内の記憶領域より少なくすることも可能である。但
し、この場合、情報セット手段は、ストア命令の実行時
に第3の記憶手段内の1つの記憶領域を選択し、当該記
憶領域に、ストア先を示すアドレス情報だけでなく対象
データが格納されている第1の記憶手段内記憶領域を指
すポインタ情報をも含む情報をセットする必要がある。
一方、データ転送制御手段は、ロード命令がデコードさ
れた際に、第3の記憶手段内にロード元を示すアドレス
情報が格納されている有効な記憶領域が存在するなら
ば、当該ロード命令の実行に代えて、その記憶領域に格
納されているポインタ情報の指す第1の記憶手段内記憶
領域に格納されているデータをデータ転送手段により当
該ロード命令の指定する第2の記憶手段内記憶領域に転
送させる必要がある。
In the above arrangement, the third storage means needs to have the same number of storage areas as the first storage means, but the number of storage areas in the third storage means is set to the first storage area. It is also possible to make it smaller than the storage area in the storage means. However, in this case, the information setting means selects one storage area in the third storage means at the time of executing the store instruction, and the storage area stores the target data as well as the address information indicating the store destination. It is necessary to set information including pointer information that points to the first storage area in the first storage means.
On the other hand, the data transfer control means executes the load instruction if the third storage means has an effective storage area in which the address information indicating the load source is stored when the load instruction is decoded. Instead of this, the data stored in the storage area in the first storage means pointed to by the pointer information stored in the storage area is stored in the storage area in the second storage means designated by the load instruction by the data transfer means. Need to transfer.

【0015】また、以上の第3の記憶手段は新たに設け
られるものであるが、(プロセッサから外部のメモリへ
の効率的なストア動作のために)ストアすべきデータお
よびストア先を示すアドレス情報を一時保持しておく記
憶手段を第3の記憶手段として利用することも可能であ
る。但し、この場合、データ転送制御手段は、ロード命
令がデコードされた際に第3の記憶手段内を参照し、ロ
ード元を示すアドレス情報が格納されている有効な記憶
領域が存在するならば、当該ロード命令の実行に代え
て、その記憶領域に格納されているデータをデータ転送
手段により当該ロード命令の指定する第2の記憶手段内
記憶領域に転送させるようにする必要がある。
Further, although the above-mentioned third storage means is newly provided, address information indicating the data to be stored and the storage destination (for efficient store operation from the processor to the external memory). It is also possible to use the storage means for temporarily storing the as the third storage means. However, in this case, the data transfer control means refers to the inside of the third storage means when the load instruction is decoded, and if there is an effective storage area in which the address information indicating the load source is stored, Instead of executing the load instruction, it is necessary to transfer the data stored in the storage area to the second storage area in the second storage means designated by the load instruction by the data transfer means.

【0016】[0016]

【実施例】以下、この発明を仮想記憶制御方式の情報処
理装置に適用した実施例につき図面を参照して説明す
る。 [第1の実施例]図1はこの発明の第1の実施例を示す
情報処理装置のブロック構成図である。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment in which the present invention is applied to a virtual memory control type information processing apparatus will be described below with reference to the drawings. [First Embodiment] FIG. 1 is a block diagram of an information processing apparatus showing a first embodiment of the present invention.

【0017】図1の情報処理装置は、主として、各種命
令を実行するプロセッサ1と、当該プロセッサ1が実行
する命令群並びにデータ等が記憶される主メモリ2と、
プロセッサ1および主メモリ2等が接続されるメモリバ
ス3とから構成される。このメモリバス3には、プロセ
ッサ1の他、主メモリ2に直接アクセスする例えばLS
I化された主メモリ利用手段としてのデバイス(図示せ
ず)が接続される。メモリバス3に接続されている各デ
バイスは、当該メモリバス3を介して主メモリ2との間
で情報の授受を行う。
The information processing apparatus of FIG. 1 mainly includes a processor 1 for executing various instructions, a main memory 2 for storing an instruction group executed by the processor 1, data, and the like.
It comprises a processor 1 and a memory bus 3 to which the main memory 2 and the like are connected. In addition to the processor 1, the main memory 2 is directly accessed through the memory bus 3, for example, LS.
A device (not shown) as a means for utilizing the I-shaped main memory is connected. Each device connected to the memory bus 3 exchanges information with the main memory 2 via the memory bus 3.

【0018】プロセッサ1は、アドレス変換・データ転
送部11、整数演算ユニット12、整数演算用汎用レジ
スタファイル13、アドレス・サイズ保持部14、コプ
ロセッサユニット15、コプロセッサ汎用レジスタファ
イル16およびデータ転送ユニット17を同一チップに
内蔵する。
The processor 1 includes an address conversion / data transfer unit 11, an integer operation unit 12, an integer operation general purpose register file 13, an address / size holding unit 14, a coprocessor unit 15, a coprocessor general purpose register file 16 and a data transfer unit. 17 is built in the same chip.

【0019】アドレス変換・データ転送部11は、メモ
リバス3と整数演算ユニット12との間に設けられ、当
該整数演算ユニット12からの命令またはデータの読み
出し要求に従って主メモリ2から命令またはデータを取
り込むデータ転送機能を持つ。アドレス変換・データ転
送部11はまた、整数演算ユニット12からのデータの
書き込み要求に従って主メモリ2へデータをストアする
データ転送機能も持つ。アドレス変換・データ転送部1
1は更に、主メモリ2とのデータ転送のために、仮想ア
ドレスを物理アドレスに変換するアドレス変換機能を持
つ。
The address conversion / data transfer unit 11 is provided between the memory bus 3 and the integer arithmetic unit 12 and fetches an instruction or data from the main memory 2 in accordance with a read request for the instruction or data from the integer arithmetic unit 12. Has a data transfer function. The address conversion / data transfer unit 11 also has a data transfer function of storing data in the main memory 2 in response to a data write request from the integer arithmetic unit 12. Address conversion / data transfer unit 1
1 further has an address conversion function for converting a virtual address into a physical address for data transfer with the main memory 2.

【0020】整数演算ユニット12は、アドレス変換・
データ転送部11により取り込まれた命令を解読して実
行する標準的な演算機能(ここでは整数演算機能)を持
つ演算手段である。
The integer arithmetic unit 12 has an address conversion
It is an arithmetic unit having a standard arithmetic function (here, an integer arithmetic function) for decoding and executing the instruction fetched by the data transfer unit 11.

【0021】この整数演算ユニット12は、解読した命
令がコプロセッサユニット15で演算を行うべきコプロ
セッサ命令の場合には、当該命令をコプロセッサユニッ
ト15に送るようになっている。
When the decoded instruction is a coprocessor instruction to be operated by the coprocessor unit 15, the integer arithmetic unit 12 sends the instruction to the coprocessor unit 15.

【0022】整数演算ユニット12はまた、解読した命
令が整数演算用汎用レジスタファイル13内レジスタの
データを主メモリ2にストアするためのストア命令の場
合には、当該命令の指示する動作に加え、そのデータを
含む情報をアドレス・サイズ保持部14の対応スロット
に登録するようにもなっている。
When the decoded instruction is a store instruction for storing the data of the register in the general-purpose register file 13 for integer arithmetic in the main memory 2, the integer arithmetic unit 12 performs the operation instructed by the instruction, Information including the data is also registered in the corresponding slot of the address / size storage unit 14.

【0023】整数演算ユニット12は更に、解読した命
令が主メモリ2からコプロセッサ汎用レジスタファイル
16にデータをロードするためのロード命令の場合に
は、アドレス・サイズ保持部14を調べ、当該アドレス
・サイズ保持部14内に目的のデータが保持されている
ならば、そのデータをデータ転送ユニット17によりア
ドレス・サイズ保持部14からコプロセッサ汎用レジス
タファイル16に転送させるようにもなっている。
If the decoded instruction is a load instruction for loading data from the main memory 2 to the coprocessor general-purpose register file 16, the integer arithmetic unit 12 further checks the address / size holding unit 14 to check the address / size. If the target data is held in the size holding unit 14, the data transfer unit 17 transfers the data from the address / size holding unit 14 to the coprocessor general-purpose register file 16.

【0024】整数演算ユニット12は更に、命令実行に
伴い整数演算用汎用レジスタファイル13内レジスタを
書き換える際には、アドレス・サイズ保持部14の対応
スロットをインバリッド状態にするようにもなってい
る。
Further, the integer arithmetic unit 12 is adapted to put the corresponding slot of the address / size holding unit 14 into an invalid state when rewriting the register in the general-purpose register file 13 for integer arithmetic due to the execution of an instruction.

【0025】整数演算用汎用レジスタファイル13は、
整数演算ユニット12が行う演算に使用するデータを保
持するのに用いられるレジスタ群からなる記憶手段であ
る。アドレス・サイズ保持部14は、整数演算用汎用レ
ジスタファイル13内の各レジスタに保持されているデ
ータの仮想アドレス、サイズを保持するための記憶手段
である。このアドレス・サイズ保持部14は、図2
(a)に示すように、整数演算用汎用レジスタファイル
13の各レジスタに対応するスロット(記憶領域)を持
つ。
The general-purpose register file 13 for integer arithmetic is
It is a storage unit including a group of registers used for holding data used for the arithmetic operation performed by the integer arithmetic unit 12. The address / size holding unit 14 is a storage unit for holding the virtual address and size of the data held in each register in the general-purpose register file 13 for integer arithmetic. This address / size holding unit 14 is shown in FIG.
As shown in (a), it has a slot (storage area) corresponding to each register of the general-purpose integer register file 13.

【0026】アドレス・サイズ保持部14内の各スロッ
トは、図2(b)に示すように、仮想アドレスフィール
ド141、サイズフィールド142およびバリッドフィ
ールド143からなる。
Each slot in the address / size storage unit 14 comprises a virtual address field 141, a size field 142 and a valid field 143, as shown in FIG. 2 (b).

【0027】仮想アドレスフィールド141は、整数演
算用汎用レジスタファイル13内の対応するレジスタに
保持されているデータの仮想アドレスを設定するための
ものであり、サイズフィールド142は、当該データの
サイズを設定するためのものである。またバリッドフィ
ールド143は、対応するスロットの情報が有効(バリ
ッド)であるか否かを示すバリッドフラグ(有効/無効
情報)を設定するためのものである。
The virtual address field 141 is for setting the virtual address of the data held in the corresponding register in the integer general purpose register file 13, and the size field 142 is for setting the size of the data. It is for doing. The valid field 143 is for setting a valid flag (valid / invalid information) indicating whether or not the information of the corresponding slot is valid (valid).

【0028】コプロセッサユニット15は、整数演算ユ
ニット12にはない演算機能、例えば浮動小数点演算機
能を持つ演算手段である。コプロセッサユニット15
は、整数演算ユニット12が解読したコプロセッサ命令
を当該ユニット12から受け取って実行するようになっ
ている。
The coprocessor unit 15 is an arithmetic means having an arithmetic function which the integer arithmetic unit 12 does not have, for example, a floating point arithmetic function. Coprocessor unit 15
Receives the coprocessor instruction decoded by the integer arithmetic unit 12 from the unit 12 and executes the coprocessor instruction.

【0029】コプロセッサ汎用レジスタファイル16
は、コプロセッサユニット15が行う演算に使用するデ
ータを保持するのに用いられるレジスタ群からなる記憶
手段である。
Coprocessor general purpose register file 16
Is a storage means composed of a register group used to hold data used for the calculation performed by the coprocessor unit 15.

【0030】データ転送ユニット17は、整数演算ユニ
ット12からのデータ転送要求に従って、整数演算用汎
用レジスタ13からコプロセッサ用汎用レジスタファイ
ル16へのデータ転送を行うデータ転送機能を持つ。
The data transfer unit 17 has a data transfer function for transferring data from the integer general purpose register 13 to the coprocessor general purpose register file 16 in accordance with the data transfer request from the integer arithmetic unit 12.

【0031】次に、この発明の第1の実施例の動作を図
3および図4のフローチャートを参照して説明する。ま
ず、アドレス変換・データ転送部11によって主メモリ
2から命令がフェッチされ、整数演算ユニット12に送
られたものとする。
Next, the operation of the first embodiment of the present invention will be described with reference to the flow charts of FIGS. 3 and 4. First, it is assumed that the address translation / data transfer unit 11 fetches an instruction from the main memory 2 and sends it to the integer arithmetic unit 12.

【0032】整数演算ユニット12は、アドレス変換・
データ転送部11から送られた命令を解読する(ステッ
プS1)。もし、この解読した命令が、整数演算用汎用
レジスタファイル13内レジスタのデータを主メモリ2
にストアするためのストア命令である場合、整数演算ユ
ニット12は、以下に述べる処理を行う。
The integer arithmetic unit 12 is for address conversion
The instruction sent from the data transfer unit 11 is decoded (step S1). If this decoded instruction transfers the data in the register in the general-purpose register file 13 for integer arithmetic to the main memory 2
In the case of a store instruction for storing in, the integer arithmetic unit 12 performs the processing described below.

【0033】まず整数演算ユニット12は、当該ストア
命令の指定する整数演算用汎用レジスタファイル13内
レジスタに保持されているデータを、アドレス変換・デ
ータ転送部11により主メモリ2にストアさせるとい
う、当該ストア命令の指示する本来の動作を行う(ステ
ップS2)。
First, the integer operation unit 12 stores the data held in the register in the general-purpose register file 13 for integer operation designated by the store instruction in the main memory 2 by the address conversion / data transfer unit 11. The original operation instructed by the store instruction is performed (step S2).

【0034】即ち整数演算ユニット12は、アドレス変
換・データ転送部11に対し、主メモリ2へのライト要
求と共に、当該ストア命令の指定する(ストア先を示
す)仮想アドレスおよび当該ストア命令の指定する整数
演算用汎用レジスタファイル13内レジスタに保持され
ているデータを渡す。これにより、アドレス変換・デー
タ転送部11は、整数演算ユニット12から渡された
(ストア先を示す)仮想アドレスを物理アドレス(実ア
ドレス)に変換し、その物理アドレスで示される主メモ
リ2内領域に整数演算ユニット12から渡されたデータ
を書き込むライトアクセスをメモリバス3を介して行
う。
That is, the integer arithmetic unit 12 requests the address conversion / data transfer unit 11 to write to the main memory 2, and at the same time, specifies the virtual address designated by the store instruction (indicating the store destination) and the store instruction. The data held in the register in the general-purpose register file 13 for integer arithmetic is passed. As a result, the address translation / data transfer unit 11 translates the virtual address (indicating the store destination) passed from the integer arithmetic unit 12 into a physical address (real address), and an area in the main memory 2 indicated by the physical address. A write access for writing the data passed from the integer arithmetic unit 12 is performed via the memory bus 3.

【0035】また整数演算ユニット12は、ストア命令
の指定する整数演算用汎用レジスタファイル13内レジ
スタに対応するアドレス・サイズ保持部14内スロット
を求める(ステップS3)。
Further, the integer arithmetic unit 12 obtains the slot in the address / size storage unit 14 corresponding to the register in the general-purpose register file 13 for integer arithmetic designated by the store instruction (step S3).

【0036】整数演算ユニット12は、求めたアドレス
・サイズ保持部14内スロットのバリッドフィールド1
43(のバリッドフラグ)をバリッド表示状態にし、そ
のスロットの仮想アドレスフィールド141に当該スト
ア命令の指定する仮想アドレスを、そのスロットのサイ
ズフィールド142に当該ストア命令の指定するデータ
のサイズを、それぞれ設定する(ステップS4)。
The integer operation unit 12 uses the valid field 1 of the obtained slot in the address / size storage unit 14.
43 (the valid flag thereof) is set to the valid display state, the virtual address designated by the store instruction is set in the virtual address field 141 of the slot, and the size of the data designated by the store instruction is set in the size field 142 of the slot. Yes (step S4).

【0037】次に整数演算ユニット12は、アドレス・
サイズ保持部14内の他のすべてのスロットの仮想アド
レスフィールド141を調べ、当該ストア命令の指定す
る仮想アドレスと一致していたなら、そのスロットのバ
リッドフィールド143(のバリッドフラグ)をインバ
リッド表示状態にする(ステップS5,S6)。
Next, the integer arithmetic unit 12 determines the address
The virtual address fields 141 of all other slots in the size holding unit 14 are checked, and if they match the virtual address specified by the store instruction, the valid field 143 (valid flag of the slot) is set to the invalid display state. (Steps S5 and S6).

【0038】次に、整数演算ユニット12で解読された
命令が、整数演算用汎用レジスタファイル13内レジス
タの書き換えを伴う命令である場合について説明する。
この場合、整数演算ユニット12は、当該命令の指示す
る本来の動作を行う(ステップS7)他、書き換えられ
る整数演算用汎用レジスタファイル13内レジスタに対
応するアドレス・サイズ保持部14内スロットのバリッ
ドフィールド143(のバリッドフラグ)をインバリッ
ド表示状態にする(ステップS8)。
Next, a case will be described in which the instruction decoded by the integer arithmetic unit 12 is an instruction that involves rewriting the register in the integer general purpose register file 13.
In this case, the integer arithmetic unit 12 performs the original operation instructed by the instruction (step S7), and also the valid field of the slot in the address / size holding unit 14 corresponding to the register in the general-purpose register file 13 for rewriting. 143 (the valid flag thereof) is set to the invalid display state (step S8).

【0039】次に、整数演算ユニット12で解読された
命令が、主メモリ2から整数演算用汎用レジスタファイ
ル13内レジスタへデータをロードするためのロード命
令である場合について説明する。
Next, a case where the instruction decoded by the integer arithmetic unit 12 is a load instruction for loading data from the main memory 2 to the register in the general-purpose register file 13 for integer arithmetic will be described.

【0040】この場合、まず整数演算ユニット12は、
アドレス・サイズ保持部14内でバリッドフィールド1
43がバリッド表示状態になっているスロットを探す
(ステップS9)。
In this case, first, the integer arithmetic unit 12
Valid field 1 in address / size storage unit 14
A slot in which 43 is in the valid display state is searched for (step S9).

【0041】次に整数演算ユニット12は、探したスロ
ットの仮想アドレスフィールド141の内容が、当該ロ
ード命令の指定する(ロード元を示す)仮想アドレスと
一致しているか否かを調べる(ステップS10)。
Next, the integer arithmetic unit 12 checks whether or not the contents of the virtual address field 141 of the searched slot match the virtual address designated by the load instruction (indicating the load source) (step S10). .

【0042】もし、当該ロード命令の指定する仮想アド
レスと一致する仮想アドレスフィールド141を持つア
ドレス・サイズ保持部14内スロットが有り(上記スト
ア命令実行時のステップS4〜S6の動作により、高々
1つしか一致しない)、且つそのスロットのサイズフィ
ールド142の内容が当該ロード命令の指定する(ロー
ド対象データの)サイズに一致するならば(ステップS
11)、整数演算ユニット12は当該ロード命令の指示
する本来の動作を行わない。この場合、整数演算ユニッ
ト12は、仮想アドレスが一致したアドレス・サイズ保
持部14内スロットに対応する整数演算用汎用レジスタ
ファイル13内レジスタから、当該ロード命令で(ロー
ド先として)指定されるコプロセッサ汎用レジスタファ
イル16内レジスタへのデータ転送を、データ転送ユニ
ット17により行わせる(ステップS12)。
If there is a slot in the address / size storage unit 14 that has a virtual address field 141 that matches the virtual address specified by the load instruction (there is one slot at most due to the operations of steps S4 to S6 when the store instruction is executed). If the contents of the size field 142 of the slot match the size (of the data to be loaded) specified by the load instruction (step S).
11), the integer arithmetic unit 12 does not perform the original operation instructed by the load instruction. In this case, the integer arithmetic unit 12 uses the coprocessor specified by the load instruction (as the load destination) from the register in the integer arithmetic general purpose register file 13 corresponding to the slot in the address size holding unit 14 in which the virtual address matches. Data transfer to the registers in the general-purpose register file 16 is performed by the data transfer unit 17 (step S12).

【0043】このステップS12において転送されるデ
ータ、即ち仮想アドレスおよびサイズ(データサイズ)
が一致したアドレス・サイズ保持部14内スロットに対
応する整数演算用汎用レジスタファイル13内レジスタ
に保持されているデータは、当該ロード命令の仮想アド
レスおよびサイズで指定される主メモリ2内領域に(先
のストア命令の指示により)ストアされている(或いは
ストア動作が未完了の場合には、ストアされるべき)本
来ロード対象となるデータに一致している。したがっ
て、当該ロード命令の指示する主メモリ2からコプロセ
ッサ汎用レジスタファイル13内レジスタへのデータロ
ード動作に代えて、このデータに一致するアドレス・サ
イズ保持部14内スロットの保持データを、データ転送
ユニット17によりコプロセッサ汎用レジスタファイル
16内レジスタに転送することにより、高速転送が可能
となる。
Data transferred in step S12, that is, virtual address and size (data size)
The data held in the register in the general-purpose integer register file 13 for the integer operation corresponding to the slot in the address / size holding unit 14 in which is matched is stored in the area in the main memory 2 designated by the virtual address and size of the load instruction ( It matches the data that is originally stored (or should be stored if the store operation is not completed) according to the instruction of the previous store instruction). Therefore, instead of the data loading operation from the main memory 2 to the register in the coprocessor general-purpose register file 13 instructed by the load instruction, the data held in the slot in the address / size holding unit 14 that matches this data is replaced by the data transfer unit By transferring to the register in the coprocessor general-purpose register file 16 by 17, high-speed transfer becomes possible.

【0044】これに対し、当該ロード命令の指定する仮
想アドレスと一致する仮想アドレスフィールド141を
持つアドレス・サイズ保持部14内スロットが無いか、
或いは有ったとしても、そのスロットのサイズフィール
ド142の内容が当該ロード命令の指定するサイズに一
致しないならば、整数演算ユニット12は、主メモリ2
に格納されているデータをアドレス変換・データ転送部
11によりコプロセッサユニット15を介してコプロセ
ッサ汎用レジスタファイル16内レジスタにロードさせ
るという、当該ロード命令の指示する本来の動作を行う
(ステップS13)。
On the other hand, is there a slot in the address / size storage unit 14 having a virtual address field 141 that matches the virtual address specified by the load instruction?
Alternatively, even if there is, if the content of the size field 142 of the slot does not match the size specified by the load instruction, the integer arithmetic unit 12 determines that the main memory 2
The address translation / data transfer unit 11 performs the original operation instructed by the load instruction to load the data stored in the register into the register in the coprocessor general-purpose register file 16 via the coprocessor unit 15 (step S13). .

【0045】なお、図3および図4のフローチャートで
は、以上のストア命令(整数演算用汎用レジスタファイ
ル13内レジスタのデータを主メモリ2にストアするた
めのストア命令)、整数演算用汎用レジスタファイル1
3内レジスタの書き換えを伴う命令、およびロード命令
(主メモリ2から整数演算用汎用レジスタファイル13
内レジスタへデータをロードするためのロード命令)以
外の命令の場合の動作手順については、本発明に直接関
係しないため省略してある。
In the flowcharts of FIGS. 3 and 4, the above store instruction (store instruction for storing the data in the register in the integer arithmetic general purpose register file 13 in the main memory 2), the integer arithmetic general purpose register file 1
3 instructions involving rewriting of internal registers, and load instructions (from the main memory 2 to the general-purpose register file 13 for integer arithmetic)
The operation procedure for instructions other than the load instruction for loading data into the inner register) is omitted because it is not directly related to the present invention.

【0046】ところで、システムによっては、整数演算
用汎用レジスタファイル13がレジスタウインドウ方式
で制御されている場合がある。レジスタウインドウ方式
では、整数演算用汎用レジスタファイル13を構成する
レジスタ群が複数のグループ(レジスタウインドウ)に
分けて管理され、ソフトウェア的には、そのうちの1つ
のグループ(レジスタウインドウ)内のレジスタ群しか
見えない(扱えない)ようになっている。したがって、
レジスタウインドウ方式で制御される整数演算用汎用レ
ジスタファイル13では、レジスタウインドウを切り換
える命令が実行されると、その切り換え前のレジスタウ
インドウを構成する整数演算用汎用レジスタファイル1
3内レジスタ群と、切り換え後のレジスタウインドウを
構成する整数演算用汎用レジスタファイル13内レジス
タ群とは一致しない。
By the way, depending on the system, the general-purpose register file 13 for integer arithmetic may be controlled by the register window method. In the register window method, the register group forming the general-purpose register file 13 for integer arithmetic is managed by being divided into a plurality of groups (register windows), and in terms of software, only the register groups in one group (register window) among them are managed. It is invisible (cannot handle). Therefore,
In the integer arithmetic general-purpose register file 13 controlled by the register window method, when an instruction for switching the register window is executed, the integer arithmetic general-purpose register file 1 constituting the register window before the switching is executed.
The register group in 3 does not match the register group in the general-purpose register file 13 for integer operation which constitutes the register window after switching.

【0047】そこで整数演算ユニット12は、整数演算
用汎用レジスタファイル13がレジスタウインドウ方式
で制御されている場合には、レジスタウインドウを切り
換える命令が実行されたときに、すべての整数演算用汎
用レジスタファイル13内レジスタに対応するアドレス
・サイズ保持部14内スロットのバリッドフィールド1
43をインバリッド表示状態にする。こうすることによ
り、ロード命令時に、(レジスタウインドウの切り換え
に起因して)誤ったデータがアドレス・サイズ保持部1
4内スロットからコプロセッサ汎用レジスタファイル1
6に転送されることが防止できる。
Therefore, when the general-purpose register file 13 for integer arithmetic is controlled by the register window system, the integer arithmetic unit 12 receives all the general-purpose register files for integer arithmetic when the instruction to switch the register windows is executed. Valid field 1 of address / size storage unit 14 slot corresponding to register 13
43 is set to the invalid display state. By doing so, erroneous data (due to the switching of the register window) is generated in the address / size storage unit 1 at the time of the load instruction.
Coprocessor general-purpose register file 1 from slot 4
6 can be prevented.

【0048】また、仮想アドレスと物理アドレスとの関
係は一般に固定化されておらず、同じ仮想アドレスでも
例えばプロセスの切り換えの前後で物理アドレスが異な
ることがある。これは、仮想アドレスを物理アドレスに
変換するための変換マップが(オペレーティングシステ
ム等によって)書き換えられるためである。このような
書き換えが行われる場合には、必ず、サブルーチンがコ
ールされるか、或いはサブルーチンからリターンする。
The relationship between the virtual address and the physical address is not generally fixed, and even the same virtual address may have different physical addresses before and after the process switching. This is because the conversion map for converting a virtual address into a physical address is rewritten (by the operating system or the like). When such rewriting is performed, the subroutine is always called or the subroutine returns.

【0049】そこで本実施例では、整数演算ユニット1
2は、サブルーチンをコールする命令を実行したとき、
或いはサブルーチンからリターンする命令を実行したと
きには、上記のレジスタウインドウを切り換える命令の
実行時と同様に、すべての整数演算用汎用レジスタファ
イル13内レジスタに対応するアドレス・サイズ保持部
14内スロットのバリッドフィールド143をインバリ
ッド表示状態にする。こうすることにより、ロード命令
時に、(仮想アドレス−物理アドレス変換マップの切り
換えに起因して)誤ったデータがアドレス・サイズ保持
部14内スロットからコプロセッサ汎用レジスタファイ
ル16に転送されることが防止できる。
Therefore, in this embodiment, the integer arithmetic unit 1
2 is when the instruction to call the subroutine is executed,
Alternatively, when an instruction returning from a subroutine is executed, as in the case of executing the above-mentioned instruction for switching the register window, a valid field of a slot in the address / size holding unit 14 corresponding to all registers in the general-purpose register file 13 for integer arithmetic. 143 is set to the invalid display state. This prevents erroneous data from being transferred from the slot in the address / size storage unit 14 to the coprocessor general-purpose register file 16 (due to the switching of the virtual address-physical address conversion map) at the time of the load instruction. it can.

【0050】なお、以上の説明は、仮想記憶制御方式の
情報処理装置に実施した場合であるが、仮想記憶制御方
式を適用しない場合には、上記のサブルーチンコール時
等におけるインバリッド操作は不要となる。
Although the above description is applied to the information processing apparatus of the virtual memory control method, when the virtual memory control method is not applied, the invalid operation at the time of the above subroutine call is unnecessary. .

【0051】また、ロード命令、ストア命令で取り扱う
データのサイズが固定であるならば、アドレス・サイズ
保持部14内スロットのサイズフィールド142は不要
であり、上記ステップS11の処理も不要である。 [第2の実施例]以上に述べた第1の実施例では、アド
レス・サイズ保持部(14)のスロット数は整数演算用
汎用レジスタファイル(13)のレジスタ数に一致して
いる必要があった。そこで、アドレス・サイズ保持部の
スロット数が整数演算用汎用レジスタファイルのレジス
タ数より少なくて済むようにした第2の実施例につき図
面を参照して説明する。
If the size of the data handled by the load instruction and the store instruction is fixed, the size field 142 of the slot in the address / size holding unit 14 is unnecessary, and the processing of step S11 is also unnecessary. [Second Embodiment] In the first embodiment described above, it is necessary that the number of slots in the address / size storage unit (14) is equal to the number of registers in the general-purpose register file for integer operation (13). It was Therefore, a second embodiment in which the number of slots in the address / size storage unit is less than the number of registers in the general-purpose register file for integer calculation will be described with reference to the drawings.

【0052】図5はこの発明の第2の実施例を示す情報
処理装置のブロック構成図である。図5の情報処理装置
は、前記第1の実施例におけるプロセッサ1、主メモリ
2およびメモリバス3にそれぞれ相当する、プロセッサ
4、主メモリ5およびメモリバス6を備えている。
FIG. 5 is a block diagram of the information processing apparatus showing the second embodiment of the present invention. The information processing apparatus in FIG. 5 includes a processor 4, a main memory 5 and a memory bus 6, which correspond to the processor 1, the main memory 2 and the memory bus 3 in the first embodiment, respectively.

【0053】プロセッサ4は、前記第1の実施例におけ
るプロセッサ1と同様に1チップ化されており、そのプ
ロセッサ1が有するアドレス変換・データ転送部11、
整数演算ユニット12、整数演算用汎用レジスタファイ
ル13、アドレス・サイズ保持部14、コプロセッサユ
ニット15、コプロセッサ汎用レジスタファイル16お
よびデータ転送ユニット17にそれぞれ相当する、アド
レス変換・データ転送部41、整数演算ユニット42、
整数演算用汎用レジスタファイル43、アドレス・サイ
ズ保持部44、コプロセッサユニット45、コプロセッ
サ汎用レジスタファイル46およびデータ転送ユニット
47を有している。
The processor 4 is made into one chip like the processor 1 in the first embodiment, and the address conversion / data transfer unit 11 of the processor 1 is provided.
An address conversion / data transfer unit 41 and an integer corresponding respectively to the integer operation unit 12, integer operation general-purpose register file 13, address / size holding unit 14, coprocessor unit 15, coprocessor general-purpose register file 16 and data transfer unit 17. Arithmetic unit 42,
It has an integer arithmetic general-purpose register file 43, an address / size storage unit 44, a coprocessor unit 45, a coprocessor general-purpose register file 46, and a data transfer unit 47.

【0054】以上のように、プロセッサ4の構成は、第
1の実施例におけるプロセッサ1とほぼ同様である。そ
こで、プロセッサ4の構成がプロセッサ1と異なる点に
ついてのみ説明する。
As described above, the configuration of the processor 4 is almost the same as that of the processor 1 in the first embodiment. Therefore, only the difference in the configuration of the processor 4 from the processor 1 will be described.

【0055】本実施例におけるプロセッサ4が、第1の
実施例におけるプロセッサ1と最も相違するのは、アド
レス・サイズ保持部44の構造である。即ちアドレス・
サイズ保持部44は、図6(a)に示すように、整数演
算用汎用レジスタファイル43のレジスタ総数mより少
ないn段(m,nは正の整数)のスロットを持つ。これ
に対し、第1の実施例におけるプロセッサ1上のアドレ
ス・サイズ保持部14は、図2(a)に示したように、
整数演算用汎用レジスタファイル13のレジスタ総数m
に一致するm段のスロットを持っている。
The processor 4 of this embodiment differs most from the processor 1 of the first embodiment in the structure of the address / size storage unit 44. Ie address
As shown in FIG. 6A, the size holding unit 44 has slots of n stages (m and n are positive integers), which are smaller than the total number m of registers of the general-purpose register file 43 for integer arithmetic. On the other hand, the address / size storage unit 14 on the processor 1 in the first embodiment, as shown in FIG.
Total number of registers in general-purpose register file 13 for integer arithmetic m
It has an m-stage slot corresponding to.

【0056】このようにアドレス・サイズ保持部44内
の各スロットは、(第1の実施例におけるアドレス・サ
イズ保持部14と異なって)整数演算用汎用レジスタフ
ァイル43内の各レジスタと1対1に対応していない。
このため、アドレス・サイズ保持部44内の各スロット
には、図6(b)に示すように、(第1の実施例におけ
るアドレス・サイズ保持部14内スロットの仮想アドレ
スフィールド141、サイズフィールド142およびバ
リッドフィールド143に相当する)仮想アドレスフィ
ールド441、サイズフィールド442およびバリッド
フィールド443の他、対応する整数演算用汎用レジス
タファイル43内レジスタを指すレジスタポインタフィ
ールド444が設けられる。
As described above, each slot in the address size holding unit 44 has a one-to-one correspondence with each register in the general-purpose register file 43 for integer arithmetic (unlike the address size holding unit 14 in the first embodiment). Does not correspond to.
Therefore, as shown in FIG. 6B, the virtual address field 141 and the size field 142 of the slot in the address / size holding unit 14 in the first embodiment are stored in each slot in the address / size holding unit 44. And a virtual address field 441 (corresponding to the valid field 143), a size field 442, and a valid field 443, as well as a register pointer field 444 pointing to a corresponding register in the general-purpose register file 43 for integer arithmetic.

【0057】アドレス・サイズ保持部44の構造が、第
1の実施例におけるアドレス・サイズ保持部14と異な
ることから、整数演算ユニット42の動作も、第1の実
施例における整数演算ユニット12とは少し異なる。こ
れについては、動作説明の中で詳述する。
Since the structure of the address size holding unit 44 is different from that of the address size holding unit 14 in the first embodiment, the operation of the integer arithmetic unit 42 also differs from that of the integer arithmetic unit 12 in the first embodiment. A little different. This will be described in detail in the operation description.

【0058】次に、この発明の第2の実施例の動作を図
7および図8のフローチャートを参照して説明する。ま
ず、アドレス変換・データ転送部41によって主メモリ
5から命令がフェッチされ、整数演算ユニット42に送
られたものとする。
Next, the operation of the second embodiment of the present invention will be described with reference to the flowcharts of FIGS. 7 and 8. First, it is assumed that the address translation / data transfer unit 41 fetches an instruction from the main memory 5 and sends it to the integer arithmetic unit 42.

【0059】整数演算ユニット42は、アドレス変換・
データ転送部41から送られた命令を解読する(ステッ
プS21)。もし、この解読した命令が、整数演算用汎
用レジスタファイル43内レジスタのデータを主メモリ
5にストアするためのストア命令である場合、整数演算
ユニット42は、以下に述べる処理を行う。
The integer arithmetic unit 42 is for address conversion
The instruction sent from the data transfer unit 41 is decoded (step S21). If the decoded instruction is a store instruction for storing the data in the register in the general-purpose integer register file 43 in the main memory 5, the integer arithmetic unit 42 performs the processing described below.

【0060】まず整数演算ユニット42は、当該ストア
命令の指定する整数演算用汎用レジスタファイル43内
レジスタに保持されているデータを、アドレス変換・デ
ータ転送部41により主メモリ5にストアさせるとい
う、当該ストア命令の指示する本来の動作を行う(ステ
ップS22)。この場合、アドレス変換・データ転送部
41によるストア動作は、当該ストア命令の指定する仮
想アドレスを物理アドレスに変換し、その物理アドレス
を用いて主メモリ5をライトアクセスすることにより行
われる。
First, the integer arithmetic unit 42 stores the data held in the register in the integer general purpose register file 43 designated by the store instruction in the main memory 5 by the address conversion / data transfer unit 41. The original operation instructed by the store instruction is performed (step S22). In this case, the store operation by the address conversion / data transfer unit 41 is performed by converting the virtual address designated by the store instruction into a physical address and using the physical address to write-access the main memory 5.

【0061】また整数演算ユニット42は、ストア命令
の指定する整数演算用汎用レジスタファイル43内レジ
スタに対応させるべきアドレス・サイズ保持部44内ス
ロットを選択する(ステップS23)。このスロット選
択方式としては、ランダムにスロットを選択するランダ
ム方式、或いは最も以前に使用されたスロットを選択す
るLRU(Least Recently Used )方式など、任意の方
式が適用可能である。
Further, the integer arithmetic unit 42 selects a slot in the address / size holding unit 44 to be associated with the register in the general-purpose register file 43 for integer arithmetic designated by the store instruction (step S23). As this slot selection method, any method such as a random method of randomly selecting a slot or an LRU (Least Recently Used) method of selecting the most recently used slot can be applied.

【0062】整数演算ユニット42は、選択したアドレ
ス・サイズ保持部44内スロットのバリッドフィールド
443(のバリッドフラグ)をバリッド表示状態にし、
そのスロットの仮想アドレスフィールド441に当該ス
トア命令の指定する仮想アドレスを、そのスロットのサ
イズフィールド442に当該ストア命令の指定するデー
タのサイズを、そのスロットのレジスタポインタフィー
ルド444に当該ストア命令の指定する整数演算用汎用
レジスタファイル43内レジスタを指すポインタ(レジ
スタポインタ)を、それぞれ設定する(ステップS2
4)。
The integer arithmetic unit 42 puts the valid field 443 (valid flag thereof) of the slot in the selected address / size storage unit 44 into the valid display state,
The virtual address field 441 of the slot specifies the virtual address specified by the store instruction, the size field 442 of the slot specifies the size of the data specified by the store instruction, and the register pointer field 444 of the slot specifies the store instruction. A pointer (register pointer) that points to a register in the general-purpose register file 43 for integer calculation is set (step S2).
4).

【0063】次に整数演算ユニット42は、アドレス・
サイズ保持部44内の他のすべてのスロットの仮想アド
レスフィールド441を調べ、当該ストア命令の指定す
る仮想アドレスと一致していたなら、そのスロットのバ
リッドフィールド443(のバリッドフラグ)をインバ
リッド表示状態にする(ステップS25,S26)。
Next, the integer arithmetic unit 42 outputs the address
The virtual address fields 441 of all other slots in the size holding unit 44 are checked, and if they match the virtual address specified by the store instruction, the valid field 443 (valid flag of) of that slot is set to the invalid display state. (Steps S25 and S26).

【0064】次に、整数演算ユニット42で解読された
命令が、整数演算用汎用レジスタファイル43内レジス
タの書き換えを伴う命令である場合について説明する。
この場合、整数演算ユニット42は、当該命令の指示す
る本来の動作を行う(ステップS27)他、アドレス・
サイズ保持部14内のすべてのスロット(或いはすべて
の有効なスロット)のレジスタポインタフィールド44
4を調べ、書き換えられるレジスタを指しているスロッ
トが有れば、そのスロットのバリッドフィールド443
(のバリッドフラグ)をインバリッド表示状態にする
(ステップS28)。
Next, a case will be described in which the instruction decoded by the integer arithmetic unit 42 is an instruction that involves rewriting the register in the integer general purpose register file 43.
In this case, the integer arithmetic unit 42 performs the original operation instructed by the instruction (step S27), and
Register pointer fields 44 of all slots (or all valid slots) in size holder 14
4 is checked, and if there is a slot pointing to the register to be rewritten, the valid field 443 of that slot
(Valid flag of) is set to the invalid display state (step S28).

【0065】この他、整数演算ユニット42は、前記第
1の実施例における整数演算ユニット12と同様に、以
下の(a),(b),(c)の少なくとも1つが成立す
る場合には、アドレス・サイズ保持部14内のすべての
スロットのバリッドフィールド443(のバリッドフラ
グ)をインバリッド表示状態にする。
In addition, the integer arithmetic unit 42, as in the integer arithmetic unit 12 in the first embodiment, has the following conditions (a), (b) and (c): The valid fields (valid flags) of all the slots in the address / size storage unit 14 are set to the invalid display state.

【0066】(a)整数演算用汎用レジスタファイル4
3がレジスタウインドウ方式で制御されている場合に、
レジスタウインドウを切り換える命令が実行されたとき (b)サブルーチンをコールする命令を実行したとき (c)サブルーチンからリターンする命令を実行したと
き 次に、整数演算ユニット42で解読された命令が、主メ
モリ5からコプロセッサ汎用レジスタファイル46内レ
ジスタへデータをロードするためのロード命令である場
合について説明する。
(A) General-purpose register file 4 for integer arithmetic
When 3 is controlled by the register window method,
When an instruction to switch the register window is executed (b) When an instruction to call a subroutine is executed (c) When an instruction to return from the subroutine is executed Next, the instruction decoded by the integer arithmetic unit 42 is the main memory. A case of a load instruction for loading data from 5 to a register in the coprocessor general-purpose register file 46 will be described.

【0067】この場合、まず整数演算ユニット42は、
アドレス・サイズ保持部44内でバリッドフィールド4
43がバリッド表示状態になっているスロットを探す
(ステップS29)。
In this case, first, the integer arithmetic unit 42
Valid field 4 in address / size storage 44
A slot in which 43 is in the valid display state is searched for (step S29).

【0068】次に整数演算ユニット42は、探したスロ
ットの仮想アドレスフィールド441の内容が、当該ロ
ード命令の指定する仮想アドレスと一致しているか否か
を調べる(ステップS30)。
Next, the integer arithmetic unit 42 checks whether or not the contents of the virtual address field 441 of the searched slot match the virtual address designated by the load instruction (step S30).

【0069】もし、当該ロード命令の指定する仮想アド
レスと一致する仮想アドレスフィールド441を持つア
ドレス・サイズ保持部44内スロットが有り(上記スト
ア命令実行時のステップS24〜S26の動作により、
高々1つしか一致しない)、且つそのスロットのサイズ
フィールド442の内容が当該ロード命令の指定するサ
イズに一致するならば(ステップS31)、整数演算ユ
ニット42は当該ロード命令の指示する本来の動作を行
わない。この場合、整数演算ユニット42は、仮想アド
レスが一致したアドレス・サイズ保持部14内スロット
のレジスタポインタフィールド444の内容(レジスタ
ポインタ)の指す整数演算用汎用レジスタファイル43
内レジスタから、当該ロード命令で(ロード先として)
指定されるコプロセッサ汎用レジスタファイル16内レ
ジスタへのデータ転送を、データ転送ユニット47によ
り行わせる(ステップS32)。
If there is a slot in the address / size storage unit 44 having a virtual address field 441 that matches the virtual address specified by the load instruction (by the operations of steps S24 to S26 when the store instruction is executed,
If the contents of the size field 442 of the slot match the size specified by the load instruction (step S31), the integer arithmetic unit 42 performs the original operation instructed by the load instruction. Not performed. In this case, the integer arithmetic unit 42 uses the integer arithmetic general purpose register file 43 indicated by the contents (register pointer) of the register pointer field 444 of the slot in the address size holding unit 14 in which the virtual addresses match.
From the internal register with the relevant load instruction (as the load destination)
Data transfer to the designated register in the coprocessor general-purpose register file 16 is performed by the data transfer unit 47 (step S32).

【0070】これに対し、当該ロード命令の指定する仮
想アドレスと一致する仮想アドレスフィールド441を
持つアドレス・サイズ保持部44内スロットが無いか、
或いは有ったとしても、そのスロットのサイズフィール
ド442の内容が当該ロード命令の指定するサイズと一
致しないならば、整数演算ユニット42は、主メモリ5
に格納されているデータをアドレス変換・データ転送部
41によりコプロセッサユニット45を介してコプロセ
ッサ汎用レジスタファイル46内レジスタにロードさせ
るという、当該ロード命令の指示する本来の動作を行う
(ステップS33)。 [第3の実施例]以上に述べた第1および第2の実施例
では、アドレス・サイズ保持部(14,44)という新
たな記憶手段を設ける必要があった。ところで、主メモ
リへの効率的なストア動作のために、ストアすべきデー
タおよびストア先を示す仮想アドレス情報を一時保持し
ておくストアバッファを持つプロセッサが知られてい
る。そこで、このストアバッファを前記第1および第2
の実施例におけるアドレス・サイズ保持部に代わる記憶
手段として利用するようにした(但し、ストアバッファ
内スロットのデータ構造は異なる)第3の実施例につき
図面を参照して説明する。
On the other hand, is there a slot in the address / size storage unit 44 having a virtual address field 441 that matches the virtual address specified by the load instruction?
Alternatively, even if there is, if the content of the size field 442 of the slot does not match the size specified by the load instruction, the integer operation unit 42 determines that the main memory 5
The address translation / data transfer unit 41 performs the original operation instructed by the load instruction to load the data stored in the register into the register in the coprocessor general-purpose register file 46 via the coprocessor unit 45 (step S33). . [Third Embodiment] In the first and second embodiments described above, it is necessary to provide a new storage means called the address / size holding unit (14, 44). By the way, there is known a processor having a store buffer for temporarily storing data to be stored and virtual address information indicating a store destination for an efficient store operation to a main memory. Therefore, this store buffer is stored in the first and second storage buffers.
A third embodiment adapted to be used as a storage means instead of the address / size holding unit in the above embodiment (however, the data structure of the slot in the store buffer is different) will be described with reference to the drawings.

【0071】図9はこの発明の第3の実施例を示す情報
処理装置のブロック構成図である。図9の情報処理装置
は、前記第1の実施例におけるプロセッサ1、主メモリ
2およびメモリバス3にそれぞれ相当する、プロセッサ
7、主メモリ8およびメモリバス9を備えている。
FIG. 9 is a block diagram of the information processing apparatus showing the third embodiment of the present invention. The information processing apparatus shown in FIG. 9 includes a processor 7, a main memory 8 and a memory bus 9, which respectively correspond to the processor 1, the main memory 2 and the memory bus 3 in the first embodiment.

【0072】プロセッサ7は、アドレス変換・データ転
送部71、整数演算ユニット72、整数演算用汎用レジ
スタファイル73、ストアバッファ74、コプロセッサ
ユニット75、コプロセッサ汎用レジスタファイル76
およびデータ転送ユニット77を同一チップに内蔵す
る。
The processor 7 includes an address conversion / data transfer unit 71, an integer operation unit 72, an integer operation general purpose register file 73, a store buffer 74, a coprocessor unit 75, and a coprocessor general purpose register file 76.
And the data transfer unit 77 is built in the same chip.

【0073】アドレス変換・データ転送部71は、メモ
リバス9と整数演算ユニット72との間に設けられ、当
該整数演算ユニット72からの命令またはデータの読み
出し要求に従って主メモリ8から命令またはデータを取
り込むデータ転送機能を持つ。アドレス変換・データ転
送部71はまた、整数演算ユニット72からのデータの
書き込み要求に従って主メモリ8へデータをストアする
データ転送機能も持つ。アドレス変換・データ転送部7
1は更に、主メモリ8とのデータ転送のために、仮想ア
ドレスを物理アドレスに変換するアドレス変換機能を持
つ。
The address conversion / data transfer unit 71 is provided between the memory bus 9 and the integer arithmetic unit 72, and fetches an instruction or data from the main memory 8 in accordance with an instruction or data read request from the integer arithmetic unit 72. Has a data transfer function. The address conversion / data transfer unit 71 also has a data transfer function of storing data in the main memory 8 in accordance with a data write request from the integer arithmetic unit 72. Address conversion / data transfer unit 7
1 further has an address conversion function for converting a virtual address into a physical address for data transfer with the main memory 8.

【0074】整数演算ユニット72は、アドレス変換・
データ転送部71により取り込まれた命令を解読して実
行する標準的な演算機能(ここでは整数演算機能)を持
つ演算手段である。
The integer arithmetic unit 72 has an address conversion
It is an arithmetic unit having a standard arithmetic function (integer arithmetic function here) for decoding and executing the instruction fetched by the data transfer unit 71.

【0075】この整数演算ユニット72は、解読した命
令がコプロセッサユニット75で演算を行うべきコプロ
セッサ命令の場合には、当該命令をコプロセッサユニッ
ト75に送るようになっている。
When the decoded instruction is a coprocessor instruction to be operated by the coprocessor unit 75, the integer arithmetic unit 72 sends the instruction to the coprocessor unit 75.

【0076】整数演算ユニット72はまた、解読した命
令が整数演算用汎用レジスタファイル73内レジスタの
データを主メモリ8にストアするためのストア命令の場
合には、主メモリ8へのライト要求と共に、当該ストア
命令の指定する(ストア先を示す)仮想アドレスおよび
当該ストア命令の指定する整数演算用汎用レジスタファ
イル73内レジスタに保持されているデータをアドレス
変換・データ転送部71に渡して、主メモリ8へのスト
ア動作を行わせるようになっている。
If the decoded instruction is a store instruction for storing the data in the register in the general-purpose register file 73 for integer arithmetic in the main memory 8, the integer arithmetic unit 72 sends a write request to the main memory 8, The virtual address designated by the store instruction (indicating the store destination) and the data held in the register in the general-purpose register file for integer operation 73 designated by the store instruction are passed to the address conversion / data transfer unit 71 to be transferred to the main memory. A store operation to 8 is performed.

【0077】整数演算ユニット72は更に、解読した命
令が主メモリ8からコプロセッサ汎用レジスタファイル
76にデータをロードするためのロード命令の場合に
は、ストアバッファ74を調べ、当該ストアバッファ7
4内に目的のデータが保持されているならば、そのデー
タをデータ転送ユニット77によりストアバッファ74
からコプロセッサ汎用レジスタファイル76に転送させ
るようにもなっている。
If the decoded instruction is a load instruction for loading data from the main memory 8 to the coprocessor general-purpose register file 76, the integer operation unit 72 further checks the store buffer 74 and checks the store buffer 7 concerned.
4 holds the target data, the data transfer unit 77 stores the target data in the store buffer 74.
To the coprocessor general-purpose register file 76.

【0078】整数演算ユニット72は更に、命令実行に
伴い整数演算用汎用レジスタファイル73内レジスタを
書き換える際に、当該レジスタを指すストアバッファ7
4内スロットが有れば、そのスロットをインバリッド状
態にするようにもなっている。
When rewriting the register in the general-purpose register file 73 for integer arithmetic with the execution of the instruction, the integer arithmetic unit 72 further stores the store buffer 7 indicating the register.
If there are four internal slots, that slot is also set to the invalid state.

【0079】整数演算用汎用レジスタファイル73は、
整数演算ユニット72が行う演算に使用するデータを保
持するのに用いられるレジスタ群からなるデータ記憶手
段である。
The general-purpose register file 73 for integer arithmetic is
It is a data storage means including a group of registers used to hold data used for the arithmetic operation performed by the integer arithmetic unit 72.

【0080】ストアバッファ74は、アドレス変換・デ
ータ転送部71により主メモリ8にストアされるデータ
を含む情報を保持するための記憶手段である。このスト
アバッファ74は、図10(a)に示すように、p段
(pは正の整数)のスロット#1,#2,#3,…#p
−1,#pを持つ。
The store buffer 74 is a storage means for holding information including data stored in the main memory 8 by the address conversion / data transfer unit 71. As shown in FIG. 10A, the store buffer 74 has p stages (p is a positive integer) of slots # 1, # 2, # 3, ... #p.
Has -1, #p.

【0081】ストアバッファ74内の各スロットは、図
10(b)に示すように、データフィールド741、仮
想アドレスフィールド742、物理アドレスフィールド
743、サイズフィールド744、レジスタポインタフ
ィールド745およびバリッドフィールド746からな
る。
Each slot in the store buffer 74 is composed of a data field 741, a virtual address field 742, a physical address field 743, a size field 744, a register pointer field 745 and a valid field 746, as shown in FIG. 10B. .

【0082】データフィールド741は、主メモリ8に
ストアされるデータを設定するためのものである。また
仮想アドレスフィールド742は、データフィールド7
41に設定されているデータのストア先を示す仮想アド
レスを設定するためのものであり、物理アドレスフィー
ルド743は、当該仮想アドレスに対応する物理アドレ
スを設定するためのものである。またサイズフィールド
744は、データフィールド741に設定されているデ
ータのサイズを設定するためのものであり、レジスタポ
インタフィールド745は当該データが保持されていた
整数演算用汎用レジスタファイル73内レジスタを指す
ポインタ(レジスタポインタ)を設定するためのもので
ある。またバリッドフィールド746は、対応するスロ
ットの情報が有効(バリッド)であるか否かを示すバリ
ッドフラグ(有効/無効情報)を設定するためのもので
ある。
The data field 741 is for setting the data stored in the main memory 8. The virtual address field 742 is the data field 7
The physical address field 743 is for setting a virtual address indicating the storage destination of the data set in 41, and the physical address field 743 is for setting the physical address corresponding to the virtual address. The size field 744 is for setting the size of the data set in the data field 741, and the register pointer field 745 is a pointer that points to a register in the general-purpose register file 73 for integer arithmetic in which the data is held. This is for setting (register pointer). The valid field 746 is for setting a valid flag (valid / invalid information) indicating whether or not the information of the corresponding slot is valid (valid).

【0083】コプロセッサユニット75は、整数演算ユ
ニット72にはない演算機能、例えば浮動小数点演算機
能を持つ演算手段である。コプロセッサユニット75
は、整数演算ユニット72が解読したコプロセッサ命令
を当該ユニット72から受け取って実行するようになっ
ている。
The coprocessor unit 75 is an arithmetic means having an arithmetic function which the integer arithmetic unit 72 does not have, for example, a floating point arithmetic function. Coprocessor unit 75
Receives the coprocessor instruction decoded by the integer arithmetic unit 72 from the unit 72 and executes it.

【0084】コプロセッサ汎用レジスタファイル76
は、コプロセッサユニット75が行う演算に使用するデ
ータを保持するのに用いられるレジスタ群からなるデー
タ記憶手段である。
Coprocessor general-purpose register file 76
Is a data storage means composed of a register group used for holding data used for the calculation performed by the coprocessor unit 75.

【0085】データ転送ユニット77は、整数演算ユニ
ット72からのデータ転送要求に従って、ストアバッフ
ァ74から汎用レジスタファイル76へのデータ転送を
行うデータ転送機能を持つ。
The data transfer unit 77 has a data transfer function of transferring data from the store buffer 74 to the general-purpose register file 76 in accordance with the data transfer request from the integer arithmetic unit 72.

【0086】次に、この発明の第3の実施例の動作を図
11および図12のフローチャートを参照して説明す
る。まず、アドレス変換・データ転送部71によって主
メモリ8から命令がフェッチされ、整数演算ユニット7
2に送られたものとする。
Next, the operation of the third embodiment of the present invention will be described with reference to the flow charts of FIGS. 11 and 12. First, the address translation / data transfer unit 71 fetches an instruction from the main memory 8, and the integer operation unit 7
Suppose it was sent to 2.

【0087】整数演算ユニット72は、アドレス変換・
データ転送部71から送られた命令を解読する(ステッ
プS41)。もし、この解読した命令が、整数演算用汎
用レジスタファイル73内レジスタのデータを主メモリ
8にストアするためのストア命令である場合、整数演算
ユニット72は、アドレス変換・データ転送部71に対
し、主メモリ8へのライト要求と共に、当該ストア命令
の指定する(ストア先を示す)仮想アドレスおよび当該
ストア命令の指定する整数演算用汎用レジスタファイル
73内レジスタに保持されているデータを渡し、このデ
ータを以下に述べるようにストアバッファ74を介して
主メモリ8にストアさせる(ステップS42)。
The integer arithmetic unit 72 is for address conversion
The instruction sent from the data transfer unit 71 is decoded (step S41). If the decoded instruction is a store instruction for storing the data of the register in the general-purpose integer register file 73 in the main memory 8, the integer arithmetic unit 72 instructs the address conversion / data transfer unit 71 to Along with the write request to the main memory 8, the virtual address designated by the store instruction (indicating the store destination) and the data held in the register in the general-purpose register file for integer operation 73 designated by the store instruction are passed. Is stored in the main memory 8 via the store buffer 74 as described below (step S42).

【0088】アドレス変換・データ転送部71は、整数
演算ユニット72からのライト要求に応じ、当該ユニッ
ト72から渡された(ストア先を示す)仮想アドレスを
物理アドレス(実アドレス)に変換する。そしてアドレ
ス変換・データ転送部71は、図示せぬライトポインタ
の指すストアバッファ74内スロットのバリッドフィー
ルド746(のバリッドフラグ)をバリッド表示状態に
し、そのスロットのデータフィールド741に整数演算
ユニット72から渡されたデータを、そのスロットの仮
想アドレスフィールド742に整数演算ユニット72か
ら渡された仮想アドレスを、そのスロットの物理アドレ
スフィールド743にアドレス変換により得た物理アド
レスを、そのスロットのサイズフィールド744に当該
データのサイズを、そのスロットのレジスタポインタフ
ィールド745に当該データが保持されていた整数演算
用汎用レジスタファイル73内レジスタを指すポインタ
を、それぞれ設定する。この際、ライトポインタが次の
スロットを指すように更新される。
The address translation / data transfer unit 71 translates the virtual address (indicating the store destination) passed from the unit 72 into a physical address (real address) in response to a write request from the integer operation unit 72. Then, the address translation / data transfer unit 71 sets the valid field 746 (valid flag of the slot) of the slot in the store buffer 74 pointed to by a write pointer (not shown) to the valid display state, and passes it from the integer arithmetic unit 72 to the data field 741 of the slot. The virtual address passed from the integer arithmetic unit 72 to the virtual address field 742 of the slot, the physical address obtained by the address conversion to the physical address field 743 of the slot, and the size field 744 of the slot to The size of the data is set in the register pointer field 745 of the slot, and the pointers pointing to the registers in the general-purpose register file for integer operation 73 in which the data is held are set. At this time, the write pointer is updated to point to the next slot.

【0089】アドレス変換・データ転送部71は、メモ
リバス9が空いている場合、ストアバッファ74の先頭
スロット#1を参照し、当該スロットのバリッドフィー
ルド746がバリッド表示状態にあるならば、当該スロ
ットの物理アドレスフィールド743に設定されている
物理アドレスで示される主メモリ2内領域に、当該スロ
ットのデータフィールド741に設定されているデータ
をストアするライトアクセスをメモリバス9を介して行
う。
The address conversion / data transfer unit 71 refers to the first slot # 1 of the store buffer 74 when the memory bus 9 is empty, and if the valid field 746 of the slot is in the valid display state, the slot concerned. A write access for storing the data set in the data field 741 of the slot is performed via the memory bus 9 in the area in the main memory 2 indicated by the physical address set in the physical address field 743 of the above.

【0090】このストア動作の結果、ストアバッファ7
4の先頭スロット#1が空くと、アドレス変換・データ
転送部71は、当該スロット#1のバリッドフィールド
746をインバリッド表示状態にした後、スロット#2
の内容をスロット#1にコピーし、スロット#3の内容
をスロット#2にコピーし、以下同様にスロット#pの
内容をスロット#p−1にコピーする。
As a result of this store operation, the store buffer 7
When the first slot # 1 of No. 4 becomes empty, the address translation / data transfer unit 71 sets the valid field 746 of the slot # 1 to the invalid display state, and then the slot # 2.
Content of slot # 1 is copied to slot # 1, the content of slot # 3 is copied to slot # 2, and so on. Similarly, the content of slot #p is copied to slot # p-1.

【0091】なお、ストアバッファ74内スロットを指
すリードポインタを設け、当該リードポインタの指すス
ロット(のデータフィールド741)に保持されている
データを主メモリ8にストアする構成とするならば、上
記のコピー動作は不要であり、ストア動作の後に当該リ
ードポインタを次のスロットを指すように更新するだけ
で良い。
If a structure is provided in which a read pointer pointing to the slot in the store buffer 74 is provided and the data held in (the data field 741 of) the slot pointed to by the read pointer is stored in the main memory 8, The copy operation is unnecessary, and it suffices to update the read pointer to point to the next slot after the store operation.

【0092】次に、整数演算ユニット72で解読された
命令が、整数演算用汎用レジスタファイル73内レジス
タの書き換えを伴う命令である場合について説明する。
この場合、整数演算ユニット72は、当該命令の指示す
る本来の動作を行う(ステップS43)他、ストアバッ
ファ74のすべてのスロット(或いはすべての有効なス
ロット)のレジスタポインタフィールド745を調べ、
書き換えられるレジスタを指しているスロットが有るな
らば、そのスロットのバリッドフィールド746(のバ
リッドフラグ)をインバリッド表示状態にする(ステッ
プS44)。
Next, a case will be described in which the instruction decoded by the integer arithmetic unit 72 is an instruction that involves rewriting the registers in the integer general purpose register file 73.
In this case, the integer arithmetic unit 72 performs the original operation instructed by the instruction (step S43), and also checks the register pointer fields 745 of all slots (or all valid slots) of the store buffer 74,
If there is a slot pointing to the register to be rewritten, the valid field 746 (valid flag of the slot) of that slot is set to the invalid display state (step S44).

【0093】この他、整数演算ユニット72は、前記第
1の実施例における整数演算ユニット12と同様に、以
下の(a),(b),(c)の少なくとも1つが成立す
る場合には、ストアバッファ74内のすべてのスロット
のバリッドフィールド746(のバリッドフラグ)をイ
ンバリッド表示状態にする。
Besides, in the same way as the integer arithmetic unit 12 in the first embodiment, the integer arithmetic unit 72, when at least one of the following (a), (b) and (c) is satisfied, The valid fields 746 (valid flags thereof) of all the slots in the store buffer 74 are set to the invalid display state.

【0094】(a)整数演算用汎用レジスタファイル7
3がレジスタウインドウ方式で制御されている場合に、
レジスタウインドウを切り換える命令が実行されたとき (b)サブルーチンをコールする命令を実行したとき (c)サブルーチンからリターンする命令を実行したと
き 次に、整数演算ユニット72で解読された命令が、主メ
モリ8から整数演算用汎用レジスタファイル73内レジ
スタへデータをロードするためのロード命令である場合
について説明する。
(A) General-purpose register file 7 for integer arithmetic
When 3 is controlled by the register window method,
When an instruction to switch the register window is executed (b) When an instruction to call a subroutine is executed (c) When an instruction to return from the subroutine is executed Next, the instruction decoded by the integer arithmetic unit 72 is the main memory. A case of a load instruction for loading data from 8 to a register in the general-purpose register file for integer operation 73 will be described.

【0095】この場合、まず整数演算ユニット72は、
ストアバッファ74内でバリッドフィールド746がバ
リッド表示状態になっているスロットを探す(ステップ
S45)。
In this case, first, the integer arithmetic unit 72
A slot in which the valid field 746 is in the valid display state is searched for in the store buffer 74 (step S45).

【0096】次に整数演算ユニット72は、探したスロ
ットの仮想アドレスフィールド742の内容が、当該ロ
ード命令の指定する仮想アドレスと一致しているか否か
を調べる(ステップS46)。
Next, the integer arithmetic unit 72 checks whether or not the contents of the virtual address field 742 of the searched slot match the virtual address designated by the load instruction (step S46).

【0097】もし、当該ロード命令の指定する仮想アド
レスと一致する仮想アドレスフィールド742を持つス
トアバッファ74内スロットが有り(高々1つしか一致
しない)、且つそのスロットのサイズフィールド744
の内容が当該ロード命令の指定するサイズに一致するな
らば(ステップS47)、整数演算ユニット72は当該
ロード命令の指示する本来の動作を行わない。この場
合、整数演算ユニット72は、仮想アドレスが一致した
ストアバッファ74内スロット(のデータフィールド7
41)から、当該ロード命令で(ロード先として)指定
されるコプロセッサ汎用レジスタファイル76内レジス
タへのデータ転送を、データ転送ユニット77により行
わせる(ステップS48)。
If there is a slot in the store buffer 74 having a virtual address field 742 that matches the virtual address specified by the load instruction (only one at most matches), and the size field 744 of that slot.
If the contents of the number match the size specified by the load instruction (step S47), the integer operation unit 72 does not perform the original operation instructed by the load instruction. In this case, the integer calculation unit 72 (the data field 7 of the slot in the store buffer 74 in which the virtual address matches)
41), the data transfer unit 77 causes the data transfer unit 77 to transfer the data to the register in the coprocessor general-purpose register file 76 designated by the load instruction (as the load destination) (step S48).

【0098】これに対し、当該ロード命令の指定する仮
想アドレスと一致する仮想アドレスフィールド742を
持つストアバッファ74内スロットが無いか、或いは有
ったとしても、そのスロットのサイズフィールド744
の内容が当該ロード命令の指定するサイズと一致しない
ならば、整数演算ユニット72は、主メモリ8に格納さ
れているデータをアドレス変換・データ転送部71によ
りコプロセッサユニット75を介してコプロセッサ汎用
レジスタファイル76内レジスタにロードさせるとい
う、当該ロード命令の指示する本来の動作を行う(ステ
ップS49)。
On the other hand, there is no slot in the store buffer 74 having the virtual address field 742 that matches the virtual address specified by the load instruction, or if there is, there is a size field 744 of that slot.
If the contents of the above do not match the size specified by the load instruction, the integer operation unit 72 causes the address conversion / data transfer unit 71 to transfer the data stored in the main memory 8 via the coprocessor unit 75 to the coprocessor general-purpose unit. The original operation instructed by the load instruction is performed to load the register in the register file 76 (step S49).

【0099】[0099]

【発明の効果】以上詳述したようにこの発明によれば、
第1の演算機能を有する第1の演算手段用の第1の記憶
手段から同一チップ上の第2の演算機能を有する第2の
演算手段用の第2の記憶手段へのデータ移動にストア命
令およびロード命令からなる命令シーケンスを適用する
プロセッサ内に、第1の記憶手段の各記憶領域にそれぞ
れ対応する記憶領域を有する第3の記憶手段を設け、ス
トア命令の実行時には、対象データが格納されている第
1の記憶手段内記憶領域に対応する第3の記憶手段内記
憶領域に、ストア先を示すアドレス情報を含む情報をセ
ットし、ロード命令がデコードされた際には第3の記憶
手段内を参照し、ロード元を示すアドレス情報が格納さ
れている有効な記憶領域が存在するならば、当該ロード
命令の実行に代えて、その記憶領域に対応する第1の記
憶手段内記憶領域に格納されているデータを当該ロード
命令の指定する第2の記憶手段内記憶領域に転送させる
構成とすることにより、第1の記憶手段から第2の記憶
手段へのデータ移動のためにストア命令およびロード命
令からなる命令シーケンスを適用しながらも、第2の記
憶手段にロードすべきデータを外部のメモリからではな
くて第1の記憶手段から取り出せることから、第1の記
憶手段から第2の記憶手段へのデータ移動が高速に行え
る。
As described above in detail, according to the present invention,
A store instruction for data movement from the first storage means for the first calculation means having the first calculation function to the second storage means for the second calculation means having the second calculation function on the same chip. In the processor to which the instruction sequence including the load instruction and the load instruction is applied, the third storage unit having the storage regions corresponding to the respective storage regions of the first storage unit is provided, and the target data is stored when the store instruction is executed. Information including address information indicating the store destination is set in the third storage unit internal storage area corresponding to the first storage unit internal storage area, and the third storage unit is set when the load instruction is decoded. If there is a valid storage area in which the address information indicating the load source is stored, the first storage section in the first storage means corresponding to the storage area instead of executing the load instruction. With the configuration in which the stored data is transferred to the storage area in the second storage means designated by the load instruction, the store instruction and the storage instruction for moving the data from the first storage means to the second storage means are stored. Since the data to be loaded into the second storage means can be taken out from the first storage means instead of from the external memory while applying the instruction sequence including the load instruction, the second storage from the first storage means Data can be moved to the means at high speed.

【0100】また、この発明によれば、第3の記憶手段
内の記憶領域に、ストア先を示すアドレス情報だけでな
く対象データが格納されている第1の記憶手段内記憶領
域を指すポインタ情報をも含む情報をセットする構成と
すると共に、ロード命令がデコードされた際に、第3の
記憶手段内にロード元を示すアドレス情報が格納されて
いる有効な記憶領域が存在するならば、当該ロード命令
の実行に代えて、その記憶領域に格納されているポイン
タ情報の指す第1の記憶手段内記憶領域に格納されてい
るデータを第2の記憶手段に転送させる構成とすること
により、第3の記憶手段の記憶領域数を、第1の記憶手
段の記憶領域数より少なくすることができる。
Further, according to the present invention, pointer information indicating a storage area in the first storage means in which not only address information indicating a store destination but also target data is stored in the storage area in the third storage means. If the effective storage area in which the address information indicating the load source is stored in the third storage means when the load instruction is decoded, Instead of executing the load instruction, the data stored in the storage area in the first storage means pointed to by the pointer information stored in the storage area is transferred to the second storage means. The number of storage areas of the third storage means can be made smaller than the number of storage areas of the first storage means.

【0101】また、この発明によれば、プロセッサから
外部のメモリへの効率的なストア動作のためにストアす
べきデータおよびストア先を示すアドレス情報を一時保
持しておく記憶手段を第3の記憶手段として利用し、ロ
ード命令がデコードされた際に、第3の記憶手段内にロ
ード元を示すアドレス情報が格納されている有効な記憶
領域が存在するならば、当該ロード命令の実行に代え
て、その記憶領域に格納されているデータを第2の記憶
手段内記憶領域に転送させる構成とすることにより、特
別の記憶手段を設けることなく、第1の記憶手段から第
2の記憶手段へのデータ移動の高速化を図ることができ
る。
Further, according to the present invention, the storage means for temporarily holding the data to be stored and the address information indicating the storage destination for the efficient storage operation from the processor to the external memory is provided as the third storage. If a valid storage area in which the address information indicating the load source is stored when the load instruction is decoded is used as a means, instead of executing the load instruction. By configuring the data stored in the storage area to be transferred to the storage area in the second storage means, it is possible to transfer data from the first storage means to the second storage means without providing a special storage means. It is possible to speed up data movement.

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

【図1】この発明の第1の実施例を示す情報処理装置の
ブロック構成図。
FIG. 1 is a block configuration diagram of an information processing apparatus showing a first embodiment of the present invention.

【図2】図1中のアドレス・サイズ保持部14内スロッ
トと整数演算用汎用レジスタファイル13内レジスタと
の関係、およびアドレス・サイズ保持部14内スロット
のデータ構造を示す図。
2 is a diagram showing the relationship between the slots in the address / size storage unit 14 and the registers in the general-purpose register file 13 for integer arithmetic in FIG. 1, and the data structure of the slots in the address / size storage unit 14;

【図3】上記第1の実施例の動作を説明するためのフロ
ーチャートの一部を示す図。
FIG. 3 is a diagram showing a part of a flowchart for explaining the operation of the first embodiment.

【図4】上記第1の実施例の動作を説明するためのフロ
ーチャートの残りを示す図。
FIG. 4 is a diagram showing the rest of the flowchart for explaining the operation of the first embodiment.

【図5】この発明の第2の実施例を示す情報処理装置の
ブロック構成図。
FIG. 5 is a block configuration diagram of an information processing apparatus showing a second embodiment of the present invention.

【図6】図5中のアドレス・サイズ保持部44内スロッ
トと整数演算用汎用レジスタファイル43内レジスタと
の関係、およびアドレス・サイズ保持部44内スロット
のデータ構造を示す図。
6 is a diagram showing the relationship between the slots in the address / size storage unit 44 and the registers in the general-purpose integer register file 43 in FIG. 5, and the data structure of the slots in the address / size storage unit 44.

【図7】上記第2の実施例の動作を説明するためのフロ
ーチャートの一部を示す図。
FIG. 7 is a diagram showing a part of a flowchart for explaining the operation of the second embodiment.

【図8】上記第2の実施例の動作を説明するためのフロ
ーチャートの残りを示す図。
FIG. 8 is a view showing the rest of the flowchart for explaining the operation of the second embodiment.

【図9】この発明の第3の実施例を示す情報処理装置の
ブロック構成図。
FIG. 9 is a block configuration diagram of an information processing apparatus showing a third embodiment of the present invention.

【図10】図9中のストアバッファ74の構造と、当該
ストアバッファ74内スロットのデータ構造を示す図。
10 is a diagram showing a structure of a store buffer 74 in FIG. 9 and a data structure of a slot in the store buffer 74. FIG.

【図11】上記第3の実施例の動作を説明するためのフ
ローチャートの一部を示す図。
FIG. 11 is a diagram showing a part of a flowchart for explaining the operation of the third embodiment.

【図12】上記第3の実施例の動作を説明するためのフ
ローチャートの残りを示す図。
FIG. 12 is a diagram showing the rest of the flowchart for explaining the operation of the third embodiment.

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

1…プロセッサ、2…主メモリ、3…メモリバス、11
…アドレス変換・データ転送部、12…整数演算ユニッ
ト(第1の演算手段、情報セット手段、データ転送制御
手段)、13…整数演算用汎用レジスタファイル(第1
の記憶手段)、14…アドレス・サイズ保持部(第3の
記憶手段)、15…コプロセッサユニット(第2の演算
手段)、16…コプロセッサ汎用レジスタファイル(第
2の記憶手段)、17…データ転送ユニット(データ転
送手段)、4…プロセッサ、5…主メモリ、6…メモリ
バス、41…アドレス変換・データ転送部、42…整数
演算ユニット(第1の演算手段、情報セット手段、デー
タ転送制御手段)、43…整数演算用汎用レジスタファ
イル(第1の記憶手段)、44…アドレス・サイズ保持
部(第3の記憶手段)、45…コプロセッサユニット
(第2の演算手段)、46…コプロセッサ汎用レジスタ
ファイル(第2の記憶手段)、47…データ転送ユニッ
ト(データ転送手段)、7…プロセッサ、8…主メモ
リ、9…メモリバス、71…アドレス変換・データ転送
部(情報セット手段、ストア手段)、72…整数演算ユ
ニット(第1の演算手段、情報セット手段、データ転送
制御手段)、73…整数演算用汎用レジスタファイル
(第1の記憶手段)、74…ストアバッファ(第3の記
憶手段)、75…コプロセッサユニット(第2の演算手
段)、76…コプロセッサ汎用レジスタファイル(第2
の記憶手段)、77…データ転送ユニット(データ転送
手段)。
1 ... Processor, 2 ... Main memory, 3 ... Memory bus, 11
... address conversion / data transfer section, 12 ... integer operation unit (first operation means, information setting means, data transfer control means), 13 ... integer operation general purpose register file (first operation means)
Storage unit), 14 ... Address / size holding unit (third storage unit), 15 ... Coprocessor unit (second operation unit), 16 ... Coprocessor general-purpose register file (second storage unit), 17 ... Data transfer unit (data transfer means), 4 ... Processor, 5 ... Main memory, 6 ... Memory bus, 41 ... Address conversion / data transfer section, 42 ... Integer operation unit (first operation means, information setting means, data transfer) Control unit), 43 ... General-purpose register file for integer calculation (first storage unit), 44 ... Address / size storage unit (third storage unit), 45 ... Coprocessor unit (second calculation unit), 46 ... Coprocessor general-purpose register file (second storage means), 47 ... Data transfer unit (data transfer means), 7 ... Processor, 8 ... Main memory, 9 ... Memory bus, DESCRIPTION OF SYMBOLS 1 ... Address conversion / data transfer section (information setting means, store means), 72 ... Integer operation unit (first operation means, information setting means, data transfer control means), 73 ... General purpose register file for integer operation (first) Storage means), 74 ... Store buffer (third storage means), 75 ... Coprocessor unit (second arithmetic means), 76 ... Coprocessor general-purpose register file (second)
Storage means), 77 ... Data transfer unit (data transfer means).

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】第1の演算機能を有する第1の演算手段
と、この第1の演算手段が行う演算に使用するデータを
保持するための第1の記憶手段と、前記第1の演算手段
にはない第2の演算機能を持つ第2の演算手段と、この
第2の演算手段が行う演算に使用するデータを保持する
ための第2の記憶手段とを同一チップに内蔵し、前記第
1の記憶手段から前記第2の記憶手段へのデータ移動
に、前記第1の記憶手段から前記チップ外部のメモリへ
のデータストアを指示するストア命令および当該メモリ
から前記第2の記憶手段へのデータロードを指示するロ
ード命令からなる命令シーケンスを適用するプロセッサ
において、 前記第1の記憶手段の各記憶領域にそれぞれ対応する記
憶領域であって、アドレス情報を含む情報が設定される
記憶領域を有する第3の記憶手段と、 前記ストア命令の実行時には、対象データが格納されて
いる前記第1の記憶手段内記憶領域に対応する前記第3
の記憶手段内記憶領域に、ストア先を示すアドレス情報
を含む情報をセットする情報セット手段と、 前記第1の記憶手段から前記第2の記憶手段へ直接デー
タを転送するデータ転送手段と、 前記ロード命令がデコードされた際に前記第3の記憶手
段内を参照し、ロード元を示すアドレス情報が格納され
ている有効な記憶領域が存在するならば、当該ロード命
令の実行に代えて、その記憶領域に対応する前記第1の
記憶手段内記憶領域に格納されているデータを前記デー
タ転送手段により当該ロード命令の指定する前記第2の
記憶手段内記憶領域に転送させるデータ転送制御手段と
を具備することを特徴とするプロセッサ。
1. A first arithmetic means having a first arithmetic function, a first storage means for holding data used for arithmetic operation performed by the first arithmetic means, and the first arithmetic means. A second arithmetic means having a second arithmetic function which is not present and a second storage means for holding data used for arithmetic operation performed by the second arithmetic means are built in the same chip; When moving data from one storage means to the second storage means, a store instruction for instructing data storage from the first storage means to a memory outside the chip and from the memory to the second storage means In a processor to which an instruction sequence including a load instruction for instructing data loading is applied, a storage area corresponding to each storage area of the first storage means, in which information including address information is set, A third storage unit having the third storage unit, and the third storage unit corresponding to the storage area in the first storage unit in which target data is stored when the store instruction is executed.
An information setting means for setting information including address information indicating a store destination in a storage area in the storage means; a data transfer means for directly transferring data from the first storage means to the second storage means; When the load instruction is decoded, the inside of the third storage means is referred to, and if there is an effective storage area in which the address information indicating the load source is stored, then the execution of the load instruction is executed instead of the execution of the load instruction. Data transfer control means for causing the data transfer means to transfer the data stored in the first storage means internal storage area corresponding to the storage area to the second storage means internal storage area specified by the load instruction. A processor provided with.
【請求項2】前記第3の記憶手段の各記憶領域に設定さ
れる情報には、その記憶領域の内容が有効であるか否か
を示す有効/無効情報が含まれており、 前記情報セット手段は、前記第3の記憶手段内記憶領域
への情報セットを行う際に、その記憶領域の内容が有効
であることを示す有効/無効情報を併せてセットすると
共に、前記第3の記憶手段内の他の記憶領域のうち、当
該ストア命令により指定されるストア先を示すアドレス
情報と一致するアドレス情報が設定されている記憶領域
の有効/無効情報を無効表示状態にし、前記第1の記憶
手段内記憶領域の内容の書き換えを伴う命令の実行時に
は、当該記憶領域に対応する前記第3の記憶手段内の記
憶領域の有効/無効情報を無効表示状態にするすること
を特徴とする請求項1記載のプロセッサ。
2. The information set in each storage area of the third storage means includes valid / invalid information indicating whether or not the content of the storage area is valid, and the information set. The means also sets valid / invalid information indicating that the content of the storage area is valid when the information is set in the storage area in the third storage means, and the third storage means Among the other storage areas in the storage area, the valid / invalid information of the storage area in which the address information matching the address information indicating the store destination specified by the store instruction is set is set to the invalid display state, and the first storage is performed. 7. When executing an instruction that involves rewriting the contents of the storage area in the storage means, the valid / invalid information of the storage area in the third storage means corresponding to the storage area is set to an invalid display state. 1 professional Sessa.
【請求項3】第1の演算機能を有する第1の演算手段
と、この第1の演算手段が行う演算に使用するデータを
保持するための第1の記憶手段と、前記第1の演算手段
にはない第2の演算機能を持つ第2の演算手段と、この
第2の演算手段が行う演算に使用するデータを保持する
ための第2の記憶手段とを同一チップに内蔵し、前記第
1の記憶手段から前記第2の記憶手段へのデータ移動
に、前記第1の記憶手段から前記チップ外部のメモリへ
のデータストアを指示するストア命令および当該メモリ
から前記第2の記憶手段へのデータロードを指示するロ
ード命令からなる命令シーケンスを適用するプロセッサ
において、 前記第1の記憶手段内の記憶領域より少数の記憶領域で
あって、アドレス情報および前記第1の記憶手段内記憶
領域を指すポインタ情報を含む情報が設定される複数の
記憶領域を有する第3の記憶手段と、 前記ストア命令の実行時には、前記第3の記憶手段内の
記憶領域を1つ選択して、当該記憶領域に、ストア先を
示すアドレス情報および対象データが格納されている前
記第1の記憶手段内記憶領域を指すポインタ情報を含む
情報をセットする情報セット手段と、 前記第1の記憶手段から前記第2の記憶手段へ直接デー
タを転送するデータ転送手段と、 前記ロード命令がデコードされた際に前記第3の記憶手
段内を参照し、ロード元を示すアドレス情報が格納され
ている有効な記憶領域が存在するならば、当該ロード命
令の実行に代えて、その記憶領域に格納されているポイ
ンタ情報の指す前記第1の記憶手段内記憶領域に格納さ
れているデータを前記データ転送手段により当該ロード
命令の指定する前記第2の記憶手段内記憶領域に転送さ
せるデータ転送制御手段とを具備することを特徴とする
プロセッサ。
3. A first arithmetic means having a first arithmetic function, a first storage means for holding data used in an arithmetic operation performed by the first arithmetic means, and the first arithmetic means. A second arithmetic means having a second arithmetic function which is not present and a second storage means for holding data used for arithmetic operation performed by the second arithmetic means are built in the same chip; When moving data from one storage means to the second storage means, a store instruction for instructing data storage from the first storage means to a memory outside the chip and from the memory to the second storage means In a processor to which an instruction sequence consisting of a load instruction for instructing data loading is applied, the number of storage areas is smaller than the storage area in the first storage means, and refers to address information and the storage area in the first storage means. Third storage means having a plurality of storage areas in which information including pointer information is set, and when executing the store instruction, one storage area in the third storage means is selected and set to the storage area. , Information setting means for setting information including address information indicating a store destination and pointer information pointing to a storage area in the first storage means in which target data is stored, and the first storage means to the second storage means. There is a data transfer means for directly transferring data to the storage means, and a valid storage area in which the address information indicating the load source is stored by referring to the inside of the third storage means when the load instruction is decoded. If so, instead of executing the load instruction, the data stored in the storage area in the first storage means pointed to by the pointer information stored in the storage area is replaced with the data. Processor, characterized by comprising the data transfer control means for transferring the to the storage area the second storage means for designating of the load instruction by the feeding means.
【請求項4】前記第3の記憶手段の各記憶領域に設定さ
れる情報には、その記憶領域の内容が有効であるか否か
を示す有効/無効情報が含まれており、 前記情報セット手段は、前記第3の記憶手段内記憶領域
への情報セットを行う際に、その記憶領域の内容が有効
であることを示す有効/無効情報を併せてセットすると
共に、前記第3の記憶手段内の他の記憶領域のうち、当
該ストア命令により指定されるストア先を示すアドレス
情報と一致するアドレス情報が設定されている記憶領域
の有効/無効情報を無効表示状態にし、前記第1の記憶
手段内記憶領域の内容の書き換えを伴う命令の実行時に
は、前記第3の記憶手段内のすべての記憶領域のうち、
前記書き換えられる第1の記憶手段内記憶領域を指すポ
インタ情報が設定されている記憶領域の有効/無効情報
を無効表示状態にすることを特徴とする請求項3記載の
プロセッサ。
4. The information set in each storage area of the third storage means includes valid / invalid information indicating whether or not the content of the storage area is valid, and the information set. The means also sets valid / invalid information indicating that the content of the storage area is valid when the information is set in the storage area in the third storage means, and the third storage means Among the other storage areas in the storage area, the valid / invalid information of the storage area in which the address information matching the address information indicating the store destination specified by the store instruction is set is set to the invalid display state, and the first storage is performed. At the time of executing an instruction that involves rewriting the contents of the storage area in the means, of all the storage areas in the third storage means,
4. The processor according to claim 3, wherein the valid / invalid information of the storage area in which the pointer information that points to the rewritable first storage means storage area is set to the invalid display state.
【請求項5】第1の演算機能を有する第1の演算手段
と、この第1の演算手段が行う演算に使用するデータを
保持するための第1の記憶手段と、前記第1の演算手段
にはない第2の演算機能を持つ第2の演算手段と、この
第2の演算手段が行う演算に使用するデータを保持する
ための第2の記憶手段とを同一チップに内蔵し、前記第
1の記憶手段から前記第2の記憶手段へのデータ移動
に、前記第1の記憶手段から前記チップ外部のメモリへ
のデータストアを指示するストア命令および当該メモリ
から前記第2の記憶手段へのデータロードを指示するロ
ード命令からなる命令シーケンスを適用するプロセッサ
において、 前記メモリへのストアに用いられるデータおよびストア
先を示すアドレス情報を含む情報が設定される複数の記
憶領域を有する第3の記憶手段と、 前記ストア命令の実行のために、当該ストア命令の指定
する前記第1の記憶手段内記憶領域に格納されているデ
ータおよびストア先を示すアドレス情報を含む情報を前
記第3の記憶手段内の記憶領域にセットする情報セット
手段と、 前記第3の記憶手段から前記第2の記憶手段へ直接デー
タを転送するデータ転送手段と、 前記第3の記憶手段内の記憶領域に格納されているデー
タを、その記憶領域に格納されているアドレス情報の指
定する前記メモリにストアするストア手段と、 前記ロード命令がデコードされた際に前記第3の記憶手
段内を参照し、ロード元を示すアドレス情報が格納され
ている有効な記憶領域が存在するならば、当該ロード命
令の実行に代えて、その記憶領域に格納されているデー
タを前記データ転送手段により当該ロード命令の指定す
る前記第2の記憶手段内記憶領域に転送させるデータ転
送制御手段とを具備することを特徴とするプロセッサ。
5. A first arithmetic means having a first arithmetic function, a first storage means for holding data used for arithmetic operation performed by the first arithmetic means, and the first arithmetic means. A second arithmetic means having a second arithmetic function which is not present and a second storage means for holding data used for arithmetic operation performed by the second arithmetic means are built in the same chip; When moving data from one storage means to the second storage means, a store instruction for instructing data storage from the first storage means to a memory outside the chip and from the memory to the second storage means In a processor to which an instruction sequence including a load instruction for instructing data loading is applied, the processor has a plurality of storage areas in which information including address information indicating data to be stored in the memory and a storage destination is set. And a third storage unit for executing the store instruction, the information including the address information indicating the data stored in the first storage unit internal storage area designated by the store instruction Information setting means to be set in a storage area in the third storage means, data transfer means for directly transferring data from the third storage means to the second storage means, and storage in the third storage means Reference is made to store means for storing the data stored in the area in the memory designated by the address information stored in the storage area, and inside the third storage means when the load instruction is decoded. If there is a valid storage area in which address information indicating the load source is stored, the data stored in that storage area is replaced with the data in place of the execution of the load instruction. Data transfer control means for causing the data transfer means to transfer to the storage area in the second storage means specified by the load instruction.
【請求項6】前記第3の記憶手段の各記憶領域に設定さ
れる情報には、その記憶領域の内容が有効であるか否か
を示す有効/無効情報、およびその記憶領域に設定され
るデータが格納されている前記第1の記憶手段内記憶領
域を指すポインタ情報が含まれており、 前記情報セット手段は、前記ストア命令の実行のために
当該ストア命令の指定する前記第1の記憶手段内記憶領
域に格納されているデータおよびストア先を示すアドレ
ス情報を前記第3の記憶手段内記憶領域にセットする際
に、その記憶領域の内容が有効であることを示す有効/
無効情報および当該ストア命令の指定する前記第1の記
憶手段内記憶領域を指すポインタ情報を併せてセット
し、前記第1の記憶手段内記憶領域の内容の書き換えを
伴う命令の実行時には、前記第3の記憶手段内のすべて
の記憶領域のうち、前記書き換えられる記憶領域を指す
ポインタ情報が設定されている記憶領域の有効/無効情
報を無効表示状態にすることを特徴とする請求項5記載
のプロセッサ。
6. The information set in each storage area of the third storage means includes valid / invalid information indicating whether or not the contents of the storage area are valid, and the storage area. Pointer information indicating a storage area in the first storage unit in which data is stored is included, and the information setting unit specifies the first storage specified by the store instruction for executing the store instruction. Valid / invalid indicating that the contents of the storage area is valid when the address information indicating the data stored in the internal storage area and the store destination is set in the third internal storage area.
Invalid information and pointer information pointing to the storage area in the first storage means designated by the store instruction are set together, and at the time of execution of the instruction accompanied by rewriting of the contents of the storage area in the first storage means, 6. The valid / invalid information of the storage area, in which the pointer information pointing to the rewritable storage area is set among all the storage areas in the storage means No. 3, is set to the invalid display state. Processor.
【請求項7】前記第1の記憶手段内の記憶領域群が複数
のグループに分けて管理され、そのうちの1つのグルー
プ内の記憶領域だけを処理の対象とし得る方式が適用さ
れたプロセッサであって、 前記情報セット手段は、前記処理対象となるグループを
切り換える命令の実行時には、前記第3の記憶手段内の
すべての記憶領域の有効/無効情報を無効表示状態にす
ることを特徴とする請求項2、請求項4または請求項6
に記載のプロセッサ。
7. A processor to which a method in which a storage area group in the first storage means is managed by being divided into a plurality of groups, and only the storage area in one of the groups can be processed is applied. The information setting means sets the valid / invalid information of all the storage areas in the third storage means to an invalid display state at the time of executing the instruction to switch the group to be processed. Claim 2, Claim 4 or Claim 6
Processor described in.
【請求項8】前記情報セット手段は、サブルーチンをコ
ールする命令の実行時またはサブルーチンからリターン
する命令の実行時には、前記第3の記憶手段内のすべて
の記憶領域の有効/無効情報を無効表示状態にすること
を特徴とする請求項2、請求項4、請求項6または請求
項7に記載のプロセッサ。
8. The information setting means displays the valid / invalid information of all storage areas in the third storage means in an invalid display state at the time of executing an instruction for calling a subroutine or an instruction for returning from a subroutine. The processor according to claim 2, claim 4, claim 6, or claim 7.
JP6051502A 1994-03-23 1994-03-23 Processor Pending JPH07262004A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6051502A JPH07262004A (en) 1994-03-23 1994-03-23 Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6051502A JPH07262004A (en) 1994-03-23 1994-03-23 Processor

Publications (1)

Publication Number Publication Date
JPH07262004A true JPH07262004A (en) 1995-10-13

Family

ID=12888770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6051502A Pending JPH07262004A (en) 1994-03-23 1994-03-23 Processor

Country Status (1)

Country Link
JP (1) JPH07262004A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100322149B1 (en) * 1998-02-17 2002-02-04 포만 제프리 엘 High performance speculative string/multiple operations
KR101221430B1 (en) * 2011-04-26 2013-01-11 삼성탈레스 주식회사 Apparatus for distributing multi-signal and method for operating the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100322149B1 (en) * 1998-02-17 2002-02-04 포만 제프리 엘 High performance speculative string/multiple operations
KR101221430B1 (en) * 2011-04-26 2013-01-11 삼성탈레스 주식회사 Apparatus for distributing multi-signal and method for operating the same

Similar Documents

Publication Publication Date Title
JP4171496B2 (en) Instruction folding processing for arithmetic machines using stacks
US5819063A (en) Method and data processing system for emulating a program
JP3634379B2 (en) Method and apparatus for stack caching
US5123094A (en) Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US6219783B1 (en) Method and apparatus for executing a flush RS instruction to synchronize a register stack with instructions executed by a processor
US5644746A (en) Data processing apparatus with improved mechanism for executing register-to-register transfer instructions
JPH0612386A (en) Method and system for synchronizing thread in process
US4454580A (en) Program call method and call instruction execution apparatus
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
US6115777A (en) LOADRS instruction and asynchronous context switch
JP3045952B2 (en) Full associative address translator
EP0669579B1 (en) Coherence index generation for use by an input/output adapter
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
US6065114A (en) Cover instruction and asynchronous backing store switch
Silberschatz et al. Operating systems
JPS6167160A (en) Virtual address converter
JPH07262004A (en) Processor
JP2002543490A (en) Method and apparatus for exception handling used in program code conversion
JPS6032220B2 (en) information processing equipment
US6112292A (en) Code sequence for asynchronous backing store switch utilizing both the cover and LOADRS instructions
JP3006204B2 (en) Information processing device
JP2924708B2 (en) Information processing device
JP3424430B2 (en) Processor
JP2902847B2 (en) Self-modifying code execution method
JPS63261430A (en) Method and apparatus for information processing