JPH076033A - Data processor - Google Patents

Data processor

Info

Publication number
JPH076033A
JPH076033A JP7181994A JP7181994A JPH076033A JP H076033 A JPH076033 A JP H076033A JP 7181994 A JP7181994 A JP 7181994A JP 7181994 A JP7181994 A JP 7181994A JP H076033 A JPH076033 A JP H076033A
Authority
JP
Japan
Prior art keywords
instruction
register
address
signal line
operand
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
Application number
JP7181994A
Other languages
Japanese (ja)
Other versions
JP2685713B2 (en
Inventor
Toru Shonai
亨 庄内
Eiki Kamata
栄樹 釜田
Shigeo Takeuchi
茂雄 武内
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.)
Hitachi ULSI Engineering Corp
Hitachi Ltd
Original Assignee
Hitachi ULSI Engineering Corp
Hitachi 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 Hitachi ULSI Engineering Corp, Hitachi Ltd filed Critical Hitachi ULSI Engineering Corp
Priority to JP6071819A priority Critical patent/JP2685713B2/en
Publication of JPH076033A publication Critical patent/JPH076033A/en
Application granted granted Critical
Publication of JP2685713B2 publication Critical patent/JP2685713B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To eliminate the stop of the execution of a following instruction at the time of a register conflict. CONSTITUTION:When a conflict with a precedent instruction is detected for the 1st time, the memory operated which is used for an arithmetic by the precedent instruction is stored in an associative storage 320 by using the preread address, etc., of the precedent instruction as a key and when a store instruction which updates the memory operand which is used for the arithmetic by the precedent instruction until the precedent instruction is executed next time is executed, the memory operand in the associative storage is replaced with the memory operand generated by the store instruction. When the precedent instruction is preread out of an instruction storage 304 again, the memory operand is read out of the associative storage with the preread address and utilized for the following instruction without waiting for the completion of the arithmetic of the precedent instruction to end. The arithmetic of the read memory operand which is specified with the precedent instruction is performed in the decoding stage of the following instruction by a computing element 360 for conflict elimination and the result is supplied to an address adder and used to calculate the address of the memory operand that the following instruction use.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は情報処理装置に係り、特
にパイプライン制御の情報処理装置の高速化に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus, and more particularly to speeding up an information processing apparatus for pipeline control.

【0002】[0002]

【従来の技術】パイプライン制御の情報処理装置では、
命令の処理全体を複数の部分処理に分割し、各部分処理
ごとに独立の処理装置を設けている。まず第1命令が第
1の部分処理を行う処理装置で処理される。その処理が
完了して第2の部分処理を行う処理装置に移ると、第1
の部分処理を行う処理装置では第2命令の処理が開始さ
れる。第1命令が第3の部分処理を行う処理装置に移る
と、第2命令は第2の部分処理を行う処理装置で処理さ
れ、第3命令は第1の部分処理装置で処理される。この
ように、第1命令の処理の全体が完了する前に、第1命
令の後続命令の実行が開始されるので、パイプライン制
御の情報処理装置では高い命令処理性能を実現すること
が出来る。
2. Description of the Related Art In a pipeline control information processing device,
The entire instruction processing is divided into a plurality of partial processing, and an independent processing device is provided for each partial processing. First, the first instruction is processed by the processing device that performs the first partial processing. When the processing is completed and the processing apparatus for performing the second partial processing is performed, the first
The processing device that performs the partial processing of 2 starts the processing of the second instruction. When the first instruction is transferred to the processing device that performs the third partial processing, the second instruction is processed by the processing device that performs the second partial processing, and the third instruction is processed by the first partial processing device. As described above, since the execution of the subsequent instruction of the first instruction is started before the entire processing of the first instruction is completed, the pipeline control information processing apparatus can realize high instruction processing performance.

【0003】レジスタ・コンフリクトによる実行停止を
短縮化する例としては、特開昭58−9636がある。
As an example of shortening the execution stop due to register conflict, there is JP-A-58-9636.

【0004】[0004]

【発明が解決しようとする課題】ある命令(以降では後
続命令と呼ぶ)より前にある命令(以降では先行命令と
呼ぶ)があるレジスタを変更する命令であり、後続命令
がそのレジスタを参照す幣命令である場合(レジスタコ
ンフリクト状態と呼ぶ)には、命令処理は上記の様には
進まない。すなわち、先行命令が演算結果をレジスタに
書込むまで、もしくは先行命令が演算結果を生成するま
では、後続命令の処理全体、少なくともレジスタを参照
する部分処理を停止させなければならない。このような
レジストコンフリクトにある後続命令の実行停止は、パ
イプライン制御の情報処理装置においては、性能向上の
大きな阻止要因となっている。
An instruction (hereinafter referred to as a subsequent instruction) before a certain instruction (hereinafter referred to as a subsequent instruction) is an instruction for changing a register, and the subsequent instruction refers to the register. If it is a money instruction (called a register conflict state), the instruction processing does not proceed as described above. That is, until the preceding instruction writes the operation result in the register, or until the preceding instruction generates the operation result, the entire processing of the subsequent instruction, at least the partial processing that refers to the register, must be stopped. In such an information processing device of pipeline control, the suspension of execution of the subsequent instruction in the registration conflict is a major factor for hindering performance improvement.

【0005】本発明の目的は、レジスタコンフリクト時
の後続命令の実行停止をなくし、高い命令処理性能を有
するパイプライン制御の情報処理装置を提供することに
ある。
It is an object of the present invention to provide a pipeline control information processing apparatus which has a high instruction processing performance by eliminating the execution stop of subsequent instructions at the time of register conflict.

【0006】[0006]

【課題を解決するための手段】本発明では先行命例によ
ってレジスタに書込まれる演算結果を用いて後続命令が
実行される際に、該演算結果が確定するまで、該後続命
令の処理であって該演算結果を用いる処理を停止させる
データ処理装置において、該先行命令を先読みする際の
先読みアドレス等の、その先行命令に関連する連想キー
とに対応させて該先行命令のメモリ・オペランド・アド
レスを記憶する手段と、該データ処理装置でストア命令
が実行された時に、該ストア命令のストア・アドレスと
一致する該メモリ・オペランド・アドレスが該記憶手段
にあるかを探索し、ある時には、それに対応する該メモ
リ・オペランドを該ストア命令のストア・データで書換
える連想書込み手段と、該先行命令が実行された時にそ
の時の該連想キーに基づいて該記憶手段を探索し、該連
想キーが記憶されている時にはそれに対応する該メモリ
・オペランドを出力する手段とを有する。
According to the present invention, when a subsequent instruction is executed by using an operation result written in a register according to the preceding order, the subsequent instruction is processed until the operation result is determined. In the data processing device for stopping the processing using the operation result, the memory operand address of the preceding instruction in association with the associative key associated with the preceding instruction, such as the prefetch address when prefetching the preceding instruction. For storing a memory operand address that matches the store address of the store instruction when the store instruction is executed by the data processing device, and Associative writing means for rewriting the corresponding memory operand with the store data of the store instruction, and the associative key at that time when the preceding instruction is executed Searching said storage means on the basis of, when said associative keys is stored and means for outputting the memory operand corresponding thereto.

【0007】[0007]

【作用】レジスタコンフリクト発生時に停止される後続
命令の処理を、連想記憶の出力する情報を用いて開始で
きるので、上記目的を達成できる。
The above object can be achieved because the processing of the subsequent instruction stopped when the register conflict occurs can be started using the information output from the associative memory.

【0008】[0008]

【実施例】以下、本発明の一実施例を図に従って詳細に
説明する。
An embodiment of the present invention will be described in detail below with reference to the drawings.

【0009】まず、図1(A)を使って本実施例で用い
る命令形式を説明する。この命令形式では、各命令語は
4バイト長から構成される。第1バイトはオペコード
(op)を表わす。第2バイト及び第3バイトの上4ビ
ットは3つのレジスタ指示フィールド(R1,X2,B
3)を表わす。第3バイトの下4ビット及び第4バイト
は変位(D2)を表わす。この命令形式では各レジスタ
指示フィールドはそれぞれ4ビットであり、それぞれ1
5個のレジスタの1つを指示する。
First, the instruction format used in this embodiment will be described with reference to FIG. In this instruction format, each instruction word has a 4-byte length. The first byte represents an opcode (op). The upper 4 bits of the 2nd and 3rd bytes are three register indication fields (R1, X2, B
Represents 3). The lower 4 bits of the 3rd byte and the 4th byte represent the displacement (D2). In this instruction format, each register instruction field has 4 bits, and each has 1 bit.
Point to one of the five registers.

【0010】命令がStore命令以外の場合には、この意
味は、X2フィールドの指示する汎用レジスタの内容と
B2フィールドの指示する汎用レジスタの内容と変位D
2の和をオペランドアドレスとし、このアドレスの指す
主記憶上のロケーションの内容(第2オペランドと呼
ぶ)と、R1フィールドの指示する汎用レジスタの内容
(第1オペランドと呼ぶ)とに対して、オペコードop
で示される演算を施し、R1フィールドの指示する汎用
レジスタに格納することである。
When the instruction is other than the Store instruction, this means that the contents of the general register designated by the X2 field, the contents of the general register designated by the B2 field, and the displacement D.
The sum of 2 is used as an operand address, and the operation code is used for the contents of the location on the main memory pointed to by this address (called the second operand) and the contents of the general-purpose register pointed to by the R1 field (called the first operand). op
Is performed and stored in the general register designated by the R1 field.

【0011】命令がストア(Stors) 命令の場合には、
上述とは逆に、第1オペランドである汎用レジスタの内
容を第2オペランドである主記憶上のロケーションに納
格する。
When the instruction is a store (Stors) instruction,
Contrary to the above, the contents of the general-purpose register which is the first operand are stored in the location on the main memory which is the second operand.

【0012】なお、この命令形式はIBMシステム(Sy
stem)/370の命令形式から引用したものであり、更
に詳しくは“IBMシステム(System)/370動作処
理(370Pronciples of Operation ) " に示されてい
る。
This instruction format is based on the IBM system (Sy
stem) / 370 instruction format, and more specifically, it is shown in "IBM System / 370 Operations (370 Pronciples of Operation)".

【0013】図1(B)は、図1(A)で表わされた命
令をニューモニックで表わしたものである。
FIG. 1B shows the instructions shown in FIG. 1A in mnemonics.

【0014】図1(C)は、レジスタコンフリクトを起
している命令例の例である。先行命命令()はAdd
命令であり、レジスタ1の内容と、レジスタ2の内容と
変位100を加えて得られるアドレスの内容をレジスタ
5の内容と加算してレジスタ5に格納することを意味す
る。後続命令()はサブトラクト(Sugtract) 命令で
あり、レジスタ1の内容と、レジスタ5の内容と変位1
50を加えて得られるアドレスの内容をレジスタ8の内
容から引いてレジスタ8に格納することを意味する。
FIG. 1C is an example of an instruction example causing a register conflict. Pre-order command () is Add
This is an instruction, and means that the contents of register 1, the contents of register 2 and the address obtained by adding displacement 100 are added to the contents of register 5 and stored in register 5. The subsequent instruction () is a subtract instruction, and the contents of register 1 and the contents of register 5 and displacement 1
It means that the content of the address obtained by adding 50 is subtracted from the content of the register 8 and stored in the register 8.

【0015】先行命令は演算結果をレジスタ5に書込
み、後続命令はレジスタ5の内容を用いているので、レ
ジスタコンフリクトが起きている。
A register conflict occurs because the preceding instruction writes the operation result in the register 5 and the subsequent instruction uses the contents of the register 5.

