JPH0760384B2 - Instruction execution method and data processing device - Google Patents
Instruction execution method and data processing deviceInfo
- Publication number
- JPH0760384B2 JPH0760384B2 JP9550485A JP9550485A JPH0760384B2 JP H0760384 B2 JPH0760384 B2 JP H0760384B2 JP 9550485 A JP9550485 A JP 9550485A JP 9550485 A JP9550485 A JP 9550485A JP H0760384 B2 JPH0760384 B2 JP H0760384B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- executed
- register
- 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.)
- Expired - Lifetime
Links
Landscapes
- Advance Control (AREA)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は情報処理装置に係り、特にパイプライン制御の
情報処理装置の高速化に関する。Description: 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.
パイプライン制御の情報処理装置では、命令の処理全体
を複数の部分処理に分割し、各部分処理ごとに独立の処
理装置を設けている。まず第1命令が第1の部分処理を
行う処理装置で処理される。その処理が完了して第2の
部分処理を行う処理装置に移ると、第1の部分処理を行
う処理装置では第2命令の処理が開始される。第1命令
が第3の部分処理を行う処理装置に移ると、第2命令は
第2の部分処理を行う処理装置で処理され、第3命令は
第1の部分処理装置で処理される。このように、第1命
令の処理の全体が完了する前に、第1命令の後続命令の
実行が開始されるので、パイプライン制御の情報処理装
置では高い命令処理性能を実現することが出来る。In a pipeline-controlled information processing device, the entire processing of instructions is divided into a plurality of partial processes, and an independent processing device is provided for each partial process. 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 performs the second partial processing, the processing apparatus performing the first partial processing 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.
しかし、ある命令(以降では後続命令と呼ぶ)より前に
ある命令(以降では先行命令と呼ぶ)があるレジスタを
変更する命令であり、後続命令がそのレジスタを参照す
る命令である場合(レジスタコンフリクト状態と呼
ぶ。)には、命令処理は上記の様には進まない。すなわ
ち、先行命令が演算結果をレジスタに書込むまで、もし
くは先行命令が演算結果を生成するまでは、後続命令の
処理全体、少なくともレジスタを参照する部分処理を停
止させなければならない。このようなレジストコンフリ
クトによる後続命令の実行停止は、パイプライン制御の
情報処理装置においては、性能向上の大きな阻止要因と
なつている。However, if an instruction (hereinafter referred to as a subsequent instruction) that precedes an instruction (hereinafter referred to as a subsequent instruction) is an instruction that changes a register, and the subsequent instruction is an instruction that refers to that register (register conflict) Called 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. The suspension of execution of the subsequent instruction due to such a register conflict is a major impediment to performance improvement in the pipeline control information processing apparatus.
レジスタ・コンフリクトによる実行停止を短縮化する例
としては、特開昭58-96346がある。Japanese Patent Laid-Open No. 58-96346 is an example of shortening the execution stop due to a register conflict.
本発明の目的は、レジスタコンフリクト時の後続命令の
実行停止をなくし、高い命令処理性能を有するパイプラ
イン制御の情報処理装置を提供することにある。An object of the present invention is to provide an information processing apparatus of pipeline control which has a high instruction processing performance by eliminating execution stop of subsequent instructions at the time of register conflict.
本発明では先行命令によつてレジスタに書込まれる演算
結果を用いて後続命令が実行される際に、該演算結果が
確定するまで、該後続命令の処理であつて該演算結果を
用いる処理を停止させるデータ処理装置において、該先
行命令の命令アドレス又は、該先行命令より前の命令の
命令アドレス、該先行命令を先読みする際の先読みアド
レス、該先行命令より前の命令を先読みする際の先読み
アドレスのすべて又はおのおのの任意のビツト位置デー
タの組合せと、該先行命令のメモリ・オペランド・アド
レス決定情報とからなる連想キーとに対応させて該先行
命令のメモリ・オペランド・アドレスと演算結果と演算
結果であることを示す情報を記憶する手段と、該データ
処理装置でストア命令が実行された時に、該ストア命令
のストア・アドレスと一致する該メモリ・オペランド・
アドレスが該記憶手段にあるかを探索し、ある時には、
それに対応する該演算結果を該ストア命令のストア・デ
ータで書換え、該演算結果であることを示す情報をメモ
リ・オペランドであることを示す情報に書換える連想書
込み手段と、該先行命令が実行された時にその時の該連
想キーに基づいて該記憶手段を探索し、該連想キーが記
憶されている時にはそれに対応する該演算結果又は該メ
モリ・オペランドを出力する手段と、該出力手段より該
演算結果が出力された時には、該出力手段よりの該演算
結果を用いて停止されている該後続命令の処理を開始
し、該出力手段よりの該演算結果が該先行命令の演算で
求まる演算結果と等しい場合には、開始した該後続命令
の処理を継続し、等しくない場合には、該後続命令の処
理を無効にし、該先行命令の演算で求まる演算結果を用
いて該後続命令の処理を再実行する手段と、該出力手段
より該メモリ・オペランドが出力された時には、該メモ
リ・オペランドに対して該先行命令の指定する演算を施
し、その演算結果を用いて停止されている該後続命令の
処理を開始する手段を有することを特徴とするデータ処
理装置を提案する。According to the present invention, when the subsequent instruction is executed by using the operation result written in the register by the preceding instruction, the processing of the subsequent instruction and the processing using the operation result are performed until the operation result is determined. In the data processing device to be stopped, the instruction address of the preceding instruction, the instruction address of the instruction before the preceding instruction, the prefetch address when prefetching the preceding instruction, the prefetch when prefetching the instruction before the preceding instruction The memory operand address of the preceding instruction, the operation result, and the operation are associated with the associative key consisting of all the addresses or arbitrary bit position data combinations and the memory operand address determining information of the preceding instruction. Means for storing information indicating the result, and a store address of the store instruction when the store instruction is executed by the data processing device. The memory operand that matches the
Search for an address in the storage means, and at some time,
Associative writing means for rewriting the operation result corresponding to it with the store data of the store instruction, and rewriting the information indicating the operation result with the information indicating the memory operand, and the preceding instruction being executed. When the associated key is stored, the storage means is searched, and when the associated key is stored, means for outputting the operation result or the memory operand corresponding thereto, and the operation result from the output means Is output, the processing of the subsequent instruction stopped by using the operation result from the output means is started, and the operation result from the output means is equal to the operation result obtained by the operation of the preceding instruction. In this case, the processing of the started subsequent instruction is continued, and if they are not equal, the processing of the subsequent instruction is invalidated, and the processing of the subsequent instruction is performed using the operation result obtained by the operation of the preceding instruction. And a means for re-executing the above, when the memory operand is output from the output means, the operation specified by the preceding instruction is applied to the memory operand, and the subsequent operation stopped using the operation result. We propose a data processing device characterized in that it has means for starting the processing of instructions.
これにより、レジスタコンフリクト発生時に停止される
後続命令の処理を、連想記憶の出力する情報を用いて開
始できるので、上記目的を達成できる。As a result, the processing of the subsequent instruction that is stopped when the register conflict occurs can be started using the information output from the associative memory, so that the above object can be achieved.
以下、本発明の一実施例を図に従つて詳細に説明する。 An embodiment of the present invention will be described in detail below with reference to the drawings.
まず、第1図Aを使つて本実施例で用いる命令形式を説
明する。この命令形式では、各命令語は4バイト長から
構成される。第1バイトはオペコード(op)を表わす。
第2バイト及び第3バイトの上4ビツトは3つのレジス
タ指示フイールド(R1,X2,B2)を表わす。第3バイトの
下4ビツト及び第4バイトは変位(D2)を表わす。この
命令形式では各レジスタ指示フイールドはそれぞれ4ビ
ツトであり、それぞれ15個のレジスタの1つを指示す
る。First, the instruction format used in this embodiment will be described with reference to FIG. 1A. 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 second and third bytes represent the three register indicating fields (R1, X2, B2). The bottom 4 bits of the 3rd byte and the 4th byte represent the displacement (D2). In this instruction format, each register designation field is 4 bits and each designates one of 15 registers.
命令がStore命令以外の場合には、この意味は、X2フイ
ールドの指示する汎用レジスタの内容とB2フイールドの
指示する汎用レジスタの内容と変位D2の和をオペランド
アドレスとし、このアドレスの指す主記憶上のロケーシ
ヨンの内容(第2オペランドと呼ぶ)と、R1フイールド
の指示する汎用レジスタの内容(第1オペランドと呼
ぶ)とに対して、オペコードopで示される演算を施し、
R1フイールドの指示する汎用レジスタに格納することで
ある。If the instruction is not a Store instruction, this means that the sum of the contents of the general-purpose register indicated by the X2 field, the contents of the general-purpose register indicated by the B2 field and the displacement D2 is used as the operand address, and the main memory pointed to by this address The operation indicated by the operation code op is performed on the contents of the location (called the second operand) and the contents of the general-purpose register designated by the R1 field (called the first operand).
It is to be stored in the general-purpose register designated by the R1 field.
命令がストア(Store)命令の場合には、上述とは逆
に、第1オペランドである汎用レジスタの内容を、第2
オペランドである主記憶上のロケーシヨンに格納する。If the instruction is a store instruction, the contents of the general-purpose register which is the first operand
It is stored in the location on the main memory which is the operand.
なお、この命令形式はIBMシステム(System)/370の命
令形式から引用したものであり、更に詳しくは“IBMシ
ステム(Ststem)/370動作処理(307Principles of Ope
ration)”に示されている。This command format is quoted from the command format of IBM System / 370, and more specifically, "IBM System (Ststem) / 370 operation processing (307Principles of Ope
ration) ”.
第1B図は、第1A図で表わされた命令をニユーモニツクで
表わしたものである。FIG. 1B is a newmonic representation of the instructions shown in FIG. 1A.
第2図は、レジスタコンフリクトを起している命令列の
例である。先行命令()はAdd命令であり、レジスタ
1の内容と、レジスタ2の内容と変位100を加えて得ら
れるアドレスの内容をレジスタ5の内容と加算してレジ
スタ5に格納することを意味する。後続命令()はサ
ブトラクト(Subtract)命令であり、レジスタ1の内容
と、レジスタ5の内容と変位150を加えて得られるアド
レスの内容をレジスタ8の内容から引いてレジスタ8に
格納することを意味する。FIG. 2 is an example of an instruction sequence causing a register conflict. The preceding instruction () is an Add instruction, which 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. Subsequent instruction () is a Subtract instruction, meaning that the contents of register 1, the contents of register 5 and displacement 150 are subtracted from the contents of register 8 and stored in register 8. To do.
先行命令は演算結果をレジスタ5に書込み、後続命令は
レジスタ5の内容を用いているので、レジスタコンフリ
クトが起きている。Since the preceding instruction writes the operation result in the register 5 and the succeeding instruction uses the contents of the register 5, a register conflict has occurred.
次に第3図を使つて実施例の全体構成の概要を説明す
る。この実施例は、先行命令の演算結果として、連想記
憶に蓄えた先行命令の以前の実行での演算結果又は連想
記憶に蓄えた先行命令の第2オペランドに対して演算を
施した結果を用いるものである。Next, the outline of the overall configuration of the embodiment will be described with reference to FIG. 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.
まず、304は命令記憶装置であり、326はオペランド記憶
装置である。命令記憶装置304とオペランド記憶装置は
バイト単位に24ビツトのアドレスでアドレス付けされて
いる。First, 304 is an instruction storage device, and 326 is an operand storage device. The instruction store 304 and the operand store are addressed byte by byte with a 24 bit address.
100は先読み命令アドレスレジスタである。命令の先読
みは、常に命令記憶装置上の4命令語境界から始まる4
命令語単位に行われる。したがつて先読み命令アドレス
レジスタ(IFA)100には24ビツトのアドレスのうちの上
位20ビツト(ビツト0-19)が格納される。Reference numeral 100 is a prefetch instruction address register. Prefetching of instructions always starts at a 4-instruction word boundary on the instruction storage device.
It is performed in units of command words. Therefore, the prefetch instruction address register (IFA) 100 stores the upper 20 bits (bits 0 to 19) of the 24 bit address.
102は先読み命令アドレスレジスタの遅延レジスタであ
る。102 is a delay register of the prefetch instruction address register.
104,106,108,110はそれぞれ命令バツファIB0,IB1,IB2,I
B3であり、命令記憶装置304から先読みされた4命令語
がこの順に格納される。104, 106, 108, 110 are instruction buffers IB0, IB1, IB2, I respectively
It is B3, and the four instruction words prefetched from the instruction storage device 304 are stored in this order.
112は命令レジスタであり、114は命令カウンタである。
1命令語は命令記憶装置上の命令語境界からの4バイト
に必ず置かれる。したがつて、命令カウンタには24ビツ
トのアドレスのうちの上位22ビツト(ビツト0-21)が格
納される。命令カウンタ114の値は、その時の命令レジ
スタ112中の命令語の命令アドレスとなつている。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. The value of the instruction counter 114 is the instruction address of the instruction word in the instruction register 112 at that time.
118は16個のレジスタよりなるレジスタフアイルであ
る。118 is a register file composed of 16 registers.
324はアドレス加算器であり、命令語のX2フイールドの
指示するレジスタの内容すなわち、X2レジスタ値とB2フ
イールドの指示するレジスタの内容すなわち、B2レジス
タ値と変位D2を加算する。加算結果はオペランドアドレ
スレジスタ120に格納される。An address adder 324 adds the contents of the register indicated by the X2 field of the instruction word, that is, the X2 register value and the contents of the register indicated by the B2 field, that is, the B2 register value and the displacement D2. The addition result is stored in the operand address register 120.
122はオペランドデータレジスタであり、330はALUであ
る。122 is an operand data register and 330 is an ALU.
124,130,132,134,136はそれぞれ命令レジスタ122の遅延
レジスタ、命令カウンタ114の遅延レジスタ、X2レジス
タ値の遅延レジスタ、B2レジスタ値の遅延レジスタ値お
よび先読み命令アドレスの遅延レジスタであり、オペラ
ンドアドレスレジスタ120にオペランドアドレスが格納
される時に、その命令の命令レジスタ値、命令カウンタ
値、X2レジスタ値、B2レジスタ値およびその命令の先読
み時の先読み命令アドレスが格納される。124, 130, 132, 134, and 136 are 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, respectively, and the operand address register 120 stores the operand address. At that time, the instruction register value, the instruction counter value, the X2 register value, the B2 register value of the instruction and the prefetch instruction address when prefetching the instruction are stored.
126,138,140,142,144はそれぞれレジスタ124,130,132,1
34,136の遅延レジスタであり、オペランドデータレジス
タ122にオペランドデータが格納される時に、その命令
の命令レジスタ値、命令カウンタ値、X2レジスタ値、B2
レジスタ値およびその命令の先読み時の先読み命令アド
レスがそれぞれに格納される。126,138,140,142,144 are registers 124,130,132,1 respectively
These are 34,136 delay registers, and when the operand data is stored in the operand data register 122, the instruction register value of the instruction, the instruction counter value, the X2 register value, the B2
The register value and the prefetch instruction address when prefetching the instruction are stored in each.
320は連想記憶装置であり、322はレジスタコンフリクト
検出装置である。Reference numeral 320 is an associative memory device, and 322 is a register conflict detection device.
次に、第3図の全体構成図と第5図のタイミングチヤー
ト図を使つて、レジスタコンフリクトがない場合の全体
の動作を説明する。Next, the overall operation when there is no register conflict will be described using the overall configuration diagram of FIG. 3 and the timing chart of FIG.
第5図の如く時刻TOより先読みアドレスレジスタには第
1命令から第4命令を先読みする際の先読みアドレスが
格納されているとする。また命令レジスタ112と命令カ
ウンタ114には時刻T2以前において第1命令の前の命
令、すなわち第0命令の命令語と命令アドレスが格納さ
れているとする。先読みアドレスレジスタ100のアドレ
スは信号線500を介して命令記憶装置304に印加され、そ
のアドレスから始まる4命令語が信号線506に出力さ
れ、第1命令語から第4命令語までの4命令語は時刻T1
に命令バツフア104,106,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 TO. 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 four instruction words starting from that address are output to the signal line 506, and four instruction words from the first instruction word to the fourth instruction word. Is time T1
Are stored in the instruction buffers 104, 106, 108, 110.
アドレス増加器302は、先読みアドレスレジスタ100のア
ドレスを入力として、そのアドレスを4命令語分増加さ
せたアドレスを信号線502に出力する。セレクタ300の選
択信号である信号線586の信号は通常「右選択信号」で
あり(「右選択信号」以外の値を取る場合は下記で説明
される時だけである)、この時、信号線502の信号がセ
レクタ300を通つて信号線506に出力されて、先読アドレ
スレジスタ100に格納される。格納される時刻は時刻T0
の4周期後の時刻T4である。命令バフフア104,106,108,
110には次の4命令語が格納される時刻T5までこの4命
令語が格納される。先読みアドレスレジスタ100は通常
このように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 increased 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 usually the “right selection signal” (only when it is explained below when a value other than the “right selection signal” is taken). The signal 502 is output to the signal line 506 through the selector 300 and stored in the prefetch address register 100. Time stored is time T0
It is time T4 after four cycles of. Order Bahhua 104,106,108,
These four command words are stored in 110 until time T5 when the next four command words are stored. Since the prefetch address register 100 is normally incremented by four instruction words in this way, subsequent instructions are sequentially prefetched and stored in units of four instructions in the instruction buffers 104, 106, 108 and 110.
時刻T2以前においては、命令カウンタ114には第0命令
の命令アドレスが格納されていた。命令カウンタ114の
値は信号線530を介してアドレス増加器310に印加され
て、1命令語分増加されて、第1命令の命令アドレスと
なる。増加された値は信号線520を介してセレクタ308に
入力される。セレクタ308の選択信号586は上述したよう
に通常「右選択信号」であり、この時、信号線520の値
はセレクタ308を介して信号線518へ出力される。信号線
518の値は命令カウンタ114に格納される。また、その値
はセレクタ306に印加される。セレクタ306は、信号線51
8の22ビツトアドレス値のうちの下2ビツトを見て、そ
れが0ならば信号線508のデータが信号線516へ出力さ
れ、それが1ならば信号線510のデータが信号線516に出
力される。又それが2ならば信号線512のデータが信号5
16へ出力され、それが3ならば信号線514のデータが信
号線516へ出力される。これにより、命令レジスタに前
の時刻でセツトされた命令の次の命令がセレクタ306で
選択されて命令レジスタ112に格納される。時刻T2にお
いては命令バツフアIBO104から第1命令語が命令レジス
タ112に格納されて、同時に命令カウンタ114には第1命
令の命令アドレスが格納される。Prior to time T2, the instruction counter 114 stores the instruction address of the 0th instruction. 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. The increased value is input to the selector 308 via the signal line 520. The selection signal 586 of the selector 308 is usually the “right selection signal” as described above, and at this time, the value of the signal line 520 is output to the signal line 518 via the selector 308. Signal line
The value of 518 is stored in the instruction counter 114. The value is also applied to the selector 306. The selector 306 uses the signal line 51
Looking at the lower 2 bits of the 22-bit address value of 8, if it is 0, the data of the signal line 508 is output to the signal line 516, and if it is 1, the data of the signal line 510 is output to the signal line 516. To be done. If it is 2, the data on signal line 512 is signal 5
16 is output, and if it is 3, the data of the signal line 514 is output to the signal line 516. As a result, the instruction next to the instruction set in the instruction register at the previous time is selected by the selector 306 and stored in the instruction register 112. At time T2, the first instruction word from the instruction buffer IBO 104 is stored in the instruction register 112, and at the same time, the instruction address of the first instruction is stored in the instruction counter 114.
また、IFASVレジスタ102には、先読み命令アドレスレジ
スタIFA100の2周期遅れの時刻T2に、先読み命令アドレ
スレジスタの値が格納される。Further, the value of the prefetch instruction address register is stored in the IFASV register 102 at the time T2 delayed by two cycles of the prefetch instruction address register IFA100.
セレクタ312,314には信号線532を介して16個のレジスタ
よりなるレジスタフアイル118の値が印加される。セレ
クタ312には更に信号線524を介して命令レジスタ112中
の第1命令のX2フイールドの4ビツトが印加される。セ
レクタ312はこれによりX2フイールドの指示するレジス
タの値を信号線534に出力する。セレクタ314には信号線
526を介して命令レジスタ112中の第1命令のB2フイール
ドの4ビツトが印加される。セレクタ314はこれによりB
2フイールドの指示するレジスタの値を信号線536に出力
する。信号線592,590,593,591には通常「0」が印加さ
れており、(「0」以外の値が印加されるのは下記で説
明する場合だけである)、この時、第10図に示したセレ
クタ316,318の動作図に従つて、信号線534の値はセレク
タ316を介して信号線540に出力され、信号線536の値は
セレクタ318を介して信号線542に出力される。The values of the register file 118 including 16 registers are applied to the selectors 312 and 314 via the signal line 532. Further, 4 bits of the X2 field of the first instruction in the instruction register 112 are applied to the selector 312 via the signal line 524. Accordingly, the selector 312 outputs the value of the register designated by the X2 field to the signal line 534. Signal line for selector 314
4 bits of the B2 field of the first instruction in the instruction register 112 are applied via 526. Selector 314 is now B
2 Output the value of the register indicated by the field to the signal line 536. Normally, "0" is applied to the signal lines 592, 590, 593, 591 (a value other than "0" is applied only in the case described below). At this time, the selectors 316, 318 shown in FIG. According to the operation diagram, 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.
アドレス加算器にはこのようにして信号線540を介して
第1命令のX2フイールドの指示するレジスタの内容が入
力され、信号線542を介しては第1命令のB2フイールド
の指示するレジスタの内容が入力される。更に、信号線
528を介して命令レジスタ112中の第1命令の変位D2が入
力される。アドレス加算器は上記3つの入力値を加算
し、加算結果である第1命令のオペランドアドレスを信
号線548に出力し、それは時刻T3でオペランドアドレス
レジスタのOA120に格納される。また同時刻に、IR1レジ
スタ124には第1命令語が信号線522を介して格納され、
IC1レジスタ130には第1命令アドレスが信号線530を介
して格納され、GRX1レジスタ132には第1命令のX2レジ
スタ値が信号線540を介して格納され、GRB1には第1命
令のB2レジスタ値が信号線542を介して格納され、IFA1
レジスタ136には第1命令を先読みした際の先読み命令
アドレスが格納される。In this way, the contents of the register designated by the X2 field of the first instruction are inputted to the address adder via the signal line 540, and the contents of the register designated by the B2 field of the first instruction are inputted via the signal line 542. Is entered. Furthermore, the signal line
The displacement D2 of the first instruction in the instruction register 112 is input via 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 OA 120 of the operand address register at time T3. At the same time, the first command word is stored in the IR1 register 124 via the signal line 522,
The first instruction address is stored in the IC1 register 130 via the signal line 530, the X2 register value of the first instruction is stored in the GRX1 register 132 via the signal line 540, and the GRB1 is the B2 register of the first instruction. The value is stored via signal line 542, IFA1
The register 136 stores the prefetch instruction address when the first instruction is prefetched.
オペランド記憶装置326には信号線550を介してオペラン
ドアドレスレジスタ120中の第1命令のオペランドアド
レスが印加され、信号線552にはそのアドレスで示され
るロケーシヨンにある第1命令のオペランドデータが出
力される。時刻T4になると、この第1命令のオペランド
データはオペランドデータレジスタ122に格納される。The operand address of the first instruction in the operand address register 120 is applied to the operand storage device 326 via the signal line 550, and the operand data of the first instruction at the location indicated by the address is output to the signal line 552. It At time T4, the operand data of this first instruction is stored in the operand data register 122.
同時刻に、IR2レジスタ126には、信号線562を介してIR1
レジスタから第1命令語が格納され、IC2レジスタ138に
は、信号線572を介してIC1レジスタ130から第1命令の
命令アドレスが格納され、GRX2レジスタ140には、信号
線570を介してGRX1レジスタ132から第1命令のX2レジス
タ値が格納され、GRB2レジスタ142には、信号線568を介
してGRB1レジスタ134から第1命令のB2レジスタ値が格
納され、IFA2レジスタ144には、信号線566を介してIFA1
レジスタ136から第1命令語を先読みした際の先読み命
令アドレスが格納され、OA2レジスタ706には、信号線55
0を介してOAレジスタ120よりオペランド・アドレスが格
納される。At the same time, IR1 is sent to IR2 register 126 via signal line 562.
The register stores the first instruction word, the IC2 register 138 stores the instruction address of the first instruction from the IC1 register 130 via the signal line 572, and the GRX2 register 140 stores the GRX1 register via the signal line 570. 132 stores the X2 register value of the first instruction, GRB2 register 142 stores the B2 register value of the first instruction from GRB1 register 134 via signal line 568, and IFA2 register 144 stores signal line 566. Through IFA 1
The prefetch instruction address when the first instruction word is prefetched from the register 136 is stored, and the OA2 register 706 stores the signal line 55.
The operand address is stored from the OA register 120 via 0.
ALU330には3つの入力信号線がある。信号線554から
は、オペランドデータレジスタ122にある第1命令のオ
ペランドデータが入力される。信号線594からはIR2レジ
スタ126にある第1命令のオペコードが入力される。セ
レクタ328には信号線532を介して16個のレジスタよりな
るレジスタフアイル118の値が印加され、更に信号線558
を介して第1命令のR1フイールドが印加される。これに
より、セレクタ328は、R1フイールドによつて指示され
るレジスタの値、すなわちR1レジスタ値を信号線560に
印加し、それがALU330に入力される。ALUは、信号線560
からの入力データを第1オペランドデータとし、信号線
554からの入力データを第2オペランドデータとして、
両者に信号線594に示されるオペコードの演算を施し、
その演算結果を信号線556に出力する。The ALU330 has three input signal lines. The operand data of the first instruction in the operand data register 122 is input from the signal line 554. 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 the value of the signal line 558 is further applied.
The R1 field of the first instruction is applied via the. As a result, the selector 328 applies the value of the register designated by the R1 field, that is, the R1 register value to the signal line 560, which is input to the ALU 330. ALU is signal line 560
The input data from is the first operand data, and the signal line
Input data from 554 as the second operand data,
Perform the operation of the operation code shown on the signal line 594 to both,
The calculation result is output to the signal line 556.
レジスタフアイル118には、信号線556を介して第1命令
の演算結果が印加され、信号線558を介してIR2レジスタ
126にある第1命令のR1フイールドが印加される。時刻T
5になると、上記第1命令の演算結果はR1フイールドの
指示するレジスタ、すなわちR1レジスタに書込まれる。The operation result of the first instruction is applied to the register file 118 via the signal line 556, and the IR2 register is applied via the signal line 558.
The R1 field of the first instruction at 126 is applied. Time T
When it reaches 5, the operation result of the first instruction is written in the register designated by the R1 field, that is, the R1 register.
なお、命令がストア(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 inputted via the signal line 560 to the operand address of the store instruction inputted via the signal line 708 at the operand storage device become the time T5. Written. At this time, the writing to the R1 register described above is not performed.
以上により第1命令の処理は終了する。With the above, the processing of the first instruction ends.
第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 processing proceeds in the same manner as the first instruction.
第3命令以降の命令の処理は、前の命令処理の1周期遅
れの時刻で第1,第2命令のように進む。ただし、命令の
先読みは4命令語単位であるので、先読み命令アドレス
レジスタ100,命令バツフア104,106,108,110,IFASVレジ
スタ102への格納はそれぞれ4周期ごとに1度ずつ行な
われる。The processing of the instructions after the third instruction proceeds like the first and second instructions at a time one cycle behind the processing of the previous instruction. However, since the prefetch of the instruction is performed in units of four instruction words, the prefetch instruction address register 100, the instruction buffers 104, 106, 108, 110, and the IFASV register 102 are stored once every four cycles.
以上のように、レジスタコンフリクトがない場合には1
周期ごとに命令処理が進んでいく。As described above, 1 if there is no register conflict
Command processing progresses every cycle.
次に、レジスタコンフリクトのある場合の全体の動作説
明に移るが、その前に第4図を用いて、連想記憶装置32
0の説明をする。Next, an explanation will be given of the overall operation when there is a register conflict. Before that, referring to FIG.
0 is explained.
実施例における連想記憶装置の記憶容量は10ワードであ
る。The storage capacity of the associative memory device in the embodiment is 10 words.
各ワードは、IC記憶部ICP346とIR記憶部IRP348とX2レジ
スタ値記憶部GRXP350とB2レジスタ値記憶部GRBP352と先
読み命令アドレス記憶部IFAP354とデータ記憶部DATAP35
6とアドレス記憶部ADDRP345とフラグ記憶部FLGP347から
なる。Each word has an IC storage unit ICP346, an IR storage unit IRP348, an X2 register value storage unit GRXP350, a B2 register value storage unit GRBP352, a prefetch instruction address storage unit IFAP354, and a data storage unit DATAP35.
6 and an address storage unit ADDRP345 and a flag storage unit FLGP347.
信号線530,522,540.542,500にデータを印加すると、連
想記憶装置は探索をする。信号線530,522,540,542,500
上のデータとIC記憶部ICP346,IR記憶部IRP348,X2レジス
タ値記憶部GRXP350,B2レジスタ値記憶部GRBP352,先読み
命令アドレス記憶部IFAP354のデータがそれぞれ全部一
致するワードがある時には、一致検出器344は「1」を
出力してHITLレジスタ156を「1」にし、かつそのワー
ドのデータ記憶部DATAP356のデータをDATALレジスタ158
に格納し、フラグ記憶部FLGP347のデータをFLGLレジス
タ157に格納する。一致するワードがない時は、一致検
出器344は「0」を出力してHITLレジスタ156を「0」に
する。When data is applied to the signal lines 530, 522, 540.542,500, the associative memory device searches. Signal line 530,522,540,542,500
When there is a word in which the above data and the data in IC storage unit ICP346, IR storage unit IRP348, X2 register value storage unit GRXP350, B2 register value storage unit GRBP352, and prefetch instruction address storage unit IFAP354 all match, there is a match detector 344. Outputs "1" to set the HITL register 156 to "1", and the data in the data storage unit DATAP356 of that word is transferred to the DATAL register 158.
And stores the data of the flag storage unit FLGP347 in the FLGL register 157. When there is no matching word, the match detector 344 outputs "0" and sets the HITL register 156 to "0".
一方、信号線584に「1」又は信号線586に「0」が印加
された時には、連想記憶装置は、信号線580,564,578,57
6,574,556,708上のデータをそれぞれIC記憶部ICP346,IR
記憶部IRP348,X2レジスタ値記憶部GRXP350,B2レジスタ
値記憶部GRBP352,先読み命令アドレス記憶部IFAP354、
データ記憶部DATAP356アドレス記憶部ADDRP345のデータ
とし、フラグ記憶部FLGP347を「1」とするワードを登
録する。その際、IC記憶部ICP346,IR記憶部IRP348,X2レ
ジスタ値記憶部GRXP350,B2レジスタ値記憶部GRBP352,先
読み命令アドレス記憶部IFAP354のデータが全部一致す
るワードがすでに記憶されている時には、そのワードの
上に重ね書きされる。一致するワードがまだ記憶されて
いない時には、新しくワードが割り当てられて登録され
る。On the other hand, when “1” is applied to the signal line 584 or “0” is applied to the signal line 586, the associative memory device outputs the signal lines 580, 564, 578, 57.
Data on 6,574,556,708 are stored in IC memory ICP346, IR
Storage unit IRP348, X2 register value storage unit GRXP350, B2 register value storage unit GRBP352, prefetch instruction address storage unit IFAP354,
Data storage unit DATAP356 Address storage unit ADDRP345 is used as data, and a flag storage unit FLGP347 is set to "1". At that time, when a word in which all the data in the IC storage unit ICP346, the IR storage unit IRP348, the X2 register value storage unit GRXP350, the B2 register value storage unit GRBP352, and the prefetch instruction address storage unit IFAP354 are already stored, that word is stored. Overwritten. When the matching word is not yet stored, a new word is assigned and registered.
また、信号線712に「1」が印加された時、すなわち、
ストア(Store)命令が実行された時には、連想記憶装
置は信号線708を介して送られるストア(Store)命令の
オペランド・アドレスとアドレス記憶部ADDRPが一致す
るワードが存在するか検出し、存在する場合にはそのよ
うなすべてのワードのデータ記憶部DATAPを信号線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 detects whether there is a word in which the operand address of the Store instruction sent via the signal line 708 and the address storage unit ADDRP exist and exists. In this case, the data storage unit DATAP of all such words is rewritten with the contents of the R1 register of the store instruction transferred via the signal line 560, and the flag storage unit FLGP of that word is rewritten.
Store "0".
なお、フラグ記憶部FLGPの「1」は、対応するデータ記
憶部DATAPに以前に命令が実行された時の演算結果が記
憶されていることを意味し、フラグ記憶部FLGPの「0」
は、対応するデータ記憶部DATAPに第2オペランド・デ
ータが記憶されていることを意味する。Note that "1" in the flag storage unit FLGP means that the corresponding data storage unit DATAP stores the operation result when the instruction was previously executed, and "0" in the flag storage unit FLGP.
Means that the second operand data is stored in the corresponding data storage unit DATAP.
以上で連想記憶装置の説明を終わる。This is the end of the description of the associative memory device.
次に、レジスタコンフリクトのある場合の動作説明を行
なう。レジスタコンフリクトのある命令としては第2図
の2命令を考え、Add命令が第1命令とし、サブトラク
ト(Subtract)命令が第2命令とする。第3命令以降は
これらの命令との間でレジスタコンフリクトを起さない
任意の命令とする。Next, the operation when there is a register conflict will be described. The two instructions in FIG. 2 are considered as the instruction having a register conflict, and 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.
本発明では、レジスタコンフリクトを起している先行命
令(以下で考える例では第1命令)の演算結果を、連想
記憶装置に記憶した情報を用して求めている。したがつ
て先行命令を実行する際に、その連想記憶装置に情報が
あるか否かで予測が出来るか出来ないかが決まる。In the present invention, the operation result of the preceding instruction (the first instruction in the example considered below) causing the register conflict is obtained by using the information stored in the associative storage device. Therefore, when the preceding instruction is executed, whether or not the prediction can be made depends on whether or not there is information in the associative memory.
まず、連想記憶装置に以前の実行時の情報がない場合を
説明する。第6図をタイミングチヤート図として用い
る。First, a case where the associative storage device has no information at the time of previous execution will be described. FIG. 6 is used as a timing chart.
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第6図のタイミ
ングチヤート図のうち、第1命令から第4命令に関する
IFA,IBO〜3,IFASV,第1命令に関するIR/IC,OA/IR1/IC1/
GRX1/GRB1/IFA1,OD/IR2/IC2/GRX2/GRB2/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 the operation when there is no register conflict as described above. That is, regarding the first to fourth instructions in the timing chart of FIG.
IFA, IBO-3, IFASV, IR / IC, OA / IR1 / IC1 / for 1st instruction
The timing of GRX1 / GRB1 / IFA1, OD / IR2 / IC2 / GRX2 / GRB2 / IFA2, GR is the same as that of FIG. The other parts will be described below.
まず、時刻TOより先読み命令アドレスレジスタ100に格
納されている先読み命令アドレスは信号線500を介して
連想記憶装置の先読み命令アドレス記憶部IFAP354に印
加されている。また、時刻T2になると第1命令の命令
語、命令アドレス,X2レジスタ値、B2レジスタ値がそれ
ぞれ信号線522,530,540,542を介してそれぞれ連想記憶
装置のIR記憶部348,IC記憶部346,X2レジスタ値記憶部35
0,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 IFAP354 of the associative storage device via the signal line 500. At time T2, the instruction word, instruction address, X2 register value, and B2 register value of the first instruction are stored in the IR storage unit 348, IC storage unit 346, and X2 register value storage of the associative storage device via the signal lines 522, 530, 540, and 542, respectively. Part 35
0, applied to the B2 register value storage unit 352.
連想記憶装置は上記信号線530,522,540,542,500のデー
タで探索をする。今は、連想記憶装置に以前の実行時の
情報がない場合を考えているので、時刻T3においてHITL
レジスタ156には「0」が格納される。更に、この
「0」は信号線546に印加される。The associative memory device searches for the data on the signal lines 530, 522, 540, 542,500. Since we are now considering the case where the associative memory does not have information from the previous execution, HITL
“0” is stored in the register 156. Further, this “0” is applied to the signal line 546.
時刻T3においてIR1レジスタ124には第1命令であるAdd
命令の命令語が格納されており、命令レジスタ112には
第2命令であるサブトラクト(Subtract)命令の命令語
が格納されている。したがつて、信号線582上には第1
命令のR1フイールドの「5」が印加され、信号線524に
は第2命令のX2フイールド「5」が印加される。第1命
令と第2命令以外ではレジスタコンフリクトがないと仮
定しているので、信号線558,526には「5」とは異なる
値が印加されている。したがつて、一致比較回路160の
出力は「1」になり、他の一致比較回路162,164,166の
出力は「0」となる。故にOR回路168の出力信号線593は
「1」になる。また、OR回路170の出力信号線591,AND回
路172の出力信号線592,AND回路174の出力信号線590,AND
回路180の出力信号線584は「0」になる。At time T3, the first instruction Add to the IR1 register 124
The instruction word of the instruction is stored, and the instruction register 112 stores the instruction word of the Subtract instruction which is the second instruction. Therefore, the first on the signal line 582.
The R1 field “5” of the instruction is applied, 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 other than the first instruction and the second instruction, a value different from “5” is applied to the signal lines 558 and 526. Therefore, the output of the coincidence comparison circuit 160 becomes "1", and the outputs of the other coincidence comparison circuits 162, 164, 166 become "0". Therefore, the output signal line 593 of the OR circuit 168 becomes "1". Further, the output signal line 591 of the OR circuit 170, 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 circuit 180 becomes “0”.
信号線592は「0」であり、信号線593は「1」であるの
で、第10図に示したように、信号線540上に有意なデー
タは出力されない。一方、セレクタ318は信号線536上の
第2命令のB2レジスタ値を信号線542を介してアドレス
加算器324に印加する。信号線528からは第2命令の変位
がアドレス加算器に印加される。これにより、時刻T4に
おいては、オペランドアドレスレジスタ120には有意な
データは格納されない。Since the signal line 592 is "0" and the signal line 593 is "1", no significant data is output on the signal line 540 as shown in FIG. 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.
また、IR1レジスタ124,IC1レジスタ130,GRX1レジスタ13
2,GRB1レジスタ134,IFA1レジスタ136にも有意なデータ
は格納されない。Also, IR1 register 124, IC1 register 130, GRX1 register 13
No significant data is stored in the 2, GRB1 register 134 or IFA1 register 136.
以降の第2命令の動作では、信号線540上には有意なデ
ータは出力されないのでアドレス加算器548は有意なデ
ータを出力しない。したがつて、時刻T4になつてもオペ
ランドアドレスレジスタ120には有意なデータは格納さ
れない。また、IR1レジスタ124,IC1レジスタ130,GRX1レ
ジスタ132,GRB1レジスタ134,IFA1レジスタ136にも有意
なデータは格納されない。In the subsequent operation of the second instruction, since the significant data is not output on the signal line 540, the address adder 548 does not output the significant data. Therefore, no significant data is stored in the operand address register 120 even at time T4. Further, 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.
一方、時刻T4になるとIR2レジスタ126には第1命令であ
るAdd命令の命令語が格納されている。この時には、一
致比較回路164の出力は「1」になり、他の一致比較回
路160,162,166の出力は「0」になる。故に、OR回路168
の出力信号線593とAND回路180の出力信号線584は「1」
になる。また、OR回路170,182の出力信号線591,596とAN
D回路172と174の出力信号線592,590は「0」になる。こ
の時も信号線592は「0」であり、信号線593は「1」な
ので信号線540上には何のデータも出力されない。信号
線540上には有意なデータが出力されないのでアドレス
加算器548は有意なデータを出力しない。したがつて時
刻T5になつてもオペランドアドレスレジスタ120には有
意なデータは格納されない。また、IR1レジスタ124,IC1
レジスタ130,GRX1レジスタ132,GRB1レジスタ134,IFAレ
ジスタ136にも有意なデータは格納されない。On the other hand, at time T4, the IR2 register 126 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 outputs of the other coincidence comparison circuits 160, 162, 166 become "0". Therefore, the OR circuit 168
The output signal line 593 of and the output signal line 584 of the AND circuit 180 are "1".
become. In addition, the output signal lines 591 and 596 of the OR circuits 170 and 182 and the AN
The output signal lines 592 and 590 of the D 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 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. Also, IR1 register 124, IC1
No significant data is stored in the register 130, the GRX1 register 132, the GRB1 register 134, or the IFA register 136.
一方、時刻T5になると、IR2レジスタ138には有意なデー
タは格納されていない。この時には一致比較回路160,16
2,164,166の出力は「0」となる。故に信号線590,591,5
92,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 coincidence comparison circuits 160, 16
The output of 2,164,166 is "0". Therefore signal line 590,591,5
92,593,584,596 are all "0".
これにより、セレクタ316は信号線534上の第2アドレス
のX2レジスタ値を信号線540を介してアドレス加算器324
に印加し、セレクタ318は信号線536上の第2アドレスの
B2レジスタ値を信号から542を介してアドレス加算器324
に印加する。信号線528からは第2アドレスの変位がア
ドレス加算器に印加される。これにより、時刻T6におい
て、第2アドレスのオペランドアドレスがオペランドア
ドレスレジスタ120に格納される。As a result, the selector 316 outputs the X2 register value of the second address on the signal line 534 to the address adder 324 via the signal line 540.
To the second address on the signal line 536.
Address adder 324 from signal B2 register value via 542
Apply to. 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.
また、IR1レジスタ124,IC1レジスタ130,GRX1レジスタ13
2,GRB1レジスタ134,IFA1レジスタ136には、レジスタコ
ンフリクトのない時の動作と同一のデータが時刻T6で格
納される。Also, IR1 register 124, IC1 register 130, GRX1 register 13
2, the GRB1 register 134 and the IFA1 register 136 store the same data as the operation when there is no register conflict at time T6.
以降の第2アドレスの動作は、レジスタコンフリクトが
ない場合と同様に進む。The subsequent operation of the second address proceeds in the same manner as when there is no register conflict.
時刻T4から第1命令の演算がALU330で行なわれており、
時刻T4とT5の中間でその演算結果が信号線556を介して
連想記憶装置に印加される。From time T4, the operation of the first instruction is being performed by ALU330,
The calculation result is applied to the associative memory device via the signal line 556 between the times T4 and T5.
更に、信号線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命令の演算結果,信号線7
08上の第1命令のオペランドアドレスであり、フラグ記
憶部347が「1」であるワードが時刻T5において登録さ
れる。Further, the "1" on signal line 584 is applied to the associative memory. As a result, the IC storage unit 346 and the IR storage unit of the associative storage device
348, X2 register value storage unit 350, B2 register value storage unit 352, prefetch instruction address storage unit 354, data storage unit 356, address storage unit 347 are respectively the instruction address of the first instruction on the signal line 580 and the signal line 564. First instruction word of, the X2 register value of the first instruction on the signal line 578, the B2 register value of the first instruction on the signal line 576, the prefetch instruction address when prefetching the first instruction on the signal line 574, and the signal line Operation result of 1st instruction on 556, signal line 7
A word which is the operand address of the first instruction on 08 and whose flag storage unit 347 is "1" is registered at time T5.
これにより、連想記憶装置に情報がない場合の説明を終
わる。This completes the description when there is no information in the associative memory.
次に、連想記憶に情報がある場合について説明する。連
想記憶には、以前の実行時の先行命令の演算結果が格納
されている場合と、先行命令のメモリ・オペランドが格
納されている場合がある。Next, a 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.
まず、連想記憶装置に以前の実行時の情報結果がある場
合を説明する。第7図をタイミングチヤート図として用
いる。First, the case where the associative storage device has the information result of the previous execution will be described. FIG. 7 is used as a timing chart.
演算結果は、ロード命令以外の演算命令では第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 re-process the two instructions.
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第7図のタイミ
ングチヤート図のうち、第1命令から第4命令に関する
IFA,IBO〜3IFASV,第1命令に関するIR/IC,OA/IR1/IC1/G
RX1/GRB1/IFA1,OD/IR2/IC2/GRX2/GRB2/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 the operation when there is no register conflict as described above. That is, regarding the first to fourth instructions in the timing chart of FIG.
IFA, IBO-3IFASV, IR / IC, OA / IR1 / IC1 / G related to 1st instruction
The timing of RX1 / GRB1 / IFA1, OD / IR2 / IC2 / GRX2 / GRB2 / IFA2, GR is the same as that of FIG. The other parts will be described below.
まず、時刻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 IFAP354 of the associative storage device via the signal line 500. Further, at time T2, the instruction word of the first instruction, the instruction address X2 register value, and the B2 register value are respectively IR storage unit 348, IC storage unit 346, and X2 register value storage unit of the associative storage device via signal lines 522, 530, 540, and 542, respectively. 350,
It is applied to the B2 register value storage unit 352.
連想記憶装置は、上記信号線530,522,540,542,500のデ
ータで探索をする。今は、連想記憶装置に以前の実行時
の情報がある場合を考えているので、時刻T3においてDA
TALレジスタ158には第1命令の以前の演算結果が格納さ
れ、FLGLレジスタ157には「1」が格納され、HITLレジ
スタ156には「1」が格納される。更に、この「1」は
信号線546に印加される。The associative memory device searches for the data on the signal lines 530, 522, 540, 542,500. Now, considering that the associative storage device has the information of the previous execution, DA at time T3
The TAL register 158 stores the previous operation result of the first instruction, the FLGL register 157 stores "1", and the HITL register 156 stores "1". Further, this “1” is applied to the signal line 546.
時刻T3においてIR1レジスタ124には第1命令であるAdd
命令の命令語が格納されており、命令レジスタ112には
第2命令であるサブトラクト(Subtract)命令の命令語
が格納されている。したがつて、信号線582上には第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の出力信号線590,AND回路180の出力信号線は
「0」になる。At time T3, the first instruction Add to the IR1 register 124
The instruction word of the instruction is stored, and the instruction register 112 stores the instruction word of the Subtract instruction which is the second instruction. Therefore, the first on the signal line 582.
The R1 field “5” of the instruction is applied, 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 other than the first instruction and the second instruction, a value different from “5” is applied to the signal lines 558 and 526. Therefore, the output of the coincidence comparison circuit 160 becomes "1", and the outputs of the other coincidence comparison circuits 162, 164, 166 become "0". Therefore, with the output signal line 593 of the OR circuit 168
Output signal line 596 of OR circuit 182 and output signal line of AND circuit 172
172 becomes "1". Also, the output signal line 591, AND of the OR circuit
The output signal line 590 of the circuit 174 and the output signal line of the AND circuit 180 are "0".
信号線596はICSVレジスタ158のセツト信号となつてお
り、この信号線が「1」なので時刻T4においてICSVレジ
スタ116には第2命令の命令アドレスが格納されDATASV
レジスタ154には第1命令の以前の演算結果が格納され
る。The signal line 596 serves as the set signal of 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 the time T4 and DATASV.
The register 154 stores the previous operation result of the first instruction.
信号線592が「1」であり、信号線714が「1」であるの
で、第10図のようにセレクタ316は信号線538上の第1命
令の以前の演算結果を信号線540を介してアドレス加算
器324に印加し、セレクタ318は信号線536上の第2命令
のB2レジスタ値を信号線542を介してアドレス加算器324
に印加する。信号線528からは第2命令の変位がアドレ
ス加算器に印加される。これにより、時刻T4において、
第2命令のオペランドアドレスがオペランドアドレスレ
ジスタ120に格納される。Since the signal line 592 is "1" and the signal line 714 is "1", the selector 316 outputs the previous operation result of the first instruction on the signal line 538 via the signal line 540 as shown in FIG. Then, 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.
Apply to. 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.
また、IR1レジスタ124,IC1レジスタ130,GRX1レジスタ13
2,GRB1レジスタ134,IFA1レジスタ136には、レジスタコ
ンフリクトのない時の動作と同一のデータが時刻T4で格
納される。Also, IR1 register 124, IC1 register 130, GRX1 register 13
2, 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.
以降の第2命令の動作は、レジスタコンフリクトがない
場合と同様に進む。The subsequent operation of the second instruction proceeds in the same manner as when there is no register conflict.
時刻T4から第1命令の演算がALU330で行なわれており、
時刻T4とT5の中間でその演算結果が信号線556を介して
比較器332に印加される。比較器332のもう一方の入力に
はDATASVレジスタ154に格納されている第1命令の以前
の演算結果が印加されている。From time T4, the operation of the first instruction is being performed by ALU330,
The calculation result is applied to the comparator 332 via the signal line 556 between the times 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.
ALU330での演算結果が以前の演算結果と一致するか否か
で以下の動作は2通りに分かれる。まず、一致する場合
を説明する。この場合、信号線586上には「1」が印加
される。この「1」はセレクタ300と308に入力される。
この時、セレクタ300は信号線502のデータを信号線506
に出力し、セレクタ308は信号線520のデータを信号線51
8に出力する。これは、レジスタコンフリクトがない場
合の動作と同一であり、以降の動作はその場合と同じに
進んでいく。The following operation is divided into two types depending on whether or not the calculation result of the ALU330 matches the previous calculation result. First, the case where they match will be described. In this case, “1” is applied on the signal line 586. This “1” is input to the selectors 300 and 308.
At this time, the selector 300 transfers the data on the signal line 502 to the signal line 506.
Then, the selector 308 outputs the data on the signal line 520 to the signal line 51.
Output to 8. 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.
ALU330での演算結果が以前の演算結果と一致しない場合
を次に説明する。以上の説明ではタイミングチヤート図
としては第7図を用いてきたが、以下の説明では第8図
を用いる。この場合、信号線586には「0」が印加され
る。この「0」はセレクタ300と308に入力される。この
時、セレクタ300は信号線504のデータを信号線506に出
力し、セレクタ308は、信号線504のデータを信号線518
に出力する。これにより、時刻T5において、先読み命令
アドレスレジスタ100にはICSVレジスタ116に格納されて
いた第2命令の命令アドレスの上位20ビツトが格納され
る。この値は第1命令から第4命令までの先読みアドレ
スと同一である。これにより先読みが実行されて時刻T6
で第1命令から第4命令が命令バツフア104,106,108,11
0に格納される。信号線518には第2命令の命令アドレス
が印加されているので、時刻T7において命令レジスタ11
2には命令バツファ(IB1)106上の第2命令が格納され
る。第2命令とレジスタコンフリクトを起こしていた第
1命令は時刻5において、すでに演算結果をR1フイール
ドの指示するレジスタに書込んである。したがつて、時
刻T7においては、第1命令と第2命令の間にはレジスタ
コンフリクトのない場合の動作説明と同じに進んでい
く。A case where the calculation result of the ALU330 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, “0” is applied to the signal line 586. This “0” is input to the 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 518.
Output to. As a result, at time T5, the high-order 20 bits of the instruction address of the second instruction stored in the ICSV register 116 are stored in the prefetch instruction address register 100. This value is the same as the prefetch address from the first instruction to the fourth instruction. As a result, prefetching is executed at time T6.
The first to fourth instructions are the instruction buffers 104, 106, 108, 11
Stored in 0. Since the instruction address of the second instruction is applied to the signal line 518, the instruction register 11 at the time T7.
In 2 is stored the second instruction on the instruction buffer (IB1) 106. At time 5, the first instruction, which had a register conflict with the second instruction, has already written the operation result in the register designated by the R1 field. Therefore, at time T7, the procedure is the same as the description of the operation when there is no register conflict between the first instruction and the second instruction.
更に、信号線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命令の演算結果,信号線7
08上の第1命令のオペランドアドレスであり、フラグ記
憶部が「1」であるワードが時刻T5において登録され
る。Further, "0" on the signal line 586 is applied to the associative memory. As a result, the IC storage unit 346 and the IR storage unit of the associative storage device
348, X2 register value storage unit 350, B2 register value storage unit 352, prefetch instruction address storage unit 354, data storage unit 356, address storage unit 345 are respectively the instruction address of the first instruction on the signal line 580 and the signal line 564. First instruction word of the, the X2 register value of the first instruction on the signal line 578, the B2 register value of the first instruction on the signal line 576, the prefetch instruction address when prefetching the first instruction on the signal line 574, the signal line Operation result of 1st instruction on 556, signal line 7
The word which is the operand address of the first instruction on 08 and whose flag memory is "1" is registered at time T5.
以上でALU330での演算結果が以前の演算結果と一致しな
い場合の説明を終わる。This is the end of the explanation when the calculation result in the ALU 330 does not match the previous calculation result.
更に、これにより、連想記憶装置に以前の実行時の演算
結果がある場合の説明を終わる。Further, this concludes the description of the case where the associative memory device has the result of the previous execution operation.
以下のような状況を考える。まず、第2図の加算(Ad
d)命令、サブトラクト(Subtract)命令が実行され
る。両者間には上述のレジスタコンフリクトが存在す
る。加算(Add)命令の演算結果は、上述のように、連
想記憶320に格納される。次にストア(Store)命令が実
行される。この命令のストア・アドレスは上述の加算
(Add)命令のオペランド・アドレスと同じと仮定す
る。もしもこのストア(Store)命令の実行時に、連想
記憶320の内容(すなわち、上記演算結果)を変更しな
いとすると、次にまた上記の加算(Add)命令、サブト
ラクト命令を実行した場合に、連想記憶320からは加算
(Add)命令の前回の実行時の演算結果が出力されて、
サブトラクト命令で利用されてしまう。上述のストア
(Store)命令により、2度目の加算(Add)命令で使用
されるオペランドデータは変更されているので、連想記
憶320から出力された加算(Add)命令の前回の実行時の
演算結果は、加算命令の2度目の実行時の演算結果を正
しく予測していない。このように、ストア(Store)命
令が実行されて、そのストア・アドレスが、連想記憶に
格納されている命令のオペランド・アドレスと等しい場
合、連想記憶に格納されたこの命令の演算結果は、その
命令がそれ以降に実行される時の演算結果とは異なつて
くる。ストア(Store)命令が実行された時には、連想
記憶内の演算結果をストア・データで書換えれば良い。
なお、この際、2回目のAdd命令の実行時に連想記憶320
の内容が正しくない状況になるのは、上述のように、1
回目のAdd、Subtract命令の実行時点から2回目のAdd命
令の実行時点までの間に、ストア命令によって、Add命
令のオペランドデータが書き換えられる場合にのみであ
るので、ストアデータで連想記憶320の演算結果を書き
換えておけば、書き換えられた連想記憶320のデータは
常に正しいことになる。その処理を次に述べる。Consider the following situation. First, the addition (Ad
d) Instructions and Subtract instructions are executed. The above-mentioned register conflict exists between them. The calculation result of the add instruction is stored in the associative memory 320, as described above. Then a Store 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 above operation result) are not changed at the time of executing this Store instruction, the associative memory is executed when the above-mentioned addition (Add) instruction or subtract instruction is executed again. The operation result of the previous execution of the Add instruction is output from 320,
It will be 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. When the store instruction is executed, the operation result in the associative memory may be rewritten with the store data.
At this time, the associative memory 320 is executed when the second Add command is executed.
As described above, the situation where the contents of is incorrect is 1
This is only when the operand data of the Add instruction is rewritten by the store instruction between the execution time of the second Add and Subtract instruction and the execution time of the second Add instruction. If the result is rewritten, the rewritten data in the associative memory 320 will always be correct. The processing will be described below.
連想記憶装置320の説明で既に述べたように、ストア(S
tore)命令が実行されると信号線712を介して「1」が
連想記憶装置に転送される。同時に信号線708を介して
ストア(Store)命令のオペランド・アドレス(すなわ
ち、ストア・アドレス)が転送され、信号線560を介し
てストア(Store)命令のR1レジスタの内容(すなわ
ち、ストア・データ)が転送される。As already mentioned in the description of the associative memory device 320, the store (S
When the "tore" command is executed, "1" is transferred to the associative memory device via the signal line 712. At the same time, the operand address (ie, store address) of the Store instruction is transferred via the signal line 708, and the contents of the R1 register of the Store instruction (ie, store data) is transferred via the signal line 560. Is transferred.
この時、連想記憶装置はアドレス記憶部ADDRがストア・
アドレスと等しいワードをすべて探し出し、等しいワー
ドのデータ記憶部DATAPをストア・データで書換え、か
つ、そのワードのフラグ記憶部を「0」に書換える。At this time, the associative storage device stores the address storage unit ADDR.
All the words equal to the address are searched, the data storage part DATAP of the same word is rewritten with the store data, and the flag storage part of the word is rewritten to "0".
以上で、ストア(Store)命令が実行された時の処理の
説明を終わる。This is the end of the description of the processing when the Store instruction is executed.
次に、連想記憶装置に先行命令の第2オペランド(メモ
リ・オペランド)がある場合を説明する。第7図をタイ
ミングチヤート図として用いる。Next, a 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.
この場合、上記のようにストア命令が実行された時に連
想記憶内のデータ{第1命令の以前の演算結果又は第1
命令のメモリ・データ(第2オペランド)}をストア・
データで書換えているので、連想記憶内の第2オペラン
ドは常に正しい。また、この場合、下記のようにこの第
2オペランドに対して、それ以降第1命令が実行される
と、その第1命令実行時の第1オペランドを用いて、演
算を施すので、その演算結果は、連想記憶内に格納され
ている以前の演算結果とは異なり、正しい。したがつ
て、この場合には、上述のような、以前の演算結果とAL
Uでの演算結果の一致比較及び第2命令のやり直し処理
は不要である。なお、このようなストア命令によるスト
アデータでの連想記憶320内でのデータ書き換えが発生
しておらず、上述のように連想記憶320内に演算結果
(1度目のAdd命令の演算結果)がある場合には、2度
目のAdd命令の実行時の第1オペランドであるR1レジス
タの値が1度目のAdd命令の時とは異なる可能性がある
ので、以前の演算結果とALU330での演算結果の一致比較
および第2命令(Subtract命令)のやり直し処理は不可
欠である。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 first instruction
Store instruction memory data (second operand)}
Since the data is rewritten, the second operand in the associative memory is always correct. Further, in this case, when the first instruction is subsequently executed for this second operand as described below, the operation is performed using the first operand at the time of execution of the first instruction. Is correct, unlike previous arithmetic results stored in associative memory. Therefore, in this case, the previous operation result and AL
It is not necessary to perform coincidence comparison of operation results in U and redo processing of the second instruction. It should be noted that 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) exists in the associative memory 320 as described above. In this case, the value of the R1 register, which is the first operand at the time of executing the second Add instruction, may be different from that at the time of the first Add instruction. Matching comparison and redo processing of the second instruction (Subtract instruction) are indispensable.
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第7図のタイミ
ングチヤート図のうち、第1命令から第4命令に関する
IFA,IBO〜3IFASV,第1命令に関するIR/IC,OA/IR1/IC1/G
RX1/GRB1/IFA1,OD/IR2/IC2/GRX2/GRB2/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 the operation when there is no register conflict as described above. That is, regarding the first to fourth instructions in the timing chart of FIG.
IFA, IBO-3IFASV, IR / IC, OA / IR1 / IC1 / G related to 1st instruction
The timing of RX1 / GRB1 / IFA1, OD / IR2 / IC2 / GRX2 / GRB2 / IFA2, GR is the same as that of FIG. The other parts will be described below.
まず、時刻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 IFAP354 of the associative storage device via the signal line 500. Further, at time T2, the instruction word of the first instruction, the instruction address X2 register value, and the B2 register value are respectively transmitted via the signal lines 522, 530, 540, and 542 to the IR storage unit 348, the IC storage unit 346, and the X2 register value storage unit of the associative storage device. 350,
It is applied to the B2 register value storage unit 352.
連想記憶装置は、上記信号線530,522,540,542,500のデ
ータで探索をする。今は、連想記憶装置に先行命令の第
2オペランド(メモリ・オペランド)がある場合を考え
ているので、時刻T3においてDATALレジスタ158には第1
命令、すなわち先行命令の第2オペランドが格納され、
FLGLレジスタ157には「0」が格納され、HITLレジスタ1
56には「1」が格納される。更に、この「1」は信号線
546に印加される。The associative memory device searches for the data on the signal lines 530, 522, 540, 542,500. Since it is now considered that the associative memory device has the second operand (memory operand) of the preceding instruction, the DATAL register 158 has the first operand at the time T3.
The instruction, that is, the second operand of the preceding instruction is stored,
"0" is stored in the FLGL register 157, and the HITL register 1
“1” is stored in 56. Furthermore, this "1" is a signal line
Applied to 546.
時刻T3においてIR1レジスタ124には第1命令であるAdd
命令の命令語が格納されており、命令レジスタ112には
第2命令であるサブトラクト(Subtract)命令の命令語
が格納されている。したがつて、信号線582上には第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,AND回路180の出力信号線は
「0」になる。At time T3, the first instruction Add to the IR1 register 124
The instruction word of the instruction is stored, and the instruction register 112 stores the instruction word of the Subtract instruction which is the second instruction. Therefore, the first on the signal line 582.
The R1 field “5” of the instruction is applied, and the X2 field “5” of the second instruction is applied to the signal line 542. Since it is assumed that there is no register conflict other than the first instruction and the second instruction, a value different from “5” is applied to the signal lines 558 and 526. Therefore, the output of the coincidence comparison circuit 160 becomes "1", and the outputs of the other coincidence comparison circuits 162, 164, 166 become "0". Therefore, with the output signal line 593 of the OR circuit 168
The output signal line of the OR circuit 182 and the output signal line 172 of the AND circuit 172
Becomes "1". Further, the output signal line 591 of the OR circuit, the output signal line 590 of the AND circuit 174, and the output signal line of the AND circuit 180 become “0”.
ALU360には、信号線538を介して第1命令の第2オペラ
ンドが入力され、信号線606を介して第1命令のR1レジ
スタの内容すなわち第1オペランドが入力され、信号線
604を介して第1命令のオペコードが入力される。ALU36
0はこれにより第1命令の演算を行い、その演算結果を
信号線600上に出力する。To the ALU360, the second operand of the first instruction is input via the signal line 538, the content of the R1 register of the first instruction, that is, the first operand is input via the signal line 606, and the signal line
The operation code of the first instruction is input via 604. ALU36
0 calculates the first instruction by this, and outputs the calculation result on the signal line 600.
信号線592が「1」であり、信号線714が「0」であるの
で、第10図のようにセレクタ316は信号線600上の第1命
令の演算結果を信号線540を介してアドレス加算器324に
印加し、セレクタ318は信号線536上の第2命令のB2レジ
スタ値を信号線542を介してアドレス加算器324に印加す
る。信号線528からは第2命令の変位がアドレス加算器
に印加される。これにより、時刻T4において、第2命令
オペランドアドレスがオペランドアドレスレジスタ120
に格納される。Since the signal line 592 is “1” and the signal line 714 is “0”, the selector 316 adds the calculation result of the first instruction on the signal line 600 to the address addition via the signal line 540 as shown in FIG. Then, 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, the second instruction operand address becomes the operand address register 120.
Stored in.
また、IR1レジスタ124,IC1レジスタ130,GRX1レジスタ13
2,GRB1レジスタ134,IFA1レジスタ136には、レジスタコ
ンフリクトのない時の動作と同一のデータが時刻T4で格
納される。Also, IR1 register 124, IC1 register 130, GRX1 register 13
2, 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.
以降の第2命令の動作は、レジスタコンフリクトがない
場合と同様に進む。The subsequent operation of the second instruction proceeds in the same manner as when there is no register conflict.
これにより、連想記憶装置に先行命令の第2オペランド
がある場合の説明を終わる。This completes the description of the case where the associative memory device has the second operand of the preceding instruction.
次に、本実施例特有の効果を述べる。Next, the effect peculiar to this embodiment will be described.
本発明を使用しない場合、先行命令とレジスタコンフリ
クトのある後続命令を実行すると、上述の動作説明の連
想記憶装置に以前の実行の情報がない場合と同じ動作と
なり、2周期の空き時間を生ずる。In the case where the present invention is not used, when the preceding instruction and the succeeding instruction having a register conflict are executed, the operation is the same as the case where the associative storage device of the above-mentioned operation description does not have information of the previous execution, and two cycles of idle time are generated.
本発明を使用すれば空き時間はまつたくなくなるので、
レジスタコンフリクト発生時の命令処理性能が向上す
る。If you use the present invention, you will not have to spend your free time.
Instruction processing performance is improved when a register conflict occurs.
上述の実施例は先行命令の演算結果として、連想記憶内
に格納しておいた先行命令の以前の演算結果又は、連想
記憶内に格納しておいた先行命令の第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 operand (memory operand) of the preceding instruction stored in the associative memory The result obtained by performing the operation 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.
この場合の実施例を第11図に示す。An embodiment in this case is shown in FIG.
この図の連想記憶には、連想記憶に情報がない時に第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 in the figure, and the flag storage unit is set to "0".
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.
また、第3図および第11図の2つの実施例では、ストア
命令が実行されるとストア・データを用いて連想記憶内
の情報を書換えている。しかし、本発明はストア命令が
実行された時、そのストア・アドレスとオペランド・ア
ドレスが一致するワードを無効化する場合にも適用でき
る。In the two embodiments shown in FIGS. 3 and 11, when the store instruction is executed, the store data is used to rewrite the information in the associative memory. However, the present invention is also applicable to invalidating a word whose store address and operand address match when a store instruction is executed.
この場合には、第4図の連想記憶320を、信号線712に
「1」が印加された時に、信号線708上のストア・アド
レスとアドレス記憶部が等しいワードを連想記憶から削
除するように構成すればよい。この場合にも、連想記憶
に情報が格納されている時には、上述の実施例のように
後続命令は空き時間なく実行できる。In this case, the associative memory 320 of FIG. 4 should be deleted from the associative memory when the "1" is applied to the signal line 712 and the word whose store address on the signal line 708 is equal to the address memory section. Just configure it. Also in this case, when the information is stored in the associative memory, the subsequent instruction can be executed without any free time as in the above-mentioned embodiment.
更に、連想キーとしては、今まで述べたすべてを使うこ
ともできるし、任意の組合せを使うこともできる。その
際、キー構成要素の一部のビツト位置を使うこともでき
る。Further, as the associative key, all of the above-mentioned can be used or any combination can be used. In that case, some bit positions of the key component can be used.
本発明を使用しない場合、レジスタコンフリクトを起こ
す先行命令が開始されてから、後続命令が開始されるま
でに、先行命令のアドレス計算時間,オペランド読出し
時間,演算時間がかかる。When 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.
しかし、本発明を用いることにより、連想キーを予測装
置に入力してから予測値が出力するまでの時間しかかか
らない。後者の時間は、連想キーに何を用いるかによつ
て異なるが、先行命令の命令アドレスを連想キーに用い
る最悪の場合でも、その時間は本発明を使用しない場合
より十分短い。However, by using the present invention, it only takes time from the input of the associative key to the prediction device to the output of the prediction value. The latter time varies depending 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 when the present invention is not used.
第1A図は命令形式図、第1B図はロード命令の例、第2図
はレジスタコンフリクトを起こす二つの命令の例、第3
図は実施例の全体構成図、第4図は連想記憶装置の構成
図、第5〜8図はタイミングチヤート図、第9図はレジ
スタコンフリクト検出装置の構成図、第10図はセレクタ
の動作図、第11図はそれぞれ他の実施例の全体構成図で
ある。 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, and third.
FIG. 4 is an overall configuration diagram of an embodiment, FIG. 4 is a configuration diagram of an associative storage device, FIGS. 5 to 8 are timing chart diagrams, FIG. 9 is a configuration diagram of a register conflict detection device, and FIG. 10 is an operation diagram of a selector. , FIG. 11 is an overall configuration diagram of another embodiment. 100 ... Look-ahead 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.
フロントページの続き (72)発明者 武内 茂雄 東京都小平市上水本町1479番地 日立超エ ル・エス・アイ・エンジニアリング株式会 社内Continuation of the front page (72) Inventor Shigeo Takeuchi 1479 Kamimizuhonmachi, Kodaira-shi, Tokyo Hitachi Ultra ELS Engineering Co., Ltd. In-house
Claims (7)
後続の命令との間に、該先行命令の実行結果を、該後続
命令が使用するというコンフリクトがあるかを検出し、 該二つの命令の間でコンフリクトが検出されたとき、該
先行命令の実行結果が利用可能になるまで、その先行命
令の実行結果を該後続命令が利用するタイミングを遅延
させ、 該先行命令が後に再実行され、それに並行して該後続命
令も再実行されたとき、該先行命令の再実行の結果が現
に利用可能になる前に、該先行命令の先の実行結果を、
該先行命令の今回の実行結果として使用して、該後続命
令のその再実行を行い、 該先行命令が、主記憶内のオペランドに対して演算を行
なう命令であり、その先行命令の先の実行後その先行命
令のその再実行までに、その先行命令が先に使用したメ
モリオペランドを更新する命令が実行された場合におい
て、上記先行命令の上記再実行および上記後続命令の上
記再実行を行なうときには、 (a)先行命令の該先行命令の上記再実行時にその先行
命令が指定する演算を実行するより前に、上記更新後の
メモリオペランドを使用して該先行命令が指定する演算
を実行し、 (b)上記先行命令の先の実行結果を使用した、上記後
続の命令の上記再実行の代わりに、上記更新後のメモリ
オペランドを利用した上記演算の結果を使用して、該後
続の命令の上記再実行を行なう命令実行方法。1. Detecting whether or not there is a conflict that the execution result of the preceding instruction is used by the succeeding instruction between the preceding instruction and the succeeding instruction to be executed in parallel with the preceding instruction. When a conflict is detected between instructions, the execution result of the preceding instruction is delayed until the execution result of the preceding instruction is available, and the timing when the succeeding instruction uses it is delayed, and the preceding instruction is re-executed later. , When the subsequent instruction is also re-executed in parallel, before the result of re-execution of the preceding instruction is actually available, the previous execution result of the preceding instruction,
It is used as the execution result of the preceding instruction this time, the subsequent instruction is re-executed, and the preceding instruction is an instruction that operates on an operand in the main memory, and the preceding execution of the preceding instruction is executed. When the re-execution of the preceding instruction and the re-execution of the succeeding instruction are performed when the instruction that updates the memory operand used by the preceding instruction is executed before the re-execution of the preceding instruction. (A) before the execution of the operation designated by the preceding instruction when the preceding instruction of the preceding instruction is re-executed, the operation designated by the preceding instruction is executed using the updated memory operand; (B) The result of the operation using the updated memory operand is used instead of the re-execution of the subsequent instruction using the previous execution result of the preceding instruction, and the subsequent instruction is used. Instruction execution method of performing the re-execution.
間でコンフリクトが検出された場合、その先行命令の実
行結果を記憶し、 該先行命令が、命令で指定可能なメモリ内のオペランド
に対して演算を行なう命令であって、その先行命令の先
の実行後であってその先行命令の後の実行前に、その先
行命令が使用したメモリオペランドを更新する命令が実
行された場合、上記記憶された演算結果に代えて、上記
更新後のメモリオペランドを記憶し、 上記後続命令の上記再実行時に、上記先行命令に関して
記憶された上記演算結果もしくは上記メモリオペランド
を使用する請求項1記載の命令実行方法。2. When a conflict is detected between the preceding instruction and the succeeding instruction, the execution result of the preceding instruction is stored, and the preceding instruction is stored in an operand in a memory that can be designated by the instruction. In the case where an instruction for performing an operation on the preceding instruction is executed after the preceding instruction is executed and before the subsequent instruction is executed, the memory operand used by the preceding instruction is updated. 2. The memory operation operand after the update is stored instead of the stored operation result, and the operation result or the memory operand stored for the preceding instruction is used when the subsequent instruction is re-executed. Instruction execution method.
のオペランドに対して演算を行なう命令である場合、そ
の先行命令の上記演算結果を記憶する時に、そのメモリ
オペランドのアドレスをさらに記憶し、 該先行命令の先の実行後にいずれかの、メモリオペラン
ドを更新する命令が実行されたとき、その更新命令が指
定するメモリアドレスと該記憶されたメモリアドレスと
の一致を検出し、 該一致が検出されたときに、上記更新後のメモリオペラ
ンドの上記記憶を行なう請求項1記載の命令実行方法。3. When the preceding instruction is an instruction for performing an operation on an operand in a memory that can be designated by the instruction, when the operation result of the preceding instruction is stored, the address of the memory operand is further stored. Then, when any of the instructions for updating the memory operand is executed after the preceding instruction is executed, a match between the memory address designated by the update instruction and the stored memory address is detected, and the match is detected. 2. The instruction execution method according to claim 1, wherein the storage of the updated memory operand is performed when is detected.
後続の命令との間に、該先行命令の実行結果を、該後続
命令が使用するという、コンフリクトがあるかを検出す
る手段と、 該二つの命令の間でコンフリクトが検出されたとき、該
先行命令の実行結果が利用可能になるまで、その先行命
令の実行結果を該後続命令が利用するタイミングを遅延
させる手段と、 該先行命令が後に再実行され、それに並行して該後続命
令も再実行されたとき、該先行命令の再実行の結果が現
に利用可能になる前に、該先行命令の先の実行結果を、
該先行命令の今回の実行結果として使用して、該後続命
令のその再実行を行う予測実行手段と、 コンフリクト解消用の演算器と、 該先行命令が、主記憶内のオペランドに対して演算を行
なう命令であり、、その先行命令の先の実行後その先行
命令のその再実行までに、その先行命令が先に使用した
メモリオペランドを更新する命令が実行された場合にお
いて、上記先行命令の上記再実行および上記後続命令の
上記再実行を行なうときに、該先行命令の上記再実行時
にその先行命令が指定する演算を実行するより前に、そ
の更新後のメモリオペランドを該演算器に供給する手段
と、 上記予測実行手段による上記後続の命令の上記再実行の
代わりに、その演算器による、上記更新後のメモリオペ
ランドを利用した演算の結果を使用して、該後続の命令
の再実行を行なう手段とを有するデータ処理装置。4. A means for detecting whether or not there is a conflict between a preceding instruction and a succeeding instruction to be executed in parallel between the preceding instruction and the succeeding instruction using the execution result of the preceding instruction. When a conflict is detected between the two instructions, means for delaying the timing at which the execution result of the preceding instruction is used by the subsequent instruction until the execution result of the preceding instruction becomes available; Is later re-executed and the subsequent instruction is also re-executed in parallel therewith, before the result of re-execution of the preceding instruction is actually available, the previous execution result of the preceding instruction is
Prediction executing means for re-execution of the subsequent instruction, an arithmetic unit for conflict resolution, and an arithmetic operation for the operand in the main memory, which are used as results of execution of the preceding instruction this time. The instruction to be executed, and when the instruction that updates the memory operand used by the preceding instruction is executed after the preceding execution of the preceding instruction and before the re-execution of the preceding instruction, When the re-execution and the re-execution of the subsequent instruction are performed, the updated memory operand is supplied to the arithmetic unit before the operation designated by the predecessor instruction is executed at the re-execution of the preceding instruction. Means and, instead of the re-execution of the subsequent instruction by the prediction executing means, using the result of the operation by the arithmetic unit using the updated memory operand, Data processing apparatus having a means for re-execution of the instruction.
後続の命令との間に、該先行命令の実行結果を、該後続
命令が使用するという、コンフリクトがあるかを検出す
る手段と、 該二つの命令の間でコンフリクトが検出されたとき、該
先行命令の実行結果が利用可能になるまで、その先行命
令の実行結果を該後続命令が利用するタイミングを遅延
させる手段と、 該先行命令が後に再実行され、それに並行して該後続命
令も再実行されたとき、該先行命令の再実行の結果が現
に利用可能になる前に、該先行命令の先の実行結果を、
該先行命令の今回の実行結果として使用して、該後続命
令のその再実行を行う予測実行手段と、 コンフリクト解消用の演算器と、 該先行命令が、主記憶内のオペランドに対して演算を行
なう命令であり、、その先行命令の先の実行後その先行
命令のその再実行までに、その先行命令が先に使用した
メモリオペランドを更新する命令が実行された場合にお
いて、上記先行命令の上記再実行および上記後続命令の
上記再実行を行なうときに、該先行命令の上記再実行時
にその先行命令が指定する演算を実行するより前に、そ
の更新後のメモリオペランドを該演算器に供給する手段
と、 上記予測実行手段による上記後続の命令の上記再実行の
代わりに、その演算器による、上記更新後のメモリオペ
ランドを利用した演算の結果を使用して、該後続の命令
の再実行を行なう手段と、 該検出手段による該二つの命令の間のコンフリクトの検
出の応答して、該先行命令の先の実行結果を記憶する手
段と、 上記メモリオペランドを更新する上記命令が実行された
場合、上記先行命令に関して記憶された実行結果を無効
とし、その更新命令で更新された後のメモリオペランド
をその先行命令に関連する情報として該記憶手段に書き
込む手段とを有し、 該予測実行手段は、該先行命令の先の実行結果を該記憶
手段から読み出し、これを該先行命令の今回の実行結果
として使用して、該後続の命令を再実行する手段からな
り、 該供給手段は、上記後続の命令の再実行時に、上記先行
命令に関してメモリオペランドが記憶されている場合
に、その記憶されたメモリオペランドを上記演算器に供
給する手段を有するデータ処理装置。5. A means for detecting whether or not there is a conflict between the preceding instruction and a succeeding instruction to be executed in parallel with the preceding instruction by using the execution result of the preceding instruction. When a conflict is detected between the two instructions, means for delaying the timing at which the execution result of the preceding instruction is used by the subsequent instruction until the execution result of the preceding instruction becomes available; Is later re-executed and the subsequent instruction is also re-executed in parallel therewith, before the result of re-execution of the preceding instruction is actually available, the previous execution result of the preceding instruction is
Prediction executing means for re-execution of the subsequent instruction, an arithmetic unit for conflict resolution, and an arithmetic operation for the operand in the main memory, which are used as results of execution of the preceding instruction this time. The instruction to be executed, and when the instruction that updates the memory operand used by the preceding instruction is executed after the preceding execution of the preceding instruction and before the re-execution of the preceding instruction, When the re-execution and the re-execution of the subsequent instruction are performed, the updated memory operand is supplied to the arithmetic unit before the operation designated by the predecessor instruction is executed at the re-execution of the preceding instruction. Means and, instead of the re-execution of the subsequent instruction by the prediction executing means, using the result of the operation by the arithmetic unit using the updated memory operand, Instruction re-execution means, means for storing the previous execution result of the preceding instruction in response to the detection of a conflict between the two instructions by the detection means, and the instruction for updating the memory operand Is executed, the execution result stored with respect to the preceding instruction is invalidated, and the memory operand after being updated by the update instruction is written into the storage means as information related to the preceding instruction, The prediction execution means comprises means for reading the previous execution result of the preceding instruction from the storage means and using this as the execution result of the present time of the preceding instruction to re-execute the subsequent instruction. The means supplies the stored memory operand to the arithmetic unit when the memory operand is stored for the preceding instruction when the subsequent instruction is re-executed. Data processing apparatus having a.
モリオペランドからなるデータを、該先行命令の実行に
同期し、かつ、該後続の命令の実行に無関係に読み出す
手段と、 該後続の命令の実行中に、該検出手段によりコンフリク
トが検出されたときに、かつ、この読み出されたデータ
が先行命令の演算結果であるときにこれを該後続の命令
のオペランドとして使用する手段とを有し、 該供給手段は、該後続の命令の実行中に、該検出手段に
よりコンフリクトが検出されたときに、かつ、この読み
出されたデータがメモリオペランドであるときにこれを
上記演算器に供給する手段を有する請求項第5項のデー
タ処理装置。6. The prediction execution means synchronizes the stored execution result of the preceding instruction or the data consisting of a memory operand with the execution of the preceding instruction, and with the execution of the following instruction. Irrelevant reading means, and when a conflict is detected by the detecting means during execution of the subsequent instruction, and when the read data is the operation result of the preceding instruction Means for using as an operand of an instruction, the supplying means, when a conflict is detected by the detecting means during execution of the subsequent instruction, and the read data is a memory operand. The data processing apparatus according to claim 5, further comprising means for supplying the arithmetic unit to the arithmetic unit at a certain time.
を連想キーとして、その命令の先の実行結果を記憶する
連想記憶からなり、 該予測実行手段は、 いずれかの命令の実行時に、その命令に関連する情報を
連想キーとして、該連想記憶をアクセスし、その命令の
先の実行結果もしくはメモリオペランドがすでに記憶さ
れていればそれを読み出す手段を有する請求項第5項の
データ処理装置。7. The storage means comprises associative memory for storing the execution result of the instruction ahead of the instruction, using the information associated with the preceding instruction as an associative key, and the prediction execution means is provided when any of the instructions is executed. 6. The data processing according to claim 5, further comprising means for accessing the associative memory by using information related to the instruction as an associative key and reading out a previous execution result of the instruction or a memory operand if already stored. apparatus.
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 JPS6284340A (en) | 1987-04-17 |
| JPH0760384B2 true 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) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2667851B2 (en) * | 1988-01-22 | 1997-10-27 | 株式会社日立製作所 | Information processing device |
| JP2685713B2 (en) * | 1994-04-11 | 1997-12-03 | 株式会社日立製作所 | Data processing device |
| 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 |
| JP3499135B2 (en) | 1998-06-29 | 2004-02-23 | 富士通株式会社 | Information processing equipment |
| US7590825B2 (en) | 2006-03-07 | 2009-09-15 | 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
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6284340A (en) | 1987-04-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| 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 | |
| EP0135844A2 (en) | A data processor with a branch target instruction storage | |
| JPH11212788A (en) | Processor data supply device | |
| US4992932A (en) | Data processing device with data buffer control | |
| US5504925A (en) | Apparatus and method for implementing interrupts in pipelined processors | |
| JPH063584B2 (en) | Information processing equipment | |
| US5226169A (en) | System for execution of storage-immediate and storage-storage instructions within cache buffer storage | |
| EP0094535B1 (en) | Pipe-line data processing system | |
| JPH0760384B2 (en) | Instruction execution method and data processing device | |
| US4924377A (en) | Pipelined instruction processor capable of reading dependent operands in parallel | |
| US6016541A (en) | Instruction controlling system and method thereof | |
| US7275146B2 (en) | Instruction control device and method therefor | |
| JPH0552534B2 (en) | ||
| JP2685713B2 (en) | Data processing device | |
| JPH08249178A (en) | Method and apparatus for forming qualifying bits within an annex of a processor | |
| JP2667851B2 (en) | Information processing device | |
| WO1998011484A1 (en) | Command processor having history memory | |
| JP2901247B2 (en) | Discharge control method | |
| JPH07191911A (en) | Address converter and microprocessor computation method | |
| JP3132566B2 (en) | Instruction precedence controller | |
| JPH0452488B2 (en) | ||
| JPH05307483A (en) | Method and circuit for controlling write-in to register | |
| JPH0248733A (en) | information processing equipment | |
| KR20250135894A (en) | Predictive store-to-load forwarding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |