JPH08272608A - パイプライン処理装置 - Google Patents

パイプライン処理装置

Info

Publication number
JPH08272608A
JPH08272608A JP7100026A JP10002695A JPH08272608A JP H08272608 A JPH08272608 A JP H08272608A JP 7100026 A JP7100026 A JP 7100026A JP 10002695 A JP10002695 A JP 10002695A JP H08272608 A JPH08272608 A JP H08272608A
Authority
JP
Japan
Prior art keywords
instruction
data
stage
data cache
register file
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
JP7100026A
Other languages
English (en)
Inventor
Kakuji Saitou
拡二 斎藤
Genichi Takeda
元一 武田
Kenji Matsubara
健二 松原
Yuji Suzuki
裕司 鈴木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7100026A priority Critical patent/JPH08272608A/ja
Publication of JPH08272608A publication Critical patent/JPH08272608A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 第1の命令がキャッシュミスを発生しても、
それによるブロック転送によるペナルティを低減するパ
イプライン処理装置を提供することにある。 【構成】 レジスタファイルへの書き込みステージ(W
ステージ)は、前段の命令キャンセルステージ(Nステ
ージ)に保持されている制御情報及びデータをパイプラ
イン制御回路22の制御の下に退避保持する制御情報保
持回路6を備え、パイプライン制御回路22は、第1の
命令がロード命令またはストア命令のメモリアクセス命
令であり、かつ該命令によりデータキャッシュメモリ1
8がメモリアクセスステージ(Aステージ)でアクセス
され、Nステージでデータキャッシュミスが発生したと
き、Nステージに保持されている制御情報及びデータを
制御情報保持回路6に退避保持させ、前記第1の命令の
データキャッシュミスによって発生するブロック転送中
も後続命令の実行を停止させずに実行処理する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データキャッシュを持
ち、各命令を複数のステージに分割してパイプライン処
理するパイプライン処理装置に係り、特に、データキャ
ッシュをアクセスする命令でミスが発生した場合でも後
続命令を高速で処理するパイプライン処理装置に関する
ものである。
【0002】
【従来の技術】従来のパイプライン処理装置の1例では
あるが各命令は、命令読み出しステージ(IFステー
ジ)、命令デコードステージ(Dステージ)、命令演算
ステージ(Eステージ)、メモリアクセスステージ(A
ステージ)、命令キャンセルステージ(Nステージ)、
書き込みステージ(Wステージ)の6つのステージに分
割されて処理されるものとする。これは1例であり、使
用するデバイス、回路、キャッシュ回路等の技術によっ
てパイプラインステージの分割は異なりうる。図8に従
来のパイプライン処理装置の構成図を示す。Dステージ
には命令の制御情報を保持する制御情報保持回路2を備
え、Eステージ以降にはそれぞれのステージの制御情報
および演算結果のデータを保持する保持回路3、4、
5、7、8、9を備え、IFステージにはプログラムの
カウントを行うプログラムカウンタ11を備え、Dステ
ージには先行命令とのデータ依存関係を検出する検出回
路13、14、15を備え、Eステージには命令の演算
を行う演算装置17を備え、Nステージにはデータキャ
ッシュメモリ18とデータアドレスタグ19とデータキ
ャッシュのヒット判定を行う判定回路20を備えてい
る。命令はIFステージで命令キャッシュメモリ12か
ら読み出しが行われ、データはAステージでデータキャ
ッシュメモリ18から読み出しが行われる。またレジス
タファイル21からの読み出しはDステージで行われ、
レジスタファイル21への書き込み、またはデータキャ
ッシュ18への書き込みはWステージで行われる。
【0003】以下、第1の命令がメモリアクセス命令で
キャッシュミスを発生しかつ、第2以降の命令はその命
令の種類が任意である場合の従来技術における動作につ
いて説明する。以降は第1のメモリアクセス命令の例と
してロード命令について説明する。図9には従来技術に
従うパイプライン処理装置において、第1ロード命令が
キャッシュミスした場合のタイムチャートを示してい
る。まず第1の命令であるロード命令がIFステージで
命令キャッシュ12から読み出される。次に第1の命令
であるロード命令はDステージでレジスタファイル21
からロード命令のアドレス計算用のレジスタをそれぞれ
データ線109、110に読み出す。第1の命令である
ロード命令はEステージでデータ111、112を用い
て演算装置17で演算を実行し、データキャッシュの読
み出しアドレス114を出力する。このとき第2の命令
はDステージに存在している。第1の命令であるロード
命令はAステージでデータキャッシュ18およびデータ
アドレスタグ19を読み出す。読み出されたデータアド
レスタグ19は、第1の命令であるロード命令のキャッ
シュのヒット判定を行うヒット判定回路20まで送られ
る。第1の命令であるロード命令がNステージでキャッ
シュミスと判断した場合には、Nステージにはキャッシ
ュメモリ18から無効なデータが読み出されているの
で、該ロード命令は有効なデータをNステージに読み出
すためにブロック転送を行う。キャッシュミスを制御線
125で受け取ったパイプライン制御回路22は、ステ
ージロック信号120、122を送出し、第1の命令で
あるロード命令はブロック転送中はステージロック信号
122によりNステージで保持される。第2の命令は、
ブロック転送が完了するまでステージロック信号122
によりAステージで保持され、その次の後続命令は同様
にステージロック信号122によりEステージで保持さ
れ、さらにその次の後続命令はステージロック信号12
0によりD、IFステージで保持される。キャッシュミ
スが判明してから複数サイクルの後ブロック転送が終了
すると、各ステージロック信号120、122は解除さ
れ、第1の命令であるロード命令が存在するNステージ
には有効なデータが読み出されている。第1の命令であ
るロード命令はWステージでレジスタに有効データ21
を書き込む。これと同時に第2の命令以降はパイプライ
ン処理を再開する。
【0004】従来技術に従うパイプライン処理装置にお
いて第1の命令であるロード命令がキャッシュミスした
場合、第1の命令の他に第2以降の命令も全て実行停止
していた。このようにパイプライン制御を行うことによ
り、パイプライン制御を簡単化し、また依存関係の保証
も簡単に行っていた。以上は第1の命令がロード命令に
ついて説明をしたが、第1の命令がストア命令であって
も全く同様である。ストア命令は、レジスタファイルか
らDステージで読み出したデータを、Eステージでアド
レス計算した結果を用い、Aステージでデータキャッシ
ュをアクセスし、データをWステージでデータキャッシ
ュへ書き込むが、ストア命令がAステージでデータキャ
ッシュアクセスをした結果がキャッシュミスした場合、
第1の命令の他に第2以降の命令も全て実行停止してい
た。
【0005】図9の例は第1の命令のブロック転送サイ
クルを3サイクルとしているので、第2およびそれ以降
の命令は3サイクルのペナルティがある。
【0006】しかし近年では、データキャッシュを有す
るパイプライン処理装置はさらに高い性能が求められて
いる。特にデータキャッシュミスによるブロック転送に
よるペナルティが処理装置の性能のネックとなってお
り、このペナルティを低減することが重要である。
【0007】
【発明が解決しようとする課題】本発明は上述のような
事情に鑑みてなされたものであり、本発明の目的は、第
1の命令がキャッシュミスを発生しても、それによるブ
ロック転送によるペナルティを低減するパイプライン処
理装置を提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、第1の命令と第1の命令の次に実行する
第2の命令及びそれ以降の命令とをそれぞれ複数のステ
ージに分割してパイプライン制御回路の制御の下にパイ
プライン処理するパイプライン処理実行手段と、データ
キャッシュメモリを備えるパイプライン処理装置におい
て、前記パイプライン制御回路は、前記第1の命令がロ
ード命令またはストア命令のメモリアクセス命令であ
り、かつ該メモリアクセス命令により前記データキャッ
シュメモリがアクセスされ、データキャッシュミスが発
生したとき、該メモリアクセス命令に関する制御情報及
びデータを退避保持する制御情報保持回路を備え、前記
制御情報保持回路に退避保持させる制御手段を備え、前
記第1の命令のデータキャッシュミスによって発生する
ブロック転送中も第2の命令およびそれ以降の命令実行
を停止させずに実行処理し続けることができるようにし
ている。また、前記第1のロード命令のデータキャッシ
ュミスによって発生するブロック転送のデータの前記レ
ジスタファイルの書き込みと、後続するレジスタファイ
ル書き込み命令によるデータの前記レジスタファイルの
書き込みとの競合、または前記第1のストア命令のデー
タキャッシュミスによって発生するブロック転送のデー
タの前記データキャッシュメモリへの書き込みと、後続
するデータキャッシュ書き込み命令によるデータの前記
データキャッシュメモリへの書き込みとの競合を検出す
る競合検出回路を前記パイプライン処理実行手段に備
え、前記パイプライン制御回路は、該競合検出回路から
の競合検出信号を受け後続命令の各ステージでの実行を
一時停止するステージロック信号を生成送出する手段を
備えるようにしている。また、前記レジスタファイル
は、前記データキャッシュメモリからの読み出しデータ
を書き込むための書き込みポートと前記データキャッシ
ュメモリからの読み出しデータ以外のデータを書き込む
ための書き込みポートを備えるようにしている。
【0009】
【作用】上記手段により、第1の命令であるメモリアク
セス命令がデータキャッシュミスを発生してもその後続
命令の実行を継続することができる。また、第1の命令
のブロック転送完了によるレジスタファイルまたはデー
タキャッシュ書き込みと、後続命令によるレジスタファ
イルまたはデータキャッシュ書き込みを同時に行う競合
を避けることができる。また、第1の命令のブロック転
送完了によるレジスタファイルへの書き込みと後続する
命令によるレジスタファイルへの書き込みとを同時に実
行することができる。
【0010】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。図1に第1の実施例のパイプライン処理装置の構
成を示す。本例は第1の命令がロード命令であり、かつ
データキャッシュミスを発生する場合についての例であ
る。第1の実施例におけるパイプライン処理装置は、各
ステージにはそれぞれのステージの制御情報、データを
保持する保持回路2、3、4、5、6、7、8、9を備
え、IFステージにはプログラムのカウントを行うプロ
グラムカウンタ11を備え、Dステージには先行命令と
のデータ依存関係の検出回路13、14、15を備え、
Eステージには命令の演算を行う演算装置17を備え、
Nステージにはデータキャッシュのヒット判定を行う判
定回路20を備えている。命令はIFステージで命令キ
ャッシュメモリ12から読み出しが行われ、データはA
ステージでデータキャッシュメモリ18から読み出しが
行われる。またレジスタファイル21からの読み出しは
Dステージで行われ、レジスタファイル21への書き込
みはWステージで行われる。図2には第1の実施例のパ
イプライン処理装置において、第1の命令であるロード
命令がキャッシュミスした場合のタイムチャートを示
す。
【0011】以下、第1の実施例のパイプライン処理装
置の具体的な動作について説明する。第1の命令として
ロード命令がIFステージで命令キャッシュ12から読
み出される。次に第1の命令であるロード命令はDステ
ージでレジスタファイル21からアドレス計算用のレジ
スタ内のデータをそれぞれデータ線109、110に出
力する。本例ではアドレス計算用のデータはレジスタフ
ァイル21から読み出されているが、第1の命令のロー
ド命令に先行する演算命令がロード命令で使用するレジ
スタを書き換えた場合は、ロード命令のレジスタ読み出
しは、必ずしも先行演算命令の完了を待ってレジスタフ
ァイルから読み出す必要はなく、該先行命令の演算結果
をバイパスして使用してもよいが、その読み出しをバイ
パスするかどうかは本発明には影響しない。このとき第
2の命令がIFステージで命令キャッシュ12から読み
出される。次に、第1の命令であるロード命令はEステ
ージでデータ111、112を用いて演算装置17で演
算を実行し、データキャッシュの読み出しアドレス11
4を出力する。このとき第2の命令はDステージに存在
する。
【0012】第1の命令であるロード命令は引き続き処
理され、Aステージでデータキャッシュ読み出しアドレ
ス114を用いデータキャッシュ18およびデータアド
レスタグ19を読み出す。データアドレスタグ19を読
み出し、第1の命令であるロード命令のキャッシュのヒ
ット判定を行うヒット判定回路20まで送る。第1の命
令であるロード命令がNステージでヒット判定回路20
によってキャッシュミスと判明した場合には、第1の命
令のAステージで読み出されたデータは無効なデータで
あるので、該ロード命令は有効なデータを読み出すため
にメインメモリからのブロック転送をブロック転送制御
回路の制御の下に実行させる。その際、従来技術による
パイプライン処理装置では該ロード命令はNステージを
占有したままであり、その制御情報はNステージの制御
情報保持回路5で保持されていた。一方本発明では、ミ
スヒットが生じた場合、該ロード命令の制御情報を、パ
イプライン制御回路22からの制御信号127の下に、
退避レジスタとして動作するWステージに設けた制御情
報保持回路6にセット保持する。これにより、Nステー
ジの実行制御情報保持回路5は第2の命令により使用す
ることができる。従って、該ロード命令により行なわれ
るメインメモリからのブロック転送中もパイプラインを
ロックせずに第2の命令および後続命令を実行し続ける
ことができる。
【0013】キャッシュミスを起こしたロード命令のブ
ロック転送中は、該ロード命令の制御情報はミスヒット
中の制御情報保持回路6で保持されており、ブロック転
送制御回路24でブロック転送の完了が検出されると、
データパス119によってメインメモリ25から送られ
てくるブロック転送データを、データキャッシュ18へ
書き込み、それからパス115を通ってパイプライン制
御回路22からの選択信号128の制御の下に選択回路
26で選択されデータ保持回路9に送られ、パイプライ
ン制御回路22からの信号129によりデータ保持回路
9にセット保持された後、レジスタファイル書き込みパ
ス117へ送られ、ブロック転送されたロードデータを
制御情報保持回路6の制御の下にレジスタファイル21
へ書き込む。レジスタファイル書き込み情報は、制御情
報保持回路6に保持された内容であり、制御線108を
用いてレジスタファイル21へ送られる。以上で第1の
命令であるロード命令の実行を完了する。
【0014】本実施例はレジスタファイル21への書き
込みポートが1つしかない処理装置を示している。ここ
で、メインメモリ25からのブロック転送方式は、本発
明には無関係であり、メインメモリとデータキャッシュ
との間にセカンドキャッシュがあっても同様である。ま
たメインメモリからレジスタファイルへの書き込みパス
は先にデータキャッシュへ書き込む必要はなく、メイン
メモリからレジスタファイルへ書き込むバイパスルート
が存在しても同様である。
【0015】また、第1の実施例において後続する命令
の種類は任意であり、レジスタファイルへの書き込みを
行う演算命令であっても該ロード命令とアドレスの依存
関係のないメモリアクセス命令であってもよい。ただ
し、後続命令がメモリアクセス命令であり、かつこれも
またキャッシュミスを起こす場合は本例では実行を継続
することはできない。この場合は後続メモリアクセス命
令がNステージでキャッシュミスと判明した場合には、
パイプライン制御回路22からステージロック信号12
2が発せられ、該メモリアクセス命令はNステージで保
持されるとともに、その後続命令もまた各ステージにて
ステージロック信号120、122で保持される。
【0016】第1の実施例ではミスヒット中の制御情報
を保持する制御情報保持回路が1つのケースを示してい
るが、該制御情報を保持する制御情報保持回路を複数持
つ処理装置においては、後続命令がメモリアクセス命令
であり、かつこれもまたキャッシュミスを起こす場合に
第2の退避レジスタに後続メモリアクセス命令の制御情
報を保持することにより、第1のロードと、後続命令メ
モリアクセス命令に依存関係のない命令はさらに継続実
行することができる。以上により、第1のロード命令が
キャッシュミスをしてブロック転送中も、その後続命令
の実行を継続することができるので第2およびそれ以降
の命令はペナルティなしで実行可能になり、少ないハー
ドウェアの投資と簡単な制御手段で実行性能を大幅に改
善することができる。
【0017】同様の目的を達成するために、第1のロー
ド命令がキャッシュミスをしてブロック転送中も、その
後続命令の実行を継続するために、該後続命令用に新た
に別セットの実行手段を持ち、該後続命令は別セットの
実行手段で実行することにより、該後続命令の実行を継
続する方法も考えられるが、その場合は投資すべきハー
ドウェアは多い上、第1のロード命令の実行手段と該後
続命令の実行手段の切り替えるという複雑な制御を必要
とする。従って本発明は少ないハードウェアの投資と簡
単な制御手段を用い、大幅な実行性能の改善を実現する
ことができる。
【0018】第1の実施例では、第1の命令がロード命
令の場合について説明したが、本発明は第1の命令がロ
ード命令に限らず一般のメモリアクセス命令についても
同様である。第2の実施例は第1の命令がストア命令の
場合である。以下第2の実施例について簡単に説明す
る。
【0019】第1の命令であるストア命令がNステージ
でヒット判定回路20によってキャッシュミスと判明し
た場合には、該ストア命令はストアするサブブロックを
含む有効なブロックのデータを読み出すためにブロック
転送を行い、ブロック転送で読み出したデータの内の該
ストア命令でストアするサブブロックデータに対応する
部分を該ストアするサブブロックデータで置き換え、す
なわち、該ストア命令でストアするサブブロックデータ
とブロック転送で読み出したデータとをマージしてデー
タキャッシュに書き込む。その際、従来技術によるパイ
プライン処理装置では該ストア命令はNステージを占有
したままであり、その制御情報はNステージで保持され
ており、その後続命令の実行は該ストア命令のブロック
転送完了まで停止していた。一方本発明によると該スト
ア命令の制御情報およびストアデータを保持回路で保持
することにより、Nステージはその後続命令が使用する
ことができる。従って該ロード命令のブロック転送中も
パイプラインをロックせずに第2の命令および後続命令
を実行し続けることができる。
【0020】次に第1の実施例において、第1のロード
命令とその後続命令との間に依存関係が存在する場合に
ついて図3のタイムチャートを用いて説明する。第1の
ロード命令のブロック転送中に実行する命令が該ロード
命令と依存関係があると、その後続命令との依存関係の
保証が必要となる。一例として該ロード命令で書き換え
るレジスタを使用する場合、該ロード命令のデータはそ
のブロック転送完了までは保証されていないので、該ロ
ード命令で書き換えるレジスタを使用する命令は実行す
ることはできない。第1のロード命令とその後続命令と
の間の依存関係はこれに限らず、ロードで書き換えるレ
ジスタと、後続命令で書き換えるレジスタが一致した場
合でも同様である。通常の命令間の依存関係は検出回路
13、14、15を用いて行われる。
【0021】具体的には第1のロード命令がEステージ
にあり、該ロード命令の結果を使用する後続命令がDス
テージにある場合、該ロード命令のロードデータはまだ
求められていないので、Eステージの第1のロード命令
の実行制御情報保持回路3のデータと、Dステージの後
続命令の実行制御情報保持回路2のデータとを用い、依
存関係検出回路13で両者の間の依存関係をチェック
し、依存関係が存在する場合は制御線121でパイプラ
イン制御回路22へ報告される。パイプライン制御回路
22は、Dステージのロック信号120を送出し、該後
続命令はDステージで保持される。Aステージの実行制
御情報保持回路4のデータと、Dステージの後続命令の
実行制御情報保持回路2のデータとの依存関係検出回路
14も同様の動作をする。またNステージの実行制御情
報保持回路5のデータと、Dステージの後続命令の実行
制御情報保持回路2のデータとの依存関係検出回路15
も同様の動作をする。
【0022】図3において、第1のロード命令のキャッ
シュミスによるブロック転送中も第2、第3の命令はそ
の実行を継続しており、第4の命令が第1のロード命令
と依存関係がある場合、第1の命令の実行制御情報はミ
スヒット中は保持回路6で保持しているので、第1のロ
ード命令の実行制御情報保持回路6のデータと、Dステ
ージの第4の命令の実行制御情報保持回路2のデータと
を用い、依存関係検出回路16で両者の間の依存関係を
チェックし、依存関係が存在する場合は制御線121で
パイプライン制御回路22に報告される。パイプライン
制御回路22は、Dステージのロック信号120を送出
し、第4の命令はDステージで保持される。このように
して、第1の命令のブロック転送中にその後続命令を実
行する際の最も制御困難である、両者の間の依存関係を
保証しなければならない問題を少ない回路と簡単な制御
で解決することができる。第1の実施例では第1の命令
がロード命令の場合について説明したが、本発明は第1
の命令がロード命令に限るものではなく、一般のメモリ
アクセス命令についても同様である。第1の命令がスト
ア命令ある第2の実施例についても全く同様である。
【0023】次に第1の実施例において、第1のロード
命令がキャッシュミスをしてブロック転送中にその後続
命令の実行を継続する場合に、該ロード命令のブロック
転送が終了して転送された該ロードデータをレジスタフ
ァイルへ書き込むサイクルと、後続命令によるレジスタ
ファイルへ書き込むサイクルとが競合する場合について
図4を用いて説明する。これまでの説明のとおり、第1
のロード命令がキャッシュミスをしてブロック転送中に
その後続命令の実行を継続する場合は、その後続命令は
該ロード命令との依存関係がない限り、実行し続けるこ
とができる。しかし、該ロード命令のブロック転送が終
了して転送された該ロードデータをレジスタファイルへ
書き込むサイクルと、後続命令によるレジスタファイル
へ書き込むサイクルとが競合するというリソース競合が
発生する。これはレジスタファイルへの書き込みポート
が1つしかない処理装置においては重要な問題である。
この場合のタイムチャートが図4である。図4では第4
の命令がレジスタファイルへの書き込みを行う演算命令
である。
【0024】第4の命令の実行をそのまま継続すると、
第1のロード命令のレジスタファイル書き込みであるW
ステージと、第4の命令のWステージが競合し、レジス
タファイルの書き込みポートが1つしかないので正常動
作を保証することができない。
【0025】このケースでは、第1のロード命令のブロ
ック転送を制御するブロック転送制御回路24におい
て、ブロック転送でデータが転送される1サイクル前に
次のサイクルでブロック転送が完了することを示す制御
信号124を送出する。競合検出回路23は、該制御信
号124が報告され、そのサイクルで第4の命令がレジ
スタファイルに書き込みを行う命令である場合、レジス
タファイルの書き込みリソースの競合検出信号123
を、パイプライン制御回路22へ送る。パイプライン制
御回路22はステージロック信号120、122を送出
し、第4の命令およびその後続命令を各ステージで1サ
イクルで保持して、その後で第4の命令およびその後続
命令の実行を再開する。即ち第4の命令およびその後続
命令のペナルティは1サイクルである。第4の命令がレ
ジスタファイルに書き込みを行わない命令である場合
は、Wステージでのレジスタファイル書き込みは競合し
ないので、ステージロックなしに命令実行を継続するこ
とができる。また第1の実施例は第4の命令がレジスタ
ファイルに書き込みを行なう命令のみを、Aステージで
1サイクル実行停止するものだが、実行停止するサイク
ルはAステージに限るものでなく、他のステージの実行
制御情報を用いて、他のステージで実行停止を行っても
よい。また、実行停止サイクルは1サイクルに限るもの
ではない。
【0026】第3の実施例として、第1の実施例におい
て、第4の命令がレジスタファイルに書き込みをするか
どうかによらず、すべての命令実行を1サイクル停止す
る処理装置も容易に実現することができる。第3の実施
例では、第1のロード命令のブロック転送を制御する制
御回路24において、ブロック転送でデータが転送され
る1サイクル前に次のサイクルでブロック転送が完了す
ることを示す制御信号124を送出された場合に、その
サイクルで第4の命令がレジスタファイルに書き込みを
行なう命令であるか否かに係りなく、パイプライン制御
回路22はステージロック信号120、122を送出
し、第4の命令およびその後続命令を各ステージで1サ
イクルで保持して、その後で第4の命令およびその後続
命令を実行を再開する。第3の実施例ではAステージに
いる第4の命令とのレジスタファイル書き込みリソース
競合は発生しないので、検出回路23は不要になり、ま
た制御も容易になるが、実行性能は落ちてしまう。第3
の実施例でも実行停止するサイクルはAステージに限る
ものでなく、他のステージの実行制御情報を用いて、他
のステージで実行停止を行ってもよい。また、実行停止
サイクルは1サイクルに限るものではない。このように
して、レジスタファイルの書き込みポートが1つしかな
い処理装置における、第1のロード命令のブロック転送
中にその後続命令を実行する際のレジスタファイルの書
き込みポート競合の問題を少ない回路と簡単な制御で解
決することができる。
【0027】第1の実施例では第1の命令がロード命令
の場合について説明したが、本発明は第1の命令がロー
ド命令に限らず一般のメモリアクセス命令についても同
様である。第2の実施例において、データキャッシュへ
の書き込みポートが1つしかない処理装置において、第
1のストア命令がキャッシュミスをしてブロック転送中
にその後続命令の実行を継続する場合に、該ストア命令
のブロック転送が終了して転送された該ストアデータを
データキャッシュへ書き込むサイクルと、後続ストア命
令によるデータキャッシュへ書き込むサイクルとが競合
する問題を第1の実施例のロード命令の場合と同様の手
段を用いて、解決することができる。即ち第2の実施例
において、第4の命令がデータキャッシュへの書き込み
を行うストア命令である場合を考える。第4の命令の実
行をそのまま継続すると、第1のストア命令のデータキ
ャッシュ書き込みであるWステージと、第4の命令のW
ステージが競合し、データキャッシュの書き込みポート
は1つしかないので正常動作を保証することができな
い。第2の実施例では、第1のストア命令のブロック転
送を制御するブロック転送制御回路24において、ブロ
ック転送でデータが転送される1サイクル前に次のサイ
クルでブロック転送が完了することを示す制御信号12
4を送出する。該制御信号124と、そのサイクルでA
ステージにいる第4の命令の実行制御情報保持回路4と
を用い、競合検出回路23は、第4の命令がデータキャ
ッシュに書き込みを行う命令である場合、データキャッ
シュへの書き込みリソースの競合検出信号123を、パ
イプライン制御回路22へ送る。パイプライン制御回路
22はステージロック信号120、122を送出し、第
4の命令およびその後続命令を各ステージで1サイクル
で保持して、その後の第4の命令およびその後続命令を
実行を再開する。即ち第4の命令およびその後続命令の
ペナルティは1サイクルである。
【0028】第4の命令がデータキャッシュに書き込み
を行わない命令である場合は、Wステージでのデータキ
ャッシュ書き込みは競合しないので、ステージロックな
しに命令実行を継続することができる。第2の実施例は
第4の命令がデータキャッシュに書き込みを行う命令の
みを、Aステージで1サイクル実行停止するものだが、
実行停止するサイクルはAステージに限るものでなく、
他のステージの実行制御情報を用いて、他のステージで
実行停止を行ってもよい。また、実行停止サイクルは1
サイクルに限るものではない。
【0029】第4の実施例として、第2の実施例におい
て、第4の命令がデータキャッシュに書き込みをするか
どうかによらず、すべての命令実行を1サイクル停止す
る処理装置も容易に実現することができる。このように
して、データキャッシュの書き込みポートが1つしかな
い処理装置における、第1のロード命令のブロック転送
中にその後続命令を実行する際のデータキャッシュの書
き込みポート競合の問題を少ない回路と簡単な制御で解
決することができる。
【0030】第5、第6の実施例としては、第1の実施
例のパイプライン処理装置においてレジスタファイルの
書き込みポートを増やした構成とする。図5に第5の実
施例を、図6に第6の実施例の構成を示す。第5の実施
例は、第1の実施例で説明した第1のロード命令のレジ
スタファイル書き込みと、第4のロード命令でない後続
命令のレジスタファイル書き込みとの競合による1サイ
クルの性能低下を避ける発明である。第1のロード命令
がキャッシュミスをしてブロック転送中に該第4の命令
の実行を継続する場合に、該ロード命令のブロック転送
が終了して転送された該ロードデータをレジスタファイ
ルへ書き込むサイクルと、該第4の命令によるレジスタ
ファイルへ書き込むサイクルとが競合するが、レジスタ
ファイルの書き込みポートは2つあるので両者のレジス
タファイルへの書き込みを同時に行なうことができる。
すなわち、第1のロード命令のレジスタファイルへの書
き込みは118により行われ、該第4の命令によるレジ
スタファイルへの書き込みは117により行われ、図7
に示すタイムチャートで処理される。即ち第4の命令お
よびその後続命令のペナルティはない。第5の実施例
は、メインメモリ25からのレジスタファイル書き込み
とデータキャッシュ18からのレジスタファイル書き込
みは、同一のレジスタファイル書き込みパス118を介
して行われるので、第4の命令がロード命令でレジスタ
ファイルへ書き込みを行う命令の場合は、第4の命令の
実行は同時に行えないので、第4のロード命令は1サイ
クル実行停止する必要があり、図4に示すタイムチャー
トで処理される。
【0031】第6の実施例は、第5の実施例に対し、メ
インメモリ25からのレジスタファイル書き込みパスと
データキャッシュ18からのレジスタファイル書き込み
パスを分離した構成とする。図6に第6の実施例の構成
を示す。第6の実施例は、第5の実施例において、第4
の命令がロード命令であっても、該第4の命令の実行処
理を停止することなく実行することができる。即ち、第
1のロード命令がキャッシュミスをしてブロック転送中
に該第4の命令の実行を継続する場合に、第1のロード
命令のブロック転送が終了して転送された第1のロード
データをレジスタファイルへ書き込むサイクルと、該第
4の命令によるレジスタファイルへ書き込むサイクルと
が競合するが、第1の命令のロード命令のレジスタファ
イルへの書き込みはパス119により行われ、該第4の
命令によるレジスタファイルへの書き込みは118によ
り行われ、図7に示すタイムチャートで処理される。即
ち第4のおよびその後続命令のペナルティはない。この
ように、パス119によるレジスタファイル書き込みポ
ートを増やすことで、第1のロード命令のブロック転送
中の後続命令実行性能をさらに上げることができる。
【0032】第7の実施例は、第5の実施例で第1の命
令をストア命令にしたものに対応する。
【0033】即ち、第2の実施例に対し、データキャッ
シュの書き込みポートを増やすことで、第1のをストア
命令のデータキャッシュ書き込みと、第4の後続命令の
データキャッシュ書き込みとの競合による1サイクルの
性能低下を避けるものである。データキャッシュのポー
トを増やすことにより、第1のストア命令のデータキャ
ッシュ書き込みと、第4の後続命令のデータキャッシュ
書き込みを同時に行うことができ、後続データキャッシ
ュ書き込み命令をペナルティなしで処理することができ
る。
【0034】以上は、パイプラインがIF〜Wの6ステ
ージで構成されている場合についての実施例であるが、
本発明はこのパイプラインステージの段数、分割に限ら
れるものではない。これまでの説明のとうり、パイプラ
インステージの段数、パイプラインステージの分割は、
本発明の本質であるキャッシュミスを発生した命令の制
御情報を保持する回路を持ち、その制御手段を持つと言
うことに対して関係はなく、パイプラインステージの段
数、分割が変わっても容易に適用することができる。本
例ではキャッシュミスがNステージで判明する為、Nス
テージの情報をWステージで保持するようになってい
る。しかし、保持される情報は、特にNステージといっ
た特定のステージに限定されるものではなく、また、保
持するステージも、特にWステージに限定されるもので
はない。
【0035】
【発明の効果】本発明によれば、第1の命令であるメモ
リアクセス命令がキャッシュミスしても、該メモリアク
セス命令の後続命令の実行処理を続けることができる。
第1のメモリアクセス命令がキャッシュミスして、該メ
モリアクセス命令と後続命令との間の依存関係があると
き、依存関係のある後続命令の実行を停止することによ
り、依存関係の保証を行うことができる。レジスタファ
イルに対する書込みポートが1つであるとき、第1のメ
モリアクセス命令がロード命令であり該ロード命令がキ
ャッシュミスして、該ロード命令の後続命令を実行処理
し続ける場合に、レジスタファイル書込みを行う後続命
令の実行を遅らせることにより、同時にレジスタファイ
ル書込みを行うことを回避することができる。データキ
ャッシュに対する書込みポートが1つであるとき、第1
のメモリアクセス命令がストア命令であり該ストア命令
がキャッシュミスして、該ストア命令の後続命令を実行
処理し続ける場合に、データキャッシュ書込みを行う後
続命令の実行を遅らせることにより、同時にデータキャ
ッシュ書込みを行うことを回避することができる。レジ
スタファイルの書き込みポートを複数設けることによ
り、第1のメモリアクセス命令がロード命令であり、そ
のキャッシュミス時のブロック転送によるレジスタファ
イルへの書込みと、後続のレジスタファイルへの書込み
命令による書き込みが競合するとき、両書き込みをペナ
ルティなしに実行することができる。
【図面の簡単な説明】
【図1】第1の実施例のパイプライン処理装置の構成を
示す図である。
【図2】第1の実施例においてロード命令がキャッシュ
ミスした場合のタイムチャートを示す図である。
【図3】第1の実施例においてロード命令とその後続命
令との依存関係が存在する場合のタイムチャートを示す
図である。
【図4】第1の実施例においてロード命令によるブロッ
ク転送データのレジスタファイルへの書き込みとその後
続命令によるレジスタファイルへの書き込みとが競合し
た場合のタイムチャートを示す図である。
【図5】第5の実施例のパイプライン処理装置の構成を
示す図である。
【図6】第6の実施例のパイプライン処理装置の構成を
示す図である。
【図7】第5と第6の実施例においてロード命令による
ブロック転送データのレジスタファイルへの書き込みと
その後続命令によるレジスタファイルへの書き込みとが
競合した場合のタイムチャートを示す図である。
【図8】従来技術に従うパイプライン処理装置の構成を
示す図である。
【図9】図8のパイプライン処理装置おいてロード命令
のキャッシュミス時における該ロード命令と後続命令と
のタイムチャートを示す図である。
【符号の説明】
1 アドレス保持回路 2、3、4、5、6 制御情報保持回路 7、8、9、10 データ保持回路 11 プログラムカウンタ 12 命令キャッシュメモリ 13、14、15、16 依存関係検出回路 17 演算装置 18 データキャッシュメモリ 19 データアドレスタグ 20 ヒット判定回路 21 レジスタファイル 22 パイプライン制御装置 23 競合検出回路 24 ブロック転送制御回路 25 メインメモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴木 裕司 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 第1の命令と第1の命令の次に実行する
    第2の命令及びそれ以降の命令とをそれぞれ複数のステ
    ージに分割してパイプライン制御回路の制御の下にパイ
    プライン処理するパイプライン処理実行手段と、データ
    キャッシュメモリを備えるパイプライン処理装置におい
    て、 前記パイプライン制御回路は、前記第1の命令がロード
    命令またはストア命令のメモリアクセス命令であり、か
    つ該メモリアクセス命令により前記データキャッシュメ
    モリがアクセスされ、データキャッシュミスが発生した
    とき、該メモリアクセス命令に関する制御情報及びデー
    タを退避保持する制御情報保持回路を備え、前記制御情
    報保持回路に退避保持させる制御手段を備え、 前記第1の命令のデータキャッシュミスによって発生す
    るブロック転送中も第2の命令およびそれ以降の命令実
    行を停止させずに実行処理し続けることを特徴とするパ
    イプライン処理装置。
  2. 【請求項2】 請求項1記載のパイプライン処理装置に
    おいて、 前記第1のロード命令のデータキャッシュミスによって
    発生するブロック転送のデータの前記レジスタファイル
    の書き込みと、後続するレジスタファイル書き込み命令
    によるデータの前記レジスタファイルの書き込みとの競
    合、または前記第1のストア命令のデータキャッシュミ
    スによって発生するブロック転送のデータの前記データ
    キャッシュメモリへの書き込みと、後続するデータキャ
    ッシュ書き込み命令によるデータの前記データキャッシ
    ュメモリへの書き込みとの競合を検出する競合検出回路
    を前記パイプライン処理実行手段に備え、 前記パイプライン制御回路は、該競合検出回路からの競
    合検出信号を受け後続命令の各ステージでの実行を一時
    停止するステージロック信号を生成送出する手段を備え
    ることを特徴とするパイプライン処理装置。
  3. 【請求項3】 請求項1記載のパイプライン処理装置に
    おいて、 前記レジスタファイルは、前記データキャッシュメモリ
    からの読み出しデータを書き込むための書き込みポート
    と前記データキャッシュメモリからの読み出しデータ以
    外のデータを書き込むための書き込みポートを備えるこ
    とを特徴とするパイプライン処理装置。
