JP2542120B2 - Information processing device - Google Patents

Information processing device

Info

Publication number
JP2542120B2
JP2542120B2 JP2309994A JP30999490A JP2542120B2 JP 2542120 B2 JP2542120 B2 JP 2542120B2 JP 2309994 A JP2309994 A JP 2309994A JP 30999490 A JP30999490 A JP 30999490A JP 2542120 B2 JP2542120 B2 JP 2542120B2
Authority
JP
Japan
Prior art keywords
data
register
instruction
immediate data
immediate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2309994A
Other languages
Japanese (ja)
Other versions
JPH03218526A (en
Inventor
英嗣 前川
隆 小泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2309994A priority Critical patent/JP2542120B2/en
Publication of JPH03218526A publication Critical patent/JPH03218526A/en
Application granted granted Critical
Publication of JP2542120B2 publication Critical patent/JP2542120B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、電子計算機を用いた情報処理装置に関す
るものである。
The present invention relates to an information processing device using an electronic computer.

〔従来の技術〕[Conventional technology]

第5図は従来の情報処理装置のブロック図を示すもの
である。第5図において、101は命令の解読を行う命令
解読部、102は連続する命令間におけるレジスタの干渉
を検出するレジスタ干渉検出部、103は複数のレジスタ
から構成され、32ビットの0データを保持するゼロ値レ
ジスタを持ったレジスタ部、104は整数演算部、105はデ
ータキャッシュ(図示せず)との間のデータの転送を司
るデータ転送コントロール部、501はデータアドレスを
生成するデータアドレス生成部である。110は命令を転
送する命令バス、111は即値データを転送する32ビット
の即値データバス、112は32ビットの第1内部データバ
ス、113は32ビットの第2内部データバス、114は32ビッ
トの第3内部データバス、115は32ビットのデータアド
レスバス、116はデータキャッシュに転送する32ビット
のストアデータバス、117はデータキャッシュから転送
される32ビットのロードデータバス、118は命令解読部1
01から送出される制御信号である。
FIG. 5 shows a block diagram of a conventional information processing apparatus. 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. A register unit having a zero value register, 104 is an integer operation unit, 105 is a data transfer control unit that controls data transfer with a data cache (not shown), and 501 is a data address generation unit that generates a data address. Is. 110 is an instruction bus for transferring instructions, 111 is a 32-bit immediate data bus for transferring immediate data, 112 is a 32-bit first internal data bus, 113 is a 32-bit second internal data bus, and 114 is a 32-bit Third internal data bus, 115 is a 32-bit data address bus, 116 is a 32-bit store data bus for transferring to the data cache, 117 is a 32-bit load data bus transferred from the data cache, 118 is an instruction decoding unit 1
This is a control signal sent from 01.

第6図は、第5図における従来の情報処理装置のデー
タアドレス生成部501の内部構成を示すブロック図であ
る。第6図において、601と203は32ビットのマルチプレ
クサ、202は32ビットの加算器、204は32ビットのフィー
ドバックラッチである。111は32ビットの即値データバ
ス、112は32ビットの第1内部データバス、113は32ビッ
トの第2内部データバスであり、それぞれ第5図におけ
る同名のバスに対応する。210はマルチプレクサ601の出
力で加算器202に入力する32ビットのデータバス、211は
加算器202の出力で加算結果出力バスである。115はデー
タアドレスバスで、第5図におけるデータアドレスバス
115に対応する。212はフィードバックラッチ204に保持
された1クロック前のデータアドレスバス115のデータ
を出力するホールドデータバスである。213および214
は、それぞれマルチプレクサ301,203のセレクト条件を
指示するデータセレクト信号およびアドレスホールド信
号であり、ともに第5図における制御信号118の一部で
ある。
FIG. 6 is a block diagram showing the internal configuration of the data address generation unit 501 of the conventional information processing apparatus 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. 111 is a 32-bit immediate data bus, 112 is a 32-bit first internal data bus, and 113 is a 32-bit second internal data bus, which respectively correspond to the buses of the same name in FIG. 210 is an output of the multiplexer 601 and is a 32-bit data bus input to the adder 202, and 211 is an output of the adder 202, which is an addition result output bus. 115 is a data address bus, which is the data address bus in FIG.
Corresponds to 115. Reference numeral 212 is a hold data bus for outputting the data of the data address bus 115 one clock before, which is held in the feedback latch 204. 213 and 214
Are a data select signal and an address hold signal for instructing the select conditions of the multiplexers 301 and 203, respectively, both of which are part of the control signal 118 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 an operation only between the data of two 32-bit registers, performs the inter-register operation of storing the result in the register again, and exchanges the data with the memory. Is an information processing device having a load / store architecture that is performed only between a memory and a register.

第7図は従来の状情報処理装置の演算命令の動作を示
すタイミング図である。第7図において、C1,C2等は従
来の情報処理装置の処理サイクルを、A,Bは処理される
演算命令を表す。
FIG. 7 is a timing chart showing the operation of the arithmetic instruction of the conventional information processing apparatus. In FIG. 7, C1, C2, etc. represent processing cycles of a conventional information processing apparatus, and A, B represent arithmetic instructions to be processed.

まず、第5図と第7図を用いて従来の情報処理装置の
演算命令の動作を説明する。
First, the operation of the operation instruction of the conventional information processing apparatus will be described with reference to FIGS. 5 and 7.

C1サイクル: 演算命令Aをフェッチし、命令バス110に送出する。C1 cycle: The operation instruction A is fetched and sent to the instruction bus 110.

C2サイクル: 命令バス110に送出された演算命令Aを命令解読部101
が解読する。命令解読部101は、解読した命令に応じた
制御情報を制御信号118として送出するが、ここで演算
命令Aの種類により以下に示す2種類の処理に分かれ
る。
C2 cycle: The instruction decoding unit 101 converts the operation instruction A sent to the instruction bus 110.
Deciphers. The instruction decoding unit 101 sends the control information according to the decoded instruction as the control signal 118, but the processing is divided into the following two types of processing depending on the type of the operation instruction A.

(1)演算命令Aが2つの32ビットレジスタのデータ間
の演算の場合 レジスタ部103は制御信号118で指定された2つの32ビ
ットのレジスタのデータをそれぞれ第1内部データバス
112,第2内部データバス113に送出する。
(1) When the operation instruction A is an operation between data in two 32-bit registers, the register unit 103 transfers the data in the two 32-bit registers designated by the control signal 118 to the first internal data bus.
112, to the second internal data bus 113.

(2)演算命令Aがその命令に指定された即値データを
特定のレジスタに設定する命令の場合 命令解読部101は、即値データを即値データバス111に
送出する。また、レジスタ部103は、制御信号118で指定
された32ビットのゼロ値レジスタのデータを第1内部デ
ータバス112に送出する。
(2) When the operation instruction A is an instruction to set the immediate data designated in the instruction to a specific register: The instruction decoding unit 101 sends the immediate data to the immediate data bus 111. Further, the register unit 103 sends the data of the 32-bit zero value register designated by the control signal 118 to the first internal data bus 112.

また、演算命令Bをフェッチし、命令バス110に送出
する。
Also, the operation instruction B is fetched and sent to the instruction bus 110.

C3サイクル: 整数演算部104は、C2サイクルで命令解読部101が送出
した制御信号118で指定された演算を実行する。この
時、この演算に使用されるデータはC2サイクルで説明し
た2種類の場合で異なる。
C3 cycle: The integer operation unit 104 executes the operation designated by the control signal 118 sent from the instruction decoding unit 101 in the C2 cycle. At this time, the data used for this calculation differs between the two types described in the C2 cycle.

(1)演算命令Aが2つの32ビットレジスタのデータ間
の演算の場合 整数演算部104は、C2サイクルでレジスタ部103が第1
内部データバス112および第2内部データバス113に送出
したデータを入力し、演算を実行する。演算終了後、演
算結果を32ビットの第3内部データバス114に送出す
る。
(1) When the operation instruction A is an operation between the data of two 32-bit registers The integer operation unit 104 has the first register unit 103 in the C2 cycle.
The data sent to the internal data bus 112 and the second internal data bus 113 is input and the operation is executed. After the operation is completed, the operation result is sent to the 32-bit third internal data bus 114.

(2)演算命令Aがその命令に指定された即値データを
特定のレジスタに設定する命令の場合 整数演算部104は、C2サイクルで命令解読部101が即値
データバス111に送出した即値データを入力し、レジス
タ部103が第1内部データバス112に送出した0との加算
を実行する。演算終了後、演算結果を32ビットの第3内
部データバス114に送出する。
(2) When the operation instruction A is an instruction to set the immediate data specified in the instruction to a specific register: The integer operation unit 104 inputs the immediate data sent to the immediate data bus 111 by the instruction decoding unit 101 in the C2 cycle. Then, the register unit 103 executes addition with 0 sent to the first internal data bus 112. After the operation is completed, the operation result is sent to the 32-bit third internal data bus 114.

演算命令Bに対する処理はC2サイクルにおける演算命
令Aの場合と同様であるため、詳細な説明は省略する。
Since the processing for the arithmetic instruction B is the same as that for the arithmetic instruction A in the C2 cycle, detailed description will be omitted.

C4サイクル: レジスタ部103は、C3サイクルで整数演算部104が第3
内部データバス114に送出したデータをC2サイクルで制
御信号118で指定されたレジスタへ格納する。
C4 cycle: In the register unit 103, the integer arithmetic unit 104 is the third in the C3 cycle.
The data sent to the internal data bus 114 is stored in the register designated by the control signal 118 in the C2 cycle.

演算命令Bに対する処理はC3サイクルにおける演算命
令Aの場合と同様であるため、詳細な説明は省略する。
Since the processing for the arithmetic instruction B is the same as that for the arithmetic instruction A in the C3 cycle, detailed description will be omitted.

つぎに、従来の情報処理装置のメモリアドレス計算を
要する命令の動作について説明する。例として、レジス
タのデータをメモリに格納するストア命令を挙げる。
Next, the operation of an instruction that requires memory address calculation in the conventional information processing apparatus will be described. As an example, a store instruction for storing the data of the register in the memory is given.

第8図と第9図は従来の情報処理装置のメモリへデー
タを格納するストア命令の動作を示すタイミング図であ
る。ここで、第8図はデータを格納するメモリアドレス
の計算に1つの32ビットのレジスタのデータとそのスト
ア命令に指定された即値データとの和をとる場合(以下
1クロックストアと呼ぶ)を示し、第9図はデータを格
納するメモリアドレスの計算に2つの32ビットのレジス
タのデータとの和をとる場合(以下2クロックストアと
呼ぶ)を示す。
8 and 9 are timing charts showing the operation of a store instruction for storing data in the memory of the conventional information processing apparatus. Here, FIG. 8 shows the case where the data of one 32-bit register and the immediate data designated by the store instruction are summed to calculate the memory address for storing the data (hereinafter referred to as 1-clock store). , FIG. 9 shows the case where the sum of the data of two 32-bit registers is taken to calculate the memory address for storing the data (hereinafter referred to as 2-clock store).

まず、第5図および第6図と第8図とを用いて従来の
情報処理装置の1クロックストアの動作を説明する。説
明の簡単のため、1クロックストア時のアドレス計算に
用いるレジスタのデータを(r1),即値データを(imm
A),ストアすべきレジスタのデータを(r2)とする。
First, the operation of the 1-clock store of the conventional information processing apparatus will be described with reference to FIGS. 5, 6 and 8. For simplicity of explanation, the data of the register used for the address calculation at the time of 1-clock store (r1) and the immediate data (imm
A), register data to be stored is (r2).

C1サイクル: ストア命令Aをフェッチし、命令バス110に送出す
る。
C1 cycle: The store instruction A is fetched and sent to the instruction bus 110.

C2サイクル: 命令バス110に送出されたストア命令Aを命令解読部1
01が解読する。命令解読部101は、制御情報を制御信号1
18として送出し、即値データ(immA)を即値データバス
111に送出する。また、レジスタ103は、制御信号118で
指定されたメモリアドレス計算に用いる32ビットのレジ
スタのデータ(r1)を第2内部データバス113に送出
し、メモリに格納すべき32ビットのレジスタのデータ
(r2)を第1内部データバス112に送出する。
C2 cycle: Store instruction A sent to instruction bus 110 receives instruction decode unit 1
01 deciphers. The instruction decoding unit 101 sends the control information to the control signal 1
18 and send immediate data (immA) as immediate data bus
Send to 111. Also, the register 103 sends the 32-bit register data (r1) used for the memory address calculation designated by the control signal 118 to the second internal data bus 113, and the 32-bit register data (r1) to be stored in the memory ( r2) is sent to the first internal data bus 112.

つぎに、データアドレス生成部501の動作について説
明する。マルチプレクサ601は、制御信号118として送出
されたデータセレクト信号213の情報により、データバ
ス210に即値データバス111の即値データ(immA)を出力
する。加算器202はそれぞれ32ビットのデータバス210と
第2内部データバス113とに出力された即値データ(imm
A)とデータ(r1)を加算し、結果を加算結果出力バス2
11に出力する。マルチプレクサ203は、制御信号118とし
て送出されたアドレスホールド信号214の情報により、
データアドレスバス115に加算結果出力バス211のデータ
を出力する。こうして、データアドレスバス115にスト
アすべきデータのアドレス(immA)+(r1)を送出す
る。
Next, the operation of the data address generation unit 501 will be described. The multiplexer 601 outputs the immediate data (immA) of the immediate data bus 111 to the data bus 210 according to the information of the data select signal 213 sent as the control signal 118. The adder 202 outputs immediate data (imm output to the 32-bit data bus 210 and the second internal data bus 113, respectively).
A) and data (r1) are added, and the result is added. Result output bus 2
Output to 11. The multiplexer 203 uses the information of the address hold signal 214 sent as the control signal 118,
The data of the addition result output bus 211 is output to the data address bus 115. Thus, the address (immA) + (r1) of the data to be stored on the data address bus 115 is transmitted.

