JPH05298097A - 情報処理装置 - Google Patents
情報処理装置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
- cache
- instructions
- 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
Links
Landscapes
- Retry When Errors Occur (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 パイプライン命令処理機能をもつ計算機にお
いてスコアボーディング機能を持たせて、命令をデータ
フロー依存の発生位置までに限り、後方に挿入し直しパ
イプの中身を消去することなく処理を続けかつキャッシ
ュにデータが読み込まれるまで何サイクルも待つことな
く処理することにより、プロセッサにおける処理能力の
向上を得る。 【構成】 命令パイプラインが処理されていく過程で、
比較器7でプリフェッチ・キュー2及びパイプライン上
の複数個の命令のデータフロー依存をスコアボード8に
記録し、ある命令セットにおいてキャッシュミス検出器
9がキャッシュミスの発生を検出した時その命令セット
をいったん退避専用キュー11に格納して次の命令を処
理する。その間セレクタ12はスコアボードを調べキャ
シュミスが発生した命令とデータフロー依存が発生する
命令の位置を検知し、命令の進み方をタイミング回路1
4により調整しデータフロー依存が発生した命令の前に
挿入する。
いてスコアボーディング機能を持たせて、命令をデータ
フロー依存の発生位置までに限り、後方に挿入し直しパ
イプの中身を消去することなく処理を続けかつキャッシ
ュにデータが読み込まれるまで何サイクルも待つことな
く処理することにより、プロセッサにおける処理能力の
向上を得る。 【構成】 命令パイプラインが処理されていく過程で、
比較器7でプリフェッチ・キュー2及びパイプライン上
の複数個の命令のデータフロー依存をスコアボード8に
記録し、ある命令セットにおいてキャッシュミス検出器
9がキャッシュミスの発生を検出した時その命令セット
をいったん退避専用キュー11に格納して次の命令を処
理する。その間セレクタ12はスコアボードを調べキャ
シュミスが発生した命令とデータフロー依存が発生する
命令の位置を検知し、命令の進み方をタイミング回路1
4により調整しデータフロー依存が発生した命令の前に
挿入する。
Description
【0001】
【産業上の利用分野】この発明は、パイプライン処理機
能を持つ計算機において、キャッシュミスを発生させた
命令をパイプライン上後方へ移動することにより処理を
高速化する方法に関するものである。
能を持つ計算機において、キャッシュミスを発生させた
命令をパイプライン上後方へ移動することにより処理を
高速化する方法に関するものである。
【0002】
【従来の技術】一般に、32ビット・マイクロプロセッ
サでは高速化の手段としてパイプライン方式が用いられ
ている。プロセッサの内部はいくつかの機能ブロックの
ステージから構成され、各ブロックは入力を処理して次
のブロックへその結果をわたすようになっている。従来
例として、図4にパイプラインの構成図をまた図5にパ
イプ・ライン処理の概要を示す。この図4と図5は「3
2ビットマイクロプロセッサ入門」(南宗宏著、CQ出
版社)に示されたものである。
サでは高速化の手段としてパイプライン方式が用いられ
ている。プロセッサの内部はいくつかの機能ブロックの
ステージから構成され、各ブロックは入力を処理して次
のブロックへその結果をわたすようになっている。従来
例として、図4にパイプラインの構成図をまた図5にパ
イプ・ライン処理の概要を示す。この図4と図5は「3
2ビットマイクロプロセッサ入門」(南宗宏著、CQ出
版社)に示されたものである。
【0003】図5において、1はバス・インターフェー
ス(BCU)で、2は命令を溜めておくプリフェッチ・
キュー(PFU)で、3は命令をデコードするデコーダ
・ユニット(IDU)である。4はアドレスの生成・変
換を行なうステージ(EAG)である。5は実行のステ
ージ(EXU)である。
ス(BCU)で、2は命令を溜めておくプリフェッチ・
キュー(PFU)で、3は命令をデコードするデコーダ
・ユニット(IDU)である。4はアドレスの生成・変
換を行なうステージ(EAG)である。5は実行のステ
ージ(EXU)である。
【0004】次にパイプ・ラインの流れの概略を図5で
示す。BCU1によるバス・アクセスで読み出された命
令が、PFU2のプリフェッチ・キューに溜り、IDU
3のデコーダへ渡されてデコードされる。そして、デコ
ーダからアドレスの情報がEAG3へ渡され、アドレス
が生成・変換されEXU5で実行される。ここで、プリ
フェッチ・キュー2には連続する命令がいくつも順番に
溜っているものとする。
示す。BCU1によるバス・アクセスで読み出された命
令が、PFU2のプリフェッチ・キューに溜り、IDU
3のデコーダへ渡されてデコードされる。そして、デコ
ーダからアドレスの情報がEAG3へ渡され、アドレス
が生成・変換されEXU5で実行される。ここで、プリ
フェッチ・キュー2には連続する命令がいくつも順番に
溜っているものとする。
【0005】図6は命令1から順番にアクセスされる場
合のパイプ・ラインの様子を図示したものである。60
1〜608はサイクルはそれぞれ1サイクルに対応す
る。サイクル601ではバス・アクセス1で命令1が読
み出されたところである。次にサイクル602では命令
1はデコーダ3に渡され、同時に命令2がバス・アクセ
ス1で読み出されたところである。サイクル603に移
ると命令1、命令2は次のステージにそれぞれ移り新し
く命令3がフェッチされる。そして、サイクル604、
サイクル605の様に順番に各命令は同時にそれぞれの
ステージで処理されていく。このように1つの命令をい
くつかのステージに分割し各ステージの処理を同時にい
くつも処理していく機能をパイプ・ライン制御機能とい
う。
合のパイプ・ラインの様子を図示したものである。60
1〜608はサイクルはそれぞれ1サイクルに対応す
る。サイクル601ではバス・アクセス1で命令1が読
み出されたところである。次にサイクル602では命令
1はデコーダ3に渡され、同時に命令2がバス・アクセ
ス1で読み出されたところである。サイクル603に移
ると命令1、命令2は次のステージにそれぞれ移り新し
く命令3がフェッチされる。そして、サイクル604、
サイクル605の様に順番に各命令は同時にそれぞれの
ステージで処理されていく。このように1つの命令をい
くつかのステージに分割し各ステージの処理を同時にい
くつも処理していく機能をパイプ・ライン制御機能とい
う。
【0006】しかし、実際の処理の流れの中では、命令
の各ステージの処理時間の間にばらつきがあり、オペラ
ンドの読みだし/書き込み、アドレス計算でのメモリ間
参照のバス・サイクルの挿入、データ・フェッチでのキ
ャッシュ・ミスの発生などがあって図6のように単純に
処理が流れていくわけではない。
の各ステージの処理時間の間にばらつきがあり、オペラ
ンドの読みだし/書き込み、アドレス計算でのメモリ間
参照のバス・サイクルの挿入、データ・フェッチでのキ
ャッシュ・ミスの発生などがあって図6のように単純に
処理が流れていくわけではない。
【0007】従来技術では、キャッシュ・ミスが発生し
たときには図5において命令1がサイクル603のとこ
ろでキャッシュ・ミスを検知するとパイプ・ラインの流
れはそこで止まりメモリからキャッシュにデータが読み
込まれるのを待ち、メモリからキャッシュに読み込まれ
た後、順調に処理が行なわれた場合のサイクル604と
同じ状態へと移行することにより、パイプ・ラインの内
容を消すことを防いできた。
たときには図5において命令1がサイクル603のとこ
ろでキャッシュ・ミスを検知するとパイプ・ラインの流
れはそこで止まりメモリからキャッシュにデータが読み
込まれるのを待ち、メモリからキャッシュに読み込まれ
た後、順調に処理が行なわれた場合のサイクル604と
同じ状態へと移行することにより、パイプ・ラインの内
容を消すことを防いできた。
【0008】
【発明が解決しようとする課題】従来技術の手段では、
パイプ・ラインの内容を消すことを防ぐ効果はあっても
キャッシュ・ミス発生時にパイプ・ラインの流れをデー
タがメモリからキャッシュ内に読み込まれるまで止めて
おかなければならない。また、メモリからデータをロー
ドするのには、かなり時間がかかり、そのため処理は何
サイクルも待たされることになり、その間は無駄に費や
されることになる。
パイプ・ラインの内容を消すことを防ぐ効果はあっても
キャッシュ・ミス発生時にパイプ・ラインの流れをデー
タがメモリからキャッシュ内に読み込まれるまで止めて
おかなければならない。また、メモリからデータをロー
ドするのには、かなり時間がかかり、そのため処理は何
サイクルも待たされることになり、その間は無駄に費や
されることになる。
【0009】この発明は、上記のような問題点を解消す
るためになされたもので、キャッシュ・ミス発生時に処
理の流れをできるだけ止めることなく行ない、その結果
パイプ・ライン制御機能の処理性能の向上を目的とする
ものである。
るためになされたもので、キャッシュ・ミス発生時に処
理の流れをできるだけ止めることなく行ない、その結果
パイプ・ライン制御機能の処理性能の向上を目的とする
ものである。
【0010】
【課題を解決するための手段】この発明に係わる情報処
理装置は、プリフェッチキューと命令パイプライン中に
蓄えられている全ての複数の命令が指定するレジスタオ
ペランドとメモリオペランドのアドレスを比較する比較
手段と、該比較手段の出力から、同一オペランドを指定
しているものを検出した場合に、命令の実行順序と同一
の順番をオペランドに対して付加し記録する記録手段
と、命令パイプライン上の命令のアドレスを生成・変換
した段階でキャッシュと比較し該命令にキャッシュミス
が発生したか否かを検出する検出手段と、該キャッシュ
ミス検出手段の出力を受けてキャッシュミス発生時に該
命令をパイプライン上から除去する除去手段と、該除去
手段によって命令パイプライン上から除去されたキャッ
シュミス発生命令を格納しておく格納手段と、上記記録
手段によって得られた記録を参照し、上記格納手段によ
って格納された命令とデータフロー依存が発生している
命令のパイプライン上の位置を検出しパイプライン上に
戻す位置を選択する選択手段と、キャッシュミス発生時
に、命令パイプラインから除去された命令の位置の命令
パイプラインの進みと、命令パイプラインに別途格納さ
れた命令を挿入する位置のパイプラインの進みを調節す
るタイミング調整手段と、上記選択手段によって選択さ
れた位置に上記タイミング調整手段によって進み方を調
整されたパイプライン上に別途格納された命令を戻す戻
し手段と、を設けたものである。
理装置は、プリフェッチキューと命令パイプライン中に
蓄えられている全ての複数の命令が指定するレジスタオ
ペランドとメモリオペランドのアドレスを比較する比較
手段と、該比較手段の出力から、同一オペランドを指定
しているものを検出した場合に、命令の実行順序と同一
の順番をオペランドに対して付加し記録する記録手段
と、命令パイプライン上の命令のアドレスを生成・変換
した段階でキャッシュと比較し該命令にキャッシュミス
が発生したか否かを検出する検出手段と、該キャッシュ
ミス検出手段の出力を受けてキャッシュミス発生時に該
命令をパイプライン上から除去する除去手段と、該除去
手段によって命令パイプライン上から除去されたキャッ
シュミス発生命令を格納しておく格納手段と、上記記録
手段によって得られた記録を参照し、上記格納手段によ
って格納された命令とデータフロー依存が発生している
命令のパイプライン上の位置を検出しパイプライン上に
戻す位置を選択する選択手段と、キャッシュミス発生時
に、命令パイプラインから除去された命令の位置の命令
パイプラインの進みと、命令パイプラインに別途格納さ
れた命令を挿入する位置のパイプラインの進みを調節す
るタイミング調整手段と、上記選択手段によって選択さ
れた位置に上記タイミング調整手段によって進み方を調
整されたパイプライン上に別途格納された命令を戻す戻
し手段と、を設けたものである。
【0011】
【作用】この発明においては、キャッシュミス検出手段
によってキャッシュミスを検出すると出力信号によりそ
の命令をパイプライン上から除去手段により除去し、格
納手段に格納し、同時に検出手段の出力信号を受けて選
択手段は記録手段を参照し、格納手段に格納された命令
を戻す位置をパイプライン上で決定し、タイミング調整
手段によりパイプラインの進み具合を調整し、格納され
ていた命令を戻し手段によりパイプライン上に戻す。
によってキャッシュミスを検出すると出力信号によりそ
の命令をパイプライン上から除去手段により除去し、格
納手段に格納し、同時に検出手段の出力信号を受けて選
択手段は記録手段を参照し、格納手段に格納された命令
を戻す位置をパイプライン上で決定し、タイミング調整
手段によりパイプラインの進み具合を調整し、格納され
ていた命令を戻し手段によりパイプライン上に戻す。
【0012】
【実施例】以下、この発明の一実施例を図面について説
明する。また、図1においては図5の従来例と同一また
は相当部分には同一符号を用いている。本実施例では命
令パイプラインの先頭の命令(命令1)でキャッシュミ
スが発生し、命令1は3つ後方にある命令4とデータフ
ロー依存が発生しているものとする。
明する。また、図1においては図5の従来例と同一また
は相当部分には同一符号を用いている。本実施例では命
令パイプラインの先頭の命令(命令1)でキャッシュミ
スが発生し、命令1は3つ後方にある命令4とデータフ
ロー依存が発生しているものとする。
【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つ進め後ろの
命令を止め該ミス命令を戻す位置を与えるタイミング調
整回路である。
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つ進め後ろの
命令を止め該ミス命令を戻す位置を与えるタイミング調
整回路である。
【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内の最後尾が限界でそれ以上のデータフ
ロー依存の発生は記録されない。
ードの構造図である。図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内の最後尾が限界でそれ以上のデータフ
ロー依存の発生は記録されない。
【0015】次に、上記のように構成されたパイプ・ラ
イン、及びスコア・ボードにおいてキャッシュミス発生
時における処理の動作について、図3のフローチャート
を参照しながら説明する。
イン、及びスコア・ボードにおいてキャッシュミス発生
時における処理の動作について、図3のフローチャート
を参照しながら説明する。
【0016】キャッシュミスが発生したらステップ30
1でキャッシュミス検出器はスコアボードを参照し、も
しその命令とデータフロー依存がn+1番目の命令との
間に発生しているならば何もしない。もしそれ以外なら
ば、ステップ302で除去器に信号を送り命令の流れを
切替えn番目の命令をミス命令退避キュー10に送る。
1でキャッシュミス検出器はスコアボードを参照し、も
しその命令とデータフロー依存がn+1番目の命令との
間に発生しているならば何もしない。もしそれ以外なら
ば、ステップ302で除去器に信号を送り命令の流れを
切替えn番目の命令をミス命令退避キュー10に送る。
【0017】ステップ303でセレクタ11はスコアボ
ード8を参照し、除去した命令より後方のどの命令にミ
ス命令退避キューとデータフロー依存が発生しているか
を調べる。もしあれば、ステップ304でキャッシュミ
ス検出器9の出力信号を受けてセレクタが挿入位置を決
定して、セレクタの出力信号を受けてタイミング回路1
4はその位置から前方の命令を前に一つ進め、それより
後方の命令を止めて空いた位置にパイプライン上に格納
した命令を戻す手段13によって挿入する。もし、デー
タフロー依存が発生する命令がスコアボード上から検出
されなければ、パイプライン上の全ての命令を一つ前に
進め、バスアクセスによる命令の読み込みを止め、PF
U2の最後尾に格納された命令を戻す。
ード8を参照し、除去した命令より後方のどの命令にミ
ス命令退避キューとデータフロー依存が発生しているか
を調べる。もしあれば、ステップ304でキャッシュミ
ス検出器9の出力信号を受けてセレクタが挿入位置を決
定して、セレクタの出力信号を受けてタイミング回路1
4はその位置から前方の命令を前に一つ進め、それより
後方の命令を止めて空いた位置にパイプライン上に格納
した命令を戻す手段13によって挿入する。もし、デー
タフロー依存が発生する命令がスコアボード上から検出
されなければ、パイプライン上の全ての命令を一つ前に
進め、バスアクセスによる命令の読み込みを止め、PF
U2の最後尾に格納された命令を戻す。
【0018】次にキャッシュ・ミスが発生した場合の命
令の移動する例を図4を使って説明する。図4の401
〜407はそれぞれ1サイクルに相当する。図4は命令
1でキャッシュミスが発生し命令1とデータフロー依存
が発生する命令は命令4であるとした場合の図である。
令の移動する例を図4を使って説明する。図4の401
〜407はそれぞれ1サイクルに相当する。図4は命令
1でキャッシュミスが発生し命令1とデータフロー依存
が発生する命令は命令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の前に挿入する。
が発生するとキャッシュミス検出器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の前に挿入する。
【0020】図4からわかるように、キャッシュミスが
発生しても1サイクルしか命令に遅滞が生じない。
発生しても1サイクルしか命令に遅滞が生じない。
【0021】
【発明の効果】以上のようにこの発明によれば、ある命
令がキャッシュミスを発生すると、それを検出した検出
手段の出力信号により、選択手段が比較手段から得られ
た記録手段を参照しデータフロー依存の発生する命令の
位置を見つけ、タイミング調整手段でパイプライン上の
命令の進行速度を調整することにより、次のサイクルで
該命令をデータフロー依存が発生する位置まで後方に移
動し、キャッシュ内にデータが読み込まれるまで待つこ
となく、1サイクル処理を無駄にするだけで命令のパイ
プラインの処理を続けることができ、それによってパイ
プライン機能を持つ計算機の処理能力の向上をはかるこ
とが可能となる。
令がキャッシュミスを発生すると、それを検出した検出
手段の出力信号により、選択手段が比較手段から得られ
た記録手段を参照しデータフロー依存の発生する命令の
位置を見つけ、タイミング調整手段でパイプライン上の
命令の進行速度を調整することにより、次のサイクルで
該命令をデータフロー依存が発生する位置まで後方に移
動し、キャッシュ内にデータが読み込まれるまで待つこ
となく、1サイクル処理を無駄にするだけで命令のパイ
プラインの処理を続けることができ、それによってパイ
プライン機能を持つ計算機の処理能力の向上をはかるこ
とが可能となる。
【図1】この発明の実施例によるパイプラインの構成の
ブロック図である。
ブロック図である。
【図2】この発明におけるスコアボードの構造図であ
る。
る。
【図3】この発明における動作のフローチャート図であ
る。
る。
【図4】この発明におけるキャッシュミスが発生した場
合のパイプライン処理の概要図である。
合のパイプライン処理の概要図である。
【図5】従来技術によるパイプラインの構成図である。
【図6】従来技術によるパイプライン処理の概要図であ
る。
る。
7 比較手段 8 記録手段 9 キャッシュミス検出手段 10 命令除去手段 11 キャッシュ命令格納手段 12 選択手段 13 退避命令戻し手段 14 タイミング調整手段
Claims (1)
- 【請求項1】 キャッシュメモリと実行する命令を事前
にプリフェッチするプリフェッチキューと命令パイプラ
インを備え、命令実行のパイプライン処理を行なう計算
機システムにおいて、 プリフェッチキューと命令パイプライン中に蓄えられて
いる全ての複数の命令が指定するレジスタオペランド及
びメモリオペランドのアドレスを比較する比較手段と、 該比較手段の出力から、同一オペランドを指定している
ものを検出した場合に、命令の実行順序と同一の順番を
オペランドに対して付加し記録する記録手段と、 命令パイプライン上の命令のアドレスを生成・変換した
段階でキャッシュと比較し該命令にキャッシュミスが発
生したか否かを検出する検出手段と、 該検出手段の出力を受けてキャッシュミス発生時に該命
令をパイプライン上から除去する除去手段と、 該除去手段によって命令パイプライン上から除去された
キャッシュミス発生命令を格納しておく格納手段と、 上記記録手段によって得られた記録を参照し、上記格納
手段によって格納された命令とデータフロー依存が発生
している命令のパイプライン上の位置を検出しパイプラ
イン上に戻す位置を選択する選択手段と、 キャッシュミス発生時に、命令パイプラインから除去さ
れた命令の位置の命令パイプラインの進みと、命令パイ
プラインに別途格納された命令を挿入する位置のパイプ
ラインの進みを調節するタイミング調整手段と、 上記選択手段によって選択された位置に上記タイミング
調整手段によって進み方を調整されたパイプライン上に
別途格納された命令を戻す戻し手段と、を備えた情報処
理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4099694A JPH05298097A (ja) | 1992-04-20 | 1992-04-20 | 情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4099694A JPH05298097A (ja) | 1992-04-20 | 1992-04-20 | 情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05298097A true JPH05298097A (ja) | 1993-11-12 |
Family
ID=14254159
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4099694A Pending JPH05298097A (ja) | 1992-04-20 | 1992-04-20 | 情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05298097A (ja) |
Cited By (5)
| 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 (ko) * | 1998-12-30 | 2001-09-06 | 박종섭 | 캐쉬 미스 시 처리 방법 |
| 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 |
-
1992
- 1992-04-20 JP JP4099694A patent/JPH05298097A/ja active Pending
Cited By (5)
| 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 (ko) * | 1998-12-30 | 2001-09-06 | 박종섭 | 캐쉬 미스 시 처리 방법 |
| 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 |
|---|---|---|
| JPH10232827A (ja) | 先取りキャッシュ書戻しの方法と装置 | |
| JPH07281895A (ja) | 分岐キャッシュ | |
| JPH11212788A (ja) | プロセッサのデータ供給装置 | |
| US6760835B1 (en) | Instruction branch mispredict streaming | |
| JPH0527143B2 (ja) | ||
| 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 | |
| US20050102659A1 (en) | Methods and apparatus for setting up hardware loops in a deeply pipelined processor | |
| JP2596712B2 (ja) | 近接した分岐命令を含む命令の実行を管理するシステム及び方法 | |
| JPH05298097A (ja) | 情報処理装置 | |
| US5287483A (en) | Prefetched operand storing system for an information processor | |
| US6360310B1 (en) | Apparatus and method for instruction cache access | |
| US7389407B1 (en) | Central control system and method for using state information to model inflight pipelined instructions | |
| US6223257B1 (en) | Instruction cache address generation technique having reduced delays in fetching missed data | |
| JP2806690B2 (ja) | マイクロプロセッサ | |
| JP2545594B2 (ja) | オペランドデータ先取り方式 | |
| JP2535593B2 (ja) | 情報処理装置 | |
| TWI402674B (zh) | 使用擷取叢發提供資訊至一快取模組之裝置及方法 | |
| JP3168657B2 (ja) | 分岐命令制御回路 | |
| JP3102846B2 (ja) | ロードアドレスキャッシュ装置及び方法 | |
| JP2867798B2 (ja) | 先行制御装置 | |
| JPH06348592A (ja) | ライトバッファ制御方式 | |
| JPS6232507B2 (ja) | ||
| JPH01296345A (ja) | 情報処理装置 | |
| JP4049490B2 (ja) | 情報処理装置 | |
| JPH08278920A (ja) | プロセッサ |