JPH05298097A - Information processor - Google Patents

Information processor

Info

Publication number
JPH05298097A
JPH05298097A JP4099694A JP9969492A JPH05298097A JP H05298097 A JPH05298097 A JP H05298097A JP 4099694 A JP4099694 A JP 4099694A JP 9969492 A JP9969492 A JP 9969492A JP H05298097 A JPH05298097 A JP H05298097A
Authority
JP
Japan
Prior art keywords
instruction
pipeline
cache miss
instructions
processing
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.)
Pending
Application number
JP4099694A
Other languages
Japanese (ja)
Inventor
Norio Hirai
規郎 平井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP4099694A priority Critical patent/JPH05298097A/en
Publication of JPH05298097A publication Critical patent/JPH05298097A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Retry When Errors Occur (AREA)

Abstract

PURPOSE:To improve the processing capability of a processor by providing a computer having the pipeline instruction processing function with the score boarding function to limit instructions up to the position, where dependence on the data flow occurs, and again inserting an instruction at the rear of this position to continue the processing without erasing contents of a pipe and performing the processing without waiting for several cycles till reading of data into a cache. CONSTITUTION:In the process of processing of an instruction pipeline, dependence on the data flow of plural instructions on a prefetch queue 2 and the pipeline is recorded in a score board 8 by a comparator 7. When a cache miss detector 9 detects the occurrence of a cache miss with respect to a certain instruction set, this instruction set is temporarily stored in a queue 11 only for saving use to process the next instruction. During this time, a selector 12 checkes the score board 8 to detect positions of the instruction where the cache miss occurs and the instruction where dependence on the data flow occurs, and the progress of instructions is adjusted by a timing circuit 14 to insert the former instruction before the position of the instruction where dependence on the data flow occurs.

Description

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

【0001】[0001]

【産業上の利用分野】この発明は、パイプライン処理機
能を持つ計算機において、キャッシュミスを発生させた
命令をパイプライン上後方へ移動することにより処理を
高速化する方法に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for accelerating processing in a computer having a pipeline processing function by moving an instruction causing a cache miss backward in the pipeline.

【0002】[0002]

【従来の技術】一般に、32ビット・マイクロプロセッ
サでは高速化の手段としてパイプライン方式が用いられ
ている。プロセッサの内部はいくつかの機能ブロックの
ステージから構成され、各ブロックは入力を処理して次
のブロックへその結果をわたすようになっている。従来
例として、図4にパイプラインの構成図をまた図5にパ
イプ・ライン処理の概要を示す。この図4と図5は「3
2ビットマイクロプロセッサ入門」(南宗宏著、CQ出
版社)に示されたものである。
2. Description of the Related Art Generally, in a 32-bit microprocessor, a pipeline system is used as a means for speeding up. The interior of the processor is made up of stages of several functional blocks, with each block processing an input and passing the result to the next block. As a conventional example, FIG. 4 shows a block diagram of the pipeline, and FIG. 5 shows an outline of the pipeline processing. This FIG. 4 and FIG.
2 Bit Microprocessor Introduction "(written by Munehiro Minami, CQ Publishing Co.).

【0003】図5において、1はバス・インターフェー
ス(BCU)で、2は命令を溜めておくプリフェッチ・
キュー(PFU)で、3は命令をデコードするデコーダ
・ユニット(IDU)である。4はアドレスの生成・変
換を行なうステージ(EAG)である。5は実行のステ
ージ(EXU)である。
In FIG. 5, 1 is a bus interface (BCU), and 2 is a prefetch for storing instructions.
A queue (PFU) 3 is a decoder unit (IDU) that decodes an instruction. Reference numeral 4 is a stage (EAG) for generating and converting an address. 5 is an execution stage (EXU).

【0004】次にパイプ・ラインの流れの概略を図5で
示す。BCU1によるバス・アクセスで読み出された命
令が、PFU2のプリフェッチ・キューに溜り、IDU
3のデコーダへ渡されてデコードされる。そして、デコ
ーダからアドレスの情報がEAG3へ渡され、アドレス
が生成・変換されEXU5で実行される。ここで、プリ
フェッチ・キュー2には連続する命令がいくつも順番に
溜っているものとする。
Next, an outline of the flow of the pipeline is shown in FIG. The instructions read by the bus access by BCU1 are accumulated in the prefetch queue of PFU2, and IDU
3 and is decoded. Then, the address information is passed from the decoder to the EAG 3, the address is generated and converted, and the EXU 5 executes the address. Here, it is assumed that a number of consecutive instructions are accumulated in the prefetch queue 2 in order.

【0005】図6は命令1から順番にアクセスされる場
合のパイプ・ラインの様子を図示したものである。60
1〜608はサイクルはそれぞれ1サイクルに対応す
る。サイクル601ではバス・アクセス1で命令1が読
み出されたところである。次にサイクル602では命令
1はデコーダ3に渡され、同時に命令2がバス・アクセ
ス1で読み出されたところである。サイクル603に移
ると命令1、命令2は次のステージにそれぞれ移り新し
く命令3がフェッチされる。そして、サイクル604、
サイクル605の様に順番に各命令は同時にそれぞれの
ステージで処理されていく。このように1つの命令をい
くつかのステージに分割し各ステージの処理を同時にい
くつも処理していく機能をパイプ・ライン制御機能とい
う。
FIG. 6 shows the state of the pipeline in the case where instructions 1 are sequentially accessed. 60
1 to 608 correspond to one cycle each. In cycle 601, the instruction 1 is read by the bus access 1. Next, in cycle 602, the instruction 1 is passed to the decoder 3, and at the same time, the instruction 2 is read by the bus access 1. In cycle 603, instruction 1 and instruction 2 move to the next stage, respectively, and a new instruction 3 is fetched. And cycle 604,
Each instruction is simultaneously processed in each stage in order as in cycle 605. In this way, the function of dividing one instruction into several stages and simultaneously processing a number of processes in each stage is called a pipeline control function.

【0006】しかし、実際の処理の流れの中では、命令
の各ステージの処理時間の間にばらつきがあり、オペラ
ンドの読みだし/書き込み、アドレス計算でのメモリ間
参照のバス・サイクルの挿入、データ・フェッチでのキ
ャッシュ・ミスの発生などがあって図6のように単純に
処理が流れていくわけではない。
However, in the actual processing flow, there are variations in the processing time of each stage of the instruction, so that the reading / writing of the operand, the insertion of the memory-referenced bus cycle in the address calculation, and the data -Processing does not simply flow as in Fig. 6 due to the occurrence of cache misses in fetching.

【0007】従来技術では、キャッシュ・ミスが発生し
たときには図5において命令1がサイクル603のとこ
ろでキャッシュ・ミスを検知するとパイプ・ラインの流
れはそこで止まりメモリからキャッシュにデータが読み
込まれるのを待ち、メモリからキャッシュに読み込まれ
た後、順調に処理が行なわれた場合のサイクル604と
同じ状態へと移行することにより、パイプ・ラインの内
容を消すことを防いできた。
In the prior art, when a cache miss occurs, when instruction 1 detects a cache miss at cycle 603 in FIG. 5, the flow of the pipeline stops there and waits until the data is read from the memory into the cache. After being read into the cache from the memory, it is possible to prevent the contents of the pipeline from being erased by shifting to the same state as the cycle 604 when the processing is smoothly performed.

【0008】[0008]

【発明が解決しようとする課題】従来技術の手段では、
パイプ・ラインの内容を消すことを防ぐ効果はあっても
キャッシュ・ミス発生時にパイプ・ラインの流れをデー
タがメモリからキャッシュ内に読み込まれるまで止めて
おかなければならない。また、メモリからデータをロー
ドするのには、かなり時間がかかり、そのため処理は何
サイクルも待たされることになり、その間は無駄に費や
されることになる。
SUMMARY OF THE INVENTION In the prior art means,
Although it has the effect of preventing the contents of the pipeline from being erased, the flow of the pipeline must be stopped when a cache miss occurs until data is read from memory into the cache. Also, loading the data from memory can take a considerable amount of time, which causes the process to wait many cycles, wasted during that time.