C3サイクル: データアドレスバス115に送出されたアドレス(imm
A)+(r1)を用いデータキャッシュをアクセスする。
ここでデータキャッシュはヒットすると仮定する。ま
た、データ転送コントロール部105は第1内部データバ
ス112に送出されたデータ(r2)をラッチする。
C3 cycle: Address sent to data address bus 115 (imm
A) + (r1) is used to access the data cache.
Assume that the data cache hits here. Further, the data transfer control unit 105 latches the data (r2) sent to the first internal data bus 112.

C4サイクル: データ転送コントロール部105はC3サイクルでラッチ
したデータ(r2)をストアデータバス116に送出し、デ
ータキャッシュに格納する。
C4 cycle: The data transfer control unit 105 sends the data (r2) latched in the C3 cycle to the store data bus 116 and stores it in the data cache.

つぎに、第5図および第6図と第9図とを用い、従来
の情報処理装置の2クロックストアの動作を説明する。
説明の簡単のため、2クロックストア時のアドレス計算
に用いるレジスタのデータを(r1)と(r2)、ストアす
べきレジスタのデータを(r3)とする。
Next, the operation of the 2-clock store of the conventional information processing apparatus will be described with reference to FIGS. 5, 6 and 9.
For simplicity of explanation, it is assumed that the register data used for the address calculation at the time of storing two clocks is (r1) and (r2), and the register data to be stored is (r3).

C1サイクル: ストア命令Aをフェッチし、命令バス110に送出す
る。
C1 cycle: The store instruction A is fetched and sent to the instruction bus 110.

C2サイクル: 命令バス110に送出されたストア命令Aを命令解読部1
01が解読し、制御情報を制御信号118として送出する。
レジスタ部103は、制御信号118で指定されたメモリアド
レス計算に用いる2つの32ビットレジスタのデータ(r
1),(r2)を第1内部データバス112と第2内部データ
バス113とに送出する。
C2 cycle: Store instruction A sent to instruction bus 110 receives instruction decode unit 1
01 decodes and sends control information as control signal 118.
The register unit 103 uses two 32-bit register data (r
1) and (r2) are sent to the first internal data bus 112 and the second internal data bus 113.

つぎに、データアドレス生成部501の動作について説
明する。マルチプレクサ601は、制御信号118として送出
されたデータセレクト信号213の情報により、データバ
ス210に第1内部データバス112のデータを出力する。加
算器202は、それぞれ32ビットのデータバス210と第2内
部データバス113とに出力されたデータ(r1),(r2)
を加算し、結果を加算結果出力バス211に出力する。マ
ルチプレクサ203は、制御信号118として送出されたアド
レスホールド信号214の情報により、データアドレスバ
ス115に加算結果出力バス211のデータを出力する。こう
して、データアドレスバス115にストアすべきデータの
アドレス(r1)+(r2)を送出する。
Next, the operation of the data address generation unit 501 will be described. The multiplexer 601 outputs the data of the first internal data bus 112 to the data bus 210 according to the information of the data select signal 213 sent as the control signal 118. The adder 202 outputs the data (r1) and (r2) output to the 32-bit data bus 210 and the second internal data bus 113, respectively.
Are added and the result is output to the addition result output bus 211. The multiplexer 203 outputs the data of the addition result output bus 211 to the data address bus 115 according to the information of the address hold signal 214 sent as the control signal 118. Thus, the address (r1) + (r2) of the data to be stored on the data address bus 115 is transmitted.

C3サイクル: 命令解読部101は、C2サイクルで解読したストア命令
Aが2クロックストアであったことから、2クロックス
トアの2サイクル目の動作を示した制御情報を制御信号
118として送出する。
C3 cycle: Since the store instruction A decoded in the C2 cycle is the 2 clock store, the instruction decoding unit 101 outputs the control information indicating the operation of the 2nd cycle of the 2 clock store as the control signal.
Send as 118.

レジスタ部103は制御信号118に指定されたメモリに格
納すべき32ビットレジスタのデータ(r3)を第2内部デ
ータバス112に送出する。データアドレス生成部501は、
制御信号118として送出されたアドレスホールド信号214
の情報により、C3サイクルで加算した結果をデータアド
レスバス115に送出し続けるために、ホールドデータバ
ス212のデータ(r1)+(r2)がデータアドレスバス115
に出力するようにマルチプレクサ203を制御する。ま
た、命令解読部101はC2サイクルで解読した命令が2ク
ロックストアの命令であったことから、つぎの命令の解
読を行わない(nop)。
The register unit 103 sends the data (r3) of the 32-bit register to be stored in the memory designated by the control signal 118 to the second internal data bus 112. The data address generation unit 501
Address hold signal 214 sent as control signal 118
The data (r1) + (r2) of the hold data bus 212 is kept in the data address bus 115 in order to continuously send the result of addition in the C3 cycle to the data address bus 115 according to the information of
The multiplexer 203 is controlled to output to. Further, the instruction decoding unit 101 does not decode the next instruction (nop) because the instruction decoded in the C2 cycle is a 2-clock store instruction.

C4サイクル: データアドレスバス115に送出されたアドレス(r1)
+(r2)を用いデータキャッシュをアクセスする。ここ
で、データキャッシュはヒットすると仮定する。また、
データ転送コントロール部105は第1内部データバス112
に送出されたデータ(r3)をラッチする。
C4 cycle: Address sent to data address bus 115 (r1)
Use + (r2) to access the data cache. Now assume that the data cache is hit. Also,
The data transfer control unit 105 has a first internal data bus 112.
Latch the data (r3) sent to.

C5サイクル: データ転送コントロール部105は、C4サイクルでラッ
チしたデータ(r3)をストアデータバス116に送出し、
データキャッシュに格納する。
C5 cycle: The data transfer control unit 105 sends the data (r3) latched in the C4 cycle to the store data bus 116,
Store in data cache.

以上説明したように、2クロックストア命令では3つ
のレジスタのデータを必要とするため、その実行に5サ
イクル必要とする。このため、1サイクル分パイプライ
ンに空白ができる。
As described above, the 2-clock store instruction requires data in three registers, and therefore requires five cycles for execution. Therefore, there is a blank in the pipeline for one cycle.

つぎに、従来の情報処理装置の即値データを特定のレ
ジスタに設定する演算命令とメモリアドレス計算を必要
とする命令とが連続し、かつ後続する命令のメモリアド
レス計算に用いるレジスタが、先行する演算命令で即値
データを設定すべきレジスタと一致する場合について、
その動作を説明する。
Next, the operation instruction for setting the immediate data of the conventional information processing apparatus to a specific register and the instruction requiring the memory address calculation are continuous, and the register used for the memory address calculation of the subsequent instruction is the preceding operation. When the instruction matches the register that should set immediate data,
The operation will be described.

メモリアドレス計算を必要とする命令の例として、ス
トア命令を挙げる。
A store instruction is given as an example of an instruction that requires memory address calculation.

第10図と第11図は、従来の情報処理装置の即値データ
を特定のレジスタに設定する演算命令Aとストア命令B
とが連続し、かつ後続するストア命令bのメモリアドレ
ス計算に用いるレジスタが先行する演算命令Aで即値デ
ータを設定すべきレジスタと一致する場合(レジスタ干
渉)の動作を示すタイミング図である。第10図はストア
命令Bが1クロックストアの場合、第11図はストア命令
Bが2クロックストアの場合を表す。
10 and 11 show an arithmetic instruction A and a store instruction B for setting immediate data of a conventional information processing device in a specific register.
6 is a timing chart showing an operation in the case where and are consecutive and the register used for calculating the memory address of the subsequent store instruction b matches the register in which the immediate data is to be set in the preceding arithmetic instruction A (register interference). FIG. 10 shows the case where the store instruction B is one clock store, and FIG. 11 shows the case where the store instruction B is two clock store.

第5図および第6図と第10図とを用い、従来の情報処
理装置の即値データを特定のレジスタに設定する演算命
令Aと1クロックストア命令Bとが連続し、ストア命令
Bのメモリアドレス計算に用いるレジスタと先行する演
算命令Aで即値データを設定すべきレジスタとのレジス
タ干渉が発生する場合の動作について説明する。説明の
簡単のために干渉が発生するレジスタをr1,演算命令A
の即値データを(immA)、1クロックストア命令Bのア
ドレス計算に用いる即値データを(immB)、ストアすべ
きレジスタのデータを(r2)とする。
Using FIG. 5, FIG. 6 and FIG. 10, the operation instruction A for setting the immediate data of the conventional information processing apparatus to a specific register and the 1-clock store instruction B are consecutive, and the memory address of the store instruction B is set. The operation when register interference occurs between the register used for calculation and the register for which immediate data is to be set by the preceding arithmetic instruction A will be described. For simplicity of explanation, the register in which interference occurs is r1, the operation instruction A
(ImmA), the immediate data used for the address calculation of the one-clock store instruction B is (immB), and the data of the register to be stored is (r2).

C1サイクル: (1)演算命令Aに対する処理 演算命令Aをフェッチし、命令バス110に送出する。C1 cycle: (1) Processing for operation instruction A The operation instruction A is fetched and sent to the instruction bus 110.