JP7100026A 1995-03-31 1995-03-31 パイプライン処理装置 Pending JPH08272608A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7100026A JPH08272608A (ja) 1995-03-31 1995-03-31 パイプライン処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7100026A JPH08272608A (ja) 1995-03-31 1995-03-31 パイプライン処理装置

Publications (1)

Publication Number Publication Date
JPH08272608A true JPH08272608A (ja) 1996-10-18

Family

ID=14263033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7100026A Pending JPH08272608A (ja) 1995-03-31 1995-03-31 パイプライン処理装置

Country Status (1)

Country Link
JP (1) JPH08272608A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154814A (en) * 1997-06-16 2000-11-28 Nec Corporation Cache device that reduces waiting time necessary for a given subsequent request to gain access to the cache
KR100300875B1 (ko) * 1998-12-30 2001-09-06 박종섭 캐쉬 미스 시 처리 방법
WO2008029450A1 (fr) * 2006-09-05 2008-03-13 Fujitsu Limited Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154814A (en) * 1997-06-16 2000-11-28 Nec Corporation Cache device that reduces waiting time necessary for a given subsequent request to gain access to the cache
KR100300875B1 (ko) * 1998-12-30 2001-09-06 박종섭 캐쉬 미스 시 처리 방법
WO2008029450A1 (fr) * 2006-09-05 2008-03-13 Fujitsu Limited Dispositif de traitement d'informations comprenant un mécanisme de correction d'erreur de prédiction d'embranchement
JPWO2008029450A1 (ja) * 2006-09-05 2010-01-21 富士通株式会社 分岐予測ミスリカバリ機構を有する情報処理装置