【0009】この発明は、上記のような問題点を解消す
るためになされたもので、キャッシュ・ミス発生時に処
理の流れをできるだけ止めることなく行ない、その結果
パイプ・ライン制御機能の処理性能の向上を目的とする
ものである。
The present invention has been made in order to solve the above problems, and when the cache miss occurs, the processing flow is performed without stopping as much as possible, and as a result, the processing performance of the pipeline control function is improved. The purpose is.

【0010】[0010]

【課題を解決するための手段】この発明に係わる情報処
理装置は、プリフェッチキューと命令パイプライン中に
蓄えられている全ての複数の命令が指定するレジスタオ
ペランドとメモリオペランドのアドレスを比較する比較
手段と、該比較手段の出力から、同一オペランドを指定
しているものを検出した場合に、命令の実行順序と同一
の順番をオペランドに対して付加し記録する記録手段
と、命令パイプライン上の命令のアドレスを生成・変換
した段階でキャッシュと比較し該命令にキャッシュミス
が発生したか否かを検出する検出手段と、該キャッシュ
ミス検出手段の出力を受けてキャッシュミス発生時に該
命令をパイプライン上から除去する除去手段と、該除去
手段によって命令パイプライン上から除去されたキャッ
シュミス発生命令を格納しておく格納手段と、上記記録
手段によって得られた記録を参照し、上記格納手段によ
って格納された命令とデータフロー依存が発生している
命令のパイプライン上の位置を検出しパイプライン上に
戻す位置を選択する選択手段と、キャッシュミス発生時
に、命令パイプラインから除去された命令の位置の命令
パイプラインの進みと、命令パイプラインに別途格納さ
れた命令を挿入する位置のパイプラインの進みを調節す
るタイミング調整手段と、上記選択手段によって選択さ
れた位置に上記タイミング調整手段によって進み方を調
整されたパイプライン上に別途格納された命令を戻す戻
し手段と、を設けたものである。
An information processing apparatus according to the present invention is a comparison means for comparing addresses of register operands and memory operands designated by all a plurality of instructions stored in a prefetch queue and an instruction pipeline. And a recording means for adding the same order as the execution order of the instructions to the operand and recording the same when an instruction specifying the same operand is detected from the output of the comparing means, and an instruction on the instruction pipeline. Detecting means for detecting whether or not a cache miss has occurred in the instruction by comparing with the cache at the stage of generating and converting the address, and receiving the output of the cache miss detecting means, pipeline the instruction when the cache miss occurs. The removing means for removing from above and the cache miss occurrence instruction removed from the instruction pipeline by the removing means By referring to the storage means to be stored and the record obtained by the recording means, the position on the pipeline of the instruction stored by the storage means and the instruction in which the data flow dependency occurs is detected and the pipeline position is detected. Selection means for selecting the position to be returned to, the advance of the instruction pipeline at the position of the instruction removed from the instruction pipeline at the time of occurrence of a cache miss, and the pipeline at the position for inserting the instruction separately stored in the instruction pipeline. A timing adjusting means for adjusting the advance and a returning means for returning an instruction separately stored on the pipeline adjusted in advance by the timing adjusting means to the position selected by the selecting means are provided. ..

【0011】[0011]

【作用】この発明においては、キャッシュミス検出手段
によってキャッシュミスを検出すると出力信号によりそ
の命令をパイプライン上から除去手段により除去し、格
納手段に格納し、同時に検出手段の出力信号を受けて選
択手段は記録手段を参照し、格納手段に格納された命令
を戻す位置をパイプライン上で決定し、タイミング調整
手段によりパイプラインの進み具合を調整し、格納され
ていた命令を戻し手段によりパイプライン上に戻す。
In this invention, when a cache miss is detected by the cache miss detecting means, the instruction is removed from the pipeline by the output signal by the removing means and stored in the storing means. At the same time, the output signal of the detecting means is received and selected. The means refers to the recording means, determines on the pipeline the position at which the instruction stored in the storage means is returned, the progress of the pipeline is adjusted by the timing adjustment means, and the stored instruction is returned by the return means to the pipeline. Turn it back on.

【0012】[0012]