C2サイクル: (1)演算命令Aに対する処理 命令バス110に送出された演算命令Aを命令解読部101
が解読する。命令解読部101は、制御情報を制御信号118
として送出し、即値データ(immA)を即値データバス11
1に送出する。また、レジスタ部103は、制御信号118で
指定された32ビットのゼロ値レジスタのデータを第1内
部データバス112に送出する。
C2 cycle: (1) Processing for operation instruction A The operation instruction A sent to the instruction bus 110 is transferred to the instruction decoding unit 101.
Deciphers. The instruction decoding unit 101 transmits the control information to the control signal 118.
And send immediate data (immA) as immediate data bus 11
Send to 1. Further, the register unit 103 sends the data of the 32-bit zero value register designated by the control signal 118 to the first internal data bus 112.

(2)ストア命令Bに対する処理 ストア命令Bをフェッチし、命令バス110に送出す
る。
(2) Processing for store instruction B The store instruction B is fetched and sent to the instruction bus 110.

C3サイクル: (1)演算命令Aに対する処理 整数演算部104は、C2サイクルで命令解読部101が即値
データバス111に送出した即値データ(immA)を入力
し、レジスタ部103が第1内部データバス112に送出した
0との加算を実行する。演算終了後、演算結果を32ビッ
トの第3内部データバス114に送出する。
C3 cycle: (1) Processing for operation instruction A The integer operation unit 104 inputs the immediate data (immA) sent by the instruction decoding unit 101 to the immediate data bus 111 in the C2 cycle, and the register unit 103 outputs the first internal data bus. The addition with 0 sent to 112 is executed. After the operation is completed, the operation result is sent to the 32-bit third internal data bus 114.

(2)ストア命令Bに対する処理 命令バス110に送出されたストア命令Bを命令解読部1
01が解読する。命令解読部101は、制御情報を制御信号1
18として送出し、即値データ(immB)を即値データバス
111に送出する。また、レジスタ部103は、制御信号118
で指定されたメモリアドレス計算に用いる32ビットのレ
ジスタのデータ(r1)を第2内部データバス113に送出
し、メモリに格納すべき32ビットのレジスタのデータ
(r2)を第1内部データバス112に送出する。ただし、
第2内部データバス113のデータ(r1)は演算命令Aが
終了していないため無効なデータである。前記の命令解
読部101の処理と並行してレジスタ干渉検出部102はスト
ア命令Bのメモリアドレス計算に用いるレジスタr1と先
行する演算命令Aで即値データを設定すべきレジスタr1
とのレジスタ干渉を検出し、結果を命令解読部101に通
知する。
(2) Processing for store instruction B The instruction decoding unit 1 stores the store instruction B sent to the instruction bus 110.
01 deciphers. The instruction decoding unit 101 sends the control information to the control signal 1
18 and send immediate data (immB) as immediate data bus
Send to 111. Further, the register unit 103 controls the control signal 118.
The 32-bit register data (r1) used for calculating the memory address specified in step 1 is sent to the second internal data bus 113, and the 32-bit register data (r2) to be stored in the memory is sent to the first internal data bus 112. Send to. However,
The data (r1) of the second internal data bus 113 is invalid because the operation instruction A has not been completed. In parallel with the processing of the instruction decoding unit 101, the register interference detection unit 102 and the register r1 used to calculate the memory address of the store instruction B and the register r1 that should set the immediate data by the preceding arithmetic instruction A.
The register interference is detected and the result is notified to the instruction decoding unit 101.

C4サイクル: (1)演算命令Aに対する処理 レジスタ部103は、C3サイクルで整数演算部104が第3
内部データバス114に送出した即値データ(immA)をC2
サイクルで制御信号118で指定されたレジスタr1へ格納
する。
C4 cycle: (1) Processing for operation instruction A The register unit 103 has a third integer operation unit 104 in the C3 cycle.
Immediate value data (immA) sent to internal data bus 114 is C2
It is stored in the register r1 designated by the control signal 118 in a cycle.

(2)ストア命令Bに対する処理 命令解読部101は、レジスタ干渉検出部102がC3サイク
ルでストア命令Bのレジスタr1の干渉を検出したため、
C3サイクルと同様にストア命令Bの解読を続行し、制御
情報を制御信号118として送出し、即値データ(immB)
を即値データバス111に送出する。レジスタ部103は、制
御信号118に指定されたメモリアドレス計算に用いる32
ビットのレジスタのデータ(r1)を第2内部データバス
113に送出し、メモリに格納すべき32ビットのレジスタ
のデータ(r2)を第1内部データバス112に送出する。
(2) Processing for store instruction B In the instruction decoding unit 101, since the register interference detection unit 102 detects the interference of the register r1 of the store instruction B in the C3 cycle,
As in the C3 cycle, decoding of store instruction B is continued, control information is sent as control signal 118, and immediate data (immB)
Is sent to the immediate data bus 111. The register unit 103 is used to calculate the memory address specified by the control signal 118 32
Bit register data (r1) is transferred to the second internal data bus
The data (r2) of the 32-bit register to be stored in the memory is sent to the first internal data bus 112.

つぎに、データアドレス生成部501の動作について説
明する。マルチプレクサ601は、制御信号118として送出
されたデータセレクト信号213の情報により、データバ
ス210に即値データバス111の即値データ(immB)を出力
する。加算器202は、それぞれ32ビットのデータバス210
と第2内部データバス113とに出力された即値データ(i
mmB)およびデータ(r1)を加算し、結果を加算結果出
力バス211に出力する。マルチプレクサ203は制御信号11
8として送移されたアドレスホールド信号214の情報によ
り、データアドレスバス115に加算結果出力バス211のデ
ータを出力する。こうして、データアドレスバス115に
ストアすべきデータのアドレス(immB)+(r1)を送出
する。
Next, the operation of the data address generation unit 501 will be described. The multiplexer 601 outputs the immediate data (immB) of the immediate data bus 111 to the data bus 210 according to the information of the data select signal 213 sent as the control signal 118. The adder 202 has a 32-bit data bus 210
And the immediate data (i) output to the second internal data bus 113
mmB) and the data (r1) are added, and the result is output to the addition result output bus 211. Multiplexer 203 controls signal 11
The data of the addition result output bus 211 is output to the data address bus 115 according to the information of the address hold signal 214 transferred as 8. Thus, the address (immB) + (r1) of the data to be stored on the data address bus 115 is transmitted.

C5,C6サイクルの動作は、1クロックストアで説明し
たC3,C4サイクルと同様であるため、説明は省略する
(第8図に関する説明を参照)。
The operation of the C5 and C6 cycles is the same as that of the C3 and C4 cycles described for the one-clock store, so the description thereof will be omitted (see the description of FIG. 8).

以上説明したように、1クロックストア命令Bのメモ
リアドレス計算に用いるレジスタr1と先行する演算命令
で即値データを設定すべきレジスタr1とのレジスタ干渉
が発生する場合は、1サイクル分パイプラインに空白が
できる。ここでは、メモリアドレス計算を要する命令の
例として1クロックストア命令を挙げたが、他のメモリ
アドレス計算を要するロード命令や分岐命令等の命令で
も、前述の干渉が発生する場合には同じ理由により、1
サイクル分パイプラインに空白が発生する。
As described above, when register interference occurs between the register r1 used for calculating the memory address of the one-clock store instruction B and the register r1 in which the immediate data should be set by the preceding arithmetic instruction, one cycle is left blank in the pipeline. You can Here, the 1-clock store instruction is given as an example of the instruction requiring the memory address calculation, but if the above-mentioned interference occurs even if another instruction such as a load instruction or a branch instruction requiring the memory address calculation is used for the same reason. 1
A blank occurs in the pipeline for cycles.

同様に、2クロックストア命令Bのメモリアドレス計
算に用いるレジスタと先行する演算命令Aで即値データ
を設定すべきレジスタとのレジスタ干渉が発生する場合
には、2サイクル分パイプラインに空白ができる。この
動作については、1クロックストアが2クロックストア
に変化するだけであるため、詳細な説明は省略するが、
第11図にそのタイミング図を示す。
Similarly, when register interference occurs between the register used for calculating the memory address of the two-clock store instruction B and the register for which the immediate data is to be set in the preceding arithmetic instruction A, there is a blank in the pipeline for two cycles. Regarding this operation, only one clock store is changed to two clock stores, so detailed description will be omitted.
Figure 11 shows the timing chart.

〔発明が解決しようとする課題〕[Problems to be Solved by the Invention]

しかしながら、上記のような構成では、メモリアドレ
ス計算を必要とする命令のメモリアドレス計算に用いる
レジスタと先行する演算命令で即値データを設定すべき
レジスタとのレジスタ干渉が発生する場合は、1サイク
ル分パイプラインい空白ができ、特に2クロックストア
命令のメモリアドレス計算に用いるレジスタと先行する
演算命令で即値データを設定すべきレジスタとのレジス
タ干渉が発生する場合は、2サイクル分パイプラインに
空白ができるという問題点を有していた。
However, in the above configuration, if register interference occurs between a register used for memory address calculation of an instruction requiring memory address calculation and a register to which immediate data is to be set by a preceding arithmetic instruction, one cycle is required. If there is a blank space in the pipeline, especially if there is register interference between the register used to calculate the memory address of the two-clock store instruction and the register to which the immediate data should be set in the preceding arithmetic instruction, there is a blank space in the pipeline for two cycles. It had a problem that it could be done.

この発明の目的は、パイプラインの空白をなくし、高
速化を可能とした情報処理装置を提供することである。
It is an object of the present invention to provide an information processing device that eliminates blank spaces in a pipeline and enables high speed processing.

〔課題を解決するための手段〕[Means for solving the problem]

この発明の情報処理装置は、命令内に指定された即値
データを保持する即値データラッチと、前記即値データ
ラッチの出力と命令内に指定された即値データとレジス
タからの第1のデータの3つのデータの内のいずれかを
選択する第1マルチプレクサと、前記即値データラッチ
の出力とレジスタからの第2のデータのいずれかを選択
する第2のマルチプレクサと、前記第1および第2のマ
ルチプレクサの出力を加算する加算器と、連続する命令
間のレジスタ干渉を検出するレジスタ干渉検出部とを備
え、即値データを特定のレジスタに格納する命令とメモ
リアドレス計算を必要とする命令とが連続した際、前記
レジスタ干渉検出部が後続する命令でメモリアドレス計
算に用いるレジスタと先行する命令で即値データを格納
するレジスタとの一致を検出すると、前記加算器が前記
第1か第2のいずれかのマルチプレクサからの出力であ
る前記即値データラッチが保持した先行する命令の即値
データを使用してメモリアドレス計算をする。
The information processing apparatus of the present invention has three types of data: an immediate data latch that holds immediate data designated in an instruction, an output of the immediate data latch, immediate data designated in the command, and first data from a register. A first multiplexer for selecting any one of the data, a second multiplexer for selecting one of the output of the immediate data latch and the second data from the register, and an output of the first and second multiplexers And an register adder that detects register interference between consecutive instructions, and when an instruction that stores immediate data in a specific register and an instruction that requires memory address calculation are consecutive, One of a register used for memory address calculation by a subsequent instruction of the register interference detection unit and a register storing immediate data by a preceding instruction. Upon detection of a, the memory address calculated using immediate data of the instruction the adder preceding the immediate data latch is output is held from the first or second one of the multiplexers.