Similar Documents

Publication Publication Date Title
US5293500A (en) Parallel processing method and apparatus
US5636353A (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating results bypassing
US5226166A (en) Parallel operation processor with second command unit
JPH06318178A (ja) キャッシュタグメモリ用キャッシュタグ制御装置及び制御方法
JPH02304650A (ja) パイプライン方式のマイクロプロセッサ
JP3435278B2 (ja) データ処理装置
JPH08272608A (ja) パイプライン処理装置
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JPS60195661A (ja) デ−タ処理システム
JPH1097465A (ja) マルチプロセッサシステム
JPH09146769A (ja) パイプライン処理装置
JPS6259829B2 (ja)
JP2806690B2 (ja) マイクロプロセッサ
JP3855069B2 (ja) 論理回路
JP3574693B2 (ja) 命令処理プロセッサ
JPH04340145A (ja) キャッシュメモリ装置
JPH09179736A (ja) パイプライン処理装置
JPH0447350A (ja) 主記憶読み出し応答制御方式
JPH07319693A (ja) パイプライン処理方式
JPH03119424A (ja) 情報処理方式及び装置
JPH07219771A (ja) 命令プロセッサ
JP2000347931A (ja) キャッシュメモリおよびキャッシュメモリ制御方法
JPH08212068A (ja) 情報処理装置
JPH10187634A (ja) 同期制御方法および主記憶共有型並列プロセッサ