【実施例】以下、この発明の一実施例を図面について説
明する。また、図1においては図5の従来例と同一また
は相当部分には同一符号を用いている。本実施例では命
令パイプラインの先頭の命令(命令1)でキャッシュミ
スが発生し、命令1は3つ後方にある命令4とデータフ
ロー依存が発生しているものとする。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. Further, in FIG. 1, the same reference numerals are used for the same or corresponding parts as in the conventional example of FIG. In the present embodiment, it is assumed that a cache miss has occurred at the first instruction (instruction 1) in the instruction pipeline, and instruction 1 has a data flow dependency with instruction 4 which is three instructions behind.

【0013】図1中、1はバス・インターフェース(B
CU)、2はプリフェッチ・キュー(PFU)、3はデ
コーダ(IDU)、4はアドレス生成・変換(EA
G)、5は実行(EXU)の各ステージでそれぞれ図5
に対応しており、処理の流れも前述の通りである。また
6はデータフェッチのステージで、EAG4で生成・変
換されたアドレスをもとにデータをフェッチするステー
ジである。7はバス・アクセスによって読み出される全
ての命令のレジスタ・オペランド及びメモリアドレスを
比較してそれまでに読み出されたどの命令とデータフロ
ー依存が発生しているかを調べる比較器である。8は比
較器7で調べた結果を保持するスコアボードである。9
はEAG4で生成・変換されたアドレスを調べキャッシ
ュミスが発生したかどうかを調べる。10はEAG4で
キャッシュミスが発生した場合、キャッシュミス検出器
9からの出力信号を受けて、ミス命令を格納手段に送り
パイプライン上から命令を除去する除去器である。11
は除去器10によってパイプライン上から除去された命
令を格納しておくためのミス命令退避キューである。1
2はキャッシュミス検出器からの出力信号を受け、スコ
アボード8を調べミス命令とデータフロー依存が発生し
ている命令のパイプライン上の位置を検出するセレクタ
である。13はセレクタ12の出力信号を受けてミス命
令の退避キュー11に格納されたミス命令をパイプライ
ン上の指定された位置に戻す手段である。14はセレク
タ12の出力信号を受けて格納されている命令をパイプ
ライン上に戻す位置から前にある命令を1つ進め後ろの
命令を止め該ミス命令を戻す位置を与えるタイミング調
整回路である。
In FIG. 1, 1 is a bus interface (B
CU), 2 is a prefetch queue (PFU), 3 is a decoder (IDU), 4 is address generation / conversion (EA).
G) and 5 are the stages of execution (EXU), respectively.
The processing flow is also as described above. 6 is a data fetch stage, which is a stage for fetching data based on the address generated and converted by the EAG 4. Reference numeral 7 is a comparator for comparing the register operands and memory addresses of all the instructions read by the bus access and checking which instruction read so far and which data flow dependency has occurred. Reference numeral 8 is a scoreboard that holds the result of examination by the comparator 7. 9
Checks the address generated / converted by EAG4 to see if a cache miss has occurred. Reference numeral 10 denotes a remover that receives an output signal from the cache miss detector 9 and sends a miss instruction to the storing means to remove the instruction from the pipeline when a cache miss occurs in the EAG 4. 11
Is a miss instruction save queue for storing the instructions removed from the pipeline by the remover 10. 1
A selector 2 receives the output signal from the cache miss detector and checks the scoreboard 8 to detect the position on the pipeline of the miss instruction and the instruction having the data flow dependency. Reference numeral 13 is a means for receiving the output signal of the selector 12 and returning the miss instruction stored in the miss instruction save queue 11 to the designated position on the pipeline. Reference numeral 14 denotes a timing adjusting circuit which receives the output signal of the selector 12 and gives a position where the stored instruction is returned to the pipeline from the position where the preceding instruction is advanced by one and the following instruction is stopped to return the miss instruction.