【0016】次に図2,図3を使って実施例の全体構成
の概要を説明する。図2と図3とを結合すると、実施例
の全体構成図となる。この実施例は、先行命令の演算結
果として、連想記憶に蓄えた先行命令の以前の実行での
演算結果又は連想記憶に蓄えた先行命令の第2オペラン
ドに対して演算を施した結果を用いるものである。
Next, an outline of the overall configuration of the embodiment will be described with reference to FIGS. When FIG. 2 and FIG. 3 are combined, an overall configuration diagram of the embodiment is obtained. This embodiment uses, as the operation result of the preceding instruction, the operation result of the preceding instruction stored in the associative memory in the previous execution or the result of performing the operation on the second operand of the preceding instruction stored in the associative memory. Is.

【0017】まず、304は命令記憶装置であり、32
6はオペランド記憶装置である。命令記憶装置304と
オペランド記憶装置はバイト単位に24ビットのアドレ
スでアドレス付けされている。
First, 304 is an instruction storage device, and 32
6 is an operand storage device. The instruction storage device 304 and the operand storage device are addressed in units of bytes with a 24-bit address.

【0018】100は先読み命令アドレスレジスタであ
る。命令の先読みは、常に命令記憶装置上の4命令語境
界から始まる4命令語単位に行われる。したがって先読
み命令アドレスレジスタ(IFA)100には24ビッ
トのアドレスのうちの上位20のビット(ビット0−1
9)が格納される。
Reference numeral 100 is a prefetch instruction address register. Instruction prefetching is always performed in units of four instruction words starting from a four instruction word boundary on the instruction storage device. Therefore, the prefetch instruction address register (IFA) 100 stores the upper 20 bits (bit 0-1) of the 24-bit address.
9) is stored.

【0019】102は先読み命令アドレスレジスタの遅
延レジスタである。
Reference numeral 102 is a delay register of the prefetch instruction address register.

【0020】104,106,108,110はそれぞ
れ命令バッファIB0,IB1,IB2,IB3であ
り、命令記憶装置304から先読みされた4命令語がこ
の順に格納される。
Reference numerals 104, 106, 108 and 110 denote instruction buffers IB0, IB1, IB2 and IB3, respectively, in which four instruction words prefetched from the instruction storage device 304 are stored in this order.

【0021】112は命令レジスタであり、114は命
令カウンタである。1命令語は命令記憶装置上の命令語
境界からの4バイトに必ず置かれる。したがって、命令
カウンタには24ビットのアドレスのうちの上位22ビ
ット(ビット0−21)が格納される。命令カウンタ1
14の値は、その時の命令レジスタ112中の命令語の
命令アドレスとなっている。
Reference numeral 112 is an instruction register, and 114 is an instruction counter. One instruction word is always placed in 4 bytes from the instruction word boundary on the instruction storage device. Therefore, the upper 22 bits (bits 0-21) of the 24-bit address are stored in the instruction counter. Instruction counter 1
The value of 14 is the instruction address of the instruction word in the instruction register 112 at that time.

【0022】118は16個のレジスタよりなるレジス
タファイルである。
Reference numeral 118 is a register file consisting of 16 registers.

【0023】324はアドレス加算器であり、命令語の
X2フィールドの指示するレジスタの内容すなわち、X
2レジスタ値とB2フィールドの指示するレジスタの内
容すなわち、B2レジスタ値と変位D2を加算する。加
算結果はオペランドアドレスレジスタ120に格納され
る。
Reference numeral 324 is an address adder, which is the contents of the register designated by the X2 field of the instruction word, that is, X.
The register value indicated by the 2 register value and the B2 field, that is, the B2 register value and the displacement D2 are added. The addition result is stored in the operand address register 120.

【0024】122はオペランドデータレジスタであ
り、330はALUである。
Reference numeral 122 is an operand data register, and 330 is an ALU.

【0025】124,130,132,134,136
はそれぞれ命令レジスタ122の遅延レジスタ、命令カ
ウンタ114の遅延レジスタ X2レジスタ値の遅延レ
ジスタ、B2レジスタ値の遅延レジスタ値および先読み
命令アドレスの遅延レジスタでありオペランドアドレス
レジスタ120にオペランドアドレスが格納される時
に、その命令の命令レジスタ値、命令カウンタ値、X2
レジスタ値、B2レジスタ値およびその命令の先読み時
の先読み命令アドレスが格納される。
124, 130, 132, 134, 136
Are respectively the delay register of the instruction register 122, the delay register of the instruction counter 114, the delay register of the X2 register value, the delay register value of the B2 register value and the delay register of the prefetch instruction address. When the operand address is stored in the operand address register 120, , Instruction register value of the instruction, instruction counter value, X2
The register value, the B2 register value, and the prefetch instruction address when prefetching the instruction are stored.

【0026】126,138,140,142,144
はそれぞれレジスタ124,130,132,134,
136の遅延レジスタであり、オペランドデータレジス
タ122にオペランドデータが格納される時に、その命
令の命令レジスタ値、命令カウンタ値、X2レジスタ
値、B2レジスタ値およびその命令の先読み時の先読み
命令アドレスがそれぞれに格納される。
126, 138, 140, 142, 144
Are registers 124, 130, 132, 134, respectively.
When the operand data register 122 stores operand data, the instruction register value of the instruction, the instruction counter value, the X2 register value, the B2 register value, and the prefetch instruction address at the time of prefetching the instruction, respectively. Stored in.

【0027】320は連想記憶装置であり、322はレ
ジスタコンフリクト検出装置である。
Reference numeral 320 is an associative storage device, and reference numeral 322 is a register conflict detection device.

【0028】次に、図2,図3の全体構成図と図5のタ
イミングチャート図を使って、レジスタコンフリクトが
ない場合の全体の動作を説明する。
Next, the overall operation when there is no register conflict will be described with reference to the overall configuration diagrams of FIGS. 2 and 3 and the timing chart diagram of FIG.

【0029】図5の如く時刻T1より先読みアドレスレ
ジスタには第1命令から第4命令を先読みする際の先読
みアドレスが格納されているとする。また命令レジスタ
112と命令カウンタ114には時刻T2以前において
第1命令の前の命令、すなわち第0命令の命令語と命令
アドレスが格納されているとする。先読みアドレスレジ
タ100のアドレスは信号線500を介して命令記憶装
置304に印加され、そのアドレスから始まる4命令語
が信号線506に出力され、第1命令語から第4命令語
までの4命令語は時刻T1に命令バッファ104,10
6,108,110に格納される。
As shown in FIG. 5, it is assumed that the prefetch address register for prefetching the first to fourth instructions is stored in the prefetch address register from time T1. It is also assumed that the instruction register 112 and the instruction counter 114 store the instruction word before the first instruction, that is, the instruction word and instruction address of the 0th instruction before time T2. The address of the prefetch address register 100 is applied to the instruction storage device 304 via the signal line 500, and the four instruction words starting from the address are output to the signal line 506, and the four instructions from the first instruction word to the fourth instruction word. Words are instruction buffers 104, 10 at time T1.
6, 108, and 110.

【0030】アドレス増加器302は、先読みアドレス
レジスタ100のアドレスを入力として、そのアドレス
を4命令語分増加させたアドレスを信号線502ら出力
する。セレクタ300の選択信号である信号線586の
信号は通常「右選択信号」であり(「右選択信号」以外
の値を取る場合は下記で説明される時だけである)。こ
の時、信号線502の信号がセレクタ600を通って信
号線506に出力されて、先読アドレスレジスタ100
に格納される。格納される時刻は時刻T0の4周期後の
時刻T4である。命令バッファ104,106,10
8,110には次の4命令語が格納される時刻T5まで
この4命令語が格納される。先読みアドレスレジスタ1
00は通常このように4命令語分ずつ増加されるので、
命令バッファ104,106,108,110には順々
に後統の命令が4命令単位に先読みされて格納されるこ
ととなる。
The address incrementer 302 receives the address of the prefetch address register 100 as an input and outputs the address obtained by incrementing the address by four instruction words from the signal line 502. The signal on the signal line 586, which is the selection signal of the selector 300, is usually the “right selection signal” (when it takes a value other than the “right selection signal”, it is only when explained below). At this time, the signal of the signal line 502 is output to the signal line 506 through the selector 600, and the prefetch address register 100
Stored in. The stored time is time T4, which is four cycles after time T0. Instruction buffers 104, 106, 10
In 8 and 110, these four instruction words are stored until time T5 when the next four instruction words are stored. Prefetch address register 1
Since 00 is usually incremented by 4 instruction words in this way,
In the instruction buffers 104, 106, 108 and 110, the subsequent instructions are prefetched in units of four instructions and stored in sequence.

【0031】時刻T2以前においては、命令カウンタ1
14には第0命令の命令アドレスが格納されていた。命
令カウンタ114の値は信号線530を介してアドレス
増加器310に印加されて、1命令語分増加されて、第
1命令の命令アドレスとなる。増加された値は信号線5
20を介してセレクタ308に入力される。セレクタ3
08の選択信号586は上述したように通常「右選択信
号」であり、この時、信号線520の値はセレクタ20
8を介して信号線518へ出力される。信号線518の
値は命令カウンタ114に格納される。また、その値は
セレクタ306に印加される。セレクタ306は、信号
線518の22ビットアドレス値のうちの下2ビットを
見て、それが0ならば信号線508のデータが信号線5
16へ出力され、それが1ならば信号線510のデータ
が信号線516に出力される。又それが2ならば信号線
512のデータが信号516へ出力され、それが3なら
ば信号線514のデータが信号線516へ出力される。
これにより、命令レジスタに前の時刻でセットされた命
令の次の命令がセレクタ306で選択されて命令レジス
タ112に格納される。時刻T2においては命令バッフ
ァIBO104から第1命令語が命令レジスタ112に
格納されて、同時に命令カウンタ114には第1命令の
命令アドレスが格納される。
Before time T2, the instruction counter 1
The instruction address of the 0th instruction was stored in 14. The value of the instruction counter 114 is applied to the address incrementer 310 via the signal line 530, incremented by one instruction word, and becomes the instruction address of the first instruction. Increased value is signal line 5
It is input to the selector 308 via 20. Selector 3
The selection signal 586 of 08 is normally the “right selection signal” as described above, and at this time, the value of the signal line 520 is the selector 20.
It is output to the signal line 518 via the signal line 8. The value of the signal line 518 is stored in the instruction counter 114. Also, the value is applied to the selector 306. The selector 306 looks at the lower 2 bits of the 22-bit address value of the signal line 518, and if it is 0, the data of the signal line 508 is the signal line 5
16 is output, and if it is 1, the data of the signal line 510 is output to the signal line 516. If it is 2, the data on the signal line 512 is output to the signal 516, and if it is 3, the data on the signal line 514 is output to the signal line 516.
As a result, the instruction next to the instruction set at the previous time in the instruction register is selected by the selector 306 and stored in the instruction register 112. At time T2, the first instruction word is stored in the instruction register 112 from the instruction buffer IBO 104, and at the same time, the instruction address of the first instruction is stored in the instruction counter 114.

【0032】また、IFASVレジスタ102には、先
読み命令アドレスレジスタIFA100の2周期遅れの
時刻T2に、先読み命令アドレスレジスタの値が格納さ
れる。
Further, the value of the prefetch instruction address register is stored in the IFASV register 102 at time T2 which is delayed by two cycles of the prefetch instruction address register IFA100.

