JPS6284340A - Data processor - Google Patents
Data processorInfo
- Publication number
- JPS6284340A JPS6284340A JP9550485A JP9550485A JPS6284340A JP S6284340 A JPS6284340 A JP S6284340A JP 9550485 A JP9550485 A JP 9550485A JP 9550485 A JP9550485 A JP 9550485A JP S6284340 A JPS6284340 A JP S6284340A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- register
- operation result
- memory 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
Links
Landscapes
- Advance Control (AREA)
Abstract
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は情報処理装置に係り、特にパイプライン制御の
情報処理装置の高速化に関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Application of the Invention] The present invention relates to an information processing device, and particularly to speeding up an information processing device using pipeline control.
パイプライン制御の情報処理装置では、命令の処理全体
を複数の部分処理に分割し、各部分処理ごとに独立の処
理装置を設けている。まず第1命令が第1の部分処理を
行う処理装置で処理される。In a pipeline-controlled information processing device, the entire instruction processing is divided into a plurality of partial processes, and an independent processing device is provided for each partial process. First, a first instruction is processed by a processing device that performs a first partial process.
その処理が完了して第2の部分処理を行う処理装置に移
ると、第1の部分処理を行う処理装置では第2命令の処
理が開始される。第1命令が第3の部分処理を行う処理
装置に移ると、第2命令は第2の部分処理を行う処理装
置で処理され、第3命令は第1の部分処理装置で処理さ
れる。このように、第1命令の処理の全体が完了する前
に、第1命令の後続命令の実行が開始されるので、パイ
プライン制御の情報処理装置では高い命令処理性能を実
現することが出来る。When the processing is completed and the processing moves to the processing device that performs the second partial processing, the processing device that performs the first partial processing starts processing 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. In this way, execution of instructions subsequent to the first instruction is started before the entire processing of the first instruction is completed, so that high instruction processing performance can be achieved in an information processing device using pipeline control.
しかし、ある命令(以降では後続命令と呼ぶ)より前に
ある命令(以降では先行命令と呼ぶ)があるレジスタを
変更する命令であり、後続命令がそのレジスタを参照す
る命令である場合(レジスタコンフリクト状層と呼ぶ、
)には、命令処理は上記の様には進まない。すなわち、
先行命令が演算結果をレジスタに書込むまで、もしくは
先行命令が演算結果を生成するまでは、後続命令の処理
全体、少なくともレジスタを参照する部分処理を停止さ
せなければならない。このようなレジストコンフリクト
による後続命令の実行停止は、パイプライン制御の情報
処理装置においては、性能向上の大きな阻止要因となっ
ている。However, if an instruction (hereinafter referred to as the preceding instruction) that precedes a certain instruction (hereinafter referred to as the subsequent instruction) modifies a certain register, and the subsequent instruction is an instruction that references that register (register conflict occurs). called the stratum corneum,
), instruction processing does not proceed as described above. That is,
Until the preceding instruction writes the operation result to 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. Suspension of execution of subsequent instructions due to such a registration conflict is a major impediment to performance improvement in pipeline-controlled information processing devices.
レジスタ・コンフリクトによる実行停止を短縮化する例
としては、特開昭58−96346がある。An example of shortening execution stoppage due to register conflict is JP-A-58-96346.
本発明の目的は、レジスタコンフリクト時の後続命令の
実行停止をなくし、高い命令処理性能を有するパイプラ
イン制御の情報処理装置を提供することにある。An object of the present invention is to provide a pipeline-controlled information processing device that eliminates the suspension of execution of subsequent instructions when a register conflict occurs and has high instruction processing performance.
本発明では先行命令によってレジスタに書込まれる演算
結果を用いて後続命令が実行される際に、該演算結果が
確定するまで、該後続命令の処理であって該演算結果を
用いる処理を停止させるデータ処理装置において、該先
行命令の命令アドレス又は−、該先行命令より前の命令
の命令アドレス、該先行命令を先読みする際の先読みア
ドレス、該先行命令より前の命令を先読みする際の先読
みアドレスのすべて又はおのおのの任意のビット位置デ
ータの組合せと、該先行命令のメモリ・オペランド・ア
ドレス決定情報とからなる連想キーとに対応させて該先
行命令のメモリ・オペランド・アドレスと演算結果と演
算結果であることを示す情報を記憶する手段と、該デー
タ処理装置でストア命令が実行された時に、該ストア命
令のストア・アドレスと一致する該メモリ・オペランド
・アドレスが該記憶手段にあるかを探索し、ある時には
、それに対応する該演算結果を該ストア命令のストア・
データで書換え、該演算結果であることを示す情報をメ
モリ・オペランドであることを示す情報に書換える連想
書込み手段と、該先行命令が実行された時にその時の該
連想キーに基づいて該記憶手段を探索し、該連想キーが
記憶されている時↓こはそれに対応する該演算結果又は
該メモリ・オペランドを出力する手段と、該出力手段よ
り該演算結果が出力された時には、該出力手段よりの該
演算結果を用いて停止されている該後続命令の処理を開
始し、該出力手段よりの該演算結果が該先行命令の演算
で求まる演算結果と等しい場合には、開始した該後続命
令の処理を継続し1等しくない場合には、該後続命令の
処理を無効にし、該先行命令の演算で求まる演算結果を
用いて該後続命令の処理を再実行する手段と、該出力手
段より該メモリ・オペランドが出力された時には、該メ
モリ・オペランドに対して該先行命令の指定する演算を
施し、その演算結果を用いて停止されている該後続命令
の処理を開始する手段を有することを特徴とするデータ
処理装置を提案する。In the present invention, when a subsequent instruction is executed using an operation result written to a register by a preceding instruction, the processing of the subsequent instruction that uses the operation result is stopped until the operation result is finalized. In a data processing device, the instruction address of the preceding instruction or -, the instruction address of the instruction before the preceding instruction, the pre-read address when pre-fetching the preceding instruction, the pre-reading address when pre-reading the instruction before the preceding instruction The memory operand address of the preceding instruction, the operation result, and the operation result in correspondence with an associative key consisting of all or each arbitrary bit position data and the memory operand address determination information of the preceding instruction. means for storing information indicating that the store instruction is executed by the data processing device, and searching for whether or not the memory operand address that matches the store address of the store instruction exists in the storage means when the store instruction is executed by the data processing device. In some cases, the corresponding operation result is stored in the store instruction.
associative writing means for rewriting the information indicating that the operation result is a memory operand by rewriting the information with data; When the associative key is stored, a means for outputting the corresponding operation result or the memory operand, and when the output means outputs the operation result, the output means outputs the operation result. If the operation result from the output means is equal to the operation result obtained by the operation of the preceding instruction, the processing of the subsequent instruction that has been started is started using the operation result of the preceding instruction. means for continuing the processing and, if not equal to 1, invalidating the processing of the subsequent instruction and re-executing the processing of the subsequent instruction using the operation result obtained by the operation of the preceding instruction; - When an operand is output, the method is characterized by having means for performing an operation specified by the preceding instruction on the memory operand and using the result of the operation to start processing of the stopped subsequent instruction. We propose a data processing device that
これにより、レジスタコンフリクト発生時に停止される
後続命令の処理を、連想記憶の出力する情報を用いて開
始できるので、上記目的を達成できる。Thereby, the processing of a subsequent instruction that is stopped when a register conflict occurs can be started using the information output from the associative memory, so that the above object can be achieved.
以下、本発明の一実施例を図に従って詳細に説明する。 Hereinafter, one embodiment of the present invention will be described in detail with reference to the drawings.
まず、第1図Aを使って本実施例で用いる命令形式を説
明する。この命令形式では、各命令語は4バイト長から
構成される。第1バイトはオペコード(Op)を表わす
、第2バイト及び第3バイトの上4ビットは3つのレジ
スタ指示フィールド(R1,X2.B2)を表わす、第
3パイトノ下4ビツト及び第4バイトは変位(B2)を
表わす。First, the instruction format used in this embodiment will be explained using FIG. 1A. In this instruction format, each instruction word has a length of 4 bytes. The first byte represents the operation code (Op), the upper 4 bits of the 2nd and 3rd bytes represent the three register instruction fields (R1, X2.B2), the lower 4 bits of the 3rd byte and the 4th byte represent the displacement (B2).
この命令形式では各レジスタ指示フィールドはそれぞれ
4ビツトであり、それぞれ15個のレジスタの1つを指
示する。In this instruction format, each register designation field is 4 bits each and each designates one of the 15 registers.
命令が5tore命令以外の場合には、この意味は、X
2フイールドの指示する汎用レジスタの内容とB2フィ
ールドの指示する汎用レジスタの内容と変位D2の和を
オペランドアドレスとし、このアドレスの指す主記憶上
のロケーションの内容(第2オペランドと呼ぶ)と、R
1フィールドの指示する汎用レジスタの内容(第1オペ
ランドと呼ぶ)とに対して、オペコードOpで示される
演算を施し、R1フィールドの指示する汎用レジスタに
格納することである。If the instruction is other than the 5tore instruction, this meaning is
The sum of the contents of the general-purpose register pointed to by field B2, the contents of the general-purpose register pointed to by field B2, and displacement D2 is taken as an operand address, and the contents of the location in the main memory pointed to by this address (referred to as the second operand), and R
The operation is to perform the operation indicated by the operation code Op on the contents of the general-purpose register indicated by field 1 (referred to as the first operand) and store it in the general-purpose register indicated by field R1.
命令がストア(Store)命令の場合には、上述とは
逆に、第1オペランドである汎用レジスタの内容を、第
2オペランドである主記憶上のロケーションに格納する
。When the instruction is a store 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.
なお、この命令形式はIBMシステム(Systsm)
/370の命令形式から引用したものであり、更に詳し
くは″IBMIBMシステムstem) / 370動
作処理(370Principles of 0per
ation)”に示されている。Note that this instruction format is based on the IBM system (Systsm).
/370 instruction format, and for more details, see "IBM System Stem" /370 Operation Processing (370 Principles of 0per
ation)”.
第1B図は、第1A図で表わされた命令をニューモニツ
クで表わしたものである。FIG. 1B is a mnemonic representation of the command shown in FIG. 1A.
第2図は、レジスタコンフリクトを起している命令列の
例である。先行命令(■)はAdd命令であり、レジス
タ1の内容と、レジスタ2の内容と変位100を加えて
得られるアドレスの内容をレジスタ5の内容と加算して
レジスタ5に格納することを意味する。後続命令(■)
はサブストラクト(Substract )命令であり
、レジスタ1の内容と、レジスタ5の内容と変位150
を加えて得られるアドレスの内容をレジスタ8の内容か
ら引いてレジ〜スタ8に格納することを意味する。FIG. 2 is an example of an instruction sequence that causes a register conflict. The preceding instruction (■) is an Add instruction, which means that the contents of the address obtained by adding the contents of register 1, contents of register 2, and displacement 100 are added to the contents of register 5, and the result is stored in register 5. . Subsequent instruction (■)
is a Substruct instruction, and the contents of register 1, the contents of register 5, and the displacement 150
This means that the contents of the address obtained by adding the above are subtracted from the contents of register 8 and stored in register 8.
先行命令は演算結果をレジスタ5に書込み、後続命令は
レジスタ5の内容を用いているので、レジスタコンフリ
クトが起きている。Since the preceding instruction writes the operation result to register 5, and the subsequent instruction uses the contents of register 5, a register conflict occurs.
次に第3A図、第3B図を使って実施例の全体構成の概
要を説明する。第3A図と第3B図とを。Next, an overview of the overall configuration of the embodiment will be explained using FIGS. 3A and 3B. Figures 3A and 3B.
結合すると、実施例の全体構成図となる。この実施例は
、先行命令の演算結果として、連想記憶に蓄えた先行命
令の以前の実行での演算結果又は連想記憶に蓄えた先行
命令の第2オペランドに対して演算を施した結果を用い
るものである。When combined, it becomes an overall configuration diagram of the embodiment. In this embodiment, as the operation result of the preceding instruction, the operation result of the previous execution of the preceding instruction stored in the associative memory or the result of performing an operation on the second operand of the preceding instruction stored in the associative memory is used. It is.
まず、304は命令記憶装置であり、326はオペラン
ド記憶装置である。命令記憶装置304とオペランド記
憶装置はバイト単位に24ビツトのアドレスでアドレス
付けされている。First, 304 is an instruction storage device, and 326 is an operand storage device. Instruction storage 304 and operand storage are addressed with 24-bit addresses in bytes.
100は先読み命令アドレスレジスタである。100 is a prefetch instruction address register.
命令の先読みは、常に命令記憶装置上の4命令語境界か
ら始まる4命令語単位に行われる。したがって先読み命
令アドレスレジスタ(IFA)100には24ビツトの
アドレスのうちの上位20ビツト(ビット0−19)が
格納される。Prefetching of instructions 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 (bits 0-19) of the 24-bit address.
102は先読み命令アドレスレジスタの遅延レジスタで
ある。102 is a delay register of the prefetch instruction address register.
104.106,108,110はそれぞれ命令バッフ
ァIBO,よりI、IB2.IB3であり、命令記憶装
置304から先読みされた4命令語がこの順に格納され
る。104, 106, 108, 110 are instruction buffers IBO, I, IB2. IB3, and the four instruction words read ahead from the instruction storage device 304 are stored in this order.
112は命令レジスタであり、114は命令カウンタで
ある。1命令語は命令記憶装置上の命令語境界からの4
バイトに必ず置かれる。したがって、命令カウンタには
24ビツトのアドレスのうちの上位22ビツト(ビット
0−21)が格納される6命令カウンタ114の値は、
その時の命令レジスタ112中の命令語の命令アドレス
となっている。112 is an instruction register, and 114 is an instruction counter. One instruction word consists of 4 points from the instruction word boundary on the instruction storage device.
Always placed in the byte. Therefore, the value of the 6-instruction counter 114, in which the upper 22 bits (bits 0-21) of the 24-bit address are stored, is:
This is the instruction address of the instruction word in the instruction register 112 at that time.
118は16個のレジスタよりなるレジスタファイルで
ある。118 is a register file consisting of 16 registers.
324はアドレス加算器であり、命令語のX2フイール
ドの指示するレジスタの内容すなわち、X2レジスタ値
とB2フィールドの指示するレジスタの内容すなわち、
B2レジスタ値と変位D2を加算する。加算結果はオペ
ランドアドレスレジスタ120に格納される。324 is an address adder, and the content of the register indicated by the X2 field of the instruction word, that is, the X2 register value, and the content of the register indicated by the B2 field, that is,
Add B2 register value and displacement D2. The addition result is stored in operand address register 120.
122はオペランドデータレジスタであり、330はA
LUである。122 is an operand data register, and 330 is an A
It is LU.
124.130,132,134,136はそれぞれ命
令レジスタ122の遅延レジスタ、命令カウンタ114
の遅延レジスタ、X2レジスタ値の遅延レジスタ、B2
レジスタ値の遅延レジスタ値および先読み命令アドレス
の遅延レジスタであり、オペランドアドレスレジスタ1
20にオペランドアドレスが格納される時に、その命令
の命令レジスタ値、命令カウンタ値、X2レジスタ値、
B2レジスタ値およびその命令の先読み時の先読み命令
アドレスが格納される。124. 130, 132, 134, and 136 are the delay register of the instruction register 122 and the instruction counter 114, respectively.
delay register of X2 register value delay register of B2
Delay register value of register value and delay register of prefetch instruction address, operand address register 1
When the operand address is stored in 20, the instruction register value, instruction counter value, X2 register value,
The B2 register value and the prefetch instruction address at the time of prefetching the instruction are stored.
126.138,140,142,144はそれぞれレ
ジスタ124,130,132,134゜136の遅延
レジスタであり、オペランドデータレジスタ122にオ
ペランドデータが格納される時に、その命令の命令レジ
スタ値、命令カウンタ値、X2レジスタ値、B2レジス
タ値およびその命令の先読み時の先読み命令アドレスが
それぞれに格納される。126. 138, 140, 142, 144 are delay registers of registers 124, 130, 132, 134, 136, respectively, and when operand data is stored in the operand data register 122, the instruction register value and instruction counter value of the instruction are , the X2 register value, the B2 register value, and the prefetch instruction address at the time of prefetching the instruction.
320は連想記憶装置であり、322はレジスタコンフ
リクト検出装置である。320 is a content addressable memory device, and 322 is a register conflict detection device.
次に、第3A図、第3B図の全体構成図と第5図のタイ
ミングチャート図を使って、レジスタコンフリクトがな
い場合の全体の動作を説明する。Next, the overall operation in the case where there is no register conflict will be described using the overall configuration diagrams in FIGS. 3A and 3B and the timing chart diagram in FIG. 5.
第5図の如く時刻TOより先読みアドレスレジスタには
第1命令から第4命令を先読みする際の先読みアドレス
が格納されているとする。また命令レジスタ112と命
令カウンタ114には時刻T2以前において第1命令の
前の命令、すなわち第O命令の命令語と命令アドレスが
格納されているとする。先読みアドレスレジスタ100
のアドレスは信号l1500を介して命令記憶袋fi!
304に印加され、そのアドレスから始まる4命令語が
信号線506に出力され、第1命令語から第4命令語ま
での4命令語は時刻T1に命令バッファ104.106
,108,110に格納される6ア下レス増加器302
は、先読みアドレスレジスタ100のアドレスを入力と
して、そのアドレスを4命令語分増加させたアドレスを
信号線502に出力する。セレクタ300の選択信号で
ある信号線586の信号は通常「右選択信号」であり(
「右選択信号」以外の値を取る場合は下記で説明される
時だけである)、この時、信号線502の信号がセレク
タ300を通って信号線50Bに出力されて、先読アド
レスレジスタ100に格納される。格納される時刻は時
刻TOの4周期後の時刻T4である。命令バッファ10
4,106゜108.110には次の4命令語が格納さ
れる時刻T5までこの4命令語が格納される。先読みア
ドレスレジスタ100は通常このように4命令語分ずつ
増加されるので、命令バッファ104゜106.108
,110には順々に後続の命令が4命令単位に先読みさ
れて格納されることとなる。As shown in FIG. 5, it is assumed that the prefetch address for prefetching the first to fourth instructions is stored in the prefetch address register from time TO. Further, it is assumed that the instruction register 112 and the instruction counter 114 store the instruction before the first instruction, that is, the instruction word and instruction address of the O-th instruction before time T2. Look-ahead address register 100
The address of the instruction memory bag fi! is transmitted via signal l1500.
304, and four instruction words starting from that address are output to the signal line 506, and the four instruction words from the first instruction word to the fourth instruction word are sent to the instruction buffers 104 and 106 at time T1.
, 108, 110 6 address incrementer 302
inputs the address of the look-ahead address register 100 and outputs an address incremented by four instruction words to the signal line 502. The signal on the signal line 586, which is the selection signal of the selector 300, is normally a "right selection signal" (
(The only time it takes a value other than the "right selection signal" is as explained below). At this time, the signal on the signal line 502 passes through the selector 300 and is output to the signal line 50B, is stored in The stored time is time T4, which is four cycles after time TO. instruction buffer 10
These four instruction words are stored at 4,106°108.110 until time T5 when the next four instruction words are stored. The preread address register 100 is normally increased by four instruction words in this way, so the instruction buffer 104゜106.108
, 110, subsequent instructions are read ahead in units of four instructions and stored in sequence.
時刻T2以前においては、命令カウンタ114には第O
命令の命令アドレスが格納されていた。Before time T2, the instruction counter 114 has the Oth
The instruction address of the instruction was stored.
命令カウンタ114の値は信号8530を介してアドレ
ス増加器310に印加されて、1命令語分増加されて、
第1命令の命令アドレスとなる。増加された値は信号線
520を介してセレクタ308に入力される。セレクタ
308の選択信号586は上述したように通常「右選択
信号」であり、この時、信号線520の値はセレクタ3
08を介して信号線518へ出力される。信号線518
の値は命令カウンタ114に格納される。また、その値
はセレクタ306に印加される。セレクタ306は、信
号線518の22ビツトアドレス値のうちの下2ビット
を見て、それが0ならば信号線508のデータが信号、
11516へ出力され、それが1ならば信号線510の
データが信号線516に出力される。又それが2ならば
信号、1l1512のデータが信号516へ出力され、
それが3ならば信号線514のデータが信号8516へ
出力される。こハにより、命令レジスタ前の時刻でセッ
トされた命令バッファの次の命令バッファの内容がセレ
クタ306で選択されて命令レジスタ112に格納され
る0時刻T2においては命令バッファIB○104から
第1命令語が命令レジスタ112に格納されて、同時に
命令カウンタ114には第1命令の命令アドレスが格納
される。The value of instruction counter 114 is applied to address incrementer 310 via signal 8530 and is incremented by one instruction word.
This is the instruction address of the first instruction. The increased value is input to selector 308 via signal line 520. The selection signal 586 of the selector 308 is normally the "right selection signal" as described above, and at this time, the value of the signal line 520 is the same as that of the selector 3.
08 to the signal line 518. Signal line 518
The value of is stored in the instruction counter 114. The value is also applied to selector 306. The selector 306 looks at the lower two bits of the 22-bit address value on the signal line 518, and if it is 0, the data on the signal line 508 is a signal.
If it is 1, the data on signal line 510 is output to signal line 516. If it is 2, the data of the signal 1l1512 is output to the signal 516,
If it is 3, the data on signal line 514 is output to signal 8516. As a result, at time 0 T2 when the contents of the instruction buffer next to the instruction buffer set at the time before the instruction register are selected by the selector 306 and stored in the instruction register 112, the first instruction is transferred from the instruction buffer IB○ 104. The instruction address of the first instruction is stored in the instruction register 112 and the instruction address of the first instruction is simultaneously stored in the instruction counter 114.
また、IFASV レジスタ102には、先読み命令ア
ドレスレジスタIFALOOの2周期遅れの時刻T2に
、先読み命令アドレスレジスタの値が格納される。Further, the value of the prefetch instruction address register is stored in the IFASV register 102 at time T2, which is two cycles behind the prefetch instruction address register IFALOO.
セレクタ312,314には信号線532を介して16
個のレジスタよりなるレジスタファイル118の値が印
加される。セレクタ312には更に信号線524を介し
て命令レジスタ112中の第1命令のX2フイールドの
4ビツトが印加される。セレクタ312はこれによりX
2フイールドの指示するレジスタの値を信号、1X53
4に出力する。セレクタ314には信号線526を介し
て命令レジスタ112中の第1命令の82フイールドの
4ビツトが印加される。セレクタ314はこれによりB
2フィールドの指示するレジスタの値を信号線536に
出力する。信号線592,590゜593.591には
通常「0」が印加されており。16 to the selectors 312 and 314 via the signal line 532.
The values of a register file 118 consisting of registers are applied. Furthermore, four bits of the X2 field of the first instruction in the instruction register 112 are applied to the selector 312 via a signal line 524. This causes the selector 312 to
Signal the value of the register indicated by the 2 field, 1X53
Output to 4. Four bits of 82 fields of the first instruction in the instruction register 112 are applied to the selector 314 via a signal line 526. This causes the selector 314 to
The value of the register indicated by field 2 is output to the signal line 536. Normally, "0" is applied to the signal lines 592, 590, 593, and 591.
([OJ以外の値が印加されるのは下記で説明する場合
だけである)、この時、第10図に示したセレクタ31
6,318の動作図に従って、信号線534の値はセレ
クタ316を介して信号線540に出力され、信号線5
36の値はセレクタ318を介して信号$542に出力
される。([Values other than OJ are applied only in the case explained below.) At this time, the selector 31 shown in FIG.
According to the operation diagram of No. 6,318, the value of signal line 534 is outputted to signal line 540 via selector 316,
The value of 36 is output via selector 318 to signal $542.
アドレス加算器にはこのようにして信号線540を介し
て第1命令のX2フイールドの指示するレジスタの内容
が入力され、信号線542を介しては第1命令のB2フ
ィールドの指示するレジスタの内容が入力される。更に
、信号線528を介して命令レジスタ112中の第1命
令の変位D2が入力される。アドレス加算器は上記3つ
の入力値を加算し、加算結果である第1命令のオペラン
ドアドレスを信号線548に出力し、それは時刻T3で
オペランドアドレスレジスタ0A120に格納される。In this way, the contents of the register indicated by the X2 field of the first instruction are input to the address adder via the signal line 540, and the contents of the register indicated by the B2 field of the first instruction are input via the signal line 542. is input. Furthermore, the displacement D2 of the first instruction in the instruction register 112 is input via the signal line 528. 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 0A120 at time T3.
また同時刻に、IRIレジスタ124には第1命令語が
信号線522を介して格納され、ICIレジスタ130
には第1命令アドレスが信号線530を介して格納され
、GRXIレジスタ132には第1命令のX2レジスタ
値が信号線540を介して格納され、GRBlには第1
命令の82レジスタ値が信号線542を介して格納され
、IPAIレジスタ136には第1命令を先読みした際
の先読み命令アドレスが格納される。At the same time, the first instruction word is stored in the IRI register 124 via the signal line 522, and the ICI register 130
The first instruction address is stored in the GRXI register 132 via the signal line 530, the X2 register value of the first instruction is stored in the GRXI register 132 via the signal line 540, and the first
The 82 register value of the instruction is stored via the signal line 542, and the IPAI register 136 stores the prefetch instruction address when the first instruction is prefetched.
オペランド記憶装置326には信号線550を介してオ
ペランドアドレスレジスタ120中の第1命令のオペラ
ンドアドレスが印加され、信号線552にはそのアドレ
スで示されるロケーションにある第1命令のオペランド
データが出力される。The operand address of the first instruction in the operand address register 120 is applied to the operand storage device 326 via a signal line 550, and the operand data of the first instruction at the location indicated by the address is outputted to the signal line 552. Ru.
時刻T4になると、この第1命令のオペランドデ−タは
オペランドデータレジスタ122に格納される。At time T4, the operand data of this first instruction is stored in the operand data register 122.
同時刻に、IR2レジスタ126には、信号線562を
介してIRIR1レジスタ第1命令語が格納され、IC
2レジスタ138には、信号線572を介してICIレ
ジスタ130から第1命令の命令アドレスが格納され、
GRX2R1レジスタ140信号線570を介してGR
XIR1レジスタ1321命令のx2レジスタ値が格納
され、GRB2R1レジスタ142信号線568を介し
てG RB ルラスタ134から第1命令の82レジス
タ値が格納され、I FA2レジスタ144には、信号
ll1A566を介してIFAIレジスタ136から第
1命令語を先読みした際の先読み命令アドレスが格納さ
れ、OA2レジスタ706には、信号線550を介して
OAレジラス120よりオペランド・アドレスが格納さ
れる。At the same time, the IRIR1 register first instruction word is stored in the IR2 register 126 via the signal line 562, and the IC
The instruction address of the first instruction is stored in the second register 138 from the ICI register 130 via the signal line 572,
GR via GRX2R1 register 140 signal line 570
The x2 register value of the XIR1 register 1321 instruction is stored, the 82 register value of the first instruction is stored from the GRB raster 134 via the GRB2R1 register 142 signal line 568, and the IFAI The prefetch instruction address when the first instruction word is prefetched is stored in the register 136, and the operand address is stored in the OA2 register 706 from the OA register 120 via the signal line 550.
ALU330には3つの入力信号線がある。信号線55
4からは、オペランドデータレジスタ122にある第1
命令のオペランドデータが入力される、信号線594か
らはIR2レジスタ126にある第1命令のオペコード
が入力される。セレクタ328には信号線532を介し
て16個のレジスタよりなるレジスタファイル118の
値が印加され、更に信号線558を介して第1命令のR
1フィールドが印加される。これにより、セレクタ32
8は、R1フィールドによって指示されるレジスタの値
、すなわちR1レジスタ値を信号線560に印加し、そ
れがALU330に入力される。ALUは、信号線56
0からの入力データを第1オペランドデータとし、信号
線554からの入力データを第2オペランドデータとし
て1両者に信号!594に示されるオペコードの演算を
施し、その演算結果を信号線556に出力する。ALU 330 has three input signal lines. signal line 55
4, the first
The operation code of the first instruction in the IR2 register 126 is input from a signal line 594 to which operand data of the instruction is input. The value of the register file 118 consisting of 16 registers is applied to the selector 328 via a signal line 532, and the value of the R of the first instruction is applied via a signal line 558.
1 field is applied. As a result, the selector 32
8 applies the value of the register indicated by the R1 field, ie, the R1 register value, to signal line 560, which is input to ALU 330. ALU is signal line 56
The input data from signal line 554 is used as the first operand data, and the input data from the signal line 554 is used as the second operand data. The operation code indicated by 594 is calculated, and the result of the calculation is output to the signal line 556.
レジスタファイル118には、信号線556を介して第
1命令の演算結果が印加され、信号線558を介してI
R2レジスタ126にある第1命令のR1フィールドが
印加される1時刻T5になると、上記第1命令の演算結
果はR1フィールドの指示するレジスタ、すなわちR1
レジスタに書込まれる。The calculation result of the first instruction is applied to the register file 118 via a signal line 556, and the I/O signal is applied via a signal line 558.
At time T5 when the R1 field of the first instruction in the R2 register 126 is applied, the operation result of the first instruction is transferred to the register indicated by the R1 field, that is, R1.
written to a register.
なお、命令がストア(Store)命令である時には、
その事実がストア(Store)命令検出器710によ
り検出され信号線712を介してオペランド記憶装置3
26に入力される。これにより、オペランド記憶装置は
信号線708を介して入力されるストア(Store)
命令のオペランド・アドレスに信号牌560を介して入
力されるストア(Store)命令のR1レジスタの内
容が時刻T5になると書込まれる。なお、この時には上
述したR1レジスタへの書込みは行なわれない。Note that when the instruction is a store instruction,
This fact is detected by a store command detector 710 and sent to the operand storage device 3 via a signal line 712.
26. As a result, the operand storage device stores data input via the signal line 708.
The contents of the R1 register of the store instruction input via the signal tile 560 to the operand address of the instruction are written at time T5. Note that writing to the R1 register described above is not performed at this time.
以上により第1命令の処理は終了する。With the above steps, the processing of the first instruction is completed.
第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. Thereafter, the processing proceeds in the same way as the first instruction.
第3命令以降の命令の処理は、前の命令処理の1周期遅
れの時刻で第1.第2命令のように進む。The processing of the third and subsequent commands is performed at a time one cycle behind the processing of the previous command. Proceed as per the second command.
ただし、命令の先読みは4命令語単位であるので、先読
み命令アドレスレジスタZoo、命令バッファ104.
106,108,110.IFASVレジスタ102へ
の格納はそれぞれ4周期ごとに1度ずつ行なわれる。However, since instruction prefetching is performed in units of four instruction words, prefetching instruction address register Zoo, instruction buffer 104.
106, 108, 110. Storing to the IFASV register 102 is performed once every four cycles.
以上のように、レジスタコンフリクトがない場合には1
周期ごとに命令処理が進んでいく。As mentioned above, if there is no register conflict, 1
Instruction processing progresses in each cycle.
次に、レジスタコンフリクトのある場合の全体の動作説
明に移るが、その前に第4図を用いて、連想記憶装置3
20の説明をする。Next, we will move on to an explanation of the overall operation when there is a register conflict, but before that, we will explain the content addressable memory device 3 using FIG.
Explain 20.
実施例における連想記憶装置の記憶容量は10ワードで
ある。The storage capacity of the associative memory device in this embodiment is 10 words.
各ワードは、IC記憶部ICP346とIR記憶部IR
P348とX2レジスタ値記憶部GRXP350とB2
レジスタ値記憶部GRBP 352と先読み命令アドレ
ス記憶部IFAP 354とデータ記憶部DATAP
356とアドレス記憶部ADDRP 345とフラグ記
憶部FLGP 347からなる。Each word is divided into an IC storage section ICP346 and an IR storage section IR.
P348 and X2 register value storage unit GRXP350 and B2
Register value storage unit GRBP 352, prefetch instruction address storage unit IFAP 354, and data storage unit DATAP
356, an address storage section ADDRP 345, and a flag storage section FLGP 347.
信号線530,522,540.542,500にデー
タを印加すると、連想記憶装置は探索をする。信号線5
30,522,540,542゜500上のデータとI
C記憶部ICP346゜IR記憶部IRP348.X2
レジスタ値記憶部GRXP350.B2L/ジスタ値記
憶部GRBP352 。Applying data to signal lines 530, 522, 540, 542, 500 causes the content addressable memory to search. signal line 5
30,522,540,542゜500 data and I
C storage unit ICP346° IR storage unit IRP348. X2
Register value storage unit GRXP350. B2L/Jister value storage unit GRBP352.
先読み命令アドレス記憶部IFAP354のデータがそ
れぞれ全部一致するワードがある時には、一致検出器3
44は「1」を出力してHITLレジスタ156を「1
」にし、かつそのワードのデータ記憶部DATAP 3
56のデータをDATAL レジスタ15gに格納し、
フラグ記憶部FLGP347のデータをFLGLレジス
タ157に格納する。一致するワードがない時は、一致
検出器344は「O」を出力しテ)IITLL/ジXタ
156をrOJ k−する。When there is a word whose data in the prefetch instruction address storage unit IFAP354 all match, the match detector 3
44 outputs "1" and sets the HITL register 156 to "1".
” and the data storage unit DATAP 3 of that word.
56 data is stored in the DATAL register 15g,
The data in the flag storage unit FLGP 347 is stored in the FLGL register 157. When there is no matching word, match detector 344 outputs an "O" and causes IITLL/Jitter 156 to rOJ k-.
一方、信−jt、m584にrl」又は信号Al5s6
に「0」が印加された時には、連想記憶装置は、信号線
580,564,578,576.574゜556.7
08上のデータをそれぞれIC記憶部ICP346.I
R記憶部IRP348.X2L/ジスタ値記憶部GRX
P350.B2レジスタ値記憶部GRBP352 、先
読み命令アドレス記憶部IFAP354、データ記憶部
DATAP 356アドレス記憶部ADDRP 345
のデータとし、フラグ記憶部FLGP347をrl」と
するワードを登録する。その際、IC記憶部ICP34
6.IR記憶部IRP34g。Meanwhile, signal-jt, m584 to rl' or signal Al5s6
When ``0'' is applied to
08 respectively to the IC storage unit ICP346. I
R storage unit IRP348. X2L/Jister value storage unit GRX
P350. B2 register value storage unit GRBP352, prefetch instruction address storage unit IFAP354, data storage unit DATAP 356 address storage unit ADDRP 345
data, and register the word "rl" in the flag storage unit FLGP347. At that time, the IC storage unit ICP34
6. IR storage unit IRP34g.
X2レジスタ値記憶部GRXP350.B2レジスタ値
記憶部GRBP352 、先読み命令アドレス記憶部I
FAP 354のデータが全部一致するワードがすでに
記憶されている時には、そのワードの上に重ね書きされ
る。一致するワードがまだ記憶されていない時には、新
しくワードが割り当てられて登録される。X2 register value storage unit GRXP350. B2 register value storage unit GRBP352, prefetch instruction address storage unit I
If a word that matches all of the FAP 354 data is already stored, it is overwritten on top of that word. If a matching word is not yet stored, a new word is assigned and registered.
また、信号線712に「1」が印加された時、すなわち
、ストア(Store)命令が実行された時には、連想
記憶装置は信号線708を介して送られるストア(St
ore)命令のオペランド・アドレスとアドレス記憶部
ADDRPが一致するワードが存在するか検出し、存在
する場合にはそのようなすべてのワードのデータ記憶部
DATAPを信号l&1560を介して転送されるスト
ア(Store)命令のR1レジスタの内容で書換え、
かつ、そのワードのフラグ記憶部FLGPに「0」を記
憶する。Further, when “1” is applied to the signal line 712, that is, when a store instruction is executed, the associative memory device receives the store instruction sent via the signal line 708.
ore) detects whether a word exists whose operand address of the instruction and the address store ADDRP match, and if so, stores the data store DATAP of all such words to the store ( Rewrite with the contents of the R1 register of the Store) instruction,
In addition, "0" is stored in the flag storage unit FLGP of that word.
なお、フラグ記憶部FLGPの「1」は、対応するデー
タ記憶部DATAPに以前に命令が実行された時の演算
結果が記憶されていることを意味し、フラグ記憶部FL
GPの「0」は、対応するデータ記憶部DATAPに第
2オペランド・データが記憶されていることを意味する
。Note that "1" in the flag storage unit FLGP means that the calculation result when the instruction was previously executed is stored in the corresponding data storage unit DATAP.
“0” in GP means that the second operand data is stored in the corresponding data storage unit DATAP.
以上で連想記憶装置の説明を終わる。This concludes the explanation of the associative memory device.
次に、レジスタコンフリクトのある場合の動作説明を行
なう。レジスタコンフリクトのある命令としては第2図
の2命令を考え、Add命令が第1命令とし、サブスラ
スト(Substract)命令が第2命令とする。第
3命令以降はこれらの命令との間でレジスタコンフリク
トを起さない任意の命令とする。Next, the operation when there is a register conflict will be explained. The two instructions in FIG. 2 are considered as instructions with a register conflict, and the Add instruction is assumed to be the first instruction, and the Subthrust instruction is assumed to be the second instruction. The third and subsequent instructions are any instructions that do not cause a register conflict with these instructions.
本発明では、レジスタコンフリクトを起している先行命
令(以下で考える例では第1命令)の演算結果を、連想
記憶装置記憶した情報を用して求めている。したがって
先行命令を実行する際に、その連想記憶装置に情報があ
るか否かで予測が出来るか出来ないかが決まる。In the present invention, the operation result of the preceding instruction (in the example considered below, the first instruction) causing the register conflict is obtained using information stored in the content addressable memory device. Therefore, when executing a preceding instruction, whether prediction is possible or not is determined by whether or not there is information in the associative memory.
まず、連想記憶装置に以前の実行時の情報がない場合を
説明する。第6図をタイミングチャート図として用いる
。First, a case will be described in which there is no information about previous execution in the associative memory. FIG. 6 is used as a timing chart.
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第6図のタイミ
ングチャート図のうち、第1命令から第4命令に関する
IFA、IBO〜3゜IFASV 、第1命令に関する
IR/IC,OA/IRI/ICI/GRXI/GRB
I/IFAI。Most of the instruction prefetching from the first instruction to the fourth instruction and the processing of the first instruction are the same as those in the case where there is no register conflict as described above. That is, in the timing chart of FIG. 6, IFA for the first to fourth instructions, IBO to 3° IFASV, IR/IC, OA/IRI/ICI/GRXI/GRB for the first instruction.
I/IFAI.
OD’/IR2/IC2/GRX2/GRB2/IFA
2.ORのタイミングは、第5図のものと同一である。OD'/IR2/IC2/GRX2/GRB2/IFA
2. The timing of the OR is the same as in FIG.
以下ではそれ以外部分を説明する。The other parts will be explained below.
まず1時刻TOより先読み命令アドレスレジスタ100
に格納されている先読み命令アドレスは信号、[500
を介して連想記憶装置の先読み命令アドレス記憶部IF
AP354に印加されている。また、時刻T2になると
第1命令の命令語、命令アドレス、X2レジスタ値、B
2レジスタ値がそれぞれ信号8522,530,540
,642を介してそれぞれ連想記憶装置のIR記憶部3
48゜IC記憶部346.X2レジスタ値記憶部350
゜B2レジスタ値記憶部352に印加される。First, read ahead instruction address register 100 from time 1 TO.
The prefetch instruction address stored in the signal, [500
The prefetch instruction address storage unit IF of the associative memory device via
It is applied to AP354. Also, at time T2, the instruction word of the first instruction, the instruction address, the X2 register value, B
2 register values are signals 8522, 530, 540 respectively
, 642 respectively to the IR storage section 3 of the associative memory device.
48° IC storage section 346. X2 register value storage section 350
It is applied to the °B2 register value storage section 352.
連想記憶装置は上記信号線530,522゜540.5
42,500のデータで探索をする。The associative memory device is connected to the signal lines 530, 522゜540.5.
Search using 42,500 pieces of data.
今は、連想記憶装置に以前の実行時の情報がない場合を
考えているので、時刻T3においてHITLレジスタ1
56にはrOJが格納される。更に、この「0」は信号
線546に印加される。Now, we are considering the case where there is no information about the previous execution in the associative memory, so at time T3, the HITL register 1
rOJ is stored in 56. Furthermore, this “0” is applied to signal line 546.
時刻T3においてIRIレジスタ124には第1命令で
あるAdd命令の命令語が格納されており、命令レジス
タ112には第2命令である311)gtract命令
の命令語が格納されている。したがって、信号!582
上には第1命令のR1フィールドの「5」が印加され、
信号線542には第2命令のX2フイールド「5」が印
加される。第1命命と第2命令以外ではレジスタコンフ
リクトがないと仮定しているので、信号線558,52
6には「5」とは異なる値が印加されている。したがっ
て、−数比較回路160の出力は「1」になり、他の一
致比較回路162,164,166の出方はrOJとな
る。故にOR回路168の出力信号線593は「1」に
なる、また、OR回路170の出力信号llA391.
AND回路172の出力信号線592.AND回路17
4の出力信号線590.AND回路180の出力信号線
584はrOJになる。At time T3, the instruction word of the first instruction, Add instruction, is stored in the IRI register 124, and the instruction word of the second instruction, 311) gtract instruction, is stored in the instruction register 112. Therefore, signal! 582
"5" in the R1 field of the first instruction is applied to the top,
The X2 field "5" of the second command is applied to the signal line 542. Since it is assumed that there is no register conflict except for the first and second instructions, the signal lines 558 and 52
A value different from "5" is applied to 6. Therefore, the output of the minus number comparison circuit 160 becomes "1", and the output of the other coincidence comparison circuits 162, 164, and 166 becomes rOJ. Therefore, the output signal line 593 of the OR circuit 168 becomes "1", and the output signal llA391. of the OR circuit 170 becomes "1".
Output signal line 592 of AND circuit 172. AND circuit 17
4 output signal line 590. The output signal line 584 of the AND circuit 180 becomes rOJ.
信号線592はrOJであり、信号線593は「1」で
あるので、第10図に示したように、信号線540上に
有意なデータは出力されない、一方、セレクタ318は
信号線536上の第2命令の82レジスタ値を信号線5
42を介してアドレス加算器324に印加する。信号線
528からは第2命令の変位がアドレス加算器に印加さ
れる。Since the signal line 592 is rOJ and the signal line 593 is "1", no significant data is output on the signal line 540, as shown in FIG. The 82 register value of the second instruction is transferred to signal line 5.
42 to address adder 324. From signal line 528, the displacement of the second instruction is applied to the address adder.
これにより、時刻T4においては、オペランドアドレス
レジスタ120には有意なデータは格納されない。As a result, no significant data is stored in the operand address register 120 at time T4.
また、IRIレジスタ124.ICIレジスタ130、
GRXIL/ジスタ13ラスGRBIL/ジスタ13ラ
スIFAIレジスタ136にも有意なデータは格納され
ない。Also, the IRI register 124. ICI register 130,
No significant data is stored in the GRXIL/13 register GRBIL/13 register IFAI register 136 either.
以降の第2命令の動作では、信号線540上には有意な
データは出力されないのでアドレス加算器548は有意
なデータを出力しない、したがって、時刻T4になって
もオペランドアドレスレジスタ120には有意なデータ
は格納されない、また、IRIレジスタ124.ICI
レジスタ130゜GRXIL/ジスタ13ラスGRBI
L/ジ、1134゜IFAIレジスタ136にも有意な
データは格納されない。In the subsequent operation of the second instruction, no significant data is output on the signal line 540, so the address adder 548 does not output any significant data. Therefore, even at time T4, there is no significant data in the operand address register 120. No data is stored in IRI register 124. ICI
Register 130°GRXIL/Register 13ras GRBI
No significant data is stored in the L/J, 1134° IFAI register 136 either.
一方、時刻T4になるとIR2レジスタ126には第1
命令であるAdd命令の命令語が格納されている。この
時には、−数比較回路164の出力は「1」になり、他
の一致比較回路160゜162.166の出力は「o」
になる、故に、OR回路168の出力信号線593とA
ND回路180の出力信号線584は「1」になる、ま
た、OR回路170,182の出力信号線591゜59
6とAND回路172と174の出力信号線592.5
90はrOJになる。この時も信号線592は「O」で
あり、信号線593は「1」なので信号線540上には
何のデータも出力されない、信号線540上には有意な
データが出力されないのでアドレス加算器548は有意
なデータを出力しない、したがって時刻T5になっても
オペランドアドレスレジスタ120には有意なデータは
格納されない、また、IRIレジスタ124゜工Cルラ
スタ130.GRXIレジスタ132゜GRB ルラス
タ134.IFAレジスタ136にも有意なデータは格
納されない。On the other hand, at time T4, the first
The command word of the Add command, which is a command, is stored. At this time, the output of the minus number comparison circuit 164 becomes "1", and the output of the other coincidence comparison circuits 160°162.166 becomes "o".
Therefore, the output signal line 593 of the OR circuit 168 and A
The output signal line 584 of the ND circuit 180 becomes "1", and the output signal line 591 of the OR circuits 170 and 182 becomes "1".
6 and the output signal line 592.5 of AND circuits 172 and 174
90 becomes rOJ. At this time as well, the signal line 592 is "O" and the signal line 593 is "1", so no data is output on the signal line 540. Since no significant data is output on the signal line 540, the address adder 548 does not output any significant data, therefore no significant data is stored in the operand address register 120 even at time T5. GRXI register 132°GRB raster 134. No significant data is stored in IFA register 136 either.
一方1時刻T5になると、IR2レジスタ138には有
意なデータは格納されていない。この時には一致比較回
路160,162,164,166の出力は「0」とな
る、故に信号線590,591゜592.593,58
4,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", so the signal lines 590, 591, 592, 593, 58
All 4,596 are "0".
これにより、セレクタ316は信号線534上の第2ア
ドレスのx2レジスタ値を信号線540を介してアドレ
ス加算器324に印加し、セレクタ318は信号線53
6上の第2アドレスの82レジスタ値を信号から542
を介してアドレス加算器324に印加する。信号線52
8からは第2アドレスの変位がアドレス加算器に印加さ
れる。As a result, the selector 316 applies the x2 register value of the second address on the signal line 534 to the address adder 324 via the signal line 540, and the selector 318 applies the x2 register value of the second address on the signal line 534 to the address adder 324.
82 register value of the second address on 6 from the signal 542
to the address adder 324 via the address adder 324. Signal line 52
From 8 onwards, the displacement of the second address is applied to the address adder.
これにより、時刻T6において、第2アドレスのオペラ
ンドアドレスがオペランドアドレスレジスタ120に格
納される。As a result, the operand address of the second address is stored in the operand address register 120 at time T6.
また、IRIレジスタ124.ICIレジスタ130、
GRXIレジスタ132.GRBIレジスタ134.I
FAIレジスタ136には、レジスタコンフリクトのな
い時の動作と同一のデータが時刻T6で格納される。Also, the IRI register 124. ICI register 130,
GRXI register 132. GRBI register 134. I
The same data as the operation when there is no register conflict is stored in the FAI register 136 at time T6.
以降の第2アドレスの動作は、レジスタコンフリクトが
ない場合と同様に進む。Subsequent operations at the second address proceed in the same manner as in the case where there is no register conflict.
時刻T4から第1アドレスの演算がALU330で行な
われており1時刻T4とT5の中間でその演算結果が信
号線556を介して連想記憶装置に印加される。The calculation of the first address is performed in the ALU 330 from time T4, and the result of the calculation is applied to the content addressable memory device via the signal line 556 between times T4 and T5.
更に、信号線584上の「1」は連想記憶装置に印加さ
れる。これにより、連想記憶装置のIC記憶部346.
IR記憶部348.X2L/ジスタ値記憶部350.B
2レジスタ値記憶部352゜先読み命令アドレス記憶部
354.データ記憶部356、アドレス記憶部347が
それぞれ信号線580上の第1命令の命令アドレス、信
号線564上の第1命令語、信号線578上の第1命令
のX2レジスタ値、信号線576上の第1命令の82レ
ジスタ値、信号線574上の第1命令の先読み時の先読
み命令アドレス、信号線556上の第1命令の演算結果
、信号線708上の第1命令のオペランドアドレスであ
り、フラグ記憶部347が「1」であるワードが時刻T
5において登録される。Additionally, a "1" on signal line 584 is applied to the content addressable memory. As a result, the IC storage section 346 of the associative memory device.
IR storage section 348. X2L/Jister value storage section 350. B
2 register value storage unit 352° prefetch instruction address storage unit 354. The data storage section 356 and the address storage section 347 respectively store the instruction address of the first instruction on the signal line 580, the first instruction word on the signal line 564, the X2 register value of the first instruction on the signal line 578, and the X2 register value of the first instruction on the signal line 576. 82 register value of the first instruction, the prefetch instruction address when prefetching the first instruction on the signal line 574, the operation result of the first instruction on the signal line 556, and the operand address of the first instruction on the signal line 708. , the word whose flag storage unit 347 is “1” is at time T
Registered in 5.
これにより、連想記憶装置に情報がない場合の説明を終
わる。This concludes the explanation of the case where there is no information in the associative memory device.
次に、連想記憶に情報がある場合について説明する。連
想記憶には、以前の実行時の先行命令の演算結果が格納
されている場合と、先行命令のメモリ・オペランドが格
納されている場合がある。Next, a case where information exists in associative memory will be explained. The associative memory may store the operation result of the preceding instruction during previous execution, or may store the memory operand of the preceding instruction.
まず、連想記憶装置に以前の実行時の情報結果がある場
合を説明する。第7図をタイミングチャート図として用
いる。First, a case will be described in which the associative memory device contains information results from previous executions. FIG. 7 is used as a timing chart.
演算結果は、ロード命令以外の演算命令では第1オペラ
ンドと第2オペランド(メモリ・オペランド)に演算を
施して求まる。以前の実行時の第1オペランドは、次に
実行した時の第1オペランドと一致しない可能性がある
ので、連想記憶内の演算結果は必ずしも正しいとは言え
ない、したがって、以下の場合、連想記憶の演算結果で
第2命令の処理を開始し、後に第1命令の演算結果が求
まった時にそれを連想記憶の演算結果と比較し、不一致
の時には第2命令の処理をやり直すという方法をとって
いる。The result of an operation is obtained by performing an operation on the first operand and second operand (memory operand) in an operation instruction other than a load instruction. The first operand of the previous execution may not match the first operand of the next execution, so the operation result in the associative memory is not necessarily correct.Therefore, in the following cases, the associative memory Processing of the second instruction is started with the operation result of the first instruction, and when the operation result of the first instruction is obtained later, it is compared with the operation result of the associative memory, and if there is a discrepancy, the processing of the second instruction is restarted. There is.
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第7図のタイミ
ングチャート図のうち、第1命令から第4命令に関する
IFA、IBO〜3IFASV 、第1命令に関するI
R/IC,OA/IRI/ICI/GRXI/GRBI
/IFA1゜○D/IR2/IC2/GRX2/GRB
2/IFA2.GRのタイミングは、第5図のものと同
一である。以下ではそれ以外部分を説明する。Most of the instruction prefetching from the first instruction to the fourth instruction and the processing of the first instruction are the same as those in the case where there is no register conflict as described above. That is, in the timing chart of FIG. 7, IFA regarding the first to fourth instructions, IBO to IFASV, I
R/IC, OA/IRI/ICI/GRXI/GRBI
/IFA1゜○D/IR2/IC2/GRX2/GRB
2/IFA2. The timing of GR is the same as in FIG. The other parts will be explained below.
まず、時刻Toより先読み命令アドレスレジスタ100
に格納されている先読み命令アドレスは、信号線500
を介して連想記憶装置の先読み命令アドレス記憶部IF
AP 354に印加されている。また、時刻T2になる
と第1命令の命令語、命令アドレスX2レジスタ値、B
2レジスタ値がそれぞれ信号線522,530,540
,542を介してそれぞれ連想記憶装置のIR記憶部3
48゜ICE憶部346.X2L/ジスタ値記憶部35
0゜B2レジスタ値記憶部352に印加される。First, from time To, the prefetch instruction address register 100
The prefetch instruction address stored in the signal line 500
The prefetch instruction address storage unit IF of the associative memory device via
applied to AP 354. Also, at time T2, the instruction word of the first instruction, the instruction address X2 register value, B
Two register values are connected to signal lines 522, 530, and 540, respectively.
, 542 respectively to the IR storage section 3 of the associative memory device.
48°ICE storage section 346. X2L/Jister value storage section 35
0°B2 is applied to the register value storage section 352.
連想記憶装置は、上記信号線530,522゜540.
542,500のデータで探索をする。The content addressable memory device includes the signal lines 530, 522, 540, .
Search using 542,500 data.
今は、連想記憶装置に以前の実行時の情報がある場合を
考えているので、時刻T3においてDATALレジスタ
158には第1命令の以前の演算結果が格納され、FL
GLレジスタ157には「1」が格納され、HITLレ
ジスタ156には「1」が格納される。更に、この「1
」は信号!546に印加される。We are now considering a case where the associative memory has information from the previous execution, so at time T3, the previous operation result of the first instruction is stored in the DATAL register 158, and the FL
“1” is stored in the GL register 157, and “1” is stored in the HITL register 156. Furthermore, this “1
” is a signal! 546.
時刻T3においてIRIレジスター24には第1命令で
あるAdd命令の命令語が格納されており、命令レジス
ター12には第2命令である5ubstract命令の
命令語が格納されている。したがって、信号線582上
には第1命令のR1フイ4ルドの「5」が印加され、信
号線524には第2命令のX2フイールド「5」が印加
される。第1命命と第2命令以外ではレジスタコンフリ
クトがないと仮定しているので、信号線558,526
には「5」とは異なる値が印加されている。したがって
、−数比較回路160の出力は「1」になり、他の一致
比較回路162,164,166の出力はrOJとなる
。故にOR回路168の出力信号線593とOR回路1
82の出力信号線596と、AND回路172の出力信
号線172は「1」になる。また、OR回路の出力信号
線591゜AND回路174の出力信号線590.AN
D回路180の出力信号線はrOJになる。At time T3, the instruction word of the first instruction, Add instruction, is stored in the IRI register 24, and the instruction word of the second instruction, 5ubstract instruction, is stored in the instruction register 12. Therefore, the R1 field "5" of the first instruction is applied to the signal line 582, and the X2 field "5" of the second instruction is applied to the signal line 524. Since it is assumed that there is no register conflict except for the first and second instructions, the signal lines 558 and 526
A value different from "5" is applied to . Therefore, the output of the minus number comparison circuit 160 becomes "1", and the outputs of the other coincidence comparison circuits 162, 164, and 166 become rOJ. Therefore, the output signal line 593 of the OR circuit 168 and the OR circuit 1
The output signal line 596 of 82 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 590 of the AND circuit 174. AN
The output signal line of the D circuit 180 becomes rOJ.
信号線596はIC5Vレジスター58のセット信号と
なっており、この信号線が「1」なので時刻T4におい
てIC3Vレジスタ116には第2命令の命令アドレス
が格納されposvレジスタ154には第1命令の以前
の演算結果が格納される。The signal line 596 is a set signal for the IC5V register 58, and since this signal line is "1", the instruction address of the second instruction is stored in the IC3V register 116 at time T4, and the instruction address before the first instruction is stored in the posv register 154. The result of the calculation is stored.
信号線592が「1」であり、信号線714が「1」で
あるので、第10図のようにセレクタ316は信号線5
38上の第1命令の以前の演算結果を信号線540を介
してアドレス加算器324に印加し、セレクタ318は
信号線536上の第2命令のB2レジスタ値を信号線5
42を介してアドレス加算器324に印加する。信号線
528からは第2命令の変位がアドレス加算器に印加さ
れる。これにより、時刻T4において、第2命令のオペ
ランドアドレスがオペランドアドレスレジスタ120に
格納される。Since the signal line 592 is "1" and the signal line 714 is "1", the selector 316 selects the signal line 5 as shown in FIG.
The selector 318 applies the B2 register value of the second instruction on signal line 536 to the address adder 324 via signal line 540.
42 to address adder 324. From signal line 528, the displacement of the second instruction is applied to the address adder. As a result, the operand address of the second instruction is stored in the operand address register 120 at time T4.
また、IRIレジスタ124.ICIレジスタ130、
GRXIレジスタ132.GRBIレジスタ134.I
FAIレジスタ136には、レジスタコンフリクトのな
い時の動作と同一のデータが時刻T4で格納される。Also, IRI register 124. ICI register 130,
GRXI register 132. GRBI register 134. I
The same data as the operation when there is no register conflict is stored in the FAI register 136 at time T4.
以降の第2命令の動作は、レジスタコンフリクトかない
場合と同様に進む。The subsequent operation of the second instruction proceeds in the same manner as in the case where there is no register conflict.
時刻T4から第1命令の演算がALU330で行なわれ
ており、時刻T4とT5の中間でその演算結果が信号線
556を介して比較器332に印加される。比較器33
2のもう一方の入力にはDATASVレジスタ154に
格納されている第1命令の以前の演算結果が印加されて
いる。The calculation of the first instruction is being performed in the ALU 330 from time T4, and the calculation result is applied to the comparator 332 via the signal line 556 between times T4 and T5. Comparator 33
The previous operation result of the first instruction stored in the DATASV register 154 is applied to the other input of No. 2.
ALU330での演算結果が以前の演算結果と一致する
か否かで以下の動作は2通りに分かれる。The following operation is divided into two types depending on whether or not the calculation result in the ALU 330 matches the previous calculation result.
まず、一致する場合を説明する。この場合、信号線58
6上には「1」が印加される。この「1」はセレクタ3
00と308に入力される。この時、セレクタ300は
信号線502のデータを信号線506に出力し、セレク
タ308は信号線520のデータを信号線518に出力
する。これは、レジスタコンフリクトがない場合の動作
と同一であり、以降の動作はその場合と同じに進んでい
く。First, the case where they match will be explained. In this case, the signal line 58
6 is applied with "1". This "1" is selector 3
00 and 308. At this time, the selector 300 outputs the data on the signal line 502 to the signal line 506, and the selector 308 outputs the data on the signal line 520 to the signal line 518. This is the same operation as when there is no register conflict, and subsequent operations proceed in the same way as in that case.
ALU330での演算結果が以前の演算結果と一致しな
い場合を次に説明する。以上の説明ではタイミングチャ
ート図としては第7図を用いてきたが、以下の説明では
第8図を用いる。この場合。A case in which the calculation result in the ALU 330 does not match the previous calculation result will be described next. In the above explanation, FIG. 7 has been used as a timing chart, but in the following explanation, FIG. 8 will be used. in this case.
信号線586にはrO」が印加される。このrOJはセ
レクタ300と308に入力される。この時、セレクタ
300は信号線504のデータを信号線506に出力し
、セレクタ308は、信号線504のデータを信号線5
18に出力する。これにより、時刻T5において、先読
み命令アドレスレジスタ100にはIC5Vレジスタ1
16に格納されていた第2命令の命令アドレスの上位2
0ビツトが格納され=る。この値は第1命令から第4命
令までの先読みアドレスと同一である。これにより先読
みが実行されて時刻T6で第1命令から第4命令が命令
バッフ7104,106,108.ilOに格納される
。信号線518には第2命令の命令アドレスが印加され
ているので、時刻T7において命令レジスタ112には
命令レジスタ106上の第2命令が格納される。第2命
令とレジスタコンフリクトを起こしていた第1命令は時
刻5において、すでに演算結果をR1フィールドの指示
するレジスタに書込んである。したがって、時刻T7に
おいては、第1命令と第2命令の間にはレジスタコンフ
リクトのない場合の動作説明と同じに進んでいく。rO'' is applied to the signal line 586. This rOJ is input to selectors 300 and 308. At this time, the selector 300 outputs the data on the signal line 504 to the signal line 506, and the selector 308 outputs the data on the signal line 504 to the signal line 506.
Output to 18. As a result, at time T5, the IC5V register 1 is stored in the prefetch instruction address register 100.
The upper two instruction addresses of the second instruction stored in 16
A 0 bit is stored. This value is the same as the prefetch addresses for the first to fourth instructions. As a result, lookahead is executed, and at time T6, the first to fourth instructions are transferred to the instruction buffers 7104, 106, 108 . Stored in ilO. Since the instruction address of the second instruction is applied to the signal line 518, the second instruction on the instruction register 106 is stored in the instruction register 112 at time T7. At time 5, the first instruction causing a register conflict with the second instruction has already written the operation result to the register indicated by the R1 field. Therefore, at time T7, the operation proceeds in the same manner as in the case where there is no register conflict between the first and second instructions.
更に、信号線586上の「0」は連想記憶装置に印加さ
れる。これにより、連想記憶装置のIC記憶部346.
IR記憶部34B、X2L/ジスタ値記憶部350.B
2レジスタ値記憶部352゜先読み命令アドレス記憶部
354.データ記憶部356、アドレス記憶部345が
それぞれ信号線580上の第1命令の命令アドレス、信
号線564上の第1命令語、信号線578上の第1命令
のx2レジスタ値、信号a576上の第1命令の82レ
ジスタ値、信号線574上の第1命令の先読み時の先読
み命令アドレス、信号線556上の第1命令の演算結果
、信号線708上の第1命令のオペランドアドレスであ
り、フラグ記憶部が「1」であるワードが時刻T5にお
いて登録される。Additionally, a "0" on signal line 586 is applied to the content addressable memory. As a result, the IC storage section 346 of the associative memory device.
IR storage section 34B, X2L/Jister value storage section 350. B
2 register value storage unit 352° prefetch instruction address storage unit 354. The data storage unit 356 and the address storage unit 345 respectively store the instruction address of the first instruction on the signal line 580, the first instruction word on the signal line 564, the x2 register value of the first instruction on the signal line 578, and the 82 register value of the first instruction, the prefetch instruction address when prefetching the first instruction on the signal line 574, the operation result of the first instruction on the signal line 556, the operand address of the first instruction on the signal line 708, A word whose flag storage unit is "1" is registered at time T5.
以上でALU330での演算結果が以前の演算結果と一
致しない場合の説明を終わる。This concludes the explanation of the case where the calculation result in the ALU 330 does not match the previous calculation result.
更に、これにより、連想記憶装置に以前の実行時の演算
結果がある場合の説明を終わる。Furthermore, this concludes the description of the case where the associative memory device contains the calculation results from the previous execution.
ストア(Store)命令が実行されて、そのストア・
アドレスが、連想記憶に格納されている命令のオペラン
ド・アドレスと等しい場合、連想記憶に格納されたこの
命令の演算結果は、その命令がそれ以降に実行される時
の演算結果とは異なってくる。ストア(Store)命
令が実行された時には、連想記憶内の演算結果をストア
・データで書換えれば良い、その処理を次に述べる。A store instruction is executed and the store
If the address is equal to the operand address of an instruction stored in associative memory, the result of the operation of this instruction stored in associative memory will be different from the result of the operation when that instruction is subsequently executed. . When a store instruction is executed, the operation result in the associative memory can be rewritten with store data.The process will be described below.
連想記憶装置320の説明で既に述べたように。As already mentioned in the description of content addressable memory 320.
ストア(Store)命令が実行されると信号線712
を介して「1」が連想記憶装置に転送される。同時に信
号線708を介してストア(Store)命令のオペラ
ンド・アドレス(すなわち、ストア・アドレス)が転送
され、信号線560を介してストア(Store)命令
のR1レジスタの内容(すなわち、ストア・データ)が
転送される。When a store instruction is executed, the signal line 712
``1'' is transferred to the content addressable memory device via . At the same time, the operand address (i.e., store address) of the store instruction is transferred via signal line 708, and the contents of the R1 register (i.e., store data) of the store instruction are transferred via signal line 560. is transferred.
この時、連想記憶装置はアドレス記憶部ADDRがスト
ア・アドレスと等しいワードをすべて探し出し、等しい
ワードのデータ記憶部DATAPをストア・データで書
換え、かつ、そのワードのフラグ記憶部を「1」に書換
える。At this time, the associative memory device searches for all words whose address storage unit ADDR is equal to the store address, rewrites the data storage unit DATAP of the equal word with the store data, and rewrites the flag storage unit of that word to "1". Ru.
以上で、ストア(Store)命令が実行された時の処
理の説明を終わる。This concludes the explanation of the processing when a store instruction is executed.
次に、連想記憶装置に先行命令の第2オペランド(メモ
リ・オペランド)がある場合を説明する。Next, a case where the content addressable memory device has the second operand (memory operand) of the preceding instruction will be described.
第7図をタイミングチャート図として用いる。FIG. 7 is used as a timing chart.
この場合、上記のようにストア命令が実行された時に連
想記憶内のデータ(第1命令の以前の演算結果又は第1
命令のメモリ・データ(第2オペランド))をストア・
データで書換えているので。In this case, when the store instruction is executed as described above, the data in the associative memory (the previous operation result of the first instruction or the
Stores the memory data (second operand) of the instruction.
Because it is rewritten with data.
連想記憶内の第2オペランドは常に正しい、また、この
場合、下記のようにこの第2オペランドに対して、第1
命令実行時の第1オペランドを用いて演算を施すので、
その演算結果は、連想記憶内に格納されている以前の演
算結果とは異なり、正しい、したがって、この場合には
、上述のような、以前の演算結果とALUでの演算結果
の一致比較及び第2命令のやり直し処理は不要である。The second operand in the associative memory is always correct, and in this case, for this second operand, the first
Since the operation is performed using the first operand when executing the instruction,
The result of the operation is different from the result of the previous operation stored in the associative memory and is correct. Therefore, in this case, as described above, the result of the previous operation is compared with the result of the operation in the ALU and the result of the operation is correct. There is no need to redo the two instructions.
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第7図のタイミ
ングチャート図のうち、第1命令から第4命令に関する
IFA、IBO〜3IFASV 、第1命令に関するI
R/IC,OA/IRI/ICI/GRXI/GRBI
/IFAI。Most of the instruction prefetching from the first instruction to the fourth instruction and the processing of the first instruction are the same as those in the case where there is no register conflict as described above. That is, in the timing chart of FIG. 7, IFA regarding the first to fourth instructions, IBO to IFASV, I
R/IC, OA/IRI/ICI/GRXI/GRBI
/IFAI.
OD/IR2/IC2/GRX2/GRB2/IFA2
.GRのタイミングは、第5図のものと同一である。以
下ではそれ以外部分を説明する。OD/IR2/IC2/GRX2/GRB2/IFA2
.. The timing of GR is the same as in FIG. The other parts will be explained below.
まず、時刻Toより先読み命令アドレスレジスタ100
に格納されている先読み命令アドレスは、信号線500
を介して連想記憶装置の先読み命令アドレス記憶部IF
AP354に印加されている。また、時刻T2になると
第1命令の命令語、命令アドレスX2レジスタ値、B2
レジスタ値がそれぞれ信号線522,530,540,
542を介してそれぞれ連想記憶装置のIR記憶部34
8゜IC記憶部346.X2レジスタ値記憶部350゜
B2レジスタ値記憶部352に印加される。First, from time To, the prefetch instruction address register 100
The prefetch instruction address stored in the signal line 500
The prefetch instruction address storage unit IF of the associative memory device via
It is applied to AP354. Also, at time T2, the instruction word of the first instruction, the instruction address X2 register value, B2
The register values are respectively connected to signal lines 522, 530, 540,
542 respectively to the IR storage unit 34 of the associative memory device.
8°IC storage section 346. X2 register value storage section 350° is applied to B2 register value storage section 352.
連想記憶装置は、上記信号線530.522・540,
542,500のデータで探索をする。The associative memory device includes the signal lines 530, 522, 540,
Search using 542,500 data.
今は、連想記憶装置に先行命令の第2オペランド(メモ
リ・オペランド)がある場合を考えているので、時刻T
3においてDATALレジスタ158には第1命令、す
なわち先行命令の第2オペランドが格納され、FLGL
レジスタ157には「0」が格納され、IIITLレジ
スタ156には「1」が格納される。更に、この「1」
は信号線546に印加される。Now, we are considering the case where the associative memory device has the second operand (memory operand) of the preceding instruction, so the time T
3, the DATAL register 158 stores the second operand of the first instruction, that is, the preceding instruction, and FLGL
“0” is stored in the register 157, and “1” is stored in the IIITL register 156. Furthermore, this "1"
is applied to signal line 546.
時刻T3においてIRIレジスタ124には第1命令で
あるAdd命令の命令語が格納されており、命令レジス
タ112には第2命令である5ubstract命令の
命令語が格納されている。したがって、信号線582上
には第1命令のR1フィールドの「5」が印加され、信
号線542には第2命令のx2フィールド「5Jが印加
される。第1命命と第2命令以外ではレジスタコンフリ
フタがないと仮定しているので、信号線558,526
には「5」とは異なる値が印加されている。したかって
、−数比較回路160の出力は「1」になり、他の一致
比較回路162,164,166の出力は「0」となる
。故にOR回路168の出力信号線593とOR回路1
82の出力信号線と、AND回路172の出力信号81
72は「1」になる・また、OR回路の出力信号線59
1とAND回路174の出力信号線590.AND回j
l180の出力信号線は「0」になる。At time T3, the IRI register 124 stores the instruction word of the first instruction, Add instruction, and the instruction register 112 stores the instruction word of the second instruction, 5ubstract instruction. Therefore, "5" in the R1 field of the first instruction is applied to the signal line 582, and "5J" in the x2 field of the second instruction is applied to the signal line 542. Since it is assumed that there is no register confrifter, the signal lines 558 and 526
A value different from "5" is applied to . Therefore, the output of the minus number comparison circuit 160 becomes "1", and the outputs of the other coincidence comparison circuits 162, 164, and 166 become "0". Therefore, the output signal line 593 of the OR circuit 168 and the OR circuit 1
82 output signal line and the output signal 81 of the AND circuit 172
72 becomes “1”・Also, the output signal line 59 of the OR circuit
1 and the output signal line 590 of the AND circuit 174. AND times
The output signal line of l180 becomes "0".
ALU360には、信号l1538を介して第1命令の
第2オペランドが入力され、信号線606を介して第1
命令のR1レジスタの内容すなわち第1オペランドが入
力され、信号線604を介して第1命令のオペコードが
入力される。ALU360はこれにより第1命令の演算
を行い、その演算結果を信号線600上に出力する。The second operand of the first instruction is input to the ALU 360 via the signal l1538, and the second operand of the first instruction is input to the ALU 360 via the signal line 606.
The contents of the R1 register of the instruction, ie, the first operand, are input, and the opcode of the first instruction is input via the signal line 604. The ALU 360 thereby performs the calculation of the first instruction and outputs the calculation result onto the signal line 600.
信号線592が「1」であり、信号線714がrOJで
あるので、第10図のようにセレクタ316は信号線6
00上の第1命令の演算結果を信号線540を介してア
ドレス加算器324に印加し、セレクタ318は信号線
536上の第2命令のB2レジスタ値を信号ff154
2を介してアドレス加算器324に印加する。信号線5
28からは第2命令の変位がアドレス加算器に印加され
る。Since the signal line 592 is "1" and the signal line 714 is rOJ, the selector 316 selects the signal line 6 as shown in FIG.
The operation result of the first instruction on the signal line 540 is applied to the address adder 324, and the selector 318 applies the B2 register value of the second instruction on the signal line 536 to the signal ff154.
2 to the address adder 324. signal line 5
From 28, the displacement of the second instruction is applied to the address adder.
これにより、時刻T4において、第2命令オペランドア
ドレスがオペランドアドレスレジスタ120に格納され
る。As a result, the second instruction operand address is stored in the operand address register 120 at time T4.
また、IRIレジスタ124.MCIレジスタ130、
GRXLレジスタ132.GRBIレジスタ134.I
FAIレジスタ136には、レジスタコンフリクトのな
い時の動作と同一のデータが時刻T4で格納される。Also, IRI register 124. MCI register 130,
GRXL register 132. GRBI register 134. I
The same data as the operation when there is no register conflict is stored in the FAI register 136 at time T4.
以降の第2命令の動作は、レジスタコンフリクトがない
場合と同様に進む。The subsequent operation of the second instruction proceeds in the same way as in the case where there is no register conflict.
これにより、連想記憶装置に先行命令の第2オペランド
がある場合の説明を終わる。This concludes the explanation of the case where the second operand of the preceding instruction is in the associative memory device.
次に、本実施例特有の効果を述べる。Next, effects specific to this embodiment will be described.
本発明を使用しない場合、先行命令とレジスタコンフリ
クトのある後続命令を実行すると、−上述の動作説明の
連想記憶’A置に以前の実行の情報がない場合と同じ動
作となり、2周期の空き時間を生ずる。When the present invention is not used, if a subsequent instruction that has a register conflict with a preceding instruction is executed, the operation will be the same as when there is no information about the previous execution in the associative memory 'A' in the operation explanation above, and there will be two periods of idle time. will occur.
本発明を使用すれば空き時間はまったくなくなるので、
レジスタコンフリクト発生時の命令処理性能が向上する
。With this invention, there will be no free time at all,
Improves instruction processing performance when a register conflict occurs.
上述の実施例は先行命令の演算結果として、連想記憶内
に格納しておいた先行命令の以前の演算結果又は、連想
記憶内に格納しておいた先行命令の第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 operand (memory operand) of the preceding instruction stored in the associative memory is used. The first operand of the preceding instruction was used to perform an operation on the previous instruction, and the result was used. However, the present invention.
連想記憶内には先行命令の以前の演算結果は格納せず、
常に先行命令の第2オペランドを格納しておき、先行命
令の演算結果として常に、その第2オペランドに先行命
令の第1オペランドを用いて演算を施した結果を用いる
場合にも適用できる。The previous operation result of the preceding instruction is not stored in the associative memory.
The present invention can also be applied to a case where the second operand of the preceding instruction is always stored and the result of performing an operation on the second operand using the first operand of the preceding instruction is always used as the operation result of the preceding instruction.
この場合の実施例を第11A図、第1]、B図に示す。Examples in this case are shown in FIGS. 11A, 1] and B.
この図の連想記憶には、連想記憶に情報がない時に第3
A図、第3B図の信号線556に代って信号線554を
介して先行命令の第2オペランドを記憶し、フラグ記憶
部は「0」とする。このようにすると、常に連想記憶に
は先行命令の第2オペランドが格納される。したがって
、連想記憶に第2オペランドが格納されている時には、
上述の実施例のように後続命令が空き時間なく実行でき
る。Associative memory in this diagram shows that when there is no information in associative memory, there is a third
The second operand of the preceding instruction is stored via the signal line 554 instead of the signal line 556 in FIGS. A and 3B, and the flag storage section is set to "0". In this way, the second operand of the preceding instruction is always stored in the associative memory. Therefore, when the second operand is stored in associative memory,
As in the above embodiment, subsequent instructions can be executed without any idle time.
また、第3A図と第3B図および第11A図と第11B
図の2つの実施例では、ストア命令が実行されるとスト
ア・データを用いて連想記憶内の情報を書換えている。Also, Figures 3A and 3B and Figures 11A and 11B
In the two illustrated embodiments, when a store instruction is executed, store data is used to rewrite information in the content addressable memory.
しかし、本発明はストア命令が実行された時、そのスト
ア・アドレスとオペランド・アドレスが一致するワード
を無効化する場合にも適用できる。However, the present invention can also be applied to the case where, when a store instruction is executed, a word whose store address and operand address match is invalidated.
この場合には、第4図の連想記憶320を、信号線71
2に「1」が印加された時に、信号線708上のストア
・アドレスとアドレス記憶部が等しいワードを連想記憶
から削除するように構成すればよい。この場合にも、連
想記憶に情報が格納されている時には、上述の実施例の
ように後続命令は空き時間なく実行できる。In this case, the associative memory 320 in FIG.
The configuration may be such that when "1" is applied to 2, the word whose address storage unit is the same as the store address on the signal line 708 is deleted from the associative memory. In this case as well, when information is stored in the associative memory, subsequent instructions can be executed without idle time as in the above embodiment.
更に、連想キーとしては、今まで述べたすべてを使うこ
ともできるし、任意の組合せを使うこともできる。その
際、キー構成要素の一部のビット位置を使うこともでき
る。Further, as the associative keys, all of the above-mentioned keys can be used, or any combination can be used. In this case, it is also possible to use some bit positions of the key components.
本発明を使用しない場合、レジスタコンフリクトを起こ
す先行命令が開始されてから、後続命令が開始されるま
でに、先行命令のアドレス計算時間、オペランド読出し
時間、演算時間がかかる。If the present invention is not used, it takes address calculation time, operand read time, and calculation time for the preceding instruction after the preceding instruction that causes a register conflict is started until the subsequent instruction is started.
しかし、本発明を用いることにより、連想キーを予測装
置に入力してから予測値が出力するまでの時間しかかか
らない、後者の時間は、連想キーに何を用いるかによっ
て異なるが、先行命令の命令アドレスを連想キーに用い
る最悪の場合でも、その時間は本発明を使用しない場合
より十分短い。However, by using the present invention, it only takes time from inputting the associative key to the prediction device until outputting the predicted value.The latter time varies depending on what is used for the associative key, but Even in the worst case where an address is used as an associative key, the time is much shorter than when the present invention is not used.
第1A図は命令形式図、第1B図はロード命令の例、第
2図はレジスタコンフリクトを起こす二つの命令の例、
第3A図、第3B図は実施例の全体構成図、第4図は連
想記憶装置の構成図、第5〜8図はタイミングチャート
図、第9図はレジスタコンフリクト検出装置の構成図、
第10図はセレクタの動作図、第11A図、第11B図
はそれぞれ他の実施例の全体構成図である。
100・・・先読み命令アドレスレジスタ、304・・
・命令記憶装置、104,106,108,110・・
・命令バッファ、112・・・命令レジスタ、114・
・・命令カウンタ、324・・・アドレス加算器。
120・・・オペランド・アドレスレジスタ、326・
・・オペランド記憶装置、126・・・オペランドデー
タレジスタ、330・・・ALU、118・・・レジス
タファイル、320・・・連想記憶、322・・・レジ
スタコンフリクト検出装置。Figure 1A is an instruction format diagram, Figure 1B is an example of a load instruction, Figure 2 is an example of two instructions that cause a register conflict,
3A and 3B are general configuration diagrams of the embodiment, FIG. 4 is a configuration diagram of an associative memory device, FIGS. 5 to 8 are timing chart diagrams, and FIG. 9 is a configuration diagram of a register conflict detection device.
FIG. 10 is an operation diagram of the selector, and FIGS. 11A and 11B are overall configuration diagrams of other embodiments. 100...Prefetch instruction address register, 304...
・Instruction storage device, 104, 106, 108, 110...
・Instruction buffer, 112...Instruction register, 114・
...Instruction counter, 324...Address adder. 120...operand address register, 326...
... Operand storage device, 126 ... Operand data register, 330 ... ALU, 118 ... Register file, 320 ... Associative memory, 322 ... Register conflict detection device.
Claims (1)
用いて後続命令が実行される際に、該演算結果が確定す
るまで、該後続命令の処理であつて該演算結果を用いる
処理を停止させるデータ処理装置において、 該先行命令の命令アドレス又は、該先行命令より前の命
令の命令アドレス、該先行命令を先読みする際の先読み
アドレス、該先行命令より前の命令を先読みする際の先
読みアドレスのすべて又はおのおのの任意のビット位置
データの組合せと、該先行命令のメモリ・オペランド・
アドレス決定情報とからなる連想キーとに対応させて該
先行命令のメモリ・オペランド・アドレスと演算結果を
記憶する手段と、 該データ処理装置でストア命令が実行された時に、該ス
トア命令のストア・アドレスと一致する該メモリ・オペ
ランド・アドレスが該記憶手段にあるかを探索し、ある
時には、それに対応する該演算結果を該ストア命令のス
トア・データで書換える連想書込み手段と、 該先行命令が実行された時にその時の該連想キーに基づ
いて該記憶手段を探索し、該連想キーが記憶されている
時にはそれに対応する該演算結果又は該メモリ・オペラ
ンドを出力する手段と、 該出力手段より該演算結果が出力された時には、該出力
手段よりの該演算結果を用いて停止されている該後続命
令の処理を開始し、該出力手段よりの該演算結果が該先
行命令の演算で求まる演算結果と等しい場合には、開始
した該後続命令の処理を継続し、等しくない場合には、
該後続命令の処理を無効にし、該先行命令の演算で求ま
る演算結果を用いて該後続命令の処理を再実行する手段
と、 該出力手段より該メモリ・オペランドが出力された時に
は、該メモリ・オペランドに対して該先行命令の指定す
る演算を施し、その演算結果を用いて停止されている該
後続命令の処理を開始する手段とを有することを特徴と
するデータ処理装置。 2、先行命令によつてレジスタに書込まれる演算結果を
用いて後続命令が実行される際に、該演算結果が確定す
るまで、該後続命令の処理であって該演算結果を用いる
処理を停止させるデータ処理装置において、 該先行命令の命令アドレス又は、該先行命令より前の命
令の命令アドレス、該先行命令を先読みする際の先読み
アドレス、該先行命令より前の命令を先読みする際の先
読みアドレスのすべて又はおのおのの任意のビット位置
データの組合せと、該先行命令のメモリ・オペランド・
アドレス決定情報とからなる連想キーとに対応させて該
先行命令のメモリ・オペランド・アドレスとメモリ・オ
ペランドを記憶する手段と、該データ処理装置でストア
命令が実行された時に、該ストア命令のストア・アドレ
スと一致する該メモリ・オペランド・アドレスが該記憶
手段にあるかを探索し、ある時には、それに対応する該
メモリ・オペランドを該ストア命令のストア・データで
書換える連想書込み手段と、該先行命令が実行された時
にその時の該連想キーに基づいて該記憶手段を探索し、
該連想キーが記憶されている時にはそれに対応する該メ
モリ・オペランドを出力する手段と、 該出力手段より該メモリ・オペランドが出力された時に
は、該メモリ・オペランドに対して該先行命令の指定す
る演算を施し、その演算結果を用いて停止されている該
後続命令の処理を開始する手段を有することを特徴とす
るデータ処理装置。 3、先行命令によつてレジスタに書込まれる演算結果を
用いて後続命令が実行される際に、該演算結果が確定す
るまで、該後続命令の処理であつて該演算結果を用いる
処理を停止させるデータ処理装置において、 該先行命令の命令アドレス又は、該先行命令より前の命
令アドレス、該先行命令を先読みする際の先読みアドレ
ス、該先行命令より前の命令を先読みする際の先読みア
ドレスのすべて又はおのおのの任意のビット位置データ
の組合せと、該先行命令のメモリ・オペランド・アドレ
ス決定情報とからなる連想キーとに対応させて該先行命
令のメモリ・オペランド・アドレスと演算結果を記憶す
る手段と、 該データ処理装置でストア命令が実行された時に、該ス
トア命令のストア・アドレスと一致する該メモリ・オペ
ランド・アドレスが該記憶手段にあるかを探索し、ある
時には、それに対応する連想キーとメモリ・オペランド
・アドレスと演算結果を削除する連想手段と、 該先行命令が実行された時にその時の該連想キーに基づ
いて該記憶手段を探索し、該連想キーが記憶されている
時にはそれに対応する該演算結果又は該メモリ・オペラ
ンドを出力する手段と、 該出力手段より該演算結果が出力された時には、該出力
手段よりの該演算結果を用いて停止されている該後続命
令の処理を開始し、該出力手段よりの該演算結果が該先
行命令の演算で求まる演算結果と等しい場合には、開始
した該後続命令の処理を継続し、等しくない場合には、
該後続命令の処理を無効にし、該先行命令の演算で求ま
る演算結果を用いて該後続命令の処理を再実行する手段
と、 該出力手段より該メモリ・オペランドが出力された時に
は、該メモリ・オペランドに対して該先行命令の指定す
る演算を施し、その演算結果を用いて停止されている該
後続命令の処理を開始する手段を有することを特徴とす
るデータ処理装置。 4、先行命令によつてレジスタに書込まれる演算結果を
用いて後続命令が実行される際に、該演算結果が確定す
るまで、該後続命令の処理であつて該演算結果を用いる
処理を停止させるデータ処理装置において、 該先行命令の命令アドレス又は、該先行命令より前の命
令の命令アドレス、該先行命令を先読みする際の先読み
アドレス、該先行命令より前の命令を先読みする際の先
読みアドレスのすべて又はおのおのの任意のビット位置
データの組合せと、該先行命令のメモリ・オペランド・
アドレス決定情報とからなる連想キーとに対応させて該
先行命令のメモリ・オペランド・アドレスとメモリ・オ
ペランドを記憶する手段と、該データ処理装置でストア
命令が実行された時に、該ストア命令のストア・アドレ
スと一致する該メモリ・オペランド・アドレスが該記憶
手段にあるかを探索し、ある時には、それに対応する連
想キーとメモリ・オペランドア・アドレスとメモリ・オ
ペランドを削除する連想手段と、 該先行命令が実行された時にその時の該連想キーに基づ
いて該記憶手段を探索し、該連想キーが記憶されている
時にはそれに対応する該メモリ・オペランドを出力する
手段と、 該出力手段より該メモリ・オペランドが出力された時に
は、該メモリ・オペランドに対して該先行命令の指定す
る演算を施し、その演算結果を用いて停止されている該
後続命令の処理を開始する手段を有することを特徴とす
るデータ処理装置。[Claims] 1. When a subsequent instruction is executed using an operation result written to a register by a preceding instruction, the operation of the subsequent instruction is performed until the operation result is determined. In a data processing device that stops processing using a result, the instruction address of the preceding instruction, the instruction address of the instruction before the preceding instruction, the read-ahead address when reading ahead of the preceding instruction, and the instruction before the preceding instruction. When prefetching, all of the prefetch addresses or a combination of each arbitrary bit position data and the memory operand of the preceding instruction.
means for storing a memory operand address and an operation result of the preceding instruction in association with an associative key consisting of address determination information; associative writing means for searching whether or not the memory operand address matching the address exists in the storage means and, at some times, rewriting the corresponding operation result with store data of the store instruction; means for searching the storage means based on the associative key at that time when executed, and outputting the operation result or the memory operand corresponding to the associative key when the associative key is stored; When the operation result is output, the operation result from the output means is used to start the processing of the stopped subsequent instruction, and the operation result from the output means is the operation result obtained by the operation of the preceding instruction. If it is equal to , continue processing the started subsequent instruction; if not equal,
means for invalidating the processing of the subsequent instruction and re-executing the processing of the subsequent instruction using the operation result obtained from the operation of the preceding instruction; and when the memory operand is output from the output means, the memory operand is A data processing device comprising means for performing an operation specified by the preceding instruction on an operand and using the result of the operation to start processing of the stopped subsequent instruction. 2. When a subsequent instruction is executed using the operation result written to the register by the preceding instruction, the processing of the subsequent instruction that uses the operation result is stopped until the operation result is finalized. In a data processing device, an instruction address of the preceding instruction, an instruction address of an instruction before the preceding instruction, a look-ahead address when reading ahead the preceding instruction, a look-ahead address when reading ahead the instruction before the preceding instruction, or a combination of arbitrary bit position data of each and the memory operand of the preceding instruction.
means for storing a memory operand address and a memory operand of the preceding instruction in association with an associative key consisting of address determination information; an associative write means for searching whether the memory operand address that matches the address exists in the storage means and, at some times, rewriting the corresponding memory operand with store data of the store instruction; searching the storage means based on the associative key at the time the instruction is executed;
means for outputting the memory operand corresponding to the associative key when it is stored; and when the memory operand is output from the output means, performing the operation specified by the preceding instruction on the memory operand. 1. A data processing device comprising: means for performing processing on a subsequent instruction that has been stopped, and using the result of the calculation to start processing of the subsequent instruction that has been stopped. 3. When a subsequent instruction is executed using the operation result written to the register by the preceding instruction, the processing of the subsequent instruction that uses the operation result is stopped until the operation result is finalized. In a data processing device, all of the instruction address of the preceding instruction, the instruction address before the preceding instruction, the pre-reading address when reading ahead the preceding instruction, and the read-ahead address when reading ahead the instruction before the preceding instruction. or means for storing the memory operand address and operation result of the preceding instruction in association with an associative key consisting of each arbitrary bit position data combination and memory operand address determination information of the preceding instruction; , When a store instruction is executed by the data processing device, the memory operand address that matches the store address of the store instruction is searched for in the storage means, and in some cases, the corresponding associative key and an associative means for deleting a memory operand address and an operation result; and when the preceding instruction is executed, the storage means is searched based on the associative key at that time, and when the associative key is stored, it is searched for. means for outputting the operation result or the memory operand; and when the operation result is output from the output means, the operation result from the output means is used to start processing of the stopped subsequent instruction. , if the operation result from the output means is equal to the operation result obtained by the operation of the preceding instruction, the started processing of the subsequent instruction is continued; if they are not equal,
means for invalidating the processing of the subsequent instruction and re-executing the processing of the subsequent instruction using the operation result obtained from the operation of the preceding instruction; and when the memory operand is output from the output means, the memory operand is A data processing device comprising means for performing an operation specified by the preceding instruction on an operand and using the result of the operation to start processing of the stopped subsequent instruction. 4. When a subsequent instruction is executed using the operation result written to the register by the preceding instruction, the processing of the subsequent instruction that uses the operation result is stopped until the operation result is finalized. In a data processing device, an instruction address of the preceding instruction, an instruction address of an instruction before the preceding instruction, a look-ahead address when reading ahead the preceding instruction, a look-ahead address when reading ahead the instruction before the preceding instruction, or a combination of arbitrary bit position data of each and the memory operand of the preceding instruction.
means for storing a memory operand address and a memory operand of the preceding instruction in association with an associative key consisting of address determination information; an associative means for searching whether the memory operand address that matches the address exists in the storage means and, in some cases, deleting the corresponding associative key, memory operand address, and memory operand; means for searching the storage means based on the associative key at that time when an instruction is executed, and outputting the memory operand corresponding to the associative key when the associative key is stored; When the operand is output, the method is characterized by having means for performing an operation specified by the preceding instruction on the memory operand, and using the result of the operation to start processing of the stopped subsequent instruction. Data processing equipment.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9550485A JPH0760384B2 (en) | 1985-05-07 | 1985-05-07 | Instruction execution method and data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9550485A JPH0760384B2 (en) | 1985-05-07 | 1985-05-07 | Instruction execution method and data processing device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6071819A Division JP2685713B2 (en) | 1994-04-11 | 1994-04-11 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6284340A true JPS6284340A (en) | 1987-04-17 |
JPH0760384B2 JPH0760384B2 (en) | 1995-06-28 |
Family
ID=14139425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9550485A Expired - Lifetime JPH0760384B2 (en) | 1985-05-07 | 1985-05-07 | Instruction execution method and data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0760384B2 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01187634A (en) * | 1988-01-22 | 1989-07-27 | Hitachi Ltd | Information processing device |
JPH076033A (en) * | 1994-04-11 | 1995-01-10 | Hitachi Ltd | Data processor |
WO1998011484A1 (en) * | 1996-09-13 | 1998-03-19 | Hitachi, Ltd. | Command processor having history memory |
US6421771B1 (en) | 1998-06-29 | 2002-07-16 | Fujitsu Limited | Processor performing parallel operations subject to operand register interference using operand history storage |
US6810474B1 (en) * | 1998-03-04 | 2004-10-26 | Hitachi, Ltd. | Information processor |
US8549263B2 (en) | 2006-03-07 | 2013-10-01 | Intel Corporation | Counter-based memory disambiguation techniques for selectively predicting load/store conflicts |
-
1985
- 1985-05-07 JP JP9550485A patent/JPH0760384B2/en not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01187634A (en) * | 1988-01-22 | 1989-07-27 | Hitachi Ltd | Information processing device |
JPH076033A (en) * | 1994-04-11 | 1995-01-10 | Hitachi Ltd | Data processor |
WO1998011484A1 (en) * | 1996-09-13 | 1998-03-19 | Hitachi, Ltd. | Command processor having history memory |
US6810474B1 (en) * | 1998-03-04 | 2004-10-26 | Hitachi, Ltd. | Information processor |
US6421771B1 (en) | 1998-06-29 | 2002-07-16 | Fujitsu Limited | Processor performing parallel operations subject to operand register interference using operand history storage |
US8549263B2 (en) | 2006-03-07 | 2013-10-01 | Intel Corporation | Counter-based memory disambiguation techniques for selectively predicting load/store conflicts |
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 |
---|---|
JPH0760384B2 (en) | 1995-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4725947A (en) | Data processor with a branch target instruction storage | |
US5202972A (en) | Store buffer apparatus in a multiprocessor system | |
US5291586A (en) | Hardware implementation of complex data transfer instructions | |
US4827402A (en) | Branch advanced control apparatus for advanced control of a branch instruction in a data processing system | |
JP3110404B2 (en) | Microprocessor, software instruction speed-up method therefor, and recording medium recording control program therefor | |
JP2744890B2 (en) | Branch prediction data processing apparatus and operation method | |
JPH06222990A (en) | Data processor | |
KR20170139659A (en) | A computer processor having separate registers for addressing memory | |
KR20220100939A (en) | Techniques for performing store-to-load forwarding | |
JP3254019B2 (en) | Data prefetch control device | |
US5313613A (en) | Execution of storage-immediate and storage-storage instructions within cache buffer storage | |
US5226169A (en) | System for execution of storage-immediate and storage-storage instructions within cache buffer storage | |
JPS6284340A (en) | Data processor | |
EP0550289A2 (en) | A mechanism to detect stores into the instruction stream | |
US7100029B2 (en) | Performing repeat string operations | |
JPH0552534B2 (en) | ||
JP2685713B2 (en) | Data processing device | |
JP2667851B2 (en) | Information processing device | |
WO1998011484A1 (en) | Command processor having history memory | |
JPH02214937A (en) | Data processor | |
JPS5991551A (en) | Instruction prefetching device forecasting address to be branched | |
EP0375892A2 (en) | Data processing system | |
JPH07191911A (en) | Address converter and microprocessor computation method | |
JPH0646381B2 (en) | Instruction fetching device | |
JPS6410858B2 (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |