JPH03218526A - information processing equipment - Google Patents
information processing equipmentInfo
- Publication number
- JPH03218526A JPH03218526A JP2309994A JP30999490A JPH03218526A JP H03218526 A JPH03218526 A JP H03218526A JP 2309994 A JP2309994 A JP 2309994A JP 30999490 A JP30999490 A JP 30999490A JP H03218526 A JPH03218526 A JP H03218526A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- instruction
- immediate
- bus
- 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.)
- Granted
Links
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、電子計算機を用いた情報処理装置に関する
ものである。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to an information processing device using an electronic computer.
第5図は従来の情報処理装置のブロック図を示すもので
ある。第5図において、101は命令の解読を行う命令
解読部、102は連続する命令間におけるレジスタの干
渉を検出するレジスタ干渉検出部、103は複数のレジ
スタから構成され、32ビットの0データを保持する0
レジスタを持ったレジスタ部、104は整数演算部、1
05はデータキャッシュ(図示せず)との間のデータの
転送を司るデータ転送コントロール部、501はデータ
アドレスを生成するデータアドレス生成部である。1)
0は命令を転送する命令バス、1)1は即値データを転
送する32ビットの即値データパス、1)2は32ビッ
トの第1内部データパス、1)3は32ビットの第2内
部データパス、1)4は32ビットの第3内部データパ
ス、1)5は32ビットのデータアドレスバス、1)6
はデータキャッシュに転送する32ビットのストアデー
タバス、1)7はデータキャッシュから転送される32
ビットのロードデータバス、1)8は命令解読部101
から送出される制御信号てある。FIG. 5 shows a block diagram of a conventional information processing device. In FIG. 5, 101 is an instruction decoding unit that decodes instructions, 102 is a register interference detection unit that detects register interference between consecutive instructions, and 103 is composed of a plurality of registers and holds 32-bit 0 data. 0 to do
A register section with registers, 104 is an integer operation section, 1
05 is a data transfer control unit that controls data transfer to and from a data cache (not shown), and 501 is a data address generation unit that generates a data address. 1)
0 is an instruction bus for transferring instructions, 1) 1 is a 32-bit immediate data path for transferring immediate data, 1) 2 is a 32-bit first internal data path, 1) 3 is a 32-bit second internal data path , 1) 4 is a 32-bit third internal data path, 1) 5 is a 32-bit data address bus, 1) 6
is a 32-bit store data bus that transfers to the data cache, 1) 7 is a 32-bit store data bus that transfers from the data cache.
Bit load data bus, 1) 8 is instruction decoding unit 101
There are control signals sent from the
第6図は、第5図における従来の情報処理装置のデータ
アドレス生成部501の内部構成を示すブロック図であ
る。第6図において、601と203は32ビットのマ
ルチプレクサ、202は32ビットの加算器、204は
32ビットのフィードバックラッチである。1)1は3
2ビットの即値データパス、1)2は32ビットの第1
内部データパス、1)3は32ビットの第2内部データ
パスであり、それぞれ第5図における同名のバスに対応
する。210はマルチプレクサ601の出力で加算器2
02に入力する32ビットのデータパス、21)は加算
器202の出力で加算結果出力バスである。1)5はデ
ータアドレスバスて、第5図におけるデータアドレスバ
ス1)5に対応する。212はフィードバックラッチ2
04に保持されたlクロック前のデータアドレスバス1
)5のデータを出力するホールドデータバスである。2
13および214は、それぞれマルチプレクサ601.
203のセレクト条件を指示するデータセレクト信号
およびアドレスホールド信号であり、ともに第5図にお
ける制御信号1)8の一部である。FIG. 6 is a block diagram showing the internal configuration of the data address generation section 501 of the conventional information processing apparatus shown in FIG. In FIG. 6, 601 and 203 are 32-bit multiplexers, 202 is a 32-bit adder, and 204 is a 32-bit feedback latch. 1) 1 is 3
2-bit immediate data path, 1) 2 is the 32-bit first
Internal data path 1) 3 is a 32-bit second internal data path, each corresponding to the bus of the same name in FIG. 210 is the output of the multiplexer 601 and the adder 2
A 32-bit data path input to 02, 21) is the output of the adder 202 and is an addition result output bus. 1)5 is a data address bus, which corresponds to the data address bus 1)5 in FIG. 212 is feedback latch 2
Data address bus 1 held at 04 l clocks ago
)5 data is output. 2
13 and 214 are multiplexers 601.
These are a data select signal and an address hold signal that indicate the selection conditions of 203, and both are part of the control signal 1) 8 in FIG.
以上のように構成された従来の情報処理装置の動作につ
いて以下説明する。The operation of the conventional information processing apparatus configured as described above will be described below.
この従来の情報処理装置は、4段のパイプライン構成を
とり、演算は2つの32ビットレジスタのデータ間での
み行い、結果を再びレジスタに格納するレジスタ間演算
をとり、メモリとのデータのやりとりは、メモリとレジ
スタとの間でのみ行うロード・ストアアーキテクチャを
とった情報処理装置である。This conventional information processing device has a four-stage pipeline configuration, performs operations only between data in two 32-bit registers, performs inter-register operations in which the results are stored in the registers again, and exchanges data with memory. is an information processing device that uses a load/store architecture that performs operations only between memory and registers.
第7図は従来の情報処理装置の演算命令の動作を示すタ
イミング図である。第7図において、CI,C2等は従
来の情報処理装置の処理サイクルを、A. Bは処理
される演算命令を表す。FIG. 7 is a timing diagram showing the operation of arithmetic instructions in a conventional information processing device. In FIG. 7, CI, C2, etc. are the processing cycles of a conventional information processing device, and A. B represents an arithmetic instruction to be processed.
まず、第5図と第7図を用いて従来の情報処理装置の演
算命令の動作を説明する。First, the operation of arithmetic instructions in a conventional information processing device will be explained using FIGS. 5 and 7.
CIサイクル. 演算命令Aをフェッチし、命令バス1)0に送出する。CI cycle. Fetch arithmetic instruction A and send it to instruction bus 1)0.
C2サイクル:
命令バス1)0に送出された演算命令Aを命令解読部1
01が解読する。命令解読部101は、解読した命令に
応じた制御情報を制御信号1)8として送出するが、こ
こで演算命令Aの種類により以下に示す2種類の処理に
分かれる。C2 cycle: Arithmetic instruction A sent to instruction bus 1) 0 is sent to instruction decoder 1
01 deciphers it. The instruction decoder 101 sends out control information according to the decoded instruction as a control signal 1)8, which is divided into the following two types of processing depending on the type of arithmetic instruction A.
(1)演算命令Aか2つの32ビットレジスタのデータ
間の演算の場合
レジスタ部103は制御信号1)8で指定された2つの
32ビットのレジスタのデータをそれぞれ第1内部デー
タバスl12,第2内部データバス1)3に送出する。(1) In the case of operation instruction A or operation between data in two 32-bit registers, the register unit 103 transfers the data in the two 32-bit registers specified by the control signal 1)8 to the first internal data bus l12 and the 2 Internal data bus 1) Send to 3.
(2)演算命令Aがその命令に指定された即値デ−タを
特定のレジスタに設定する命令の場合命令解読部101
は、即値データを即値データバス1)1に送出する。ま
た、レジスタ部103は、制陣信号1)8で指定された
32ビットの0レジスタのデータを第1内部データバス
1)2に送出する。(2) When the operation instruction A is an instruction to set immediate value data specified by the instruction in a specific register, the instruction decoding unit 101
sends the immediate data to the immediate data bus 1)1. Further, the register unit 103 sends the 32-bit 0 register data designated by the control signal 1)8 to the first internal data bus 1)2.
また、演算命令Bをフェッチし、命令バス1)0に送出
する。It also fetches arithmetic instruction B and sends it to instruction bus 1)0.
C3サイクル:
整数演算部104は、C2サイクルで命令解読部101
が送出した制御信号1)8で指定された演算を実行する
。この時、この演算に使用されるデータはC2サイクル
で説明した2種類の場合で異なる。C3 cycle: The integer calculation unit 104 decodes the instruction decoding unit 101 in the C2 cycle.
Executes the operation specified by the control signal 1)8 sent by the controller. At this time, the data used for this calculation differs in the two types of cases explained in the C2 cycle.
(1) 演算命令Aが2つの32ビットレジスタのデ
ータ間の演算の場合
整数演算部104は、C2サイクルでレジスタ部103
が第1内部データバス1)2および第2内部データバス
1)3に送出したデータを入力し、演算を実行する。演
算終了後、演算結果を32ビットの第3内部データバス
1)4に送出する。(1) When operation instruction A is an operation between data in two 32-bit registers, the integer operation unit 104 executes the operation in the register unit 103 in the C2 cycle.
The data sent to the first internal data bus 1) 2 and the second internal data bus 1) 3 are input, and an operation is executed. After the calculation is completed, the calculation result is sent to the 32-bit third internal data bus 1)4.
(2)演算命令Aがその命令に指定された即値デ−タを
特定のレジスタに設定する命令の場合整数演算部104
は、C2サイクルで命令解読部101が即値データバス
1)1に送出した即値データを入力し、レジスタ部10
3が第1内部データバス1)2に送出したOとの加算を
実行する。演算終了後、演算結果を32ビットの第3内
部データバス1)4に送出する。(2) If the operation instruction A is an instruction to set immediate value data specified by the instruction in a specific register, the integer operation unit 104
inputs the immediate data sent by the instruction decoder 101 to the immediate data bus 1) 1 in the C2 cycle, and inputs the immediate data sent to the register unit 10.
3 performs addition with O sent to the first internal data bus 1)2. After the calculation is completed, the calculation result is sent to the 32-bit third internal data bus 1)4.
演算命令Bに対する処理はC2サイクルにおける演算命
令Aの場合と同様であるため、詳細な説明は省略する。The processing for the arithmetic instruction B is the same as that for the arithmetic instruction A in the C2 cycle, so a detailed explanation will be omitted.
C4サイクル:
レジスタ部103は、C3サイクルで整数演算部104
か第3内部データバス1)4に送出したデータを02サ
イクルで制御信号1)8で指定されたレジスタへ格納す
る。C4 cycle: The register unit 103 is activated by the integer operation unit 104 in the C3 cycle.
The data sent to the third internal data bus 1) 4 is stored in the register specified by the control signal 1) 8 in the 02 cycle.
演算命令Bに対する処理はC3サイクルにおける演算命
令Aの場合と同様であるため、詳細な説明は省略する。The processing for the arithmetic instruction B is the same as that for the arithmetic instruction A in the C3 cycle, so a detailed explanation will be omitted.
つぎに、従来の情報処理装置のメモリアドレス計算を要
する命令の動作について説明する。例として、レジスタ
のデータをメモリに格納するストア命令を挙げる。Next, the operation of an instruction that requires memory address calculation in a conventional information processing device will be explained. An example is a store instruction that stores register data in memory.
第8図と第9図は従来の情報処理装置のメモリへデータ
を格納するストア命令の動作を示すタイミング図である
。ここで、第8図はデータを格納するメモリアドレスの
計算に1つの32ビットのレジスタのデータとそのスト
ア命令に指定された即値データとの和をとる場合(以下
lクロツクストアと呼ぶ)を示し、第9図はデータを格
納するメモリアドレスの計算に2つの32ビットのレジ
スタのデータとの和をとる場合(以下2クロックストア
と呼ぶ)を示す。FIGS. 8 and 9 are timing diagrams showing the operation of a store command for storing data in the memory of a conventional information processing device. Here, FIG. 8 shows a case where the memory address for storing data is calculated by adding the data of one 32-bit register and the immediate data specified in the store instruction (hereinafter referred to as l clock store). FIG. 9 shows a case where the sum of data in two 32-bit registers is calculated to calculate a memory address for storing data (hereinafter referred to as 2-clock store).
まず、第5図および第6図と第8図とを用いて従来の情
報処理装置の1クロックストアの動作を説明する。説明
の簡単のため、1クロ、ツタストア時のアドレス計算に
用いるレジスタのデータを(r 1) ,即値データを
(immA),ストアすべきレジスタのデータを(r2
)とする。First, the operation of a one-clock store in a conventional information processing apparatus will be explained using FIGS. 5, 6, and 8. To simplify the explanation, the data of the register used for address calculation when storing 1 crotch is (r 1), the immediate value data is (immA), and the data of the register to be stored is (r2).
).
CIサイクル:
ストア命令Aをフェッチし、命令バス1)0に送出する
。CI cycle: Fetch store instruction A and send it to instruction bus 1)0.
C2サイクル:
命令バス1)0に送出されたストア命令Aを命令解読部
101か解読する。命令解読部101は、制御情報を制
御信号1)8として送出し、即値データ(immA)を
即値データバス1)1に送出する。C2 cycle: The store instruction A sent to the instruction bus 1)0 is decoded by the instruction decoder 101. The instruction decoder 101 sends control information as a control signal 1) 8 and sends immediate data (immA) to the immediate data bus 1) 1.
また、レジスタ部103は、制御信号1)8で指定され
たメモリアドレス計算に用いる32ビットのレジスタの
データ(r1)を第2内部データバス1)3に送出し、
メモリに格納すべき32ビットのレジスタのデータ(r
2)を第1内部データバス1)2に送出する。Further, the register unit 103 sends the 32-bit register data (r1) used for calculating the memory address specified by the control signal 1)8 to the second internal data bus 1)3,
32-bit register data (r
2) to the first internal data bus 1)2.
つぎに、データアドレス生成部501の動作について説
明する。マルチプレクサ601は、制御信号1)8とし
て送出されたデータセレクト信号213の情報により、
データパス210に即値データパス1)1の即値データ
(immA)を出力する。加算器202はそれぞれ32
ビットのデータパス210と第2内部データバス1)3
とに出力された即値データ(immA)とデータ(r1
)を加算し、結果を加算結果出力バス21)に出力する
。マルチプレクサ203は、制御信号1)8として送出
されたアドレスホールド信号214の情報により、デー
タアドレスバス1)5に加算結果出力バス21)のデー
タを出力する。こうして、データアドレスバス1)5に
ストアすべきデータのアドレス(immA)+(r1)
を送出する。Next, the operation of data address generation section 501 will be explained. The multiplexer 601 uses the information of the data select signal 213 sent out as the control signal 1)8.
Immediate data (immA) of immediate data path 1) 1 is output to data path 210. Each adder 202 has 32
Bit data path 210 and second internal data bus 1) 3
The immediate value data (immA) and data (r1
) and outputs the result to the addition result output bus 21). The multiplexer 203 outputs the data of the addition result output bus 21) to the data address bus 1) 5 based on the information of the address hold signal 214 sent as the control signal 1) 8. In this way, the address (immA) + (r1) of the data to be stored in the data address bus 1)5
Send out.
C3サイクル:
データアドレスバス1)5に送出されたアドレス(im
mA)+ (r 1)を用いデータキャッシュをアクセ
スする。ここでデータキャッシュはヒットすると仮定す
る。また、データ転送コントロール部105は第1内部
データバス1)2に送出されたデータ(r2)をラッチ
する。C3 cycle: address (im
Access the data cache using mA)+(r 1). Assume here that the data cache is hit. Further, the data transfer control unit 105 latches the data (r2) sent to the first internal data bus 1)2.
C4サイクル:
データ転送コントロール部105はC3サイクルでラッ
チしたデータ(r2)をストアデータバス1)6に送出
し、データキャッシュに格納する。C4 cycle: The data transfer control unit 105 sends the data (r2) latched in the C3 cycle to the store data bus 1) 6 and stores it in the data cache.
つぎに、第5図および第6図と第9図とを用い、従来の
情報処理装置の2クロックストアの動作を説明する。説
明の簡単のため、2クロツクストア時のアドレス計算に
用いるレジスタのデータを(r l)と(r 2) 、
ストアすべきレジスタのデータを(r3)とする。Next, the operation of the two-clock store in the conventional information processing apparatus will be explained using FIGS. 5, 6, and 9. To simplify the explanation, the register data used for address calculation during two-clock storage are expressed as (r l) and (r 2),
Assume that the data in the register to be stored is (r3).
CIサイクル:
ストア命令Aをフェッチし、命令バス1)0に送出する
。CI cycle: Fetch store instruction A and send it to instruction bus 1)0.
C2サイクル:
命令バス1)0に送出されたストア命令Aを命令解読部
101が解読し、制御情報を制御信号1)8として送出
する。レジスタ部103は、制御信号1)8で指定され
たメモリアドレス計算に用いる2つの32ビットレジス
タのデータ(r 1) , (r 2)を第1内部デ
ータバス1)2と第2内部データバス1)3とに送出す
る。C2 cycle: The instruction decoder 101 decodes the store instruction A sent to the instruction bus 1)0, and sends out the control information as the control signal 1)8. The register unit 103 transfers the data (r 1) and (r 2) of two 32-bit registers used for memory address calculation specified by the control signal 1) 8 to the first internal data bus 1) 2 and the second internal data bus. 1) Send to 3.
つぎに、データアトルス生成部501の動作について説
明する。マルチプレクサ601は、制御信号1)8とし
て送出されたデータセレクト信号213の情報により、
データバス210に第】内部データバス1)2のデータ
を出力する。加算器202は、それぞれ32ビットのデ
ータバス210と第2内部データバス1)3とに出力さ
れたデータ(r 1) .(r2)を加算し、結果を加
算結果出力バス21)に出力する。マルチプレクサ20
3は、制御信号1)8として送出されたアドレスホール
ド信号214の情報により、データアドレスバス1)5
に加算結果出力バス21)のデータを出力する。こうし
て、データアドレスバス1)5にストアすべきデータの
アドレス(r 1) +(r 2)を送出する。Next, the operation of the data atlas generation unit 501 will be explained. The multiplexer 601 uses the information of the data select signal 213 sent out as the control signal 1)8.
The data on the internal data bus 1) 2 is output to the data bus 210. The adder 202 outputs data (r 1) . (r2) and outputs the result to the addition result output bus 21). multiplexer 20
3 is connected to the data address bus 1) 5 by the information of the address hold signal 214 sent as the control signal 1) 8.
The data of the addition result output bus 21) is output to. In this way, the address (r 1) + (r 2) of the data to be stored is sent to the data address bus 1)5.
C3サイクル:
命令解読部101は、C2サイクルで解読したストア命
令Aが2クロックストアであったことから、2クロツク
ストアの2サイクル目の動作を示した制御情報を制御信
号1)8として送出する。C3 cycle: Since the store instruction A decoded in the C2 cycle is a 2-clock store, the instruction decoder 101 sends control information indicating the second cycle operation of a 2-clock store as a control signal 1)8.
レジスタ部103は制御信号1)8に指定されたメモリ
に格納すべき32ビットレジスタのデータ(r3)を第
1内部データバス1)2に送出する。The register unit 103 sends the data (r3) of the 32-bit register to be stored in the memory designated by the control signal 1)8 to the first internal data bus 1)2.
データアドレス生成部501は、制御信号1)8として
送出されたアドレスホールド信号214の情報により、
C3サイクルで加算した結果をデータアドレスバス1)
5に送出し続けるために、ホールドデータバス212の
データ(r 1) +(r 2)がデータアドレスバス
1)5に出力するようにマルチプレクサ203を制御す
る。また、命令解読部101はC2サイクルで解読した
命令が2クロツクストアの命令であったことから、つぎ
の命令の解読を行わない(n o p)。The data address generation unit 501 uses the information of the address hold signal 214 sent out as the control signal 1)8.
The result of addition in C3 cycle is transferred to data address bus 1)
5, the multiplexer 203 is controlled so that the data (r 1) + (r 2) on the hold data bus 212 is output to the data address bus 1)5. Furthermore, since the instruction decoded in the C2 cycle was a two-clock store instruction, the instruction decoding unit 101 does not decode the next instruction (no p).
C4サイクル:
データアドレスバス1)5に送出されたアドレス(r
1) + (r 2)を用いデータキャッシュをアクセ
スする。ここで、データキャッシュはヒットすると仮定
する。また、データ転送コントロール部105は第1内
部データバス1)2に送出されたデータ(r3)をラッ
チする。C4 cycle: Address (r) sent to data address bus 1)5
1) Access the data cache using + (r 2). Here, assume that the data cache is hit. Further, the data transfer control unit 105 latches the data (r3) sent to the first internal data bus 1)2.
C5サイクル:
データ転送コントロール部105は、C4サイクルでラ
ッチしたデータ(r3)をストアデータバス1)6に送
出し、データキャッシュに格納する。C5 cycle: The data transfer control unit 105 sends the data (r3) latched in the C4 cycle to the store data bus 1) 6 and stores it in the data cache.
以上説明したように、2クロックストア命令では3つの
レジスタのデータを必要とするため、その実行に5サイ
クル必要とする。このため、lサイクル分パイプライン
に空白ができる。As explained above, since the two-clock store instruction requires data in three registers, it requires five cycles to execute. Therefore, there is a blank space in the pipeline for l cycles.
つぎに、従来の情報処理装置の即値データを特定のレジ
スタに設定する演算命令とメモリアドレス計算を必要と
する命令とが連続し、かつ後続する命令のメモリアドレ
ス計算に用いるレジスタが、先行する演算命令で即値デ
ータを設定すべきレジスタと一致する場合について、そ
の動作を説明する。Next, in a conventional information processing device, an arithmetic instruction that sets immediate value data in a specific register and an instruction that requires memory address calculation are consecutive, and the register used for the memory address calculation of the subsequent instruction is used for the preceding operation. The operation will be explained when the immediate value data matches the register to be set by the instruction.
メモリアドレス計算を必要とする命令の例として、スト
ア命令を挙げる。A store instruction is given as an example of an instruction that requires memory address calculation.
第10図と第1)図は、従来の情報処理装置の即値デー
タを特定のレジスタに設定する演算命令Aとストア命令
Bとが連続し、かつ後続するストア命令Bのメモリアド
レス計算に用いるレジスタが先行する演算命令Aて即値
データを設定すべきレジスタと一致する場合(レジスタ
干渉)の動作を示すタイミング図である。第lθ図はス
トア命令Bがlクロックストアの場合、第1)図はスト
ア命令Bが2クロツクストアの場合を表す。FIG. 10 and FIG. 1) show a conventional information processing device in which an arithmetic instruction A and a store instruction B that set immediate value data in a specific register are consecutive, and a register is used for calculating the memory address of the subsequent store instruction B. FIG. 12 is a timing diagram showing the operation when the preceding operation instruction A matches the register in which immediate value data should be set (register interference). FIG. 1.theta. shows the case where the store instruction B is a 1-clock store, and FIG. 1) shows the case where the store instruction B is a 2-clock store.
第5図および第6図と第10図とを用い、従来の情報処
理装置の即値データを特定のレジスタに設定する演算命
令Aと1クロックストア命令Bとか連続し、ストア命令
Bのメモリアドレス計算に用いるレジスタと先行する演
算命令Aで即値データを設定すべきレジスタとのレジス
タ干渉が発生する場合の動作について説明する。説明の
簡単のために干渉か発生するレジスタをrl、演算命令
八の即値データを(immA)、lクロックストア命令
Bのアドレス計算に用いる即値データを(immB)、
スト了すべきレジスタのデ.一夕を(r2)とする。Using FIG. 5, FIG. 6, and FIG. 10, an operation instruction A for setting immediate value data in a specific register of a conventional information processing device and a 1-clock store instruction B are used to calculate the memory address of the store instruction B. The operation when register interference occurs between the register used for the operation and the register to which immediate value data should be set by the preceding operation instruction A will be described. For simplicity of explanation, the register where interference occurs is rl, the immediate data of operation instruction 8 is (immA), the immediate data used for address calculation of l clock store instruction B is (immB),
De of registers to be completed. Let Itoyo be (r2).
C1サイクル: (1) 演算命令Aに対する処理 演算命令Aをフエツチし、命令バス1)0に送出する。C1 cycle: (1) Processing for operation instruction A Fetch arithmetic instruction A and send it to instruction bus 1)0.
C2サイクル:
(1) 演算命令Aに対する処理
命令バス1)0に送出された演算命令Aを命令解読部1
01が解読する。命令解読部101は、制御情報を制御
信号1)8として送出し、即値データ(immA)を即
値データバス1)1に送出する。C2 cycle: (1) Processing instruction bus 1 for operation instruction A Processing instruction A sent to instruction bus 1)
01 deciphers it. The instruction decoder 101 sends control information as a control signal 1) 8 and sends immediate data (immA) to the immediate data bus 1) 1.
また、レジスタ部103は、制御信号1)8で指定され
た32ビットの0レジスタのデータを第1内部データバ
ス1)2に送出する。Further, the register unit 103 sends the 32-bit 0 register data specified by the control signal 1)8 to the first internal data bus 1)2.
(2)ストア命令Bに対する処理
ストア命令Bをフエツチし、命令バス1)0に送出する
。(2) Processing for store instruction B Fetch store instruction B and send it to instruction bus 1)0.
C3サイクル:
(1) 演算命令Aに対する処理
整数演算部104は、C2サイクルで命令解読部101
が即値データバス1)1に送出した即値データ(imm
A)を入力し、レジスタ部103が第1内部データバス
1)2に送出した0との加算を実行する。演算終了後、
演算結果を32ビットの第3内部データバス1)4に送
出する。C3 cycle: (1) The integer arithmetic unit 104 processes the arithmetic instruction A, and the integer arithmetic unit 104 processes the instruction decoder 101 in the C2 cycle.
The immediate data (imm
A) is input, and addition with 0 sent from the register unit 103 to the first internal data bus 1) 2 is executed. After the calculation is completed,
The calculation result is sent to the 32-bit third internal data bus 1)4.
(2)ストア命令Bに対する処理
命令バス1)0に送出されたストア命令Bを命令解読部
101が解読する。命令解読部101は、制御情報を制
御信号1)8として送出し、即値データ(immB)を
即値データバス1)1に送出する。(2) Processing for store instruction B The instruction decoder 101 decodes the store instruction B sent to the instruction bus 1)0. The instruction decoder 101 sends control information as a control signal 1) 8 and sends immediate data (immB) to the immediate data bus 1) 1.
また、レジスタ部103は、制御信号!18で指定され
たメモリアドレス計算に用いる32ビットのレジスタの
データ(r1)を第2内部データバス1)3に送出し、
メモリに格納すべき32ビットのレジスタのデータ(r
2)を第1内部データバス1)2に送出する。ただし、
第2内部データバス1)3のデータ(r1)は演算命令
Aが終了していないため無効なデータである。前記の命
令解読部101の処理と並行してレジスタ干渉検出部1
02はストア命令Bのメモリアドレス計算に用いるレジ
スタr1と先行する演算命令Aで即値データを設定すべ
きレジスタr1とのレジスタ干渉を検出し、結果を命令
解読部101に通知する。The register unit 103 also receives a control signal! Sends the 32-bit register data (r1) used for calculating the memory address specified in 18 to the second internal data bus 1)3,
32-bit register data (r
2) to the first internal data bus 1)2. however,
The data (r1) on the second internal data bus 1)3 is invalid data because the arithmetic instruction A has not been completed. In parallel with the processing of the instruction decoding unit 101, the register interference detection unit 1
02 detects register interference between the register r1 used for calculating the memory address of the store instruction B and the register r1 to which immediate value data should be set in the preceding operation instruction A, and notifies the instruction decoder 101 of the result.
C4サイクル:
(1)演算命令Aに対する処理
レジスタ部103は、C3サイクルで整数演算部104
が第3内部データバス1)4に送出した即値データ(i
mmA)を02サイクルで制御信号1)8で指定された
レジスタr1へ格納する。C4 cycle: (1) The processing register unit 103 for operation instruction A is processed by the integer operation unit 104 in the C3 cycle.
The immediate data (i) sent to the third internal data bus 1) 4
mmA) is stored in the register r1 specified by control signal 1)8 in cycle 02.
(2)ストア命令Bに対する処理
命令解読部1(1)は、レジスタ干渉検出部102か0
3サイクルでストア命令Bのレジスタrlの干渉を検出
したため、C3サイクルと同様にストア命令Bの解読を
続行し、制御情報を制御信号1)8として送出し、即値
データ(immB)を即値データバス1)1に送出する
。レジスタ部103は、制御信号1)8に指定されたメ
モリアドレス計算にルいる32ビットのレジスタのデー
タ(rl)を第2内部データバス1)3に送出し、メモ
リに格納すへき32ビットのレジスタのデータ(r2)
を第1内部データバス1)2に送出する。(2) The processing instruction decoder 1 (1) for the store instruction B determines whether the register interference detector 102 or 0
Since interference in register rl of store instruction B was detected in cycle 3, the decoding of store instruction B is continued in the same way as in cycle C3, control information is sent as control signal 1) 8, and immediate data (immB) is transferred to the immediate data bus. 1) Send to 1. The register unit 103 sends the 32-bit register data (rl) required for memory address calculation specified by the control signal 1) 8 to the second internal data bus 1) 3, and outputs the 32-bit register data (rl) to be stored in the memory. Register data (r2)
is sent to the first internal data bus 1)2.
つぎに、データアドレス生成部501の動作について説
明する。マルチプレクサ601は、制御信号1)8とし
て送出されたデータセレクト信号213の情軸により、
データパス210に即値データバス1)1の即値データ
(immB)を出力する。加算器202は、それぞれ3
2ビットのデータパス210と第2内部データバス1)
3とに出力された即値データ(immB)およびデータ
(rl)を加算し、結果を加算結果出力バス21)に出
力する。マルチプレクサ203は制御信号1)8として
送出されたアドレスホールド信号214の情報により、
データアドレスバス1)5に加算結果出力バス21)の
データを出力する。こうして、データアドレスバス1)
5にストアすべきデータのアドレス(immB)+(r
1)を送出する。Next, the operation of data address generation section 501 will be explained. The multiplexer 601 operates according to the data selection signal 213 sent as the control signal 1)8.
The immediate data (immB) of the immediate data bus 1) 1 is output to the data path 210. The adders 202 each have 3
2-bit data path 210 and second internal data bus 1)
The immediate value data (immB) and data (rl) outputted to 3 and 3 are added, and the result is output to the addition result output bus 21). The multiplexer 203 uses the information of the address hold signal 214 sent as the control signal 1)8,
The data of the addition result output bus 21) is output to the data address bus 1)5. Thus, the data address bus 1)
Address of data to be stored in 5 (immB) + (r
1) is sent.
C5,C6サイクルの動作は、1クロックストアで説明
したC3,C4サイクルと同様であるため、説明は省略
する(第8図に関する説明を参照)。The operations of the C5 and C6 cycles are the same as the C3 and C4 cycles explained in connection with the 1-clock store, so the explanation will be omitted (see the explanation regarding FIG. 8).
以上説明したように、1クロックストア命令Bのメモリ
アドレス計算に用いるレジスタrlと先行する演算命令
で即値データを設定すべきレジスタr1とのレジスタ干
渉が発生する場合は、1サイクル分パイプラインに空白
ができる。ここでは、メモリアドレス計算を要する命令
の例としてlクロックストア命令を挙げたが、他のメモ
リアドレス計算を要するロード命令や分岐命令等の命令
でも、前述の干渉が発生する場合には同じ理由により、
1サイクル分バイブラインに空白か発生する。As explained above, if register interference occurs between register rl used for memory address calculation of 1-clock store instruction B and register r1 to which immediate data should be set in the preceding operation instruction, there will be a blank space in the pipeline for one cycle. I can do it. Here, the l clock store instruction is given as an example of an instruction that requires memory address calculation, but the same reason may apply to other instructions that require memory address calculation, such as a load instruction or a branch instruction, if the interference described above occurs. ,
A blank space appears on the vibe line for one cycle.
同様に、2クロックストア命令Bのメモリアドレス計算
に用いるレジスタと先行する演算命令Aで即値データを
設定すべきレジスタとのレジスタ干渉が発生する場合に
は、2サイクル分パイプラインに空白ができる。この動
作については、lクロックストアが2クロックストアに
変化するだけであるため、詳細な説明は省略するが、第
1)図にそのタイミング図を示す。Similarly, if register interference occurs between the register used to calculate the memory address of the two-clock store instruction B and the register to which immediate data should be set in the preceding arithmetic instruction A, a blank space for two cycles is created in the pipeline. Regarding this operation, since the 1-clock store only changes to the 2-clock store, a detailed explanation will be omitted, but a timing diagram thereof is shown in Fig. 1).
しかしながら、上記のような構成では、メモリアドレス
計算を必要とする命令のメモリアドレス計算に用いるレ
ジスタと先行する演算命令で即値データを設定すべきレ
ジスタとのレジスタ干渉か発生する場合は、1サイクル
分バイブラインに空白ができ、特に2クロックストア命
令のメモリアドレス計算に用いるレジスタと先行する演
算命令で即値データを設定すべきレジスタとのレジスタ
干渉が発生する場合は、2サイクル分パイプラインに空
白かできるという問題点を有していた。However, in the above configuration, if register interference occurs between the register used for memory address calculation of an instruction that requires memory address calculation and the register to which immediate value data should be set in a preceding operation instruction, one cycle worth of data will be lost. If there is a blank space in the vibe line, especially if there is register interference between the register used for memory address calculation in the 2-clock store instruction and the register to which immediate data should be set in the preceding arithmetic instruction, there will be a blank space in the pipeline for 2 cycles. The problem was that it could be done.
この発明の目的は、パイプラインの空白をなくし、高速
化を可能とした情報処理装置を提供することである。An object of the present invention is to provide an information processing device that eliminates blank spaces in the pipeline and enables speeding up.
この発明の情報処理装置は、命令に指定された即値デー
タを保持する即値データラッチと、前記即値データラッ
チの出力を入力とする2つのマルチプレクサと、前記2
つのマルチプレクサの出力を加算する加算器と、連続す
る命令間のレジスタ干渉を検出するレジスタ干渉検出部
とを備え、即値データを特定のレジスタに格納する命令
とメモリアドレス計算を必要とする命令とが連続した際
、前記レジスタ干渉検出部が後続する命令でメモリアド
レス計算に用いるレジスタと先行する命令で即値データ
を格納するレジスタとの一致を検出すると、.前記加算
器が片方のマルチプレクサからの出力である前記即値デ
ータラッチが保持した先行する命令の即値データを使用
してメモリアドレス計算をする。The information processing device of the present invention includes: an immediate data latch that holds immediate data designated by an instruction; two multiplexers that receive the output of the immediate data latch as input;
It is equipped with an adder that adds the outputs of two multiplexers, and a register interference detection section that detects register interference between consecutive instructions. When the register interference detection unit detects a match between the register used for memory address calculation in the subsequent instruction and the register storing immediate data in the preceding instruction, . The adder calculates a memory address using the immediate data of the preceding instruction held by the immediate data latch, which is the output from one of the multiplexers.
また、この発明の情報処理装置は、命令に指定された即
値データを保持する即値データラッチと、前記即値デー
タラッチの出力を入力とする2つのマルチプレクサと、
前記2つのマルチプレクサの出力を加算する加算器と、
連続する命令間のレジスタ干渉を検出するレジスタ干渉
検出部とを備え、即値データを特定のレジスタに格納す
る命令と特定のレジスタのデータを、即値データと別の
レジスタのデータの和で指定されるアドレスのメモリに
格納する命令とが連続した際、前記レジスタ干渉検出部
が後続する命令でメモリアドレス計算に用いるレジスタ
と先行する命令で即値データを格納するレジスタとの一
致を検出すると、前記加算器が一方のマルチプレクサか
らの出力である前記即値データラッチか保持した先行す
る命令の即値データと他方のマルチプレクサからの出力
である後続する命令の即値データとを加算してアドレス
計算をする。Further, the information processing device of the present invention includes: an immediate data latch that holds immediate data designated by a command; and two multiplexers that receive the output of the immediate data latch as input.
an adder that adds the outputs of the two multiplexers;
A register interference detection unit that detects register interference between consecutive instructions is provided, and the instruction to store immediate data in a specific register and the data in the specific register are specified by the sum of the immediate data and data in another register. When instructions to store the address in the memory are consecutive, when the register interference detection unit detects a match between the register used for memory address calculation in the subsequent instruction and the register storing immediate data in the preceding instruction, the adder The address is calculated by adding the immediate data of the preceding instruction held in the immediate data latch, which is the output from one multiplexer, and the immediate data of the subsequent instruction, which is the output from the other multiplexer.
さらに、この発明の情報処理装置は、命令に指定された
即値データを保持する即値データラッチと、前記即値デ
ータラッチの出力を入力とする2つのマルチプレクサと
、前記2つのマルチプレクサの出力を加算する加算器と
、連続する命令間のレジスタ干渉を検出するレジスタ干
渉検出部と、2つのレジスタのデータを同時に出力でき
る複数のレジスタからなるレジスタ部とを備え、即値デ
ータを特定のレジスタに格納する命令と、特定のレジス
タのデータを、他の2つのレジスタのデータの和で指定
されるアドレスのメモリに格納する命令とが連続した際
、前記レジスタ干渉検出部が後続する命令でメモリアド
レス計算に用いる一方のレジスタと先行する命令で即値
データを格納するレジスタとの一致を検出すると、前記
レジスタ部が一致しなかった他方のレジスタとメモリに
格納すべきレジスタのデータとを出力し、前記加算器が
一方のマルチプレクサから出力される前記即値データラ
ッチが保持した先行する命令の即値データと他方のマル
チプレクサから出力される後続する命令の一致しなかっ
た他方のレジスタのデータとを加算してメモリアドレス
計算をする。Furthermore, the information processing device of the present invention includes an immediate data latch that holds immediate data specified in an instruction, two multiplexers that receive the output of the immediate data latch as input, and an adder that adds the outputs of the two multiplexers. a register interference detection section that detects register interference between consecutive instructions; and a register section that is made up of a plurality of registers that can output data in two registers simultaneously; , when an instruction to store data in a specific register in a memory at an address specified by the sum of data in two other registers is consecutive, the register interference detection unit uses the register interference detection unit to calculate a memory address in the subsequent instruction. When a match is detected between the register and the register storing immediate data in the preceding instruction, the register section outputs the other register that did not match and the data of the register to be stored in memory, and the adder A memory address is calculated by adding the immediate data of the preceding instruction held by the immediate data latch output from the multiplexer and the data of the other register that did not match in the subsequent instruction output from the other multiplexer. .
この発明は、前記した構成により、即値データを特定の
レジスタに格納する命令とメモリアドレス計算を必要と
する命令とが連続した際、前記レジスタ干渉検出部が後
続する命令でメモリアドレス計算に用いるレジスタと先
行する命令で即値データを格納するレジスタとの一致を
検出すると、前記加算器が一方のマルチプレクサからの
出力である前記即値データラッチが保持した先行する命
令の即値データを使用してメモリアドレス計算をする。With the above configuration, when an instruction to store immediate value data in a specific register and an instruction requiring memory address calculation are consecutive, the register interference detection unit registers a register used for memory address calculation in the subsequent instruction. When a match is detected between the register and the register storing immediate data in the preceding instruction, the adder calculates the memory address using the immediate data of the preceding instruction held by the immediate data latch, which is the output from one multiplexer. do.
またこの発明は、即値データを特定のレジスタに格納す
る命令と特定のレジスタのデータを即値データと別のレ
ジスタのデータの和で指定されるアドレスのメモリに格
納する命令とか連続した際、前記レジスタ干渉検出部が
後続する命令でメモリアドレス計算に用いるレジスタと
先行する命令で即値データを格納するレジスタとの一致
を検出すると、前記加算器が一方のマルチプレクサから
の出力である前記即値データラッチが保持した先行する
命令の即値データと他方のマルチプレクサからの出力で
ある後続する命令の即値データとを加算してアドレス計
算をする。In addition, the present invention provides that when an instruction to store immediate value data in a specific register and an instruction to store data in a specific register in a memory at an address specified by the sum of the immediate value data and data in another register are consecutive, the register When the interference detection unit detects a match between the register used for memory address calculation in the subsequent instruction and the register storing immediate data in the preceding instruction, the adder detects that the immediate data latch, which is the output from one multiplexer, is held. The address is calculated by adding the immediate value data of the preceding instruction and the immediate value data of the subsequent instruction which is output from the other multiplexer.
さらにまたこの発明は、即値データを特定のレジスタに
格納する命令と、特定のレジスタのデータを他の2つの
レジスタのデータの和て指定されるアドレスのメモリに
格納する命令とが連続した際、前記レジスタ干渉検出部
か後続する命令でメモリアドレス計算に用いる一方のレ
ジスタと先行する命令て即値データを格納するレジスタ
との一致を検出すると、前記レジスタ部が一致しなかっ
た他方のレジスタとメモリに格納すべきレジスタのデー
タを出力し、前記加算器か一方のマルチプレクサから出
力される前記即値データラッチか保持した先行する命令
の即値データと、他方のマルチプレクサから出力される
後続する命令の一致しなかった他方のレジスタのデータ
とを加算してメモリアドレス計算をする。Furthermore, in the present invention, when an instruction to store immediate data in a specific register and an instruction to store the data in the specific register as a sum of the data in two other registers in the memory at a specified address, When the register interference detection unit detects a match between one register used for memory address calculation in a subsequent instruction and a register storing immediate data in a preceding instruction, the register unit detects a match between the other register that did not match and the memory. Outputs the data in the register to be stored, and detects a mismatch between the immediate data of the preceding instruction held by the adder or the immediate data latch output from one multiplexer and the subsequent instruction output from the other multiplexer. The memory address is calculated by adding the data in the other register.
第1図はこの発明の実施例における情報処理装置のブロ
ック図を示すものである。第1図において、101は命
令の解読を行う命令解読部、102は連続する命令間に
おけるレジスタの干渉を検出するレジスタ干渉検出部、
103は複数のレジスタから構成され、32ビットの0
データを保持する0レジスタを持ったレジスタ部、10
4は整数演算部、105はデータキャッシュ(図示せず
)とのデータの転送を司るデータ転送コントロール部、
106はデータアドレスを生成するデータアドレス生成
部である。1)0は命令を転送する命令バス、1)1は
即値データを転送する32ビットの即値データパス、1
)2は32ビットの第1内部データパス、1)3は32
ビットの第2内部データパス、1)4は32ビットの第
3内部データパス、1)5は32ビットのデータアドレ
スバス、1)6はデータキャッシュに転送する32ビッ
トのストアデータバス、1)7はデータキャッシュから
転送される32ビットのロードデータバス、1)8は命
令解読部101から送出される制圓信号、1)9はレジ
スタ干渉検出部102から送出されるレジスタ干渉検出
信号である。FIG. 1 shows a block diagram of an information processing apparatus in an embodiment of the present invention. In FIG. 1, 101 is an instruction decoding unit that decodes instructions; 102 is a register interference detection unit that detects register interference between consecutive instructions;
103 consists of multiple registers, 32 bits of 0
A register section with a 0 register that holds data, 10
4 is an integer calculation unit; 105 is a data transfer control unit that controls data transfer with a data cache (not shown);
106 is a data address generation unit that generates data addresses. 1) 0 is an instruction bus that transfers instructions, 1) 1 is a 32-bit immediate data path that transfers immediate data, 1
) 2 is the 32-bit first internal data path; 1) 3 is the 32-bit first internal data path;
1) 4 is a 32-bit third internal data path; 1) 5 is a 32-bit data address bus; 1) 6 is a 32-bit store data bus that transfers to the data cache; 1) 7 is a 32-bit load data bus transferred from the data cache; 1) 8 is a constraint signal sent from the instruction decoding unit 101; 1) 9 is a register interference detection signal sent from the register interference detection unit 102. .
第2図は、第1図の実施例における情報処理装置のデー
タアドレス生成部106の内部構成を示すブロック図で
ある。図において、201, 203, 205,は3
2ビットのマルチプレクサ、202は32ビットの加算
器、204は32ビットのフィードバックラッチ、20
6は32ビットの即値データラッチである。1)1は3
2ビットの即値データパス、1)2は32ビットの第1
内部データパス、1)3は32ビットの第2内部データ
パスであり、それぞれ第1図における同名のバスに対応
する。210はマルチプレクサ201の出力で加算器2
02に入力する32ビットのデータパス、21)は加算
器202の出力で加算結果出力バスである。1)5はデ
ータアドレスバスで、第1図におけるデータアドレスバ
ス1)5に対応する。212はフィードバックラッチ2
04に保持されたlクロック前のデータアドレスバス1
)5のデータを出力するホールドデータバスである。2
13と214はそれぞれマルチプレクサ20l,203
のセレクト条件を指示するデータセレクト信号とアドレ
スホールド信号であり、ともに第1図における制御信号
1)8の一部である。215と216はそれぞれマルチ
プレクサ201 . 205のセレクト条件を指示する
第1レジスタ干渉検出信号と第2レジスタ干渉検出信号
であり、ともに第1図におけるレジスタ干渉検出信号1
)9の一部である。また、217はマルチプレクサ20
5の出力で加算器203に入力する32ビットのデータ
バスてある。FIG. 2 is a block diagram showing the internal configuration of the data address generation unit 106 of the information processing apparatus in the embodiment of FIG. 1. In the figure, 201, 203, 205, are 3
2-bit multiplexer, 202 is a 32-bit adder, 204 is a 32-bit feedback latch, 20
6 is a 32-bit immediate data latch. 1) 1 is 3
2-bit immediate data path, 1) 2 is the 32-bit first
Internal data path 1) 3 is a 32-bit second internal data path, each corresponding to the bus of the same name in FIG. 210 is the output of the multiplexer 201 and the adder 2
A 32-bit data path input to 02, 21) is the output of the adder 202 and is an addition result output bus. 1) 5 is a data address bus, which corresponds to data address bus 1) 5 in FIG. 212 is feedback latch 2
Data address bus 1 held at 04 l clocks ago
)5 data is output. 2
13 and 214 are multiplexers 20l and 203, respectively.
These are a data select signal and an address hold signal for instructing the selection conditions of , and both are part of the control signal 1) 8 in FIG. 215 and 216 are multiplexers 201 . They are a first register interference detection signal and a second register interference detection signal that instruct the selection conditions of 205, and both are the register interference detection signal 1 in FIG.
) is part of 9. In addition, 217 is a multiplexer 20
There is a 32-bit data bus input to the adder 203 at the output of 5.
以上のように構成されたこの発明の実施例における情報
処理装置の動作について以下説明する。The operation of the information processing apparatus in the embodiment of the present invention configured as described above will be described below.
この発明の実施例における情報処理装置は、4段のバイ
ブライン構成をとり、演算は2つの32ビットレジスタ
のデータ間でのみ行い、結果を再びレジスタに格納する
レジスタ間演算をとり、メモリとのデータのやりとりは
、メモリとレジスタとの間でのみ行うロード・ストアア
ーキテクチャをとった情報処理装置である。The information processing device according to the embodiment of the present invention has a four-stage vibe line configuration, performs calculations only between data in two 32-bit registers, performs inter-register calculations in which the results are stored in the registers again, and performs inter-register calculations to store the results in the registers again. It is an information processing device that uses a load/store architecture in which data is exchanged only between memory and registers.
この発明の実施例における情報処理装置の演算命令の動
作とlクロックストアおよび2クロツクストア命令の動
作は、従来の技術のところで述べた従来の情翰処理装置
の動作と同様であるため、詳細な説明は省略する。The operation of the arithmetic instruction and the operation of the 1-clock store and 2-clock store instructions of the information processing device in the embodiment of the present invention are similar to the operation of the conventional information processing device described in the section of the prior art, and therefore will not be described in detail. is omitted.
以下、この発明の実施例における情報処理装置の即値デ
ータを特定のレジスタに設定する命令とメモリアドレス
計算を要する命令とが連続した場合の動作について説明
する。メモリアドレス計算を要する命令の例としては、
lクロックストア命令、2クロツクストア命令、ロード
命令の場合を説明する。The following describes the operation of the information processing apparatus according to the embodiment of the present invention when an instruction for setting immediate value data in a specific register and an instruction requiring memory address calculation are consecutive. Examples of instructions that require memory address calculations include:
The cases of 1 clock store instruction, 2 clock store instruction, and load instruction will be explained.
第3図と第4図は、この発明の実施例における情報処理
装置の即値データを特定のレジスタに設定する演算命令
Aとストア命令Bか連続し、かつ後続するストア命令B
のメモリアドレス計算に用いるレジスタか先行する演算
命令Aで即値データを設定すへきレジスタと一致する場
合(レジスタ干渉)の動作を示すタイミング図である。3 and 4 show that an arithmetic instruction A and a store instruction B for setting immediate value data in a specific register of an information processing device in an embodiment of the present invention are consecutive, and a subsequent store instruction B
FIG. 4 is a timing diagram showing an operation when a register used for calculating a memory address matches a register to which immediate value data is set in a preceding operation instruction A (register interference).
第3図はストア命令Bがlクロックストアの場合、第4
図はストア命令Bが2クロックストアの場合を表す。Figure 3 shows that when store instruction B is l-clock store, the fourth
The figure shows a case where store instruction B is a 2-clock store.
また第12図は、この発明の実施例における情報処理装
置の即値データを特定のレジスタに設定する演算命令A
とロード命令Bが連続し、かつ後続するロード命令Bの
メモリアドレス計算に用いるレジスタが先行する演算命
令Aで即値データを設定すべきレジスタと一致する場合
の動作を示すタイミング図である。Further, FIG. 12 shows an arithmetic instruction A for setting immediate value data in a specific register in an information processing device according to an embodiment of the present invention.
and load instruction B are consecutive, and the register used for calculating the memory address of the subsequent load instruction B matches the register in which immediate value data should be set in the preceding operation instruction A. FIG.
第1図および第2図と第3図とを用い、この実施例にお
ける情報処理装置の即値データを特定のレジスタに設定
する演算命令Aとlクロックストア命令Bとが連続し、
ストア命令Bのメモリアドレス計算に用いるレジスタと
先行する演算命令Aで即値データを設定すべきレジスタ
とのレジスタ干渉が発生する場合の動作について説明す
る。説明の簡単のために干渉が発生するレジスタをrl
,演算命令Aの即値データを(immA)、lクロック
ストア命令Bのアドレス計算に用いる即値データを(i
mmB)、スト了すべきレジスタのデータを(r2)と
する。Using FIG. 1, FIG. 2, and FIG. 3, an arithmetic instruction A and a clock store instruction B for setting immediate value data of the information processing device in this embodiment to a specific register are consecutive,
The operation when register interference occurs between the register used for calculating the memory address of store instruction B and the register to which immediate value data is to be set by the preceding operation instruction A will be described. For simplicity of explanation, the register where interference occurs is called rl.
, the immediate data of operation instruction A is (immA), and the immediate data used for address calculation of l clock store instruction B is (i
mmB), and the data in the register to be terminated is (r2).
CIサイクル: (1)演算命令Aに対する処理 演算命令Aをフェッチし、命令バス1)0に送出する。CI cycle: (1) Processing for operation instruction A Fetch arithmetic instruction A and send it to instruction bus 1)0.
C2サイクル:
(1) 演算命令Aに対する処理
命令バス1)0に送出された演算命令Aを命令解読部1
01か解読する。命令解読部101は、制御情報を制御
信号1)8として送出し、即値データ(immA)を即
値データバス1)1に送出する。C2 cycle: (1) Processing instruction bus 1 for operation instruction A Processing instruction A sent to instruction bus 1)
Decipher 01. The instruction decoder 101 sends control information as a control signal 1) 8 and sends immediate data (immA) to the immediate data bus 1) 1.
また、レジスタ部103は、制御信号1)Bで指定され
た32ビットの0レジスタのデータを第1内部データバ
ス1)2に送出する。Further, the register unit 103 sends the 32-bit 0 register data specified by the control signal 1)B to the first internal data bus 1)2.
(2)ストア命令Bに対する処理
ストア命令Bをフエツチし、命令バス1)0に送出する
。(2) Processing for store instruction B Fetch store instruction B and send it to instruction bus 1)0.
C3サイクル:
(1)演算命令Aに対する処理
整数演算部104は、C2サイクルで命令解読部101
か即値データパス1)1に送出した即値データ(imm
A)を入力し、レジスタ部103が第1内部データバス
1)2に送出した0との加算を実行する。演算終了後、
演算結果を32ビットの第3内部データバス1)4に送
出する。同時に、C2サイクルで命令解読部101が即
値データバスIllに送出した即値データ(immA)
が32ビットの即値データラッチ206がラッチする。C3 cycle: (1) Processing for operation instruction A The integer operation unit 104 processes the instruction decoding unit 101 in the C2 cycle.
or immediate data path 1) Immediate data (imm
A) is input, and addition with 0 sent from the register unit 103 to the first internal data bus 1) 2 is executed. After the calculation is completed,
The calculation result is sent to the 32-bit third internal data bus 1)4. At the same time, the immediate data (immA) sent by the instruction decoder 101 to the immediate data bus Ill in the C2 cycle.
is latched by the 32-bit immediate data latch 206.
(2)ストア命令Bに対する処理
命令バス1)0に送出されたストア命令Bを命令解読部
101が解読する。命令解読部101は、制御情報を制
御信号1)8として送出し、即値データ(immB)を
即値データバス1)1に送出する。(2) Processing for store instruction B The instruction decoder 101 decodes the store instruction B sent to the instruction bus 1)0. The instruction decoder 101 sends control information as a control signal 1) 8 and sends immediate data (immB) to the immediate data bus 1) 1.
前記命令解読部101の処理と並行してレジスタ干渉検
出部102はストア命令Bのメモリアドレス計算に用い
るレジスタrlと先行する演算命令Aで即値データを設
定すべきレジスタrlとのレジスタ干渉を検出し、レジ
スタ干渉検出信号1)9に送出する。この時、レジスタ
干渉検出信号1)9内の第2レジスタ干渉検出信号21
6はマルチプレクサ205が即値データラッチ206の
出力を選択するための信号を出力する。レジスタ部10
3は、制御信号1)8に指定されたメモリアドレス計算
に使用する32ビットのレジスタのデータ(r 1)を
第2内部データバス1)3に送出し、メモリに格納すべ
き32ビットのレジスタのデータ(r2)を第1内部デ
ータバス1)2に送出する。ただし、32ビットのレジ
スタのデータ(r 1)は、演算命令Aの実行が終了し
ていないため、無効なデータを出力することとなる。In parallel with the processing of the instruction decoding unit 101, the register interference detection unit 102 detects register interference between the register rl used for calculating the memory address of the store instruction B and the register rl to which immediate value data is to be set in the preceding operation instruction A. , register interference detection signal 1) is sent to 9. At this time, the second register interference detection signal 21 in the register interference detection signal 1) 9
6 outputs a signal for the multiplexer 205 to select the output of the immediate data latch 206. Register section 10
3 sends the 32-bit register data (r 1) used for calculating the memory address specified by the control signal 1) 8 to the second internal data bus 1) 3, and sends the 32-bit register data (r 1) to be stored in the memory. data (r2) is sent to the first internal data bus 1)2. However, the data (r1) in the 32-bit register will be invalid data because the execution of the arithmetic instruction A has not been completed.
つぎに、データアドレス生成部106の動作について説
明する。マルチプレクサ201は、制御信号1)8とし
て送出されたデータセレクト信号213の情報によりデ
ータパス210に即値データバス1)1の即値データ(
immB)を出力する。マルチプレクサ205は、第2
レジスタ干渉検出信号216の情報により、データバス
217に即値データラッチ206のデータ(immA)
(正しい(r1)に相当)を出力する。加算器202は
、それぞれ32ビットのデータバス210と217に出
力されたデータを加算し、結果を加算結果出力バス21
)に出力する。マルチプレクサ203は、制御信号1)
8として送出されたアドレスホールド信号214の情報
により、データアドレスバス1)5に加算結果出力バス
21)のデータを出力する。こうして、データアドレス
バス1)5にストアすべきデータのアドレス(immB
)+ (r 1)を送出する。Next, the operation of the data address generation section 106 will be explained. The multiplexer 201 sends the immediate data (
immB). The multiplexer 205
Based on the information of the register interference detection signal 216, the data (immA) of the immediate data latch 206 is transferred to the data bus 217.
(corresponding to the correct (r1)). Adder 202 adds the data output to 32-bit data buses 210 and 217, respectively, and sends the result to addition result output bus 21.
). The multiplexer 203 receives the control signal 1)
Based on the information of the address hold signal 214 sent as 8, the data of the addition result output bus 21) is output to the data address bus 1)5. In this way, the address (immB) of the data to be stored on the data address bus 1)5
) + (r 1) is sent.
C4サイクル:
(1)演算命令Aに対する処理
レジスタ部103は、C3サイクルで整数演算部104
が第3内部データバス1)4に送出したデータ(imm
A)をC2サイクルで制御信号1)8に指定されたレジ
スタrlへ格納する。C4 cycle: (1) The processing register unit 103 for operation instruction A is processed by the integer operation unit 104 in the C3 cycle.
The data (imm
A) is stored in the register rl specified by control signal 1)8 in the C2 cycle.
(2)ストア命令Bに対する処理
データアドレスバス1)5に送出されたアドレス(im
mB)+ (r 1)を用いデータキャッシュをアクセ
スする。ここで、データキャッシュがヒットすると仮定
する。また、データ転送コントロール部105は、第1
内部データバス1)2に送出されたデータ(r2)をラ
ッチする。(2) Processing data for store instruction B Address (im
mB) + (r 1) to access the data cache. Now assume that the data cache is hit. Further, the data transfer control unit 105
Data (r2) sent to internal data bus 1)2 is latched.
C5サイクル:
(1)ストア命令Bに対する処理
データ転送コントロール部105は、C4サイクルでラ
ッチしたデータ(r2)をストアデータバス1)6に送
出し、データキャッシュに格納する。C5 cycle: (1) Processing for store instruction B The data transfer control unit 105 sends the data (r2) latched in the C4 cycle to the store data bus 1) 6 and stores it in the data cache.
以上のように、この実施例における情報処理装置では、
即値データを特定のレジスタに設定する演算命令Aと1
クロックストア命令Bとが連続し、ストア命令Bのメモ
リアドレス計算に用いるレジスタと先行する演算命令A
で即値データを設定すべきレジスタとのレジスタ干渉が
発生する場合に、即値データラッチ206を設け、レジ
スタ干渉検出信号1)9てマルチプレクサ205を制御
することで従来の情報処理装置に比べ、lクロック分処
理を高速化することが可能となる。As described above, in the information processing apparatus in this embodiment,
Arithmetic instructions A and 1 that set immediate data in a specific register
Clock store instruction B is continuous, and the register used for memory address calculation of store instruction B and the preceding operation instruction A
When register interference occurs with a register in which immediate value data should be set, an immediate data latch 206 is provided and the multiplexer 205 is controlled by the register interference detection signal 1)9. It becomes possible to speed up the minute processing.
つぎに、第1図および第2図と第4図とを用い、この実
施例における情報処理装置の即値データを特定のレジス
タに設定する演算命令Aと2クロックストア命令Bとが
連続し、ストア命令Bのメモリアドレス計算に用いるレ
ジスタと先行する演算命令Aで即値データを設定すべき
レジスタとのレジスタ干渉が発生する場合の動作につい
て説明する。説明の簡単のため2クロックストア時のア
ドレス計算に要するレジスタのデータを(r1)と(r
2)、スト了すべきレジスタのデータを(r 1)とし
、干渉が発生するレジスタをr1、演算命令Aの即値デ
ータを(immA)とする。Next, using FIG. 1, FIG. 2, and FIG. The operation when register interference occurs between the register used for calculating the memory address of instruction B and the register to which immediate value data is to be set by the preceding operation instruction A will be described. To simplify the explanation, the register data required for address calculation during 2-clock store is expressed as (r1) and (r
2) Let the data of the register to be terminated be (r 1), the register where interference occurs as r1, and the immediate data of operation instruction A be (immA).
C1サイクル: (1) 演算命令Aに対する処理 演算命令Aをフエツチし、命令バス1)0に送出する。C1 cycle: (1) Processing for operation instruction A Fetch arithmetic instruction A and send it to instruction bus 1)0.
C2サイクル:
(1)演算命令Aに対する処理
命令バス1)0に送出された演算命令Aを命令解読部1
01が解読する。命令解読部101は、制御情報を制御
信号1)8として送出し、即値データ(immA)を即
値データパス1)1に送出する。C2 cycle: (1) Processing instruction bus 1 for operation instruction A
01 deciphers it. The instruction decoder 101 sends control information as a control signal 1) 8 and sends immediate data (immA) to the immediate data path 1) 1.
また、レジスタ部103は制御信号1)8に指定された
32ビットの0レジスタのデータを第1内部データバス
1)2に送出する。Further, the register unit 103 sends the 32-bit 0 register data designated by the control signal 1)8 to the first internal data bus 1)2.
(2)ストア命令Bに対する処理
ストア命令Bをフェッチし、命令バス1)0に送出する
。(2) Processing for store instruction B Fetch store instruction B and send it to instruction bus 1)0.
C3サイクル:
(1) 演算命令Aに対する処理
整数演算部104は、C2サイクルで命令解読部101
が即値データバス1)1に送出した即値データ(imm
A)を入力とし、レジスタ部103が第1内部データバ
ス1)2に送出した0との加算を実行する。演算終了後
、演算結果を32ビットの第3内部データバス1)4に
送出する。同時に、C2サイクルで命令解読部101が
即値データバス1)1に送出した即値データ(immA
)を32ビットの即値データラッチ206がラッチする
。C3 cycle: (1) The integer arithmetic unit 104 processes the arithmetic instruction A, and the integer arithmetic unit 104 processes the instruction decoder 101 in the C2 cycle.
The immediate data (imm
A) is input, and addition with 0 sent from the register unit 103 to the first internal data bus 1) 2 is executed. After the calculation is completed, the calculation result is sent to the 32-bit third internal data bus 1)4. At the same time, in the C2 cycle, the instruction decoder 101 sends immediate data (immA
) is latched by the 32-bit immediate data latch 206.
(2)ストア命令Bに対する処理
命令バス1)0に送出されたストア命令Bを命令解読部
101が解読する。命令解読部101は、制御情報を制
御信号1)8として送出する。前記命令解読部101の
処理と並行してレジスタ干渉検出部102は、ストア命
令Bのメモリアドレス計算に用いるレジスタrlと先行
する演算命令Aで即値データを設定すべきレジスタr1
とのレジスタ干渉を検出し、レジスタ干渉検出信号1)
9に送出する。(2) Processing for store instruction B The instruction decoder 101 decodes the store instruction B sent to the instruction bus 1)0. The instruction decoder 101 sends out the control information as a control signal 1)8. In parallel with the processing of the instruction decoding unit 101, the register interference detection unit 102 detects the register rl used for calculating the memory address of the store instruction B and the register r1 to which immediate value data is to be set by the preceding operation instruction A.
Detects register interference with the register and generates a register interference detection signal 1)
Send on 9th.
この時、レジスタ干渉検出信号1)9内の第1レジスタ
干渉検出信号215は、マルチプレクサ201が即値デ
ータラッチ206を選択するための信号とレジスタ部1
03が第1内部データバス1)2にメモリにスト了すべ
き32ビットのレジスタのデータ(r3)を出力するた
めの信号を出力する。レジスタ部103は、制御信号1
)8で指定されたメモリア下レス計算に使用する32ビ
ットのレジスタのデータ(r2)を第2内部データバス
1)3に送出し、メモリに格納すべき32ビットのレジ
スタのデータ(r3)を第1内部データバス1)2に送
出する。At this time, the first register interference detection signal 215 in the register interference detection signal 1) 9 is a signal for the multiplexer 201 to select the immediate data latch 206 and a register part 1
03 outputs a signal for outputting 32-bit register data (r3) to be stored in the memory to the first internal data bus 1)2. The register unit 103 receives the control signal 1
) 8, the 32-bit register data (r2) used for the memory address calculation is sent to the second internal data bus 1) 3, and the 32-bit register data (r3) to be stored in the memory is sent to the second internal data bus 1) 3. The data is sent to the first internal data bus 1)2.
つぎに、データアドレス生成部106の動作について説
明する。マルチプレクサ201は、第1レジスタ干渉検
出信号215の情報により、データバス210に即値デ
ータラッチ206のデータ(immA)(正しい(r1
)に相当)を出力する。マルチプレクサ205は、第2
レジスタ干渉検出信号216の情報により、データバス
217に第2内部データバス1)3のデータ(r2)を
出力する。加算器202は、それぞれ32ビットのデー
タパス210と217とに出力されたデータを加算し、
結果を加算結果出力バス21)に出力する。マルチプレ
クサ203は、制御信号1)8として送出されたアドレ
スホールド信号214の情報により、データアドレスバ
ス1)5に加算結果出力バス21)のデータを出力する
。こうして、データアドレスバス1)5にストアすべき
データのアドレス(r 1’) + (r 2)を送出
する。Next, the operation of the data address generation section 106 will be explained. The multiplexer 201 transmits the data (immA) (correct (r1
) is output. The multiplexer 205
Based on the information of the register interference detection signal 216, the data (r2) of the second internal data bus 1) 3 is output to the data bus 217. The adder 202 adds the data output to the 32-bit data paths 210 and 217, respectively,
The result is output to the addition result output bus 21). The multiplexer 203 outputs the data of the addition result output bus 21) to the data address bus 1) 5 based on the information of the address hold signal 214 sent as the control signal 1) 8. In this way, the address (r 1') + (r 2) of the data to be stored is sent to the data address bus 1)5.
C4サイクル:
(1) 演算命令Aに対する処理
レジスタ部103は、C3サイクルで整数演算部104
が第3内部データバス1)4に送出したデータ(imm
A)を02サイクルで制御信号1)8で指定されたレジ
スタrlへ格納する。C4 cycle: (1) The processing register unit 103 for operation instruction A is processed by the integer operation unit 104 in the C3 cycle.
The data (imm
A) is stored in the register rl specified by control signal 1)8 in cycle 02.
(2)ストア命令Bに対する処理
データアドレスバス1)5に送出されたアドレス(r
1) + (r 2)を用いデータキャッシュをアクセ
スする。ここで、データキャッシュはヒットすると仮定
する。また、データ転送コントロール部105は、第1
内部データバス1)2に送出されたデータ(r3)をラ
ッチする。(2) Processing data for store instruction B Address (r) sent to address bus 1)5
1) Access the data cache using + (r 2). Here, assume that the data cache is hit. Further, the data transfer control unit 105
The data (r3) sent to the internal data bus 1)2 is latched.
C5サイクル:
(1) ストア命令Bに対する処理
データ転送コントロール部105は、C4サイクルでラ
ッチしたデータ(r3)をストアデータバス1)6に送
出し、データキャッシュに格納する。C5 cycle: (1) Processing for store instruction B The data transfer control unit 105 sends the data (r3) latched in the C4 cycle to the store data bus 1) 6 and stores it in the data cache.
以上のように、この発明の実施例における情報処理装置
は、即値データを特定のレジスタに設定する演算命令A
と2クロックストア命令Bとが連続し、ストア命令Bの
メモリアドレス計算に用いるレジスタと先行する演算命
令Aで即値データを設定すべきレジスタとのレジスタ干
渉が発生する場合に、即値データラッチ206を設け、
レジスタ干渉検出信号l9でマルチプレクサ205とレ
ジスタ部103を制御することで従来の情報処理装置に
比べ、2クロツク分処理を高速化することが可能になる
。As described above, the information processing apparatus according to the embodiment of the present invention has an operation instruction A that sets immediate value data in a specific register.
and two-clock store instruction B are consecutive, and if register interference occurs between the register used for memory address calculation of store instruction B and the register to which immediate value data should be set by the preceding operation instruction A, the immediate data latch 206 is activated. established,
By controlling the multiplexer 205 and the register section 103 using the register interference detection signal l9, it is possible to speed up the processing by two clocks compared to the conventional information processing apparatus.
最後に、第1図および第2図と第12図とを用い、この
実施例における情報処理装置の即値データを特定のレジ
スタに設定する演算命令Aとロード命令Bとが連続し、
ロード命令Bのメモリアドレス計算に用いるレジスタと
先行する演算命令Aで即値データを設定すべきレジスタ
とのレジスタ干渉が発生する場合の動作について説明す
る。説明の簡単のために干渉が発生するレジスタをr1
、演算命令Aの即値データを(immA)、ロード命令
Bのアドレス計算に用いる即値データを(immB)、
データをロードすべきレジスタをr2とする。Finally, using FIGS. 1 and 2 and FIG. 12, an operation instruction A and a load instruction B for setting immediate value data of the information processing device in this embodiment to a specific register are consecutive,
The operation when register interference occurs between the register used for calculating the memory address of load instruction B and the register to which immediate value data is to be set by the preceding operation instruction A will be described. For simplicity of explanation, let r1 be the register where interference occurs.
, the immediate data of operation instruction A (immA), the immediate data used for address calculation of load instruction B (immB),
Let r2 be the register into which data is to be loaded.
C1サイクル: (1)演算命令Aに対する処理 演算命令Aをフェッチし、命令バス1)0に送出する。C1 cycle: (1) Processing for operation instruction A Fetch arithmetic instruction A and send it to instruction bus 1)0.
C2サイクル:
(1)演算命令Aに対する処理
命令バ・ス1)0に送出された演算命令Aを命令解読部
101が解読する。命令解読部101は、制御情報を制
御信号1)8として送出し、即値データ(immA)を
即値データバスIllに送出する。C2 cycle: (1) Processing for arithmetic instruction A The instruction decoder 101 decodes the arithmetic instruction A sent to the instruction bus 1)0. The instruction decoder 101 sends control information as a control signal 1)8, and sends immediate data (immA) to the immediate data bus Ill.
また、レジスタ部103は、制御信号1)8で指定され
た32ビットの0レジスタのデータを第1内部データバ
ス1)2に送出する。Further, the register unit 103 sends the 32-bit 0 register data specified by the control signal 1)8 to the first internal data bus 1)2.
(2)ロード命令Bに対する処理
ロード命令Bをフエツチし、命令バス1)0に送出する
。(2) Processing for load instruction B Fetches load instruction B and sends it to instruction bus 1)0.
C3サイクル:
(1)演算命令Aに対する処理
整数演算部104は、C2サイクルで命令解読部101
が即値データバス1)1に送出した即値データ(imm
A)を入力し、レジスタ部103が第1内部データバス
1)2に送出した0との加算を実行する。演算終了後、
演算結果を32ビットの第3内部データバス1)4に送
出する。同時に、C2サイクルで命令解読部101が即
値データバス1)1に送出した即値データ(immA)
を32ビットの即値データラッチ206かラッチする。C3 cycle: (1) Processing for operation instruction A The integer operation unit 104 processes the instruction decoding unit 101 in the C2 cycle.
The immediate data (imm
A) is input, and addition with 0 sent from the register unit 103 to the first internal data bus 1) 2 is executed. After the calculation is completed,
The calculation result is sent to the 32-bit third internal data bus 1)4. At the same time, the immediate data (immA) sent by the instruction decoder 101 to the immediate data bus 1)1 in the C2 cycle.
is latched by the 32-bit immediate data latch 206.
(2) ロード命令Bに対する処理
命令バス1)0に送出されたロード命令Bを命令解読部
101が解読する。命令解読部101は、制御情報を制
御信号1)8として送出し、即値データ(immB)を
即値データバス1)1に送出する。(2) Processing for load instruction B The instruction decoder 101 decodes the load instruction B sent to the instruction bus 1)0. The instruction decoder 101 sends control information as a control signal 1) 8 and sends immediate data (immB) to the immediate data bus 1) 1.
前記命令解読部101の処理と並行してレジスタ干渉検
出部102はロード命令Bのメモリアドレス計算に用い
るレジスタrlと先行する演算命令Aで即値データを設
定すべきレジスタr1とのレジスタ干渉を検出し、レジ
スタ干渉検出信号1)9に送出する。この時、レジスタ
干渉検出信号1)9内の第2レジスタ干渉検出信号21
6はマルチプレクサ205が即値データラッチ206の
出力を選択するための信号を出力する。レジスタ部10
3は、制御信号1)8に指定されたメモリアドレス計算
に使用する32ビットのレジスタのデータ(r 1)を
第2内部データバス1)3に送出する。ただし、32ビ
ットのレジスタのデータ(r 1)は、演算命令Aの実
行が終了していないため、無効なデータを出力すること
となる。In parallel with the processing of the instruction decoding unit 101, the register interference detection unit 102 detects register interference between the register rl used for calculating the memory address of the load instruction B and the register r1 to which immediate value data is to be set in the preceding operation instruction A. , register interference detection signal 1) is sent to 9. At this time, the second register interference detection signal 21 in the register interference detection signal 1) 9
6 outputs a signal for the multiplexer 205 to select the output of the immediate data latch 206. Register section 10
3 sends the 32-bit register data (r1) used for memory address calculation specified by the control signal 1)8 to the second internal data bus 1)3. However, the data (r1) in the 32-bit register will be invalid data because the execution of the arithmetic instruction A has not been completed.
つぎに、データアドレス生成部106の動作について説
明する。マルチプレクサ201は、制御信号1)8とし
て送出されたデータセレクト信号213の情報によりデ
ータパス210に即値データバス1)1の即値データ(
immB)を出力する。マルチプレクサ205は、第2
レジスタ干渉検出信号216の情報により、データパス
217に即値データラッチ206のデータ(immA)
(正しい(r1)に相当)を出力する。加算器202は
、それぞれ32ビットのデータパス210と217に出
力されたデータを加算し、結果を加算結果出力バス21
)に出力する。マルチプレクサ203は、制郭信号1)
8として送出されたアドレスホールド信号214の情報
により、データアドレスバス1)5に加算結果出力バス
21)のデータを出力する。こうして、データアドレス
バス1)5にロードすべきデータのアドレス(immB
)+ (r 1)を送出する。Next, the operation of the data address generation section 106 will be explained. The multiplexer 201 sends the immediate data (
immB). The multiplexer 205
Based on the information of the register interference detection signal 216, the data (immA) of the immediate data latch 206 is sent to the data path 217.
(corresponding to the correct (r1)). Adder 202 adds the data output to 32-bit data paths 210 and 217, respectively, and sends the result to addition result output bus 21.
). The multiplexer 203 outputs the restriction signal 1)
Based on the information of the address hold signal 214 sent as 8, the data of the addition result output bus 21) is output to the data address bus 1)5. In this way, the address (immB) of the data to be loaded onto the data address bus 1)
) + (r 1) is sent.
C4サイクル:
(1) 演算命令Aに対する処理
レジスタ部103は、C3サイクルで整数演算部104
が第3内部データバス1)4に送出したデータ(imm
A)を02サイクルで制御信号1)8に指定されたレジ
スタrlへ格納する。C4 cycle: (1) The processing register unit 103 for operation instruction A is processed by the integer operation unit 104 in the C3 cycle.
The data (imm
A) is stored in the register rl specified by control signal 1)8 in cycle 02.
(2) ロード命令Bに対する処理
データアドレスバス1)5に送出されたアドレス(im
mB)+ (r 1)を用いデータキャッシュをアクセ
スする。ここで、データキャッシュがヒツトすると仮定
する。データキャッシュはヒットしたアドレス(imm
B)+ (r 1)のデータをロードデータバス1)7
に出力する。(2) Processing data for load instruction B Address (im) sent to address bus 1)5
mB) + (r 1) to access the data cache. Now assume that the data cache is hit. The data cache is stored at the hit address (im
B) + Load data of (r 1) Data bus 1) 7
Output to.
C4サイクル:
データ転送コントロール部105はC3サイクルでデー
タキャッシュがロードデータバス1)7に送出したデー
タを第3内部データバス1)4に送出する。レジスタ部
103は第3内部データバス1)4のデータを制御信号
1)8として送出されたアドレスのレジスタr2に格納
する。C4 cycle: The data transfer control unit 105 sends the data sent by the data cache to the load data bus 1) 7 to the third internal data bus 1) 4 in the C3 cycle. The register section 103 stores the data on the third internal data bus 1)4 in the register r2 at the address sent as the control signal 1)8.
また、ロードすべきデータのアドレスが2つのレジスタ
のデータの和(r 1) + (r 2)で示されるロ
ード命令に関しては前述した(rl)+(immB)の
場合と同様であるため、詳細な説明は省略する。この場
合は、レジスタ部103がアドレス計算に用いる2つの
レジスタのデータをそれぞれ第1内部データパスと第2
内部データパスに出力し、データアドレス生成部106
がデータパス210に第1内部データパスのデータを出
力する点が上記の説明と異なる。Also, regarding the load instruction where the address of the data to be loaded is indicated by the sum of the data of two registers (r 1) + (r 2), it is the same as the case of (rl) + (immB) described above, so the details Further explanation will be omitted. In this case, the register unit 103 transfers data in two registers used for address calculation to the first internal data path and the second internal data path, respectively.
Output to internal data path, data address generation unit 106
This differs from the above description in that it outputs the data of the first internal data path to the data path 210.
以上のように、この実施例における情報処理装置では、
即値データを特定のレジスタに設定する演算命令Aとロ
ード命令Bとが連続し、ロード命令Bのメモリアドレス
計算に用いるレジスタと先行する演算命令Aで即値デー
タを設定すべきレジスタとのレジスタ干渉が発生する場
合に、即値データラッチ206を設け、レジスタ干渉検
出信号1)9でマルチプレクサ205を制御することで
従来の情報処理装置に比べ、1クロック分処理を高速化
することが可能となる。As described above, in the information processing apparatus in this embodiment,
Operation instruction A that sets immediate value data to a specific register and load instruction B are consecutive, and there is register interference between the register used for memory address calculation of load instruction B and the register to which immediate value data should be set in the preceding operation instruction A. When this occurs, by providing an immediate data latch 206 and controlling the multiplexer 205 using the register interference detection signal 1)9, it is possible to speed up processing by one clock compared to conventional information processing devices.
なおここでは、メモリアドレス計算を必要とする命令の
例として、1クロックストア命令、2クロックストア命
令、ロード命令について説明したが、他のメモリアドレ
ス計算を必要とする分岐命令等の命令でも同様に制御す
ることで、従来の情報処理装置に比べ、lクロック分処
理を高速化することが可能である。Here, we have explained the 1-clock store instruction, 2-clock store instruction, and load instruction as examples of instructions that require memory address calculation, but the same applies to other instructions such as branch instructions that require memory address calculation. By controlling the information processing apparatus, it is possible to speed up processing by l clocks compared to conventional information processing apparatuses.
この発明の情報処理装置によれば、メモリアドレス計算
を必要とする命令(ロード命令,■クロックストア命令
または分岐命令)で、メモリアドレス計算に用いるレジ
スタと先行する演算命令の即値データを設定すべきレジ
スタとのレジスタ干渉が発生する場合にlクロック処理
を高速化でき、さらに2クロックストア命令でメモリア
ドレス計算に用いるレジスタと先行する演算命令の即値
データを設定すべきレジスタとのレジスタ干渉が発生す
る場合には、2クロツク処理を高速化することを可能と
し、その実用的価値は大きい。According to the information processing device of the present invention, an instruction that requires memory address calculation (a load instruction, a clock store instruction, or a branch instruction) should set the register used for memory address calculation and the immediate value data of the preceding operation instruction. This can speed up l-clock processing when register interference with the register occurs, and furthermore, register interference occurs between the register used for memory address calculation with the 2-clock store instruction and the register to which the immediate data of the preceding operation instruction should be set. In some cases, it is possible to speed up two-clock processing, and its practical value is great.
第1図はこの発明の実施例における情報処理装置のブロ
ック図、第2図は第1図におけるデータアドレス生成部
のブロック図、第3図はこの発明の実施例における情報
処理装置の即値データを特定のレジスタに設定する演算
命令とlクロックストア命令とが連続し、ストア命令の
メモリアドレス計算に用いるレジスタと先行する演算命
令で即値データを設定すべきレジスタとのレジスタ干渉
が発生する場合の動作を示すタイミング図、第4図はこ
の発明の実施例における情報処理装置の即値データを特
定のレジスタに設定する演算命令と2クロックストア命
令とか連続し、ストア命令のメモリアドレス計算に用い
るレジスタと先行する演算命令で即値データを設定すべ
きレジスタとのレジスタ干渉が発生する場合の動作を示
すタイミング図、第5図は従来の情報処理装置のブロッ
ク図、第6図は第5図におけるデータアドレス生成部の
ブロック図、第7図は従来の情報処理装置の演算命令の
動作を示すタイミング図、第8図は従来の情報処理装置
のlクロックストアの命令の動作を示すタイミング図、
第9図は従来の情報処理装置の2クロツクストアの命令
の動作を示すタイミング図、第10図は従来の情報処理
装置の即値データを特定のレジスタに設定する演算命令
と1クロツクストア命令とが連続し、ストア命令のメモ
リアドレス計算に用いるレジスタと先行する演算命令で
即値データを設定すべきレジスタとのレジスタ干渉が発
生する場合の動作を示すタイミング図、第1)図は従来
の情報処理装置の即値データを特定のレジスタに設定す
る演算命令と2クロックストア命令とが連続し、ストア
命令のメモリアドレス計算に用いるレジスタと先行する
演算命令て即値データを設定すべきレジスタとのレジス
タ干渉が発生する場合の動作を示すタイミング図、第1
2図はこの発明の実施例における情報処理装置の即値デ
ータを特定のレジスタに設定する演算命令とロード命令
とが連続し、ロード命令のメモリアドレス計算に用いる
レジスタと先行する演算命令で即値データを設定すべき
レジスタとのレジスタ干渉が発生する場合の動作を示す
タイミング図である。
101・・・命令解読部、102・・・レジスタ干渉検
出部、103・・・レジスタ部、106・・・データア
ドレス生成部、1)8・・・制御信号、1)9・・・レ
ジスタ干渉検出信号、206・・・即値データラッチ。FIG. 1 is a block diagram of an information processing device according to an embodiment of the present invention, FIG. 2 is a block diagram of a data address generation unit in FIG. 1, and FIG. 3 is a block diagram of an information processing device according to an embodiment of this invention. Operation when an arithmetic instruction that sets a specific register and a clock store instruction occur in succession, and register interference occurs between the register used to calculate the memory address of the store instruction and the register to which immediate data should be set by the preceding arithmetic instruction. FIG. 4 is a timing diagram showing an operation instruction for setting immediate value data in a specific register in an information processing device according to an embodiment of the present invention, and a two-clock store instruction, and a register used for calculating the memory address of the store instruction and a preceding one. Fig. 5 is a block diagram of a conventional information processing device, and Fig. 6 shows data address generation in Fig. 5. FIG. 7 is a timing diagram showing the operation of an arithmetic instruction in a conventional information processing device; FIG. 8 is a timing diagram showing the operation of an l clock store instruction in a conventional information processing device;
FIG. 9 is a timing diagram showing the operation of a two-clock store instruction in a conventional information processing device, and FIG. 10 is a timing diagram showing the operation of a two-clock store instruction in a conventional information processing device. , a timing diagram showing the operation when register interference occurs between the register used to calculate the memory address of the store instruction and the register to which immediate value data should be set in the preceding operation instruction. Figure 1) shows the immediate value of the conventional information processing device When an arithmetic instruction that sets data in a specific register and a two-clock store instruction are consecutive, and register interference occurs between the register used for calculating the memory address of the store instruction and the register that should set immediate data in the preceding arithmetic instruction. Timing diagram showing the operation of
Figure 2 shows that an arithmetic instruction for setting immediate data in a specific register in an information processing device according to an embodiment of the present invention and a load instruction are consecutive, and the immediate data is stored in the register used for calculating the memory address of the load instruction and the preceding arithmetic instruction. FIG. 7 is a timing diagram showing an operation when register interference with a register to be set occurs. 101... Instruction decoding unit, 102... Register interference detection unit, 103... Register unit, 106... Data address generation unit, 1) 8... Control signal, 1) 9... Register interference Detection signal, 206... Immediate data latch.
Claims (4)
タラッチと、前記即値データラッチの出力を入力とする
2つのマルチプレクサと、前記2つのマルチプレクサの
出力を加算する加算器と、連続する命令間のレジスタ干
渉を検出するレジスタ干渉検出部とを備え、即値データ
を特定のレジスタに格納する命令とメモリアドレス計算
を必要とする命令とが連続した際、前記レジスタ干渉検
出部が後続する命令でメモリアドレス計算に用いるレジ
スタと先行する命令で即値データを格納するレジスタと
の一致を検出すると、前記加算器が片方のマルチプレク
サからの出力である前記即値データラッチが保持した先
行する命令の即値データを使用してメモリアドレス計算
をすることを特徴とする情報処理装置。(1) An immediate data latch that holds the immediate data specified in an instruction, two multiplexers that receive the output of the immediate data latch, an adder that adds the outputs of the two multiplexers, and a link between consecutive instructions. and a register interference detection unit that detects register interference, and when an instruction that stores immediate value data in a specific register and an instruction that requires memory address calculation are consecutive, the register interference detection unit detects the memory When a match is detected between the register used for address calculation and the register storing immediate data in the preceding instruction, the adder uses the immediate data of the preceding instruction held by the immediate data latch, which is the output from one of the multiplexers. An information processing device characterized in that the information processing device calculates a memory address.
する命令として、ロード命令またはストア命令または分
岐命令であることを特徴とする情報処理装置。(2) An information processing device characterized in that the instruction requiring memory address calculation according to claim (1) is a load instruction, a store instruction, or a branch instruction.
タラッチと、前記即値データラッチの出力を入力とする
2つのマルチプレクサと、前記2つのマルチプレクサの
出力を加算する加算器と、連続する命令間のレジスタ干
渉を検出するレジスタ干渉検出部とを備え、即値データ
を特定のレジスタに格納する命令と特定のレジスタのデ
ータを、即値データと別のレジスタのデータの和で指定
されるアドレスのメモリに格納する命令とが連続した際
、前記レジスタ干渉検出部が後続する命令でメモリアド
レス計算に用いるレジスタと先行する命令で即値データ
を格納するレジスタとの一致を検出すると、前記加算器
が一方のマルチプレクサからの出力である前記即値デー
タラッチが保持した先行する命令の即値データと他方の
マルチプレクサからの出力である後続する命令の即値デ
ータとを加算してアドレス計算をすることを特徴とする
情報処理装置。(3) An immediate data latch that holds the immediate data specified in the instruction, two multiplexers that receive the output of the immediate data latch, an adder that adds the outputs of the two multiplexers, and a link between consecutive instructions. A register interference detection unit that detects register interference, and a register interference detection unit that stores immediate data in a specific register and stores the data in the specific register in the memory at an address specified by the sum of the immediate data and data in another register. When instructions to store are consecutive, when the register interference detection unit detects a match between the register used for memory address calculation in the subsequent instruction and the register storing immediate data in the preceding instruction, the adder selects one of the multiplexers. An information processing device that calculates an address by adding the immediate data of the preceding instruction held by the immediate data latch, which is the output from the multiplexer, and the immediate data of the subsequent instruction, which is the output from the other multiplexer. .
タラッチと、前記即値データラッチの出力を入力とする
2つのマルチプレクサと、前記2つのマルチプレクサの
出力を加算する加算器と、連続する命令間のレジスタ干
渉を検出するレジスタ干渉検出部と、2つのレジスタの
データを同時に出力できる複数のレジスタからなるレジ
スタ部とを備え、 即値データを特定のレジスタに格納する命令と特定のレ
ジスタのデータを他の2つのレジスタのデータの和で指
定されるアドレスのメモリに格納する命令とが連続した
際、前記レジスタ干渉検出部が後続する命令でメモリア
ドレス計算に用いる一方のレジスタと先行する命令で即
値データを格納するレジスタとの一致を検出すると、前
記レジスタ部が一致しなかった他方のレジスタとメモリ
に格納すべきレジスタのデータとを出力し、前記加算器
が一方のマルチプレクサから出力される前記即値データ
ラッチが保持した先行する命令の即値データと他方のマ
ルチプレクサから出力される後続する命令の一致しなか
った他方のレジスタのデータとを加算してメモリアドレ
ス計算をすることを特徴とする情報処理装置。(4) An immediate data latch that holds the immediate data specified in an instruction, two multiplexers that receive the output of the immediate data latch, an adder that adds the outputs of the two multiplexers, and a link between consecutive instructions. It is equipped with a register interference detection section that detects register interference, and a register section that consists of multiple registers that can output data from two registers simultaneously. When instructions to store in the memory at an address specified by the sum of the data of two registers are consecutive, the register interference detection unit detects the immediate data in one register used for memory address calculation in the subsequent instruction and in the preceding instruction. When a match is detected with the register storing the data, the register section outputs the data of the other register that does not match and the data of the register to be stored in the memory, and the adder outputs the data of the immediate value output from one multiplexer. An information processing device that calculates a memory address by adding immediate value data of a preceding instruction held by a latch and data of the other register that does not match in a subsequent instruction output from the other multiplexer.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2309994A JP2542120B2 (en) | 1989-11-15 | 1990-11-14 | Information processing device |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1-298459 | 1989-11-15 | ||
| JP29845989 | 1989-11-15 | ||
| JP2309994A JP2542120B2 (en) | 1989-11-15 | 1990-11-14 | Information processing device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03218526A true JPH03218526A (en) | 1991-09-26 |
| JP2542120B2 JP2542120B2 (en) | 1996-10-09 |
Family
ID=26561530
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2309994A Expired - Fee Related JP2542120B2 (en) | 1989-11-15 | 1990-11-14 | Information processing device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2542120B2 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01177127A (en) * | 1988-01-06 | 1989-07-13 | Hitachi Ltd | information processing equipment |
-
1990
- 1990-11-14 JP JP2309994A patent/JP2542120B2/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01177127A (en) * | 1988-01-06 | 1989-07-13 | Hitachi Ltd | information processing equipment |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2542120B2 (en) | 1996-10-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0463430B2 (en) | ||
| JPS6259822B2 (en) | ||
| JPH02227768A (en) | Data processing system | |
| US5757685A (en) | Data processing system capable of processing long word data | |
| US5367648A (en) | General purpose memory access scheme using register-indirect mode | |
| JPH04140880A (en) | Vector processor | |
| US4677549A (en) | Pipelined data processor system having increased processing speed | |
| JP4865960B2 (en) | Data processing apparatus and control method thereof | |
| JPH10161871A (en) | Processor | |
| JPH10222367A (en) | Data processor provided with microprocessor having nestable delay branch instruction and method for operating the microprocessor | |
| US5742842A (en) | Data processing apparatus for executing a vector operation under control of a master processor | |
| JPH0380324A (en) | central processing unit | |
| JPH03218526A (en) | information processing equipment | |
| JPH0444136A (en) | Memory access controller | |
| JPS6238953A (en) | Main storage device for compression of partial write access | |
| JP2861560B2 (en) | Data processing device | |
| EP0660225B1 (en) | ALU capable of simultaneously executing a plurality of operations | |
| JP3540802B2 (en) | Instruction generation method, instruction generation method, and information processing apparatus | |
| JP2925842B2 (en) | Pipeline processing equipment | |
| JPS6339036A (en) | Pipeline processing system | |
| JPH03271854A (en) | Dma controller | |
| JPH05128279A (en) | One-chip microcomputer | |
| JPH0222417B2 (en) | ||
| JPH01201759A (en) | Dma controller | |
| JPS63629A (en) | Data processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |