(57)【要約】【課題】命令データＲＡＭの無駄な動作を抑えて低消費電力を実現する。【解決手段】  上記課題を解決するために、データに対する命令を実行する命令制御部の要求に応じて前記データを出力する記憶装置を制御する制御装置に、前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部が有する複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶されている第１の個別記憶部を特定する個別記憶部特定部と、前記個別記憶部特定部が特定した前記第１の個別記憶部から、前記第１のデータを読み出して出力するデータ出力部と、前記第１の個別記憶部に前記１のデータと連続して記憶されている第２のデータを、前記命令制御部が要求する場合、複数の前記個別記憶部に対してクロックをそれぞれ供給する複数のクロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させるクロック制御部と、を備える。【選択図】図４
2011081564.tif 000002
【特許請求の範囲】
【請求項１】
データに対する命令を実行する命令制御部の要求に応じて前記データを出力する記憶装置を制御する制御装置において、
前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部が有する複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶されている第１の個別記憶部を特定する個別記憶部特定部と、
前記個別記憶部特定部が特定した前記第１の個別記憶部から、前記第１のデータを読み出して出力するデータ出力部と、
前記第１の個別記憶部に前記１のデータと連続して記憶されている第２のデータを、前記命令制御部が要求する場合、複数の前記個別記憶部に対してクロックをそれぞれ供給する複数のクロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させるクロック制御部と、
を備える制御装置。
【請求項２】
前記クロック制御部は、前記個別記憶部特定部が特定した前記第１の個別記憶部が、クロックの供給が停止している状態であることを検出すると、実行中の処理を中止してプログラム命令の実行を正しく完結した時の状態から再開するように要求する、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記クロック制御部は、前記第１のデータと連続して記憶されている前記第２のデータを前記命令制御部が要求する間は、前記クロック供給部に対して、前記個別記憶部特定部が特定した前記第１の個別記憶部への前記クロックの供給を抑止させる、
ことを特徴とする請求項１に記載の制御装置。
【請求項４】
前記クロック制御部は、前記第１のデータと連続して記憶されている前記第２のデータ以外のデータを前記命令制御部が要求すると、前記クロック供給部に対して、前記記憶部が有する全ての前記個別記憶部に前記クロックを供給させる、
ことを特徴とする請求項１に記載の制御装置。
【請求項５】
前記クロック制御部は、前記命令制御部がプログラムカウンタの示すアドレスに基づいて分岐予測を行なって分岐しないと予測した場合に、前記第１のデータと連続して記憶されている前記第２のデータを前記命令制御部が要求したと判断する、
ことを特徴とする請求項１に記載の制御装置。
【請求項６】
データに対する命令を実行する命令制御部の要求に応じて前記データを出力する記憶装置において、
前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部と、
前記記憶部が備える複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶されている第１の個別記憶部を特定する個別記憶部特定部と、
前記個別記憶部特定部が特定した前記第１の個別記憶部から、前記第１のデータを読み出して出力するデータ出力部と、
前記第１の個別記憶部に前記１のデータと連続して記憶されている第２のデータを、前記命令制御部が要求する場合、複数の前記個別記憶部に対してクロックをそれぞれ供給する複数のクロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させるクロック制御部と、
を備える記憶装置。
【請求項７】
データに対する命令を実行する命令制御部の要求に応じて前記データを出力する記憶装置を制御する制御方法において、
前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部が有する複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶されている第１の個別記憶部を特定する工程と、
前記特定した前記第１の個別記憶部から、前記第１のデータを読み出して出力する工程と、
前記第１の個別記憶部に前記１のデータと連続して記憶されている第２のデータを、前記命令制御部が要求する場合、複数の前記個別記憶部に対してクロックをそれぞれ供給する複数のクロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させる工程と、
を行なう制御方法。
【請求項８】
データに対する命令を実行する命令制御部と、
前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部と、
複数の前記個別記憶部に対して、クロックをそれぞれ供給する複数のクロック供給部と、
前記記憶部が備える複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶される第１の個別記憶部を特定する個別記憶部特定部と、
前記個別記憶部特定部が特定する前記第１の個別記憶部から、前記第１のデータを前記命令制御部に出力するデータ出力部と、
前記第１の個別記憶部に前記１のデータと連続して記憶される第２のデータを、前記命令制御部が要求する場合、複数の前記クロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させるクロック制御部と、
を有することを特徴とする演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ制御装置、キャッシュメモリ装置、演算処理装置およびキャッシュメモリ制御方法に関する。
【背景技術】
【０００２】
様々な分野で用途に応じた機能などを提供するコンピュータが普及している。一般に、コンピュータネットワークにおいて、クライアントからの要求に応じて必要なサービスを提供するコンピュータをサーバという。
【０００３】
図１は、サーバに搭載される演算処理装置としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）内部に実装されるＬ１キャッシュメモリ（１次キャッシュメモリ）に用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の制御を説明する図である。
【０００４】
ＣＰＵを制御してプログラム命令を実行させる命令制御部１１０から命令フェッチ要求を受けると、Ｌ１キャッシュ部１００内のＴＡＧ検索部１０１は、ＴＡＧテーブルを参照し、命令アドレスに含まれるインデックスに対応する物理アドレスを検索する。このインデックスに対応する物理アドレスをＴＡＧという。同時に、アドレス変換部１０２は、ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ：アドレス変換バッファ）を参照し、仮想アドレス（命令アドレス）を物理アドレスに変換する。
【０００５】
すると、ＴＡＧマッチ処理部１０３は、ＴＡＧ検索部１０１が出力するＴＡＧと、アドレス変換部１０２が出力する物理アドレスと、を比較する。
両アドレスが一致した場合はＴＡＧマッチと判定し、ＷＡＹセレクタ１０７は、ＴＡＧマッチしたデータＲＡＭを選択する。Ｌ１キャッシュ部１００は、選択したデータを命令制御部１１０に出力する。
【０００６】
ＴＡＧマッチしない場合、Ｌ２キャッシュ部に対してデータを要求する処理を開始する。処理完了後、ＴＡＧ検索部１０１が再度ＴＡＧテーブルを検索する。そして、ＴＡＧマッチ処理部１０３は、ＴＡＧ検索部１０１が出力するＴＡＧと、アドレス変換部１０２が出力する物理アドレスと、を比較する。
【０００７】
このようにしてＴＡＧの検索と同時に複数のデータＲＡＭからデータが読み出される。この間、クロック供給部１０４は、データＲＡＭ１０５および１０６にクロックを供給し続ける。
【０００８】
上記技術に関連して、動作速度に余裕がある場合には、ヒットしたデータメモリのみを活性化して無駄なミスウェイへのアクセスによる電力消費を減らすキャッシュメモリが知られている。
【０００９】
また、ＣＰＵによるアクセス時に第１信号が連続的にアクセスを行うアドレスであることを示しかつフラグ手段が第１状態であるときはアドレスアレイのメモリ動作を抑止しデータアレイだけを動作させるデータ処理装置が知られている。
【００１０】
また、セカンドキャッシュに対するアクセス要求を受付け、そのアクセス要求の種類およびアドレスの情報に基づいて、複数のブロックから構成されるＲＡＭのうち動作不能なＲＡＭを判断することが知られている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平０９−２２３０６８号公報
【特許文献２】特開平１１−１８４７５２号公報
【特許文献３】特開２００６−０４００８９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
図１に示したＬ１キャッシュ部１００は、命令制御部１１０からの要求に応じて、ＴＡＧマッチしたデータＲＡＭと同一ライン、例えば３２バイトを低位のアドレスから連続して読み出す場合がある。このような場合、ＴＡＧマッチしなかったデータＲＡＭのデータは使用されない。しかし、全てのデータＲＡＭには常時クロックが印加されているため、動作による無駄な電力を消費する。
【００１３】
本キャッシュメモリ制御装置は、命令データＲＡＭに対するクロックの供給を抑止して無駄な低消費電力を実現することを目的とする。
【課題を解決するための手段】
【００１４】
本キャッシュメモリ制御装置の１つの観点によれば、データに対する命令を実行する命令制御部の要求に応じて前記データを出力する記憶装置を制御する制御装置において、以下の構成を備える。
【００１５】
個別記憶部特定部は、前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部が有する複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶されている第１の個別記憶部を特定する。
【００１６】
データ出力部は、前記個別記憶部特定部が特定した前記第１の個別記憶部から、前記第１のデータを読み出して出力する。
複数のクロック供給部は、複数の前記個別記憶部に対してクロックをそれぞれ供給する。
【００１７】
クロック制御部は、前記第１の個別記憶部に前記１のデータと連続して記憶されている第２のデータを前記命令制御部が要求する場合、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させる。
【発明の効果】
【００１８】
本キャッシュメモリ制御装置によると、命令データＲＡＭの無駄な動作を抑えて低消費電力を実現することができる。
【図面の簡単な説明】
【００１９】
【図１】サーバに搭載されるＣＰＵ内部に実装されるＬ１キャッシュメモリに用いられるデータＲＡＭの制御を説明する図である。
【図２】第１の実施例に係る制御装置をデータ記憶装置に使用する演算処理装置の主要な構成の例を示す図である。
【図３】第２の実施例に係るキャッシュメモリ制御装置を使用する演算処理装置の主要な構成の例を示す図である。
【図４】第２の実施例に係る演算処理装置の主要部の具体的な構成例を示す図である。
【図５】第２の実施例に係るＴＡＧ（ＷＡＹ０）マッチ検出部の具体的な構成例を示す図である。
【図６】第２の実施例に係るＲＡＭクロック制御部とデータＲＡＭの具体的な構成例を示す図である。
【図７】第２の実施例に係る命令制御部の動作の概要を説明する図である。
【図８】第２の実施例に係る命令制御部におけるシーケンシャルアクセスの判別処理を示すフローチャートである。
【図９】第２の実施例に係るＴＡＧマッチ処理部におけるデータＲＡＭのクロック制御を示すフローチャートである。
【図１０】第２の実施例に係る命令フェッチのパイプライン処理を説明する図である。
【図１１】第２の実施例に係る命令フェッチのパイプライン処理を具体的に説明する図である。
【図１２】第２の実施例に係る命令フェッチのパイプライン処理を具体的に説明する図である。
【図１３】第２の実施例に係る演算処理装置の変形例を示す図である。
【図１４】第２の実施例に係る演算処理装置の変形例におけるＲＡＭクロック制御部の主要部の具体的な構成例を示す図である。
【発明を実施するための形態】
【００２０】
以下、本実施形態について、図２〜図１３に基づいて説明する。
【００２１】
［第１の実施例］
図２は、本実施例に係る制御装置をデータ記憶装置２３０に使用する演算処理装置２００の主要な構成の例を示す図である。
図２に示す演算処理装置２００は、命令制御部２１０と、演算部２２０と、データ記憶部２３０と、を備える。
【００２２】
命令制御部２１０は、記憶部２３０その他演算処理装置２００と接続する図示しない不揮発性メモリなどから所定のプログラム命令を読み出し、必要に応じて演算部２２０に演算を実行させるなどしてプログラム命令を実行する。
【００２３】
演算部２２０は、命令制御部２１０が要求する演算を実行する。
データ記憶部２３０は、個別記憶部特定部２３１と、クロック制御部２３２と、記憶部２３３と、データ出力部２３４と、を備える。本実施例に係る制御装置は、例えば、個別記憶部特定部２３１と、クロック制御部２３２と、データ出力部２３４と、を含む構成により実現することができる。
【００２４】
個別記憶部特定部２３１は、記憶部２３３が有する後述の個別記憶部２３３ｂ−０、２３３ｂ−１、・・・および２３３ｂ−ｎのうち、命令制御部２１０が要求するデータが記憶されている個別記憶部を特定する。ｎは１以上の自然数である。個別記憶部２３３ｂ−０、２３３ｂ−１、・・・および２３３ｂ−ｎのうち任意の個別記憶部を単に「個別記憶部」という。
【００２５】
クロック制御部２３２は、第１のデータに続いて第１のデータが記憶されている個別記憶部に第１のデータと連続して記憶されている第２のデータが命令制御部２１０から要求されたことを検出する。
【００２６】
以下、第１のデータに続いて第１のデータが記憶されている個別記憶部に第１のデータと連続して記憶されている第２のデータが命令制御部２１０から要求されることを、「シーケンシャルアクセス」という。このとき、第１のデータが記憶されている個別記憶部を「第１の個別記憶部」という。
【００２７】
また、第２のデータに続いて第１の個別記憶部に第２のデータと連続して記憶されている第３のデータが要求される場合も、「シーケンシャルアクセス」という。
【００２８】
クロック制御部２３２は、シーケンシャルアクセスを検出すると、第１の個別記憶部以外の個別記憶部へのクロックの供給を停止するように、クロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎに指示する。クロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎのうち任意のクロック供給部を単に「クロック供給部」という。  なお、命令制御部２１０からのデータ要求がシーケンシャルアクセスか否かは、命令制御部２１０が判別した結果の通知からクロック制御部２３２が検出するようにしてもよいし、クロック制御部２３２自身が判別して検出するようにしてもよい。
【００２９】
記憶部２３３は、個別記憶部にクロックを供給するクロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎと、データを記憶する個別記憶部２３３ｂ−０、２３３ｂ−１、・・・および２３３ｂ−ｎと、を備える。
【００３０】
クロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎはそれぞれ、クロック制御部２３２からの指示に応じて、個別記憶部２３３ｂ−０、２３３ｂ−１、・・・および２３３ｂ−ｎにクロックを供給する。
【００３１】
なお、クロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎは、各自が生成したクロックを個別記憶部に供給してもよいし、図示しないクロック生成回路から供給されるクロックを個別記憶部に供給してもよい。
【００３２】
個別記憶部２３３ｂ−０、２３３ｂ−１、・・・および２３３ｂ−ｎは、例えば、データを記憶する不揮発メモリである。個別記憶部２３３ｂ−０、２３３ｂ−１、・・・および２３３ｂ−ｎそれぞれが１つのＷＡＹを構成することでｎＷＡＹ構成のメモリを実現できる。個別記憶部２３３ｂ−０、２３３ｂ−１、・・・および２３３ｂ−ｎは、クロック供給部から供給されるクロックに応じて動作し指定のデータをデータ出力部２３４に出力する。
【００３３】
データ出力部２３４は、個別記憶部特定部２３１が特定した個別記憶部が出力するデータを取得して命令制御部２１０に出力する。
以上の構成において、クロック制御部２３２は、シーケンシャルアクセスであることを検出する。すると、クロック制御部２３２は、クロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎに対して、個別記憶部特定部２３１が特定した第１の個別記憶部以外の個別記憶部へのクロックの供給を停止するように指示する。
【００３４】
その結果、シーケンシャルアクセスが行なわれている間、第１の個別記憶部以外の全ての個別記憶部へのクロックの供給が停止し、記憶部２３３の無駄な動作を抑えることができるので、データ記憶部２３０の消費電力を低く抑えることが可能となる。
【００３５】
なお、図２では、クロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎが、記憶部２３３内部に備わる例を示した。しかし、クロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎが記憶部２３３内部に備わる場合に限定する趣旨ではない。例えば、クロック供給部２３３ａ−０、２３３ａ−１、・・・および２３３ａ−ｎは、記憶部２３３の外部に備わっていてもよい。
【００３６】
［第２の実施例］
図３は、本実施例に係るキャッシュメモリ制御装置をＬ１キャッシュ部３３０に使用する演算処理装置３００の主要な構成の例を示す図である。
図３に示す演算処理装置３００は、命令制御部３１０と、演算部３２０と、Ｌ１キャッシュ部３３０と、Ｌ２キャッシュ部３４０と、を備える。本実施例に係るキャッシュメモリ制御装置は、ＴＡＧ検索部３３１と、アドレス変換部３３２と、ＴＡＧマッチ処理部３３３と、を含む構成により実現することができる。
【００３７】
命令制御部３１０は、Ｌ１キャッシュ部３３０、Ｌ２キャッシュ部３４０、その他演算処理装置３００と接続する図示しない不揮発性メモリなどから所定のプログラム命令を読み出し、必要に応じて演算部３２０に演算を実行させるなどしてプログラム命令を実行する。  命令制御部３１０は、Ｌ１キャッシュ部３３０に対するアクセス、例えば、命令フェッチ要求がシーケンシャルアクセスか否かを判別する。そして、命令制御部３１０は、Ｌ１キャッシュ部３３０に対して判別結果、例えば、命令フェッチ要求がシーケンシャルアクセスか否かを通知する。
【００３８】
演算部３２０は、命令制御部３１０からの指示に応じて、演算処理を実行する。
Ｌ１キャッシュ部３３０は、例えば、演算処理装置３００と接続する図示しない不揮発メモリやＬ２キャッシュ部３４０などから読み出したデータの一部または全部を一時的に記憶する。そして、Ｌ１キャッシュ部３３０は、命令制御部３１０などからの要求に応じて、内部に保持するデータを出力する。
【００３９】
ここで、Ｌ１キャッシュ部３３０は、ＴＡＧ検索部３３１と、アドレス変換部３３２と、ＴＡＧマッチ処理部３３３と、データＲＡＭ３３４と、を備える。
ＴＡＧ検索部３３１は、命令制御部３１０からの命令フェッチ要求に応じて、その命令フェッチ要求とともに受ける命令アドレスに含まれるインデックスと一致するＴＡＧをインデックステーブルから検索する。この検索処理は、データＲＡＭ３３４に含まれるＷＡＹ毎に行なわれる。
【００４０】
ここで、ＴＡＧとは、データＲＡＭに格納されているデータを管理する情報である。本実施例では、データＲＡＭに記憶されているデータの物理アドレスを含む情報をＴＡＧという。そして、インデックステーブルとは、データＲＡＭに格納されているデータのＴＡＧをインデックス毎に記憶する情報である。このインデックステーブルは、データＲＡＭ３３４に含まれるＷＡＹ毎に用意される。
【００４１】
アドレス変換部３３２は、命令制御部３１０からの命令フェッチ要求を受けると、ＴＬＢ等を参照する。そして、アドレス変換部３３２は、命令フェッチ要求とともに受ける仮想アドレス（命令アドレス）を物理アドレスに変換する。
【００４２】
ＴＡＧマッチ処理部３３３は、ＴＡＧ検索部３３１が出力するＴＡＧと、アドレス変換部３３２が出力する物理アドレスと、を比較する。そして、ＴＡＧマッチ処理部３３３は、ＴＡＧ検索部３３１が出力するＴＡＧと、アドレス変換部３３２が出力する物理アドレスと、が一致する場合を「ＴＡＧマッチ」と判断し、ＴＡＧマッチしたＷＡＹからデータを読み出す。
【００４３】
また、ＴＡＧマッチ処理部３３３は、命令制御部３１０からシーケンシャルアクセスである旨の通知を受けると、ＴＡＧマッチしたＷＡＹ以外のＷＡＹへのクロックの印加を停止するように、データＲＡＭ３３４に指示する。
【００４４】
データＲＡＭ３３４は、複数のＷＡＹを含むメモリである。データＲＡＭ３３４は、ＷＡＹ毎に、ＷＡＹ内部へクロックを供給し、または、ＷＡＹ内部へのクロックの供給を停止することが可能である。
【００４５】
Ｌ２キャッシュ部３４０は、例えば、Ｌ１キャッシュ部３３０からキャッシュアウトされたデータの一部または全部を一時的に記憶する。
【００４６】
図４は、本実施例に係るＬ１キャッシュ部３３０の具体的な構成例を示す図である。なお、図４では、説明を簡単にするために、データＲＡＭ３３４が２ＷＡＹ構成を有する場合について説明するが、Ｌ１キャッシュ部３３０を図４に示す構成に限定する趣旨ではない。
【００４７】
図４に示すＬ１キャッシュ部４００は、ＴＡＧ検索部４０１と、アドレス変換部４０２と、ＴＡＧマッチ処理部４０３と、データＲＡＭ４０４と、を備える。ＴＡＧ検索部４０１、アドレス変換部４０２、ＴＡＧマッチ処理部４０３およびデータＲＡＭ４０４は、図３に示したＴＡＧ検索部３３１、アドレス変換部３３２、ＴＡＧマッチ処理部３３３およびデータＲＡＭ３３４にそれぞれ対応する。
【００４８】
ＴＡＧ検索部４０１は、ＴＡＧ（ＷＡＹ０）検索部４１０−０およびＴＡＧ（ＷＡＹ１）検索部４１０−１を備える。ＴＡＧマッチ処理部４０３は、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０およびＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１と、ＷＡＹセレクト部４３１と、プライオリティ制御部４３２と、を備える。プライオリティ制御部４３２は、ＲＡＭクロック制御部４３２ａおよびＴＡＧマッチ情報記憶部４３２ｂを備える。データＲＡＭ４０４は、ＷＡＹ０のデータＲＡＭ（ＷＡＹ０）４４０−０およびクロックバッファ４４１−０と、ＷＡＹ１のデータＲＡＭ（ＷＡＹ１）４４０−１およびクロックバッファ４４１−１と、を備える。
【００４９】
以上の構成において、命令制御部３１０は、プログラム命令の実行を開始すると、必要に応じてＬ１キャッシュ部４００内のＲＡＭクロック制御部４３２ａに対して命令フェッチ要求を行なう。命令フェッチ要求を行なう場合、命令制御部３１０は、ＲＡＭクロック制御部４３２ａに命令フェッチ要求信号「１」を出力する。また、命令フェッチ要求を行なわない場合、命令制御部３１０は、ＲＡＭクロック制御部４３２ａに命令フェッチ要求信号「０」を出力する。
【００５０】
同時に、命令制御部３１０は、その命令フェッチ要求とともに、所望の命令が格納されている命令アドレス４６０をＬ１キャッシュ部４００に通知する。命令アドレス４６０は、アドレス変換部４０２に出力される。命令アドレス４６０に含まれるインデックスは、ＴＡＧ（ＷＡＹ０）検索部４１０−０、ＴＡＧ（ＷＡＹ１）検索部４１０−１、データＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１に出力される。
【００５１】
また、命令制御部３１０は、Ｌ１キャッシュ部４００に出力した命令フェッチ要求がシーケンシャルアクセスか否かを判別し、その判別結果をＬ１キャッシュ部４００内のＲＡＭクロック制御部４３２ａに通知する。この通知を「シーケンシャルアクセス通知」という。命令フェッチ要求がシーケンシャルアクセスであると判断すると、命令制御部３１０は、シーケンシャルアクセス通知信号「１」をＲＡＭクロック制御部４３２ａに出力する。また、命令フェッチ要求がシーケンシャルアクセスでないと判断すると、命令制御部３１０は、シーケンシャルアクセス通知信号「０」をＲＡＭクロック制御部４３２ａに出力する。
【００５２】
ここで、例えば、命令フェッチ要求により、第１のプログラム命令に続いて第２のプログラム命令、第３のプログラム命令、・・・が要求される場合を考える。命令制御部３１０は、第１のプログラム命令が記憶されている第１のＷＡＹに、第１のプログラム命令が記憶されている命令アドレスと連続するアドレスに記憶されている第２のプログラム命令が要求された場合を、「シーケンシャルアクセス」と判断する。同様に、命令制御部３１０は、第１のＷＡＹに、第２のプログラム命令が記憶されている命令アドレスと連続するアドレスに記憶されている第３のプログラム命令が要求された場合も、「シーケンシャルアクセス」と判断する。
【００５３】
ただし、本実施例に係るシーケンシャルアクセスは、同一のキャッシュラインに対するアクセスに限定する。
【００５４】
ＴＡＧ（ＷＡＹ０）検索部４１０−０は、命令制御部３１０の命令フェッチ要求に応じ、その命令フェッチ要求とともに受ける命令アドレス４６０に含むインデックスと一致するＴＡＧをデータＲＡＭ（ＷＡＹ０）４４０−０のインデックステーブルから検索する。そして、ＴＡＧ（ＷＡＹ０）検索部４１０−０は、検索結果をＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０に出力する。このときＴＡＧ（ＷＡＹ０）検索部４１０−０が出力するＴＡＧを「ＴＡＧ（ＷＡＹ０）」という。
【００５５】
ＴＡＧ（ＷＡＹ１）検索部４１０−１は、命令制御部３１０からの命令フェッチ要求に応じ、その命令フェッチ要求とともに受ける命令アドレス４６０に含むインデックスと一致するＴＡＧをデータＲＡＭ（ＷＡＹ１）４４０−１のインデックステーブルから検索する。そして、ＴＡＧ（ＷＡＹ１）検索部４１０−１は、検索結果をＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１に出力する。このときＴＡＧ（ＷＡＹ１）検索部４１０−１が出力するＴＡＧを「ＴＡＧ（ＷＡＹ１）」という。
【００５６】
アドレス変換部４０２は、命令制御部３１０からの命令フェッチ要求を受けると、ＴＬＢ等を参照し、命令アドレス４６０を物理アドレスに変換する。そして、アドレス変換部４０２は、物理アドレスをＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０とＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１とに出力する。
【００５７】
ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０は、ＴＡＧ（ＷＡＹ０）検索部４１０−０が出力するＴＡＧと、アドレス変換部４０２が出力する物理アドレスと、を比較する。そして、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０は、比較結果を、ＷＡＹセレクト部４３１とＲＡＭクロック制御部４３２ａとに出力する。
【００５８】
同様に、ＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１は、ＴＡＧ（ＷＡＹ１）検索部４１０−１が出力するＴＡＧと、アドレス変換部４０２が出力する物理アドレスと、を比較する。そして、ＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１は、比較結果を、ＷＡＹセレクト部４３１とＲＡＭクロック制御部４３２ａとに出力する。
【００５９】
以下、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０またはＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１の出力を「ＴＡＧマッチ」という。特に、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０が出力するＴＡＧマッチを「ＴＡＧ（ＷＡＹ０）マッチ」といい、ＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１が出力するＴＡＧマッチを「ＴＡＧ（ＷＡＹ１）マッチ」という。
【００６０】
ＴＡＧ（ＷＡＹ０）検索部４１０−０が出力するＴＡＧとアドレス変換部４０２が出力する物理アドレスとが一致する場合、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０は、ＲＡＭクロック制御部４３２ａにＴＡＧ（ＷＡＹ０）マッチ信号「１」を出力する。ＴＡＧ（ＷＡＹ０）検索部４１０−０が出力するＴＡＧとアドレス変換部４０２が出力する物理アドレスとが一致しない場合、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０は、ＲＡＭクロック制御部４３２ａにＴＡＧ（ＷＡＹ０）マッチ信号「０」を出力する。
【００６１】
同様に、ＴＡＧ（ＷＡＹ１）検索部４１０−１が出力するＴＡＧとアドレス変換部４０２が出力する物理アドレスとが一致する場合、ＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１は、ＲＡＭクロック制御部４３２ａにＴＡＧ（ＷＡＹ１）マッチ信号「１」を出力する。ＴＡＧ（ＷＡＹ１）検索部４１０−１が出力するＴＡＧとアドレス変換部４０２が出力する物理アドレスとが一致しない場合、ＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１は、ＲＡＭクロック制御部４３２ａにＴＡＧ（ＷＡＹ１）マッチ信号「０」を出力する。  ＷＡＹセレクト部４３１は、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０およびＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１が出力するＴＡＧマッチ信号にしたがって、データＲＡＭ（ＷＡＹ０）４４０−０またはデータＲＡＭ（ＷＡＹ１）４４０−１を選択する。そして、ＷＡＹセレクト部４３１は、選択したデータＲＡＭから出力されるデータを命令制御部３１０などに出力する。
【００６２】
プライオリティ制御部４３２は、ＲＡＭクロック制御部４３２ａから後述のアボート要求を受けると、アボート処理を実行する。アボート処理とは、例えば、実行中の処理を中止してプログラム命令の実行を正しく完結した時の状態に演算処理装置３００を復元し、その復元された状態からプログラム命令の実行を再開する処理である。
【００６３】
プライオリティ制御部４３２は、上記アボート処理の他に、命令制御部３１０からの命令フェッチ要求やＬ１キャッシュ部４００でキャッシュミスした命令フェッチ要求の再投入を行なうなどリクエストの調停を行なう。
【００６４】
ＲＡＭクロック制御部４３２ａは、命令フェッチ要求により要求される命令アドレスが、データＲＡＭ（ＷＡＹ０）４４０−０またはデータＲＡＭ（ＷＡＹ１）４４０−１におけるキャッシュラインの先頭アドレスか否かを判別する。
【００６５】
そして、命令フェッチ要求により要求される命令アドレスがキャッシュラインの先頭アドレスでないと判断すると、ＲＡＭクロック制御部４３２ａは、キャッシュライン非先頭アドレス信号「１」を生成する。また、命令フェッチ要求により要求される命令アドレスがキャッシュラインの先頭アドレスであると判断すると、ＲＡＭクロック制御部４３２ａは、キャッシュライン非先頭アドレス信号「０」を生成する。
【００６６】
そして、ＲＡＭクロック制御部４３２ａは、命令制御部３１０からの命令フェッチ要求信号およびシーケンシャルアクセス通知信号を、命令フェッチのパイプライン毎にＴＡＧマッチ情報記憶部４３２ｂに記憶する。
【００６７】
さらに、ＲＡＭクロック制御部４３２ａは、ＲＡＭクロック制御部４３２ａが生成したキャッシュライン非先頭アドレス信号を、命令フェッチのパイプライン毎にＴＡＧマッチ情報記憶部４３２ｂに記憶する。
【００６８】
さらに、ＲＡＭクロック制御部４３２ａは、ＴＡＧ（ＷＡＹ０）マッチ信号と、ＴＡＧ（ＷＡＹ１）マッチ信号と、を命令フェッチのパイプライン毎にＴＡＧマッチ情報記憶部４３２ｂに記憶する。
【００６９】
下記表１は、ＴＡＧマッチ情報記憶部４３２ｂに記憶されるＴＡＧマッチ情報を示している。
【表１】
2011081564.tif 000003
【００７０】
なお、実行中のパイプラインのうち、基準となるパイプラインを「第１のパイプライン」とすると、第１のパイプラインの次のパイプラインを「第２のパイプライン」、第２のパイプラインの次のパイプラインを「第３のパイプライン」という。
【００７１】
例えば、図１２において、リクエストＡについてのパイプラインを第１のパイプラインとすると、リクエストＢについてのパイプラインが第２のパイプラインである。そして、リクエストＣについてのパイプラインが第３のパイプラインである。
【００７２】
ＲＡＭクロック制御部４３２ａは、ＴＡＧマッチ情報記憶部４３２ｂに記憶したＴＡＧマッチ情報から、現在処理中の命令フェッチにシーケンシャルアクセスの命令フェッチがあるか否かを判別する。シーケンシャルアクセスの命令フェッチがある場合、ＲＡＭクロック制御部４３２ａは、クロックバッファ４４１−０および４４１−１に対してクロックの供給・停止を制御するＲＡＭクロック制御信号を出力する。なお、クロックバッファ４４１−０に対するＲＡＭクロック制御信号を「ＲＡＭ（ＷＡＹ０）クロック制御信号」といい、クロックバッファ４４１−１に対するＲＡＭクロック制御信号を「ＲＡＭ（ＷＡＹ１）クロック制御信号」という。
【００７３】
また、ＲＡＭクロック制御部４３２ａは、データＲＡＭ（ＷＡＹ０）４４０−０に対してシーケンシャルアクセスが行なわれていると判断すると、クロックバッファ４４１−０に対して、ＲＡＭ（ＷＡＹ０）クロック制御信号「１」を出力する。同時に、ＲＡＭクロック制御部４３２ａは、クロックバッファ４４１−１に対して、ＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。
【００７４】
また、ＲＡＭクロック制御部４３２ａは、データＲＡＭ（ＷＡＹ１）４４０−１に対してシーケンシャルアクセスが行なわれていると判断すると、クロックバッファ４４１−０に対して、ＲＡＭ（ＷＡＹ０）クロック制御信号「０」を出力する。同時に、ＲＡＭクロック制御部４３２ａは、クロックバッファ４４１−１に対して、ＲＡＭ（ＷＡＹ１）クロック制御信号「１」を出力する。
【００７５】
なお、ＲＡＭクロック制御部４３２ａには、データＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１のクロック状態を監視する機能を含めることができる。
【００７６】
例えば、データＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１の両ユニットへのクロックの供給が停止していることを検出すると、プライオリティ制御部４３２にエラー通知を行なう機能をＲＡＭクロック制御部４３２ａに含めることができる。このときのエラー通知を「アボート要求」という。  データＲＡＭ４０４は、データＲＡＭ（ＷＡＹ０）４４０−０とデータＲＡＭ（ＷＡＹ１）４４０−１を備える２ＷＡＹ構成のデータＲＡＭである。本実施例では、データＲＡＭ（ＷＡＹ０）４４０−０をＷＡＹ０、データＲＡＭ（ＷＡＹ１）４４０−１をＷＡＹ１とする。
【００７７】
また、データＲＡＭ４０４は、データＲＡＭ（ＷＡＹ０）４４０−０へのクロックの供給・停止を制御するクロックバッファ４４１−０と、データＲＡＭ（ＷＡＹ１）４４０−１へのクロックの供給・停止を制御するクロックバッファ４４１−１と、を備える。なお、本実施例に係るデータＲＡＭ４０４は、クロックバッファ４４１−０とクロックバッファ４４１−１とをデータＲＡＭ４０４内部に備える場合を示したが、この構成に限定する趣旨ではない。クロックバッファ４４１−０とクロックバッファ４４１−１は、データＲＡＭ４０４の外部に配置されていてもよいのは当然である。
【００７８】
クロックバッファ４４１−０およびクロックバッファ４４１−１は、クロック生成回路４５０からクロックを受信する。そして、クロックバッファ４４１−０およびクロックバッファ４４１−１は、ＲＡＭクロック制御部４３２ａからのＲＡＭクロック制御信号に応じて、データＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１にクロックを供給する。
【００７９】
例えば、クロックバッファ４４１−０は、ＲＡＭ（ＷＡＹ０）クロック制御信号が「０」の間、データＲＡＭ（ＷＡＹ０）４４０−０にクロックを供給する。また、クロックバッファ４４１−０は、ＲＡＭ（ＷＡＹ０）クロック制御信号が「１」の間、データＲＡＭ（ＷＡＹ０）４４０−０へのクロックの供給を停止する。クロックバッファ４４１−１もクロックバッファ４４１−０と同様に動作する。
【００８０】
クロック生成回路４５０は、一定周期のクロックを生成する回路である。クロック生成回路４５０は、生成したクロックをクロックバッファ４４１−０および４４１−１に出力する。
【００８１】
図５は、本実施例に係るＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０の具体的な構成例を示す図である。
【００８２】
ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０は、否定排他的論理和回路５０１−１３、５０１−１４、５０１−１５、・・・および５０１−４０と、論理積回路５０２と、を備える。なお、図５では、否定排他的論理和回路を「ＥＸＮＯＲ」、論理積回路を「ＡＮＤ」と略記する。
【００８３】
否定排他的論理和回路５０１−１３の入力端は、アドレス変換部４０２の出力端のうち物理アドレスの第１３ビットを出力する出力端と、ＴＡＧ（ＷＡＹ０）検索部４１０−０の出力端のうちＴＡＧ（ＷＡＹ０）の第１３ビットを出力する出力端と、に接続する。他の否定排他的論理和回路５０１−１４、５０１−１５、・・・、５０１−ｍ、・・・および５０１−４０についても否定排他的論理和回路５０１−１３と同様の構成である。ｍは１３以上４０以下の自然数である。例えば、否定排他的論理和回路５０１−ｍの入力端は、アドレス変換部４０２の出力端のうち物理アドレスの第ｍビットを出力する出力端と、ＴＡＧ（ＷＡＹ０）検索部４１０−０の出力端のうちＴＡＧ（ＷＡＹ０）の第ｍビットを出力する出力端と、に接続する。
【００８４】
論理積回路５０２の入力端は、否定排他的論理和回路５０１−１３、５０１−１４、・・・および５０１−４０の出力端に接続する。また、論理積回路５０２の出力端は、ＲＡＭクロック制御部４３２ａの入力端に接続する。
【００８５】
以上の構成において、アドレス変換部４０２から物理アドレスが、ＴＡＧ（ＷＡＹ０）検索部４１０−０からＴＡＧ（ＷＡＹ０）が、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０に入力された場合を考える。
【００８６】
この場合、否定排他的論理和回路５０１−１３は、物理アドレスの第１３ビットと、ＴＡＧ（ＷＡＹ０）の第１３ビットと、の否定排他的論理和を論理積回路５０２に出力する。否定排他的論理和回路５０１−１３は、物理アドレスの第１３ビットとＴＡＧ（ＷＡＹ０）の第１３ビットとが一致すれば「１」を出力し、物理アドレスの第１３ビットとＴＡＧ（ＷＡＹ０）の第１３ビットとが一致しなければ「０」を出力する。他の否定排他的論理和回路５０１−１４、５０１−１５、・・・、５０１−ｍ、・・・および５０１−４０も否定排他的論理和回路５０１−１３と同様の動作をする。
【００８７】
例えば、否定排他的論理和回路５０１−ｍは、物理アドレスの第ｍビットと、ＴＡＧ（ＷＡＹ０）の第ｍビットと、の否定排他的論理和を論理積回路５０２に出力する。否定排他的論理和回路５０１−ｍは、物理アドレスの第ｍビットとＴＡＧ（ＷＡＹ０）の第ｍビットとが一致すれば「１」を出力し、物理アドレスの第ｍビットとＴＡＧ（ＷＡＹ０）の第ｍビットとが一致しなければ「０」を出力する。
【００８８】
論理積回路５０２は、否定排他的論理和回路５０１−１３、５０１−１４、・・・および５０１−４０の出力の論理積を出力する。
例えば、論理積回路５０２は、否定排他的論理和回路５０１−１３、５０１−１４、・・・および５０１−４０の全ての出力が「１」の場合、すなわち、物理アドレスとＴＡＧ（ＷＡＹ０）とが一致する場合にＴＡＧ（ＷＡＹ０）マッチ信号「１」を出力する。また、論理積回路５０２は、否定排他的論理和回路５０１−１３、５０１−１４、・・・または５０１−４０の出力に「０」が含まれる場合、すなわち、物理アドレスとＴＡＧ（ＷＡＹ０）とが一致しない場合にＴＡＧ（ＷＡＹ０）マッチ信号「０」を出力する。
【００８９】
なお、図５には、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０の構成のみを示したが、ＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１もＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０と同様の構成となる。ただし、ＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１には、ＴＡＧ（ＷＡＹ０）検索部４１０−０の出力ＴＡＧ（ＷＡＹ０）ではなくＴＡＧ（ＷＡＹ１）検索部４１０−１の出力ＴＡＧ（ＷＡＹ１）が入力される。そして、ＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１は、ＲＡＭクロック制御部４３２ａにＴＡＧ（ＷＡＹ１）マッチ信号を出力する。
【００９０】
図６は、本実施例に係るＲＡＭクロック制御部４３２ａの主要部の具体的な構成例を示す図である。
ＲＡＭクロック制御部４３２ａは、論理積回路６０１−０、６０１−１および６０１−２と、論理和回路６０２と、反転回路６０３と、論理積回路６０４と、を備える。さらに、ＲＡＭクロック制御部４３２ａは、論理積回路６０５−０、６０５−１および６０５−２と、論理和回路６０６と、反転回路６０７と、論理積回路６０８と、を備える。なお、図６では、論理積回路を「ＡＮＤ」、論理和回路を「ＯＲ」と略記する。
【００９１】
論理積回路６０１−０、６０１−１および６０１−２の出力端は、論理和回路６０２の入力端に接続する。論理和回路６０２の出力端は、反転回路６０３の入力端に接続する。反転回路６０３の出力端は、論理積回路６０４の入力端に接続する。論理積回路６０４の入力端は、反転回路６０３の出力端の他に、命令制御部３１０の出力端とも接続し、命令フェッチ要求信号が入力される。論理積回路６０４の出力端は、クロックバッファ４４１−１、すなわち論理積回路６１０の入力端に接続する。
【００９２】
論理積回路６０５−０、６０５−１および６０５−２の出力端は、論理和回路６０６の入力端に接続する。論理和回路６０６の出力端は、反転回路６０７の入力端に接続する。反転回路６０７の出力端は、論理積回路６０８の入力端に接続する。論理積回路６０８の入力端は、反転回路６０７の出力端の他に、命令制御部３１０の出力端とも接続し、命令フェッチ要求信号が入力される。論理積回路６０８の出力端は、クロックバッファ４４１−０、すなわち論理積回路６０９の入力端に接続する。
【００９３】
以上の構成において、論理積回路６０１−０および論理積回路６０５−０には、ＴＡＧマッチ情報記憶部４３２ｂに記憶されるＴＡＧマッチ情報のうち、第１のパイプラインについてのＴＡＧマッチ情報が入力される。ただし、論理積回路６０１−０への入力からＴＡＧ（ＷＡＹ１）マッチは除かれる。また、論理積回路６０５−０への入力からＴＡＧ（ＷＡＹ０）マッチは除かれる。
【００９４】
例えば、論理積回路６０１−０には、表１に示した命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１、キャッシュライン非先頭アドレスｃ１およびＴＡＧ（ＷＡＹ０）マッチｄ１０が入力される。そして、論理積回路６０５−０には、表１に示した命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１、キャッシュライン非先頭アドレスｃ１およびＴＡＧ（ＷＡＹ１）マッチｄ１１が入力される。
【００９５】
また、論理積回路６０１−１および論理積回路６０５−１には、ＴＡＧマッチ情報記憶部４３２ｂに記憶されるＴＡＧマッチ情報のうち、第２のパイプラインについてのＴＡＧマッチ情報が入力される。ただし、論理積回路６０１−１への入力からＴＡＧ（ＷＡＹ１）マッチは除かれる。また、論理積回路６０５−１への入力からＴＡＧ（ＷＡＹ０）マッチは除かれる。
【００９６】
例えば、論理積回路６０１−１には、表１に示した命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２、キャッシュライン非先頭アドレスｃ２およびＴＡＧ（ＷＡＹ０）マッチｄ２０が入力される。そして、論理積回路６０５−１には、表１に示した命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２、キャッシュライン非先頭アドレスｃ２およびＴＡＧ（ＷＡＹ１）マッチｄ２１が入力される。
【００９７】
また、論理積回路６０１−２および論理積回路６０５−２には、ＴＡＧマッチ情報記憶部４３２ｂに記憶されるＴＡＧマッチ情報のうち、第３のパイプラインについてのＴＡＧマッチ情報が入力される。ただし、論理積回路６０１−２への入力からＴＡＧ（ＷＡＹ１）マッチは除かれる。また、論理積回路６０５−２への入力からＴＡＧ（ＷＡＹ０）マッチは除かれる。
【００９８】
例えば、論理積回路６０１−２には、表１に示した命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３、キャッシュライン非先頭アドレスｃ３およびＴＡＧ（ＷＡＹ０）マッチｄ３０が入力される。そして、論理積回路６０５−２には、表１に示した命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３、キャッシュライン非先頭アドレスｃ３およびＴＡＧ（ＷＡＹ１）マッチｄ３１が入力される。
【００９９】
論理積回路６０１−０は、命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１、キャッシュライン非先頭アドレスｃ１およびＴＡＧ（ＷＡＹ０）マッチｄ１０が全て「１」の場合に、「１」を出力する。すなわち、第１のパイプラインにおける命令フェッチがＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路６０１−０は「１」を出力する。
【０１００】
また、論理積回路６０１−０は、命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１、キャッシュライン非先頭アドレスｃ１またはＴＡＧ（ＷＡＹ０）マッチｄ１０の少なくとも１つが「０」である場合に、「０」を出力する。
【０１０１】
例えば、命令フェッチ要求ａ１が「１」、かつ、シーケンシャルアクセス通知ｂ１が「０」の場合、すなわち、命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路６０１−０は「０」を出力する。また、ＴＡＧ（ＷＡＹ０）マッチｄ１０が「０」の場合、すなわち、ＴＡＧ（ＷＡＹ０）マッチを検出しない場合などにも、論理積回路６０１−０は「０」を出力する。
【０１０２】
論理積回路６０１−１は、命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２およびキャッシュライン非先頭アドレスｃ２およびＴＡＧ（ＷＡＹ０）マッチｄ２０が全て「１」の場合に、「１」を出力する。すなわち、第２のパイプラインにおける命令フェッチがＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路６０１−１は「１」を出力する。
【０１０３】
また、論理積回路６０１−１は、命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２、キャッシュライン非先頭アドレスｃ２またはＴＡＧ（ＷＡＹ０）マッチｄ２０の少なくとも１つが「０」である場合に、「０」を出力する。
【０１０４】
例えば、命令フェッチ要求ａ２が「１」、かつ、シーケンシャルアクセス通知ｂ２が「０」の場合、すなわち、命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路６０１−１は「０」を出力する。また、ＴＡＧ（ＷＡＹ０）マッチｄ２０が「０」の場合、すなわち、ＴＡＧ（ＷＡＹ０）マッチを検出しない場合などにも、論理積回路６０１−１は「０」を出力する。
【０１０５】
論理積回路６０１−２は、命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３およびキャッシュライン非先頭アドレスｃ３およびＴＡＧ（ＷＡＹ０）マッチｄ３０が全て「１」の場合に、「１」を出力する。すなわち、第３のパイプラインにおける命令フェッチがＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路６０１−２は「１」を出力する。
【０１０６】
また、論理積回路６０１−２は、命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３、キャッシュライン非先頭アドレスｃ３またはＴＡＧ（ＷＡＹ０）マッチｄ３０の少なくとも１つが「０」である場合に、「０」を出力する。
【０１０７】
例えば、命令フェッチ要求ａ３が「１」、かつ、シーケンシャルアクセス通知ｂ３が「０」の場合、すなわち、命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路６０１−２は「０」を出力する。また、ＴＡＧ（ＷＡＹ０）マッチｄ３０が「０」の場合、すなわち、ＴＡＧ（ＷＡＹ０）マッチを検出しない場合などにも、論理積回路６０１−２は「０」を出力する。
【０１０８】
論理和回路６０２は、論理積回路６０１−０、６０１−１および６０１−２の出力のうち少なくとも１つが「１」である場合に「１」を出力する。すなわち、論理和回路６０２は、第１乃至第３のパイプラインで実行中の命令フェッチのうち少なくとも１つの命令フェッチがＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、「１」を出力する。
【０１０９】
そして、論理和回路６０２は、論理積回路６０１−０、６０１−１および６０１−２が全て「０」を出力する場合に、「０」を出力する。例えば、論理和回路６０２は、第１乃至第３のいずれのパイプラインにおいても、ＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスが行なわれる命令フェッチが実行されていない場合などに、「０」を出力する。
【０１１０】
反転回路６０３は、論理和回路６０２が出力する信号を反転し、反転した信号を論理積回路６０４に出力する。論理和回路６０２が「０」を出力すれば、反転回路６０３は、論理積回路６０４に「１」を出力する。そして、論理和回路６０２が「１」を出力すれば、反転回路６０３は、論理積回路６０４に「０」を出力する。
【０１１１】
論理積回路６０４は、反転回路６０３が出力する信号と、命令フェッチ要求ａ１と、の論理積をＲＡＭ（ＷＡＹ１）クロック制御信号としてクロックバッファ６１０に出力する。
【０１１２】
したがって、論理積回路６０４は、反転回路６０３が出力する信号と命令フェッチ要求ａ１が「１」の場合に、ＲＡＭ（ＷＡＹ１）クロック制御信号「１」を出力する。例えば、論理積回路６０４は、第１乃至第３のいずれのパイプラインにおいても、ＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスが行なわれる命令フェッチが実行されていない場合に、ＲＡＭ（ＷＡＹ１）クロック制御信号「１」を出力する。
【０１１３】
そして、反転回路６０３が出力する信号と命令フェッチ要求ａ１のうち少なくとも一方の信号が「０」の場合に、論理積回路６０４は、ＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。
【０１１４】
例えば、論理和回路６０４は、第１乃至第３のパイプラインで実行中の命令フェッチのうち少なくとも１つの命令フェッチがＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、ＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。また、論理和回路６０４は、命令フェッチ要求を検出しない場合などにも、ＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。
【０１１５】
クロックバッファ４４１−１は、論理積回路６１０を備える。論理積回路６１０の入力端は、ＲＡＭクロック制御部４３２ａ内の論理和回路６０４の出力端と、クロック生成回路４５０の出力端と、に接続する。そして、論理積回路６１０の出力端は、データＲＡＭ（ＷＡＹ１）４４０−１の入力端に接続する。
【０１１６】
そして、論理積回路６１０は、論理積回路６０４の出力、すなわち、ＲＡＭ（ＷＡＹ１）クロック制御信号と、クロックと、の論理積をデータＲＡＭ（ＷＡＹ１）４４０−１に出力する。
【０１１７】
したがって、クロックバッファ４４１−１は、ＲＡＭクロック制御部４３２ａからＲＡＭ（ＷＡＹ１）クロック制御信号「１」が入力されると、クロックをデータＲＡＭ（ＷＡＹ１）４４０−１に出力する。
【０１１８】
例えば、第１乃至第３のパイプラインにおいて、ＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスを行なう命令フェッチが実行されていない場合、クロックバッファ４４１−１は、クロックをデータＲＡＭ（ＷＡＹ１）４４０−１に出力する。
【０１１９】
また、クロックバッファ４４１−１は、ＲＡＭクロック制御部４３２ａからＲＡＭ（ＷＡＹ１）クロック制御信号「０」が入力されると、データＲＡＭ（ＷＡＹ１）４４０−１へのクロックの出力を停止する。
【０１２０】
例えば、第１乃至第３のパイプラインで実行中の命令フェッチがＷＡＹ０内の同一のキャッシュラインに対するシーケンシャルアクセスである場合、クロックバッファ４４１−１は、データＲＡＭ（ＷＡＹ１）４４０−１へのクロックの出力を停止する。
【０１２１】
また、命令フェッチ要求を検出しない場合などにも、クロックバッファ４４１−１は、データＲＡＭ（ＷＡＹ１）４４０−１へのクロックの出力を停止する。
一方、論理積回路６０５−０は、論理積回路６０１−０と同様に、命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１およびキャッシュライン非先頭アドレスｃ１およびＴＡＧ（ＷＡＹ１）マッチｄ１１が全て「１」の場合に、「１」を出力する。すなわち、第１のパイプラインにおける命令フェッチがＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路６０５−０は「１」を出力する。
【０１２２】
また、論理積回路６０５−０は、命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１、キャッシュライン非先頭アドレスｃ１またはＴＡＧ（ＷＡＹ１）マッチｄ１１の少なくとも１つが「０」である場合に、「０」を出力する。
【０１２３】
例えば、命令フェッチ要求ａ１が「１」、かつ、シーケンシャルアクセス通知ｂ１が「０」の場合、すなわち、命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路６０５−０は「０」を出力する。また、ＴＡＧ（ＷＡＹ１）マッチｄ１１が「０」の場合、すなわち、ＴＡＧ（ＷＡＹ１）マッチを検出しない場合などにも、論理積回路６０５−０は「０」を出力する。
【０１２４】
論理積回路６０５−１は、論理積回路６０１−１と同様に、命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２およびキャッシュライン非先頭アドレスｃ２およびＴＡＧ（ＷＡＹ１）マッチｄ２１が全て「１」の場合に、「１」を出力する。すなわち、第２のパイプラインにおける命令フェッチがＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路６０５−１は「１」を出力する。
【０１２５】
また、論理積回路６０５−１は、命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２、キャッシュライン非先頭アドレスｃ２またはＴＡＧ（ＷＡＹ１）マッチｄ２１の少なくとも１つが「０」である場合に、「０」を出力する。
【０１２６】
例えば、命令フェッチ要求ａ２が「１」、かつ、シーケンシャルアクセス通知ｂ２が「０」の場合、すなわち、命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路６０５−１は「０」を出力する。また、ＴＡＧ（ＷＡＹ１）マッチｄ２１が「０」の場合、すなわち、ＴＡＧ（ＷＡＹ１）マッチを検出しない場合などにも、論理積回路６０５−１は「０」を出力する。
【０１２７】
論理積回路６０５−２は、論理積回路６０１−２と同様に、命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３およびキャッシュライン非先頭アドレスｃ３およびＴＡＧ（ＷＡＹ１）マッチｄ３１が全て「１」の場合に、「１」を出力する。すなわち、第３のパイプラインにおける命令フェッチがＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路６０５−２は「１」を出力する。
【０１２８】
また、論理積回路６０５−２は、命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３、キャッシュライン非先頭アドレスｃ３またはＴＡＧ（ＷＡＹ１）マッチｄ３１の少なくとも１つが「０」である場合に、「０」を出力する。
【０１２９】
例えば、命令フェッチ要求ａ３が「１」、かつ、シーケンシャルアクセス通知ｂ３が「０」の場合、すなわち、命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路６０５−２は「０」を出力する。また、ＴＡＧ（ＷＡＹ１）マッチｄ３１が「０」の場合、すなわち、ＴＡＧ（ＷＡＹ１）マッチを検出しない場合などにも、論理積回路６０５−２は「０」を出力する。
【０１３０】
論理和回路６０６は、論理積回路６０５−０、６０５−１および６０５−２の出力のうち少なくとも１つが「１」である場合に「１」を出力する。すなわち、論理和回路６０６は、第１乃至第３のパイプラインで実行中の命令フェッチのうち少なくとも１つの命令フェッチがＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、「１」を出力する。
【０１３１】
そして、論理和回路６０６は、論理積回路６０５−０、６０５−１および６０５−２が全て「０」を出力する場合に、「０」を出力する。例えば、論理和回路６０６は、第１乃至第３のいずれのパイプラインにおいても、ＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスが行なわれる命令フェッチが実行されていない場合などに、「０」を出力する。
【０１３２】
反転回路６０７は、論理和回路６０６が出力する信号を反転し、反転した信号を論理積回路６０８に出力する。論理和回路６０６が「０」を出力すれば、反転回路６０７は、論理積回路６０８に「１」を出力する。そして、論理和回路６０６が「１」を出力すれば、反転回路６０７は、論理積回路６０８に「０」を出力する。
【０１３３】
論理積回路６０８は、反転回路６０７が出力する信号と、命令フェッチ要求ａ１と、の論理積をＲＡＭ（ＷＡＹ１）クロック制御信号としてクロックバッファ６１０に出力する。
【０１３４】
したがって、論理積回路６０８は、反転回路６０７が出力する信号と命令フェッチ要求ａ１が「１」の場合に、ＲＡＭ（ＷＡＹ１）クロック制御信号「１」を出力する。例えば、論理積回路６０８は、第１乃至第３のいずれのパイプラインにおいても、ＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスが行なわれる命令フェッチが実行されていない場合などに、ＲＡＭ（ＷＡＹ１）クロック制御信号「１」を出力する。
【０１３５】
そして、反転回路６０７が出力する信号と命令フェッチ要求ａ１のうち少なくとも一方の信号が「０」の場合に、論理積回路６０８は、ＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。
【０１３６】
例えば、論理和回路６０８は、第１乃至第３のパイプラインで実行中の命令フェッチのうち少なくとも１つの命令フェッチがＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、ＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。また、論理和回路６０８は、命令フェッチ要求を検出しない場合などにも、ＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。この場合、後述するようにデータＲＡＭ（ＷＡＹ０）４４０−０へのクロックの供給が停止する。
【０１３７】
ここで、クロックバッファ４４１−０は、論理積回路６０９を備える。論理積回路６０９の入力端は、ＲＡＭクロック制御部４３２ａ内の論理和回路６０８の出力端と、クロック生成回路４５０の出力端と、に接続する。そして、論理積回路６０９の出力端は、データＲＡＭ（ＷＡＹ０）４４０−０の入力端に接続する。
【０１３８】
そして、論理積回路６０９は、論理積回路６０８の出力、すなわち、ＲＡＭ（ＷＡＹ０）クロック制御信号と、クロックと、の論理積をデータＲＡＭ（ＷＡＹ０）４４０−０に出力する。
【０１３９】
したがって、クロックバッファ４４１−０は、ＲＡＭクロック制御部４３２ａからＲＡＭ（ＷＡＹ０）クロック制御信号「１」が入力されると、クロックをデータＲＡＭ（ＷＡＹ０）４４０−１に出力する。
【０１４０】
例えば、第１乃至第３のパイプラインにおいて、ＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスが行なわれていない場合、クロックバッファ４４１−０は、クロックをデータＲＡＭ（ＷＡＹ０）４４０−１に出力する。
【０１４１】
また、クロックバッファ４４１−０は、ＲＡＭクロック制御部４３２ａからＲＡＭ（ＷＡＹ０）クロック制御信号「０」が入力されると、データＲＡＭ（ＷＡＹ０）４４０−０へのクロックの出力を停止する。
【０１４２】
例えば、第１乃至第３のパイプラインで実行中の命令フェッチがＷＡＹ１内の同一のキャッシュラインに対するシーケンシャルアクセスである場合、クロックバッファ４４１−０は、データＲＡＭ（ＷＡＹ０）４４０−０へのクロックの出力を停止する。
【０１４３】
また、命令フェッチ要求を検出しない場合などにも、クロックバッファ４４１−０は、データＲＡＭ（ＷＡＹ０）４４０−０へのクロックの出力を停止する。
図７は、本実施例に係る命令制御部３１０の動作の概要を説明する図である。
【０１４４】
命令制御部３１０は、プログラムカウンタ７０１と、分岐予測判別回路７０２と、を備える。
プログラムカウンタ７０１は、次に実行するプログラム命令が記憶されている命令アドレス４６０を保持する記憶部である。プログラムカウンタ７０１には、例えば、レジスタを使用することができる。
【０１４５】
命令制御部３１０は、所定のプログラム命令の実行が完了すると、プログラムカウンタ７０１から命令アドレス４６０を取得するとともに、プログラムカウンタ７０１を命令長だけインクリメントする。そして、命令制御部３１０は、Ｌ１キャッシュ部４００に対して命令フェッチ要求を行なうとともに命令アドレス４６０を通知する。
【０１４６】
分岐予測判別回路７０２は、Ｌ１キャッシュ部４００に対して行なう命令フェッチ要求が、シーケンシャルアクセスか否かを判別し、判別結果をＬ１キャッシュ部４００に通知する。
【０１４７】
本実施例では、Ｌ１キャッシュ部４００へのアクセス、例えば、命令フェッチ要求は、通常、シーケンシャルアクセスであると判断するものとする。したがって、通常、命令制御部３１０は、Ｌ１キャッシュ部４００に対してシーケンシャルアクセスである旨を通知する。
【０１４８】
そして、実行中のプログラム命令について分岐予測判別回路７０２が分岐すると予測した場合、命令制御部３１０は、シーケンシャルアクセスが無効となったと判断し、シーケンシャルアクセスでない旨をＬ１キャッシュ部４００に通知する。
【０１４９】
図８は、本実施例に係るシーケンシャルアクセスの判別処理を示すフローチャートである。
ステップＳ８０１において、命令制御部３１０は、プログラムカウンタ７０１から命令アドレス４６０を取得する。
【０１５０】
ステップＳ８０２において、命令制御部３１０は、分岐予測を行なう。分岐すると判断した場合（ステップＳ８０２  ＹＥＳ）、命令制御部３１０は、シーケンシャルアクセスがなかったと判断する。この場合、命令制御部３１０は、処理をステップＳ８０３に移行し、ＲＡＭクロック制御部４３２ａにシーケンシャルアクセスではない旨を通知する（ステップＳ８０３）。例えば、命令制御部３１０は、ＲＡＭクロック制御部４３２ａにシーケンシャルアクセス通知信号「０」を出力する。
【０１５１】
また、分岐しないと判断した場合（ステップＳ８０２  ＮＯ）、命令制御部３１０は、シーケンシャルアクセスがあったと判断する。この場合、命令制御部３１０は、処理をステップＳ８０４に移行し、ＲＡＭクロック制御部４３２ａにシーケンシャルアクセスである旨を通知する（ステップＳ８０４）。例えば、命令制御部３１０は、ＲＡＭクロック制御部４３２ａにシーケンシャルアクセス通知信号「１」を出力する。
【０１５２】
なお、分岐予測には、過去に実行した分岐命令の命令アドレスとその分岐命令により分岐した分岐先アドレスを含む履歴情報を含むブランチヒストリを用いることができる。
例えば、命令アドレス４６０をプログラムカウンタから取得する毎に、取得した命令アドレス４６０がブランチヒストリに登録されているか否かをチェックする。そして、命令アドレス４６０がブランチヒストリに登録されている場合、命令制御部３１０は、分岐すると予測する。また、命令アドレス４６０がブランチヒストリに登録されていない場合、命令制御部３１０は、分岐しないと予測する。
【０１５３】
また、プログラム命令のうちサブルーチンのコール命令を実行する時に、リターン命令によるサブルーチンからの戻りアドレスを保持しておき、この戻りアドレスを分岐予測に用いてもよい。プログラム命令がリターン命令、かつ命令アドレス４６０が既に保持されている戻りアドレスの場合、命令制御部３１０は、分岐すると予測することができる。
【０１５４】
また、命令制御部３１０は、分岐予測の失敗を検出して後述する演算処理装置３００のパイプライン処理にすでに流れているリクエストをキャンセルした後に再度発行される最初の命令フェッチ要求についても、シーケンシャルアクセスでないと判断できる（ステップＳ８０２  ＹＥＳ）。この場合、命令制御部３１０は、要求される命令アドレスにかかわらずシーケンシャルアクセスでないと判断する。
【０１５５】
また、命令制御部３１０は、トラップ処理回復後に発行される最初の命令フェッチ要求についても、シーケンシャルアクセスでないと判断できる（ステップＳ８０２ＹＥＳ）。
以上の処理が終了すると、命令制御部３１０は、処理を終了する（ステップＳ８０５）。
【０１５６】
図９は、本実施例に係るデータＲＡＭ４０４のクロック制御を示すフローチャートである。
ＲＡＭクロック制御部４３２ａは、命令制御部３１０から命令フェッチ要求を受信すると（ステップＳ９０１）、処理をステップＳ９０２に移行する。すると、ＲＡＭクロック制御部４３２ａは、ＲＡＭクロック制御部４３２ａは、ＴＡＧマッチ情報記憶部４３２ｂからＴＡＧマッチ情報を取得する（ステップＳ９０２）。そして、ＲＡＭクロック制御部４３２ａは、ＴＡＧマッチ情報から、第１乃至第３のパイプラインで実行中の命令フェッチのうち少なくとも１つの命令フェッチが同一ＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスであるか否かを判別する（ステップＳ９０３）。
【０１５７】
第１乃至第３のパイプラインで実行中の命令フェッチのうち少なくとも１つの命令フェッチが同一ＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスであると判断すると（ステップＳ９０３  ＹＥＳ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９０４に移行する。
【０１５８】
ステップＳ９０４において、ＲＡＭクロック制御部４３２ａは、取得したＴＡＧマッチ情報から、ＴＡＧマッチしたＷＡＹがＷＡＹ０か否かを判別する。
ＷＡＹ０でＴＡＧマッチしたと判断した場合（ステップＳ９０４  ＹＥＳ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９０５に移行する。この場合、ＲＡＭクロック制御部４３２ａは、データＲＡＭ（ＷＡＹ０）４４０−０にクロックが供給されているか否かを判別する（ステップＳ９０５）。
【０１５９】
データＲＡＭ（ＷＡＹ０）４４０−０のクロックが供給されている場合（ステップＳ９０５  ＹＥＳ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９０６に移行する。この場合、ＲＡＭクロック制御部４３２ａは、データＲＡＭ（ＷＡＹ０）４４０−０へクロックを供給し、データＲＡＭ（ＷＡＹ１）４４０−１へのクロックを停止する（ステップＳ９０６）。例えば、ＲＡＭクロック制御部４３２ａは、クロックバッファ４４１−０に対してＲＡＭ（ＷＡＹ０）クロック制御信号「１」を出力し、クロックバッファ４４１−１に対してＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。  データＲＡＭ（ＷＡＹ０）４４０−０へのクロックが停止している場合（ステップＳ９０５  ＮＯ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９０７に移行する。この場合、ＲＡＭクロック制御部４３２ａは、プライオリティ制御部４３２に対してアボート要求を通知する（ステップＳ９０７）。
【０１６０】
また、ステップＳ９０４において、ＷＡＹ１でＴＡＧマッチしたと判断した場合（ステップＳ９０４  ＮＯ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９０８に移行する。この場合、ＲＡＭクロック制御部４３２ａは、データＲＡＭ（ＷＡＹ１）４４０−１にクロックが供給されているか否かを判別する（ステップＳ９０８）。
【０１６１】
データＲＡＭ（ＷＡＹ１）４４０−１にクロックが供給されている場合（ステップＳ９０８  ＹＥＳ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９０９に移行する。この場合、ＲＡＭクロック制御部４３２ａは、データＲＡＭ（ＷＡＹ１）４４０−１へクロックを供給し、データＲＡＭ（ＷＡＹ０）４４０−０へのクロックを停止にする（ステップＳ９０９）。例えば、ＲＡＭクロック制御部４３２ａは、クロックバッファ４４１−０に対してＲＡＭ（ＷＡＹ０）クロック制御信号「０」を出力し、クロックバッファ４４１−１に対してＲＡＭ（ＷＡＹ１）クロック制御信号「１」を出力する。
【０１６２】
データＲＡＭ（ＷＡＹ１）４４０−１へのクロックが停止している場合（ステップＳ９０８  ＮＯ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９０７に移行する。この場合、ＲＡＭクロック制御部４３２ａは、プライオリティ制御部４３２に対してアボート要求を通知する（ステップＳ９０７）。
【０１６３】
一方、ステップＳ９０３において、第１乃至第３のパイプラインで実行中の命令フェッチが同一ＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスでないと判断すると（ステップＳ９０３  ＮＯ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９１０に移行する。この場合、ＲＡＭクロック制御部４３２ａは、データＲＡＭ３３４に備わる全てのＷＡＹ、本実施例ではデータＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１にクロックの供給を行なう（ステップＳ９１０）。例えば、ＲＡＭクロック制御部４３２ａは、クロックバッファ４４１−０およびに対してＲＡＭ（ＷＡＹ０）クロック制御信号「１」を出力し、クロックバッファ４４１−１に対してＲＡＭ（ＷＡＹ１）クロック制御信号「１」を出力する。
【０１６４】
ステップＳ９１１において、ＲＡＭクロック制御部４３２ａは、ＴＡＧ（ＷＡＹ０）マッチ検出部４３０−０およびＴＡＧ（ＷＡＹ１）マッチ検出部４３０−１の出力からＴＡＧマッチの有無を判別する。
【０１６５】
ＴＡＧマッチを検出しない場合（ステップＳ９１１  ＮＯ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９１２に移行する。この場合、Ｌ１キャッシュ部３３０は、プライオリティ制御部４３２を介してＬ２キャッシュ部３３０にデータ要求を行なう（ステップＳ９１２）。
【０１６６】
ＴＡＧマッチを検出した場合（ステップＳ９１１  ＹＥＳ）、ＲＡＭクロック制御部４３２ａは、処理をステップＳ９１３に移行する。この場合、ＲＡＭクロック制御部４３２ａは、ＴＡＧマッチ情報を更新する（ステップＳ９１３）。
【０１６７】
以上の処理が完了すると、Ｌ１キャッシュ部３３０は、データＲＡＭ４０４のクロック制御処理を終了する。
その後、ＴＡＧマッチ処理部４０３は、ＴＡＧマッチを検出したＷＡＹ、本実施例ではデータＲＡＭ（ＷＡＹ０）４４０−０またはデータＲＡＭ（ＷＡＹ１）４４０−１のいずれか一方を選択してデータを取得する。
【０１６８】
図１０は、本実施例に係る命令フェッチのパイプライン処理を説明する図である。
演算処理装置３００において、プログラム命令は、大きく分けると、「命令フェッチ」、「デコード」、「実行」および「完了」の４つの工程に分割して処理される。この処理を「演算処理装置３００のパイプライン処理」という。
【０１６９】
例えば、「命令フェッチ」は、Ｌ１キャッシュ部４００などからプログラム命令を取得する工程である。「デコード」は、取得したプログラム命令を演算処理装置３００にとって意味のある形式に分割する工程である。「実行」は、デコードされたプログラム命令にしたがって、演算処理等を実行する工程である。「完了」は、全ての処理が完了したかを判定し、実行結果をＬ１キャッシュ部４００などに格納する工程である。
【０１７０】
命令フェッチ工程において、命令制御部３１０は、図７で説明した分岐予測およびリクエスト要求（命令フェッチ要求）を行なう。また、命令制御部３１０から命令フェッチ要求を受けると、Ｌ１キャッシュ部４００は、「リクエスト選択」、「ＴＡＧ検索」、「ＴＡＧマッチ処理」、「データ転送」および「完了」の工程に分割して命令フェッチを行なう。この処理を「命令フェッチのパイプライン処理」という。
【０１７１】
「リクエスト選択」は、命令制御部３１０から受信する命令フェッチ要求を選択する工程である。「ＴＡＧ検索」は、ＴＡＧ検索を行なう工程である。「ＴＡＧマッチ処理」は、ＴＡＧマッチ処理を行なう工程である。「データ転送」は、ＴＡＧマッチしたＷＡＹからデータを取得して命令制御部３１０に転送する工程である。「完了」は、命令フェッチが完了したか否かを判定する工程である。
【０１７２】
図１１および図１２は、本実施例に係る命令フェッチのパイプライン処理を具体的に説明する図である。
図１１は、プログラム命令Ａ、Ｂ、ＣおよびＤが、データＲＡＭ（ＷＡＹ０）４４０−０のライン１上に連続して格納され、プログラム命令ＥおよびＦが、データＲＡＭ（ＷＡＹ１）４４０−１のライン３上に連続して格納されている場合を示している。
【０１７３】
簡単のために、データＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１の１ラインのデータ幅は３２Ｂｙｔｅとする。また、各プログラム命令Ａ、Ｂ、Ｃ、Ｄ、ＥおよびＦは、全て８Ｂｙｔｅ（６４ｂｉｔ）のデータ幅を有するものとする。
【０１７４】
以下、図１１に示したプログラム命令をＡ、Ｂ、Ｃ、Ｄ、ＥおよびＦの順に読み出す命令フェッチのパイプライン処理を図１２に示して説明する。なお、図１２に示す１、２、３、４および５は、それぞれ図１０に示した「リクエスト選択」、「ＴＡＧ検索」、「ＴＡＧマッチ処理」、「データ転送」および「完了」の工程を示している。
【０１７５】
また、命令フェッチのパイプライン処理におけるデータＲＡＭ（ＷＡＹ０）４４０−０へのＲＡＭ（ＷＡＹ０）クロック制御信号とデータＲＡＭ（ＷＡＹ１）４４０−１へのＲＡＭ（ＷＡＹ１）クロック制御信号も図１２に示す。なお、ＲＡＭ（ＷＡＹ０）クロック制御信号が「０」の時に、データＲＡＭ（ＷＡＹ０）４４０−０内のクロックが停止し、「１」の時に、データＲＡＭ（ＷＡＹ０）４４０−０内にクロックが供給されるものとする。ＲＡＭ（ＷＡＹ１）クロック制御信号についてもＲＡＭ（ＷＡＹ０）クロック制御信号と同様とする。
【０１７６】
（１）命令制御部３１０からリクエストＡを受けると、Ｌ１キャッシュ部４００は、プログラム命令Ａに対する命令フェッチの実行を開始する。
リクエストＡに後続のリクエストＢ、ＣおよびＤは、図１１に示したように、同一ライン上に連続して格納されているプログラム命令Ｂ、ＣおよびＤに対する命令フェッチ要求である。この場合、命令制御部３１０は、図８に示した処理によって、リクエストＡに後続のリクエストＢ、ＣおよびＤをシーケンシャルアクセスと判断する。したがって、リクエストＡに後続するリクエストがシーケンシャルアクセスを実行している間、Ｌ１キャッシュ部４００は、ＴＡＧマッチを検出したＷＡＹ０以外のＷＡＹであるＲＡＭ（ＷＡＹ１）クロック制御信号「０」を出力する。その結果、ＴＡＧマッチを検出したＷＡＹ、すなわちデータＲＡＭ（ＷＡＹ０）４４０−０にだけクロックが供給され、その他のＷＡＹ、すなわちデータＲＡＭ（ＷＡＹ１）４４０−１へのクロックは停止する。
【０１７７】
（２）しかし、リクエストＤの後に受信したリクエストＥは、図１１に示したように、プログラム命令Ｄと同一ライン上に連続して記憶されるものではなく、データＲＡＭ（ＷＡＹ１）４４０−１のライン３上の先頭位置に格納されている。この場合、Ｌ１キャッシュ部４００は、図８に示した処理により、リクエストＥをシーケンシャルアクセスでないと判断する。すると、図９に示したステップＳ９１０の処理によって、Ｌ１キャッシュ部４００は、ＲＡＭ（ＷＡＹ０）クロック制御信号およびＲＡＭ（ＷＡＹ１）クロック制御信号を「１」にする。これにより、全てのＷＡＹ、本実施例ではデータＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１にクロックが供給される。
【０１７８】
（３）リクエストＥに後続のリクエストＦは、図１１に示したように、プログラム命令Ｅと同一ライン上に連続して格納されているプログラム命令Ｆに対する命令フェッチ要求である。この場合、命令制御部３１０は、図８に示した処理により、リクエストＦをシーケンシャルアクセスと判断する。
【０１７９】
この場合、Ｌ１キャッシュ部４００は、ＴＡＧマッチを検出したＷＡＹ１以外のＷＡＹのＲＡＭ（ＷＡＹ０）クロック制御信号を「０」にする。その結果、ＴＡＧマッチを検出したＷＡＹ、すなわちデータＲＡＭ（ＷＡＹ１）４４０−１にだけクロックが供給され、その他のＷＡＹ、すなわちデータＲＡＭ（ＷＡＹ０）４４０−０へのクロックは停止する。
【０１８０】
なお、図１１に示す構成は１つの例示であって、プログラム命令を８Ｂｙｔｅに限定するものではなく、１ラインを３２Ｂｙｔｅに限定するものでもない。同様に、データＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１をそれぞれ６ラインであることに限定するものでもない。
【０１８１】
以上の説明では、データＲＡＭ３３４は、２ＷＡＹ構成を有する場合について説明したが、２ＷＡＹ以上の構成を有する場合であってもよい。データＲＡＭ３３４がｎＷＡＹ構成を有する場合のＬ１キャッシュ部の構成例を図１３に示す。
【０１８２】
図１３に示すＬ１キャッシュ部１３００は、ＴＡＧ検索部１３０１と、アドレス変換部１３０２と、ＴＡＧマッチ処理部１３０３と、データＲＡＭ１３０４と、を備える。ＴＡＧ検索部１３０１、アドレス変換部１３０２、ＴＡＧマッチ処理部１３０３およびデータＲＡＭ１３０４は、図３に示したＴＡＧ検索部３３１、アドレス変換部３３２、ＴＡＧマッチ処理部３３３およびデータＲＡＭ３３４にそれぞれ対応する。
【０１８３】
ＴＡＧ検索部１３０１は、ＴＡＧ（ＷＡＹ０）検索部１３１０−０、ＴＡＧ（ＷＡＹ１）検索部１３１０−１、・・・およびＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎを備える。
【０１８４】
ＴＡＧマッチ処理部１３０３は、ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０、ＴＡＧ（ＷＡＹ１）マッチ検出部１３３０−１、・・・およびＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎを備える。さらに、ＴＡＧマッチ処理部１３０３は、ＷＡＹセレクト部１３３１と、プライオリティ制御部１３３２と、を備える。プライオリティ制御部１３３２は、ＲＡＭクロック制御部１３３２ａおよびＴＡＧマッチ情報記憶部１３３２ｂを備える。
【０１８５】
データＲＡＭ１３０４は、ＷＡＹ０のデータＲＡＭ（ＷＡＹ０）１３４０−０、ＷＡＹ１のデータＲＡＭ（ＷＡＹ１）１３４０−１、・・・およびＷＡＹｎのデータＲＡＭ（ＷＡＹｎ）１３４０−ｎを備える。さらに、データＲＡＭ１３０４は、ＷＡＹ毎に、クロックバッファ１３４１−０、クロックバッファ１３４１−１、・・・およびクロックバッファ１３４１−ｎを備える。
【０１８６】
以上の構成において、命令制御部３１０は、プログラム命令の実行を開始すると、必要に応じてＬ１キャッシュ部１３００内のＲＡＭクロック制御部１３３２ａに対して命令フェッチ要求を行なう。命令フェッチ要求を行なう場合、命令制御部３１０は、ＲＡＭクロック制御部１３３２ａに命令フェッチ要求信号「１」を出力する。また、命令フェッチ要求を行なわない場合、命令制御部３１０は、ＲＡＭクロック制御部１３３２ａに命令フェッチ要求信号「０」を出力する。
【０１８７】
同時に、命令制御部３１０は、その命令フェッチ要求とともに、所望の命令が格納されている命令アドレス１３５０をＬ１キャッシュ部１３００に通知する。命令アドレス１３５０は、アドレス変換部１３０２に出力される。命令アドレス１３５０に含まれるインデックスは、ＴＡＧ（ＷＡＹ０）検索部１３１０−０、ＴＡＧ（ＷＡＹ１）検索部１３１０−１、・・・およびＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎに出力される。また、命令アドレス１３５０に含まれるインデックスは、データＲＡＭ（ＷＡＹ０）１３４０−０、データＲＡＭ（ＷＡＹ１）１３４０−１、・・・およびデータＲＡＭ（ＷＡＹｎ）１３４０−ｎにも出力される。
【０１８８】
また、命令制御部３１０は、Ｌ１キャッシュ部１３００に出力した命令フェッチ要求がシーケンシャルアクセスか否かを判別し、その判別結果をＬ１キャッシュ部１３００内のＲＡＭクロック制御部１３３２ａに通知する。
【０１８９】
ＴＡＧ（ＷＡＹ０）検索部１３１０−０は、命令制御部３１０からの命令フェッチ要求に応じて、その命令フェッチ要求とともに受ける命令アドレス１３５０に含まれるインデックスと一致するＴＡＧをデータＲＡＭ（ＷＡＹ０）１３４０−０についてのインデックステーブルから検索する。そして、ＴＡＧ（ＷＡＹ０）検索部１３１０−０は、検索結果をＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０に出力する。
【０１９０】
ＴＡＧ（ＷＡＹ１）検索部１３１０−１、ＴＡＧ（ＷＡＹ２）検索部１３１０−２、・・・およびＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎも、ＴＡＧ（ＷＡＹ０）検索部１３１０−０と同様に動作する。
【０１９１】
例えば、ＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎは、命令制御部３１０からの命令フェッチ要求に応じて、その命令フェッチ要求とともに受ける命令アドレス１３５０に含まれるインデックスと一致するＴＡＧをデータＲＡＭ（ＷＡＹｎ）１３４０−ｎについてのインデックステーブルから検索する。そして、ＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎは、検索結果をＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎに出力する。このときＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎが出力するＴＡＧを「ＴＡＧ（ＷＡＹｎ）」という。
【０１９２】
アドレス変換部１３０２は、命令制御部３１０からの命令フェッチ要求を受けると、ＴＬＢ等を参照し、命令アドレス１３５０を物理アドレスに変換する。そして、アドレス変換部３３２は、物理アドレスを、ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０、ＴＡＧ（ＷＡＹ１）マッチ検出部１３３０−１、・・・およびＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎに出力する。
【０１９３】
ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０は、ＴＡＧ（ＷＡＹ０）検索部１３１０−０が出力するＴＡＧと、アドレス変換部１３０２が出力する物理アドレスと、を比較する。そして、ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０は、比較結果を、ＷＡＹセレクト部１３３１とＲＡＭクロック制御部１３３２ａとに出力する。
【０１９４】
ＴＡＧ（ＷＡＹ０）検索部１３１０−０が出力するＴＡＧとアドレス変換部１３０２が出力する物理アドレスとが一致する場合、ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０は、ＲＡＭクロック制御部１３３２ａにＴＡＧ（ＷＡＹ０）マッチ信号「１」を出力する。ＴＡＧ（ＷＡＹ０）検索部１３１０−０が出力するＴＡＧとアドレス変換部１３０２が出力する物理アドレスとが一致しない場合、ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０は、ＲＡＭクロック制御部１３３２ａにＴＡＧ（ＷＡＹ０）マッチ信号「０」を出力する。
【０１９５】
ＴＡＧ（ＷＡＹ１）マッチ検出部１３３０−１、ＴＡＧ（ＷＡＹ２）マッチ検出部１３３０−２、・・・およびＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎも、ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０と同様の動作を行なう。
【０１９６】
例えば、ＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎは、ＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎが出力するＴＡＧと、アドレス変換部１３０２が出力する物理アドレスと、を比較する。そして、ＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎは、比較結果を、ＷＡＹセレクト部１３３１とＲＡＭクロック制御部１３３２ａとに出力する。
【０１９７】
ＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎが出力するＴＡＧとアドレス変換部１３０２が出力する物理アドレスとが一致する場合、ＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎは、ＲＡＭクロック制御部１３３２ａにＴＡＧ（ＷＡＹｎ）マッチ信号「１」を出力する。ＴＡＧ（ＷＡＹｎ）検索部１３１０−ｎが出力するＴＡＧとアドレス変換部１３０２が出力する物理アドレスとが一致しない場合、ＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎは、ＲＡＭクロック制御部１３３２ａにＴＡＧ（ＷＡＹｎ）マッチ信号「０」を出力する。
【０１９８】
ＷＡＹセレクト部１３３１は、ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０、・・・およびＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎが出力するＴＡＧマッチ信号にしたがって、データＲＡＭ１３０４内のＷＡＹを選択する。そして、ＷＡＹセレクト部１３３１は、選択したＷＡＹのデータＲＡＭ、すなわちデータＲＡＭ（ＷＡＹ０）１３４０−０、・・・またはデータＲＡＭ（ＷＡＹｎ）１３４０−ｎのうちいずれかから出力されるデータを命令制御部３１０などに出力する。
【０１９９】
プライオリティ制御部１３３２は、ＲＡＭクロック制御部１３３２ａからアボート要求を受けると、アボート処理を実行する。プライオリティ制御部１３３２は、上記アボート処理の他に、命令制御部３１０からの命令フェッチ要求やＬ１キャッシュ部１３００でキャッシュミスした命令フェッチ要求の再投入を行なうなどリクエストの調停を行なう。
【０２００】
ＲＡＭクロック制御部１３３２ａは、命令フェッチ要求により要求される命令アドレスが、データＲＡＭ（ＷＡＹ０）１３４０−０、・・・またはデータＲＡＭ（ＷＡＹｎ）１３４０−ｎにおけるキャッシュラインの先頭アドレスか否かを判別する。
【０２０１】
そして、命令フェッチ要求により要求される命令アドレスがキャッシュラインの先頭アドレスでないと判断すると、ＲＡＭクロック制御部１３３２ａは、キャッシュライン非先頭アドレス信号「１」を生成する。また、命令フェッチ要求により要求される命令アドレスがキャッシュラインの先頭アドレスであると判断すると、ＲＡＭクロック制御部１３３２ａは、キャッシュライン非先頭アドレス信号「０」を生成する。
【０２０２】
そして、ＲＡＭクロック制御部１３３２ａは、命令制御部３１０からの命令フェッチ要求信号およびシーケンシャルアクセス通知信号を、命令フェッチのパイプライン毎にＴＡＧマッチ情報記憶部１３３２ｂに記憶する。
【０２０３】
さらに、ＲＡＭクロック制御部１３３２ａは、ＲＡＭクロック制御部１３３２ａが生成したキャッシュライン非先頭アドレス信号を、命令フェッチのパイプライン毎にＴＡＧマッチ情報記憶部１３３２ｂに記憶する。
【０２０４】
さらに、ＲＡＭクロック制御部１３３２ａは、ＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０からのＴＡＧ（ＷＡＹ０）マッチ信号と、・・・、ＴＡＧ（ＷＡＹｎ）マッチ検出部１３３０−ｎからのＴＡＧ（ＷＡＹｎ）マッチ信号と、を命令フェッチのパイプライン毎にＴＡＧマッチ情報記憶部１３３２ｂに記憶する。
【０２０５】
下記表２は、ＴＡＧマッチ情報記憶部１３３２ｂに記憶されるＴＡＧマッチ情報を示している。
【表２】
2011081564.tif 000004
【０２０６】
ＲＡＭクロック制御部１３３２ａは、ＴＡＧマッチ情報記憶部１３３２ｂに記憶したＴＡＧマッチ情報から、現在処理中の命令フェッチがシーケンシャルアクセスか否かを判別する。現在処理中の命令フェッチがシーケンシャルアクセスの場合、ＲＡＭクロック制御部１３３２ａは、クロックバッファ１３４１−０、１３４１−１、・・・および１３４１−ｎに対してクロックの供給・停止を制御するＲＡＭクロック制御信号を出力する。
【０２０７】
なお、ＲＡＭクロック制御部１３３２ａには、データＲＡＭ（ＷＡＹ０）１３４０−０・・・およびデータＲＡＭ（ＷＡＹｎ）１３４０−ｎのクロック状態を監視する機能を含めることができる。
【０２０８】
例えば、データＲＡＭ１３０４内のＴＡＧマッチしたＷＡＹのクロックが停止していることを検出すると、プライオリティ制御部１３３２にアボート要求を行なう機能をＲＡＭクロック制御部１３３２ａに含めることができる。
【０２０９】
データＲＡＭ１３０４は、データＲＡＭ（ＷＡＹ０）１３４０−０、データＲＡＭ（ＷＡＹ１）１３４０−１、・・・およびデータＲＡＭ（ＷＡＹｎ）１３４０−ｎを備えるｎＷＡＹ構成のデータＲＡＭである。図１３に示す例では、データＲＡＭ（ＷＡＹ０）１３４０−０をＷＡＹ０、データＲＡＭ（ＷＡＹ１）１３４０−１をＷＡＹ１、・・・、データＲＡＭ（ＷＡＹｎ）１３４０−ｎをＷＡＹｎとする。
【０２１０】
データＲＡＭ１３４０４は、クロックバッファ１３４１−０、１３４１−１、・・・および１３４１−ｎを備える。
クロックバッファ１３４１−０、１３４１−１、・・・、１３４１−ｎは、それぞれデータＲＡＭ（ＷＡＹ０）１３４０−０、データＲＡＭ（ＷＡＹ１）１３４０−１、・・・、データＲＡＭ（ＷＡＹｎ）１３４０−ｎへのクロックの供給・停止を制御する。
【０２１１】
なお、図１３に示すデータＲＡＭ１３０４は、クロックバッファ１３４１−０、１３４１−１、・・・および１３４１−ｎをデータＲＡＭ１３０４内部に備える場合を示したが、この構成に限定する趣旨ではない。クロックバッファ１３４１−０、１３４１−１、・・・および１３４１−ｎは、データＲＡＭ１３０４の外部に配置されていてもよいのは当然である。
【０２１２】
各クロックバッファ１３４１−０、１３４１−１、・・・および１３４１−ｎは、クロック生成回路１３５０からクロックを受信する。各クロックバッファ１３４１−０、１３４１−１、・・・、１３４１−ｎは、ＲＡＭクロック制御信号に応じて、それぞれデータＲＡＭ（ＷＡＹ０）１３４０−０、データＲＡＭ（ＷＡＹ１）１３４０−１、・・・、データＲＡＭ（ＷＡＹｎ）１３４０−ｎにクロックを供給する。
【０２１３】
例えば、クロックバッファ１３４１−０は、ＲＡＭ（ＷＡＹ０）クロック制御信号が「０」の間、データＲＡＭ（ＷＡＹ０）１３４０−０にクロックを供給する。また、クロックバッファ１３４１−０は、ＲＡＭ（ＷＡＹ０）クロック制御信号が「１」の間、データＲＡＭ（ＷＡＹ０）１３４０−０内部へのクロックの供給を停止する。クロックバッファ１３４１−１、１３４１−２・・・、クロックバッファ１３４１−ｎは、データＲＡＭ（ＷＡＹ０）１３４０−０と同様に動作する。
【０２１４】
クロック生成回路１３５０は、一定周期のクロックを生成する回路である。クロック生成回路１３５０は、生成したクロックをクロックバッファ１３４１−０、１３４１−１、・・・および１３４１−ｎに出力する。
【０２１５】
なお、以上に示したＴＡＧ（ＷＡＹ０）マッチ検出部１３３０−０、１３３０−１、・・・および１３３０−ｎは、図５に示した具体的な構成で実現することができる。
【０２１６】
図１４は、ＲＡＭクロック制御部１３３２ａの主要部の具体的な構成例を示す図である。
ＲＡＭクロック制御部１３３２ａは、論理和回路１４００−０、１４０１−０、・・・および１４０ｎ−０と、論理和回路１４００−１、１４０１−１、・・・および１４０ｎ−１と、論理和回路１４００−２、１４０１−２、・・・および１４０ｎ−２と、を備える。
【０２１７】
また、ＲＡＭクロック制御部１３３２ａは、論理積回路１４１０−０、１４１１−０、・・・および１４１ｎ−０と、論理積回路１４１０−１、１４１１−１、・・・および１４１ｎ−１と、論理積回路１４１０−２、１４１１−２、・・・および１４１ｎ−２と、を備える。
【０２１８】
また、ＲＡＭクロック制御部１３３２ａは、論理和回路１４２０、１４２１、・・・および１４２ｎを備える。また、ＲＡＭクロック制御部１３３２ａは、反転回路１４３０、１４３１、・・・および１４３ｎを備える。また、ＲＡＭクロック制御部１３３２ａは、論理積回路１４４０、１４４１、・・・および１４４ｎを備える。
【０２１９】
なお、図１４では、論理積回路を「ＡＮＤ」、論理和回路を「ＯＲ」と略記する。
以下、ＲＡＭ（ＷＡＹｎ）クロック制御信号の生成について説明する。
ＲＡＭ（ＷＡＹｎ）クロック制御信号を生成する場合、論理和回路１４０ｎ−０、１４０ｎ−１および１４０ｎ−２と、論理積回路１４１ｎ−０、１４１ｎ−１および１４１ｎ−２と、論理和回路１４２ｎと、反転回路１４３ｎと、論理積回路１４４ｎを使用する。
【０２２０】
論理和回路１４０ｎ−０の出力端は、論理積回路１４１ｎ−０に接続する。同様に、論理和回路１４０ｎ−１の出力端は、論理積回路１４１ｎ−１に接続し、論理和回路１４０ｎ−２の出力端は、論理積回路１４１ｎ−２に接続する。
【０２２１】
また、論理積回路１４１ｎ−０、１４１ｎ−１および１４１ｎ−２の出力端は、論理和回路１４２ｎの入力端に接続する。論理和回路１４２ｎの出力端は、反転回路１４３ｎの入力端に接続する。反転回路１４３ｎの出力端は、論理積回路１４４ｎの入力端に接続する。論理積回路１４４ｎの入力端は、反転回路１４３ｎの出力端の他に、命令制御部３１０の出力端とも接続し、命令フェッチ要求信号が入力される。論理積回路１４４ｎの出力端は、後述のクロックバッファ１３４１−ｎ、すなわち論理積回路１４５ｎの入力端に接続する。
【０２２２】
以上の構成において、論理和回路１４０ｎ−０には、ＴＡＧマッチ情報記憶部１３３２ｂに記憶されるＴＡＧマッチ情報のうち、第１のパイプラインについての、ＴＡＧ（ＷＡＹｎ）マッチ以外のＴＡＧマッチが入力される。例えば、論理和回路１４０ｎ−０には、表２に示したＴＡＧ（ＷＡＹｎ）マッチｄ１ｎ以外のＴＡＧマッチｄ１０、・・・およびｄ１（ｎ−１）が入力される。
【０２２３】
そして、論理和回路１４０ｎ−０は、ＴＡＧ（ＷＡＹｎ）マッチｄ１０、・・・またはｄ１（ｎ−１）が「１」の場合、すなわち、第１のパイプラインにおいてＷＡＹｎ以外のＷＡＹにＴＡＧマッチを検出した場合に、「１」を出力する。また、論理和回路１４０ｎ−０は、ＴＡＧ（ＷＡＹｎ）マッチｄ１０、・・・およびｄ１（ｎ−１）が全て「０」である場合、すなわち、第１のパイプラインにおいてＷＡＹｎ以外のＷＡＹでＴＡＧマッチを検出しない場合に、「０」を出力する。
【０２２４】
論理積回路１４１ｎ−０には、ＴＡＧマッチ情報記憶部１３３２ｂに記憶されるＴＡＧマッチ情報のうち、第１のパイプラインについての命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１、キャッシュライン非先頭アドレスｃ１が入力される。さらに、論理積回路１４１ｎ−０には、論理和回路１４０ｎ−０の出力が入力される。
【０２２５】
そして、論理積回路１４１ｎ−０は、命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１、キャッシュライン非先頭アドレスｃ１および論理和回路１４０ｎ−０の出力が全て「１」の場合に、「１」を出力する。
【０２２６】
例えば、第１のパイプラインにおける命令フェッチがＷＡＹｎ以外のＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路１４１ｎ−０は「１」を出力する。
【０２２７】
また、論理積回路１４１ｎ−０は、命令フェッチ要求ａ１、シーケンシャルアクセス通知ｂ１、キャッシュライン非先頭アドレスｃ１または論理和回路１４０ｎ−０の出力の少なくとも１つが「０」である場合に、「０」を出力する。
【０２２８】
例えば、命令フェッチ要求ａ１が「１」、かつ、シーケンシャルアクセス通知ｂ１が「０」の場合、すなわち、第１のパイプラインにおける命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路１４１ｎ−０は「０」を出力する。また、論理和回路１４０ｎ−０の出力が「０」の場合、すなわち、第１のパイプラインにおいてＷＡＹｎ以外のＷＡＹでＴＡＧマッチを検出しない場合などにも、論理積回路１４１ｎ−０は「０」を出力する。
【０２２９】
論理和回路１４０ｎ−１には、ＴＡＧマッチ情報記憶部１３３２ｂに記憶されるＴＡＧマッチ情報のうち、第２のパイプラインについての、ＴＡＧ（ＷＡＹｎ）マッチ以外のＴＡＧマッチが入力される。例えば、論理和回路１４０ｎ−１には、表２に示したＴＡＧ（ＷＡＹｎ）マッチｄ２ｎ以外のＴＡＧマッチｄ２０、・・・およびｄ２（ｎ−１）が入力される。
【０２３０】
そして、論理和回路１４０ｎ−１は、ＴＡＧ（ＷＡＹｎ）マッチｄ２０、・・・またはｄ２（ｎ−１）が「１」の場合、すなわち、第２のパイプラインにおいてＷＡＹｎ以外のＷＡＹにＴＡＧマッチを検出した場合に、「１」を出力する。また、論理和回路１４０ｎ−１は、ＴＡＧ（ＷＡＹｎ）マッチｄ２０、・・・およびｄ２（ｎ−１）が全て「０」である場合、すなわち、第２のパイプラインにおいてＷＡＹｎ以外のＷＡＹでＴＡＧマッチを検出しない場合に、「０」を出力する。
【０２３１】
論理積回路１４１ｎ−１には、ＴＡＧマッチ情報記憶部１３３２ｂに記憶されるＴＡＧマッチ情報のうち、第２のパイプラインについての命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２、キャッシュライン非先頭アドレスｃ２が入力される。さらに、論理積回路１４１ｎ−１には、論理和回路１４０ｎ−１の出力が入力される。
【０２３２】
そして、論理積回路１４１ｎ−１は、命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２、キャッシュライン非先頭アドレスｃ２および論理和回路１４０ｎ−１の出力が全て「１」の場合に、「１」を出力する。
【０２３３】
例えば、第２のパイプラインにおける命令フェッチがＷＡＹｎ以外のＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路１４１ｎ−１は「１」を出力する。
【０２３４】
また、論理積回路１４１ｎ−１は、命令フェッチ要求ａ２、シーケンシャルアクセス通知ｂ２、キャッシュライン非先頭アドレスｃ２または論理和回路１４０ｎ−１の出力の少なくとも１つが「０」である場合に、「０」を出力する。
【０２３５】
例えば、命令フェッチ要求ａ２が「１」、かつ、シーケンシャルアクセス通知ｂ２が「０」の場合、すなわち、第２のパイプラインにおける命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路１４１ｎ−１は「０」を出力する。また、論理和回路１４０ｎ−１の出力が「０」の場合、すなわち、第２のパイプラインにおいてＷＡＹｎ以外のＷＡＹでＴＡＧマッチを検出しない場合などにも、論理積回路１４１ｎ−１は「０」を出力する。
【０２３６】
論理和回路１４０ｎ−２には、ＴＡＧマッチ情報記憶部１３３２ｂに記憶されるＴＡＧマッチ情報のうち、第３のパイプラインについての、ＴＡＧ（ＷＡＹｎ）マッチ以外のＴＡＧマッチが入力される。例えば、論理和回路１４０ｎ−２には、表２に示したＴＡＧ（ＷＡＹｎ）マッチｄ３ｎ以外のＴＡＧマッチｄ３０、・・・およびｄ３（ｎ−１）が入力される。
【０２３７】
そして、論理和回路１４０ｎ−２は、ＴＡＧ（ＷＡＹｎ）マッチｄ３０、・・・またはｄ３（ｎ−１）が「１」の場合、すなわち、第３のパイプラインにおいてＷＡＹｎ以外のＷＡＹにＴＡＧマッチを検出した場合に、「１」を出力する。また、論理和回路１４０ｎ−２は、ＴＡＧ（ＷＡＹｎ）マッチｄ３０、・・・およびｄ３（ｎ−１）が全て「０」である場合、すなわち、第３のパイプラインにおいてＷＡＹｎ以外のＷＡＹでＴＡＧマッチを検出しない場合に、「０」を出力する。
【０２３８】
論理積回路１４１ｎ−２には、ＴＡＧマッチ情報記憶部１３３２ｂに記憶されるＴＡＧマッチ情報のうち、第３のパイプラインについての命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３、キャッシュライン非先頭アドレスｃ３が入力される。さらに、論理積回路１４１ｎ−２には、論理和回路１４０ｎ−２の出力が入力される。
【０２３９】
そして、論理積回路１４１ｎ−２は、命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３、キャッシュライン非先頭アドレスｃ３および論理和回路１４０ｎ−２の出力が全て「１」の場合に、「１」を出力する。
【０２４０】
例えば、第３のパイプラインにおける命令フェッチがＷＡＹｎ以外のＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理積回路１４１ｎ−２は「１」を出力する。
【０２４１】
また、論理積回路１４１ｎ−２は、命令フェッチ要求ａ３、シーケンシャルアクセス通知ｂ３、キャッシュライン非先頭アドレスｃ３または論理和回路１４０ｎ−２の出力の少なくとも１つが「０」である場合に、「０」を出力する。
【０２４２】
例えば、命令フェッチ要求ａ３が「１」、かつ、シーケンシャルアクセス通知ｂ３が「０」の場合、すなわち、第３のパイプラインにおけｒ命令フェッチ要求がシーケンシャルアクセスでない場合に、論理積回路１４１ｎ−２は「０」を出力する。また、論理和回路１４０ｎ−２の出力が「０」の場合、すなわち、第３のパイプラインにおいてＷＡＹｎ以外のＷＡＹでＴＡＧマッチを検出しない場合などにも、論理積回路１４１ｎ−２は「０」を出力する。
【０２４３】
論理和回路１４２ｎは、論理積回路１４１ｎ−０、１４１ｎ−１および１４１ｎ−２の出力のうち少なくとも１つが「１」である場合に「１」を出力する。第１乃至第３にパイプラインのける命令フェッチのうち少なくとも１つの命令フェッチがＷＡＹｎ以外のＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、論理和回路１４２ｎは「１」を出力する。
【０２４４】
また、論理和回路１４２ｎは、論理積回路１４１ｎ−０、１４１ｎ−１および１４１ｎ−２が全て「０」を出力する場合に、「０」を出力する。例えば、第１乃至第３のいずれのパイプラインにおいても、ＷＡＹｎ以外のＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスが行なわれる命令フェッチが実行されていない場合などに、論理和回路１４２ｎは「０」を出力する。
【０２４５】
反転回路１４３ｎは、論理和回路１４２ｎが出力する信号を反転し、反転した信号を論理積回路１４４ｎに出力する。論理和回路１４２ｎが「０」を出力すれば、反転回路１４３ｎは、論理積回路１４４ｎに「１」を出力する。そして、論理和回路１４２ｎが「１」を出力すれば、反転回路１４３ｎは、論理積回路１４４ｎに「０」を出力する。
【０２４６】
論理積回路１４４ｎは、反転回路１４３ｎが出力する信号と、命令フェッチ要求ａ１と、の論理積をＲＡＭ（ＷＡＹｎ）クロック制御信号としてクロックバッファ１３４１−ｎに出力する。
【０２４７】
すなわち、論理積回路１４４ｎは、第１乃至第３のパイプラインにおいて少なくとも１つの命令フェッチがＷＡＹｎ以外のＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスである場合に、ＲＡＭ（ＷＡＹｎ）クロック制御信号「０」を出力する。
【０２４８】
また、論理積回路１４４ｎは、第１乃至第３のパイプラインで、ＷＡＹｎ以外のＷＡＹ内の同一のキャッシュラインに対するシーケンシャルアクセスを行なう命令フェッチが実行されていない場合などに、ＲＡＭ（ＷＡＹｎ）クロック制御信号「１」を出力する。
【０２４９】
なお、命令制御部３１０およびＬ１キャッシュ部１３００の具体的な処理は、図７〜図９で説明した通りである。だたし、図９のステップＳ９０４〜Ｓ９０７は、以下のように動作する必要がある。この場合、ステップＳ９０８〜Ｓ９０９の処理は不要となる。
【０２５０】
ステップＳ９０４において、ＲＡＭクロック制御部１３３２ａは、ステップＳ９０３で取得したＴＡＧマッチ情報から、ＴＡＧマッチしたＷＡＹを判別する。
ステップＳ９０５において、ＲＡＭクロック制御部１３３２ａは、ステップＳ９０４でＴＡＧマッチと判定したＷＡＹにクロックが供給されているか否かを判別する。
【０２５１】
クロックが供給されている場合（ステップＳ９０５  ＹＥＳ）、ＲＡＭクロック制御部１３３２ａは、処理をステップＳ９０６に移行する。この場合、ＲＡＭクロック制御部１３３２ａは、ステップＳ９０４でＴＡＧマッチと判定したＷＡＹ以外のＷＡＹに対してクロックを停止するＲＡＭクロック制御信号を出力する（ステップＳ９０６）。
【０２５２】
クロックが停止している場合（ステップＳ９０５  ＮＯ）、ＲＡＭクロック制御部１３３２ａは、処理をステップＳ９０７に移行する。この場合、ＲＡＭクロック制御部１３３２ａは、プライオリティ制御部１３３２に対してアボート要求を通知する（ステップＳ９０７）。
【０２５３】
以上に説明した演算処理装置３００の構成において、例えば、データＲＡＭ４０４やデータＲＡＭ１３０４などは、「記憶部」の一例として挙げられる。
データＲＡＭ（ＷＡＹ０）４４０−０およびデータＲＡＭ（ＷＡＹ１）４４０−１や、データＲＡＭ（ＷＡＹ０）１３４０−０、・・・およびデータＲＡＭ（ＷＡＹｎ）１３４０−ｎなどは、「個別記憶部」の一例として挙げられる。
【０２５４】
ＴＡＧ検索部４０１、アドレス変換部４０２およびＴＡＧマッチ処理部４０３を含むユニットや、ＴＡＧ検索部１３０１、アドレス変換部１３０２、ＴＡＧマッチ処理部１３０３を含むユニットなどは、「個別記憶部特定部」の一例として挙げられる。
【０２５５】
ＷＡＹセレクト部４３１やＷＡＹセレクト部１３３１などは、「データ出力部」の一例として挙げられる。
クロックバッファ４４１−０およびクロックバッファ４４１−１や、クロックバッファ１３４１−０、１３４１−１、・・・および１３４１−ｎなどは、「クロック供給部」の一例として挙げられる。
【０２５６】
ＲＡＭクロック制御部４３２ａやＲＡＭクロック制御部１３３２ａなどは、「クロック制御部」の一例として挙げられる。
【０２５７】
以上の構成において、ＲＡＭクロック制御部４３２ａ（ＲＡＭクロック制御部１３３２ａ）は、シーケンシャルアクセスであることを検出すると、ＴＡＧマッチを検出した第１のＷＡＹ以外のＷＡＹに対してクロックを停止するＲＡＭクロック制御信号を出力する。
【０２５８】
その結果、Ｌ１キャッシュ部３３０にたいしてシーケンシャルアクセスが行なわれている間、第１のＷＡＹ以外のＷＡＹのクロックが停止するので、データＲＡＭ４０４（データＲＡＭ１３０４）の無駄な動作を抑えることができる。そして、データＲＡＭ４０４（データＲＡＭ１３０４）の消費電力を低く抑えることが可能となる。また、Ｌ１キャッシュ部４００（Ｌ１キャッシュ部１３００）の消費電力を低く抑えることが可能となる。
【０２５９】
ＲＡＭクロック制御部４３２ａ（ＲＡＭクロック制御部１３３２ａ）は、データＲＡＭ４０４（データＲＡＭ１３０４）に含まれるＷＡＹのクロック状態を監視する。そして、ＴＡＧマッチ情報に示される第１のＷＡＹのクロックが停止していることを検出する。すると、ＲＡＭクロック制御部４３２ａ（ＲＡＭクロック制御部１３３２ａ）は、プライオリティ制御部４３２（プライオリティ制御部１３３２）に対してアボート要求を行なう。そして、プライオリティ制御部４３２（プライオリティ制御部１３３２）は、実行中の処理を中止してプログラム命令の実行を正しく完結した時の状態から再開する。
【０２６０】
その結果、Ｌ１キャッシュ部４００（Ｌ１キャッシュ部１３００）は、何らかの障害により、ＴＡＧマッチ情報に示される第１のＷＡＹのクロックが停止している場合であっても、演算処理装置３００に正常に演算を実行させることが可能となる。
【０２６１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
データに対する命令を実行する命令制御部の要求に応じて前記データを出力する記憶装置を制御する制御装置において、
前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部が有する複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶されている第１の個別記憶部を特定する個別記憶部特定部と、
前記個別記憶部特定部が特定した前記第１の個別記憶部から、前記第１のデータを読み出して出力するデータ出力部と、
前記第１の個別記憶部に前記１のデータと連続して記憶されている第２のデータを、前記命令制御部が要求する場合、複数の前記個別記憶部に対してクロックをそれぞれ供給する複数のクロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させるクロック制御部と、
を備える制御装置。
（付記２）
前記クロック制御部は、前記個別記憶部特定部が特定した前記第１の個別記憶部が、クロックの供給が停止している状態であることを検出すると、実行中の処理を中止してプログラム命令の実行を正しく完結した時の状態から再開するように要求する、
ことを特徴とする付記１に記載の制御装置。
（付記３）
前記クロック制御部は、前記第１のデータと連続して記憶されている前記第２のデータを前記命令制御部が要求する間は、前記クロック供給部に対して、前記個別記憶部特定部が特定した前記第１の個別記憶部への前記クロックの供給を抑止させる、
ことを特徴とする付記１に記載の制御装置。
（付記４）
前記クロック制御部は、前記第１のデータと連続して記憶されている前記第２のデータ以外のデータを前記命令制御部が要求すると、前記クロック供給部に対して、前記記憶部が有する全ての前記個別記憶部に前記クロックを供給させる、
ことを特徴とする付記１に記載の制御装置。
（付記５）
前記クロック制御部は、前記命令制御部がプログラムカウンタの示すアドレスに基づいて分岐予測を行なって分岐しないと予測した場合に、前記第１のデータと連続して記憶されている前記第２のデータを前記命令制御部が要求したと判断する、
ことを特徴とする付記１に記載の制御装置。
（付記６）
データに対する命令を実行する命令制御部の要求に応じて前記データを出力する記憶装置において、
前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部と、
前記記憶部が備える複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶されている第１の個別記憶部を特定する個別記憶部特定部と、
前記個別記憶部特定部が特定した前記第１の個別記憶部から、前記第１のデータを読み出して出力するデータ出力部と、
前記第１の個別記憶部に前記１のデータと連続して記憶されている第２のデータを、前記命令制御部が要求する場合、複数の前記個別記憶部に対してクロックをそれぞれ供給する複数のクロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させるクロック制御部と、
を備える記憶装置。
（付記７）
前記クロック制御部は、前記個別記憶部特定部が特定した前記第１の個別記憶部が、クロックの供給が停止している状態であることを検出すると、実行中の処理を中止してプログラム命令の実行を正しく完結した時の状態から再開するように要求する、
ことを特徴とする付記６に記載の記憶装置。
（付記８）
前記クロック制御部は、前記第１のデータと連続して記憶されている前記第２のデータを前記命令制御部が要求する間は、前記クロック供給部に対して、前記個別記憶部特定部が特定した前記第１の個別記憶部への前記クロックの供給を抑止させる、
ことを特徴とする付記６に記載の記憶装置。
（付記９）
前記クロック制御部は、前記第１のデータと連続して記憶されている前記第２のデータ以外のデータを前記命令制御部が要求すると、前記クロック供給部に対して、前記記憶部が有する全ての前記個別記憶部に前記クロックを供給させる、
ことを特徴とする付記６に記載の記憶装置。
（付記１０）
前記クロック制御部は、前記命令制御部がプログラムカウンタの示すアドレスに基づいて分岐予測を行なって分岐しない予測した場合に、前記第１のデータと連続して記憶されている前記第２のデータを前記命令制御部が要求したと判断する、
ことを特徴とする付記６に記載の記憶装置。
（付記１１）
データに対する命令を実行する命令制御部の要求に応じて前記データを出力する記憶装置を制御する制御方法において、
前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部が有する複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶されている第１の個別記憶部を特定する工程と、
前記特定した前記第１の個別記憶部から、前記第１のデータを読み出して出力する工程と、
前記第１の個別記憶部に前記１のデータと連続して記憶されている第２のデータを、前記命令制御部が要求する場合、複数の前記個別記憶部に対してクロックをそれぞれ供給する複数のクロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させる工程と、
を行なう制御方法。
（付記１２）
データに対する命令を実行する命令制御部と、
前記データを保持するとともに、個別にクロックが供給される複数の個別記憶部を備える記憶部と、
複数の前記個別記憶部に対して、クロックをそれぞれ供給する複数のクロック供給部と、
前記記憶部が備える複数の前記個別記憶部のうち、前記命令制御部が要求する第１のデータが記憶される第１の個別記憶部を特定する個別記憶部特定部と、
前記個別記憶部特定部が特定する前記第１の個別記憶部から、前記第１のデータを前記命令制御部に出力するデータ出力部と、
前記第１の個別記憶部に前記１のデータと連続して記憶される第２のデータを、前記命令制御部が要求する場合、複数の前記クロック供給部のうち、前記第１の個別記憶部以外の個別記憶部にクロックを供給するクロック供給部に対して、前記クロックの供給を抑止させるクロック制御部と、
を有することを特徴とする演算処理装置。
【符号の説明】
【０２６２】
３１０      命令制御部
４００      Ｌ１キャッシュ部
４０１      ＴＡＧ検索部
４１０−０      ＴＡＧ（ＷＡＹ０）検索部
４１０−１      ＴＡＧ（ＷＡＹ１）検索部
４０２      アドレス変換部
４０３      ＴＡＧマッチ処理部
４３０−０      ＴＡＧ（ＷＡＹ０）検出部
４３０−１      ＴＡＧ（ＷＡＹ１）検出部
４３１      ＷＡＹセレクト部
４３２      プライオリティ制御部
４３２ａ      ＲＡＭクロック制御部
４３２ｂ      ＴＡＧマッチ情報記憶部
４０４      データＲＡＭ
４４０−０      データＲＡＭ（ＷＡＹ０）
４４０−１      データＲＡＭ（ＷＡＹ１）
【図１】
2011081564.tif 000005
【図２】
2011081564.tif 000006
【図３】
2011081564.tif 000007
【図４】
2011081564.tif 000008
【図５】
2011081564.tif 000009
【図６】
2011081564.tif 000010
【図７】
2011081564.tif 000011
【図８】
2011081564.tif 000012
【図９】
2011081564.tif 000013
【図１０】
2011081564.tif 000014
【図１１】
2011081564.tif 000015
【図１４】
2011081564.tif 000016
【図１２】
2011081564.tif 000017
【図１３】
2011081564.tif 000018