JPH09179736A - パイプライン処理装置 - Google Patents
パイプライン処理装置Info
- Publication number
- JPH09179736A JPH09179736A JP7335099A JP33509995A JPH09179736A JP H09179736 A JPH09179736 A JP H09179736A JP 7335099 A JP7335099 A JP 7335099A JP 33509995 A JP33509995 A JP 33509995A JP H09179736 A JPH09179736 A JP H09179736A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stage
- data
- write
- resource
- 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
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】 第1の命令であるメモリアクセス命令がデー
タキャッシュミスを発生し、その後続命令が同一リソー
スに書き込む命令である場合にも、パイプライン処理を
中断することなく処理を継続可能としたパイプライン処
理装置。 【解決手段】 複数のステージを有するパイプライン処
理装置において、Wステージに、同一リソースに対する
書き込みを制御する同一リソース書き込み制御回路25
が備えられる。該制御回路25は、各ステージの依存関
係検出回路13〜16からの情報とNステージのヒット
判定回路20からの情報とを受け取って、第1の命令で
あるメモリアクセス命令がデータキャッシュミスを発生
し、その後続命令が同一リソースに書き込む命令である
場合に、第1の命令によりメインメモリ24よりブロッ
ク転送されてくるデータをレジスタファイル21に書き
込んだ場合に、命令の実行順序性が損なわれないかどう
かを判定し、実行順序性が損なわれると判断すると、ブ
ロック転送されるロードデータをレジスタファイル21
に対して書き込むことを抑止する。
タキャッシュミスを発生し、その後続命令が同一リソー
スに書き込む命令である場合にも、パイプライン処理を
中断することなく処理を継続可能としたパイプライン処
理装置。 【解決手段】 複数のステージを有するパイプライン処
理装置において、Wステージに、同一リソースに対する
書き込みを制御する同一リソース書き込み制御回路25
が備えられる。該制御回路25は、各ステージの依存関
係検出回路13〜16からの情報とNステージのヒット
判定回路20からの情報とを受け取って、第1の命令で
あるメモリアクセス命令がデータキャッシュミスを発生
し、その後続命令が同一リソースに書き込む命令である
場合に、第1の命令によりメインメモリ24よりブロッ
ク転送されてくるデータをレジスタファイル21に書き
込んだ場合に、命令の実行順序性が損なわれないかどう
かを判定し、実行順序性が損なわれると判断すると、ブ
ロック転送されるロードデータをレジスタファイル21
に対して書き込むことを抑止する。
Description
【0001】
【産業上の利用分野】本発明は、パイプライン処理装置
に係り、特に、データキャッシュを有し、処理すべき各
命令を複数のステージに分割して処理を行うパイプライ
ン処理装置に関する。
に係り、特に、データキャッシュを有し、処理すべき各
命令を複数のステージに分割して処理を行うパイプライ
ン処理装置に関する。
【0002】
【従来の技術】パイプライン処理装置に関する従来技術
として、処理すべき命令を分割された複数のステージに
より実行するという技術が知られている。そして、一般
に、分割された各パイプラインステージは、例えば、命
令読み出しステージ(以下、IFステージという)、命
令デコードステージ(以下、Dステージという)、命令
演算ステージ(以下、Eステージという)、メモリアク
セスステージ(以下、Aステージという)、命令キャン
セルステージ(以下、Nステージという)、書き込みス
テージ(以下、Wステージという)であり、処理すべき
命令は、これらの6段階のパイプラインステージにより
処理される。
として、処理すべき命令を分割された複数のステージに
より実行するという技術が知られている。そして、一般
に、分割された各パイプラインステージは、例えば、命
令読み出しステージ(以下、IFステージという)、命
令デコードステージ(以下、Dステージという)、命令
演算ステージ(以下、Eステージという)、メモリアク
セスステージ(以下、Aステージという)、命令キャン
セルステージ(以下、Nステージという)、書き込みス
テージ(以下、Wステージという)であり、処理すべき
命令は、これらの6段階のパイプラインステージにより
処理される。
【0003】図3は従来技術によるパイプライン処理装
置の構成を示すブロック図、図4は従来技術による処理
装置の動作を説明するタイムチャートであり、以下、こ
れらの図により従来技術について説明する。図1におい
て、1はアドレス保持回路、2〜6は制御情報保持回
路、7〜10はデータ保持回路、11はプログラムカウ
ンタ、12は命令キャッシュメモリ、13〜16は依存
関係検出回路、17は演算装置、18はデータキャッシ
ュメモリ、19はデータアドレスタグ、20はヒット判
定回路、21はレジスタファイル、22はパイプライン
制御装置、23はブロック転送制御回路、24はメイン
メモリである。
置の構成を示すブロック図、図4は従来技術による処理
装置の動作を説明するタイムチャートであり、以下、こ
れらの図により従来技術について説明する。図1におい
て、1はアドレス保持回路、2〜6は制御情報保持回
路、7〜10はデータ保持回路、11はプログラムカウ
ンタ、12は命令キャッシュメモリ、13〜16は依存
関係検出回路、17は演算装置、18はデータキャッシ
ュメモリ、19はデータアドレスタグ、20はヒット判
定回路、21はレジスタファイル、22はパイプライン
制御装置、23はブロック転送制御回路、24はメイン
メモリである。
【0004】図3に示す従来技術によるパイプライン処
理装置は、パイプライン制御回路22により制御される
複数のパイプラインステージ、すなわち、前述したよう
に、IF、D、E、A、N、Wの6段階のパイプライン
ステージを備えて構成されている。
理装置は、パイプライン制御回路22により制御される
複数のパイプラインステージ、すなわち、前述したよう
に、IF、D、E、A、N、Wの6段階のパイプライン
ステージを備えて構成されている。
【0005】そして、Dステージには、命令の制御情報
を保持する制御情報保持回路2が、Eステージ以降の各
ステージには、それぞれのステージの制御情報を保持す
る制御情報保持回路3〜6及び演算結果のデータを保持
するデータ保持回路7〜10が、IFステージには、プ
ログラムのカウントを行うプログラムカウンタ11が備
えられている。さらに、Eステージ以降の各ステージに
は、先行命令との依存関係を検出する依存関係検出回路
13〜16が、Eステージには、命令の演算を行う演算
装置17が、Nステージには、データキャッシュのヒッ
ト判定を行うヒット判定回路20が備えられている。
を保持する制御情報保持回路2が、Eステージ以降の各
ステージには、それぞれのステージの制御情報を保持す
る制御情報保持回路3〜6及び演算結果のデータを保持
するデータ保持回路7〜10が、IFステージには、プ
ログラムのカウントを行うプログラムカウンタ11が備
えられている。さらに、Eステージ以降の各ステージに
は、先行命令との依存関係を検出する依存関係検出回路
13〜16が、Eステージには、命令の演算を行う演算
装置17が、Nステージには、データキャッシュのヒッ
ト判定を行うヒット判定回路20が備えられている。
【0006】処理すべき命令は、IFステージで命令キ
ャッシュメモリ12から読み出され、命令で必要なデー
タは、Aステージでデータキャッシュメモリ18から読
み出されて処理が行われる。また、レジスタファイル2
1からの読み出しは、Dステージで行われ、レジスタフ
ァイル21への書き込み、または、データキャッシュ1
8への書き込みはWステージで行われる。
ャッシュメモリ12から読み出され、命令で必要なデー
タは、Aステージでデータキャッシュメモリ18から読
み出されて処理が行われる。また、レジスタファイル2
1からの読み出しは、Dステージで行われ、レジスタフ
ァイル21への書き込み、または、データキャッシュ1
8への書き込みはWステージで行われる。
【0007】次に、前述した従来技術による処理装置に
複数の命令よりなる命令列を処理させるものとしてその
動作を説明する。以下では、第1の命令がメモリアクセ
ス命令であり、この命令でデータキャッシュミスを発生
し、かつ、第2の命令以降に、この第1の命令と書き込
みリソースが同一である命令が存在するような命令列の
処理について図4を参照して説明する。図4に示すタイ
ムチャートの例は、第1の命令であるメモリアクセス命
令がロード命令であり、第2の命令が該ロード命令と同
一のレジスタに書き込みを行う命令である場合で、か
つ、第1の命令であるロード命令がキャッシュミスを生
じた場合の例である。
複数の命令よりなる命令列を処理させるものとしてその
動作を説明する。以下では、第1の命令がメモリアクセ
ス命令であり、この命令でデータキャッシュミスを発生
し、かつ、第2の命令以降に、この第1の命令と書き込
みリソースが同一である命令が存在するような命令列の
処理について図4を参照して説明する。図4に示すタイ
ムチャートの例は、第1の命令であるメモリアクセス命
令がロード命令であり、第2の命令が該ロード命令と同
一のレジスタに書き込みを行う命令である場合で、か
つ、第1の命令であるロード命令がキャッシュミスを生
じた場合の例である。
【0008】まず、第1の命令であるロード命令がIF
ステージにおいて命令キャッシュ12から読み出され
る。
ステージにおいて命令キャッシュ12から読み出され
る。
【0009】この第1の命令であるロード命令は、Dス
テージで、レジスタファイル21からアドレス計算用の
レジスタ内のデータを読み出す処理を行い、読み出され
たデータ109、110が出力される。このとき、第2
の命令は、IFステージに命令キャッシュ12から読み
出されて存在している。
テージで、レジスタファイル21からアドレス計算用の
レジスタ内のデータを読み出す処理を行い、読み出され
たデータ109、110が出力される。このとき、第2
の命令は、IFステージに命令キャッシュ12から読み
出されて存在している。
【0010】次に、第1の命令であるロード命令は、E
ステージで、データ保持回路7からのデータ111、1
12を用いて演算装置17で演算を実行させ、データキ
ャッシュ18の読み出しアドレス113を作成して出力
する。このとき、第2の命令は、Dステージに存在して
いる。
ステージで、データ保持回路7からのデータ111、1
12を用いて演算装置17で演算を実行させ、データキ
ャッシュ18の読み出しアドレス113を作成して出力
する。このとき、第2の命令は、Dステージに存在して
いる。
【0011】また、このとき、Eステージの依存関係検
出回路13は、Eステージの制御情報保持回路3に保持
されている第1の命令であるロード命令の制御情報のデ
ータと、Dステージの制御情報保持回路2の第2の命令
の制御情報のデータとを用いて、両者の依存関係のチェ
ックを行う。この例では、第1の命令と第2の命令とが
同一のレジスタへの書き込みを行う命令であるとしてい
るので、このチェックにより、両者が同一のレジスタに
対する書き込みを行うことが判明し、依存関係検出回路
13は、そのチェック結果を制御線121を介してパイ
プライン制御制御回路22に報告する。
出回路13は、Eステージの制御情報保持回路3に保持
されている第1の命令であるロード命令の制御情報のデ
ータと、Dステージの制御情報保持回路2の第2の命令
の制御情報のデータとを用いて、両者の依存関係のチェ
ックを行う。この例では、第1の命令と第2の命令とが
同一のレジスタへの書き込みを行う命令であるとしてい
るので、このチェックにより、両者が同一のレジスタに
対する書き込みを行うことが判明し、依存関係検出回路
13は、そのチェック結果を制御線121を介してパイ
プライン制御制御回路22に報告する。
【0012】次に、第1の命令であるロード命令は、A
ステージで、データ保持回路8に保持され、この保持回
路8からのデータキャッシュ読み出しアドレス114を
用いてデータキャッシュ18及びデータアドレスタグ1
9を読み出す。そして、読み出されたデータアドレスタ
グ19からのタグ情報は、第1の命令であるロード命令
のキャッシュのヒット判定を行うヒット判定回路20ま
で送られる。
ステージで、データ保持回路8に保持され、この保持回
路8からのデータキャッシュ読み出しアドレス114を
用いてデータキャッシュ18及びデータアドレスタグ1
9を読み出す。そして、読み出されたデータアドレスタ
グ19からのタグ情報は、第1の命令であるロード命令
のキャッシュのヒット判定を行うヒット判定回路20ま
で送られる。
【0013】第1の命令であるロード命令がNステージ
のヒット判定回路20によってキャッシュミスと判定さ
れた場合、このロード命令によりAステージでデータキ
ャッシュ18から読み出されたデータは無効なデータで
あるので、このロード命令は、有効なデータを読み出す
ために、メインメモリ24からのブロック転送をブロッ
ク転送制御回路23の制御の下に実行させる。
のヒット判定回路20によってキャッシュミスと判定さ
れた場合、このロード命令によりAステージでデータキ
ャッシュ18から読み出されたデータは無効なデータで
あるので、このロード命令は、有効なデータを読み出す
ために、メインメモリ24からのブロック転送をブロッ
ク転送制御回路23の制御の下に実行させる。
【0014】パイプライン制御回路22は、前述のキャ
ッシュミスを制御信号線125を介して受け取ると、出
力線127に制御信号を送り、この制御信号の下に、ヒ
ット判定の次ステージであるWステージに設けられた情
報制御保持回路6を退避レジスタとして動作するようし
て、この保持回路6にこのロード命令の制御情報を保持
させる。
ッシュミスを制御信号線125を介して受け取ると、出
力線127に制御信号を送り、この制御信号の下に、ヒ
ット判定の次ステージであるWステージに設けられた情
報制御保持回路6を退避レジスタとして動作するようし
て、この保持回路6にこのロード命令の制御情報を保持
させる。
【0015】前述において、Aステージ、及び、それ以
降にある第2の命令をも含めた後続の命令が、第1の命
令であるロード命令と同一のレジスタに書き込みを行う
命令でなく、また、ロード命令が書き込むレジスタを読
み出す命令でもない場合、キャッシュミスを起こした第
1の命令であるロード命令のブロック転送中、ロード命
令の制御情報が制御情報保持回路6で保持されているた
め、Nステージの制御情報保持回路5を使用することが
できるので、第2の命令を含む後続の命令は、実行を続
けることができる。
降にある第2の命令をも含めた後続の命令が、第1の命
令であるロード命令と同一のレジスタに書き込みを行う
命令でなく、また、ロード命令が書き込むレジスタを読
み出す命令でもない場合、キャッシュミスを起こした第
1の命令であるロード命令のブロック転送中、ロード命
令の制御情報が制御情報保持回路6で保持されているた
め、Nステージの制御情報保持回路5を使用することが
できるので、第2の命令を含む後続の命令は、実行を続
けることができる。
【0016】しかし、この例では、第2の命令が、第1
の命令であるロード命令と同一のレジスタに書き込みを
行う命令であるとし、先のチェックにより第1の命令で
あるロード命令と同一のレジスタに書き込みを行う命令
であることが判明しているので、パイプライン制御装置
22は、後続の命令の処理を中断させる。
の命令であるロード命令と同一のレジスタに書き込みを
行う命令であるとし、先のチェックにより第1の命令で
あるロード命令と同一のレジスタに書き込みを行う命令
であることが判明しているので、パイプライン制御装置
22は、後続の命令の処理を中断させる。
【0017】すなわち、第1の命令であるロード命令が
レジスタへの書き込みを行うのは、当然、ブロック転送
の完了時であるにも係わらず、第2の命令がブロック転
送の完了よりも先にレジスタに書き込みを行ってしまう
と、プログラムの流れ的には、第2の命令の実行後に第
1の命令であるロード命令が実行されたようになり、第
1の命令であるロード命令、及び、第2の命令が完了し
た時点での書き込みレジスタの内容が第1の命令である
ロード命令によるものとなり、命令の実行順序性が損な
われることになる。従って、第2の命令は、最終的なレ
ジスタのデータを保証するように、書き込み順序を守ら
なければならないため、ブロック転送が完了するまで、
パイプライン制御回路22からのステージロック信号1
23によりAステージの制御情報保持回路4に保持さ
れ、その次の後続命令は、同様に、ステージロック信号
122によりEステージの制御情報保持回路3に保持さ
れ、さらに、その次の後続命令は、ステージロック信号
120によりD、IFステージで保持される。
レジスタへの書き込みを行うのは、当然、ブロック転送
の完了時であるにも係わらず、第2の命令がブロック転
送の完了よりも先にレジスタに書き込みを行ってしまう
と、プログラムの流れ的には、第2の命令の実行後に第
1の命令であるロード命令が実行されたようになり、第
1の命令であるロード命令、及び、第2の命令が完了し
た時点での書き込みレジスタの内容が第1の命令である
ロード命令によるものとなり、命令の実行順序性が損な
われることになる。従って、第2の命令は、最終的なレ
ジスタのデータを保証するように、書き込み順序を守ら
なければならないため、ブロック転送が完了するまで、
パイプライン制御回路22からのステージロック信号1
23によりAステージの制御情報保持回路4に保持さ
れ、その次の後続命令は、同様に、ステージロック信号
122によりEステージの制御情報保持回路3に保持さ
れ、さらに、その次の後続命令は、ステージロック信号
120によりD、IFステージで保持される。
【0018】キャッシュミスを起こした第1の命令であ
るロード命令によるブロック転送中、このロード命令の
制御情報は、Wステージの制御情報保持回路6に保持さ
れており、ブロック転送制御回路23がブロック転送の
完了を検出すると、データパス119を介してメインメ
モリ24から送られてくるブロック転送データが、デー
タキャッシュ18へ書き込まれ、同時にブロック転送さ
れたロードデータがレジスタファイル21に書き込まれ
る。
るロード命令によるブロック転送中、このロード命令の
制御情報は、Wステージの制御情報保持回路6に保持さ
れており、ブロック転送制御回路23がブロック転送の
完了を検出すると、データパス119を介してメインメ
モリ24から送られてくるブロック転送データが、デー
タキャッシュ18へ書き込まれ、同時にブロック転送さ
れたロードデータがレジスタファイル21に書き込まれ
る。
【0019】前述した動作により、第1の命令であるロ
ード命令の実行が完了し、これと同時に第2の命令以降
の命令のパイプライン処理が再開される。
ード命令の実行が完了し、これと同時に第2の命令以降
の命令のパイプライン処理が再開される。
【0020】以上説明したように、従来技術によるパイ
プライン処理装置は、第1の命令であるロード命令がキ
ャッシュミスし、第2の命令がこのロード命令と同一の
レジスタに書き込みを行う命令である場合、第2の命令
以降の命令も全て実行を停止しなければならないもので
あった。そして、前述の従来技術は、このような制御に
より、第1の命令であるロード命令のキャッシュミスに
より発生するブロック転送中に、後続命令を実行する際
に最も制御困難である、両者間の依存関係を保証しなけ
ればならない問題を少ない回路と簡単な制御とにより解
決することができるものである。
プライン処理装置は、第1の命令であるロード命令がキ
ャッシュミスし、第2の命令がこのロード命令と同一の
レジスタに書き込みを行う命令である場合、第2の命令
以降の命令も全て実行を停止しなければならないもので
あった。そして、前述の従来技術は、このような制御に
より、第1の命令であるロード命令のキャッシュミスに
より発生するブロック転送中に、後続命令を実行する際
に最も制御困難である、両者間の依存関係を保証しなけ
ればならない問題を少ない回路と簡単な制御とにより解
決することができるものである。
【0021】前述の説明は、第1の命令がロード命令で
あるとして説明をしたが、第1の命令であるメモリアク
セス命令が、ロード命令でなくストア命令であっても全
く同様である。すなわち、ストア命令は、レジスタファ
イル21からDステージで読み出したデータを、Eステ
ージでアドレス計算した結果を用いて、Aステージでデ
ータキャッシュ18をアクセスし、得られたデータをW
ステージでデータキャッシュ18へ書き込むものである
が、ストア命令が、Aステージでデータキャッシュ18
をアクセスした結果がキャッシュミスし、第2の命令
に、ストア命令と同一アドレスに書き込む命令が存在し
ている場合、従来技術は、第1の命令の他に第2の命令
以降の命令も全てその実行を停止している。
あるとして説明をしたが、第1の命令であるメモリアク
セス命令が、ロード命令でなくストア命令であっても全
く同様である。すなわち、ストア命令は、レジスタファ
イル21からDステージで読み出したデータを、Eステ
ージでアドレス計算した結果を用いて、Aステージでデ
ータキャッシュ18をアクセスし、得られたデータをW
ステージでデータキャッシュ18へ書き込むものである
が、ストア命令が、Aステージでデータキャッシュ18
をアクセスした結果がキャッシュミスし、第2の命令
に、ストア命令と同一アドレスに書き込む命令が存在し
ている場合、従来技術は、第1の命令の他に第2の命令
以降の命令も全てその実行を停止している。
【0022】図4に示す例は、第1の命令のミスキャッ
シュによるブロック転送サイクルを3サイクルとして示
している。従って、第2の命令及び以降の命令は、3サ
イクルのペナルティが課せられることになる。
シュによるブロック転送サイクルを3サイクルとして示
している。従って、第2の命令及び以降の命令は、3サ
イクルのペナルティが課せられることになる。
【0023】
【発明が解決しようとする課題】前述した従来技術によ
るパイプライン処理装置は、第1の命令がメモリアクセ
ス命令であり、この命令でデータキャッシュミスを発生
し、かつ、第2の命令以降に、この第1の命令と書き込
みリソースが同一である命令が存在するような命令列の
処理を行おうとする場合に、第1の命令のキャッシュミ
スにより発生するブロック転送中、その処理を中断させ
なければ、命令の実行順序性が損なわれることになると
いう問題点を有している。すなわち、前述した従来技術
は、前記のような命令列の処理を行う場合に、高速な処
理を行うことができないという問題点を有している。
るパイプライン処理装置は、第1の命令がメモリアクセ
ス命令であり、この命令でデータキャッシュミスを発生
し、かつ、第2の命令以降に、この第1の命令と書き込
みリソースが同一である命令が存在するような命令列の
処理を行おうとする場合に、第1の命令のキャッシュミ
スにより発生するブロック転送中、その処理を中断させ
なければ、命令の実行順序性が損なわれることになると
いう問題点を有している。すなわち、前述した従来技術
は、前記のような命令列の処理を行う場合に、高速な処
理を行うことができないという問題点を有している。
【0024】しかし、近年、データキャッシュを有する
パイプライン処理装置は、さらに高い性能が求められて
おり、前述したようなキャッシュミスによるブロック転
送中に、同一リソースへの書き込みを行う命令について
のペナルティを低減することは重要な要求の1つであ
る。
パイプライン処理装置は、さらに高い性能が求められて
おり、前述したようなキャッシュミスによるブロック転
送中に、同一リソースへの書き込みを行う命令について
のペナルティを低減することは重要な要求の1つであ
る。
【0025】本発明の目的は、前述した従来技術の問題
点を解決し、また、前述の要求を満たすことができるパ
イプライン処理装置、すなわち、データキャッシュをア
クセスする第1の命令のキャッシュミスにより発生する
ブロック転送中に、同一リソースを書き込む命令が存在
した場合のペナルティを低減して、この命令を高速に処
理することのできるパイプライン処理装置を提供するこ
とにある。
点を解決し、また、前述の要求を満たすことができるパ
イプライン処理装置、すなわち、データキャッシュをア
クセスする第1の命令のキャッシュミスにより発生する
ブロック転送中に、同一リソースを書き込む命令が存在
した場合のペナルティを低減して、この命令を高速に処
理することのできるパイプライン処理装置を提供するこ
とにある。
【0026】
【課題を解決するための手段】本発明によれば前記目的
は、複数のパイプラインステージと、データキャッシュ
メモリとを備え、複数の命令による命令列の各命令を複
数のステージに分割して処理するパイプライン処理装置
において、前記命令列が第1の命令、該第1の命令以降
の第2の命令及びそれ以降の命令を含み、前記第1の命
令がメモリアクセス命令であり、前記第1の命令の書き
込みリソースと前記第2命令及びそれ以降の命令の書き
込みリソースとが同一である場合、前記第1の命令によ
り前記データキャッシュメモリがアクセスされて、デー
タキャッシュミスが発生したとき、該データキャッシュ
ミスによって発生するブロック転送中、前記第1の命令
以降の第2の命令及びそれ以降の命令の処理を停止せず
に第1の命令に先行して実行し、前記ブロック転送終了
後の前記第1の命令による結果の前記リソースへの書き
込みを抑止することにより達成される。
は、複数のパイプラインステージと、データキャッシュ
メモリとを備え、複数の命令による命令列の各命令を複
数のステージに分割して処理するパイプライン処理装置
において、前記命令列が第1の命令、該第1の命令以降
の第2の命令及びそれ以降の命令を含み、前記第1の命
令がメモリアクセス命令であり、前記第1の命令の書き
込みリソースと前記第2命令及びそれ以降の命令の書き
込みリソースとが同一である場合、前記第1の命令によ
り前記データキャッシュメモリがアクセスされて、デー
タキャッシュミスが発生したとき、該データキャッシュ
ミスによって発生するブロック転送中、前記第1の命令
以降の第2の命令及びそれ以降の命令の処理を停止せず
に第1の命令に先行して実行し、前記ブロック転送終了
後の前記第1の命令による結果の前記リソースへの書き
込みを抑止することにより達成される。
【0027】また、前記目的は、前記複数のパイプライ
ンステージのうち処理結果をリソースに書き込むステー
ジに同一リソース書き込み制御回路を設け、該同一リソ
ース書き込み制御回路が、他のステージ設けられている
命令の依存関係検出回路からの情報と、キャッシュアク
セスに対するヒット判定情報とに基づいて、前記第1の
命令による結果の前記リソースへの書き込みの抑止を制
御することにより達成される。
ンステージのうち処理結果をリソースに書き込むステー
ジに同一リソース書き込み制御回路を設け、該同一リソ
ース書き込み制御回路が、他のステージ設けられている
命令の依存関係検出回路からの情報と、キャッシュアク
セスに対するヒット判定情報とに基づいて、前記第1の
命令による結果の前記リソースへの書き込みの抑止を制
御することにより達成される。
【0028】本発明は、前記の構成を備えることによ
り、第1の命令であるメモリアクセス命令がデータキャ
ッシュミスを発生し、その後続命令が同一リソースに書
き込みを行う命令であっても、パイプラインステージを
停止させることなく処理を継続することができ、命令を
高速に処理することができる。
り、第1の命令であるメモリアクセス命令がデータキャ
ッシュミスを発生し、その後続命令が同一リソースに書
き込みを行う命令であっても、パイプラインステージを
停止させることなく処理を継続することができ、命令を
高速に処理することができる。
【0029】
【発明の実施の形態】以下、本発明によるパイプライン
処理装置の一実施形態を図面により詳細に説明する。
処理装置の一実施形態を図面により詳細に説明する。
【0030】図1は本発明の一実施形態によるパイプラ
イン処理装置の構成を示すブロック図、図2はその動作
を説明するタイムチャートである。図1において、25
は同一リソース書き込み制御回路であり、他の符号は図
3の場合と同一である。
イン処理装置の構成を示すブロック図、図2はその動作
を説明するタイムチャートである。図1において、25
は同一リソース書き込み制御回路であり、他の符号は図
3の場合と同一である。
【0031】図1に示す本発明の一実施形態によるパイ
プライン処理装置は、各ステージの依存関係検出回路1
3〜16からの情報とNステージのヒット判定回路20
からの情報とを受け取って、同一リソースに対する書き
込みを制御する同一リソース書き込み制御回路25がW
ステージに備えられている点でのみ、図3に示した従来
技術の構成と相違し、その他の点で同一に構成されてい
る。
プライン処理装置は、各ステージの依存関係検出回路1
3〜16からの情報とNステージのヒット判定回路20
からの情報とを受け取って、同一リソースに対する書き
込みを制御する同一リソース書き込み制御回路25がW
ステージに備えられている点でのみ、図3に示した従来
技術の構成と相違し、その他の点で同一に構成されてい
る。
【0032】そして、図1に示す本発明の一実施形態に
よる処理装置においても、従来技術の場合と同様に、処
理すべき命令は、IFステージで命令キャッシュメモリ
12から読み出され、命令で必要なデータは、Aステー
ジでデータキャッシュメモリ18から読み出されて処理
が行われる。また、レジスタファイル21からの読み出
しは、Dステージで行われ、レジスタファイル21への
書き込み、または、データキャッシュ18への書き込み
はWステージで行われる。
よる処理装置においても、従来技術の場合と同様に、処
理すべき命令は、IFステージで命令キャッシュメモリ
12から読み出され、命令で必要なデータは、Aステー
ジでデータキャッシュメモリ18から読み出されて処理
が行われる。また、レジスタファイル21からの読み出
しは、Dステージで行われ、レジスタファイル21への
書き込み、または、データキャッシュ18への書き込み
はWステージで行われる。
【0033】次に、前述したように構成される本発明の
一実施形態による処理装置に複数の命令よりなる命令列
を処理させるものとしてその動作を説明する。以下で
は、従来技術での説明の場合と同様に、第1の命令がメ
モリアクセス命令であり、この命令でデータキャッシュ
ミスを発生し、かつ、第2の命令以降に、この第1の命
令と書き込みリソースが同一である命令が存在するよう
な命令列の処理について図2を参照して説明する。図2
に示すタイムチャートの例は、第1の命令であるメモリ
アクセス命令がロード命令であり、第2の命令が該ロー
ド命令と同一のレジスタに書き込みを行う命令である場
合で、かつ、第1の命令であるロード命令がキャッシュ
ミスを生じた場合の例である。
一実施形態による処理装置に複数の命令よりなる命令列
を処理させるものとしてその動作を説明する。以下で
は、従来技術での説明の場合と同様に、第1の命令がメ
モリアクセス命令であり、この命令でデータキャッシュ
ミスを発生し、かつ、第2の命令以降に、この第1の命
令と書き込みリソースが同一である命令が存在するよう
な命令列の処理について図2を参照して説明する。図2
に示すタイムチャートの例は、第1の命令であるメモリ
アクセス命令がロード命令であり、第2の命令が該ロー
ド命令と同一のレジスタに書き込みを行う命令である場
合で、かつ、第1の命令であるロード命令がキャッシュ
ミスを生じた場合の例である。
【0034】まず、第1の命令であるロード命令がIF
ステージにおいて命令キャッシュ12から読み出され
る。
ステージにおいて命令キャッシュ12から読み出され
る。
【0035】この第1の命令であるロード命令は、Dス
テージで、レジスタファイル21からアドレス計算用の
レジスタ内のデータを読み出す処理を行い、読み出され
たデータ109、110が出力される。このとき、第2
の命令は、IFステージに命令キャッシュ12から読み
出されて存在している。
テージで、レジスタファイル21からアドレス計算用の
レジスタ内のデータを読み出す処理を行い、読み出され
たデータ109、110が出力される。このとき、第2
の命令は、IFステージに命令キャッシュ12から読み
出されて存在している。
【0036】次に、第1の命令であるロード命令は、E
ステージで、データ保持回路7からのデータ111、1
12を用いて演算装置17で演算を実行させ、データキ
ャッシュ18の読み出しアドレス113を作成して出力
する。このとき、第2の命令は、Dステージに存在して
いる。
ステージで、データ保持回路7からのデータ111、1
12を用いて演算装置17で演算を実行させ、データキ
ャッシュ18の読み出しアドレス113を作成して出力
する。このとき、第2の命令は、Dステージに存在して
いる。
【0037】また、このとき、Eステージの依存関係検
出回路13は、Eステージの制御情報保持回路3に保持
されている第1の命令であるロード命令の制御情報のデ
ータと、Dステージの制御情報保持回路2に保持されて
いる第2の命令の制御情報のデータとを用いて、両者の
依存関係のチェックを行う。
出回路13は、Eステージの制御情報保持回路3に保持
されている第1の命令であるロード命令の制御情報のデ
ータと、Dステージの制御情報保持回路2に保持されて
いる第2の命令の制御情報のデータとを用いて、両者の
依存関係のチェックを行う。
【0038】次に、第1の命令であるロード命令は、A
ステージで、データ保持回路8からのデータキャッシュ
読み出しアドレス114を用いてデータキャッシュ18
及びデータアドレスタグ19を読み出す。そして、読み
出されたデータアドレスタグ19からのタグ情報は、第
1の命令であるロード命令のキャッシュのヒット判定を
行うヒット判定回路20まで送られる。
ステージで、データ保持回路8からのデータキャッシュ
読み出しアドレス114を用いてデータキャッシュ18
及びデータアドレスタグ19を読み出す。そして、読み
出されたデータアドレスタグ19からのタグ情報は、第
1の命令であるロード命令のキャッシュのヒット判定を
行うヒット判定回路20まで送られる。
【0039】第1の命令であるロード命令がNステージ
のヒット判定回路20によってキャッシュミスと判明さ
れた場合、このロード命令によりAステージでデータキ
ャッシュ18から読み出されたデータは無効なデータで
あるので、このロード命令は、有効なデータを読み出す
ために、メインメモリ24からのブロック転送をブロッ
ク転送制御回路23の制御の下に実行させる。
のヒット判定回路20によってキャッシュミスと判明さ
れた場合、このロード命令によりAステージでデータキ
ャッシュ18から読み出されたデータは無効なデータで
あるので、このロード命令は、有効なデータを読み出す
ために、メインメモリ24からのブロック転送をブロッ
ク転送制御回路23の制御の下に実行させる。
【0040】パイプライン制御回路22は、前述のキャ
ッシュミスを制御信号線125を介してヒット判定回路
20から受け取ると、出力線127に制御信号を送り、
この制御信号の下に、ヒット判定の次ステージであるW
ステージに設けられた制御情報保持回路6を退避レジス
タとして動作するようして、この保持回路6にこのロー
ド命令の制御情報を保持させる。
ッシュミスを制御信号線125を介してヒット判定回路
20から受け取ると、出力線127に制御信号を送り、
この制御信号の下に、ヒット判定の次ステージであるW
ステージに設けられた制御情報保持回路6を退避レジス
タとして動作するようして、この保持回路6にこのロー
ド命令の制御情報を保持させる。
【0041】説明している例は、第1の命令であるロー
ド命令にキャッシュミスが発生し、第2の命令が、第1
の命令であるロード命令と同一のレジスタに書き込みを
行う命令であるとしている。この場合、本発明の一実施
形態による処理装置は、Eステージに第1の命令である
ロード命令が存在し、Dステージに第2の命令が存在す
る時点で、Eステージの第1の命令であるロード命令の
制御情報を持つ制御情報保持回路3のデータと、Dステ
ージの第2の命令の制御情報を持つ制御情報保持回路2
のデータとを用いて、依存関係検出回路13が両者の書
き込みレジスタをチェックし、その結果を、同一リソー
ス書き込み検出結果報告線128を介して、同一リソー
ス書き込み制御回路25へ報告する。そして、Nステー
ジのヒット判定回路20は、第1の命令であるロード命
令がキャッシュミスを発生したことを制御線125を介
して、同一リソース書き込み制御回路25へ報告する。
ド命令にキャッシュミスが発生し、第2の命令が、第1
の命令であるロード命令と同一のレジスタに書き込みを
行う命令であるとしている。この場合、本発明の一実施
形態による処理装置は、Eステージに第1の命令である
ロード命令が存在し、Dステージに第2の命令が存在す
る時点で、Eステージの第1の命令であるロード命令の
制御情報を持つ制御情報保持回路3のデータと、Dステ
ージの第2の命令の制御情報を持つ制御情報保持回路2
のデータとを用いて、依存関係検出回路13が両者の書
き込みレジスタをチェックし、その結果を、同一リソー
ス書き込み検出結果報告線128を介して、同一リソー
ス書き込み制御回路25へ報告する。そして、Nステー
ジのヒット判定回路20は、第1の命令であるロード命
令がキャッシュミスを発生したことを制御線125を介
して、同一リソース書き込み制御回路25へ報告する。
【0042】同一リソース書き込み制御回路25は、こ
れらの情報により、ブロック転送されてくるデータをレ
ジスタファイル21に書き込んだ場合に、命令の実行順
序性が損なわれないかどうかを判定することが可能であ
る。そして、同一リソース書き込み制御回路25は、ブ
ロック転送されてくるデータをレジスタファイル21に
書き込んだ場合に命令の実行順序性が損なわれると判断
すると、キャッシュミスを発生した第1の命令であるロ
ード命令により、データパス119を通してメインメモ
リ25から送られてくるブロック転送データをデータキ
ャッシュ18へ書き込むが、このブロック転送によって
やってくるロードデータをレジスタファイル21に対し
て書き込むことを抑止する。
れらの情報により、ブロック転送されてくるデータをレ
ジスタファイル21に書き込んだ場合に、命令の実行順
序性が損なわれないかどうかを判定することが可能であ
る。そして、同一リソース書き込み制御回路25は、ブ
ロック転送されてくるデータをレジスタファイル21に
書き込んだ場合に命令の実行順序性が損なわれると判断
すると、キャッシュミスを発生した第1の命令であるロ
ード命令により、データパス119を通してメインメモ
リ25から送られてくるブロック転送データをデータキ
ャッシュ18へ書き込むが、このブロック転送によって
やってくるロードデータをレジスタファイル21に対し
て書き込むことを抑止する。
【0043】本発明の一実施形態によるパイプライン処
理装置は、前述により、第2の命令が第1の命令と同一
のレジスタに書き込みを行ってしまっても、第1の命令
であるロード命令が、後から同一のレジスタに書き込む
ことを抑止することができるため、最終的に同一レジス
タに書き込むデータの順序性を狂わせることがない。
理装置は、前述により、第2の命令が第1の命令と同一
のレジスタに書き込みを行ってしまっても、第1の命令
であるロード命令が、後から同一のレジスタに書き込む
ことを抑止することができるため、最終的に同一レジス
タに書き込むデータの順序性を狂わせることがない。
【0044】従って、本発明の一実施形態によれば、命
令によるレジスタファイル21への書き込みの順序が守
られ、最終的なレジスタのデータは保証されることにな
り、第1の命令であるロード命令によりキャッシュミス
が発生し、第2の命令が第1の命令であるロード命令と
同一のレジスタに書き込みを行う命令の場合にも、パイ
プラインの処理を中断することなく、命令の処理を実行
し続けることが可能となる。
令によるレジスタファイル21への書き込みの順序が守
られ、最終的なレジスタのデータは保証されることにな
り、第1の命令であるロード命令によりキャッシュミス
が発生し、第2の命令が第1の命令であるロード命令と
同一のレジスタに書き込みを行う命令の場合にも、パイ
プラインの処理を中断することなく、命令の処理を実行
し続けることが可能となる。
【0045】すなわち、図2に示すように、第1の命令
にキャッシュミスが発生した時点で、Aステージに存在
している第2の命令及びそれ以降の命令は、キャッシュ
ミスを起こした第1の命令であるロード命令のブロック
転送中、このロード命令の制御情報が制御情報保持回路
6に保持されているため、Nステージの制御情報保持回
路5を使用しながら順次実行を完了していく。
にキャッシュミスが発生した時点で、Aステージに存在
している第2の命令及びそれ以降の命令は、キャッシュ
ミスを起こした第1の命令であるロード命令のブロック
転送中、このロード命令の制御情報が制御情報保持回路
6に保持されているため、Nステージの制御情報保持回
路5を使用しながら順次実行を完了していく。
【0046】ブロック転送制御回路23がブロック転送
の完了を検出すると、データパス119を介してメイン
メモリ24から送られてくるブロック転送データは、デ
ータキャッシュ18へ書き込まれるが、同一リソース書
き込み制御回路25は、このブロック転送されたロード
データがレジスタファイル21に書き込まれないように
制御する。以上で第1の命令であるロード命令の実行も
完了する。
の完了を検出すると、データパス119を介してメイン
メモリ24から送られてくるブロック転送データは、デ
ータキャッシュ18へ書き込まれるが、同一リソース書
き込み制御回路25は、このブロック転送されたロード
データがレジスタファイル21に書き込まれないように
制御する。以上で第1の命令であるロード命令の実行も
完了する。
【0047】前述した本発明の一実施形態は、第1の命
令がロード命令であるとして説明したが、本発明は、第
1の命令がロード命令に限らずストア命令も含めた一般
のメモリアクセス命令の場合にも同様に処理を進めるこ
とができる。
令がロード命令であるとして説明したが、本発明は、第
1の命令がロード命令に限らずストア命令も含めた一般
のメモリアクセス命令の場合にも同様に処理を進めるこ
とができる。
【0048】本発明の実施形態は、前述したように、第
1の命令であるメモリアクセス命令がデータキャッシュ
ミスを発生し、その後続命令が同一リソースに書き込む
命令である場合、第1の命令による結果のリソースへの
書き込みを行っていないので、プログラム上で第1の命
令が不用なものとして取り扱われることになるが、プロ
グラムの構成上、前述のような命令の配列が生じる場合
があり、このような場合にも処理を中断させることは、
処理の高速化に障害となる。本発明は、このような場合
に、パイプラインの処理を中断させることがなくなり、
処理の効率を向上させることができる。また、本発明の
一実施形態による処理方法は、アウトオブオーダーの処
理を行う場合にも有効なものである。
1の命令であるメモリアクセス命令がデータキャッシュ
ミスを発生し、その後続命令が同一リソースに書き込む
命令である場合、第1の命令による結果のリソースへの
書き込みを行っていないので、プログラム上で第1の命
令が不用なものとして取り扱われることになるが、プロ
グラムの構成上、前述のような命令の配列が生じる場合
があり、このような場合にも処理を中断させることは、
処理の高速化に障害となる。本発明は、このような場合
に、パイプラインの処理を中断させることがなくなり、
処理の効率を向上させることができる。また、本発明の
一実施形態による処理方法は、アウトオブオーダーの処
理を行う場合にも有効なものである。
【0049】
【発明の効果】以上説明したように本発明によれば、第
1の命令であるメモリアクセス命令がデータキャッシュ
ミスを発生し、その後続命令が同一リソースに書き込む
命令である場合にも、メモリアクセス命令の後続命令の
実行処理を、パイプライン処理を中断することなく継続
することができる。
1の命令であるメモリアクセス命令がデータキャッシュ
ミスを発生し、その後続命令が同一リソースに書き込む
命令である場合にも、メモリアクセス命令の後続命令の
実行処理を、パイプライン処理を中断することなく継続
することができる。
【図1】本発明の一実施形態によるパイプライン処理装
置の構成を示すブロック図である。
置の構成を示すブロック図である。
【図2】本発明の一実施形態による処理装置の動作を説
明するタイムチャートである。
明するタイムチャートである。
【図3】従来技術によるパイプライン処理装置の構成を
示すブロック図である。
示すブロック図である。
【図4】従来技術による処理装置の動作を説明するタイ
ムチャートである。
ムチャートである。
1 アドレス保持回路 2〜6 制御情報保持回路 7〜10 データ保持回路 11 プログラムカウンタ 12 命令キャッシュメモリ 13〜16 依存関係検出回路 17 演算装置 18 データキャッシュメモリ 19 データアドレスタグ 20 ヒット判定回路 21 レジスタファイル 22 パイプライン制御装置 23 ブロック転送制御回路 24 メインメモリ 25 同一リソース書き込み制御回路
Claims (2)
- 【請求項1】 複数のパイプラインステージと、データ
キャッシュメモリとを備え、複数の命令による命令列の
各命令を複数のステージに分割して処理するパイプライ
ン処理装置において、前記命令列が第1の命令、該第1
の命令以降の第2の命令及びそれ以降の命令を含み、前
記第1の命令がメモリアクセス命令であり、前記第1の
命令の書き込みリソースと前記第2命令及びそれ以降の
命令の書き込みリソースとが同一である場合、前記第1
の命令により前記データキャッシュメモリがアクセスさ
れて、データキャッシュミスが発生したとき、該データ
キャッシュミスによって発生するブロック転送中、前記
第1の命令以降の第2の命令及びそれ以降の命令の処理
を停止せずに第1の命令に先行して実行し、前記ブロッ
ク転送終了後の前記第1の命令による結果の前記リソー
スへの書き込みを抑止することを特徴とするパイプライ
ン処理装置。 - 【請求項2】 前記複数のパイプラインステージのうち
処理結果をリソースに書き込むステージに同一リソース
書き込み制御回路を備え、該同一リソース書き込み制御
回路は、他のステージ設けられている命令の依存関係検
出回路からの情報と、キャッシュアクセスに対するヒッ
ト判定情報とに基づいて、前記第1の命令による結果の
前記リソースへの書き込みの抑止を制御することを特徴
とする請求項1記載のパイプライン処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7335099A JPH09179736A (ja) | 1995-12-22 | 1995-12-22 | パイプライン処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7335099A JPH09179736A (ja) | 1995-12-22 | 1995-12-22 | パイプライン処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09179736A true JPH09179736A (ja) | 1997-07-11 |
Family
ID=18284765
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7335099A Pending JPH09179736A (ja) | 1995-12-22 | 1995-12-22 | パイプライン処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09179736A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100300875B1 (ko) * | 1998-12-30 | 2001-09-06 | 박종섭 | 캐쉬 미스 시 처리 방법 |
-
1995
- 1995-12-22 JP JP7335099A patent/JPH09179736A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100300875B1 (ko) * | 1998-12-30 | 2001-09-06 | 박종섭 | 캐쉬 미스 시 처리 방법 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5293500A (en) | Parallel processing method and apparatus | |
| KR100496944B1 (ko) | 동적 피드백을 이용한 명령 변환의 제어 | |
| JPH1196006A (ja) | 情報処理装置 | |
| JPH09179736A (ja) | パイプライン処理装置 | |
| JPH08272608A (ja) | パイプライン処理装置 | |
| JP2783285B2 (ja) | 情報処理装置 | |
| JPH0646380B2 (ja) | 情報処理装置 | |
| JPH09146769A (ja) | パイプライン処理装置 | |
| JPH06230963A (ja) | メモリアクセス制御装置 | |
| JPS6247746A (ja) | 割り込み制御方式 | |
| JPH048825B2 (ja) | ||
| JPH03137736A (ja) | マイクロプロセッサ動作トレース方式 | |
| JPH0391055A (ja) | ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置 | |
| JPH03119424A (ja) | 情報処理方式及び装置 | |
| JPH02301830A (ja) | 情報処理方式 | |
| JPH0447350A (ja) | 主記憶読み出し応答制御方式 | |
| JPH0683621A (ja) | フェッチ方式 | |
| JPS59178546A (ja) | エラ−検出方式 | |
| JPH041373B2 (ja) | ||
| JPH0342721A (ja) | 情報処理装置 | |
| JPH0512114A (ja) | キヤツシユメモリ | |
| JPH07319693A (ja) | パイプライン処理方式 | |
| JPS6211940A (ja) | レジスタ干渉検出方式 | |
| JPH03119425A (ja) | 情報処理方式及び装置 | |
| JPH02206836A (ja) | データ処理装置 |