【0033】セレクタ312,314には信号線532
を介して16個のレジスタよりなるレジスタファイル1
18の値が印加される。セレクタ312には夏に信号線
524を介して命令レジスタ112中の第1命令のX2
フィールドの4ビットが印加される。セレクタ312は
これによりX2フィールドの指示するレジスタの値を信
号線534に出力する。セレクタ314には信号線52
6を介して命令レジスタ112中の第1命令のB2フィ
ールドの4ビットが印加される。セレクタ314はこれ
によりB2フィールドの指示するレジスタの値を信号線
536に出力する。信号線592,590,593,5
91には通常「0」が印加されており、(「0」以外の
値が印加されるのは下記で説明する場合だけである)、
この時、図10に示したセレクタ316,318の動作
図に従って、信号線534の値はセレクタ316を介し
て信号線540に出力され、信号線536の値はセレク
タ318を介して信号線542に出力される。
A signal line 532 is connected to the selectors 312 and 314.
Register file 1 consisting of 16 registers via
A value of 18 is applied. In the summer, the selector 312 receives the X2 of the first instruction in the instruction register 112 via the signal line 524.
Four bits of field are applied. Thereby, the selector 312 outputs the value of the register designated by the X2 field to the signal line 534. The signal line 52 is connected to the selector 314.
Via 6 the 4 bits of the B2 field of the first instruction in instruction register 112 are applied. Accordingly, the selector 314 outputs the value of the register designated by the B2 field to the signal line 536. Signal lines 592, 590, 593, 5
Normally, "0" is applied to 91 (values other than "0" are applied only in the case described below),
At this time, according to the operation diagram of the selectors 316 and 318 shown in FIG. 10, the value of the signal line 534 is output to the signal line 540 via the selector 316, and the value of the signal line 536 is output to the signal line 542 via the selector 318. Is output.

【0034】アドレス加算器にはこのようにして信号線
540を介して第1命令のX2フィールドの指示するレ
ジスタの内容が入力され、信号線542を介しては第1
命令のB2フィールドの指示するレジスタの内容が入力
される。更に、信号線528を介して命令レジスタ11
2中の第1命令の変位D2が入力される。アドレス加算
器は上記3つの入力値を加算し、加算結果である第1命
令のオペランドアドレスを信号線548に出力し、それ
は時刻T3でオペランドアドレスレジスタOA120に
格納される。また同時刻に、IR1レジスタ124には
第1命令語が信号線522を介して格納され、IC1レ
ジスタ130には第1命令アドレスが信号線530を介
して格納され、GRX1レジスタ132には第1命令の
X2レジスタ値が信号線540を介して格納され、GR
B1には第1命令のB2レジスタ値が信号線542を介
して格納され、IFA1レジスタ136には第1命令を
先読みした際の先読み命令アドレスが格納される。
In this way, the contents of the register designated by the X2 field of the first instruction are input to the address adder via the signal line 540, and the first contents are input via the signal line 542.
The contents of the register designated by the B2 field of the instruction are input. Further, via the signal line 528, the instruction register 11
The displacement D2 of the first command in 2 is input. The address adder adds the above three input values and outputs the operand address of the first instruction, which is the addition result, to the signal line 548, which is stored in the operand address register OA120 at time T3. At the same time, the IR1 register 124 stores the first instruction word via the signal line 522, the IC1 register 130 stores the first instruction address via the signal line 530, and the GRX1 register 132 stores the first instruction word. The X2 register value of the instruction is stored via the signal line 540 and GR
The B2 register value of the first instruction is stored in B1 via the signal line 542, and the prefetch instruction address when the first instruction is prefetched is stored in the IFA1 register 136.

【0035】オペランド記憶装置326には信号線55
0を介してオペランドアドレスレジスタ120中の第1
命令のオペランドアドレスが印加され、信号線552に
はそのアドレスで示されるロケーションにある第1命令
のオペランドデータが出力される。時刻T4になると、
この第1命令のオペランドデータはオペランドデータレ
ジスタ122に格納される。
A signal line 55 is provided in the operand storage device 326.
The first in the operand address register 120 through 0
The operand address of the instruction is applied, and the operand data of the first instruction at the location indicated by the address is output to the signal line 552. At time T4,
The operand data of this first instruction is stored in the operand data register 122.

【0036】同時刻に、IR2レジスタ126には、信
号線562を介してIR1レジスタから第1命令語が格
納され、IC2レジスタ138には、信号線572を介
してIC1レジスタ130から第1命令の命令アドレス
が格納され、GRX2レジスタ140には、信号線57
0を介してGRX1レジスタ132から第1命令のX2
レジスタ値が格納され、GRB2レジスタ142には、
信号線568を介してGRB1レジスタ134から第1
命令のB2レジスタ値が格納され、IFA2レジスタ1
44には、信号線566を介してIFA1レジスタ13
6から第1命令語を先読みした際の先読み命令アドレス
が格納され、OA2レジスタ706には、信号線550
を介してOAレジスタ120よりオペランド・アドレス
が格納される。
At the same time, the IR2 register 126 stores the first command word from the IR1 register via the signal line 562, and the IC2 register 138 stores the first command word from the IC1 register 130 via the signal line 572. The instruction address is stored, and the signal line 57 is stored in the GRX2 register 140.
0 from the GRX1 register 132 to X2 of the first instruction
The register value is stored, and the GRB2 register 142 stores
First from GRB1 register 134 via signal line 568
The B2 register value of the instruction is stored and IFA2 register 1
44 to the IFA1 register 13 via a signal line 566.
The prefetch instruction address when the first instruction word is prefetched from 6 is stored in the OA2 register 706.
The operand address is stored from the OA register 120 via.

【0037】ALU330には3つの入力信号線があ
る。信号線554からは、オペランドデータレジスタ1
22にある第1命令のオペランドデータが入力される。
信号線594からはIR2レジスタ126にある第1命
令のオペコードが入力される。セレクタ328には信号
線532を介して16個のレジスタよりなるレジスタフ
ァイル118の値が印加され、更に信号線558を介し
て第1命令のR1フィールドが印加される。これによ
り、セレクタ328は、R1フィールドによって指示さ
れるレジスタの値、すなわちR1レジスタ値を信号線5
60に印加し、それがALU330に入力される。AL
Uは、信号線560からの入力データを第1オペランド
データとし、信号線554からの入力データを第2オペ
ランドデータとして、両者に信号線594に示されるオ
ペコードの演算を施し、その演算結果を信号線556に
出力する。
The ALU 330 has three input signal lines. Operand data register 1 from signal line 554
The operand data of the first instruction at 22 is input.
The operation code of the first instruction in the IR2 register 126 is input from the signal line 594. The value of the register file 118 composed of 16 registers is applied to the selector 328 via the signal line 532, and further the R1 field of the first instruction is applied via the signal line 558. As a result, the selector 328 sets the value of the register designated by the R1 field, that is, the R1 register value to the signal line 5.
60, which is input to ALU 330. AL
U uses the input data from the signal line 560 as the first operand data and the input data from the signal line 554 as the second operand data, performs an operation of the operation code indicated by the signal line 594 on both, and outputs the operation result as a signal. Output on line 556.

【0038】レジスタファイル118には、信号線55
6を介して第1命令の演算結果が印加され、信号線55
8を介してIR2レジスタ126にある第1命令のR1
フィールドが印加される。時刻T5になると、上記第1
命令の演算結果はR1フィールドの指示するレジスタ、
すなわちR1レジスタに書込まれる。
The register file 118 has a signal line 55.
The operation result of the first instruction is applied via 6 and the signal line 55
R1 of the first instruction in the IR2 register 126 via 8
The field is applied. At time T5, the first
The operation result of the instruction is the register designated by the R1 field,
That is, it is written in the R1 register.

【0039】なお、命令がストア(Store)命令である
時には、その事実が書込み命令検出器710により検出
され信号線712を介してオペランド記憶装置326に
入力される。これにより、オペランド記憶装置は信号線
708を介して入力されるストア(Store)命令のオペ
ランド・アドレスに信号線560を介して入力されるス
トア(Store)命令のR1レジスタの内容が時刻T5に
なると書込まれる。なお、この時には上述したR1レジ
スタへの書込みは行なわれない。
When the instruction is a store instruction, the fact is detected by the write instruction detector 710 and input to the operand storage device 326 via the signal line 712. As a result, when the contents of the R1 register of the store instruction input via the signal line 560 to the operand address of the store instruction input via the signal line 708 in the operand storage device become time T5. Written. At this time, the above-mentioned writing to the R1 register is not performed.

【0040】以上により第1命令の処理は終了する。With the above, the processing of the first instruction is completed.

【0041】第2命令の処理は、まず時刻T3に第2命
令語が命令レジスタ112に格納され、第2命令の命令
アドレスが命令カウンタICに格納される。以降、第1
命令と同様に順々に処理が進む。
In the processing of the second instruction, first, at time T3, the second instruction word is stored in the instruction register 112, and the instruction address of the second instruction is stored in the instruction counter IC. After that, the first
The process proceeds in the same manner as the instruction.

【0042】第3命令以降の命令の処理は、前の命令処
理の1周期遅れの時刻で第1,第2命令のように進む。
ただし、命令の先読みは4命令語単位であるので、先読
み命令アドレスレジスタ100,命令バッファ104,
106,108,110,IFASV レジスタ102への格
納はそれぞれ4周期ごとに1度ずつ行なわれる。
The processing of the third and subsequent instructions proceeds like the first and second instructions at a time one cycle behind the previous instruction processing.
However, since the prefetch of the instruction is in units of four instruction words, the prefetch instruction address register 100, the instruction buffer 104,
The storage in 106, 108, 110 and the IFASV register 102 is performed once every four cycles.

【0043】以上のように、レジスタコンフリクトがな
い場合には1周期ごとに命令処理が進んでいく。
As described above, when there is no register conflict, instruction processing progresses every cycle.

【0044】次に、レジスタコンフリクトのある場合の
全体の動作説明に移るが、その前に図4を用いて、連想
記憶装置320の説明をする。
Next, the overall operation in the case of register conflict will be described. Before that, the associative storage device 320 will be described with reference to FIG.

【0045】実施例における連想記憶装置の記憶容量は
10ワードである。
The storage capacity of the associative memory device in the embodiment is 10 words.

【0046】各ワードは、IC記憶部ICP346とI
R記憶部IRP348とX2レジスタ値記憶部GRXP35
0とB2レジスタ値記憶部GRBP352と先読み命令アド
レス記憶部IFAP354とデータ記憶部DATAP356とア
ドレス記憶部ADDRP345とフラグ記憶部FLGP347か
らなる。
Each word corresponds to the IC storage unit ICP346 and I
R storage unit IRP348 and X2 register value storage unit GRXP35
0 and B2 register value storage unit GRBP352, prefetch instruction address storage unit IFAP354, data storage unit DATAP356, address storage unit ADDRP345, and flag storage unit FLGP347.

【0047】信号線530,522,540,542,
500にデータを印加すると、連想記憶装置は探索をす
る。信号線530,522,540,542,500上
のデータとIC記憶部ICP346,IR記憶部IRP
348,X2レジスタ値記憶部GRXP350,B2レジス
タ値記憶部GRBP352,先読み命令アドレス記憶部IFAP
354のデータがそれぞれ全部一致するワードがある時
には、一致検出器344は「1」を出力してHITLレジス
タ156を「1」にし、かつそのワードのデータ記憶部
DATAP 356のデータをDATAL レジスタ158に格納
し、フラグ記憶部FLGP347のデータをFLGLレジスタ1
57に格納する。一致するワードがない時は、一致検出
器344は「0」を出力してHITLレジスタ156を
「0」にする。
Signal lines 530, 522, 540, 542
When data is applied to 500, the associative memory device searches. Data on signal lines 530, 522, 540, 542, 500 and IC storage unit ICP346, IR storage unit IRP
348, X2 register value storage unit GRXP350, B2 register value storage unit GRBP352, prefetch instruction address storage unit IFAP
When there is a word in which the data of 354 all match, the match detector 344 outputs "1" to set the HITL register 156 to "1", and the data storage unit of that word
The data of DATAP 356 is stored in the DATAL register 158, and the data of the flag storage unit FLGP347 is stored in the FLGL register 1
It stores in 57. When there is no matching word, the match detector 344 outputs "0" and sets the HITL register 156 to "0".

【0048】一方、信号線584に「1」又は信号線5
86に「0」が印加された時には、連想記憶装置は、信
号線580,564,578,576,574,55
6,708上のデータをそれぞれIC記憶部ICP34
6,IR記憶部IRP348,X2レジスタ値記憶部GR
XP350,B2レジスタ値記憶部GRBP352,先読み命
令アドレス記憶IFAP354,データ記憶部DATAP 356
アドレス記憶部ADDRP 345のデータとし、フラグ記憶
部FLGP347を「1」とするワードを登録する。その
際、IC記憶部ICP346,IR記憶部IRP34
8,X2レジスタ値記憶部GRXP350,B2レジスタ値
記憶部GRBP352,先読み命令アドレス記憶部IFAP35
4のデータが全部一致するワードがすでに記憶されてい
る時には、そのワードの上に重ね書きされる。一致する
ワードがまだ記憶されていない時には、新しくワードが
割り当てられて登録される。
On the other hand, the signal line 584 is "1" or the signal line 5
When “0” is applied to 86, the associative memory device outputs the signal lines 580, 564, 578, 576, 574, 55.
The data in the IC storage unit ICP34
6, IR storage unit IRP348, X2 register value storage unit GR
XP350, B2 register value storage unit GRBP352, prefetch instruction address storage IFAP354, data storage unit DATAP 356
A word having "1" in the flag storage unit FLGP347 is registered as the data of the address storage unit ADDRP 345. At that time, the IC storage unit ICP346, the IR storage unit IRP34
8, X2 register value storage unit GRXP350, B2 register value storage unit GRBP352, prefetch instruction address storage unit IFAP35
When a word in which the data of 4 are all the same is already stored, it is overwritten on the word. When the matching word is not yet stored, a new word is assigned and registered.

【0049】また、信号線712に「1」が印加された
時、すなわち、ストア(Store)命令が実行された時に
は、連想記憶装置は信号線708を介して送られるスト
ア(Store)命令のオペランド・アドレスとアドレス記憶
部ADDRP が一致するワードが存在するか検出し、存在す
る場合にはそのようなすべてのワードのデータ記憶部DA
TAP を信号線560を介して転送されるストア(Store)
命令のR1レジスタの内容で書換え、かつ、そのワード
のフラグ記憶部FLGPに「0」を記憶する。
When "1" is applied to the signal line 712, that is, when the store instruction is executed, the associative memory device sends the operand of the store instruction sent via the signal line 708. Detects whether there is a word whose address and address storage unit ADDRP match, and if so, data storage unit DA for all such words
Store where TAP is transferred via signal line 560
The instruction is rewritten with the contents of the R1 register, and "0" is stored in the flag storage unit FLGP of the word.

【0050】なお、フラグ記憶部FLGPの「1」は、対応
するデータ記憶部DATAP に以前に命令が実行された時の
演算結果が記憶されていることを意味し、フラグ記憶部
FLGPの「0」は、対応するデータ記憶部DATAPに第2オ
ペランド・データが記憶されていることを意味する。
Incidentally, "1" in the flag storage unit FLGP means that the operation result when the instruction is previously executed is stored in the corresponding data storage unit DATAP.
"0" of FLGP means that the second operand data is stored in the corresponding data storage unit DATAP.

【0051】以上で連想記憶装置の説明を終わる。This is the end of the description of the associative memory device.

【0052】次に、レジスタコンフリクトのある場合の
動作説明を行なう。レジスタコンフリクトのある命令と
しては図2の2命令を考え、Add命令が第1命令と
し、サブトラクト(Subtract)命令が第2命令とする。
第3命令以降はこれらの命令との間でレジスタコンフリ
クトを起さない任意の命令とする。
Next, the operation when there is a register conflict will be described. 2 are considered as the instruction having the register conflict, the Add instruction is the first instruction, and the Subtract instruction is the second instruction.
The third and subsequent instructions are arbitrary instructions that do not cause register conflict with these instructions.

【0053】本発明では、レジスタコンフリクトを起し
ている先行命令(以下で考える例では第1命令)の演算
結果を、連想記憶装置に記憶された情報を用して求めて
いる。したがって先行命令を実行する際に、その連想記
憶装置に情報があるか否かで予測が出来るか出来ないか
が決まる。
In the present invention, the operation result of the preceding instruction causing the register conflict (the first instruction in the example considered below) is obtained by using the information stored in the associative memory. Therefore, when executing the preceding instruction, whether or not the prediction can be made depends on whether or not there is information in the associative memory.

【0054】まず、連想記憶装置に以前の実行時の情報
がない場合を説明する。図6をタイミングチャート図と
して用いる。
First, the case where the associative storage device does not have the information of the previous execution will be described. FIG. 6 is used as a timing chart.

【0055】第1命令から第4命令までの命令先読み、
および第1命令の処理の大部分は、上述のレジスタコン
フリクトがない場合の動作と同じである。すなわち、図
6のタイミングチャート図のうち、第1命令から第4命
令に関するIFA,IBO〜3,IFASV,第1命令に関
するIR/IC,OA/IR1/IC1/GRX1/G
RB1/IFA1,OD/IR2/IC2/GRX2/
GRB2/IFA2,GRのタイミングは、図5のもの
と同一である。以下ではそれ以外の部分を説明する。
Instruction prefetch from the first instruction to the fourth instruction,
And most of the processing of the first instruction is the same as the operation when there is no register conflict as described above. That is, in the timing chart of FIG. 6, IFA, IBO to 3, IFASV for the first to fourth instructions, IR / IC, OA / IR1 / IC1 / GRX1 / G for the first instruction.
RB1 / IFA1, OD / IR2 / IC2 / GRX2 /
The timing of GRB2 / IFA2, GR is the same as that of FIG. The other parts will be described below.

【0056】まず、時刻TOより先読み命令アドレスレ
ジスタ100に格納されている先読み命令アドレスは信
号線500を介して連想記憶装置の先読み命令アドレス
記憶部IFAP354に印加されている。また、時刻T2に
なると第1命令の命令語、命令アドレス,X2レジスタ
値,B2レジスタ値がそれぞれ信号線522,530,
540,542を介してそれぞれ連想記憶装置のIR記
憶部348,IC記憶部346,X2レジスタ値記憶部
350,B2レジスタ値記憶部352に印加される。
First, from time TO, the prefetch instruction address stored in the prefetch instruction address register 100 is applied to the prefetch instruction address storage unit IFAP 354 of the associative storage device through the signal line 500. At time T2, the instruction word of the first instruction, the instruction address, the X2 register value, and the B2 register value are transferred to the signal lines 522, 530, respectively.
It is applied to the IR storage unit 348, the IC storage unit 346, the X2 register value storage unit 350, and the B2 register value storage unit 352 of the associative storage device via 540 and 542, respectively.

【0057】連想記憶装置は上記信号線530,52
2,540,542,500のデータで探索をする。今
は、連想記憶装置に以前の実行時の情報がない場合を考
えているので、時刻T3においてHITLレジスタ156に
は「0」が格納される。更に、この「0」は信号線54
6に印加される。
The associative memory device includes the signal lines 530 and 52.
Search with 2,540,542,500 data. Since it is now considered that the associative storage device does not have information on the previous execution, "0" is stored in the HITL register 156 at time T3. Further, this “0” is the signal line 54
6 is applied.

【0058】時刻T3においてIR1レジスタ124に
は第1命令であるAdd命令の命令語が格納されてお
り、命令レジスタ112には第2命令であるSubtract命
令の命令語が格納されている。したがって、信号線58
2上には第1命令のR1フィールドの「5」が印加さ
れ、信号線524には第2命令のX2フィールド「5」
が印加される。第1命令と第2命令以外ではレジスタコ
ンフリクトがないと仮定しているので、信号線558,
526には「5」とは異なる値が印加されている。した
がって、一致比較回路160の出力は「1」になり、他
の一致比較回路162,164,166の出力は「0」
となる。故にOR回路168の出力信号線593は
「1」になる。また、OR回路170の出力信号線59
1、AND回路172の出力信号線592,AND回路
174の出力信号線590,AND回路180の出力信
号線584は「0」になる。
At time T3, the IR1 register 124 stores the instruction word of the Add instruction which is the first instruction, and the instruction register 112 stores the instruction word of the Subtract instruction which is the second instruction. Therefore, the signal line 58
2 is applied with “5” in the R1 field of the first instruction, and the X2 field “5” of the second instruction is applied to the signal line 524.
Is applied. Since it is assumed that there is no register conflict other than the first instruction and the second instruction, the signal line 558,
A value different from “5” is applied to 526. Therefore, the output of the coincidence comparison circuit 160 becomes "1", and the outputs of the other coincidence comparison circuits 162, 164, 166 are "0".
Becomes Therefore, the output signal line 593 of the OR circuit 168 becomes "1". Further, the output signal line 59 of the OR circuit 170
1, the output signal line 592 of the AND circuit 172, the output signal line 590 of the AND circuit 174, and the output signal line 584 of the AND circuit 180 become “0”.

【0059】信号線592は「0」であり、信号線59
3は「1」であるので、図10に示したように、信号線
540上に有意なデータは出力されない。一方、セレク
タ318は信号線536上の第2命令のB2レジスタ値
を信号線542を介してアドレス加算器324に印加す
る。信号線528からは第2命令の変位がアドレス加算
器に印加される。これにより、時刻T4においては、オ
ペランドアドレスレジスタ120には有意なデータは格
納されない。
The signal line 592 is "0", and the signal line 59 is
Since 3 is "1", as shown in FIG. 10, significant data is not output on the signal line 540. On the other hand, the selector 318 applies the B2 register value of the second instruction on the signal line 536 to the address adder 324 via the signal line 542. The displacement of the second command is applied to the address adder from the signal line 528. As a result, at time T4, significant data is not stored in the operand address register 120.

【0060】また、IR1レジスタ124,IC1レジ
スタ130,GRX1レジスタ132,GRB1レジス
タ134,IFA1レジスタ136にも有意なデータは
格納されない。
No significant data is stored in the IR1 register 124, the IC1 register 130, the GRX1 register 132, the GRB1 register 134, or the IFA1 register 136.

【0061】以降の第2命令の動作では、信号線540
上には有意なデータは出力されないのでアドレス加算器
548は有意なデータを出力しない。したがって、時刻
T4になってもオペランドアドレスレジスタ120には
有意なデータは格納されない。また、IR1レジスタ1
24,IC1レジスタ130,GRX1レジスタ13
2,GRB1レジスタ134,IFA1レジスタ136
にも有意なデータは格納されない。
In the subsequent operation of the second instruction, the signal line 540
The address adder 548 does not output any significant data because no significant data is output above. Therefore, no significant data is stored in the operand address register 120 even at time T4. Also, IR1 register 1
24, IC1 register 130, GRX1 register 13
2, GRB1 register 134, IFA1 register 136
No significant data is stored.