【0014】図2は図1の実施例に使用されるスコアボ
ードの構造図である。図2ではプリフェッチ・キュー2
に5つ命令が蓄えられているものとするが、当然その数
は可能な限り増設できる。図2では、201にはEAG
4の命令と後方4命令との間のデータフロー依存の発生
を表すデータで、201行211列は1つ前、201行
212列は2つ前、201行216列は6つ前の命令と
の間のデータフロー依存の発生を表すデータが比較器の
出力により記録されている。図2の実施例ではデータは
順番に0、0、1、0、0、1でEAG4にある命令が
3つ前のPFU2の先頭から2番目にある命令及びPF
U2の最後尾にある命令とデータフロー依存が発生して
いることを示す。すなわち、EAG4でキャッシュミス
を発生した命令を命令1とすれば命令1は命令4及び命
令7とデータフロー依存が発生していることを示す。デ
ータの更新はバスアクセスにより命令が読み込まれる度
に行なわれ、図2でいうと下方向へシフトし新しく読み
込まれた命令との間のデータフロー依存の状態を表すフ
ラグが立てられる。この時図2中216列の所が全ての
行にわたって更新される。またデータフロー依存の発生
を記録しうる範囲は、先頭がEAG4にある命令で、最
後尾はPFU2内の最後尾が限界でそれ以上のデータフ
ロー依存の発生は記録されない。
FIG. 2 is a structural diagram of the scoreboard used in the embodiment of FIG. In FIG. 2, prefetch queue 2
It is assumed that 5 instructions are stored in, but naturally the number can be increased as much as possible. In FIG. 2, 201 is EAG.
The data indicating the occurrence of the data flow dependency between the 4th instruction and the 4th instruction in the rear, the 201st row and the 211th column is the previous instruction, the 201st row and the 212th column is the second previous instruction, and the 201th row and the 216th column is the sixth previous instruction. Data representing the occurrence of a data flow dependency during is recorded by the output of the comparator. In the embodiment of FIG. 2, the data is 0, 0, 1, 0, 0, 1 in order, and the instruction in the EAG 4 is the instruction 2 and the PF which is the second from the beginning of the PFU 2, which is three instructions before.
Indicates that the instruction at the end of U2 and data flow dependency have occurred. That is, if the instruction causing the cache miss in the EAG4 is the instruction 1, it indicates that the instruction 1 has the data flow dependency with the instruction 4 and the instruction 7. Data is updated every time an instruction is read by bus access, and in FIG. 2, the flag is shifted downward and a flag indicating a data flow dependent state with the newly read instruction is set. At this time, column 216 in FIG. 2 is updated over all rows. The range in which the occurrence of data flow dependency can be recorded is the instruction whose head is in EAG4, and the last is the last in PFU2, and the occurrence of more data flow dependency is not recorded.

【0015】次に、上記のように構成されたパイプ・ラ
イン、及びスコア・ボードにおいてキャッシュミス発生
時における処理の動作について、図3のフローチャート
を参照しながら説明する。
Next, the operation of the processing performed when a cache miss occurs in the pipeline and the score board configured as described above will be described with reference to the flowchart of FIG.

【0016】キャッシュミスが発生したらステップ30
1でキャッシュミス検出器はスコアボードを参照し、も
しその命令とデータフロー依存がn+1番目の命令との
間に発生しているならば何もしない。もしそれ以外なら
ば、ステップ302で除去器に信号を送り命令の流れを
切替えn番目の命令をミス命令退避キュー10に送る。
If a cache miss occurs, step 30
At 1, the cache miss detector refers to the scoreboard and does nothing if the instruction and the dataflow dependency occur between the n + 1th instruction. If not, a signal is sent to the remover in step 302 to switch the instruction flow and the nth instruction is sent to the miss instruction save queue 10.

【0017】ステップ303でセレクタ11はスコアボ
ード8を参照し、除去した命令より後方のどの命令にミ
ス命令退避キューとデータフロー依存が発生しているか
を調べる。もしあれば、ステップ304でキャッシュミ
ス検出器9の出力信号を受けてセレクタが挿入位置を決
定して、セレクタの出力信号を受けてタイミング回路1
4はその位置から前方の命令を前に一つ進め、それより
後方の命令を止めて空いた位置にパイプライン上に格納
した命令を戻す手段13によって挿入する。もし、デー
タフロー依存が発生する命令がスコアボード上から検出
されなければ、パイプライン上の全ての命令を一つ前に
進め、バスアクセスによる命令の読み込みを止め、PF
U2の最後尾に格納された命令を戻す。
In step 303, the selector 11 refers to the scoreboard 8 to check which instruction after the removed instruction has the miss instruction save queue and the data flow dependency. If there is, the selector determines the insertion position in response to the output signal of the cache miss detector 9 in step 304, and receives the output signal of the selector to determine the timing circuit 1.
4 is inserted by means 13 for advancing the preceding instruction from that position by one, stopping the instruction behind it, and returning the instruction stored on the pipeline to the empty position. If an instruction that causes data flow dependency is not detected on the scoreboard, advance all instructions on the pipeline by one, stop reading instructions by bus access, and execute PF.
Returns the instruction stored at the end of U2.