また、この発明の情報処理装置は、命令内に指定され
た即値データを保持する即値データラッチと、前記即値
データラッチの出力と命令内に指定された即値データと
レジスタからの第1のデータの3つのデータの内いずれ
かを選択する第1のマルチプレクサと、前記即値データ
ラッチの出力とレジスタからの第2のデータのいずれか
を選択する第2のマルチプレクサと、前記第1および第
2のマルチプレクサの出力を加算する加算器と、連続す
る命令間のレジスタ干渉を検出するレジスタ干渉検出部
とを備え、即値データを特定のレジスタに格納する命令
と特定のレジスタのデータを、即値データと別のレジス
タのデータの和で指定されるアドレスのメモリに格納す
る命令とが連結した際、前記レジスタ干渉検出部が後続
する命令でメモリアドレス計算に用いるレジスタと先行
する命令で即値データを格納するレジスタとの一致を検
出すると、前記加算器が前記第2のマルチプレクサから
の出力である前記即値データラッチが保持した先行する
命令の即値データと前記第1のマルチプレクサからの出
力である後続する命令の即値データとを加算してアドレ
ス計算をする。
Further, the information processing apparatus of the present invention includes an immediate data latch that holds immediate data designated in an instruction, an output of the immediate data latch, an immediate data designated in the instruction, and a first data from a register. A first multiplexer for selecting any one of the three data, a second multiplexer for selecting any of the second data from the output of the immediate data latch and the register, and the first and second multiplexers It is equipped with an adder that adds the outputs of the above and a register interference detection unit that detects register interference between consecutive instructions, and an instruction that stores immediate data in a specific register and data in a specific register When the instruction to be stored in the memory at the address specified by the sum of register data is linked, the register interference detection unit executes the subsequent memory instruction. When a match between the register used for the address calculation and the register storing the immediate data in the preceding instruction is detected, the adder outputs the immediate data of the preceding instruction held by the immediate data latch which is the output from the second multiplexer. And the immediate data of the subsequent instruction, which is the output from the first multiplexer, are added to calculate the address.

さらに、この発明の情報処理装置は、命令内に指定さ
れた即値データを保持する即値データラッチと、前記即
値データラッチの出力と命令内に指定された即値データ
とレジスタからの第1のデータの3つのデータの内いず
れかを選択する第1のマルチプレクサと、前記即値デー
タラッチの出力とレジスタからの第2のデータのいずれ
かを選択する第2のマルチプレクサと、前記第1および
第2のマルチプレクサの出力を加算する加算器と、連続
する命令間のレジスタ干渉を検出するレジスタ干渉検出
部と、2つのレジスタのデータを同時に出力できる複数
のレジスタからなるレジスタ部とを備え、即値データを
特定のレジスタに格納する命令と、特定のレジスタのデ
ータを、他の2つのレジスタのデータの和で指定される
アドレスのメモリに格納する命令とが連続した際、前記
レジスタ干渉検出部が後続する命令でメモリアドレス計
算に用いる一方のレジスタと先行する命令で即値データ
を格納するレジスタとの一致を検出すると、前記レジス
タ部が一致しなかった他方のレジスタのデータとメモリ
に格納すべきレジスタのデータとを出力し、前記加算器
が前記第1か第2のいずれか一方のマルチプレクサから
出力される前記即値データラッチが保持した先行する命
令の即値データと他方のマルチプレクサから出力される
後続する命令の一致しなかった他方のレジスタのデータ
とを加算してメモリアドレス計算をする。
Further, the information processing apparatus of the present invention includes an immediate data latch for holding immediate data designated in an instruction, an output of the immediate data latch, immediate data designated in the instruction, and first data from a register. A first multiplexer for selecting any one of the three data, a second multiplexer for selecting any of the second data from the output of the immediate data latch and the register, and the first and second multiplexers Is provided with an adder for adding the outputs of the registers, a register interference detection unit for detecting register interference between consecutive instructions, and a register unit composed of a plurality of registers capable of outputting the data of two registers at the same time. The instruction to store in the register and the data in the specific register are stored in the memory at the address specified by the sum of the data in the other two registers. When the instructions to be stored are consecutive, if 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 the preceding instruction, the register unit detects The preceding data held by the immediate data latch, which outputs the data of the other register and the data of the register to be stored in the memory, and which is output from the multiplexer of the first or second multiplexer The immediate address data of the instruction to be added and the data of the other register of the subsequent instruction, which is output from the other multiplexer and does not match, are added to calculate the memory address.

〔作用〕[Action]

この発明は、前記した構成により、即値データを特定
のレジスタに格納する命令とメモリアドレス計算を必要
とする命令とが連続した際、前記レジスタ干渉検出部が
後続する命令でメモリアドレス計算に用いるレジスタと
先行する命令で即値データを格納するレジスタとの一致
を検出すると、前記加算器が前記第1か第2のいずれか
のマルチプレクサからの出力である前記即値データラッ
チが保持した先行する命令の即値データを使用してメモ
リアドレス計算をする。
According to the present invention, according to the above configuration, when an instruction for storing immediate data in a specific register and an instruction requiring memory address calculation are consecutive, the register used by the register interference detection unit for memory address calculation by a subsequent instruction. And the preceding instruction detects a match with the register that stores the immediate data, the adder outputs the immediate value of the preceding instruction held by the immediate data latch which is the output from either the first or second multiplexer. Calculate the memory address using the data.

またこの発明は、即値データを特定のレジスタに格納
する命令と特定のレジスタのデータを即値データを別の
レジスタのデータの和で指定されるアドレスのメモリに
格納する命令とが連続した際、前記レジスタ干渉検出部
が後続する命令でメモリアドレス計算に用いるレジスタ
と先行する命令で即値データを格納するレジスタとの一
致を検出すると、前記加算器が前記第2のマルチプレク
サからの出力である前記即値データラッチが保持した先
行する命令の即値データと前記第1のマルチプレクサか
らの出力である後続する命令の即値データとを加算して
アドレス計算をする。
Further, the present invention is characterized in that, when an instruction for storing immediate data in a specific register and an instruction for storing data in a specific register in a memory at an address designated by a sum of data in other registers are consecutive, When the register interference detection unit detects a match between a register used for memory address calculation in a subsequent instruction and a register storing immediate data in a preceding instruction, the adder outputs the immediate data which is an output from the second multiplexer. The address calculation is performed by adding the immediate data of the preceding instruction held by the latch and the immediate data of the following instruction which is the output from the first multiplexer.

さらにまたこの発明は、即値データを特定のレジスタ
に格納する命令と、特定のレジスタのデータを他の2つ
のレジスタのデータの和で指定されるアドレスのメモリ
に格納する命令とが連続した際、前記レジスタ干渉検出
部が後続する命令でメモリアドレス計算に用いる一方の
レジスタと先行する命令で即値データを格納するレジス
タとの一致を検出すると、前記レジスタ部が一致しなか
った他方のレジスタのデータとメモリに格納すべきレジ
スタのデータを出力し、前記加算器が前記第1か第2の
いずれか一方のマルチプレクサから出力される前記即値
データラッチが保持した先行する命令の即値データと、
他方のマルチプレクサから出力される後続する命令の一
致しなかった他方のレジスタのデータとを加算してメモ
リアドレス計算をする。
Furthermore, according to the present invention, when an instruction to store immediate data in a specific register and an instruction to store data in a specific register in a memory at an address designated by the sum of data in two other registers are consecutive, When the register interference detection unit detects a match between one register used for memory address calculation in a subsequent instruction and a register that stores immediate data in a preceding instruction, the register unit detects that the register unit does not match the data in the other register. Immediate data of the preceding instruction output by the register to be stored in the memory, and the adder outputs the immediate data latch from the first or second multiplexer;
The memory address is calculated by adding the data of the other register, which is not matched, of the subsequent instruction output from the other multiplexer.

〔実施例〕〔Example〕

第1図はこの発明の実施例における情報処理装置のブ
ロック図を示すものである。第1図において、101は命
令の解読を行う命令解読部、102は連続する命令間にお
けるレジスタの干渉を検出するレジスタ干渉検出部、10
3は複数のレジスタから構成され、32ビットの0データ
を保持するゼロ値レジスタを持ったレジスタ部、104は
整数演算部、105はデータキャッシュ(図示せず)との
データの転送を司るデータ転送コントロール部、106は
データアドレスを生成するデータアドレス生成部であ
る。110は命令を転送する命令バス、111は即値データを
転送する32ビットの即値データバス、112は32ビットの
第1内部データバス、113は32ビットの第2内部データ
バス、114は32ビットの第3内部データバス、115は32ビ
ットのデータアドレスバス、116はデータキャッシュに
転送する32ビットのストアデータバス、117はデータキ
ャッシュから転送される32ビットのロードデータバス、
118は命令解読部101から送出される制御信号、119はレ
ジスタ干渉検出部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, and 10
3 is composed of a plurality of registers, a register unit having a zero value register that holds 32-bit 0 data, 104 is an integer operation unit, and 105 is a data transfer that controls data transfer with a data cache (not shown). The control unit 106 is a data address generation unit that generates a data address. 110 is an instruction bus for transferring instructions, 111 is a 32-bit immediate data bus for transferring immediate data, 112 is a 32-bit first internal data bus, 113 is a 32-bit second internal data bus, and 114 is a 32-bit Third internal data bus, 115 is a 32-bit data address bus, 116 is a 32-bit store data bus for transfer to the data cache, 117 is a 32-bit load data bus transferred from the data cache,
Reference numeral 118 is a control signal transmitted from the instruction decoding unit 101, and 119 is a register interference detection signal transmitted from the register interference detection unit 102.

第2図は、第1図の実施例における情報処理装置のデ
ータアドレス生成部106の内部構成を示すブロック図で
ある。図において、201,203,205は32ビットのマルチプ
レクサ、202は32ビットの加算器、204は32ビットのフィ
ードバックラッチ、206は32ビットの即値データラッチ
である。111は32ビットの即値データバス、112は32ビッ
トの第1内部データバス、113は32ビットの第2内部デ
ータバスであり、それぞれ第1図における同名のバスに
対応する。210はマルチプレクサ201の出力で加算器202
に入力する32ビットのデータバス、211は加算器202の出
力で加算結果出力バスである。115はデータアドレスバ
スで、第1図におけるデータアドレスバス115に対応す
る。212はフィードバックラッチ204に保持された1クロ
ック前のデータアドレスバス115のデータを出力するホ
ールドデータバスである。213と214はそれぞれマルチプ
レクサ201,203のセレクト条件を指示するデータセレク
ト信号とアドレスホールド信号であり、ともに第1図に
おける制御信号118の一部である。215と216はそれぞれ
マルチプレクサ201,205のセレクト条件を指示する第1
レジスタ干渉検出信号と第2レジスタ干渉検出信号であ
り、ともに第1図におけるレジスタ干渉検出信号119の
一部である。また、217はマルチプレクサ205の出力で加
算器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. In the figure, 201, 203, and 205 are 32-bit multiplexers, 202 is a 32-bit adder, 204 is a 32-bit feedback latch, and 206 is a 32-bit immediate data latch. 111 is a 32-bit immediate data bus, 112 is a 32-bit first internal data bus, and 113 is a 32-bit second internal data bus, each of which corresponds to the bus of the same name in FIG. 210 is the output of the multiplexer 201 and the adder 202
Is a 32-bit data bus input to the input terminal 211, and 211 is an output of the adder 202, which is an addition result output bus. A data address bus 115 corresponds to the data address bus 115 in FIG. Reference numeral 212 is a hold data bus for outputting the data of the data address bus 115 one clock before, which is held in the feedback latch 204. Reference numerals 213 and 214 denote a data select signal and an address hold signal for instructing the select conditions of the multiplexers 201 and 203, respectively, both of which are part of the control signal 118 in FIG. 215 and 216 are the first to indicate the selection conditions of the multiplexers 201 and 205, respectively.
The register interference detection signal and the second register interference detection signal, both of which are part of the register interference detection signal 119 in FIG. Reference numeral 217 is a 32-bit data bus which is output from the multiplexer 205 and input to the adder 203.