【0062】一方、時刻T4になるとIR2レジスタ1
26には第1命令であるAdd命令の命令語が格納され
ている。この時には、一致比較回路164の出力は
「1」になり、他の一致比較回路160,162,16
6の出力は「0」になる。故に、OR回路168の出力
信号線593とAND回路180の出力信号線584は
「1」になる。また、OR回路170,182の出力信
号線591,596とAND回路172と174の出力
信号線592,590は「0」になる。この時も信号線
592は「0」であり、信号線593は「1」なので信
号線540上には何のデータも出力されない。信号線5
40上には有意なデータが出力されないのでアドレス加
算器548は有意なデータを出力しない。したがって時
刻T5になってもオペランドアドレスレジスタ120に
は有意なデータは格納されない。また、IR1レジスタ
124,IC1レジスタ130,GRX1レジスタ13
2,GRB1レジスタ134,IFAレジスタ136に
も有意なデータは格納されない。
On the other hand, at time T4, the IR2 register 1
26 stores the instruction word of the Add instruction which is the first instruction. At this time, the output of the coincidence comparison circuit 164 becomes "1", and the other coincidence comparison circuits 160, 162, 16
The output of 6 becomes "0". Therefore, the output signal line 593 of the OR circuit 168 and the output signal line 584 of the AND circuit 180 become "1". Further, the output signal lines 591 and 596 of the OR circuits 170 and 182 and the output signal lines 592 and 590 of the AND circuits 172 and 174 become “0”. At this time as well, the signal line 592 is "0" and the signal line 593 is "1", so that no data is output onto the signal line 540. Signal line 5
The address adder 548 does not output significant data because no significant data is output on 40. Therefore, no significant data is stored in the operand address register 120 even at time T5. Further, the IR1 register 124, the IC1 register 130, the GRX1 register 13
2, no significant data is stored in the GRB1 register 134 and the IFA register 136.

【0063】一方、時刻T5になると、IR2レジスタ
138には有意なデータは格納されていない。この時に
は一致比較回路160,162,164,166の出力
は「0」となる。故に信号線590,591,592,
593,584,596はすべて「0」となる。
On the other hand, at time T5, no significant data is stored in the IR2 register 138. At this time, the outputs of the coincidence comparison circuits 160, 162, 164, 166 are "0". Therefore, the signal lines 590, 591, 592
All of 593, 584 and 596 are “0”.

【0064】これにより、セレクタ316は信号線53
4上の第2アドレスのX2レジスタ値を信号線540を
介してアドレス加算器324に印加し、セレクタ318
は信号線536上の第2アドレスのB2レジスタ値を信
号から542を介してアドレス加算器324に印加す
る。信号線528からは第2アドレスの変位がアドレス
加算器に印加される。これにより、時刻T6において、
第2アドレスのオペランドアドレスがオペランドアドレ
スレジスタ120に格納される。
As a result, the selector 316 causes the signal line 53
The X2 register value of the second address on No. 4 is applied to the address adder 324 via the signal line 540, and the selector 318
Applies the B2 register value of the second address on the signal line 536 from the signal to the address adder 324 via 542. The displacement of the second address is applied to the address adder from the signal line 528. As a result, at time T6,
The operand address of the second address is stored in the operand address register 120.

【0065】また、IR1レジスタ124,IC1レジ
スタ130,GRX1レジスタ132,GRB1レジス
タ134,IFAレジスタ136には、レジスタコンフ
リクトのない時の動作と同一のデータが時刻T6で格納
される。
The IR1 register 124, the IC1 register 130, the GRX1 register 132, the GRB1 register 134, and the IFA register 136 store the same data as that at the time of no register conflict at time T6.

【0066】以降の第2アドレスの動作は、レジスタコ
ンフリクトがない場合と同様に進む。
The subsequent operation of the second address proceeds in the same manner as when there is no register conflict.

【0067】時刻T4から第1命令の演算がALU33
0で行なわれており、時刻T4とT5の中間でその演算
結果が信号線556を介して連想記憶装置に印加され
る。
From time T4, the operation of the first instruction is ALU33.
The calculation result is applied to the associative memory device via the signal line 556 in the middle of time T4 and T5.

【0068】更に、信号線584上の「1」は連想記憶
装置に印加される。これにより、連想記憶装置のIC記
憶部346,IR記憶部348,X2レジスタ値記憶部
350,B2レジスタ値記憶部352,先読み命令アド
レス記憶部354,データ記憶部356,アドレス記憶
部347がそれぞれ信号線580上の第1命令の命令ア
ドレス、信号線564上の第1命令語、信号線578上
の第1命令のX2レジスタ値,信号線576上の第1命
令のB2レジスタ値,信号線574上の第1命令の先読
み時の先読み命令アドレス、信号線556上の第1命令
の演算結果、信号線708上の第1命令のオペランドア
ドレスであり、フラグ記憶部347が「1」であるワー
ドが時刻T5において登録される。
Furthermore, "1" on the signal line 584 is applied to the associative memory. As a result, the IC storage unit 346, the IR storage unit 348, the X2 register value storage unit 350, the B2 register value storage unit 352, the prefetch instruction address storage unit 354, the data storage unit 356, and the address storage unit 347 of the associative storage device receive signals. Instruction address of first instruction on line 580, first instruction word on signal line 564, X2 register value of first instruction on signal line 578, B2 register value of first instruction on signal line 576, signal line 574 A word in which the prefetch instruction address at the time of prefetching the above first instruction, the operation result of the first instruction on the signal line 556, the operand address of the first instruction on the signal line 708, and the flag storage unit 347 being "1" Is registered at time T5.

【0069】これにより、連想記憶装置に情報がない場
合の説明を終わる。
This completes the description of the case where there is no information in the associative memory.

【0070】次に、連想記憶に情報がある場合について
説明する。連想記憶には、以前の実行時の先行命令の演
算結果が格納されている場合と、先行命令のメモリ・オ
ペランドが格納されている場合がある。
Next, the case where there is information in the associative memory will be described. The associative memory may store the operation result of the preceding instruction at the previous execution time or may store the memory operand of the preceding instruction.

【0071】まず、連想記憶装置に以前の実行時の情報
結果がある場合を説明する。図7をタイミングチャート
図として用いる。
First, the case where the associative memory device has the information result of the previous execution will be described. FIG. 7 is used as a timing chart.

【0072】演算結果は、ロード命令以外の演算命令で
は第1オペランドと第2オペランド(メモリ・オペラン
ド)に演算を施して求まる。以前の実行時の第1オペラ
ンドは、次に実行した時の第1オペランドと一致しない
可能性があるので、連想記憶内の演算結果は必ずしも正
しいとは言えない。したがって、以下の場合、連想記憶
の演算結果で第2命令の処理を開始し、後に第1命令の
演算結果が求まった時にそれを連想記憶の演算結果と比
較し、不一致の時には第2命令の処理をやり直すという
方法をとっている。
The operation result is obtained by performing an operation on the first operand and the second operand (memory operand) in an operation instruction other than the load instruction. Since the first operand at the previous execution may not match the first operand at the next execution, the operation result in the associative memory cannot be said to be correct. Therefore, in the following cases, the processing of the second instruction is started with the operation result of the associative memory, and when the operation result of the first instruction is obtained later, it is compared with the operation result of the associative memory. The method is to redo the process.

【0073】第1命令から第4命令までの命令先読み、
および第1命令の処理の大部分は、上述のレジスタコン
フリクトがない場合の動作と同じである。すなわち、図
7のタイミングチャート図のうち、第1命令から第4命
令に関するIFA,IBO〜3IFASY,第1命令に関す
るIR/IC,OA/IR1/IC1/GRX1/GR
B1/IFA1,OD/IR2/IC2/GRX2/G
RB2/IFA2,GRのタイミングは、図5のものと
同一である。以下ではそれ以外の部分を説明する。
Instruction prefetch from the first instruction to the fourth instruction,
And most of the processing of the first instruction is the same as the operation when there is no register conflict as described above. That is, in the timing chart of FIG. 7, IFA, IBO to 3IFASY for the first to fourth instructions, IR / IC, OA / IR1 / IC1 / GRX1 / GR for the first instruction.
B1 / IFA1, OD / IR2 / IC2 / GRX2 / G
The timing of RB2 / IFA2 and GR is the same as that of FIG. The other parts will be described below.

【0074】まず、時刻TOより先読み命令アドレスレ
ジスタ100に格納されている先読み命令アドレスレジ
スタ100に格納されている先読み命令アドレスは、信
号線500を介して連想記憶装置の先読み命令アドレス
記憶部IFAP354に印加されている。また、時刻T2に
なると第1命令の命令語、命令アドレスX2レジスタ
値、B2レジスタ値がそれぞれ信号線522,530,
540,542を介してそれぞれ連想記憶装置のIR記
憶部348,IC記憶部346,X2レジスタ値記憶部
350,B2レジスタ値記憶部352に印加される。
First, from time TO, the prefetch instruction address stored in the prefetch instruction address register 100 is stored in the prefetch instruction address register 100 to the prefetch instruction address storage unit IFAP 354 of the associative storage device via the signal line 500. Is being applied. Also, at time T2, the instruction word of the first instruction, the instruction address X2 register value, and the B2 register value are changed to signal lines 522, 530, respectively.
It is applied to the IR storage unit 348, the IC storage unit 346, the X2 register value storage unit 350, and the B2 register value storage unit 352 of the associative storage device via 540 and 542, respectively.

【0075】連想記憶装置は、上記信号線530,52
2,540,542,500のデータで探索をする。今
は、連想記憶装置に以前の実行時の情報がある場合を考
えているので、時刻T3においてDATALレジスタ158
には第1命令の以前の演算結果が格納され、FLGLレジス
タ157には「1」が格納され、HITLレジスタ156に
は「1」が格納される。更に、この「1」は信号線54
6に印加される。
The associative memory device includes the signal lines 530 and 52.
Search with 2,540,542,500 data. Since it is now considered that the associative storage device has the information on the previous execution, the DATAL register 158 at time T3.
Stores the previous operation result of the first instruction, FLGL register 157 stores "1", and HITL register 156 stores "1". Furthermore, this "1" is the signal line 54
6 is applied.

【0076】時刻T3においてIR1レジスタ124に
は第1命令であるAdd命令の命令語が格納されてお
り、命令レジスタ112には第2命令であるSubtract命
令の命令語が格納されている。したがって、信号線58
2上には第1命令のR1フィールドの「5」が印加さ
れ、信号線524には第2命令のX2フィールド「5」
が印加される。第1命令と第2命令以外ではレジスタコ
ンフリクトがないと仮定しているので、信号線558,
526には「5」とは異なる値が印加されている。した
がって、一致比較回路160の出力は「1」になり、他
の一致比較回路162,164,166の出力は「0」
となる。故にOR回路168の出力信号線593とOR
回路182の出力信号線596と、AND回路172の
出力信号線172は「1」になる。また、OR回路の出
力信号線591,AND回路174の出力信号線59
0,AND回路180の出力信号線は「0」になる。
At time T3, the IR1 register 124 stores the instruction word of the Add instruction which is the first instruction, and the instruction register 112 stores the instruction word of the Subtract instruction which is the second instruction. Therefore, the signal line 58
2 is applied with “5” in the R1 field of the first instruction, and the X2 field “5” of the second instruction is applied to the signal line 524.
Is applied. Since it is assumed that there is no register conflict other than the first instruction and the second instruction, the signal line 558,
A value different from “5” is applied to 526. Therefore, the output of the coincidence comparison circuit 160 becomes "1", and the outputs of the other coincidence comparison circuits 162, 164, 166 are "0".
Becomes Therefore, it is ORed with the output signal line 593 of the OR circuit 168.
The output signal line 596 of the circuit 182 and the output signal line 172 of the AND circuit 172 become “1”. Also, the output signal line 591 of the OR circuit and the output signal line 59 of the AND circuit 174
0, the output signal line of the AND circuit 180 becomes "0".