【0018】次にキャッシュ・ミスが発生した場合の命
令の移動する例を図4を使って説明する。図4の401
〜407はそれぞれ1サイクルに相当する。図4は命令
1でキャッシュミスが発生し命令1とデータフロー依存
が発生する命令は命令4であるとした場合の図である。
Next, an example of instruction movement when a cache miss occurs will be described with reference to FIG. 401 of FIG.
.About.407 correspond to one cycle, respectively. FIG. 4 is a diagram in the case where the instruction 1 causes a cache miss and causes an instruction 1 and data flow dependency to be the instruction 4.

【0019】サイクル403で命令1にキャッシュミス
が発生するとキャッシュミス検出器11により、スコア
ボードを参照し命令2との間にデータフロー依存が発生
していないかどうかを調べる。本例では命令1と命令2
の間にキャッシュミスは発生してないものとし、サイク
ル404で命令1はキャッシュミス検出器の出力信号を
受け10の除去器によりパイプライン上のミス発生命令
1はパイプライン上から除去され、ミス命令退避キュー
11に格納される。他のパイプライン上の命令はそれぞ
れ1つ前に進む。セレクタ12は上記キャッシュミス検
出器9の出力信号を受けスコアボードを参照しPFU2
及びIDU3上からミス発生命令1とデータフロー依存
の発生する命令4を検出し格納された命令の挿入位置を
決定する。挿入位置が決定されると次のサイクル405
に移行するところで、タイミング回路14はセレクタ1
3からの出力信号を受け、命令4より前の命令を1つ進
め、命令5より後方の命令を止め、ミス発生退避キュー
に格納された命令1の挿入位置をつくる。同じくセレク
タ12からの出力信号を受けたパイプライン上に戻す手
段13はミス命令退避キューに格納され後続の命令1を
サイクル405で命令4の前に挿入する。
When a cache miss occurs in the instruction 1 in the cycle 403, the cache miss detector 11 refers to the scoreboard to check whether the data flow dependency with the instruction 2 has occurred. In this example, instruction 1 and instruction 2
In the cycle 404, the instruction 1 receives the output signal of the cache miss detector, and the remover 10 removes the instruction 1 in the pipeline where the miss occurs from the pipeline. It is stored in the instruction save queue 11. The instructions on the other pipelines each go one step forward. The selector 12 receives the output signal of the cache miss detector 9 and refers to the scoreboard to PFU2.
Also, the miss occurrence instruction 1 and the data flow dependent instruction 4 are detected from the IDU 3 to determine the insertion position of the stored instruction. When the insertion position is determined, the next cycle 405
The timing circuit 14 moves to the selector 1
In response to the output signal from the instruction 3, the instruction before the instruction 4 is advanced by one, the instruction after the instruction 5 is stopped, and the insertion position of the instruction 1 stored in the miss occurrence save queue is created. Similarly, the means 13 for returning to the pipeline receiving the output signal from the selector 12 inserts the following instruction 1 stored in the miss instruction save queue before the instruction 4 in the cycle 405.

【0020】図4からわかるように、キャッシュミスが
発生しても1サイクルしか命令に遅滞が生じない。
As can be seen from FIG. 4, even if a cache miss occurs, the instruction is delayed for only one cycle.

【0021】[0021]

