(57)【特許請求の範囲】
【請求項１】
ロード要求に基づいて二次キャッシュメモリから読み出したデータを記憶する一次キャッシュメモリと、前記一次キャッシュメモリから読み出したデータを保持するデータバッファを備え、前記一次キャッシュメモリから前記データバッファに読み出したデータに基づいて処理を実行するとともに、再送要求を受けた場合、前記一次キャッシュメモリに前記ロード要求を再送する命令実行部と、を有する演算処理装置において、
前記一次キャッシュメモリは、
前記ロード要求に基づいて前記二次キャッシュメモリから読み出したデータを記憶するデータメモリと、
前記データメモリから読み出したデータのキャッシュヒット又はキャッシュミスの検査に用いるアドレス情報を記憶するタグメモリと、
前記データメモリから読み出したデータにおけるエラーを検出するエラー検出部と、
前記エラー検出部が、前記データメモリから読み出したデータにおいてエラーを検出した場合、前記エラーが検出されたデータの再ロード要求を生じさせる再送要求を生成するとともに前記命令実行部に出力する再送要求生成部と、
前記タグメモリが記憶したアドレス情報に基づいて、前記データメモリから読み出したデータについてキャッシュヒット又はキャッシュミスの検査を行うことにより、前記再送要求生成部がエラー発生を検出したサイクルと同一サイクルで前記データメモリから読み出したデータの使用を許可する使用許可を生成して前記命令実行部に出力するとともに、前記再送要求生成部が生成した再送要求に基づき前記データバッファにデータを書き込むために生成される第１のフローを識別するフロー識別情報が、前記第１のフローがウェイトされていることを示し、且つ、前記再送要求生成部がエラー発生を検出しない場合、前記フロー識別情報に基づいて生成される第２のフローに応じて前記使用許可を生成して前記命令実行部に出力する使用許可生成部と、を有することを特徴とする演算処理装置。
【請求項２】
前記演算処理装置はさらに、
前記一次キャッシュメモリに対するロード要求が与えられた場合、前記データメモリにクロックを供給するクロック制御部を有し、
前記データメモリは、
前記クロックが供給された場合、データを出力することを特徴とする請求項１記載の演算処理装置。
【請求項３】
ロード要求に基づいて二次キャッシュメモリから読み出したデータを記憶するデータメモリと、前記データメモリから読み出したデータのキャッシュヒット又はキャッシュミスの検査に用いるアドレス情報を記憶するタグメモリと、を有する一次キャッシュメモリと、前記一次キャッシュメモリから読み出したデータを保持するデータバッファを備えるとともに前記一次キャッシュメモリから前記データバッファに読み出したデータに基づいて処理を実行する命令実行部とを有する演算処理装置において、
前記一次キャッシュメモリが有するエラー検出部が、前記データメモリから読み出したデータにおけるエラーを検出し、
前記エラー検出部が、前記データメモリから読み出したデータにおいてエラーを検出した場合、前記一次キャッシュメモリが有する再送要求生成部が、前記エラーが検出された前記データの再ロード要求を生じさせる再送要求を生成し、
前記一次キャッシュメモリが有する使用許可生成部が、前記タグメモリが記憶したアドレス情報に基づいて、前記データメモリから読み出したデータについてキャッシュヒット又はキャッシュミスの検査を行うことにより、前記再送要求生成部がエラー発生を検出したサイクルと同一サイクルで、前記データメモリから読み出したデータの使用を許可する使用許可を生成して前記命令実行部に出力するとともに、前記再送要求生成部が生成した再送要求に基づき前記データバッファにデータを書き込むために生成される第１のフローを識別するフロー識別情報が、前記第１のフローがウェイトされていることを示し、且つ、前記再送要求生成部がエラー発生を検出しない場合、前記フロー識別情報に基づいて生成される第２のフローに応じて前記使用許可を生成して前記命令実行部に出力し、
前記再送要求を受けた場合、前記命令実行部が、前記一次キャッシュメモリに前記ロード要求を再送することを特徴とする演算処理装置の制御方法。
【請求項４】
前記演算処理装置はさらに、
前記一次キャッシュメモリに対するロード要求が与えられた場合、前記データメモリにクロックを供給し、
前記データメモリは、
前記クロックが供給された場合、データを出力することを特徴とする請求項３記載の演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【０００２】
近年、演算処理装置としてのプロセッサの処理速度の高速化のために、パイプライン方式を用いたプロセッサが使用されている。パイプライン方式において、プロセッサはその機能を実現する複数のパイプライン（命令制御パイプライン、演算パイプライン、分岐制御パイプライン等）を有する。又、各パイプラインは、それぞれ複数のステージに分割されている。各ステージは、所定の工程を実現する回路ユニットを含み、動作周波数の逆数であるサイクルタイムと呼ばれる期間内に、各ステージに割り当てられた所定の工程を終了するように動作する。そして、先工程に係るステージの出力信号は、例えば、後工程に係るステージの入力信号として使用される。
【０００３】
パイプライン方式を用いたプロセッサの処理速度の高速化手法として、タグＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、データＲＡＭに１サイクルでアクセスするように動作するキャッシュメモリが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１７１１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データＲＡＭから読み出したデータをエラーチェックする処理と、エラーチェック結果に応じてプロセッサに読み出したデータの使用許可の可否を判断して通知する処理とは、互いに連続した処理であるため、１サイクル内にこれら２つの処理を終了させることが出来ない。そのため、上記２つの処理は、少なくとも合計２サイクル以上の時間がかかる。
【０００６】
開示の演算処理装置は、データＲＡＭからのロード動作を高速化することを目的とする。
【課題を解決するための手段】
【０００７】
開示の演算処理装置は、データを記憶する第１の記憶部と、第１の記憶部から読み出したデータについてエラーの発生を検出するエラー検出部と、第１の記憶部から読み出したデータを、ロード要求に基づいて格納する第２の記憶部と、エラー検出部が、ロード要求により第１の記憶部から読み出したデータについて、エラーの発生を検出した場合、第１の記憶部へのロード要求の再送要求を、データのエラーが検出されたサイクルと同じサイクルにおいて生成する再送要求生成部と、エラーが検出されたデータと再送要求が与えられたとき、第１の記憶部にロード要求を再送する命令実行部と、を有する。
【発明の効果】
【０００８】
開示の演算処理装置は、データＲＡＭからのロード動作を高速化するという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】演算処理装置の構成の一例を示す図である。
【図２】命令部及びＬ１キャッシュの一例を示す図である。
【図３】パイプラインへのデータ要求の遷移の一例を示す図である。
【図４】優先制御を規定する真理値表の一例を示す図である。
【図５】Ｌ１キャッシュ内のアドレス制御処理の実行手順の一例を示す図である。
【図６】Ｌ１キャッシュ内のアドレス制御処理の実行手順の一例を示す図である。
【図７】Ｌ１キャッシュ内のアドレス制御処理の実行手順の一例を示す図である。
【図８】Ｌ１キャッシュ内のフラグ制御処理の実行手順の一例を示す図である。
【図９】パイプライン制御に使用されるフラグ信号の一例を示す図である。
【図１０】保持回路に保持されるフラグ信号選択の優先順位を規定する真理値表の一例を示す図である。
【図１１】ＴＬＢの一例を示す図である。
【図１２】タグＲＡＭの一例を示す図である。
【図１３】データＲＡＭの一例を示す図である。
【図１４】クロック制御部の一例を示す図である。
【図１５】エラーチェック回路の一例を示す図である。
【図１６】再送要求生成部の一例を示す図である。
【図１７】制御信号生成部の一例を示す図である。
【図１８】パイプラインのＶＡＬＩＤ信号処理の一例を示す図である。
【図１９】演算処理装置の回路配置の一例を示す図である。
【図２０】再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。
【図２１】再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。
【図２２】再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、演算処理装置としてのプロセッサの実施形態を説明する。図１は、演算処理装置の構成の一例を示す図である。図１に示す演算処理装置１０は、命令実行部４、Ｌ１キャッシュ２０を有する。命令実行部４は、デコード部２、及び実行部３を有する。Ｌ１キャッシュ２０の一例は、図２を用いて後述される。
【００１１】
デコード部２は、「データ要求信号」をＬ１キャッシュ２０に供給して、「命令」を読み出す。デコード部２は、Ｌ１キャッシュ２０から読み出した「命令（オペコード：ｏｐｃｏｄｅ）」をデコード（解読）して、命令のデコード結果及び命令の実行対象である被演算数等のオペランド（ｏｐｅｒａｎｄ）が格納されたレジスタアドレスを「演算制御信号」として、実行部３に供給する。デコード対象の命令としては、例えば、Ｌ１キャッシュ２０へのロード命令、ストア命令などである。
【００１２】
実行部３は、実行部３の内部にあるレジスタファイルにおいて、レジスタアドレスで特定されるレジスタからオペランドであるデータを取り出し、デコードした命令に従ってデータを演算する。実行部３は、デコードされた命令を実行することにより、「データ要求信号」として、を、Ｌ１キャッシュ２０に供給する。「データ要求信号」は、以下「ＥＸＴ要求」と呼ばれる。「ＥＸＴ要求」には、ロード命令、ストア命令、及びプリフェッチ命令等がある。
【００１３】
Ｌ１キャッシュ２０は、例えば、ロード命令に従って、要求されたデータを実行部３に供給する。実行部３は、命令の実行を終了すると、次の演算制御信号を受け取るために、「演算完了信号」をデコード部２に供給する。
【００１４】
Ｌ１キャッシュ２０は、Ｌ２キャッシュ４００の上位階層のメモリであり、Ｌ２キャッシュ４００が保持するデータの一部をキャッシュしている。すなわち、Ｌ２キャッシュ４００は、Ｌ１キャッシュ２０がキャッシュするデータを包含して保持している。Ｌ２キャッシュ４００は、主記憶装置５００の上位階層のメモリであり、主記憶装置５００が保持するデータの一部をキャッシュしている。すなわち、主記憶装置５００は、Ｌ２キャッシュ２００及びＬ１キャッシュ２０の双方がキャッシュするデータを包含して保持している。
【００１５】
デコード部２又は実行部３がメモリアクセスした命令又はデータが、Ｌ１キャッシュ２０に存在する場合を、以下、「キャッシュヒット」と呼ぶ。デコード部２又は実行部３がメモリアクセスした命令又はデータが、Ｌ１キャッシュ２０に存在しない場合を、以下、「キャッシュミス」と呼ぶ。キャッシュミスが生じた場合、Ｌ１キャッシュ２０の下位階層にあるＬ２キャッシュ４００又は主記憶装置５００から、Ｌ１キャッシュ２０に当該キャッシュミスしたデータが読み出す制御を行う。
【００１６】
図２は、Ｌ１キャッシュの一例を示す図である。命令実行部４は、データバッファ５を有する。データバッファ５は、Ｌ１キャッシュ２０から読み出した命令を保持するバッファである。
【００１７】
Ｌ１キャッシュ２０は、キャッシュコントローラ２００、クロック制御部１１０、データＲＡＭ１２０、エラーチェック回路１３０、選択回路１４０、再送要求生成部１５０、制御部１８０、Ｌ２オーダ保持部１９０、Ｌ２要求保持部１９５を有する。キャッシュコントローラ２００は、パイプライン１００、及び制御部１８０を有する。
【００１８】
パイプライン１００は、Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａｓｉｄｅ  Ｂｕｆｆｅｒ（ＴＬＢ）３５、タグＲＡＭ３０、比較回路４０、及び制御信号生成部５０を有する。
【００１９】
命令実行部４は、データバッファ５を有する。データバッファ５は、選択回路１４０から供給されたデータを保持する。
【００２０】
パイプライン１００は、優先回路２５、タグＲＡＭ３０、ＴＬＢ３５、比較回路４０を含む。パイプライン１００に含まれる上記の構成要素は、複数のステージにそれぞれ割り当てられる。例えば、優先回路２５は、「Ｐ（Ｐｒｉｏｒｉｔｙ）ステージ」に割り当てられ、タグＲＡＭ３０及びＴＬＢ３５は、「Ｔ（Ｔａｇ）ステージ」に割り当てられ、比較回路４０は、「Ｍ（Ｍａｔｃｈ）ステージ」に割り当てられる。パイプライン１００の一例は、図５、図７、及び図８を用いて後述される。
【００２１】
クロック制御部１１０は、データＲＡＭ１２０が保持するデータに対するアクセス要求がある場合等のデータＲＡＭ１２０にクロックを供給する必要が有る場合に、データＲＡＭ１２０に対してクロックを供給する。クロック制御部１１０の詳細は、図１４を用いて、後述される。
【００２２】
ＴＬＢ３５、タグＲＡＭ３０、データＲＡＭ１２０、及びエラーチェック回路１３０の詳細は、それぞれ、図１１、図１２、図１３、及び図１５を用いて後述される。
【００２３】
比較回路４０は、ＴＬＢ３５から供給された絶対アドレスと、タグＲＡＭ３０から供給された絶対アドレスとを比較して、２つのタグが一致するか否かを判定する回路である。比較回路４０は、ＴＬＢ３５から供給されたタグと、タグＲＡＭ３０から供給されたタグとが一致する場合、選択回路１４０に、キャッシュヒットが生じたウェイを特定するタグヒットウェイ信号を供給する。
【００２４】
Ｌ２要求保持部１９５は、Ｌ２キャッシュ４００からデータをロードする場合に用いられる要求を保持する。
【００２５】
Ｌ２オーダ保持部１９０は、Ｌ２キャッシュ４００からキャッシュラインを削除する処理がなされた場合に、Ｌ１キャッシュ２０において相当するキャッシュラインのエントリを削除する要求を保持する。以下、この削除要求を、「Ｌ２オーダ」と呼ぶ。Ｌ２オーダ保持部１９０からデキューしたＬ２オーダは、後述されるＰ（Ｐｒｉｏｒｉｔｙ）サイクルオーダアドレスレジスタ（ＰＳＸＲ）に保持される。
【００２６】
再送要求生成部１５０、及び制御信号生成部５０は、それぞれ、図１６、及び図１７を用いて、後述される。制御部１８０は、キャッシュエラーが生じると、Ｌ２キャッシュ４００にデータをロードし、Ｌ１キャッシュにロードしたデータをストアする処理を行う。
【００２７】
図３は、パイプラインへのデータ要求の遷移の一例を示す図である。状態Ｓ１０１は、優先回路２５が要求信号を受付中である状態を示す。状態Ｓ１０３は、優先回路２５が、要求を、次ステージのＴＬＢ３５、タグＲＡＭ３０、及びクロック制御部１１０に投入するのを待っている状態を示す。
【００２８】
優先回路２５は、上記した４種の要求を受け取り（Ｔ１０２）、要求投入待ち状態（Ｓ１０３）になると、優先回路２５は、図４に示す真理値表に従って、次ステージに供給する要求を選択する。図３に示した状態Ｓ１０１、Ｓ１０３は、要求種別毎に用意されたラッチ回路で実装される。状態Ｓ１０１から状態Ｓ１０３への遷移Ｔ１０２は、要求を優先回路２５に設定することにより生じる。状態Ｓ１０３から状態Ｓ１０１への遷移Ｔ１０４は、要求を次ステージに供給することにより生じる。
【００２９】
図２に示す優先回路２５は、ＥＸＴ要求、ＢＩＳ要求、ＭＩ要求、ＩＮＴ要求を受け取り、所定の優先順位に基づいてそれらの要求を選択し、且つ選択した要求を次ステージのＴＬＢ３５、タグＲＡＭ３０、クロック制御部１１０に供給する。
【００３０】
ＥＸＴ要求は、命令実行部４から与えられる要求である。ロード要求、ストア要求、プリフェッチ要求などのメモリアクセス要求が含まれる。
【００３１】
ＢＩＳ要求は、Ｌ２キャッシュ４００から与えられる、Ｌ１キャッシュ２０のラインを消す要求である。ＢＩＳ要求は、データＲＡＭ１２０にエラーが検出された場合、エラーに係るラインを消す場合に要求される。
【００３２】
ＭＩ要求は、キャッシュコントローラ２００から与えられる、データＲＡＭにＬ２キャッシュ４００からロードしたデータを書き込む要求である。ＭＩ要求は、ＢＩＳ要求がなされた後に、対象となるラインに対して行われる。
【００３３】
ＩＮＴ要求は、ＥＸＴ要求が、パイプライン１００を停止した後で、停止前のデータを用いて、所定の処理を実行するためにパイプライン１００から与えられる要求である。
【００３４】
図４は、優先順位の真理値表の一例を示す図である。真理値表１０００内の「０」は、要求が、要求受付中状態（Ｓ１０１）にあることを示す。真理値表１０００内の「１」は、要求が、要求投入待ち状態にあることを示す。真理値表１０００内の「＊」は、は、胴体要求がどのような状態にあっても優先順位決定に関係が無いドントケア（Ｄｏｎ’ｔ  ｃａｒｅ）であることを示す。
【００３５】
図４に示す列Ｒ１０１は、ＭＩ要求が要求投入待ち状態（Ｓ１０３）にあれば、他の要求に関係なく、ＭＩ要求が次ステージに投入されることを示す。
【００３６】
図４に示す行Ｒ１０２は、ＢＩＳ要求が要求投入待ち状態（Ｓ１０３）にあり、且つ、ＭＩ要求が要求受付中状態（Ｓ１０１）にある場合、ＢＩＳ要求が次ステージに投入されることを示す。
【００３７】
図４に示す行Ｒ１０３は、ＩＮＴ要求が要求投入待ち状態（Ｓ１０３）にあり、且つ、ＭＩ要求及びＢＩＳ要求が要求受付中状態（Ｓ１０１）にある場合、ＩＮＴ要求が次ステージに投入されることを示す。
【００３８】
図４に示す行Ｒ１０４は、ＭＩ要求、ＢＩＳ要求、及びＩＮＴ要求が要求受付中状態（Ｓ１０１）にある場合、ＥＸＴ要求が次ステージに投入されることを示す。このように、優先回路２５は、ＭＩ要求＞ＭＩＳ要求＞ＩＮＴ要求＞ＥＸＴ要求の優先順位（不等号が示す大きい要求の方の優先順位が高いことを示す）に従って、要求を次ステージに投入する。
【００３９】
図５は、パイプラインのアドレス制御、すなわちアドレス制御パイプラインｓの一例を示す図である。図５には、図２に示したＬ１キャッシュ２０の構成要素が、パイプラインステージ「Ｐ（Ｐｒｉｏｒｉｔｙ）」、「Ｔ（Ｔａｇ）」、「Ｍ（Ｍａｔｃｈ）」、「Ｂ（Ｂｒａｎｃｈ）」、「Ｒ（Ｒｅｓｕｌｔ）」、「Ｒ１」に分割される。クロックサイクルは、パイプラインの各ステージでかかる処理時間のうち最長時間に基づいて設定される。それにより、全ステージが、クロックに同期して、同一サイクルタイムで動作する。
【００４０】
「Ｐ（Ｐｒｉｏｒｉｔｙ）」、「Ｔ（Ｔａｇ）」、「Ｍ（Ｍａｔｃｈ）」、「Ｂ（Ｂｒａｎｃｈ）」、「Ｒ（Ｒｅｇｉｓｔｅｒ）」、及び「Ｒ１」の各ステージは、それぞれステージングラッチであるとともに論理アドレスレジスタである、ＰＬＲ（Ｐｒｉｏｒｉｔｙ  ｓｔａｇｅ  Ｌｏｇｉｃａｌ  Ｒｅｇｉｓｔｅｒ）、ＴＬＲ（Ｔａｇ  ｓｔａｇｅ  Ｌｏｇｉｃａｌ  Ｒｅｇｉｓｔｅｒ）、ＭＬＲ（Ｍａｔｃｈ  ｓｔａｇｅ  Ｌｏｇｉｃａｌ  Ｒｅｇｉｓｔｅｒ）、ＢＬＲ（Ｂｒａｎｃｈ  ｓｔａｇｅ  Ｌｏｇｉｃａｌ  Ｒｅｇｉｓｔｅｒ）、ＲＬＲ（Ｒｅｇｉｓｔｅｒ  ｓｔａｇｅ  Ｌｏｇｉｃａｌ  Ｒｅｉｇｓｔｅｒ）、及びＲ１ＬＲ（Ｒ１  ｓｔａｇｅ  Ｌｏｇｉｃａｌ  Ｒｅｉｇｓｔｅｒ）をそれぞれ有する。これらのステージングラッチである論理アドレスレジスタは、外部から供給されるクロックに同期し、一定期間論理アドレスを保持した後、次ステージのパイプラインアドレスレジスタに論理アドレスを供給する。
【００４１】
ポートレジスタは、ＥＸＴ要求を保持する。ポートレジスタで保持されるＥＸＴ要求は、パイプライン停止後、ＩＮＴ要求として利用される。
【００４２】
ＭＩＬＡＲ（Ｍｏｖｅ  Ｉｎ  Ｌｏｇｉｃａｌ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）は、タグＲＡＭ３０に書き込むデータの論理アドレスを保持しておくレジスタである。ＭＩＡＡＲ（Ｍｏｖｅ  Ｉｎ  Ａｂｓｏｌｕｔｅ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）は、キャッシュミスが生じた場合、タグＲＡＭ３０に書き込むデータの物理アドレスを保持するレジスタである。キャッシュコントローラ２００は、ＭＩＡＡＲに保持された物理アドレスのデータを、Ｌ２要求保持部１９５を介して、Ｌ２キャッシュ４００へ要求するＭＩ（Ｍｏｖｅ  Ｉｎ）要求を送出する。Ｌ２キャッシュ４００から取得したデータは、ＭＩ要求により、タグＲＡＭ３０に書き込まれる。
【００４３】
ＢＡＡＲ（Ｂｒａｎｃｈ  ｃｙｃｌｅ  Ａｂｓｏｌｕｔｅ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）は、ＭＩＡＡＲに入力される物理アドレスを保持するレジスタである。
【００４４】
ＥＲＡＲ（Ｅｒｒｏｒ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）は、メモリアクセスにおいてエラーが発生した場合の仮想アドレスを保持しておくレジスタである。比較回路４０でキャッシュミスが生じた場合、キャッシュコントローラ２００は、Ｌ２キャッシュ４００にエラーが報告する。エラーが報告されると、Ｌ２キャッシュ４００は、エラーが生じたキャッシュラインのエントリを削除するための要求を発行する。この要求は、「Ｌ２オーダ」と呼ばれる。Ｌ１キャッシュ２０は、Ｌ２オーダ保持部１９０を介して、Ｌ２オーダを受け取ると、ＢＩＳ要求によりラインを消去する。制御部１８０は、ラインが消去されたことをＬ２キャッシュ４００に通知する。
【００４５】
Ｔステージは、ＴＬＢ３５及びタグＲＡＭ３０を含む。クロック制御部１１０は、パイプライン１００には含まれないが、Ｐ又はＴステージのサイクルで処理を行う。
【００４６】
Ｍステージは、選択回路１４０を含む。データＲＡＭ１２０は、パイプライン１００には含まれないが、Ｍステージのサイクルで動作する。Ｂステージは、エラーチェック回路１３０、優先回路２５、再送要求生成部１５０を含む。Ｒステージは、データバッファ５に要求を供給する回路を含む。
【００４７】
Ｐステージでは、優先回路２５は、図３に示す真理値表の優先順位に従って、Ｐステージで選択されたＥＸＴ、ＢＩＳ、ＩＮＴ、ＭＩのいずれかの要求が、ＴＬＢ３５及びタグＲＡＭ３０に供給される。
【００４８】
図６は、エラーチェック回路を用いて使用許可信号であるＳＴＶ（ＳＴｏｒｅ  Ｖａｌｉｄ：ストアバリッド）信号を生成した場合のパイプラインによるアドレス制御の一例を示す図である。図６には、図２に示したＬ１キャッシュ２０の構成要素のうち、クロック制御部１１０と、再送要求生成部１５０が示されていない。
【００４９】
制御信号生成部５０が、エラーチェック回路１３０によるエラー検出信号を受け取って、上記のＳＴＶ信号を出力する構成とする場合、制御信号生成部５０は、エラーチェック回路１３０の後段に配置される。制御信号生成部５０は、図１９で後述されるように、パイプライン１００内に配置され、データＲＡＭ１２０の近傍に配置されない。よって、データＲＡＭ１２０と制御信号生成部５０との間の伝送路が長いために、制御信号生成部５０は、Ｍステージではなく、Ｂステージに配置される。さらに、エラーチェック回路１３０は、Ｍステージに配置される。
【００５０】
そのため、エラーチェック回路１３０の前段に配置されるデータＲＡＭ１２０は、図５に示したようにＭステージへの配置ではなく、Ｔステージに配置される。結果として、クロック制御部１１０を優先回路２５と、データＲＡＭ１２０との間に配置することが出来なくなる。
【００５１】
以上のように、演算処理装置１０は、エラーチェック回路１３０の後段に、制御信号生成部５０ではなく、再送要求生成部１５０を設けることで、データＲＡＭ１２０へのクロック制御を行うクロック制御部１１０を設けることが出来る。クロック制御部１１０は、データＲＡＭ１２０が保持するデータに対するアクセスが無いとき、データＲＡＭへクロックを供給しないため、クロック制御部１１０を設けることで、演算処理装置１０は、その消費電力を低減できる。
【００５２】
図７は、図５に示したクロック制御部を除いたパイプラインのアドレス制御の一例を示す図である。図５に示したクロック制御部をＴステージから取り除いたことで、データＲＡＭ１２０は、Ｔステージで動作する。また、エラーチェック回路１３０から検出したエラーは、パイプライン１００の外にある再送要求生成部１５０で受け取り、再送要求を生成することで、再送要求生成部１５０は、Ｍステージに配置することが出来る。そのため、データＲＡＭ１２０の後段にあるエラーチェック回路１３０及び再送要求生成部１５０をＭステージに配置可能になり、ＳＴＶ信号及びＲＥＲＵＮ信号をＢステージで送信することができる。よって、図５及び図６に示すようなＳＴＶ信号又はＲＥＲＵＮ信号送信用のＲステージは不要にすることが出来る。
【００５３】
このように、図６に示すパイプライン制御と異なり、図７に示すパイプライン制御では、より短いサイクルタイムでデータのロード動作が可能になる。すなわち、演算処理装置１０は、図６に示すパイプライン制御においてデータのロード動作がサイクルタイム（動作周波数）向上のボトルネックになっていた場合、図７に示すパイプライン制御に変更することにより、サイクルタイム（動作周波数）向上を図ることが出来る。
【００５４】
図８は、パイプラインにおけるフラグ制御の一例を示す図である。図８に示すパイプライン１００ｂは、フラグ信号制御に係るパイプライン内の回路が示される。パイプライン１００ｂには、ＩＮＶＥＲＴＥＲ１０１、フラグ信号ラッチＴＦＬＡＧ（Ｔａｇ  ＦＬＡＧ）、ＭＦＬＡＧ（Ｍａｔｃｈ  ＦＬＡＧ）、ＢＦＬＡＧ（Ｂｒａｎｃｈ  ＦＬＡＧ）、ＲＦＬＡＧ（Ｒｅｇｉｓｔｅｒ  ＦＬＡＧ）、優先回路１０２を有する。
【００５５】
「Ｐ」、「Ｔ」、「Ｍ」、「Ｂ」、「Ｒ」、及び「Ｒ１」の各ステージは、フラグ信号を保持するステージングラッチである、フラグ信号ラッチＴＦＬＡＧ、ＭＦＬＡＧ、ＢＦＬＡＧ、及びＲＦＬＡＧをそれぞれ有する。フラグ信号とは、パイプラインが要求を処理した結果に基づいて生成される属性情報や識別情報等の状態情報を示す制御信号である。フラグ信号は、図９を用いて後述される。フラグ信号ラッチは、データ入力端子でありフラグ信号が入力されるＤ（Ｄａｔａ）端子と、制御端子でありＷＡＩＴ信号が入力されるＩＨ（ＩｎＨｉｂｉｔ）端子を有する。ＩＨ端子に入力されるＷＡＩＴ信号が信号レベル「ロウ」である場合、フラグ信号ラッチのＤ端子から入力されるフラグ信号が書き込まれ、ＩＨ端子に入力されるＷＡＩＴ信号が信号レベル「ハイ」である場合、フラグ信号ラッチのＤ端子から入力されるフラグ信号の書き込みが禁止される。
【００５６】
なお、以下において、信号レベル「ロウ」を『Ｌ』と、信号レベル「ハイ」を『Ｈ』と呼ぶ。
【００５７】
ＩＨ端子の入力信号は、否定回路であるＩＮＶＥＲＴＥＲ１０１により反転したＷＡＩＴ信号である。ＷＡＩＴ信号は、パイプライン１００の動作を停止させる信号であり、図２に示す制御信号生成部５０で生成される。よって、パイプラインの動作を停止させるＷＡＩＴ信号が『Ｈ』になるとき、フラグ信号ラッチへフラグ信号が書き込まれる。制御信号生成部５０によるＷＡＩＴ信号の生成条件は、図１７を用いて後述される。
【００５８】
優先回路２５が、受け取った要求のいずれかを、パイプライン１００に投入すると、フラグ信号は、クロック信号の入力とともにＴＦＬＡＧ、ＭＦＬＡＧ、ＢＦＬＡＧ、ＲＦＬＡＧの順に移動する。しかし、パイプライン処理の停止信号であるＷＡＩＴ信号が、ＩＮＶＥＲＴＥＲ１０１に供給されると、各フラグ信号ラッチが、フラグ信号を、クロック信号の入力とともに各ステージに対応した保持回路ＴＷ、ＭＷ、ＢＷ、ＲＷに格納する。
【００５９】
一旦パイプライン停止状態になったあと、パイプラインを再開するときには保持回路ＴＷ、ＭＷ、ＢＷ、ＲＷからフラグ信号が出力され、ＩＮＴ要求としてまたパイプラインに投入される。投入は、一番古い要求から投入されるので、ＲＷ、ＢＷ、ＭＷ、ＴＷの順で投入される。
【００６０】
図９は、パイプライン制御に使用されるフラグ信号の一例を示す図である。フラグ信号１１０１は、ＴＦＬＡＧ、ＭＦＬＡＧ、ＢＦＬＡＧ、及びＲＦＬＡＧに保持される信号である。フラグ信号１１０１は、「ＶＡＬＩＤ」信号、「ポートＩＤ」信号、「パイプＩＤ」信号、「命令部ＩＤ」信号、「再送要求指示」信号、「再送要求２回目」信号を含む。
【００６１】
『Ｈ』の「ＶＡＬＩＤ」信号は、パイプラインステージに有効な要求が流れていることを示す。「ポートＩＤ（ポートレジスタ−ＩＤ）」信号は、図５に示すポートレジスタを特定する信号である。図１７で後述するように、パイプラインの動作を停止させるＷＡＩＴ信号が『Ｈ』になると、『Ｈ』の「ＶＡＬＩＤ」信号が、パイプラインを流れる。
【００６２】
「パイプＩＤ（ＰＩＰＥ−ＩＤ）」信号は、要求の種類を示す。例えば、１６進数で「０ｘ３」、「０ｘ５」、「０ｘＤ」、及び「０ｘＦ」を示す「パイプＩＤ」信号は、ＭＩ要求、ＢＩＳ要求、ＩＮＴ要求、及びＥＸＴ要求をそれぞれ示す。「命令ＩＤ（ＩＢＲ−ＩＤ）」信号は、要求を返す先の命令実行部４の番号を示す。「命令ＩＤ」信号は、命令実行部４がＥＸＴ要求をＬ１キャッシュ２０に供給するときに、ＥＸＴ要求に付随される。
【００６３】
再送要求指示であるＲＥＲＵＮ−ＲＥＱ信号は、再送要求であるＲＥＲＵＮ信号を受け取った命令実行部４が、パイプライン１００に供給する信号である。
【００６４】
再送要求２回目指示であるＲＥＲＵＮ−２ｎｄ信号は、後述するフローＩＤであるＷＩＤ信号が７１を示すとき、７１をデコードすることで得られる信号である。「ＷＩＤ＝７１」は、先のフローが再送要求によるものであり、且つ、キャッシュヒット及びエラーの発生なしで、ＷＡＩＴされたフローであることを特定する。別の言い方をすれば、「ＷＩＤ＝７１」は、再送要求２回目指示は、先のフローでデータバッファ５にデータを書き込み済みであり、現在のフローは、ＳＴＶ信号を返すフローであることを示している。よって、パイプライン１００は、ＩＮＴ要求と共に受信したＷＩＤ信号をデコードすることで、ＲＥＲＵＮ−２ｎｄ信号を『Ｈ』にして、フラグ信号の１つとしてＲＥＲＵＮ−２ｎｄ信号をパイプラインの各ステージに流す。
【００６５】
フラグ信号１１０２は、ＴＷ、ＭＷ、及ＢＷに保持されるフラグ信号である。フラグ信号１１０２が含む属性又は識別情報は、上記したＶＡＬＩＤ、ポートＩＤ、パイプＩＤ、及び命令部ＩＤである。フラグ信号１１０３は、ＲＷに保持されるフラグ信号である。フラグ信号１１０３が含む属性又は識別情報は、上記したＶＡＬＩＤ、ポートＩＤ、パイプＩＤ、命令部ＩＤ、及びＷＩＤである。
【００６６】
ＷＩＤは、パイプラインが停止した理由を特定し、以下の種類がある。
「ＷＩＤ＝１０」は、キャッシュミスで、パイプラインが中断したことを示す。パイプライン１００は、Ｌ２キャッシュ４００からＬ１キャッシュ２０にデータがロードされるまで待つ。「ＷＩＤ＝６０」は、ＴＬＢミスで、パイプラインが中断したことを示す。「ＷＩＤ＝７０」は、キャッシュのエラーで、パイプラインが中断したことを示す。「ＷＩＤ＝７１」は、再送要求を受けた最初のフローが、キャッシュヒット及びエラーなしで終了したことを示す。
【００６７】
図１０は、保持回路ＲＷ、ＢＷ、ＭＷ、ＴＷに保持されるフラグ信号の選択の優先順位を規定する真理値表である。優先回路１０２は、図１０に示す真理値表１２００に従って、フラグ信号アドレスに保持されるフラグ信号を選択する。真理値表１０００内の「＊」は、は優先順位決定に関係が無いドントケア（Ｄｏｎ’ｔ  ｃａｒｅ）であることを示す。真理値表１２００内の「０」は、フラグ信号が保持回路に保持されることを示す。真理値表１２００内の「１」は、フラグ信号が保持回路に保持されないことを示す。
【００６８】
ＲＷに保持されるフラグ信号は、行Ｌ１２０１に示すように、常に優先回路１０２により選択される。ＢＷに保持されるフラグ信号は、行Ｌ１２０２に示すように、ＲＷにフラグ信号が無い場合、優先回路１０２により選択される。ＭＷに保持されるフラグ信号は、行Ｌ１２０３に示すように、ＢＷ及びＲＷにフラグ信号が無い場合、優先回路１０２により選択される。ＴＷに保持されるフラグ信号は、行Ｌ１２０３に示すように、ＭＷ、ＢＷ及びＲＷにフラグ信号が無い場合、優先回路１０２により選択される。
【００６９】
図１１は、ＴＬＢの一例を示す図である。ＴＬＢ３５は、Ｍ（Ｍは、整数）個のエントリがあり、各エントリには、エントリが有効か否かを示す有効ビット（Ｖａｌｉｄ）、仮想アドレス（ＶＡ）、絶対アドレス（ＡＡ）を含む。ＴＬＢ３５は、比較部３６でアクセスに使われる仮想アドレスと格納されている仮想アドレスのマッチをとって一致したエントリを選択するエントリ選択信号を出力する。選択部３７は、エントリ選択信号によって選択されたエントリに保持される絶対アドレスを出力する。出力された絶対アドレスは、選択回路１４０に供給される。
【００７０】
実際にタグマッチに使う仮想アドレスは、ページサイズに応じて所定の下位部分がタグマッチには使用されないこととなる。例えば、８ＫＢページサイズでは、タグマッチに使う仮想アドレスは、６４ビットの仮想アドレスのうち５０ビット＜６３：１４＞である。仮想アドレスがＴＬＢ３５上にある場合、ＴＬＢ３５は、ＴＬＢヒット信号を、制御信号生成部５０、及び再送要求生成部１５０に供給する。
【００７１】
図１２は、タグＲＡＭの一例を示す図である。タグＲＡＭ３０は、Ｎ（Ｎは、整数）個のエントリがあり、各エントリには、エントリが有効か否かを示す有効ビット（Ｖａｌｉｄ）、及び絶対アドレス（ＡＡ）を含む。タグＲＡＭ３０のデコーダ３１は、６４ビットの仮想アドレスの一部であるアクセスアドレス（例えば、＜１３：７＞）をデコードして、エントリを選択する。タグＲＡＭ３０は、選択されたエントリから絶対アドレスを出力する。タグＲＡＭが、複数のウェイを有し、１つのインデックスに対して各ウェイのエントリが選択されるセットアソシアティブ型キャッシュメモリの場合、絶対アドレスは、ウェイの数だけ出力される。出力した絶対アドレスは、選択回路１４０に出力される。
【００７２】
図１３は、データＲＡＭの一例を示す図である。データＲＡＭ１２０は、タグＲＡＭと同じＮ（Ｎは、正の整数）個のエントリがあり、各エントリには、データ、及びデータのパリティビットを含む。データＲＡＭ１２０のデコーダ４１は、タグＲＡＭ３０に供給されるアクセスアドレスと同一のアクセスアドレスをデコードして、エントリを選択する。データＲＡＭ１２０は、選択されたエントリからデータを出力する。出力されたデータは、エラーチェック回路１３０及び選択回路１４０に供給される。
【００７３】
データＲＡＭ１２０は、１ラインのデータ幅を確保するために１個のＲＡＭで足りないときは、１ウェイを構成するのに複数のＲＡＭを用いることもある。例えば、４個のＲＡＭが１つのウェイを構成し、ウェイの数が２つある場合、ＲＡＭは、４ｘ２＝８個必要になる。
【００７４】
図１４は、クロック制御部の一例を示す図である。クロック制御部１１０は、ＯＲ回路１１１、ラッチ回路１１２、及びクロックバッファ１１３を有する。
【００７５】
ＯＲ回路１１１は、ＲＥＱ−ＶＡＬ（ＲＥＱｕｓｔ―ＶＡＬｉｄ信号、ＭＩ−ＨＬＤ（Ｍｏｖｅ  Ｉｎ−ＨｏＬＤ）信号、ＩＮＴ−ＨＬＤ（ＩＮＴｅｒｒｕｐｔ−ＨｏＬＤ）信号を受け取り、何れかの信号が『Ｈ』であれば、ラッチ回路１１２を介して後段のクロックバッファ１１３にＥｎａｂｌｅ信号を供給する。何れの信号も『Ｌ』のときは、Ｅｎａｂｌｅ信号は、クロックバッファ１１３に供給されない。
【００７６】
ＲＥＱ−ＶＡＬ信号は、命令実行部４からＥＸＴ要求が供給されたときに『Ｈ』になる信号である。ＭＩ−ＨＬＤ信号は、ＭＩ要求が、図３の要求投入待ち状態（Ｓ１０３）にある状態のときに『Ｈ』になる信号である。ＩＮＴ−ＨＬＤ信号は、ＩＮＴ要求が、図３の要求投入待ち状態（Ｓ１０３）にある状態のときに『Ｈ』になる信号である。
【００７７】
クロックバッファ１１３は、入力されるＥｎａｂｌｅ信号と、クロックとのＡＮＤ回路（論理積回路）の出力が『Ｈ』になると、データＲＡＭ１２０にクロックを印加する。
【００７８】
このように、クロック制御部１１０は、ＲＥＱ−ＶＡＬ信号、ＭＩ−ＨＬＤ信号、ＩＮＴ−ＨＬＤ信号のいずれかが『Ｈ』のときはデータＲＡＭ１２０にクロックが印加され、いずれの信号も『Ｌ』のときはデータＲＡＭ１２０にクロックが印加されない。よって、優先回路２５に、ＥＸＴ要求、ＩＮＴ要求、ＭＩ要求のいずれかが供給された場合、クロック制御部１１０は、データＲＡＭ１２０にクロックを供給し、上記要求がいずれも供給されていない場合、データＲＡＭ１２０にクロックを供給しない。
【００７９】
このように、クロック制御部１１０は、データＲＡＭ１２０が保持するデータに対するアクセスが無いとき、データＲＡＭへクロックを供給しないように制御することで、データＲＡＭの消費電力を低減できる。
【００８０】
図１５は、エラーチェック回路の一例を示す図である。図１５に示すように、エラーチェック回路１３０は、ＥｘＯＲ回路（否定排他的論理和回路）１３１、ＯＲ回路（論理和回路）１３２、及び選択回路１３３を有する。
【００８１】
データＲＡＭ１２０から一度に読み出すデータがＪバイトの場合、否定排他的論理和１３１は、バイト毎にパリティビットを用いて、奇数パリティか否かのパリティチェックを行う。ＥｘＯＲ回路１３１は、パリティエラーが発生した場合、『Ｈ』のデータパリティエラー信号を出力する。
【００８２】
ＯＲ回路１３２は、複数のＥｘＯＲ回路１３１から、受け取った各バイト毎のデータパリティエラー信号の論理和を、選択回路１３３に、データエラーウェイ信号として出力する。ＯＲ回路１３２が受け取ったデータパリティエラー信号の１つでも『Ｈ』であれば、データエラーウェイ信号が『Ｈ』になる。
【００８３】
選択回路１３３は、キャッシュヒットを生じたウェイを特定するタグヒットウェイ信号を受け取り、タグヒットウェイ信号により特定されるデータエラーウェイ信号を選択する。選択されたデータエラーウェイ信号が、『Ｈ』の場合、データＲＡＭ１２０から読み出されたデータにエラーであることを示す。
【００８４】
図１６は、再送要求生成部の一例を示す図である。再送要求生成部１５０の一例は、ＡＮＤ回路１５０ａである。ＡＮＤ回路１５０ａは、ＶＡＬＩＤ、ＥＸＴ要求又はＩＮＴ要求、再送要求指示（ＲＥＲＵＮ−ＲＥＱ）、タグヒット（ＴＡＧ−ＨＩＴ）、ＴＬＢヒット（ＴＬＢ−ＨＩＴ）、及びエラー（ＥＲＲＯＲ）を受け取る。ＶＡＬＩＤ、ＥＸＴ要求又はＩＮＴ要求、タグヒット、ＴＬＢヒット、及びエラーが全て『Ｈ』であり、再送要求指示が『Ｌ』の場合、ＡＮＤ回路１５０ａは、『Ｈ』のＲＥＲＵＮ信号を出力する。なお、ＡＮＤ回路１５０ａの入力信号は、全てＢステージで生成され、ＲＥＲＵＮ信号は、ラッチ回路１５１を介してＢステージの次のステージであるＲステージで出力される。
【００８５】
このように、再送要求生成部１５０は、エラーが発生して、且つ、命令実行部４からＲＥＲＵＮ−ＲＥＱ信号が供給されていない場合、ＲＥＲＵＮ信号を生成する。
【００８６】
図１７は、制御信号生成部の一例を示す図である。制御信号生成部５０は、ＡＮＤ回路５１、５２、５３、５４、ＯＲ回路５５を有する。
【００８７】
ＡＮＤ回路５１は、ＲＥＲＵＮ−ＲＥＱ信号、ＲＥＲＵＮ−２ｎｄ信号、ＴＡＧ−ＨＩＴ信号、ＴＬＢ−ＨＩＴ信号を受け取る。ＡＮＤ回路５１は、ＲＥＲＵＮ―ＲＥＱ信号、ＴＡＧ−ＨＩＴ信号、ＴＬＢヒット信号が全て『Ｈ』であり、ＲＥＲＵＮ−２ｎｄ信号が『Ｌ』の場合、『Ｈ』の信号Ｓ５１を出力する。
【００８８】
ＯＲ回路５５は、『Ｈ』の信号Ｓ５１、『Ｌ』のタグヒット（ＴＡＧ−ＨＩＴ）信号、『Ｌ』のＴＬＢ−ＨＩＴ信号の何れかを受け取ると、『Ｈ』の信号Ｓ５５を出力する。
【００８９】
ＡＮＤ回路５２は、『Ｈ』のＶＡＬＩＤ信号、『Ｈ』のＥＸＴ要求又はＩＮＴ要求、及び『Ｌ』のＷＡＩＴ信号を受け取ると、『Ｈ』の信号Ｓ５２を出力する。
【００９０】
ＡＮＤ回路５３は、『Ｈ』の信号Ｓ５５、及び『Ｈ』の信号Ｓ５２を受け取ると、『Ｈ』のＷＡＩＴ信号を出力する。
【００９１】
ＡＮＤ回路５４は、『Ｌ』の信号Ｓ５５、及び『Ｈ』の信号Ｓ５２を受け取ると、『Ｈ』のＳＴＶ信号を出力する。
【００９２】
このように、制御信号生成部５０は、『Ｈ』のＲＥＲＵＮ−ＲＥＱ信号を受け取ると、ＷＡＩＴ信号を出力すると共に、ＳＴＶ信号の出力を抑止するように動作する。制御信号生成部５０は、『Ｌ』のＲＥＲＵＮ−ＲＥＱ信号、又は『Ｈ』のＲＥＲＵＮ−２ｎｄ信号を受け取ると、ＳＴＶ信号を出力し、ＷＡＩＴ信号の出力を抑止して、パイプライン動作を再開するように動作する。
【００９３】
図８に示したように、ＷＡＩＴ信号がパイプライン１００に供給されると、ＩＮＴ信号が出力される。そして、図２に示したように、ＷＡＩＴ信号は、パイプライン１００に投入される。
【００９４】
図１８は、パイプラインのＶＡＬＩＤ信号処理の一例を示す図である。図１８に示されるパイプラインは、ＡＮＤ回路１７１、１７２、１７３を有する。『Ｈ』のＷＡＩＴ信号が、ＡＮＤ回路１７１、１７２、１７３に供給されると、ＡＮＤ回路１７１、１７２、１７３の出力は、『Ｌ』になる。よって、ＷＡＩＴ信号が『Ｈ』のときは、パイプラインにおいてＶＡＬＩＤ信号の伝播を抑止できる。
【００９５】
図１９は、演算処理装置の回路配置の一例を示す図である。図１９に示されるように、データＲＡＭ１２０は、演算処理装置１０において大きな面積を占有するので、データＲＡＭ１２０が配置される領域と、パイプライン１００が配置される領域との配線の距離は必然的に長くなる。そのため、再送要求生成部１５０を、キャッシュコントローラ２００内部ではなく、データＲＡＭ１２０の近傍に配置することで、Ｂステージのサイクル内で再送要求を生成しながらデータＲＡＭ１２０に送信することにより、Ｒステージのサイクル内でデータバッファ５に再送要求の送信を行うことが出来る。
【００９６】
図２０及び図２１は、再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。図２０及び図２１では、ＲＥＲＵＮ−ＲＥＱ信号、ＳＴＶ信号、ＷＩＤ信号、データＲＡＭエラーを表すＳＢＥ信号、データバッファ書き込み表すＩＢＲ−ＣＥ信号、ＲＥＲＵＮ信号の信号レベルの変化が示される。
【００９７】
パイプライン１００のＰステージでは、ＥＸＴ要求を受け取る。
【００９８】
Ｂステージでは、ＳＢＥ信号が『Ｈ』になり、ＩＢＲ−ＣＥ信号も『Ｈ』になる。つまり、エラーデータが、データバッファ５に供給される。
【００９９】
図１７を用いて説明したように、ＲＥＲＵＮ−ＲＥＱ信号が『Ｌ』であると、制御信号生成部５０は、『Ｈ』のＳＴＶ信号を出力する。そのため、Ｒステージでは、ＳＴＶ信号は、『Ｈ』になる。
【０１００】
図１６を用いて説明したように、再送要求生成部１５０の入力信号のうちエラー信号が『Ｈ』になることで、Ｂステージでは、ＲＥＲＵＮ信号が『Ｈ』になる。よって、命令実行部４は、ＳＴＶ信号を受け取っても、同時にＲＥＲＵＮ信号を受け取ることにより、ＳＴＶ信号を破棄し、命令実行部４がＢステージで受け取ったデータを使用するという不都合を回避することが出来る。
【０１０１】
ＲＥＲＵＮ信号が供給されると、命令実行部４によって保持回路ＴＷ、ＭＷ、ＢＷ、ＲＷとパイプラインのＶＡＬＩＤ信号のリセットが指示されることにより、パイプライン１００が保持するリクエストが消滅し 、パイプライン動作が停止する。
【０１０２】
１３〜２１サイクルでは、パイプライン１００は、Ｌ２キャッシュ４００からＢＩＳ要求を受け取り、Ｌ１キャッシュ２０のエラーを生じたラインが無効化される。なお、１３〜２１サイクルでは、当該処理に２回パイプラインを実行する２フローかかるように示される。これは、１フロー目にタグＲＡＭに無効化を必要とするラインがあることのチェックを行い、２フロー目にタグＲＡＭのインバリデート（無効化）を行うためである。
【０１０３】
図２１のタイミングチャートにおけるクロックの２１サイクル目のＰステージでは、命令実行部４は、パイプラインにＥＸＴ要求を供給する。当該ＥＸＴ要求の供給と共に、ＲＥＲＵＮ−ＲＥＱ信号が供給されるため、ＲＥＲＵＮ−ＲＥＱ信号が『Ｈ』になる。図８で説明したように、ＲＥＲＵＮ−ＲＥＱ信号は、各ステージにあるフラグ信号ラッチを伝播するため、２１〜２５サイクルでは、ＲＥＲＵＮ−ＲＥＱ信号は『Ｈ』の状態を維持する。
【０１０４】
図２１のタイミングチャートにおけるクロックの２４サイクル目のＢステージでは、データＲＡＭエラー（ＳＢＥ）が『Ｌ』である。またＷＩＤ信号は、１０となり、キャッシュミスの発生によりパイプラインが中断したことを示す。これは、２フロー目で、対象ラインが無効化されているためである。
【０１０５】
図２１のタイミングチャートにおけるクロックの３０〜３７サイクルの期間では、パイプライン１００は、キャッシュコントローラ２００からＭＩ要求を受け取り、Ｌ２キャッシュ４００からロードしたデータが、対象ラインに書き込まれる。
【０１０６】
図２１のタイミングチャートにおけるクロックの４０サイクル目では、パイプライン１００は、キャッシュコントローラ２００からＩＮＴ要求を受け取る。ＩＮＴ要求により、図８で説明したように、フラグ信号ラッチに保持されていたフラグ信号が再投入される。図９で説明したように、ＲＥＲＵＮ−ＲＥＱ信号は、ＩＮＴ要求に含まれるため、各ステージにあるフラグ信号ラッチを伝播する。よって、図２１のタイミングチャートにおけるクロックの２１〜２５サイクルの期間においては、ＲＥＲＵＮ−ＲＥＱ信号は『Ｈ』の状態を維持する。
【０１０７】
図２１のタイミングチャートにおけるクロックの４３サイクル目では、ＳＢＥ信号が『Ｌ』である。当該クロックの４３サイクル目では、ＩＢＲ−ＣＥ信号は『Ｈ』に遷移し、Ｌ２キャッシュ４００からロードしたデータが、データバッファ５に供給される。よって、先のフローであるＭＩ−２ｎｄフローが再送要求によるものであり、且つ、キャッシュヒット及びエラーなしで、ＷＡＩＴされたフローであるという条件が成立して、４４サイクルでは、ＷＩＤ信号が「７１」になる。
【０１０８】
図２１のタイミングチャートにおけるクロックの４７〜５１サイクルの期間では、ＲＥＲＵＮ−ＲＥＱ信号は、ＩＮＴ要求に含まれ、各ステージにあるフラグ信号ラッチを伝播する。よって、当該４７〜５１サイクルの期間では、ＲＥＲＵＮ−ＲＥＱ信号は『Ｈ』の状態を維持する。
【０１０９】
また、図９で説明したように、保持回路ＲＷには、「ＷＩＤ＝７１」が保持される。そのため、投入されたＩＮＴ要求は「ＷＩＤ＝７１」を含み、「ＷＩＤ＝７１」がデコードされることで、図２１には示されないＲＥＲＵＮ−２ｎｄ信号が『Ｈ』になる。
【０１１０】
ＲＥＲＵＮ−２ｎｄ信号が『Ｈ』になると、図２１のタイミングチャートにおけるクロックの５１サイクル目のＲステージでは、図１７で説明したように、ＷＡＩＴ信号が『Ｌ』になり、ＳＴＶ信号が『Ｈ』になる。よって、パイプライン１００が再開されると共に、命令実行部４は、データバッファ５で保持されるデータを使用することが出来る。
【０１１１】
図２１のタイミングチャートにおけるクロックの４７サイクル目のＰステージでは、『Ｈ』のＲＥＲＵＮ−ＲＥＱ信号を受け取ると、制御信号生成部５０は、ＳＴＶ信号を出力することで、命令実行部４は、図２１のタイミングチャートにおけるクロックの４３サイクル目のＢステージで受け取ったデータを使用することが出来る。
【０１１２】
このように、Ｌ２キャッシュからデータをロードすることで、エラーを回避すると、図２１のタイミングチャートにおけるクロックの５１サイクル目でＳＴＶ信号を生成することにより、命令実行部４は、図２１のタイミングチャートにおけるクロックの４３サイクル目で受け取ったデータを使用することが出来る。以上のように、ＳＴＶ信号と、ＲＥＲＵＮ信号を命令実行部４に供給することで、エラーチェック回路１３０のエラー検出を入力信号として有さなくても、Ｌ１キャッシュ２０は、ＳＴＶ信号の機能を維持することが出来る。
【０１１３】
図２２は、再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。図２２のタイミングチャートにおけるクロックの０〜３８サイクルの期間においては、図２２に示さないが、図２０及び図２１で説明した動作がなされる。
【０１１４】
図２２のタイミングチャートにおけるクロックの５０サイクル目のＢステージでは、ＳＢＥ信号が『Ｈ』であるが、ＩＢＲ−ＣＥ信号が『Ｌ』であるため、データバッファ５にデータは書き込まれない。これは、正常なデータが、既に４３サイクルで命令実行部４に送られているからである。このように、命令実行部４に正常にデータが送られた後に、対象ラインにエラーが生じても、正常なデータは既に送信されているので、ＢＩＳ要求による無効化や、ＭＩ要求によるＬ２キャッシュ４００からのデータロードを行うことなく、処理を続行できる。
【符号の説明】
【０１１５】
２    命令部
３    実行部
４    命令実行部
５    データバッファ
１０    演算処理装置
２０    Ｌ１キャッシュ
２５    優先回路
３０    タグＲＡＭ
３５    ＴＬＢ
４０    比較回路
５０    制御信号生成部
１００    パイプライン
１１０    クロック制御部
１２０    データＲＡＭ
１３０    エラーチェック回路
１４０    選択回路
１５０    再送要求生成部
１８０    制御部
１９０    Ｌ２オーダ保持部
１９５    Ｌ２要求保持部
２００    キャッシュコントローラ
４００    Ｌ２キャッシュ
５００    主記憶装置
【図１】
0005625329.tif 000002
【図２】
0005625329.tif 000003
【図３】
0005625329.tif 000004
【図４】
0005625329.tif 000005
【図５】
0005625329.tif 000006
【図６】
0005625329.tif 000007
【図７】
0005625329.tif 000008
【図８】
0005625329.tif 000009
【図９】
0005625329.tif 000010
【図１０】
0005625329.tif 000011
【図１１】
0005625329.tif 000012
【図１２】
0005625329.tif 000013
【図１３】
0005625329.tif 000014
【図１４】
0005625329.tif 000015
【図１５】
0005625329.tif 000016
【図１６】
0005625329.tif 000017
【図１７】
0005625329.tif 000018
【図１８】
0005625329.tif 000019
【図１９】
0005625329.tif 000020
【図２０】
0005625329.tif 000021
【図２１】
0005625329.tif 000022
【図２２】
0005625329.tif 000023