【0077】信号線596はICSVレジスタ158の
セット信号となっており、この信号線が「1」なので時
刻T4においてICSVレジスタ116には第2命令の
命令アドレスが格納されDATASVレジスタ154に
は第1命令の以前の演算結果が格納される。
The signal line 596 serves as a set signal for the ICSV register 158. Since this signal line is "1", the instruction address of the second instruction is stored in the ICSV register 116 at time T4 and the first signal is stored in the DATASV register 154. The previous operation result of the instruction is stored.

【0078】信号線592が「1」であり、信号線71
4が「1」であるので、第10図のようにセレクタ31
6は信号線538上の第1命令の以前の演算結果を信号
線540を介してアドレス加算器324に印加し、セレ
クタ318は信号線536上の第2命令のB2レジスタ
値を信号線542を介してアドレス加算器324に印加
する。信号線528からは第2命令の変位がアドレス加
算器に印加される。これにより、時刻T4において、第
2命令のオペランドアドレスがオペランドアドレスレジ
スタ120に格納される。
The signal line 592 is "1" and the signal line 71
Since 4 is "1", as shown in FIG.
6 applies the previous operation result of the first instruction on the signal line 538 to the address adder 324 via the signal line 540, and the selector 318 sets the B2 register value of the second instruction on the signal line 536 to the signal line 542. It is applied to the address adder 324 via the address adder 324. The displacement of the second command is applied to the address adder from the signal line 528. As a result, at time T4, the operand address of the second instruction is stored in the operand address register 120.

【0079】また、IR1レジスタ124,IC1レジ
スタ130,GRX1レジスタ132,GRB1レジス
タ134,IFAレジスタ136には、レジスタコンフ
リクトのない時の動作と同一のデータが時刻T4で格納
される。
Further, at the time T4, the same data as the operation when there is no register conflict is stored in the IR1 register 124, the IC1 register 130, the GRX1 register 132, the GRB1 register 134, and the IFA register 136.

【0080】以降の第2命令の動作は、レジスタコンフ
リクトがない場合と同様に進む。
The subsequent operation of the second instruction proceeds in the same manner as when there is no register conflict.

【0081】時刻T4から第1命令の演算がALU33
0で行なわれており、時刻T4とT5の中間でその演算
結果が信号線556を介して比較器332に印加され
る。比較器332のもう一方の入力にはDATASVレ
ジスタ154に格納されている第1命令の以前の演算結
果が印加されている。
From time T4, the operation of the first instruction is ALU33.
The operation result is applied to the comparator 332 via the signal line 556 in the middle of time T4 and T5. The previous operation result of the first instruction stored in the DATASV register 154 is applied to the other input of the comparator 332.

【0082】ALU330での演算結果が以前の演算結
果と一致するか否かで以下の動作は2通りに分かれる。
まず、一致する場合を説明する。この場合、信号線58
6上には「1」が印加される。この「1」はセククタ3
00と308に入力される。この時、セレクタ300は
信号線502のデータを信号線506に出力し、セレク
タ308は信号線520のデータを信号線518に出力
する。これは、レジスタコンフリクトがない場合の動作
と同一であり、以降の動作はその場合と同じに進んでい
く。
The following operation is divided into two types depending on whether or not the calculation result of the ALU 330 matches the previous calculation result.
First, the case where they match will be described. In this case, the signal line 58
A “1” is applied on 6. This "1" is sector 3
00 and 308. At this time, the selector 300 outputs the data of the signal line 502 to the signal line 506, and the selector 308 outputs the data of the signal line 520 to the signal line 518. This is the same operation as when there is no register conflict, and the subsequent operation proceeds in the same manner as in that case.

【0083】ALU330での演算結果が以前の演算結
果と一致しない場合を次に説明する。以上の説明ではタ
イミングチャート図としては第7図を用いてきたが、以
下の説明では第8図を用いる。この場合、信号線586
には「0」が印加される。この「0」はセレクタ300
と308に入力される。この時、セレクタ300は信号
線504のデータを信号線506に出力し、セレクタ3
08は、信号線504のデータを信号線518に出力す
る。これにより、時刻T5において、先読み命令アドレ
スレジスタ100にはICSVレジスタ116に格納されて
いた第2命令の命令アドレスの上位20ビットが格納さ
れる。この値は第1命令から第4命令までの先読みアド
レスと同一である。これにより、先読みが実行されて時
刻T6で第1命令から第4命令が命令バッファ104,
106,108,110に格納される。信号線518に
は第2命令の命令アドレスが印加されているので、時刻
T7において命令レジスタ112には命令バッファ(T
LB1)106上の第2命令が格納される。第2命令と
レジスタコンフリクトを起こしていた第1命令は時刻5
において、すでに演算結果をR1フィールドの指示する
レジスタに書込んである。したがって、時刻T7におい
ては、第1命令と第2命令の間にはレジスタコンフリク
トのない場合の動作説明と同じに進んでいく。
A case where the calculation result in the ALU 330 does not match the previous calculation result will be described below. Although FIG. 7 has been used as the timing chart in the above description, FIG. 8 is used in the following description. In this case, the signal line 586
Is applied with "0". This “0” is the selector 300
And 308 are input. At this time, the selector 300 outputs the data of the signal line 504 to the signal line 506, and the selector 3
08 outputs the data of the signal line 504 to the signal line 518. As a result, at time T5, the pre-read instruction address register 100 stores the upper 20 bits of the instruction address of the second instruction stored in the ICSV register 116. This value is the same as the prefetch address from the first instruction to the fourth instruction. As a result, the prefetch is executed, and at time T6, the first to fourth instructions are transferred to the instruction buffer 104,
106, 108, 110. Since the instruction address of the second instruction is applied to the signal line 518, the instruction buffer (T
The second instruction on LB1) 106 is stored. The first instruction that caused a register conflict with the second instruction is time 5
In, the calculation result has already been written in the register designated by the R1 field. Therefore, at the time T7, the procedure is the same as that in the case where there is no register conflict between the first instruction and the second instruction.

【0084】更に、信号線586上の「0」は連想記憶
装置に印加される。これにより、連想記憶装置のIC記
憶部346,IR記憶部348,X2レジスタ値記憶部
350,B2レジスタ値記憶部352,先読み命令アド
レス記憶部354,データ記憶部356,アドレス記憶
部345がそれぞれ信号線580上の第1命令の命令ア
ドレス、信号線564上の第1命令語、信号線578上
の第1命令のX2レジスタ値,信号線576上の第1命
令のB2レジスタ値,信号線574上の第1命令の先読
み時の先読み命令アドレス、信号線556上の第1命令
の演算結果,信号線708上の第1命令のオペランドア
ドレスであり、フラグ記憶部が「1」であるワードが時
刻T5において登録される。
Furthermore, "0" on the signal line 586 is applied to the associative memory. As a result, the IC storage unit 346, the IR storage unit 348, the X2 register value storage unit 350, the B2 register value storage unit 352, the prefetch instruction address storage unit 354, the data storage unit 356, and the address storage unit 345 of the associative storage device receive signals. Instruction address of first instruction on line 580, first instruction word on signal line 564, X2 register value of first instruction on signal line 578, B2 register value of first instruction on signal line 576, signal line 574 The word that is the prefetch instruction address at the time of prefetching the first instruction above, the operation result of the first instruction on the signal line 556, the operand address of the first instruction on the signal line 708, and whose flag storage unit is “1” is It is registered at time T5.

【0085】以上でALU330での演算結果が以前の
演算結果と一致しない場合の説明を終わる。
This is the end of the explanation in the case where the calculation result in the ALU 330 does not match the previous calculation result.

【0086】更に、これにより、連想記憶装置に以前の
実行時の演算結果がある場合の説明を終わる。
Furthermore, this concludes the description in the case where the associative memory device has the previous execution operation result.

【0087】以下のような状況を考える。まず、第2図
の加算(Add)命令、サブトラクト(Subtract)命令
が実行される。両者間には上述のレジスタコンフリクト
が存在する。加算(Add)命令の演算結果は、上述の
ように、連想記憶320に格納される。次にストア(St
ore)命令が実行される。この命令のストア・アドレス
は上述の加算(Add)命令のオペランド・アドレスと
同じと仮定する。もしもこのストア(Store)命令の実
行時に、連想記憶320の内容(すなわち、上記演算結
果)を変更しないとすると、次にまた上記の加算(Ad
d)命令、サブトラクト命令を実行した場合に、連想記
憶320からは加算(Add)命令の前回の実行時の演
算結果が出力されて、サブトラクト命令で利用されてし
まう。上述のストア(Store)命令により、2度目の加
算(Add)命令で使用されるオペランドデータは変更
されているので、連想記憶320から出力された加算
(Add)命令の前回の実行時の演算結果は、加算命令
の2度目の実行時の演算結果を正しく予測していない。
このように、ストア(Store)命令が実行されて、その
ストア・アドレスが、連想記憶に格納されている命令の
オペランド・アドレスと等しい場合、連想記憶に格納さ
れたこの命令の演算結果は、その命令がそれ以降に実行
される時の演算結果とは異なってくる。ストア(Stor
e)命令が実行された時には、連想記憶内の演算結果を
ストア・データで書換えれば良い。
Consider the following situation. First, the add (Add) instruction and the subtract (Subtract) instruction in FIG. 2 are executed. The above-mentioned register conflict exists between them. The operation result of the add (Add) instruction is stored in the associative memory 320 as described above. Next store (St
ore) instruction is executed. The store address of this instruction is assumed to be the same as the operand address of the add instruction described above. If the contents of the associative memory 320 (that is, the operation result) is not changed at the time of executing this store instruction, the addition (Ad
When the d) instruction and the subtract instruction are executed, the associative memory 320 outputs the operation result of the previous execution of the addition (Add) instruction, which is used in the subtract instruction. Since the operand data used in the second addition (Add) instruction has been changed by the above-mentioned Store instruction, the operation result of the previous execution of the addition (Add) instruction output from the associative memory 320 Does not correctly predict the operation result of the second execution of the add instruction.
Thus, when a Store instruction is executed and its store address is equal to the operand address of the instruction stored in associative memory, the operation result of this instruction stored in associative memory is The result will be different when the instruction is executed after that. Store (Stor
e) When the instruction is executed, the operation result in the associative memory may be rewritten with the store data.

【0088】なお、この際、2回目のAdd命令の実行
時に連想記憶320の内容が正しくない状況になるの
は、上述のように、1回目のAdd、Subtract命令の実
行時点から2回目のAdd命令の実行時点までの間に、
ストア命令によって、Add命令のオペランドデータが
書き換えられる場合にのみであるので、ストアデータで
連想記憶320の演算結果を書き換えておけば、書き換
えられた連想記憶320のデータは常に正しいことにな
る。その処理を次に述べる。
At this time, the content of the associative memory 320 is incorrect when the second Add instruction is executed, as described above, because the second Add instruction is executed after the first Add and Subtract instructions are executed. By the time the instruction is executed,
Since it is only when the operand data of the Add instruction is rewritten by the store instruction, if the operation result of the associative memory 320 is rewritten with the store data, the rewritten data of the associative memory 320 is always correct. The processing will be described below.

【0089】連想記憶装置320の説明で既に述べたよ
うに、ストア(Store)命令が実行されると信号線71
2を介して「1」が連想記憶装置に転送される。同時に
信号線708を介してストア(Store)命令のオペラン
ド・アドレス(すなわち、ストア・アドレス)が転送さ
れ、信号線560を介してストア(Store)命令のR1
レジスタの内容(すなわち、ストア・データ)が転送さ
れる。
As already described in the description of the associative memory device 320, the signal line 71 is generated when the store instruction is executed.
“1” is transferred to the associative memory via 2. At the same time, the operand address (that is, the store address) of the Store instruction is transferred via the signal line 708, and the R1 of the Store instruction is transferred via the signal line 560.
The contents of the register (ie store data) is transferred.