以上のように構成されたこの発明の実施例における情
報処理装置の動作について以下説明する。
The operation of the information processing apparatus in the embodiment of the present invention configured as above will be described below.

この発明の実施例における情報処理装置は、4段のパ
イプライン構成をとり、演算は2つの32ビットレジスタ
のデータ間でのみ行い、結果を再びレジスタに格納する
レジスタ間演算をとり、メモリとのデータのやりとり
は、メモリとレジスタとの間でのみ行うロード・ストア
アーキテクチャをとった情報処理装置である。
The information processing apparatus according to the embodiment of the present invention has a four-stage pipeline structure, performs an operation only between the data of two 32-bit registers, and takes an inter-register operation for storing the result in the register again, and performs the operation with the memory. An information processing apparatus adopting a load / store architecture that exchanges data only between a memory and a register.

この発明の実施例における情報処理装置の演算命令の
動作と1クロックストアおよび2クロックストア命令の
動作は、従来の技術のところで述べた従来の情報処理装
置の動作と同様であるため、詳細な説明は省略する。
The operation of the operation instruction and the operation of the 1-clock store and 2-clock store instruction of the information processing apparatus according to the embodiment of the present invention are the same as the operation of the conventional information processing apparatus described in the background art, and thus detailed description will be given. Is omitted.

以下、この発明の実施例における情報処理装置の即値
データを特定のレジスタに設定する命令とメモリアドレ
ス計算を要する命令とが連続した場合の動作について説
明する。メモリアドレス計算を要する命令の例として
は、1クロックストア命令、2クロックストア命令、ロ
ード命令の場合を説明する。
The operation of the information processing apparatus according to the embodiment of the present invention when an instruction for setting immediate data in a specific register and an instruction requiring memory address calculation are consecutive will be described below. As an example of an instruction requiring memory address calculation, a 1-clock store instruction, a 2-clock store instruction, and a load instruction will be described.

第3図と第4図は、この発明の実施例における情報処
理装置の即値データを特定のレジスタに設定する演算命
令Aとストア命令Bが連続し、かつ後続するストア命令
Bのメモリアドレス計算に用いるレジスタが先行する演
算命令Aで即値データを設定すべきレジスタと一致する
場合(レジスタ干渉)の動作を示すタイミング図であ
る。第3図はストア命令Bが1クロックストアの場合、
第4図はストア命令Bが2クロックストアの場合を表
す。
FIG. 3 and FIG. 4 show calculation of the memory address of the store instruction B following the arithmetic instruction A and the store instruction B for setting the immediate data of the information processing device in a specific register in the embodiment of the present invention. FIG. 11 is a timing chart showing an operation when a register to be used coincides with a register to which immediate data is to be set in the preceding arithmetic instruction A (register interference). FIG. 3 shows that when the store instruction B is one clock store,
FIG. 4 shows the case where the store instruction B is a 2-clock store.

また第12図は、この発明の実施例における情報処理装
置の即値データを特定のレジスタに設定する演算命令A
とロード命令Bが連続し、かつ後続するロード命令Bの
メモリアドレス計算に用いるレジスタが先行する演算命
令Aで即値データを設定すべきレジスタと一致する場合
の動作を示すタイミング図である。
Further, FIG. 12 shows an arithmetic instruction A for setting immediate data of the information processing apparatus in a specific register in the embodiment of the present invention.
And the load instruction B are consecutive, and the register used for the memory address calculation of the subsequent load instruction B is the timing diagram showing the operation in the case where the preceding arithmetic instruction A matches the register in which the immediate data should be set.

第1図および第2図と第3図とを用い、この実施例に
おける情報処理装置の即値データを特定のレジスタに設
定する演算命令Aと1クロックストア命令Bとが連続
し、ストア命令Bのメモリアドレス計算に用いるレジス
タと先行する演算命令Aで即値データを設定すべきレジ
スタとのレジスタ干渉が発生する場合の動作について説
明する。説明の簡単のために干渉が発生するレジスタを
r1,演算命令Aの即値データを(immA)、1クロックス
トア命令Bのアドレス計算に用いる即値データを(imm
B)、ストアすべきレジスタのデータを(r2)とする。
Using FIG. 1, FIG. 2 and FIG. 3, the operation instruction A for setting the immediate data of the information processing apparatus in this embodiment and the 1-clock store instruction B are consecutive, and the store instruction B The operation when register interference occurs between the register used for memory address calculation and the register for which immediate value data should be set by the preceding arithmetic instruction A will be described. For the sake of simplicity of explanation, the registers that cause interference are
r1, immediate data of operation instruction A (immA), immediate data used for address calculation of 1 clock store instruction B (imm
B), the register data to be stored is (r2).

C1サイクル: (1)演算命令Aに対する処理 演算命令Aをフェッチし、命令バス110に送出する。C1 cycle: (1) Processing for operation instruction A The operation instruction A is fetched and sent to the instruction bus 110.

C2サイクル: (1)演算命令Aに対する処理 命令バス110に送出された演算命令Aを命令解読部101
が解読する。命令解読部101は、制御情報を制御信号118
として送出し、即値データ(immA)を即値データバス11
1に送出する。また、レジスタ部103は、制御信号118で
指定された32ビットのゼロ値レジスタのデータを第1内
部データバス112に送出する。
C2 cycle: (1) Processing for operation instruction A The operation instruction A sent to the instruction bus 110 is transferred to the instruction decoding unit 101.
Deciphers. The instruction decoding unit 101 transmits the control information to the control signal 118.
And send immediate data (immA) as immediate data bus 11
Send to 1. Further, the register unit 103 sends the data of the 32-bit zero value register designated by the control signal 118 to the first internal data bus 112.

(2)ストア命令Bに対する処理 ストア命令Bをフェッチし、命令バス110に送出す
る。
(2) Processing for store instruction B The store instruction B is fetched and sent to the instruction bus 110.

C3サイクル: (1)演算命令Aに対する処理 整数演算部104は、C2サイクルで命令解読部101が即値
データバス111に送出した即値データ(immA)を入力
し、レジスタ部103が第1内部データバス112に送出した
0との加算を実行する。演算終了後、演算結果を32ビッ
トの第3内部データバス114に送出する。同時に、C2サ
イクルで命令解読部101が即値データバス111に送出した
即値データ(immA)が32ビットの即値データラッチ206
がラッチする。
C3 cycle: (1) Processing for operation instruction A The integer operation unit 104 inputs the immediate data (immA) sent by the instruction decoding unit 101 to the immediate data bus 111 in the C2 cycle, and the register unit 103 outputs the first internal data bus. The addition with 0 sent to 112 is executed. After the operation is completed, the operation result is sent to the 32-bit third internal data bus 114. At the same time, the immediate data (immA) sent from the instruction decoding unit 101 to the immediate data bus 111 in the C2 cycle is a 32-bit immediate data latch 206.
Latches.

(2)ストア命令Bに対する処理 命令バス110に送出されたストア命令Bを命令解読部1
01が解読する。命令解読部101は、制御情報を制御信号1
18として送出し、即値データ(immB)を即値データバス
111に送出する。前記命令解読部101の処理と並行してレ
ジスタ干渉検出部102はストア命令Bのメモリアドレス
計算に用いるレジスタr1と先行する演算命令Aで即値デ
ータを設定すべきレジスタr1とのレジスタ干渉を検出
し、レジスタ干渉検出信号119に送出する。この時、レ
ジスタ干渉検出信号119内の第2レジスタ干渉検出信号2
16はマルチプレクサ205が即値データラッチ206の出力を
選択するための信号を出力する。レジスタ部103は、制
御信号118に指定されたメモリアドレス計算に使用する3
2ビットのレジスタのデータ(r1)を第2内部データバ
ス113に送出し、メモリに格納すべき32ビットのレジス
タのデータ(r2)を第1内部データバス112に送出す
る。ただし、32ビットのレジスタのデータ(r1)は、演
算命令Aの実行が終了していないため、無効なデータを
出力することとなる。
(2) Processing for store instruction B The instruction decoding unit 1 stores the store instruction B sent to the instruction bus 110.
01 deciphers. The instruction decoding unit 101 sends the control information to the control signal 1
18 and send immediate data (immB) as immediate data bus
Send to 111. In parallel with the processing of the instruction decoding unit 101, the register interference detection unit 102 detects the register interference between the register r1 used for calculating the memory address of the store instruction B and the register r1 to which immediate data should be set by the preceding arithmetic instruction A. , Register interference detection signal 119. At this time, the second register interference detection signal 2 in the register interference detection signal 119
16 outputs a signal for the multiplexer 205 to select the output of the immediate data latch 206. The register unit 103 is used to calculate the memory address specified by the control signal 118.
2-bit register data (r1) is sent to the second internal data bus 113, and 32-bit register data (r2) to be stored in the memory is sent to the first internal data bus 112. However, the 32-bit register data (r1) is invalid data because the execution of the arithmetic instruction A is not completed.

つぎに、データアドレス生成部106の動作について説
明する。マルチプレクサ21は、制御信号118として送出
されたデータセレクト信号213の情報によりデータバス2
10に即値データバス111の即値データ(immB)を出力す
る。マルチプレクサ205は、第2レジスタ干渉検出信号2
16の情報により、データバス217に即値データラッチ206
のデータ(immA)(正しい(r1)に相当)を出力する。
加算器202は、それぞれ32ビットのデータバス210と217
に出力されたデータを加算し、結果を加算結果出力バス
211に出力する。マルチプレクサ203は、制御信号118と
して送出されたアドレスホールド信号214の情報によ
り、データアドレスバス115に加算結果出力バス211のデ
ータを出力する。こうして、データアドレスバス115に
ストアすべきデータのアドレス(immB)+(r1)を送出
する。
Next, the operation of the data address generation unit 106 will be described. The multiplexer 21 uses the information of the data select signal 213 sent as the control signal 118 to determine the data bus 2
The immediate data (immB) of the immediate data bus 111 is output to 10. The multiplexer 205 uses the second register interference detection signal 2
The immediate data latch 206 is provided on the data bus 217 by the information of 16
Output the data (immA) of (corresponding to correct (r1)).
Adder 202 includes 32-bit data buses 210 and 217, respectively.
Add the data output to and add the result to the result output bus
Output to 211. The multiplexer 203 outputs the data of the addition result output bus 211 to the data address bus 115 according to the information of the address hold signal 214 sent as the control signal 118. Thus, the address (immB) + (r1) of the data to be stored on the data address bus 115 is transmitted.

C4サイクル: (1)演算命令Aに対する処理 レジスタ部103は、C3サイクルで整数演算部104が第3
内部データバス114に送出したデータ(immA)をC2サイ
クルで制御信号118に指定されたレジスタr1へ格納す
る。
C4 cycle: (1) Processing for operation instruction A The register unit 103 has a third integer operation unit 104 in the C3 cycle.
The data (immA) sent to the internal data bus 114 is stored in the register r1 designated by the control signal 118 in the C2 cycle.

(2)ストア命令Bに対する処理 データアドレスバス115に送出されたアドレス(imm
B)+(r1)を用いデータキャッシュをアクセスする。
ここで、データキャッシュがヒットすると仮定する。ま
た、データ転送コントロール部105は、第1内部データ
バス112に送出されたデータ(r2)をラッチする。
(2) Processing for store instruction B Address sent to data address bus 115 (imm
B) + (r1) is used to access the data cache.
Now assume that the data cache is hit. Further, the data transfer control unit 105 latches the data (r2) sent to the first internal data bus 112.