【発明の効果】以上のようにこの発明によれば、ある命
令がキャッシュミスを発生すると、それを検出した検出
手段の出力信号により、選択手段が比較手段から得られ
た記録手段を参照しデータフロー依存の発生する命令の
位置を見つけ、タイミング調整手段でパイプライン上の
命令の進行速度を調整することにより、次のサイクルで
該命令をデータフロー依存が発生する位置まで後方に移
動し、キャッシュ内にデータが読み込まれるまで待つこ
となく、1サイクル処理を無駄にするだけで命令のパイ
プラインの処理を続けることができ、それによってパイ
プライン機能を持つ計算機の処理能力の向上をはかるこ
とが可能となる。
As described above, according to the present invention, when a certain instruction causes a cache miss, the selecting means refers to the recording means obtained from the comparing means in accordance with the output signal of the detecting means, which detects the cache miss, and then outputs the data. By finding the position of the instruction where the flow dependency occurs and adjusting the progress speed of the instruction on the pipeline by the timing adjusting means, the instruction is moved backward to the position where the data flow dependency occurs in the next cycle, and the cache is cached. The pipeline processing of instructions can be continued by simply wasting one cycle processing without waiting until the data is read in, thereby improving the processing capacity of the computer with the pipeline function. Becomes

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

【図1】この発明の実施例によるパイプラインの構成の
ブロック図である。
FIG. 1 is a block diagram of a pipeline configuration according to an embodiment of the present invention.

【図2】この発明におけるスコアボードの構造図であ
る。
FIG. 2 is a structural diagram of a scoreboard according to the present invention.

【図3】この発明における動作のフローチャート図であ
る。
FIG. 3 is a flow chart of the operation in the present invention.

【図4】この発明におけるキャッシュミスが発生した場
合のパイプライン処理の概要図である。
FIG. 4 is a schematic diagram of pipeline processing when a cache miss occurs in the present invention.

【図5】従来技術によるパイプラインの構成図である。FIG. 5 is a block diagram of a conventional pipeline.

【図6】従来技術によるパイプライン処理の概要図であ
る。
FIG. 6 is a schematic diagram of pipeline processing according to a conventional technique.

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

7 比較手段 8 記録手段 9 キャッシュミス検出手段 10 命令除去手段 11 キャッシュ命令格納手段 12 選択手段 13 退避命令戻し手段 14 タイミング調整手段 7 Comparing Means 8 Recording Means 9 Cache Miss Detecting Means 10 Instruction Removing Means 11 Cache Instruction Storing Means 12 Selecting Means 13 Saving Instruction Returning Means 14 Timing Adjusting Means

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 キャッシュメモリと実行する命令を事前
にプリフェッチするプリフェッチキューと命令パイプラ
インを備え、命令実行のパイプライン処理を行なう計算
機システムにおいて、 プリフェッチキューと命令パイプライン中に蓄えられて
いる全ての複数の命令が指定するレジスタオペランド及
びメモリオペランドのアドレスを比較する比較手段と、 該比較手段の出力から、同一オペランドを指定している
ものを検出した場合に、命令の実行順序と同一の順番を
オペランドに対して付加し記録する記録手段と、 命令パイプライン上の命令のアドレスを生成・変換した
段階でキャッシュと比較し該命令にキャッシュミスが発
生したか否かを検出する検出手段と、 該検出手段の出力を受けてキャッシュミス発生時に該命
令をパイプライン上から除去する除去手段と、 該除去手段によって命令パイプライン上から除去された
キャッシュミス発生命令を格納しておく格納手段と、 上記記録手段によって得られた記録を参照し、上記格納
手段によって格納された命令とデータフロー依存が発生
している命令のパイプライン上の位置を検出しパイプラ
イン上に戻す位置を選択する選択手段と、 キャッシュミス発生時に、命令パイプラインから除去さ
れた命令の位置の命令パイプラインの進みと、命令パイ
プラインに別途格納された命令を挿入する位置のパイプ
ラインの進みを調節するタイミング調整手段と、 上記選択手段によって選択された位置に上記タイミング
調整手段によって進み方を調整されたパイプライン上に
別途格納された命令を戻す戻し手段と、を備えた情報処
理装置。
1. A computer system comprising a cache memory, a prefetch queue for prefetching instructions to be executed in advance, and an instruction pipeline, and in a computer system for performing pipeline processing of instruction execution, all stored in the prefetch queue and the instruction pipeline. Comparing means for comparing addresses of register operands and memory operands designated by a plurality of instructions, and when an instruction specifying the same operand is detected from the output of the comparing means, the same order as the execution order of the instructions is detected. Recording means for adding and recording to the operand, and detection means for detecting whether or not a cache miss has occurred in the instruction by comparing the address of the instruction on the instruction pipeline with the cache at the stage of generation and conversion. When the cache miss occurs in response to the output of the detecting means, the instruction is pipelined. Removing means for removing the cache miss instruction from the instruction pipeline by the removing means, and a record obtained by the recording means, and stored by the storing means. And the selection means for detecting the position on the pipeline of the instruction that has the data flow dependency and the position for returning to the pipeline, and the position of the instruction removed from the instruction pipeline when the cache miss occurs. The timing adjustment means for adjusting the advance of the instruction pipeline and the advance of the pipeline at the position where the instruction separately stored in the instruction pipeline is inserted, and the way of advancing by the timing adjustment means to the position selected by the selecting means. An information processing apparatus, comprising: a return unit for returning an instruction separately stored on the adjusted pipeline.
JP4099694A 1992-04-20 1992-04-20 Information processor Pending JPH05298097A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4099694A JPH05298097A (en) 1992-04-20 1992-04-20 Information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4099694A JPH05298097A (en) 1992-04-20 1992-04-20 Information processor

Publications (1)

Publication Number Publication Date
JPH05298097A true JPH05298097A (en) 1993-11-12

Family

ID=14254159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4099694A Pending JPH05298097A (en) 1992-04-20 1992-04-20 Information processor

Country Status (1)

Country Link
JP (1) JPH05298097A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802588A (en) * 1995-04-12 1998-09-01 Advanced Micro Devices, Inc. Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer
US6088788A (en) * 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor
KR100300875B1 (en) * 1998-12-30 2001-09-06 박종섭 How to deal with cache misses
US7243215B2 (en) 2000-01-28 2007-07-10 Hewlett-Packard Development Company, L.P. System and method for utilizing a scoreboard to indicate information pertaining to pending register writes
US8201067B2 (en) 2008-02-25 2012-06-12 International Business Machines Corporation Processor error checking for instruction data

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802588A (en) * 1995-04-12 1998-09-01 Advanced Micro Devices, Inc. Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer
US6088788A (en) * 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor
KR100300875B1 (en) * 1998-12-30 2001-09-06 박종섭 How to deal with cache misses
US7243215B2 (en) 2000-01-28 2007-07-10 Hewlett-Packard Development Company, L.P. System and method for utilizing a scoreboard to indicate information pertaining to pending register writes
US8201067B2 (en) 2008-02-25 2012-06-12 International Business Machines Corporation Processor error checking for instruction data

Similar Documents

Publication Publication Date Title
US6178498B1 (en) Storing predicted branch target address in different storage according to importance hint in branch prediction instruction
EP0689131A1 (en) A computer system for executing branch instructions
JPH10232827A (en) Method and device for writing back prefetch cache
JPH07281895A (en) Branch cache
US6760835B1 (en) Instruction branch mispredict streaming
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
US7676663B2 (en) Method, system and program product for pipelined processor having a branch target buffer (BTB) table with a recent entry queue in parallel with the BTB table
JP2596712B2 (en) System and method for managing execution of instructions, including adjacent branch instructions
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
EP1413953A2 (en) Instruction prefetch method and apparatus for conditional branch instructions
JPH05298097A (en) Information processor
US5287483A (en) Prefetched operand storing system for an information processor
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
US6360310B1 (en) Apparatus and method for instruction cache access
JPH0773034A (en) Information processor
JP2806690B2 (en) Microprocessor
JP2545594B2 (en) Operand data prefetching method
US6223257B1 (en) Instruction cache address generation technique having reduced delays in fetching missed data
JP3168657B2 (en) Branch instruction control circuit
JP2867798B2 (en) Advance control unit
JPH01296345A (en) Information processor
JPH06348592A (en) Write buffer control system
JPH0248733A (en) Information processor
JPS6047618B2 (en) information processing equipment
JP3668643B2 (en) Information processing device