【0090】この時、連想記憶装置はアドレス記憶部AD
DRがストア・アドレスと等しいワードをすべて探し出
し、等しいワードのデータを記憶部DATAPをストア・デ
ータで書換え、かつ、そのワードのフラグ記憶部を
「0」に書換える。
At this time, the associative storage device is the address storage unit AD.
The DR finds all the words having the same store address, rewrites the data of the same word in the storage unit DATAP with the store data, and rewrites the flag storage unit of the word to "0".

【0091】以上で、ストア(Store)命令が実行され
た時の処理の説明を終わる。
This is the end of the description of the processing when the store instruction is executed.

【0092】次に、連想記憶装置に先行命令の第2オペ
ランド(メモリ・オペランド)がある場合を説明する。
第7図をタイミングチャート図として用いる。
Next, the case where the associative memory device has the second operand (memory operand) of the preceding instruction will be described.
FIG. 7 is used as a timing chart.

【0093】この場合、上記のようにストア命令が実行
された時に連想記憶内のデータ(第1命令の以前の演算
結果又は第1命令のメモリ・データ(第2オペラン
ド))をストア・データで書換えているので、連想記憶
内の第2オペランドは常に正しい。また、この場合、下
記のようにこの第2オペランドに対して、それ以降第1
命令が実行されるとその実行時の第1オペランドを用い
て演算を施すので、その演算結果は、連想記憶内に格納
されている以前の演算結果とは異なり、正しい。したが
って、この場合には、上述のような、以前の演算結果と
ALUでの演算結果の一致比較及び第2命令のやり直し
処理は不要である。
In this case, when the store instruction is executed as described above, the data in the associative memory (the operation result before the first instruction or the memory data (the second operand) of the first instruction) is stored as the store data. Since it is being rewritten, the second operand in the associative memory is always correct. Also, in this case, as shown below, for the second operand,
When the instruction is executed, since the operation is performed using the first operand at the time of execution, the operation result is correct, unlike the previous operation result stored in the associative memory. Therefore, in this case, it is not necessary to perform the coincidence comparison between the previous operation result and the operation result in the ALU and the redo process of the second instruction as described above.

【0094】なお、このようなストア命令によるストア
データでの連想記憶320内でのデータ書き換えが発生
しておらず、上述のように連想記憶320内に演算結果
(1度目のAdd命令の演算結果)がある場合には、2
度目のAdd命令のの実行時の第1オペランドであるR
1レジスタの値が1度目のAdd命令の時とは異なる可
能性があるので、以前の演算結果とALU330での演
算結果の一致比較および第2命令(Subtract命令)のや
り直し処理は不可欠である。
Data rewriting in the associative memory 320 by the store data by such a store instruction has not occurred, and the operation result (the operation result of the first Add instruction in the associative memory 320 has not been generated as described above. ), Then 2
R, which is the first operand when the Add instruction is executed for the second time
Since the value of one register may be different from that at the time of the first Add instruction, it is indispensable to compare and compare the previous operation result and the operation result in the ALU 330 and to redo the second instruction (Subtract instruction).

【0095】第1命令から第4命令までの命令先読み、
および第1命令の処理の大部分は、上述のレジスタコン
フリクトがない場合の動作と同じである。すなわち、第
7図のタイミングチャート図のうち、第1命令から第4
命令に関するIFA,IB0〜3IFASV,第1命令に関
するIR/IC,OA/IR1/IC1/GRX1/G
RB1/IFA1,OD/IR2/IC2/GRX2/
GRB2/IFA2,GRのタイミングは、第5図のも
のと同一である。以下ではそれ以外の部分を説明する。
Instruction prefetch from the first instruction to the fourth instruction,
And most of the processing of the first instruction is the same as the operation when there is no register conflict as described above. That is, in the timing chart of FIG.
IFA for instructions, IB0 to 3IFASV, IR / IC for first instruction, OA / IR1 / IC1 / GRX1 / G
RB1 / IFA1, OD / IR2 / IC2 / GRX2 /
The timing of GRB2 / IFA2, GR is the same as that of FIG. The other parts will be described below.

【0096】まず、時刻TOより先読み命令アドレスレ
ジスタ100に格納されている先読み命令アドレスは、
信号線500を介して連想記憶装置の先読み命令アドレ
ス記憶部IFAP354に印加されている。また、時刻T2
になると第1命令の命令語、命令アドレスX2レジスタ
値、B2レジスタ値がそれぞれ信号線522,530,
540,542を介してそれぞれ連想記憶装置のIR記
憶部348,IC記憶部346,X2レジスタ値記憶部
350,B2レジスタ値記憶部352に印加される。
First, from the time TO, the prefetch instruction address stored in the prefetch instruction address register 100 is
It is applied to the prefetch instruction address storage unit IFAP 354 of the associative storage device via the signal line 500. Also, at time T2
Becomes, the instruction word of the first instruction, the instruction address X2 register value, and the B2 register value are signal lines 522, 530, respectively.
It is applied to the IR storage unit 348, the IC storage unit 346, the X2 register value storage unit 350, and the B2 register value storage unit 352 of the associative storage device via 540 and 542, respectively.

【0097】連想記憶装置は、上記信号線530,52
2,540,542,500のデータで探索をする。今
は、連想記憶装置に先行命令の第2オペランド(メモリ
・オペランド)がある場合を考えているので、時刻T3
においてDATALレジスタ158には第1命令、すなわち
先行命令の第2オペランドが格納され、FLGLレジスタ1
57には「0」が格納され、HITLレジスタ156に
は「1」が格納される。更に、この「1」は信号線54
6に印加される。
The associative memory device includes the signal lines 530 and 52.
Search with 2,540,542,500 data. Since it is now considered that the associative memory device has the second operand (memory operand) of the preceding instruction, the time T3
, The DATAL register 158 stores the first instruction, that is, the second operand of the preceding instruction, and the FLGL register 1
“0” is stored in 57 and “1” is stored in the HITL register 156. Furthermore, this "1" is the signal line 54
6 is applied.

【0098】時刻T3においてIR1レジスタ124に
は第1命令であるAdd命令の命令語が格納されてお
り、命令レジスタ112には第2命令であるSubtract命
令の命令語が格納されている。したがって、信号線58
2上には第1命令のR1フィールドの「5」が印加さ
れ、信号線542には第2命令のX2フィールド「5」
が印加される。第1命令と第2命令以外ではレジスタコ
ンフリクタがないと仮定しているので、信号線558,
526には「5」とは異なる値が印加されている。した
がって、一致比較回路160の出力は「1」になり、他
の一致比較回路162,164,166の出力は「0」
となる。故にOR回路168の出力信号線593とOR
回路182の出力信号線と、AND回路172の出力信
号線172は「1」になる。また、OR回路の出力信号
線591とAND回路174の出力信号線590,AN
D回路180の出力信号線は「0」になる。
At time T3, the IR1 register 124 stores the instruction word of the Add instruction which is the first instruction, and the instruction register 112 stores the instruction word of the Subtract instruction which is the second instruction. Therefore, the signal line 58
2 is applied with “5” in the R1 field of the first instruction, and the signal line 542 is supplied with “5” in the X2 field of the second instruction.
Is applied. Since it is assumed that there is no register conflict other than the first instruction and the second instruction, the signal line 558,
A value different from “5” is applied to 526. Therefore, the output of the coincidence comparison circuit 160 becomes "1", and the outputs of the other coincidence comparison circuits 162, 164, 166 are "0".
Becomes Therefore, it is ORed with the output signal line 593 of the OR circuit 168.
The output signal line of the circuit 182 and the output signal line 172 of the AND circuit 172 become “1”. The output signal line 591 of the OR circuit and the output signal lines 590, AN of the AND circuit 174 are also provided.
The output signal line of the D circuit 180 becomes "0".

【0099】ALU360には、信号線538を介して
第1命令の第2オペランドが入力され、信号線606を
介して第1命令のR1レジスタの内容すなわち第1オペ
ランドが入力され、信号線604を介して第1命令のオ
ペコードが入力される。ALU360はこれにより第1
命令の演算を行い、その演算結果を信号線600上に出
力する。
To the ALU 360, the second operand of the first instruction is input via the signal line 538, the contents of the R1 register of the first instruction, that is, the first operand is input via the signal line 606, and the signal line 604 is input. The operation code of the first instruction is input via the. The ALU 360 is now the first
The instruction is calculated and the calculation result is output to the signal line 600.

【0100】信号線592が「1」であり、信号線71
4が「0」であるので、第10図のようにセレクタ31
6は信号類600上の第1命令の演算結果を信号線54
0を介してアドレス加算器324に印加し、セレクタ3
18は信号線536上の第2命令のB2レジスタ値を信
号線542を介してアドレス加算器324に印加する。
信号線528からは第2命令の変位がアドレス加算器に
印加される。これにより、時刻T4において、第2命令
オペランドアドレスがオペランドアドレスレジスタ12
0に格納される。
The signal line 592 is "1" and the signal line 71
Since 4 is "0", the selector 31 as shown in FIG.
6 is a calculation result of the first command on the signals 600
It is applied to the address adder 324 via 0, and the selector 3
18 applies the B2 register value of the second instruction on the signal line 536 to the address adder 324 via the signal line 542.
The displacement of the second command is applied to the address adder from the signal line 528. As a result, at time T4, the second instruction operand address becomes the operand address register 12
Stored in 0.

【0101】また、IR1レジスタ124,IC1レジ
スタ130,GRXレジスタ132,GRB1レジスタ
134,IFA1レジスタ136には、レジスタコンフ
リクトのない時の動作と同一のデータが時刻T4で格納
される。
The IR1 register 124, the IC1 register 130, the GRX register 132, the GRB1 register 134, and the IFA1 register 136 store the same data as the operation when there is no register conflict at time T4.

【0102】以降の第2命令の動作は、レジスタコンフ
リクトがない場合と同様に進む。
The subsequent operation of the second instruction proceeds in the same manner as when there is no register conflict.

【0103】これにより、連想記憶装置に先行命令の第
2オペランドがある場合の説明を終わる。
This completes the description of the case where the associative memory device has the second operand of the preceding instruction.

【0104】次に、本実施例特有の効果を述べる。Next, the effects peculiar to this embodiment will be described.

【0105】本発明を使用しない場合、先行命令とレジ
スタコンフリクトのある後続命令を実行すると、上述の
動作説明の連想記憶装置に以前の実行の情報がない場合
と同じ動作となり、2周期の空き時間を生ずる。
In the case where the present invention is not used, when the preceding instruction and the subsequent instruction having a register conflict are executed, the same operation as the case where the associative memory device of the above-mentioned operation explanation does not have the information of the previous execution is performed, and the empty time of two cycles is obtained. Cause

【0106】本発明を使用すれば空き時間はまったくな
くなるので、レジスタコンフリクト発生時の命令処理性
能が向上する。
The use of the present invention eliminates any vacant time, which improves the instruction processing performance when a register conflict occurs.

【0107】上述の実施例は先行命令の演算結果とし
て、連想記憶内に格納しておいた先行命令の以前の演算
結果又は、連想記憶内に格納しておいた先行命令の第2
オペランド(メモリ・オペランド)に対して先行命令の
第1オペランドを用いて演算を施した結果を用いるもの
であった。しかし、本発明は、連想記憶内には先行命令
の以前の演算結果は格納せず、常に先行命令の第2オペ
ランドを格納しておき、先行命令の演算結果として常
に、その第2オペランドに先行命令の第1オペランドを
用いて演算を施した結果を用いる場合にも適用できる。
In the above-described embodiment, as the operation result of the preceding instruction, the previous operation result of the preceding instruction stored in the associative memory or the second operation of the preceding instruction stored in the associative memory is used.
The result obtained by performing the operation on the operand (memory operand) using the first operand of the preceding instruction is used. However, in the present invention, the previous operation result of the preceding instruction is not stored in the associative memory, but the second operand of the preceding instruction is always stored, and the operation result of the preceding instruction always precedes the second operand. It can also be applied to the case where the result obtained by performing the operation using the first operand of the instruction is used.