C5サイクル: (1)ストア命令Bに対する処理 データ転送コントロール部105は、C4サイクルでラッ
チしたデータ(r2)をストアデータバス116に送出し、
データキャッシュに格納する。
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 116,
Store in data cache.

以上のように、この実施例における情報処理装置で
は、即値データを特定のレジスタに設定する演算命令A
と1クロックストア命令Bとが連続し、ストア命令Bの
メモリアドレス計算に用いるレジスタと先行する演算命
令Aで即値データを設定すべきレジスタとのレジスタ干
渉が発生する場合に、即値データラッチ206を設け、レ
ジスタ干渉検出信号119でマルチプレクサ205を制御する
ことで従来の情報処理装置に比べ、1クロック分処理を
高速化することが可能となる。
As described above, in the information processing apparatus according to this embodiment, the arithmetic instruction A for setting immediate data in a specific register
And 1 clock store instruction B continue, and when register interference occurs between the register used for calculating the memory address of the store instruction B and the register to which the immediate operation data should be set in the preceding arithmetic instruction A, the immediate data latch 206 is set. By providing and controlling the multiplexer 205 with the register interference detection signal 119, the processing speed can be increased by one clock as compared with the conventional information processing apparatus.

つぎに、第1図および第2図と第4図とを用い、この
実施例における情報処理装置の即値データを特定のレジ
スタに設定する演算命令Aと2クロックストア命令Bと
が連続し、ストア命令Bのメモリアドレス計算い用いる
レジスタと先行する演算命令Aで即値データを設定すべ
きレジスタとのレジスタ干渉が発生する場合の動作につ
いて説明する。説明の簡単のため2クロックストア時の
アドレス計算に要するレジスタのデータを(r1)と(r
2)、ストアすべきレジスタのデータを(r1)とし、干
渉が発生するレジスタをr1、演算命令Aの即値データを
(immA)とする。
Next, using FIG. 1, FIG. 2 and FIG. 4, the arithmetic instruction A for setting the immediate data of the information processing apparatus in this embodiment to a specific register and the two-clock store instruction B are consecutive and stored. The operation when register interference occurs between the register used for calculating the memory address of the instruction B and the register for which immediate data should be set in the preceding arithmetic instruction A will be described. For simplification of explanation, register data required for address calculation at 2 clock store is (r1) and (r
2) The data of the register to be stored is (r1), the register in which interference occurs is r1, and the immediate data of the operation instruction A is (immA).

C1サイクル: (1)演算命令Aに対する処理 演算命令Aをフェッチし、命令バス110に送出する。C1 cycle: (1) Processing for operation instruction A The operation instruction A is fetched and sent to the instruction bus 110.

C2サイクル: (1)演算命令Aに対する処理 命令バス110に送出された演算命令Aを命令解読部101
が解読する。命令解読部101は、制御情報を制御信号118
として送出し、即値データ(immA)を即値データバス11
1に送出する。また、レジスタ部103は制御信号118に指
定された32ビットのゼロ値レジスタのデータを第1内部
データバス112に送出する。
C2 cycle: (1) Processing for operation instruction A The operation instruction A sent to the instruction bus 110 is transferred to the instruction decoding unit 101.
Deciphers. The instruction decoding unit 101 transmits the control information to the control signal 118.
And send immediate data (immA) as immediate data bus 11
Send to 1. Further, the register unit 103 sends the data of the 32-bit zero value register designated by the control signal 118 to the first internal data bus 112.

(2)ストア命令Bに対する処理 ストア命令Bをフェッチし、命令バス110に送出す
る。
(2) Processing for store instruction B The store instruction B is fetched and sent to the instruction bus 110.

C3サイクル: (1)演算命令Aに対する処理 整数演算部104は、C2サイクルで命令解読部101が即値
データバス111に送出した即値データ(immA)を入力と
し、レジスタ部103が第1内部データバス112に送出した
0との加算を実行する。演算終了後、演算結果を32ビッ
トの第3内部データバス114に送出する。同時に、C2サ
イクルで命令解読部101が即値データバス111に送出した
即値データ(immA)を32ビットの即値データラッチ206
がラッチする。
C3 cycle: (1) Processing for operation instruction A The integer operation unit 104 receives the immediate data (immA) sent by the instruction decoding unit 101 to the immediate data bus 111 in the C2 cycle, and the register unit 103 uses the first internal data bus. The addition with 0 sent to 112 is executed. After the operation is completed, the operation result is sent to the 32-bit third internal data bus 114. At the same time, the immediate data (immA) sent from the instruction decoding unit 101 to the immediate data bus 111 in the C2 cycle is transferred to the 32-bit immediate data latch 206.
Latches.

(2)ストア命令Bに対する処理 命令バス110に送出されたストア命令Bを命令解読部1
01が解読する。命令解読部101は、制御情報を制御信号1
18として送出する。前記命令解読部101の処理と並行し
てレジスタ干渉検出部102は、ストア命令Bのメモリア
ドレス計算に用いるレジスタr1と先行する演算命令Aで
即値データを設定すべきレジスタr1とのレジスタ干渉を
検出し、レジスタ干渉検出信号119に送出する。この
時、レジスタ干渉検出信号119内の第1レジスタ干渉検
出信号215は、マルチプレクサ201が即値データラッチ20
6を選択するための信号とレジスタ部103が第1内部デー
タバス112にメモリにストアすべき32ビットのレジスタ
のデータ(r3)を出力するための信号を出力する。レジ
スタ部103は、制御信号118で指定されたメモリアドレス
計算に使用する32ビットのレジスタのデータ(r2)を第
2内部データバス113に送出し、メモリに格納すべき32
ビットのレジスタのデータ(r3)を第1内部データバス
112に送出する。
(2) Processing for store instruction B The instruction decoding unit 1 stores the store instruction B sent to the instruction bus 110.
01 deciphers. The instruction decoding unit 101 sends the control information to the control signal 1
Send as 18. In parallel with the processing of the instruction decoding unit 101, the register interference detection unit 102 detects the register interference between the register r1 used for calculating the memory address of the store instruction B and the register r1 to which the preceding arithmetic instruction A should set the immediate data. Then, the register interference detection signal 119 is transmitted. At this time, the multiplexer 201 outputs the first register interference detection signal 215 in the register interference detection signal 119 to the immediate data latch 20.
The signal for selecting 6 and the signal for the register unit 103 to output the data (r3) of the 32-bit register to be stored in the memory to the first internal data bus 112 are output. The register unit 103 sends the 32-bit register data (r2) used for the memory address calculation designated by the control signal 118 to the second internal data bus 113 and stores it in the memory.
Bit register data (r3) to the first internal data bus
Send to 112.

つぎに、データアドレス生成部106の動作について説
明する。マルチプレクサ201は、第1レジスタ干渉検出
信号215の情報により、データバス210に即値データラッ
チ206のデータ(immA)(正しい(r1)に相当)を出力
する。マルチプレクサ205は、第2レジスタ干渉検出信
号216の情報により、データバス217に第2内部データバ
ス113のデータ(r2)を出力する。加算器202は、それぞ
れ32ビットのデータバス210と217とに出力されたデータ
を加算し、結果を加算結果出力バス211に出力する。マ
ルチプレクサ203は、制御信号118として送出されたアド
レスホールド信号214の情報により、データアドレスバ
ス115に加算結果出力バス211のデータを出力する。こう
して、データアドレスバス15にストアすべきデータのア
ドレス(r1)+(r2)を送出する。
Next, the operation of the data address generation unit 106 will be described. The multiplexer 201 outputs the data (immA) of the immediate data latch 206 (corresponding to correct (r1)) to the data bus 210 according to the information of the first register interference detection signal 215. The multiplexer 205 outputs the data (r2) of the second internal data bus 113 to the data bus 217 according to the information of the second register interference detection signal 216. The adder 202 adds the data output to the 32-bit data buses 210 and 217, respectively, and outputs the result to the addition result output bus 211. The multiplexer 203 outputs the data of the addition result output bus 211 to the data address bus 115 according to the information of the address hold signal 214 sent as the control signal 118. Thus, the address (r1) + (r2) of the data to be stored on the data address bus 15 is transmitted.

C4サイクル: (1)演算命令Aに対する処理 レジスタ部103は、C3サイクルで整数演算部104が第3
内部データバス114に送出したデータ(immA)をC2サイ
クルで制御信号118で指定されたレジスタr1へ格納す
る。
C4 cycle: (1) Processing for operation instruction A The register unit 103 has a third integer operation unit 104 in the C3 cycle.
The data (immA) sent to the internal data bus 114 is stored in the register r1 designated by the control signal 118 in the C2 cycle.

(2)ストア命令Bに対する処理 データアドレスバス115に送出されたアドレス(r1)
+(r2)を用いデータキャッシュをアクセスする。ここ
で、データキャッシュはヒットすると仮定する。また、
データ転送コントロール部105は、第1内部データバス1
12に送出されたデータ(r3)をラッチする。
(2) Processing for store instruction B Address sent to data address bus 115 (r1)
Use + (r2) to access the data cache. Now assume that the data cache is hit. Also,
The data transfer control unit 105 uses the first internal data bus 1
Latch the data (r3) sent to 12.

C5サイクル: (1)ストア命令Bに対する処理 データ転送コントロール部105は、C4サイクルでラッ
チしたデータ(r3)をストアデータバス116に送出し、
データキャッシュに格納する。
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 116,
Store in data cache.

以上のように、この発明の実施例における情報処理装
置は、即値データを特定のレジスタに設定する演算命令
Aと2クロックストア命令Bとが連続し、ストア命令B
のメモリアドレス計算に用いるレジスタと先行する演算
命令Aで即値データを設定すべきレジスタとのレジスタ
干渉が発生する場合に、即値データラッチ206を設け、
レジスタ干渉検出信号119でマルチプレクサ205とレジス
タ部103を制御することで従来の情報処理装置に比べ、
2クロック分処理を高速化することが可能になる。
As described above, in the information processing apparatus according to the embodiment of the present invention, the operation instruction A for setting immediate data in a specific register and the two-clock store instruction B are consecutive, and the store instruction B is stored.
When a register interference occurs between the register used for calculating the memory address and the register in which the immediate data should be set by the preceding arithmetic instruction A, the immediate data latch 206 is provided,
By controlling the multiplexer 205 and the register unit 103 with the register interference detection signal 119, compared to a conventional information processing device,
It is possible to speed up the processing for two clocks.

最後に、第1図および第2図と第12図とを用い、この
実施例における情報処理装置の即値データを特定のレジ
スタに設定する演算命令Aとロード命令Bとが連続し、
ロード命令Bのメモリアドレス計算に用いるレジスタと
先行する演算命令Aで即値データを設定すべきレジスタ
とのレジスタ干渉が発生する場合の動作について説明す
る。説明の簡単のために干渉が発生するレジスタをr1、
演算命令Aの即値データを(immA)、ロード命令Bのア
ドレス計算に用いる即値データを(immB)、データをロ
ードすべきレジスタをr2とする。
Finally, with reference to FIGS. 1 and 2 and FIG. 12, the operation instruction A and the load instruction B for setting the immediate data of the information processing apparatus in this embodiment to a specific register are consecutive,
An operation will be described when register interference occurs between the register used for calculating the memory address of the load instruction B and the register to which the immediate data is set in the preceding arithmetic instruction A. For the sake of simplicity of explanation, the register causing interference is r1,
The immediate data of the operation instruction A is (immA), the immediate data used for the address calculation of the load instruction B is (immB), and the register to which the data is to be loaded is r2.

C1サイクル: (1)演算命令Aに対する処理 演算命令Aをフェッチし、命令バス110に送出する。C1 cycle: (1) Processing for operation instruction A The operation instruction A is fetched and sent to the instruction bus 110.

C2サイクル: (1)演算命令Aに対する処理 命令バス110に送出された演算命令Aを命令解読部101
が解読する。命令解読部101は、制御情報を制御信号118
として送出し、即値データ(immA)を即値データバス11
1に送出する。また、レジスタ部103は、制御信号118で
指定された32ビットのゼロ値レジスタのデータを第1内
部データバス112に送出する。
C2 cycle: (1) Processing for operation instruction A The operation instruction A sent to the instruction bus 110 is transferred to the instruction decoding unit 101.
Deciphers. The instruction decoding unit 101 transmits the control information to the control signal 118.
And send immediate data (immA) as immediate data bus 11
Send to 1. Further, the register unit 103 sends the data of the 32-bit zero value register designated by the control signal 118 to the first internal data bus 112.

(2)ロード命令Bに対する処理 ロード命令Bをフェッチし、命令バス110に送出す
る。
(2) Processing for load instruction B The load instruction B is fetched and sent to the instruction bus 110.

C3サイクル: (1)演算命令Aに対する処理 整数演算部104は、C2サイクルで命令解読部101が即値
データバス111に送出した即値データ(immA)を入力
し、レジスタ部103が第1内部データバス112に送出した
0との加算を実行する。演算終了後、演算結果を32ビッ
トの第3内部データバス114に送出する。同時に、C2サ
イクルで命令解読部101が即値データバス111に送出した
即値データ(immA)を32ビットの即値データラッチ206
がラッチする。
C3 cycle: (1) Processing for operation instruction A The integer operation unit 104 inputs the immediate data (immA) sent by the instruction decoding unit 101 to the immediate data bus 111 in the C2 cycle, and the register unit 103 outputs the first internal data bus. The addition with 0 sent to 112 is executed. After the operation is completed, the operation result is sent to the 32-bit third internal data bus 114. At the same time, the immediate data (immA) sent from the instruction decoding unit 101 to the immediate data bus 111 in the C2 cycle is transferred to the 32-bit immediate data latch 206.
Latches.

(2)ロード命令Bに対する処理 命令バス110に送出されたロード命令Bを命令解読部1
01が解読する。命令解読部101は、制御情報を制御信号1
18として送出し、即値データ(immB)を即値データバス
111に送出する。前記命令解読部101の処理と並行してレ
ジスタ干渉検出部102はロード命令Bのメモリアドレス
計算に用いるレジスタr1と先行する演算命令Aで即値デ
ータを設定すべきレジスタr1とのレジスタ干渉を検出
し、レジスタ干渉検出信号119に送出する。この時、レ
ジスタ干渉検出信号119内の第2レジスタ干渉検出信号2
16はマルチプレクサ205を即値データクラッチ206の出力
を選択するための信号を出力する。レジスタ部103は、
制御信号118に指定されたメモリアドレス計算に使用す
る32ビットのレジスタのデータ(r1)を第2内部データ
バス113に送出する。ただし、32ビットのレジスタのデ
ータ(r1)は、演算命令Aの実行が終了していないた
め、無効なデータを出力することとなる。
(2) Processing for load instruction B The instruction decoding unit 1 receives the load instruction B sent to the instruction bus 110.
01 deciphers. The instruction decoding unit 101 sends the control information to the control signal 1
18 and send immediate data (immB) as immediate data bus
Send to 111. In parallel with the processing of the instruction decoding unit 101, the register interference detection unit 102 detects the register interference between the register r1 used for calculating the memory address of the load instruction B and the register r1 to which immediate data should be set by the preceding arithmetic instruction A. , Register interference detection signal 119. At this time, the second register interference detection signal 2 in the register interference detection signal 119
16 outputs a signal for the multiplexer 205 to select the output of the immediate data clutch 206. The register unit 103 is
The data (r1) of the 32-bit register used for calculating the memory address designated by the control signal 118 is sent to the second internal data bus 113. However, the 32-bit register data (r1) is invalid data because the execution of the arithmetic instruction A is not completed.

つぎに、データアドレス生成部106の動作について説
明する。マルチプレクサ201は、制御信号118として送出
されたデータセレクト信号213の情報によりデータバス2
10に即値データバス111の即値データ(immB)を出力す
る。マルチプレクサ205は、第2レジスタ干渉検出信号2
16の情報により、データバス217に即値データラッチ206
のデータ(immA)(正しい(r1)に相当)を出力する。
加算器202は、それぞれ32ビットのデータバス210と217
に出力されたデータを加算し、結果を加算結果出力バス
211に出力する。マルチプレクサ203は、制御信号118と
して送出されたアドレスホールド信号214の情報によ
り、データアドレスバス115に加算結果出力バス211のデ
ータを出力する。こうして、データアドレスバス115に
ロードすべきデータのアドレス(immB)+(r1)を送出
する。
Next, the operation of the data address generation unit 106 will be described. The multiplexer 201 uses the information of the data select signal 213 sent as the control signal 118 to determine the data bus 2
The immediate data (immB) of the immediate data bus 111 is output to 10. The multiplexer 205 uses the second register interference detection signal 2
According to the information of 16 the immediate data latch 206
Output the data (immA) of (corresponding to correct (r1)).
Adder 202 includes 32-bit data buses 210 and 217, respectively.
Add the data output to and add the result to the result output bus
Output to 211. The multiplexer 203 outputs the data of the addition result output bus 211 to the data address bus 115 according to the information of the address hold signal 214 sent as the control signal 118. In this way, the address (immB) + (r1) of the data to be loaded on the data address bus 115 is transmitted.

C4サイクル: (1)演算命令Aに対する処理 レジスタ部103は、C3サイクルで整数演算部104が第3
内部データバス114に送出したデータ(immA)をC2サイ
クルで制御信号118に指定されたレジスタr1へ格納す
る。
C4 cycle: (1) Processing for operation instruction A The register unit 103 has a third integer operation unit 104 in the C3 cycle.
The data (immA) sent to the internal data bus 114 is stored in the register r1 designated by the control signal 118 in the C2 cycle.

(2)ロード命令Bに対する処理 データアドレスバス115に送出されたアドレス(imm
B)+(r1)を用いデータキャッシュをアクセスする。
ここで、データキャッシュがヒットすると仮定する。デ
ータキャッシュはヒットしたアドレス(immB)+(r1)
のデータをロードデータバス117に出力する。
(2) Processing for load instruction B Address sent to data address bus 115 (imm
B) + (r1) is used to access the data cache.
Now assume that the data cache is hit. Data cache hit address (immB) + (r1)
Data is output to the load data bus 117.

C4サイクル: データ転送コントロール部105はC3サイクルでデータ
キャッシュがロードデータバス117に送出したデータを
第3内部データバス114に送出する。レジスタ部103は第
3内部データバス114のデータを制御信号118として送出
したアドレスのレジスタr2に格納する。
C4 cycle: The data transfer control unit 105 sends the data sent from the data cache to the load data bus 117 in the C3 cycle to the third internal data bus 114. The register unit 103 stores the data of the third internal data bus 114 as the control signal 118 in the register r2 of the transmitted address.

また、ロードすべきデータのアドレスが2つのレジス
タのデータの和(r1)+(r2)で示されるロード命令に
関しては前述した(r1)+(immB)の場合と同様えある
ため、詳細な説明は省略する。この場合は、レジスタ部
103がアドレス計算に用いる2つのレジスタのデータを
それぞれ第1内部データバスと第2内部データバスに出
力し、データアドレス生成部106がデータバス210に第1
内部データバスのデータを出力する点が上記の説明と異
なる。
Further, the load instruction in which the address of the data to be loaded is the sum (r1) + (r2) of the data in the two registers may be the same as in the case of (r1) + (immB) described above, so a detailed description will be given. Is omitted. In this case, register section
103 outputs the data of two registers used for address calculation to the first internal data bus and the second internal data bus, respectively, and the data address generation unit 106 outputs the first data to the data bus 210.
The point that data on the internal data bus is output is different from the above description.

以上のように、この実施例における情報処理装置で
は、即値データを特定のレジスタに設定する演算命令A
とロード命令Bとが連続し、ロード命令Bのメモリアド
レス計算に用いるレジスタと先行する演算命令Aで即値
データを設定すべきレジスタとのレジスタ干渉が発生す
る場合に、即値データラッチ206を設け、レジスタ干渉
検出信号119でマルチプレクサ205を制御することで従来
の情報処理装置に比べ、1クロック分処理を高速化する
ことが可能となる。
As described above, in the information processing apparatus according to this embodiment, the arithmetic instruction A for setting immediate data in a specific register
And the load instruction B are consecutive, and when register interference occurs between the register used for calculating the memory address of the load instruction B and the register to which the immediate operation data should be set by the preceding operation instruction A, the immediate data latch 206 is provided, By controlling the multiplexer 205 with the register interference detection signal 119, the processing speed can be increased by one clock as compared with the conventional information processing apparatus.

なおここでは、メモリアドレス計算を必要とする命令
の例として、1クロックストア命令、2クロックストア
命令、ロード命令について説明したが、他のメモリアド
レス計算を必要とする分岐命令等の命令でも同様に制御
することで、従来の情報処理装置に比べ、1クロック分
処理を高速化することが可能である。
Although the one-clock store instruction, the two-clock store instruction, and the load instruction have been described as examples of the instructions requiring memory address calculation, the same applies to other instructions such as branch instructions requiring memory address calculation. By controlling, the processing can be speeded up by one clock as compared with the conventional information processing apparatus.

〔発明の効果〕〔The invention's effect〕

この発明の情報処理装置によれば、メモリアドレス計
算を必要とする命令(ロード命令,1クロックストア命令
または分岐命令)で、メモリアドレス計算に用いるレジ
スタと先行する演算命令の即値データを設定すべきレジ
スタとのレジスタ干渉が発生する場合に1クロック処理
を高速化でき、さらに2クロックストア命令でメモリア
ドレス計算に用いるレジスタと先行する演算命令の即値
データを設定すべきレジスタとのレジスタ干渉が発生す
る場合には、2クロック処理を高速化することを可能と
し、その実用的価値は大きい。
According to the information processing apparatus of the present invention, in an instruction (load instruction, 1-clock store instruction or branch instruction) that requires memory address calculation, immediate data of the register used for memory address calculation and the preceding operation instruction should be set. When register interference with a register occurs, one clock processing can be speeded up, and further register interference occurs between the register used for memory address calculation with the two clock store instruction and the register to which the immediate data of the preceding operation instruction should be set. In some cases, the 2-clock processing can be speeded up, and its practical value is great.

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