【0108】この場合の実施例を図11、図12に示
す。
An embodiment in this case is shown in FIGS.

【0109】この図の連想記憶には、連想記憶に情報が
ない時に図3の信号線556に代って信号線554を介
して先行命令の第2オペランドを記憶し、フラグ記憶部
は「0」とする。このようにすると、常に連想記憶には
先行命令の第2オペランドが格納される。したがって、
連想記憶に第2オペランドが格納されている時には、上
述の実施例のように後続命令が空き時間なく実行でき
る。
In the associative memory of this figure, when there is no information in the associative memory, the second operand of the preceding instruction is stored via the signal line 554 instead of the signal line 556 of FIG. ". By doing so, the second operand of the preceding instruction is always stored in the associative memory. Therefore,
When the second operand is stored in the associative memory, the subsequent instruction can be executed without any free time as in the above-mentioned embodiment.

【0110】また、図2、図3および図11,図12の
2つの実施例では、ストア命令が実行されるとストア・
データを用いて連想記憶内の情報を書換えている。しか
し、本発明はストア命令が実行された時、そのストア・
アドレスとオペランド・アドレスが一致するワードを無
効化する場合にも適用できる。
Further, in the two embodiments shown in FIGS. 2, 3 and 11 and 12, when the store instruction is executed, the store
The information in the associative memory is rewritten using the data. However, when the store instruction is executed, the present invention
It can also be applied to invalidate a word whose address and operand address match.

【0111】この場合には、第4図の連想記憶320
を、信号線712に「1」が印加された時に、信号線7
08上のストア・アドレスとアドレス記憶部が等しいワ
ードを連想記憶から削除するように構成すればよい。こ
の場合にも、連想記憶に情報が格納されている時には、
上述の実施例のように後続命令は空き時間なく実行でき
る。
In this case, the associative memory 320 shown in FIG.
When “1” is applied to the signal line 712,
A word having the same address as the store address on 08 may be deleted from the associative memory. Also in this case, when the information is stored in the associative memory,
Subsequent instructions can be executed without any free time as in the above embodiment.

【0112】更に、連想キーとして、今まで述べたすべ
てを使うこともできるし、任意の組合せを使うこともで
きる。その際、キー構成要素の一部のビット位置を使う
こともできる。
Further, as the associative key, all of the above-mentioned can be used, or an arbitrary combination can be used. It is also possible to use some bit positions of the key component.

【0113】[0113]

【発明の効果】本発明を使用しない場合、レジスタコン
フリクトを起こす先行命令が開始されてから、後続命令
が開始されるまでに、先行命令のアドレス計算時間、オ
ペランド読出し時間、演算時間がかかる。
If the present invention is not used, the address calculation time of the preceding instruction, the operand read time, and the operation time are required from the start of the preceding instruction causing the register conflict to the start of the succeeding instruction.

【0114】しかし、本発明を用いることにより、連想
キーを予測装置に入力してから予測値が出力するまでの
時間しかかからない。後者の時間は、連想キーに何を用
いるかによって異なるが、先行命令の命令アドレスを連
想キーに用いる最悪の場合でも、その時間は本発明を使
用しない場合より十分短い。
However, by using the present invention, it takes only the time from the input of the associative key to the prediction device to the output of the prediction value. The latter time depends on what is used for the associative key, but in the worst case where the instruction address of the preceding instruction is used for the associative key, the time is sufficiently shorter than that without the present invention.

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

【図1】(A)図は命令形式図、(B)図はロード命令
の例を示す図、(C)図はレジスタコンフリクトを起こ
す二つの命令の例を示す図。
1A is an instruction format diagram, FIG. 1B is an example of a load instruction, and FIG. 1C is an example of two instructions that cause a register conflict.

【図2】第1実施例の全体構成の一部を示す図。FIG. 2 is a diagram showing a part of the overall configuration of the first embodiment.

【図3】第1実施例の残りの部分を示す図。FIG. 3 is a diagram showing the remaining portion of the first embodiment.

【図4】第1の実施例で使用する連想記憶装置の構成
図。
FIG. 4 is a configuration diagram of an associative storage device used in the first embodiment.

【図5】第1の実施例の動作のタイミングチャート。FIG. 5 is a timing chart of the operation of the first embodiment.

【図6】第1の実施例の他のタイミングチャート。FIG. 6 is another timing chart of the first embodiment.

【図7】第1の実施例のさらに他のタイミングチャー
ト。
FIG. 7 is another timing chart of the first embodiment.

【図8】第1の実施例のさらに他のタイミングチャー
ト。
FIG. 8 is still another timing chart of the first embodiment.

【図9】第1の実施例のレジスタコンフリクト検出装置
の構成図。
FIG. 9 is a configuration diagram of a register conflict detection device according to the first embodiment.

【図10】第1の実施例のセレクタの動作図。FIG. 10 is an operation diagram of the selector according to the first embodiment.

【図11】第2実施例の全体構成の一部を示す図。FIG. 11 is a diagram showing a part of the overall configuration of the second embodiment.

【図12】第2実施例の残りの部分を示す図である。FIG. 12 is a diagram showing the remaining portion of the second embodiment.

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

100…先読み命令アドレスレジスタ、304…命令記
憶装置、104,106,108,110…命令バッフ
ァ、112…命令レジスタ、114…命令カウンタ、3
24…アドレス加算器、120…オペランド・アドレス
レジスタ、326…オペランド記憶装置、126…オペ
ランドデータレジスタ、330…ALU、118…レジ
スタファイル、320…連想記憶、322…レジスタコ
ンフリクト検出装置。
100 ... Prefetch instruction address register, 304 ... Instruction storage device, 104, 106, 108, 110 ... Instruction buffer, 112 ... Instruction register, 114 ... Instruction counter, 3
24 ... Address adder, 120 ... Operand address register, 326 ... Operand storage device, 126 ... Operand data register, 330 ... ALU, 118 ... Register file, 320 ... Associative storage, 322 ... Register conflict detection device.

フロントページの続き (72)発明者 釜田 栄樹 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 武内 茂雄 東京都小平市上水本町1479番地 日立超エ ル・エス・アイ・エンジニアリング株式会 社内Front page continuation (72) Inventor Eiki Kamata 1-280 Higashi Koikekubo, Kokubunji, Tokyo Inside Central Research Laboratory, Hitachi, Ltd. (72) Inventor Shigeo Takeuchi 1479, Kamisuihonmachi, Kodaira-shi, Tokyo Hitachi Ultra Els In-house Engineering Co., Ltd.

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】先行命例によってレジスタに書込まれる演
算結果を用いて後続命令が実行される際に、該演算結果
が確定するまで、該後続命令の処理であって該演算結果
を用いる処理を停止させるデータ処理装置において、 該先行命令を先読みする際の先読みアドレス等の、その
先行命令に関連する連想キーとに対応させて該先行命令
のメモリ・オペランド・アドレスを記憶する手段と、 該データ処理装置でストア命令が実行された時に、該ス
トア命令のストア・アドレスと一致する該メモリ・オペ
ランド・アドレスが該記憶手段にあるかを探索し、ある
時には、それに対応する該メモリ・オペランドを該スト
ア命令のストア・データで書換える連想書込み手段と、 該先行命令が実行された時にその時の該連想キーに基づ
いて該記憶手段を探索し、該連想キーが記憶されている
時にはそれに対応する該メモリ・オペランドを出力する
手段とを有するデータ処理装置。
1. When a subsequent instruction is executed by using the operation result written in a register according to the preceding order, the subsequent instruction is processed until the operation result is determined, and the operation result is used. In the data processing device for stopping the preceding instruction, means for storing the memory operand address of the preceding instruction in association with the associative key associated with the preceding instruction, such as the prefetch address when prefetching the preceding instruction, When a store instruction is executed by the data processing device, it is searched whether the memory operand address matching the store address of the store instruction is present in the storage means, and at some time, the corresponding memory operand address is searched. Associative writing means for rewriting with store data of the store instruction, and searching the storage means based on the associative key at the time when the preceding instruction is executed. And, a data processing device and means for outputting the memory operand corresponding thereto when said associative keys is stored.
JP6071819A 1994-04-11 1994-04-11 Data processing device Expired - Lifetime JP2685713B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6071819A JP2685713B2 (en) 1994-04-11 1994-04-11 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6071819A JP2685713B2 (en) 1994-04-11 1994-04-11 Data processing device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP9550485A Division JPH0760384B2 (en) 1985-05-07 1985-05-07 Instruction execution method and data processing device

Publications (2)

Publication Number Publication Date
JPH076033A true JPH076033A (en) 1995-01-10
JP2685713B2 JP2685713B2 (en) 1997-12-03

Family

ID=13471553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6071819A Expired - Lifetime JP2685713B2 (en) 1994-04-11 1994-04-11 Data processing device

Country Status (1)

Country Link
JP (1) JP2685713B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001504957A (en) * 1996-09-26 2001-04-10 トランスメタ・コーポレーション Memory data aliasing method and apparatus in advanced processor
US8812823B2 (en) 2006-03-07 2014-08-19 Intel Corporation Memory disambiguation techniques using counter ratio to selectively disable load/store conflict prediction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60129839A (en) * 1983-12-19 1985-07-11 Hitachi Ltd Information processor
JPS6284340A (en) * 1985-05-07 1987-04-17 Hitachi Ltd Data processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60129839A (en) * 1983-12-19 1985-07-11 Hitachi Ltd Information processor
JPS6284340A (en) * 1985-05-07 1987-04-17 Hitachi Ltd Data processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001504957A (en) * 1996-09-26 2001-04-10 トランスメタ・コーポレーション Memory data aliasing method and apparatus in advanced processor
US8812823B2 (en) 2006-03-07 2014-08-19 Intel Corporation Memory disambiguation techniques using counter ratio to selectively disable load/store conflict prediction

Also Published As

Publication number Publication date
JP2685713B2 (en) 1997-12-03

Similar Documents

Publication Publication Date Title
JP2992223B2 (en) Computer system, instruction bit length compression method, instruction generation method, and computer system operation method
JP2744890B2 (en) Branch prediction data processing apparatus and operation method
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
KR100335745B1 (en) High performance speculative misaligned load operations
EP0491693B1 (en) Improved cpu pipeline having register file bypass on update/access address compare
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
US4992932A (en) Data processing device with data buffer control
EP0094535B1 (en) Pipe-line data processing system
US11385894B2 (en) Processor circuit and data processing method
US6016541A (en) Instruction controlling system and method thereof
JPH0760384B2 (en) Instruction execution method and data processing device
JPH076033A (en) Data processor
JPH0552534B2 (en)
JP2667851B2 (en) Information processing device
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
JPS5991551A (en) Instruction prefetching device forecasting address to be branched
US4935849A (en) Chaining and hazard apparatus and method
US5396640A (en) Boosting method and apparatus in a parallel computer
JPH07191911A (en) Address converter and microprocessor computation method
JP2901247B2 (en) Discharge control method
US20040006686A1 (en) Processor and instruction control method
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JP2629479B2 (en) Information processing device
US6260112B1 (en) Register memory linking
JPH0385636A (en) Instruction advance control device

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term