第1図はこの発明の実施例における情報処理装置のブロ
ック図、第2図は第1図におけるデータアドレス生成部
のブロック図、第3図はこの発明の実施例における情報
処理装置の即値データを特定のレジスタに設定する演算
命令と1クロックストア命令とが連続し、ストア命令の
メモリアドレス計算に用いるレジスタと先行する演算命
令で即値データを設定すべきレジスタとのレジスタ干渉
が発生する場合の動作を示すタイミング図、第4図はこ
の発明の実施例における情報処理装置の即値データを特
定のレジスタに設定する演算命令と2クロックストア命
令とが連続し、ストア命令のメモリアドレス計算に用い
るレジスタと先行する演算命令で即値データを設定すべ
きレジスタとのレジスタ干渉が発生する場合の動作を示
すタイミング図、第5図は従来の情報処理装置のブロッ
ク図、第6図は第5図におけるデータアドレス生成部の
ブロック図、第7図は従来の情報処理装置の演算命令の
動作を示すタイミング図、第8図は従来の情報処理装置
の1クロックストアの命令の動作を示すタイミング図、
第9図は従来の情報処理装置の2クロックストアの命令
の動作を示すタイミング図、第10図は従来の情報処理装
置の即値データを特定のレジスタに設定する演算命令と
1クロックストア命令とが連続し、ストア命令のメモリ
アドレス計算に用いるレジスタと先行する演算命令で即
値データを設定すべきレジスタとのレジスタ干渉が発生
する場合の動作を示すタイミング図、第11図は従来の情
報処理装置の即値データを特定のレジスタに設定する演
算命令と2クロックストア命令とが連続し、ストア命令
のメモリアドレス計算に用いるレジスタと先行する演算
命令で即値データを設定すべきレジスタとのレジスタ干
渉が発生する場合の動作を示すタイミング図、第12図は
この発明の実施例における情報処理装置の即値データを
特定のレジスタに設定する演算命令とコード命令とが連
続し、ロード命令のメモリアドレス計算に用いるレジス
タと先行する演算命令で即値データを設定すべきレジス
タとのレジスタ干渉が発生する場合の動作を示すタイミ
ング図である。 101……命令解読部、102……レジスタ干渉検出部、103
……レジスタ部、106……データアドレス生成部、118…
…制御信号、119……レジスタ干渉検出信号、206……即
値データラッチ。
FIG. 1 is a block diagram of an information processing apparatus in 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 an immediate data of an information processing apparatus in an embodiment of the present invention. Operation when an arithmetic instruction to be set in a specific register and a 1-clock store instruction are consecutive and register interference occurs between the register used for memory address calculation 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 a register used for calculating a memory address of a store instruction, in which an arithmetic instruction for setting immediate data of an information processing apparatus in a specific register and a two-clock store instruction are consecutive. Timing diagram showing the operation when register interference with the register that should set immediate data in the preceding arithmetic instruction, FIG. 5 is a block diagram of a conventional information processing apparatus, FIG. 6 is a block diagram of a data address generation unit in FIG. 5, FIG. 7 is a timing diagram showing the operation of an arithmetic instruction of the conventional information processing apparatus, and FIG. Is a timing diagram showing the operation of a 1-clock store instruction of a conventional information processing device,
FIG. 9 is a timing chart showing the operation of a 2-clock store instruction of a conventional information processing apparatus, and FIG. 10 shows an operation instruction and a 1-clock store instruction for setting immediate data in a specific register of the conventional information processing apparatus. FIG. 11 is a timing chart showing the operation in the case where there is continuous register interference between a register used for memory address calculation of a store instruction and a register to which immediate data is to be set by a preceding arithmetic instruction. An operation instruction for setting immediate data to 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 to which the immediate operation data should be set by the preceding operation instruction. FIG. 12 is a timing chart showing the operation in the case of setting the immediate data of the information processing device in the embodiment of the present invention in a specific register. Operation instruction code instruction and are continuous to a timing chart showing an operation when the register conflict between the registers to be set immediate data in arithmetic instructions preceding a register used for memory address calculation of the load instruction is generated. 101 ... Instruction decoding unit, 102 ... Register interference detection unit, 103
...... Register part, 106 ...... Data address generation part, 118 ...
… Control signal, 119… Register interference detection signal, 206… Immediate data latch.

Claims (4)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】命令内に指定された即値データを保持する
即値データラッチと、前記即値データラッチの出力と命
令内に指定された即値データとレジスタからの第1のデ
ータの3つのデータ内のいずれかを選択する第1のマル
チプレクサと、前記即値データラッチの出力とレジスタ
からの第2のデータのいずれかを選択する第2のマルチ
プレクサと、前記第1および第2のマルチプレクサの出
力を加算する加算器と、連続する命令間のレジスタ干渉
を検出するレジスタ干渉検出部とを備え、 即値データを特定のレジスタに格納する命令とメモリア
ドレス計算を必要とする命令が連続した際、前記レジス
タ干渉検出部が後続する命令でメモリアドレス計算に用
いるレジスタと先行する命令で即値データを格納するレ
ジスタとの一致を検出すると、前記加算器が前記第1か
第2のいずれかのマルチプレクサからの出力である前記
即値データラッチが保持した先行する命令の即値データ
を使用してメモリアドレス計算をすることを特徴とする
情報処理装置。
1. An immediate data latch for holding immediate data designated in an instruction, an output of the immediate data latch, immediate data designated in an instruction, and first data from a register The first multiplexer for selecting any one, the second multiplexer for selecting any one of the output of the immediate data latch and the second data from the register, and the outputs of the first and second multiplexers are added. Includes an adder and a register interference detection unit that detects register interference between consecutive instructions, and detects register interference when an instruction that stores immediate data in a specific register and an instruction that requires memory address calculation are consecutive. Section 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, An information processing device, wherein the adder uses the immediate data of the preceding instruction held by the immediate data latch, which is the output from the first or second multiplexer, to calculate a memory address. .
【請求項2】請求項(1)記載のメモリアドレス計算を
必要とする命令が、ロード命令またはストア命令または
分岐命令であることを特徴とする情報処理装置。
2. An information processing apparatus, wherein the instruction requiring memory address calculation according to claim 1 is a load instruction, a store instruction or a branch instruction.
【請求項3】命令内に指定された即値データを保持する
即値データラッチと、前記即値データラッチの出力と命
令内に指定された即値データとレジスタからの第1のデ
ータの3つのデータの内いずれかを選択する第1マルチ
プレクサと、前記即値データラッチの出力とレジスタか
らの第2のデータのいずれかを選択する第2のマルチプ
レクサと、前記第1および第2のマルチプレクサの出力
を加算する加算器と、連続する命令間のレジスタ干渉を
検出するレジスタ干渉検出部とを備え、 即値データを特定のレジスタに格納する命令と特定のレ
ジスタのデータを、即値データと別のレジスタのデータ
の和で指定されるアドレスのメモリに格納する命令とが
連続した際、前記レジスタ干渉検出部が後続する命令で
メモリアドレス計算に用いるレジスタと先行する命令で
即値データを格納するレジスタとの一致を検出すると、
前記加算器が前記第2のマルチプレクサからの出力であ
る前記即値データラッチが保持した先行する命令の即値
データと前記第1のマルチプレクサからの出力である後
続する命令の即値データとを加算してアドレス計算をす
ることを特徴とする情報処理装置。
3. An immediate data latch for holding immediate data designated in an instruction, an output of the immediate data latch, immediate data designated in the instruction, and first data from a register. A first multiplexer that selects any one, a second multiplexer that selects one of the output of the immediate data latch and the second data from the register, and an addition that adds the outputs of the first and second multiplexers And a register interference detection unit that detects register interference between consecutive instructions.The instruction that stores immediate data in a specific register and the data in the specific register are the sum of the immediate data and the data in another register. When the instruction to be stored in the memory of the specified address continues, the register interference detection unit uses the register used for the memory address calculation by the subsequent instruction. If a match between the register and the register that stores immediate data in the preceding instruction is detected,
The adder adds the immediate data of the preceding instruction held by the immediate data latch, which is the output from the second multiplexer, and the immediate data of the subsequent instruction, which is the output from the first multiplexer, and adds it to the address. An information processing device characterized by performing a calculation.
【請求項4】命令内に指定された即値データを保持する
即値データラッチと、前記即値データラッチの出力と命
令内に指定された即値データとレジスタからの第1のデ
ータの3つのデータの内いずれかを選択する第1のマル
チプレクサと、前記即値データラッチの出力とレジスタ
からの第2のデータのいずれかを選択する第2のマルチ
プレクサと、前記第1および第2のマルチプレクサの出
力を加算する加算器と、連続する命令間のレジスタ干渉
を選出するレジスタ干渉検出部と、2つのレジスタのデ
ータを同時に出力できる複数のレジスタからなるレジス
タ部とを備え、 即値データを特定のレジスタに格納する命令と特定のレ
ジスタのデータを他の2つのレジスタのデータの和で指
定されるアドレスのメモリに格納する命令とが連続した
際、前記レジスタ干渉検出部が後続する命令でメモリア
ドレス計算に用いる一方のレジスタと先行する命令で即
値データを格納するレジスタとの一致を検出すると、前
記レジスタ部が一致しなかった他方のレジスタのデータ
とメモリに格納すべきレジスタのデータとを出力し、前
記加算器が前記第1か第2のいずれか一方のマルチプレ
クサから出力される前記即値データラッチが保持した先
行する命令の即値データと他方のマルチプレクサから出
力される後続する命令の一致しなかった他方のレジスタ
のデータとを加算してメモリアドレス計算をすることを
特徴とする情報処理装置。
4. An immediate data latch that holds immediate data specified in an instruction, an output of the immediate data latch, immediate data specified in the instruction, and first data from a register. The first multiplexer for selecting any one, the second multiplexer for selecting any one of the output of the immediate data latch and the second data from the register, and the outputs of the first and second multiplexers are added. An instruction for storing immediate data in a specific register, which includes an adder, a register interference detection unit for selecting register interference between consecutive instructions, and a register unit including a plurality of registers capable of simultaneously outputting data of two registers And the instruction to store the data of the specific register in the memory of the address specified by the sum of the data of the other two registers 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 does not match the data in the other register. And the data of the register to be stored in the memory, and the adder outputs the immediate data of the preceding instruction held by the immediate data latch output from the first or second multiplexer and the other An information processing device, characterized in that a memory address is calculated by adding the data of the other register, which is not matched, of the subsequent instruction output from the multiplexer.
JP2309994A 1989-11-15 1990-11-14 Information processing device Expired - Fee Related JP2542120B2 (en)

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 JPH03218526A (en) 1991-09-26
JP2542120B2 true 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)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2667849B2 (en) * 1988-01-06 1997-10-27 株式会社日立製作所 Information processing device

Also Published As

Publication number Publication date
JPH03218526A (en) 1991-09-26

Similar Documents

Publication Publication Date Title
US4628436A (en) Digital controller
JP2000222206A (en) Data processor
JPH04109336A (en) Data processor
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
JPH02226420A (en) Floating point computation execution apparatus
JPH10232779A (en) Method and device for parallel instruction processing
JPH10187661A (en) Method for entering scalar value of computer into vector
US5757685A (en) Data processing system capable of processing long word data
JP3834145B2 (en) Data processing apparatus having a microprocessor having a nestable delay branch instruction and a method of operating the microprocessor
JP4865960B2 (en) Data processing apparatus and control method thereof
JPH0748187B2 (en) General memory access method using register indirect mode and computer system
US5276822A (en) System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
JP3556252B2 (en) Data processing system and method for calculating offset total
JP2542120B2 (en) Information processing device
JPH0922379A (en) Microcomputer
JP2861560B2 (en) Data processing device
JP3278441B2 (en) Vector processing equipment
US7590677B2 (en) Processor with summation instruction using overflow counter
JP2760808B2 (en) Data processing device
JP3102399B2 (en) Data processing apparatus and method
JP2622026B2 (en) Register writing control method in central processing unit
JP2928566B2 (en) Operand reading device
JPH0238966B2 (en)
JPH0222417B2 (en)
JPH0820947B2 (en) Data processing device

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees