(57)【要約】【課題】  アクセスモードを適切に選択することが可能なキャッシュシステムを得る。【解決手段】  キャッシュ制御部２は、ＣＰＵ８０からキャッシュメモリ５０へのアクセスの状況に応じて、２サイクルアクセスモードと１サイクルアクセスモードとを切り替える。具体的に、キャッシュ制御部２は、スヌープ要求信号Ｓ１がアサートされている「Ｈ」期間、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力し、それ以外の期間では、「Ｌ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。キャッシュアクセスモード切替信号Ｓ１０は、キャッシュメモリ５０に入力される。キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルの場合は１サイクルアクセスモードであり、キャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合は２サイクルアクセスモードである。【選択図】図１
2005084712.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリと、
前記キャッシュメモリを制御するキャッシュ制御部と、
前記キャッシュ制御部を介して前記キャッシュメモリにアクセス可能なプロセッサと
を備え、
前記キャッシュメモリには、前記プロセッサとは異なる機能ブロックからも、前記キャッシュ制御部を介してアクセス可能であり、
前記プロセッサから前記キャッシュメモリへのアクセスに関して、前記キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、前記第１の速度よりも早い第２の速度、かつ前記第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、
前記キャッシュ制御部は、前記機能ブロックから前記キャッシュメモリへのアクセスの状況に応じて、前記第１のモードと前記第２のモードとを切り替える、キャッシュシステム。
【請求項２】
前記キャッシュ制御部は、前記第１のモードで前記プロセッサが前記キャッシュメモリへアクセスしている状態において、前記機能ブロックから前記キャッシュメモリへのアクセス要求を受けた場合、前記第１のモードを前記第２のモードに切り替える、請求項１に記載のキャッシュシステム。
【請求項３】
キャッシュメモリと、
前記キャッシュメモリを制御するキャッシュ制御部と、
前記キャッシュ制御部を介して前記キャッシュメモリにアクセス可能なプロセッサと
を備え、
前記プロセッサから前記キャッシュメモリへのアクセスに関して、前記キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、前記第１の速度よりも早い第２の速度、かつ前記第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、
前記キャッシュ制御部は、前記プロセッサから前記キャッシュメモリへのアクセス要求を受け付けることができるか否かに応じて、前記第１のモードと前記第２のモードとを切り替える、キャッシュシステム。
【請求項４】
前記キャッシュ制御部は、前記第１のモードで前記プロセッサが前記キャッシュメモリへアクセスしている状態において、前記プロセッサから前記キャッシュメモリへの新たなアクセス要求を受け付けることができない場合、前記第１のモードを前記第２のモードに切り替える、キャッシュシステム。
【請求項５】
前記キャッシュメモリには、前記プロセッサとは異なる機能ブロックからも、前記キャッシュ制御部を介してアクセス可能であり、
前記機能ブロックから前記キャッシュメモリへのアクセスに関しても、前記キャッシュ制御部は、互いに切替可能な、前記第１のモードと前記第２のモードとを有しており、
前記キャッシュ制御部は、前記第１のモードで前記機能ブロックが前記キャッシュメモリへアクセスしている状態において、前記プロセッサから前記キャッシュメモリへのアクセス要求を受け付けることができない場合、前記第１のモードを前記第２のモードに切り替える、請求項３に記載のキャッシュシステム。
【請求項６】
キャッシュメモリと、
前記キャッシュメモリを制御するキャッシュ制御部と、
前記キャッシュ制御部を介して前記キャッシュメモリにアクセス可能なプロセッサと
を備え、
前記キャッシュメモリには、前記プロセッサとは異なる機能ブロックからも、前記キャッシュ制御部を介してアクセス可能であり、
前記プロセッサ及び前記機能ブロックから前記キャッシュメモリへの各アクセスに関して、前記キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、前記第１の速度よりも早い第２の速度、かつ前記第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、
前記キャッシュ制御部は、前記プロセッサから前記キャッシュメモリへのアクセス要求と、前記機能ブロックから前記キャッシュメモリへのアクセス要求とを重複して受けた場合、前記プロセッサ及び前記機能ブロックから前記キャッシュメモリへの各アクセスを、いずれも前記第２のモードで実行する、キャッシュシステム。
【請求項７】
キャッシュメモリと、
前記キャッシュメモリを制御するキャッシュ制御部と、
前記キャッシュ制御部を介して前記キャッシュメモリにアクセス可能なプロセッサと
を備え、
前記プロセッサから前記キャッシュメモリへのアクセスに関して、前記キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、前記第１の速度よりも早い第２の速度、かつ前記第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、
前記キャッシュ制御部は、分岐命令の実行に基づく前記プロセッサから前記キャッシュメモリへのアクセスが、前記キャッシュメモリからの特定の分岐先データの読み出しである場合、前記プロセッサから前記キャッシュメモリへのアクセスを前記第２のモードで実行する、キャッシュシステム。
【請求項８】
キャッシュメモリと、
前記キャッシュメモリを制御するキャッシュ制御部と、
前記キャッシュ制御部を介して前記キャッシュメモリにアクセス可能なプロセッサと
を備え、
前記プロセッサから前記キャッシュメモリへのアクセスに関して、前記キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、前記第１の速度よりも早い第２の速度、かつ前記第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、
前記キャッシュ制御部は、前記プロセッサによってフェッチされた命令コード又は該命令コードのデコード結果を判定することにより、前記プロセッサから前記キャッシュメモリへのアクセスを、前記第１のモード又は前記第２のモードで実行する、キャッシュシステム。
【請求項９】
キャッシュメモリと、
前記キャッシュメモリを制御するキャッシュ制御部と、
前記キャッシュ制御部を介して前記キャッシュメモリにアクセス可能なプロセッサと
を備え、
前記プロセッサから前記キャッシュメモリへのアクセスに関して、前記キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、前記第１の速度よりも早い第２の速度、かつ前記第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、
前記キャッシュ制御部は、前記プロセッサから前記キャッシュメモリへアクセスされたが、前記プロセッサが必要とするデータが前記キャッシュメモリ内に格納されていない場合、前記プロセッサから前記キャッシュメモリへの次回のアクセスを前記第２のモードで実行する、キャッシュシステム。
【請求項１０】
キャッシュメモリと、
前記キャッシュメモリを制御するキャッシュ制御部と、
前記キャッシュ制御部を介して前記キャッシュメモリにアクセス可能なプロセッサと
を備え、
前記プロセッサから前記キャッシュメモリへのアクセスに関して、前記キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、前記第１の速度よりも早い第２の速度、かつ前記第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、
前記キャッシュ制御部は、前記第１のモードでのアクセス要求に連続して前記第２のモードでのアクセス要求が発生したことに起因して、前記第１のモードでアクセスする第１のアクセス期間の一部に前記第２のモードでアクセスする第２のアクセス期間が重複することとなる場合、前記第２のアクセス期間におけるアクセスを前記第１のモードに変更する、キャッシュシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを備えるキャッシュシステムに関し、特に、低速かつ低消費電力でキャッシュメモリを動作させるアクセスモードと、高速かつ高消費電力でキャッシュメモリを動作させるアクセスモードとを有するキャッシュシステムに関する。
【背景技術】
【０００２】
二つのアクセスモードを有するキャッシュシステムの第１の例が、下記特許文献１に開示されている。第１のアクセスモード（全部アクセスモード）では、アドレスメモリに関するヒット／ミス判定動作に並行して、全てのウェイに対するインデックス動作が行われる。これにより、キャッシュメモリから外部へのデータ出力の高速化が図られる。一方、第２のアクセスモード（唯一アクセスモード）では、インデックス動作に先立ってアドレスメモリに関するヒット／ミス判定動作が行われ、当該判定動作により得られたウェイ選択信号によって選択されたウェイに対してのみ、インデックス動作が行われる。これにより、必要最小限のデータメモリ領域のみが動作することとなり、消費電力の低減が図られる。
【０００３】
また、二つのアクセスモードを有するキャッシュシステムの第２の例が、下記特許文献２に開示されている。キャッシュシステムはＣＰＵとキャッシュメモリとを備えており、ＣＰＵはプロセッサコアとプリフェッチ装置とを有している。プリフェッチ装置は、命令バッファ、バッファ占有度検出器、及び分岐命令予測器を含んでいる。第１のアクセスモード（並列アクセスモード）では、アドレスメモリに関するヒット／ミス判定動作に並行して、全てのデータＲＡＭユニットに対するインデックス動作が行われる。一方、第２のアクセスモード（直列アクセスモード）では、インデックス動作に先立ってタグＲＡＭに関するヒット／ミス判定動作が行われ、当該判定動作により得られた一致信号によって選択された一つのデータＲＡＭユニットに対してのみ、インデックス動作が行われる。
【０００４】
【特許文献１】特開平１１−３９２１６号公報
【特許文献２】特開平８−２２１３２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１，２に開示された従来のキャッシュシステムには、以下のような問題がある。
【０００６】
上記特許文献１において、全部アクセスモードと唯一アクセスモードとの選択が行われる例として記載されているのは、連続読み出しのようなバーストアクセスの場合のみである。すなわち上記特許文献１には、バーストアクセスの場合において、第１回目のアクセスでは全部アクセスモードでキャッシュメモリを動作させ、第２回目以降のアクセスでは唯一アクセスモードで動作させることが記載されている。
【０００７】
しかしながら、二つのアクセスモードの選択が必要となるのは、バーストアクセスにおける第１回目のアクセスと第２回目以降のアクセスとに限らない。
【０００８】
例えば、複数のキャッシュシステムが搭載されている半導体装置において、一のキャッシュシステムが消費電力優先のアクセスモード（上記第２のアクセスモード）で動作している状況で、他のキャッシュシステムから高速な処理を要するアクセス要求があった場合は、高速動作優先のアクセスモード（上記第１のアクセスモード）に切り替えて、他のキャッシュシステムからのアクセス要求に対する処理を早急に開始することが望ましい。
【０００９】
また、スヌープ処理やライトバック処理等に起因して、キャッシュシステムが新たなアクセス要求を受け付けることができない状態になった場合は、パイプライン処理の後段の処理が詰まるために複数の命令間にレジスタ依存性が生じやすくなり、その結果、性能の低下を引き起こす可能性が高くなる。従って、このような状態になった場合には、高速動作優先のアクセスモードでキャッシュメモリを動作させることが望ましい。
【００１０】
また、キャッシュシステムが複数のアクセス要求を同時に受けた場合、優先度の高いアクセス要求に対する処理が終了するまで、優先度の低いアクセス要求に対する処理の実行開始が待たされることとなるため、性能の低下を引き起こす。従って、複数のアクセス要求を同時に受けた場合には、高速動作優先のアクセスモードでキャッシュメモリを動作させることが望ましい。
【００１１】
また、分岐命令が実行された際、分岐後の処理に高速動作が求められる場合もある。例えば、組み込み用途における割り込み処理は、実時間内で応答が求められることが多い。従って、分岐先アドレスに割り込みルーチンが指定されている場合には、高速動作優先のアクセスモードでキャッシュメモリを動作させることが望ましい。
【００１２】
また、上記特許文献１，２においては、発行される命令の種類によってアクセスモードを切り替えることができない。しかも上記特許文献２においては、プリフェッチ装置を有しない装置には対応できず、また、分岐命令予測器が必要であるために回路規模が増大する。
【００１３】
また、プロセッサが必要とするデータがキャッシュメモリ内に格納されていない場合には、外部メモリとのデータのやりとりが生じるため、性能低下を引き起こす。しかも、パイプライン処理の後段の処理が詰まるために複数の命令間にレジスタ依存性が生じやすくなり、その結果、さらに性能の低下を引き起こす可能性が高くなる。従って、このような場合には、高速動作優先のアクセスモードでキャッシュメモリを動作させることが望ましい。
【００１４】
また、詳細は後述するが、消費電力優先のアクセスモードから高速動作優先のアクセスモードに切り替える際に、場合によっては、高速動作を実現できないうえに消費電力の低減も図れないという、不適切な状況が発生し得る。
【００１５】
本発明はこれらの問題を解決するために成されたものであり、プロセッサがシステム全体の内部状況を判断することにより、キャッシュシステムが搭載されている半導体装置全体の処理速度を低下させず、しかも可能な限り低消費電力で動作するように、アクセスモードを適切に選択することが可能なキャッシュシステムを得ることを目的とする。
【００１６】
また、本発明は、プロセッサが実行する命令コードの種類に応じてアクセスモードを適切に選択することが可能なキャッシュシステムを得ることを目的とする。
【課題を解決するための手段】
【００１７】
第１の発明によれば、キャッシュシステムは、キャッシュメモリと、キャッシュメモリを制御するキャッシュ制御部と、キャッシュ制御部を介してキャッシュメモリにアクセス可能なプロセッサとを備える。キャッシュメモリには、プロセッサとは異なる機能ブロックからも、キャッシュ制御部を介してアクセス可能であり、プロセッサからキャッシュメモリへのアクセスに関して、キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、第１の速度よりも早い第２の速度、かつ第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、キャッシュ制御部は、機能ブロックからキャッシュメモリへのアクセスの状況に応じて、第１のモードと第２のモードとを切り替える。
【００１８】
第２の発明によれば、キャッシュシステムは、キャッシュメモリと、キャッシュメモリを制御するキャッシュ制御部と、キャッシュ制御部を介してキャッシュメモリにアクセス可能なプロセッサとを備える。プロセッサからキャッシュメモリへのアクセスに関して、キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、第１の速度よりも早い第２の速度、かつ第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、キャッシュ制御部は、プロセッサからキャッシュメモリへのアクセス要求を受け付けることができるか否かに応じて、第１のモードと第２のモードとを切り替える。
【００１９】
第３の発明によれば、キャッシュシステムは、キャッシュメモリと、キャッシュメモリを制御するキャッシュ制御部と、キャッシュ制御部を介してキャッシュメモリにアクセス可能なプロセッサとを備える。キャッシュメモリには、プロセッサとは異なる機能ブロックからも、キャッシュ制御部を介してアクセス可能であり、プロセッサ及び機能ブロックからキャッシュメモリへの各アクセスに関して、キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、第１の速度よりも早い第２の速度、かつ第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、キャッシュ制御部は、プロセッサからキャッシュメモリへのアクセス要求と、機能ブロックからキャッシュメモリへのアクセス要求とを重複して受けた場合、プロセッサ及び機能ブロックからキャッシュメモリへの各アクセスを、いずれも第２のモードで実行する。
【００２０】
第４の発明によれば、キャッシュシステムは、キャッシュメモリと、キャッシュメモリを制御するキャッシュ制御部と、キャッシュ制御部を介してキャッシュメモリにアクセス可能なプロセッサとを備える。プロセッサからキャッシュメモリへのアクセスに関して、キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、第１の速度よりも早い第２の速度、かつ第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、キャッシュ制御部は、分岐命令の実行に基づくプロセッサからキャッシュメモリへのアクセスが、キャッシュメモリからの特定の分岐先データの読み出しである場合、プロセッサからキャッシュメモリへのアクセスを第２のモードで実行する。
【００２１】
第５の発明によれば、キャッシュシステムは、キャッシュメモリと、キャッシュメモリを制御するキャッシュ制御部と、キャッシュ制御部を介してキャッシュメモリにアクセス可能なプロセッサとを備える。プロセッサからキャッシュメモリへのアクセスに関して、キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、第１の速度よりも早い第２の速度、かつ第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、キャッシュ制御部は、プロセッサによってフェッチされた命令コード又は該命令コードのデコード結果を判定することにより、プロセッサからキャッシュメモリへのアクセスを第１のモード又は第２のモードで実行する。
【００２２】
第６の発明によれば、キャッシュシステムは、キャッシュメモリと、キャッシュメモリを制御するキャッシュ制御部と、キャッシュ制御部を介してキャッシュメモリにアクセス可能なプロセッサとを備える。プロセッサからキャッシュメモリへのアクセスに関して、キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、第１の速度よりも早い第２の速度、かつ第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、キャッシュ制御部は、プロセッサからキャッシュメモリへアクセスされたが、プロセッサが必要とするデータがキャッシュメモリ内に格納されていない場合、プロセッサからキャッシュメモリへの次回のアクセスを第２のモードで実行する。
【００２３】
第７の発明によれば、キャッシュシステムは、キャッシュメモリと、キャッシュメモリを制御するキャッシュ制御部と、キャッシュ制御部を介してキャッシュメモリにアクセス可能なプロセッサとを備える。プロセッサからキャッシュメモリへのアクセスに関して、キャッシュ制御部は、互いに切替可能な、第１の速度、かつ第１の消費電力でアクセスする第１のモードと、第１の速度よりも早い第２の速度、かつ第１の消費電力よりも高い第２の消費電力でアクセスする第２のモードとを有しており、キャッシュ制御部は、第１のモードでのアクセス要求に連続して第２のモードでのアクセス要求が発生したことに起因して、第１のモードでアクセスする第１のアクセス期間の一部に第２のモードでアクセスする第２のアクセス期間が重複することとなる場合、第２のアクセス期間におけるアクセスを第１のモードに変更する。
【発明の効果】
【００２４】
第１〜第７の発明によれば、キャッシュシステムが搭載されている半導体装置全体の処理速度を低下させず、しかも可能な限り低消費電力でキャッシュメモリを動作させることが可能となる。
【００２５】
特に第５の発明によれば、プロセッサが実行する命令コードの種類に応じてアクセスモードを適切に選択することが可能となる。
【発明を実施するための最良の形態】
【００２６】
実施の形態１．
図１は、本発明の実施の形態１に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。図１に示すように、半導体装置は、ＣＰＵ（プロセッサ）１と、ＣＰＵ１とは異なる機能ブロック（本実施の形態１の例ではＣＰＵ８０）と、キャッシュ部１００と、バス調停回路６０と、外部バス３と、外部メモリ７０とを備えている。キャッシュ部１００は、キャッシュ制御部２と、キャッシュメモリ５０とを有している。キャッシュ制御部２は、キャッシュメモリ５０の動作を制御する。ＣＰＵ１は、キャッシュ制御部２を介してキャッシュメモリ５０にアクセス可能である。キャッシュメモリ５０には、ＣＰＵ８０からも、キャッシュ制御部２を介してアクセス可能である。
【００２７】
ＣＰＵ１には、キャッシュアクセス受付信号Ｓ５及びキャッシュデータレディ信号Ｓ６が、キャッシュ制御部２から入力される。また、ＣＰＵ１には、例えば３２ビットの出力データＤ２が、キャッシュメモリ５０から入力される。ＣＰＵ１は、キャッシュアクセス要求信号Ｓ４、及び、例えば２７ビットのキャッシュアドレスＡ２を出力する。
【００２８】
キャッシュ制御部２には、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２が、ＣＰＵ１から入力される。また、キャッシュ制御部２には、スヌープ要求信号Ｓ１、及び、例えば２７ビットのスヌープアドレスＡ１が、ＣＰＵ８０から入力される。また、キャッシュ制御部２には、出力データＤ２及びＭｉｓｓ信号Ｓ１１が、キャッシュメモリ５０から入力される。また、キャッシュ制御部２には、バスアクセス受付信号Ｓ８が、バス調停回路６０から入力される。キャッシュ制御部２は、キャッシュアクセス受付信号Ｓ５、キャッシュデータレディ信号Ｓ６、スヌープ要求受付信号Ｓ２、スヌープデータレディ信号Ｓ３、バスアクセス要求信号Ｓ７、例えば１２８ビットのライトバックデータＤ１、タグイネーブル信号Ｓ９、例えば２７ビットのアクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０を出力する。
【００２９】
ＣＰＵ８０には、スヌープ要求受付信号Ｓ２及びスヌープデータレディ信号Ｓ３が、キャッシュ制御部２から入力される。また、ＣＰＵ８０には、出力データＤ２が、キャッシュメモリ５０から入力される。ＣＰＵ８０は、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。
【００３０】
キャッシュメモリ５０には、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０が、キャッシュ制御部２から入力される。キャッシュメモリ５０は、Ｍｉｓｓ信号Ｓ１１及び出力データＤ２を出力する。
【００３１】
バス調停回路６０には、バスアクセス要求信号Ｓ７が、キャッシュ制御部２から入力される。バス調停回路６０は、バスアクセス受付信号Ｓ８を出力する。
【００３２】
外部メモリ７０には、ライトバックデータＤ１が、キャッシュ制御部２から外部バス３を介して入力される。
【００３３】
ＣＰＵ１は、キャッシュメモリ５０内に格納されているデータを読み出す場合、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２は、キャッシュ制御部２に入力される。
【００３４】
キャッシュ制御部２は、同一のサイクル期間内にキャッシュメモリ５０への複数のアクセス要求があった場合、それらを調停する機能を有する。かかる調停機能は周知であるため、詳細な説明は省略する。
【００３５】
キャッシュ制御部２は、キャッシュアクセス要求信号Ｓ４を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、キャッシュアクセス受付信号Ｓ５と、タグイネーブル信号Ｓ９と、キャッシュアドレスＡ２に基づきアクセスアドレスＡ３とを出力する。キャッシュアクセス受付信号Ｓ５は、ＣＰＵ１に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【００３６】
ＣＰＵ８０は、キャッシュメモリ５０内に格納されているデータを読み出す場合、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。スヌープ要求信号Ｓ１及びスヌープアドレスＡ１は、キャッシュ制御部２に入力される。
【００３７】
キャッシュ制御部２は、スヌープ要求信号Ｓ１を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、スヌープ要求受付信号Ｓ２と、タグイネーブル信号Ｓ９と、スヌープアドレスＡ１に基づきアクセスアドレスＡ３とを出力する。スヌープ要求受付信号Ｓ２は、ＣＰＵ８０に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【００３８】
ＣＰＵ１及びＣＰＵ８０からキャッシュメモリ５０への各アクセスに関して、キャッシュ制御部２は、第１の速度、かつ第１の消費電力でアクセスするモード（以下「２サイクルアクセスモード」と称する）と、第１の速度よりも早い第２の速度、かつ第１の消費電力よりも高い第２の消費電力でアクセスするモード（本明細書において「１サイクルアクセスモード」）とを有している。
【００３９】
キャッシュ制御部２は、ＣＰＵ８０からキャッシュメモリ５０へのアクセスの状況に応じて、２サイクルアクセスモードと１サイクルアクセスモードとを切り替える。具体的に、キャッシュ制御部２は、スヌープ要求信号Ｓ１がアサートされている「Ｈ（Ｈｉｇｈ）」期間、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力し、それ以外の期間では、「Ｌ（Ｌｏｗ）」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。キャッシュアクセスモード切替信号Ｓ１０は、キャッシュメモリ５０に入力される。キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルの場合は１サイクルアクセスモードであり、キャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合は２サイクルアクセスモードである。
【００４０】
あるいは、キャッシュ制御部２は、スヌープ要求信号Ｓ１に基づくキャッシュアクセスの場合は、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力し、一方、キャッシュアクセス要求信号Ｓ４に基づくキャッシュアクセスの場合は、「Ｌ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力してもよい。
【００４１】
キャッシュメモリ５０は、タグイネーブル信号Ｓ９を受け付けると、アクセスアドレスＡ３及びキャッシュアクセスモード切替信号Ｓ１０に基づいて、データの読み出し処理を開始し、Ｍｉｓｓ信号Ｓ１１及び出力データＤ２を出力する。
【００４２】
キャッシュアクセス要求信号Ｓ４に基づくキャッシュアクセスである場合、キャッシュ制御部２は、ＣＰＵ１が必要とするデータがキャッシュメモリ５０内に格納されていることをＭｉｓｓ信号Ｓ１１に基づいて判別すると、出力データＤ２の出力タイミングに同期してキャッシュデータレディ信号Ｓ６を出力する。キャッシュデータレディ信号Ｓ６は、ＣＰＵ１に入力される。
【００４３】
スヌープ要求信号Ｓ１に基づくキャッシュアクセスである場合、キャッシュ制御部２は、ＣＰＵ８０が必要とするデータがキャッシュメモリ５０内に格納されていることをＭｉｓｓ信号Ｓ１１に基づいて判別すると、出力データＤ２の出力タイミングに同期してスヌープデータレディ信号Ｓ３を出力する。スヌープデータレディ信号Ｓ３は、ＣＰＵ８０に入力される。
【００４４】
キャッシュメモリ５０から読み出した出力データＤ２を外部メモリ７０に書き戻す場合、キャッシュ制御部２は、バスアクセス要求信号Ｓ７を出力する。バスアクセス要求信号Ｓ７は、バス調停回路６０に入力される。バス調停回路６０は、外部メモリ７０に接続されている外部バス３が使用可能である場合は、バスアクセス受付信号Ｓ８を出力する。バスアクセス受付信号Ｓ８は、キャッシュ制御部２に入力される。キャッシュ制御部２は、バスアクセス受付信号Ｓ８を受け付けると、ライトバックデータＤ１を出力する。ライトバックデータＤ１は、外部バス３を介して外部メモリ７０に入力される。
【００４５】
図２，３は、キャッシュ制御部２の構成の一部をそれぞれ示すブロック図である。図２を参照して、キャッシュ制御部２は、切替信号生成回路２ａを有している。切替信号生成回路２ａは、スヌープ要求信号Ｓ１を、キャッシュアクセスモード切替信号Ｓ１０として出力する。
【００４６】
あるいは、図３に示すように、キャッシュ制御部２は、切替信号生成回路２ｂを有している。切替信号生成回路２ｂは、スヌープ要求受付信号Ｓ２を、キャッシュアクセスモード切替信号Ｓ１０として出力する。
【００４７】
図４は、キャッシュメモリ５０の具体的な構成を示すブロック図である。キャッシュメモリ５０は、２ウェイ・セット・アソシアティブ方式の構成を有している。キャッシュメモリ５０は、タグメモリ１０１と、ラッチ回路１０６と、比較器９２ａ，９２ｂと、ミス判定装置１０３と、キャッシュアクセスモード切替装置１０９と、データメモリ１０４と、セレクタ１０５，１１１と、フリップフロップ１１０とを有している。
【００４８】
タグメモリ１０１は、アドレスメモリであって、いずれもアドレスアレイであるタグＷａｙ０とタグＷａｙ１とを含んでいる。タグＷａｙ０及びタグＷａｙ１は、それぞれインデックスアドレスに対応させてタグアドレスを記憶している。
【００４９】
タグＷａｙ０及びタグＷａｙ１には、図１に示したアクセスアドレスＡ３の下位部であるインデックスアドレスＡ３ｂ（例えば８ビット）がそれぞれ入力される。タグＷａｙ０及びタグＷａｙ１は、入力されたインデックスアドレスＡ３ｂに対応するタグアドレス（例えば１７ビット）をそれぞれ出力する。
【００５０】
インデックスアドレスＡ３ｂによって特定されるタグＷａｙ０のタグアドレスは、同一のインデックスアドレスＡ３ｂによって特定されるデータＷａｙ０（後述）のデータに関するアドレスである。同様に、インデックスアドレスＡ３ｂによって特定されるタグＷａｙ１のタグアドレスは、同一のインデックスアドレスＡ３ｂによって特定されるデータＷａｙ１（後述）のデータに関するアドレスである。
【００５１】
タグＷａｙ０及びタグＷａｙ１には、タグイネーブル信号Ｓ９がそれぞれ入力される。タグＷａｙ０及びタグＷａｙ１は、タグイネーブル信号Ｓ９が「Ｈ」レベルの場合には動作し、タグイネーブル信号Ｓ９が「Ｌ」レベルの場合には動作しない。
【００５２】
比較器９２ａ，９２ｂには、図１に示したアクセスアドレスＡ３の上位部であるタグアドレスＡ３ａ（例えば１７ビット）が、ラッチ回路１０６を介してそれぞれ入力される。ラッチ回路１０６は、入力されたタグアドレスＡ３ａを１／２サイクル期間遅延させて出力する。
【００５３】
比較器９２ａは、タグＷａｙ０から入力されたタグアドレスと、ラッチ回路１０６から入力されたタグアドレスＡ３ａとを比較する。そして、比較器９２ａは、両者が一致している場合、つまり、指定されたアドレスのデータがデータＷａｙ０に存在している場合（即ちヒットの場合）には、「Ｈ」レベルのＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０を出力する。一方、両者が一致していない場合、つまり、指定されたアドレスのデータがデータＷａｙ０に存在していない場合（即ちミスヒットの場合）には、「Ｌ」レベルのＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０を出力する。Ｔａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０は、ミス判定装置１０３及びキャッシュアクセスモード切替装置１０９に入力される。
【００５４】
比較器９２ｂは、タグＷａｙ１から入力されたタグアドレスと、ラッチ回路１０６から入力されたタグアドレスＡ３ａとを比較する。そして、比較器９２ｂは、両者が一致している場合、つまり、指定されたアドレスのデータがデータＷａｙ１に存在している場合（即ちヒットの場合）には、「Ｈ」レベルのＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を出力する。一方、両者が一致していない場合、つまり、指定されたアドレスのデータがデータＷａｙ１に存在していない場合（即ちミスヒットの場合）には、「Ｌ」レベルのＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を出力する。Ｔａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１は、ミス判定装置１０３及びキャッシュアクセスモード切替装置１０９に入力される。
【００５５】
ミス判定装置１０３は、Ｔａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０及びＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１がいずれも「Ｌ」レベルである場合は、指定されたアドレスのデータがデータＷａｙ０内にもデータＷａｙ１内にも存在していないことを示す内容のＭｉｓｓ信号Ｓ１１を出力する。
【００５６】
データメモリ１０４は、いずれもデータアレイであるデータＷａｙ０とデータＷａｙ１とを含んでいる。データＷａｙ０及びデータＷａｙ１は、それぞれインデックスアドレスに対応させてデータを記憶している。なお、本明細書において、「データ」という用語には、命令コード及びオペランドデータの双方が含まれるものとする。
【００５７】
データＷａｙ０内に記憶されているデータは、インデックスアドレスＡ３ｂを下位アドレスとし、同一のインデックスアドレスＡ３ｂに対応させてタグＷａｙ０内に記憶されているタグアドレスを上位アドレスとするデータである。同様に、データＷａｙ１内に記憶されているデータは、インデックスアドレスＡ３ｂを下位アドレスとし、同一のインデックスアドレスＡ３ｂに対応させてタグＷａｙ１内に記憶されているタグアドレスを上位アドレスとするデータである。
【００５８】
フリップフロップ１１０は、入力されたインデックスアドレスＡ３ｂを、１サイクル期間遅延させて出力する。フリップフロップ１１０の出力は、セレクタ１１１の第１の入力端子に入力される。
【００５９】
セレクタ１１１の第２の入力端子には、インデックスアドレスＡ３ｂが入力される。
【００６０】
セレクタ１１１には、図１に示したキャッシュ制御部２からキャッシュアクセスモード切替信号Ｓ１０が入力される。セレクタ１１１は、キャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合には第１の入力端子を選択し、「Ｈ」レベルの場合には第２の入力端子を選択する。
【００６１】
データＷａｙ０及びデータＷａｙ１には、セレクタ１１１の出力がそれぞれ入力されるとともに、キャッシュアクセスモード切替装置１０９からＷａｙ０ ｅｎａｂｌｅ信号Ｓ２２及びＷａｙ１ ｅｎａｂｌｅ信号Ｓ２３がそれぞれ入力される。
【００６２】
Ｗａｙ０ ｅｎａｂｌｅ信号Ｓ２２が「Ｈ」レベルの場合には、データＷａｙ０は、セレクタ１１１の出力に対応するデータを出力する。データＷａｙ０から出力されたデータは、セレクタ１０５の第１の入力端子に入力される。Ｗａｙ０ ｅｎａｂｌｅ信号Ｓ２２が「Ｌ」レベルの場合には、データＷａｙ０は動作しない。
【００６３】
Ｗａｙ１ ｅｎａｂｌｅ信号Ｓ２３が「Ｈ」レベルの場合には、データＷａｙ１は、セレクタ１１１の出力に対応するデータを出力する。データＷａｙ１から出力されたデータは、セレクタ１０５の第２の入力端子に入力される。Ｗａｙ１ ｅｎａｂｌｅ信号Ｓ２３が「Ｌ」レベルの場合には、データＷａｙ１は動作しない。
【００６４】
セレクタ１０５には、キャッシュアクセスモード切替装置１０９からＷａｙ ｓｅｌｅｃｔ信号Ｓ２４が入力される。セレクタ１０５は、Ｗａｙ ｓｅｌｅｃｔ信号Ｓ２４が「Ｌ」レベルの場合には第１の入力端子を選択し、「Ｈ」レベルの場合には第２の入力端子を選択する。
【００６５】
キャッシュアクセスモード切替装置１０９には、図１に示したキャッシュ制御部２からキャッシュアクセスモード切替信号Ｓ１０が入力される。キャッシュアクセスモード切替装置１０９による切替制御によって、キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルの場合にはキャッシュメモリ５０は１サイクルアクセスモードで動作し、キャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合にはキャッシュメモリ５０は２サイクルアクセスモードで動作する。
【００６６】
図５は、キャッシュアクセスモード切替装置１０９の具体的な構成を示すブロック図である。キャッシュアクセスモード切替装置１０９は、ラッチ回路９１０，９１１，９２０，９２１と、セレクタ９３０，９３１，９４とを有している。
【００６７】
ラッチ回路９１０には、図４に示した比較器９２ａからＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０が入力される。ラッチ回路９１０は、入力されたＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０を、１／２サイクル期間遅延させて出力する。ラッチ回路９１０から出力されたＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０は、セレクタ９３０の第１の入力端子に入力される。
【００６８】
ラッチ回路９１１には、図４に示した比較器９２ｂからＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１が入力される。ラッチ回路９１１は、入力されたＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を、１／２サイクル期間遅延させて出力する。ラッチ回路９１１から出力されたＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１は、セレクタ９３１の第１の入力端子に入力される。
【００６９】
セレクタ９３０，９３１の各第２の入力端子には、「Ｈ」レベルを与える電源電位がそれぞれ入力されている。また、セレクタ９３０，９３１には、図１に示したキャッシュ制御部２からキャッシュアクセスモード切替信号Ｓ１０が入力される。
【００７０】
キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルの場合、セレクタ９３０は、Ｗａｙ０ ｅｎａｂｌｅ信号Ｓ２２として、「Ｈ」レベルの信号を出力する。従って、１サイクルアクセスモード時には、１サイクル期間を使ってキャッシュメモリ５０からデータが出力される。
【００７１】
一方、キャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合、セレクタ９３０は、Ｗａｙ０ ｅｎａｂｌｅ信号Ｓ２２として、ラッチ回路９１０から入力されたＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０を出力する。セレクタ９３０に入力されるＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０は、図４に示した比較器９２ａから出力されたＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０よりも、ラッチ回路９１０によって１／２サイクル期間遅延されている。従って、データＷａｙ０が動作するサイクル期間は、タグＷａｙ０が動作するサイクル期間よりも１サイクル期間後となる。従って、２サイクルアクセスモード時には、２サイクル期間を使ってキャッシュメモリ５０からデータが出力される。
【００７２】
キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルの場合、セレクタ９３１は、Ｗａｙ１ ｅｎａｂｌｅ信号Ｓ２３として、「Ｈ」レベルの信号を出力する。従って、１サイクルアクセスモード時には、１サイクル期間を使ってキャッシュメモリ５０からデータが出力される。
【００７３】
一方、キャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合、セレクタ９３１は、Ｗａｙ１ ｅｎａｂｌｅ信号Ｓ２３として、ラッチ回路９１１から入力されたＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を出力する。セレクタ９３１に入力されるＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１は、図４に示した比較器９２ｂから出力されたＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１よりも、ラッチ回路９１１によって１／２サイクル期間遅延されている。従って、データＷａｙ１が動作するサイクル期間は、タグＷａｙ１が動作するサイクル期間よりも１サイクル期間後となる。従って、２サイクルアクセスモード時には、２サイクル期間を使ってキャッシュメモリ５０からデータが出力される。
【００７４】
ラッチ回路９２０は、図１に示したキャッシュ制御部２から入力されたキャッシュアクセスモード切替信号Ｓ１０を、１／２サイクル期間遅延させて出力する。ラッチ回路９２０から出力されたキャッシュアクセスモード切替信号Ｓ１０は、セレクタ９４に入力される。
【００７５】
ラッチ回路９２１は、セレクタ９３１から入力されたＷａｙ１ ｅｎａｂｌｅ信号Ｓ２３を、１／２サイクル期間遅延させて出力する。ラッチ回路９２１から出力されたＷａｙ１ ｅｎａｂｌｅ信号Ｓ２３は、セレクタ９４の第１の入力端子に入力される。セレクタ９４の第２の入力端子には、図４に示した比較器９２ｂから、Ｔａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１が入力される。
【００７６】
ラッチ回路９２０から入力されたキャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合には、セレクタ９４は、ラッチ回路９２１から入力されたＷａｙ１ ｅｎａｂｌｅ信号Ｓ２３を、Ｗａｙ ｓｅｌｅｃｔ信号Ｓ２４として出力する。なぜなら、キャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合にデータＷａｙ１が選択されるときには、Ｗａｙ１ ｅｎａｂｌｅ信号Ｓ２３は、タグメモリ１０１がアクセスされるサイクル期間の１／２サイクル期間後、つまり、データメモリ１０４がアクセスされるサイクル期間の１／２サイクル期間前に、「Ｈ」レベルとなるからである。
【００７７】
一方、ラッチ回路９２０から入力されたキャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルの場合には、セレクタ９４は、Ｔａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を、Ｗａｙ ｓｅｌｅｃｔ信号Ｓ２４として出力する。なぜなら、キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルの場合にデータＷａｙ１が選択されるときには、Ｔａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１は、タグメモリ１０１がアクセスされるサイクル期間と同一であるデータメモリ１０４がアクセスされるサイクル期間に、「Ｈ」レベルとなるからである。
【００７８】
図４を参照して、Ｗａｙ ｓｅｌｅｃｔ信号Ｓ２４は、セレクタ１０５に入力される。Ｗａｙ ｓｅｌｅｃｔ信号Ｓ２４が「Ｌ」レベルの場合には、セレクタ１０５は、データＷａｙ０から入力されたデータを選択して、図１に示した出力データＤ２として出力する。一方、Ｗａｙ ｓｅｌｅｃｔ信号Ｓ２４が「Ｈ」レベルの場合には、セレクタ１０５は、データＷａｙ１から入力されたデータを選択して、図１に示した出力データＤ２として出力する。
【００７９】
図６は、２サイクルアクセスモードで動作している場合のキャッシュメモリ５０の各部の波形を示したタイミングチャートである。以下、図４，６を参照して、２サイクルアクセスモード時におけるキャッシュメモリ５０の動作について詳細に説明する。図６を参照して、２サイクルアクセスモードでは、タグアクセスサイクル及びデータアクセスサイクルの２サイクル期間を使って、キャッシュメモリ５０からデータが出力される。
【００８０】
図４，６を参照して、まず、タグアクセスサイクルの前半で、タグメモリ１０１へのアクセスが実行され、タグＷａｙ０及びタグＷａｙ１からタグアドレスがそれぞれ出力される。
【００８１】
次に、比較器９２ａは、タグＷａｙ０から入力されたタグアドレスと、ラッチ回路１０６から入力されたタグアドレスＡ３ａとを比較し、両者が一致している場合には「Ｈ」レベルのＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０を出力し、両者が一致していない場合には「Ｌ」レベルのＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０を出力する。比較器９２ｂは、タグＷａｙ１から入力されたタグアドレスと、ラッチ回路１０６から入力されたタグアドレスＡ３ａとを比較し、両者が一致している場合には「Ｈ」レベルのＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を出力し、両者が一致していない場合には「Ｌ」レベルのＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を出力する。従って、指定されたアドレスのデータがキャッシュメモリ５０内に存在している場合には、Ｔａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０及びＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１のいずれかが「Ｈ」レベルに設定され、一方、指定されたアドレスのデータがキャッシュメモリ５０内に存在していない場合には、Ｔａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０及びＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１の双方が「Ｌ」レベルに設定される。
【００８２】
次に、タグアクセスサイクルの後半で、Ｔａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０が「Ｈ」レベルであればＷａｙ０ ｅｎａｂｌｅ信号Ｓ２２が「Ｈ」レベルに設定され、Ｔａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１が「Ｈ」レベルであればＷａｙ１ ｅｎａｂｌｅ信号Ｓ２３が「Ｈ」レベルに設定される。
【００８３】
次に、データアクセスサイクルの前半で、Ｗａｙ０ ｅｎａｂｌｅ信号Ｓ２２が「Ｈ」レベルであればデータＷａｙ０へのアクセスが実行されてデータが出力され、Ｗａｙ１ ｅｎａｂｌｅ信号Ｓ２３が「Ｈ」レベルであればデータＷａｙ１へのアクセスが実行されてデータが出力される。
【００８４】
このように２サイクルアクセスモードでは、タグアクセスサイクルでタグメモリ１０１へのアクセスが行われ、続くデータアクセスサイクルでデータメモリ１０４へのアクセスが行われる。データアクセスサイクルにおいては、データＷａｙ０及びデータＷａｙ１のいずれか一方のみが動作し、他方は動作しないので、データＷａｙ０及びデータＷａｙ１の双方が動作する場合（１サイクルアクセスモード）と比較すると消費電力が小さい。
【００８５】
図７は、１サイクルアクセスモードで動作している場合のキャッシュメモリ５０の各部の波形を示したタイミングチャートである。以下、図４，７を参照して、１サイクルアクセスモード時におけるキャッシュメモリ５０の動作について詳細に説明する。図７を参照して、１サイクルアクセスモードでは、１サイクル期間であるタグ及びデータアクセスサイクルを使って、キャッシュメモリ５０からデータが出力される。
【００８６】
図４，７を参照して、まず、タグ及びデータアクセスサイクルの前半で、タグメモリ１０１へのアクセスが実行され、タグＷａｙ０及びタグＷａｙ１からタグアドレスがそれぞれ出力される。
【００８７】
次に、比較器９２ａは、タグＷａｙ０から入力されたタグアドレスと、ラッチ回路１０６から入力されたタグアドレスＡ３ａとを比較し、両者が一致している場合には「Ｈ」レベルのＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０を出力し、両者が一致していない場合には「Ｌ」レベルのＴａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０を出力する。比較器９２ｂは、タグＷａｙ１から入力されたタグアドレスと、ラッチ回路１０６から入力されたタグアドレスＡ３ａとを比較し、両者が一致している場合には「Ｈ」レベルのＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を出力し、両者が一致していない場合には「Ｌ」レベルのＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１を出力する。従って、指定されたアドレスのデータがキャッシュメモリ５０内に存在している場合には、Ｔａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０及びＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１のいずれかが「Ｈ」レベルに設定され、一方、指定されたアドレスのデータがキャッシュメモリ５０内に存在していない場合には、Ｔａｇ ｈｉｔ Ｗａｙ０信号Ｓ２０及びＴａｇ ｈｉｔ Ｗａｙ１信号Ｓ２１の双方が「Ｌ」レベルに設定される。
【００８８】
比較器９２ａ，９２ｂによる上記の処理と並行して、同一のサイクル期間において、Ｗａｙ０ ｅｎａｂｌｅ信号Ｓ２２及びＷａｙ１ ｅｎａｂｌｅ信号Ｓ２３がいずれも「Ｈ」レベルに設定される。
【００８９】
次に、タグ及びデータアクセスサイクルの後半で、データＷａｙ０及びデータＷａｙ１への各アクセスが実行されて、データＷａｙ０及びデータＷａｙ１からデータがそれぞれ出力される。
【００９０】
そして、セレクタ１０５は、Ｗａｙ ｓｅｌｅｃｔ信号Ｓ２４に基づいて、データＷａｙ０及びデータＷａｙ１からそれぞれ出力されたデータの一方を選択して出力する。
【００９１】
このように１サイクルアクセスモードでは、１サイクル期間の間にタグメモリ１０１へのアクセスとデータメモリ１０４へのアクセスとが実行される。従って、タグメモリ１０１へのアクセスの後にデータメモリ１０４へのアクセスが行われる場合（２サイクルアクセスモード）と比較すると、キャッシュメモリ５０から早期にデータを出力することができる。
【００９２】
このように本実施の形態１に係るキャッシュシステムによれば、キャッシュ制御部２は、スヌープ要求信号Ｓ１がアサートされている「Ｈ」期間では「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力することにより、１サイクルアクセスモードに設定する。２サイクルアクセスモードでＣＰＵ１がキャッシュメモリ５０へアクセスしている状態で、ＣＰＵ８０からキャッシュメモリ５０へのアクセス要求が発生した場合、ＣＰＵ１からのアクセス要求の優先度が高いと、ＣＰＵ１からのアクセス要求に基づく残りの処理が終了するまで、ＣＰＵ８０からのアクセス要求に基づく処理の開始は待たされることになる。しかしながら、本実施の形態１に係るキャッシュシステムによると、このような場合には、ＣＰＵ１からキャッシュメモリ５０へのアクセスが２サイクルアクセスモードから１サイクルアクセスモードに切り替えられるため、ＣＰＵ１からのアクセス要求に基づく残りの処理を高速に実行することができる。従って、ＣＰＵ８０からのアクセス要求に基づく処理を早期に開始することができ、結果として、ＣＰＵ８０の性能が低下することを抑制することができる。特に、ＣＰＵ８０が高速動作を優先させている場合に有効となる。
【００９３】
なお、以上の説明では、ＣＰＵ１のほかにキャッシュ部１００にアクセス可能な素子として、スヌープ処理を実行するＣＰＵ８０を挙げたが、ＣＰＵ８０以外のＣＰＵであってもよい。また、ＣＰＵ１のほかにキャッシュ部１００にアクセス可能な素子は、ＣＰＵ８０又はＣＰＵ８０以外のＣＰＵに限らず、どのような機能ブロックであってもよい。後述する全ての実施の形態についても同様である。
【００９４】
実施の形態２．
図８は、本発明の実施の形態２に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。図８に示した複数の構成要素のうち、上記実施の形態１と同一の構成要素については、図１と同一の参照符号を付している。以下、上記実施の形態１との相違点を中心に説明する。
【００９５】
図８に示すように、半導体装置は、ＣＰＵ２０１と、ＣＰＵ８０と、キャッシュ部２００と、バス調停回路６０と、外部バス３と、外部メモリ７０とを備えている。キャッシュ部２００は、キャッシュ制御部２０２と、キャッシュメモリ５０とを有している。キャッシュ制御部２０２は、キャッシュメモリ５０の動作を制御する。ＣＰＵ２０１は、キャッシュ制御部２０２を介してキャッシュメモリ５０にアクセス可能である。キャッシュメモリ５０には、ＣＰＵ８０からも、キャッシュ制御部２０２を介してアクセス可能である。
【００９６】
ＣＰＵ２０１には、キャッシュアクセス受付信号Ｓ５及びキャッシュデータレディ信号Ｓ６が、キャッシュ制御部２０２から入力される。また、ＣＰＵ２０１には、出力データＤ２が、キャッュメモリ５０から入力される。ＣＰＵ２０１は、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。
【００９７】
キャッシュ制御部２０２には、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２が、ＣＰＵ２０１から入力される。また、キャッシュ制御部２０２には、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１が、ＣＰＵ８０から入力される。また、キャッシュ制御部２０２には、出力データＤ２及びＭｉｓｓ信号Ｓ１１が、キャッシュメモリ５０から入力される。また、キャッシュ制御部２０２には、バスアクセス受付信号Ｓ８が、バス調停回路６０から入力される。キャッシュ制御部２０２は、キャッシュアクセス受付信号Ｓ５、キャッシュデータレディ信号Ｓ６、スヌープ要求受付信号Ｓ２、スヌープデータレディ信号Ｓ３、バスアクセス要求信号Ｓ７、ライトバックデータＤ１、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０を出力する。
【００９８】
ＣＰＵ８０には、スヌープ要求受付信号Ｓ２及びスヌープデータレディ信号Ｓ３が、キャッシュ制御部２０２から入力される。また、ＣＰＵ８０には、出力データＤ２が、キャッシュメモリ５０から入力される。ＣＰＵ８０は、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。
【００９９】
キャッシュメモリ５０には、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０が、キャッシュ制御部２０２から入力される。キャッシュメモリ５０は、Ｍｉｓｓ信号Ｓ１１及び出力データＤ２を出力する。
【０１００】
ＣＰＵ２０１は、キャッシュメモリ５０内に格納されているデータを読み出す場合、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２は、キャッシュ制御部２０２に入力される。
【０１０１】
キャッシュ制御部２０２は、キャッシュアクセス要求信号Ｓ４を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、キャッシュアクセス受付信号Ｓ５と、タグイネーブル信号Ｓ９と、キャッシュアドレスＡ２に基づきアクセスアドレスＡ３とを出力する。キャッシュアクセス受付信号Ｓ５は、ＣＰＵ２０１に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１０２】
ＣＰＵ８０は、キャッシュメモリ５０内に格納されているデータを読み出す場合、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。スヌープ要求信号Ｓ１及びスヌープアドレスＡ１は、キャッシュ制御部２０２に入力される。
【０１０３】
キャッシュ制御部２０２は、スヌープ要求信号Ｓ１を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、スヌープ要求受付信号Ｓ２と、タグイネーブル信号Ｓ９と、スヌープアドレスＡ１に基づきアクセスアドレスＡ３とを出力する。スヌープ要求受付信号Ｓ２は、ＣＰＵ８０に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１０４】
ＣＰＵ２０１及びＣＰＵ８０からキャッシュメモリ５０への各アクセスに関して、キャッシュ制御部２０２は、上記実施の形態１と同様の２サイクルアクセスモード及び１サイクルアクセスモードを有している。
【０１０５】
キャッシュ制御部２０２は、ＣＰＵ２０１からキャッシュメモリ５０へのアクセス要求を受け付けることができるか否かに応じて、２サイクルアクセスモードと１サイクルアクセスモードとを切り替える。
【０１０６】
具体的に、キャッシュ制御部２０２は、２サイクルアクセスモードでＣＰＵ２０１がキャッシュメモリ５０へアクセスしている状態において、キャッシュミス又はライトバック処理中等の理由により、ＣＰＵ２０１からキャッシュメモリ５０への新たなアクセス要求を受け付けることができない場合、次回のアクセス又は次回以降のアクセスにおいて、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。即ち、２サイクルアクセスモードを１サイクルアクセスモードに切り替える。
【０１０７】
あるいは、キャッシュ制御部２０２は、２サイクルアクセスモードでＣＰＵ８０がキャッシュメモリ５０へアクセスしている状態において、スヌープ処理中等の理由により、ＣＰＵ２０１からキャッシュメモリへのアクセス要求を受け付けることができない場合、次回のアクセス又は次回以降のアクセスにおいて、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。即ち、２サイクルアクセスモードを１サイクルアクセスモードに切り替える。
【０１０８】
図９は、キャッシュ制御部２０２の構成の一部を示すブロック図である。キャッシュ制御部２０２は、状態監視回路１０及び切替信号生成回路１１を有している。切替信号生成回路１１はクリア回路１２を有しており、クリア回路１２は複数のカウンタ１３を含んでいる。
【０１０９】
状態監視回路１０は、キャッシュメモリ５０へのアクセス要求を検出すると、アクセス発生信号Ｓ３０を出力する。また、状態監視回路１０は、キャッシュメモリ５０への新たなアクセス要求を受け付けることができない状態になると、キャッシュビジー信号Ｓ３１を出力する。アクセス発生信号Ｓ３０及びキャッシュビジー信号Ｓ３１は、切替信号生成回路１１に入力される。
【０１１０】
切替信号生成回路１１は、キャッシュビジー信号Ｓ３１が入力されると、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。これにより、キャッシュメモリ５０の動作が１サイクルアクセスモードに設定される。
【０１１１】
上記の通り、切替信号生成回路１１はクリア回路１２を有しており、クリア回路１２は複数のカウンタ１３を含んでいる。従って、切替信号生成回路１１は、キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルに設定されてからのサイクル期間及びアクセス回数を、アクセス発生信号Ｓ３０及びキャッシュビジー信号Ｓ３１に基づいて把握することができる。クリア回路１２には、上記の次回のアクセスが完了したこと、キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルに設定されてから所定数のサイクル期間が経過したこと、上記の次回以降のアクセスにおいてキャッシュメモリ５０へのアクセスが途切れたこと等が、クリア条件として設定されている。クリア回路１２は、クリア条件が満たされると、キャッシュアクセスモード切替信号Ｓ１０を「Ｌ」レベルに切り替える。
【０１１２】
このように本実施の形態２に係るキャッシュシステムによれば、キャッシュ制御部２０２は、キャッシュメモリ５０への新たなアクセス要求を受け付けることができない場合、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力することにより、１サイクルアクセスモードに設定する。例えば、２サイクルアクセスモードでＣＰＵ２０１がキャッシュメモリ５０へアクセスしている状態で、ＣＰＵ２０１からキャッシュメモリ５０への新たなアクセス要求が発生し、キャッシュメモリ５０がアクセス禁止の状態になった場合、パイプライン処理の後段の処理が詰まるために複数の命令間にレジスタ依存性が生じやすくなり、その結果、性能低下を引き起こす可能性が高くなる。しかしながら、本実施の形態２に係るキャッシュシステムによると、このような場合には、ＣＰＵ２０１からキャッシュメモリ５０へのアクセスが２サイクルアクセスモードから１サイクルアクセスモードに切り替えられるため、性能低下のペナルティを最小限に抑制することが可能となる。
【０１１３】
実施の形態３．
図１０は、本発明の実施の形態３に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。図１０に示した複数の構成要素のうち、上記実施の形態１と同一の構成要素については、図１と同一の参照符号を付している。以下、上記実施の形態１との相違点を中心に説明する。
【０１１４】
図１０に示すように、半導体装置は、ＣＰＵ３０１と、ＣＰＵ８０と、キャッシュ部３００と、バス調停回路６０と、外部バス３と、外部メモリ７０とを備えている。キャッシュ部３００は、キャッシュ制御部３０２と、キャッシュメモリ５０とを有している。キャッシュ制御部３０２は、キャッシュメモリ５０の動作を制御する。ＣＰＵ３０１は、キャッシュ制御部３０２を介してキャッシュメモリ５０にアクセス可能である。キャッシュメモリ５０には、ＣＰＵ８０からも、キャッシュ制御部３０２を介してアクセス可能である。
【０１１５】
ＣＰＵ３０１には、キャッシュアクセス受付信号Ｓ５及びキャッシュデータレディ信号Ｓ６が、キャッシュ制御部３０２から入力される。また、ＣＰＵ３０１には、出力データＤ２が、キャッュメモリ５０から入力される。ＣＰＵ３０１は、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。
【０１１６】
キャッシュ制御部３０２には、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２が、ＣＰＵ３０１から入力される。また、キャッシュ制御部３０２には、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１が、ＣＰＵ８０から入力される。また、キャッシュ制御部３０２には、出力データＤ２及びＭｉｓｓ信号Ｓ１１が、キャッシュメモリ５０から入力される。また、キャッシュ制御部３０２には、バスアクセス受付信号Ｓ８が、バス調停回路６０から入力される。キャッシュ制御部３０２は、キャッシュアクセス受付信号Ｓ５、キャッシュデータレディ信号Ｓ６、スヌープ要求受付信号Ｓ２、スヌープデータレディ信号Ｓ３、バスアクセス要求信号Ｓ７、ライトバックデータＤ１、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１１７】
ＣＰＵ８０には、スヌープ要求受付信号Ｓ２及びスヌープデータレディ信号Ｓ３が、キャッシュ制御部３０２から入力される。また、ＣＰＵ８０には、出力データＤ２が、キャッシュメモリ５０から入力される。ＣＰＵ８０は、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。
【０１１８】
キャッシュメモリ５０には、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０が、キャッシュ制御部３０２から入力される。キャッシュメモリ５０は、Ｍｉｓｓ信号Ｓ１１及び出力データＤ２を出力する。
【０１１９】
ＣＰＵ３０１は、キャッシュメモリ５０内に格納されているデータを読み出す場合、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２は、キャッシュ制御部３０２に入力される。
【０１２０】
キャッシュ制御部３０２は、キャッシュアクセス要求信号Ｓ４を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、キャッシュアクセス受付信号Ｓ５と、タグイネーブル信号Ｓ９と、キャッシュアドレスＡ２に基づきアクセスアドレスＡ３とを出力する。キャッシュアクセス受付信号Ｓ５は、ＣＰＵ３０１に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１２１】
ＣＰＵ８０は、キャッシュメモリ５０内に格納されているデータを読み出す場合、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。スヌープ要求信号Ｓ１及びスヌープアドレスＡ１は、キャッシュ制御部３０２に入力される。
【０１２２】
キャッシュ制御部３０２は、スヌープ要求信号Ｓ１を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、スヌープ要求受付信号Ｓ２と、タグイネーブル信号Ｓ９と、スヌープアドレスＡ１に基づきアクセスアドレスＡ３とを出力する。スヌープ要求受付信号Ｓ２は、ＣＰＵ８０に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１２３】
ＣＰＵ３０１及びＣＰＵ８０からキャッシュメモリ５０への各アクセスに関して、キャッシュ制御部３０２は、上記実施の形態１と同様の２サイクルアクセスモード及び１サイクルアクセスモードを有している。
【０１２４】
キャッシュ制御部３０２は、ＣＰＵ３０１からキャッシュメモリ５０へのアクセス要求と、ＣＰＵ８０からキャッシュメモリ５０へのアクセス要求とを重複して受けた場合、ＣＰＵ３０１及びＣＰＵ８０からキャッシュメモリ５０への各アクセスに関して、いずれも「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。即ち、ＣＰＵ３０１及びＣＰＵ８０からキャッシュメモリ５０への各アクセスを、いずれも１サイクルアクセスモードで実行する。
【０１２５】
図１１は、キャッシュ制御部３０２の構成の一部を示すブロック図である。キャッシュ制御部３０２は、調停回路１５及び切替信号生成回路１６を有している。
【０１２６】
調停回路１５は、ＣＰＵ３０１からキャッシュメモリ５０へのアクセス要求と、ＣＰＵ８０からキャッシュメモリ５０へのアクセス要求とを同一のサイクル期間内に受けたことを検出すると、アクセス要求同時発生信号Ｓ４０を出力する。アクセス要求同時発生信号Ｓ４０は、切替信号生成回路１６に入力される。
【０１２７】
切替信号生成回路１６は、アクセス要求同時発生信号Ｓ４０が入力されると、アクセス要求同時発生信号Ｓ４０が入力されたサイクル期間、及びそのサイクル期間に続く１サイクル期間において、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。これにより、キャッシュアクセス要求信号Ｓ４に基づくアクセス期間、及びスヌープ要求信号Ｓ１に基づくアクセス期間の双方において、キャッシュメモリ５０の動作が１サイクルアクセスモードに設定される。
【０１２８】
このように本実施の形態３に係るキャッシュシステムによれば、キャッシュ制御部３０２は、ＣＰＵ３０１からキャッシュメモリ５０へのアクセス要求と、ＣＰＵ８０からキャッシュメモリ５０へのアクセス要求とを重複して受けた場合、ＣＰＵ３０１及びＣＰＵ８０からキャッシュメモリ５０への各アクセスをいずれも１サイクルアクセスモードで実行する。キャッシュシステムが複数のアクセス要求を同時に受けた場合、優先度の低いアクセス要求に対する処理の開始は、優先度の高いアクセス要求に対する処理が完了するのを待つこととなり、その結果、性能の低下を引き起こす。しかしながら、本実施の形態３に係るキャッシュシステムによると、このような場合には、ＣＰＵ３０１及びＣＰＵ８０からキャッシュメモリ５０への各アクセスがいずれも１サイクルアクセスモードに切り替えられるため、性能低下のペナルティを最小限に抑制することが可能となる。
【０１２９】
実施の形態４．
図１２は、本発明の実施の形態４に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。図１２に示した複数の構成要素のうち、上記実施の形態１と同一の構成要素については、図１と同一の参照符号を付している。以下、上記実施の形態１との相違点を中心に説明する。
【０１３０】
図１２に示すように、半導体装置は、ＣＰＵ４０１と、ＣＰＵ８０と、キャッシュ部４００と、バス調停回路６０と、外部バス３と、外部メモリ７０とを備えている。キャッシュ部４００は、キャッシュ制御部４０２と、キャッシュメモリ５０とを有している。キャッシュ制御部４０２は、キャッシュメモリ５０の動作を制御する。ＣＰＵ４０１は、キャッシュ制御部４０２を介してキャッシュメモリ５０にアクセス可能である。キャッシュメモリ５０には、ＣＰＵ８０からも、キャッシュ制御部４０２を介してアクセス可能である。但し、本実施の形態４に関しては、必ずしもＣＰＵ８０が設けられている必要はない。
【０１３１】
ＣＰＵ４０１には、キャッシュアクセス受付信号Ｓ５及びキャッシュデータレディ信号Ｓ６が、キャッシュ制御部４０２から入力される。また、ＣＰＵ４０１には、出力データＤ２が、キャッュメモリ５０から入力される。ＣＰＵ４０１は、キャッシュアクセス要求信号Ｓ４、キャッシュアドレスＡ２、分岐要求信号Ｓ５０、及び、例えば２７ビットの分岐先アドレスＡ５０を出力する。
【０１３２】
キャッシュ制御部４０２には、キャッシュアクセス要求信号Ｓ４、キャッシュアドレスＡ２、分岐要求信号Ｓ５０、及び、分岐先アドレスＡ５０が、ＣＰＵ４０１から入力される。また、キャッシュ制御部４０２には、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１が、ＣＰＵ８０から入力される。また、キャッシュ制御部４０２には、出力データＤ２及びＭｉｓｓ信号Ｓ１１が、キャッシュメモリ５０から入力される。また、キャッシュ制御部４０２には、バスアクセス受付信号Ｓ８が、バス調停回路６０から入力される。キャッシュ制御部４０２は、キャッシュアクセス受付信号Ｓ５、キャッシュデータレディ信号Ｓ６、スヌープ要求受付信号Ｓ２、スヌープデータレディ信号Ｓ３、バスアクセス要求信号Ｓ７、ライトバックデータＤ１、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１３３】
ＣＰＵ８０には、スヌープ要求受付信号Ｓ２及びスヌープデータレディ信号Ｓ３が、キャッシュ制御部４０２から入力される。また、ＣＰＵ８０には、出力データＤ２が、キャッシュメモリ５０から入力される。ＣＰＵ８０は、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。
【０１３４】
キャッシュメモリ５０には、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０が、キャッシュ制御部４０２から入力される。キャッシュメモリ５０は、Ｍｉｓｓ信号Ｓ１１及び出力データＤ２を出力する。
【０１３５】
ＣＰＵ４０１は、キャッシュメモリ５０内に格納されているデータを読み出す場合、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２は、キャッシュ制御部４０２に入力される。
【０１３６】
キャッシュ制御部４０２は、キャッシュアクセス要求信号Ｓ４を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、キャッシュアクセス受付信号Ｓ５と、タグイネーブル信号Ｓ９と、キャッシュアドレスＡ２に基づきアクセスアドレスＡ３とを出力する。キャッシュアクセス受付信号Ｓ５は、ＣＰＵ４０１に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１３７】
ＣＰＵ８０は、キャッシュメモリ５０内に格納されているデータを読み出す場合、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。スヌープ要求信号Ｓ１及びスヌープアドレスＡ１は、キャッシュ制御部４０２に入力される。
【０１３８】
キャッシュ制御部４０２は、スヌープ要求信号Ｓ１を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、スヌープ要求受付信号Ｓ２と、タグイネーブル信号Ｓ９と、スヌープアドレスＡ１に基づきアクセスアドレスＡ３とを出力する。スヌープ要求受付信号Ｓ２は、ＣＰＵ８０に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１３９】
ＣＰＵ４０１からキャッシュメモリ５０へのアクセスに関して、キャッシュ制御部４０２は、上記実施の形態１と同様の２サイクルアクセスモード及び１サイクルアクセスモードを有している。
【０１４０】
キャッシュ制御部４０２は、分岐命令の実行に基づくＣＰＵ４０１からキャッシュメモリ５０へのアクセスが、キャッシュメモリ５０からの特定の分岐先データの読み出しである場合、ＣＰＵ４０１からキャッシュメモリ５０へのアクセスに関して、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。即ち、ＣＰＵ４０１からキャッシュメモリ５０へのアクセスを、１サイクルアクセスモードで実行する。
【０１４１】
具体的に、ＣＰＵ４０１は、分岐命令を実行する際、分岐要求信号Ｓ５０及び分岐先アドレスＡ５０を、キャッシュ制御部４０２に入力する。キャッシュ制御部４０２は、分岐要求信号Ｓ５０及び分岐先アドレスＡ５０が入力されると、分岐先アドレスＡ５０が、予め設定されている特定のアドレス（複数）のいずれかに一致するか否かを判別する。そして、キャッシュ制御部４０２は、分岐先アドレスＡ５０が上記特定のアドレスのいずれかに一致する場合は、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力し、一方、分岐先アドレスＡ５０が上記特定のアドレスのいずれにも一致しない場合は、「Ｌ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１４２】
なお、上記特定のアドレスは、システムの設計者によって、ハードウェア構成としてキャッシュ部４００内に予め設定されている。あるいは、上記特定のアドレスは、システムのユーザが、キャッシュ部４００内の図示しない記憶素子に、プログラムによって設定してもよい。また、上記特定のアドレスは、一つのみ設定されていてもよい。
【０１４３】
図１３は、キャッシュ制御部４０２の構成の一部を示すブロック図である。キャッシュ制御部４０２は、切替信号生成回路２０を有している。切替信号生成回路２０は、複数の比較器２１1〜２１n（ｎは２以上の自然数）と、ＯＲ回路２２と、セレクタ２３と、ラッチ回路２４，２５とを有している。
【０１４４】
比較器２１1〜２１nの各第１の入力端子には、上記特定のアドレスが、設定値Ｋ1〜Ｋnとしてそれぞれ入力されている。比較器２１1〜２１nの各第２の入力端子には、分岐先アドレスＡ５０がそれぞれ入力されている。比較器２１1〜２１nの各出力端子は、ＯＲ回路２２の複数の入力端子にそれぞれ接続されている。ＯＲ回路２２の出力端子は、セレクタ２３の第１の入力端子に接続されている。セレクタ２３の出力端子はラッチ回路２４の入力端子に接続されており、ラッチ回路２４の出力端子はラッチ回路２５の入力端子に接続されている。ラッチ回路２４からは、キャッシュアクセスモード切替信号Ｓ１０が出力されている。ラッチ回路２５の出力端子は、セレクタ２３の第２の入力端子に接続されている。セレクタ２３には、分岐要求信号Ｓ５０が入力されている。
【０１４５】
セレクタ２３は、分岐要求信号Ｓ５０が入力されている期間は第１の入力端子を選択し、それ以外の期間は第２の入力端子を選択する。図１２に示したＣＰＵ４０１からキャッシュ制御部４０２に分岐要求信号Ｓ５０及び分岐先アドレスＡ５０が入力された場合、分岐先アドレスＡ５０が設定値Ｋ1〜Ｋnのいずれかに一致すると、セレクタ２３の第１の入力端子には「Ｈ」レベルの信号が入力される。この「Ｈ」レベルの信号は、セレクタ２３から出力され、ラッチ回路２４に入力される。従って、ラッチ回路２４からは、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０が出力される。これにより、図１２に示したキャッシュメモリ５０の動作が、１サイクルアクセスモードに設定される。
【０１４６】
このように本実施の形態４に係るキャッシュシステムによれば、キャッシュ制御部４０２は、分岐命令の実行に基づくＣＰＵ４０１からキャッシュメモリ５０へのアクセスが、キャッシュメモリ５０からの特定の分岐先データの読み出しである場合、ＣＰＵ４０１からキャッシュメモリ５０へのアクセスを１サイクルアクセスモードで実行する。従って、例えば分岐先アドレスに割り込みルーチンが指定されている場合に、１サイクルアクセスモードでキャッシュメモリ５０を動作させることができる。組み込み用途における割り込み処理は、実時間内で応答が求められることが多い。本実施の形態４に係るキャッシュシステムによれば、キャッシュメモリ５０の動作を１サイクルアクセスモードに切り替えることによって、実時間内で割り込み処理が完了する可能性を高くすることが可能となる。
【０１４７】
なお、実行される分岐命令は、分岐条件が確定してから実行される分岐命令のみならず、分岐が発生することを見越して（分岐予測）、予め実行が開始されるような分岐命令を含む。
【０１４８】
実施の形態５．
図１４は、本発明の実施の形態５に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。図１５に示した複数の構成要素のうち、上記実施の形態１と同一の構成要素については、図１と同一の参照符号を付している。以下、上記実施の形態１との相違点を中心に説明する。
【０１４９】
図１４に示すように、半導体装置は、ＣＰＵ５０１と、ＣＰＵ８０と、キャッシュ部５００と、バス調停回路６０と、外部バス３と、外部メモリ７０とを備えている。キャッシュ部５００は、キャッシュ制御部５０２と、キャッシュメモリ５０とを有している。キャッシュ制御部５０２は、キャッシュメモリ５０の動作を制御する。ＣＰＵ５０１は、キャッシュ制御部５０２を介してキャッシュメモリ５０にアクセス可能である。キャッシュメモリ５０には、ＣＰＵ８０からも、キャッシュ制御部５０２を介してアクセス可能である。但し、本実施の形態５に関しては、必ずしもＣＰＵ８０が設けられている必要はない。
【０１５０】
ＣＰＵ５０１には、キャッシュアクセス受付信号Ｓ５及びキャッシュデータレディ信号Ｓ６が、キャッシュ制御部５０２から入力される。また、ＣＰＵ５０１には、出力データＤ２が、キャッュメモリ５０から入力される。ＣＰＵ５０１は、キャッシュアクセス要求信号Ｓ４、キャッシュアドレスＡ２、及び、例えば３２ビットの命令コードＣ１を出力する。
【０１５１】
キャッシュ制御部５０２には、キャッシュアクセス要求信号Ｓ４、キャッシュアドレスＡ２、及び、命令コードＣ１が、ＣＰＵ５０１から入力される。また、キャッシュ制御部５０２には、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１が、ＣＰＵ８０から入力される。また、キャッシュ制御部５０２には、出力データＤ２及びＭｉｓｓ信号Ｓ１１が、キャッシュメモリ５０から入力される。また、キャッシュ制御部５０２には、バスアクセス受付信号Ｓ８が、バス調停回路６０から入力される。キャッシュ制御部５０２は、キャッシュアクセス受付信号Ｓ５、キャッシュデータレディ信号Ｓ６、スヌープ要求受付信号Ｓ２、スヌープデータレディ信号Ｓ３、バスアクセス要求信号Ｓ７、ライトバックデータＤ１、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１５２】
ＣＰＵ８０には、スヌープ要求受付信号Ｓ２及びスヌープデータレディ信号Ｓ３が、キャッシュ制御部５０２から入力される。また、ＣＰＵ８０には、出力データＤ２が、キャッシュメモリ５０から入力される。ＣＰＵ８０は、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。
【０１５３】
キャッシュメモリ５０には、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０が、キャッシュ制御部５０２から入力される。キャッシュメモリ５０は、Ｍｉｓｓ信号Ｓ１１及び出力データＤ２を出力する。
【０１５４】
ＣＰＵ５０１は、キャッシュメモリ５０内に格納されているデータを読み出す場合、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２は、キャッシュ制御部５０２に入力される。
【０１５５】
キャッシュ制御部５０２は、キャッシュアクセス要求信号Ｓ４を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、キャッシュアクセス受付信号Ｓ５と、タグイネーブル信号Ｓ９と、キャッシュアドレスＡ２に基づきアクセスアドレスＡ３とを出力する。キャッシュアクセス受付信号Ｓ５は、ＣＰＵ５０１に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１５６】
ＣＰＵ８０は、キャッシュメモリ５０内に格納されているデータを読み出す場合、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。スヌープ要求信号Ｓ１及びスヌープアドレスＡ１は、キャッシュ制御部５０２に入力される。
【０１５７】
キャッシュ制御部５０２は、スヌープ要求信号Ｓ１を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、スヌープ要求受付信号Ｓ２と、タグイネーブル信号Ｓ９と、スヌープアドレスＡ１に基づきアクセスアドレスＡ３とを出力する。スヌープ要求受付信号Ｓ２は、ＣＰＵ８０に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１５８】
ＣＰＵ５０１からキャッシュメモリ５０へのアクセスに関して、キャッシュ制御部５０２は、上記実施の形態１と同様の２サイクルアクセスモード及び１サイクルアクセスモードを有している。
【０１５９】
キャッシュ制御部５０２は、ＣＰＵ５０１によってフェッチされた命令コードＣ１又は該命令コードＣ１のデコード結果を判定することにより、ＣＰＵ５０１からキャッシュメモリ５０へのアクセスに関して、「Ｈ」レベル又は「Ｌ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。即ち、ＣＰＵ５０１からキャッシュメモリ５０へのアクセスを、キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルの場合は１サイクルアクセスモードで実行し、キャッシュアクセスモード切替信号Ｓ１０が「Ｌ」レベルの場合は２サイクルアクセスモードで実行する。
【０１６０】
具体的に、ＣＰＵ５０１は、フェッチした命令コードＣ１を、キャッシュ制御部５０２に入力する。キャッシュ制御部５０２は、入力された命令コードＣ１が、命令コードの種類に応じて予め設定されている特定の値（複数）のいずれに一致するか、又はいずれにも一致しないかを判定する。そして、キャッシュ制御部５０２は、その判定の結果に応じて、１サイクルアクセスモードに設定するか、２サイクルアクセスモードに設定するか、前状態のアクセスモードを保持するかを決定し、対応するキャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１６１】
なお、上記特定の値は、システムの設計者によって、ハードウェア構成としてキャッシュ部５００内に予め設定されている。あるいは、上記特定の値は、システムのユーザが、キャッシュ部５００内の図示しないレジスタに、プログラムによって設定してもよい。
【０１６２】
図１５〜１７は、本実施の形態５に係るキャッシュシステムの構成の一部をそれぞれ示すブロック図である。図１４に示したキャッシュ部５００は、図１５〜１７に示した判定装置３１，３３及びデコード回路３０，３２，３４をそれぞれ有している。
【０１６３】
図１５を参照して、図１４に示したＣＰＵ５０１によってフェッチされた命令コードＣ１は、デコード回路３０に入力される。デコード回路３０は、命令コードＣ１をデコードし、デコード結果Ｄ１０を出力する。判定装置３１には、命令コードＣ１（又はその一部）が入力される。判定装置３１は、入力された命令コードＣ１が、上記特定の値のいずれに一致するか、又はいずれにも一致しないかを判定する。そして、その判定の結果に応じて、対応するキャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１６４】
図１６を参照して、図１４に示したＣＰＵ５０１によってフェッチされた命令コードＣ１は、デコード回路３２に入力される。デコード回路３２は、命令コードＣ１をデコードし、デコード結果Ｄ１０を出力する。判定装置３３には、デコード結果Ｄ１０の一部が入力される。判定装置３３は、入力されたデコード結果Ｄ１０に基づいて、命令コードＣ１が、上記特定の値のいずれに一致するか、又はいずれにも一致しないかを判定する。そして、その判定の結果に応じて、対応するキャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１６５】
図１７を参照して、図１４に示したＣＰＵ５０１によってフェッチされた命令コードＣ１は、デコード回路３４に入力される。デコード回路３４は、命令コードＣ１をデコードし、デコード結果Ｄ１０を出力する。また、デコード回路３４は、図１５，１６にそれぞれ示した判定装置３１，３３と同様の判定機能を有しており、入力された命令コードＣ１が、上記特定の値のいずれに一致するか、又はいずれにも一致しないかを判定する。そして、その判定の結果に応じて、デコード結果Ｄ１０の一部として、対応するキャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１６６】
図１８は、図１４に示したキャッシュ制御部５０２の構成の一部を示すブロック図である。図１８に示した例では、キャッシュ制御部５０２は、図１５に示した判定装置３１を有している。判定装置３１は、複数の比較器３５1〜３５4と、ＯＲ回路３６〜３８と、セレクタ３９と、ラッチ回路４０，４１とを有している。
【０１６７】
比較器３５1〜３５4の各第１の入力端子には、上記特定の値が、設定値Ｌ1〜Ｌ4としてそれぞれ入力されている。比較器３５1〜３５4の各第２の入力端子には、命令コードＣ１（又はその一部）がそれぞれ入力されている。比較器３５1，３５2の各出力端子はＯＲ回路３６の２つの入力端子にそれぞれ接続されており、比較器３５3，３５4の各出力端子はＯＲ回路３７の２つの入力端子にそれぞれ接続されている。ＯＲ回路３６，３７の各出力端子は、ＯＲ回路３８の２つの入力端子にそれぞれ接続されている。ＯＲ回路３７の出力端子は、セレクタ３９の第１の入力端子にも接続されている。セレクタ３９には、ＯＲ回路３８から出力された信号が入力されている。
【０１６８】
セレクタ３９の出力端子はラッチ回路４０の入力端子に接続されており、ラッチ回路４０の出力端子はラッチ回路４１の入力端子に接続されている。ラッチ回路４０からは、キャッシュアクセスモード切替信号Ｓ１０が出力されている。ラッチ回路４１の出力端子は、セレクタ３９の第２の入力端子に接続されている。
【０１６９】
セレクタ３９は、ＯＲ回路３８から「Ｈ」レベルの信号が入力されている場合は第１の入力端子を、「Ｌ」レベルの信号が入力されている場合は第２の入力端子を、それぞれ選択する。
【０１７０】
図１４に示したＣＰＵ５０１からキャッシュ制御部５０２に入力された命令コードＣ１が、設定値Ｌ3，Ｌ4のいずれかに一致した場合は、セレクタ３９の第１の入力端子には「Ｈ」レベルの信号が入力される。この「Ｈ」レベルの信号は、セレクタ３９から出力され、ラッチ回路４０に入力される。従って、ラッチ回路４０からは、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０が出力される。これにより、図１４に示したキャッシュメモリ５０の動作が、１サイクルアクセスモードに設定される。
【０１７１】
図１４に示したＣＰＵ５０１からキャッシュ制御部５０２に入力された命令コードＣ１が、設定値Ｌ1，Ｌ2のいずれかに一致した場合は、セレクタ３９の第１の入力端子には「Ｌ」レベルの信号が入力される。この「Ｌ」レベルの信号は、セレクタ３９から出力され、ラッチ回路４０に入力される。従って、ラッチ回路４０からは、「Ｌ」レベルのキャッシュアクセスモード切替信号Ｓ１０が出力される。これにより、図１４に示したキャッシュメモリ５０の動作が、２サイクルアクセスモードに設定される。
【０１７２】
図１４に示したＣＰＵ５０１からキャッシュ制御部５０２に入力された命令コードＣ１が、設定値Ｌ1〜Ｌ4のいずれにも一致しない場合は、ＯＲ回路３８からは「Ｌ」レベルの信号が出力されるため、セレクタ３９の第２の入力端子が選択される。セレクタ３９の第２の入力端子には、前状態のアクセスモードを決定するキャッシュアクセスモード切替信号Ｓ１０が、ラッチ回路４１から入力されている。このキャッシュアクセスモード切替信号Ｓ１０が、セレクタ３９を介してラッチ回路４０から出力される。これにより、図１４に示したキャッシュメモリ５０の動作は、前状態のアクセスモードと同一に設定される。
【０１７３】
なお、図１６に示した判定装置３３は、比較器３５1〜３５4の各第２の入力端子へ入力される信号が、命令コードＣ１ではなくデコード結果Ｄ１０の一部となるだけで、その他の回路構成は、図１８に示した判定装置３１の構成と同様である。
【０１７４】
このように本実施の形態５に係るキャッシュシステムによれば、キャッシュ制御部５０２は、ＣＰＵ５０１によって実行される命令の種類に応じて、１サイクルアクセスモードと２サイクルアクセスモードとを切り替える。従って、ソフトウェアのコンパイルオプションを切り替えることによってアクセスモードを選択するといった使い方ができるようになる。また、１サイクルアクセスモード主体の高速道作用の命令セットと、２サイクルアクセスモード主体の低消費電力用の命令セットとを用意し、使用する命令セットに応じてアクセスモードを選択するといった使い方ができるようにもなる。
【０１７５】
しかも、キャッシュ制御部５０２は、ＣＰＵ５０１によってフェッチされた命令コードＣ１又は該命令コードＣ１のデコード結果Ｄ１０を判定することによって、アクセスモードを選択する。従って、上記特許文献２に開示されたキャッシュシステムとは異なり、本実施の形態５に係るキャッシュシステムは、プリフェッチ装置を有しない装置にも対応でき、また、分岐命令予測器が不要であるために回路規模が増大することもない。
【０１７６】
さらに、図１６，１７に示した例では、デコード回路の全部又は一部がアクセスモードの判定装置としても使用されているため、図１５に示した例と比較すると、回路規模の増大を抑制することができる。
【０１７７】
実施の形態６．
図１９は、本発明の実施の形態６に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。図１９に示した複数の構成要素のうち、上記実施の形態１と同一の構成要素については、図１と同一の参照符号を付している。以下、上記実施の形態１との相違点を中心に説明する。
【０１７８】
図１９に示すように、半導体装置は、ＣＰＵ６０１と、ＣＰＵ８０と、キャッシュ部６００と、バス調停回路６０と、外部バス３と、外部メモリ７０とを備えている。キャッシュ部６００は、キャッシュ制御部６０２と、キャッシュメモリ５０とを有している。キャッシュ制御部６０２は、キャッシュメモリ５０の動作を制御する。ＣＰＵ６０１は、キャッシュ制御部６０２を介してキャッシュメモリ５０にアクセス可能である。キャッシュメモリ５０には、ＣＰＵ８０からも、キャッシュ制御部６０２を介してアクセス可能である。但し、本実施の形態６に関しては、必ずしもＣＰＵ８０が設けられている必要はない。
【０１７９】
ＣＰＵ６０１には、キャッシュアクセス受付信号Ｓ５及びキャッシュデータレディ信号Ｓ６が、キャッシュ制御部６０２から入力される。また、ＣＰＵ６０１には、出力データＤ２が、キャッュメモリ５０から入力される。ＣＰＵ６０１は、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。
【０１８０】
キャッシュ制御部６０２には、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２が、ＣＰＵ６０１から入力される。また、キャッシュ制御部６０２には、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１が、ＣＰＵ８０から入力される。また、キャッシュ制御部６０２には、出力データＤ２及びＭｉｓｓ信号Ｓ１１が、キャッシュメモリ５０から入力される。また、キャッシュ制御部６０２には、バスアクセス受付信号Ｓ８が、バス調停回路６０から入力される。キャッシュ制御部６０２は、キャッシュアクセス受付信号Ｓ５、キャッシュデータレディ信号Ｓ６、スヌープ要求受付信号Ｓ２、スヌープデータレディ信号Ｓ３、バスアクセス要求信号Ｓ７、ライトバックデータＤ１、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０を出力する。
【０１８１】
ＣＰＵ８０には、スヌープ要求受付信号Ｓ２及びスヌープデータレディ信号Ｓ３が、キャッシュ制御部６０２から入力される。また、ＣＰＵ８０には、出力データＤ２が、キャッシュメモリ５０から入力される。ＣＰＵ８０は、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。
【０１８２】
キャッシュメモリ５０には、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０が、キャッシュ制御部６０２から入力される。キャッシュメモリ５０は、Ｍｉｓｓ信号Ｓ１１及び出力データＤ２を出力する。
【０１８３】
ＣＰＵ２０１は、キャッシュメモリ５０内に格納されているデータを読み出す場合、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２は、キャッシュ制御部６０２に入力される。
【０１８４】
キャッシュ制御部６０２は、キャッシュアクセス要求信号Ｓ４を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、キャッシュアクセス受付信号Ｓ５と、タグイネーブル信号Ｓ９と、キャッシュアドレスＡ２に基づきアクセスアドレスＡ３とを出力する。キャッシュアクセス受付信号Ｓ５は、ＣＰＵ６０１に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１８５】
ＣＰＵ８０は、キャッシュメモリ５０内に格納されているデータを読み出す場合、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。スヌープ要求信号Ｓ１及びスヌープアドレスＡ１は、キャッシュ制御部６０２に入力される。
【０１８６】
キャッシュ制御部６０２は、スヌープ要求信号Ｓ１を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、スヌープ要求受付信号Ｓ２と、タグイネーブル信号Ｓ９と、スヌープアドレスＡ１に基づきアクセスアドレスＡ３とを出力する。スヌープ要求受付信号Ｓ２は、ＣＰＵ８０に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０１８７】
ＣＰＵ６０１からキャッシュメモリ５０へのアクセスに関して、キャッシュ制御部６０２は、上記実施の形態１と同様の２サイクルアクセスモード及び１サイクルアクセスモードを有している。
【０１８８】
キャッシュ制御部６０２は、ＣＰＵ６０１からキャッシュメモリ５０へアクセスされたが、ＣＰＵ６０１が必要とするデータがキャッシュメモリ５０内に格納されていない場合に、ＣＰＵ６０１からキャッシュメモリ５０への次回のアクセス又は次回以降のアクセスにおいて、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。即ち、キャッシュメモリ５０の動作を１サイクルアクセスモードに設定する。
【０１８９】
図２０は、キャッシュ制御部６０２の構成の一部を示すブロック図である。キャッシュ制御部６０２は、状態監視回路５１及び切替信号生成回路５２を有している。切替信号生成回路５２はクリア回路５３を有しており、クリア回路５３は複数のカウンタ５４を含んでいる。
【０１９０】
状態監視回路５１は、キャッシュメモリ５０へのアクセス要求を検出すると、アクセス発生信号Ｓ５１を出力する。アクセス発生信号Ｓ５１は、切替信号生成回路５２に入力される。また、Ｍｉｓｓ信号Ｓ１１が、図１９に示したキャッシュメモリ５０から切替信号生成回路５２に入力される。
【０１９１】
切替信号生成回路１１は、指定されたデータがキャッシュメモリ５０内に格納されていないことを示す内容のＭｉｓｓ信号Ｓ１１が入力されると、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力する。これにより、キャッシュメモリ５０の動作が１サイクルアクセスモードに設定される。
【０１９２】
上記の通り、切替信号生成回路５２はクリア回路５３を有しており、クリア回路５３は複数のカウンタ５４を含んでいる。従って、切替信号生成回路５２は、キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルに設定されてからのサイクル期間及びアクセス回数を、アクセス発生信号Ｓ５１及びＭｉｓｓ信号Ｓ１１に基づいて把握することができる。クリア回路５３には、上記の次回のアクセスが完了したこと、キャッシュアクセスモード切替信号Ｓ１０が「Ｈ」レベルに設定されてから所定数のサイクル期間が経過したこと、上記の次回以降のアクセスにおいてキャッシュメモリ５０へのアクセスが途切れたこと等が、クリア条件として設定されている。クリア回路５３は、クリア条件が満たされると、キャッシュアクセスモード切替信号Ｓ１０を「Ｌ」レベルに切り替える。
【０１９３】
このように本実施の形態６に係るキャッシュシステムによれば、キャッシュ制御部６０２は、キャッシュメモリ５０が２サイクルアクセスモードで動作している場合であっても、ＣＰＵ６０１が必要とするデータがキャッシュメモリ５０内に格納されていない場合には、「Ｈ」レベルのキャッシュアクセスモード切替信号Ｓ１０を出力することにより、１サイクルアクセスモードに設定する。必要とするデータがキャッシュメモリ５０内に格納されていない場合は、外部メモリ７０からデータを読み出す必要があるため、性能の低下を引き起こす可能性がある。しかも、パイプライン処理の後段の処理が詰まるために複数の命令間にレジスタ依存性が生じやすくなり、その結果、性能低下を引き起こす可能性がさらに高くなる。しかしながら、本実施の形態６に係るキャッシュシステムによると、このような場合には、ＣＰＵ６０１からキャッシュメモリ５０へのアクセスが１サイクルアクセスモードに設定されるため、性能低下のペナルティを最小限に抑制することが可能となる。
【０１９４】
実施の形態７．
図２１，２２は、上記実施の形態１〜６に係るキャッシュシステムに関して、アクセスモードが切り替わる状況をそれぞれ示すタイミングチャートである。図２１に示した例では、サイクル期間Ｐ１において２サイクルアクセスモードによるアクセス要求（アクセスＡＣ１）が発生し、サイクル期間Ｐ２においてはアクセス要求が発生せず、サイクル期間Ｐ３において１サイクルアクセスモードによるアクセス要求（アクセスＡＣ３）が発生している。アクセスＡＣ１のデータメモリアクセスは、サイクル期間Ｐ３の前半で完了している。従って、アクセスＡＣ３のタグ及びデータメモリアクセスはサイクル期間Ｐ３の後半から開始され、アクセスＡＣ３に関して高速動作が実現されている。
【０１９５】
図２２に示した例では、サイクル期間Ｐ１において２サイクルアクセスモードによるアクセス要求（アクセスＡＣ１）が発生し、サイクル期間Ｐ２においても２サイクルアクセスモードによるアクセス要求（アクセスＡＣ２）が発生し、サイクル期間Ｐ３において１サイクルアクセスモードによるアクセス要求（アクセスＡＣ３）が発生している。この場合、サイクル期間Ｐ３の後半からアクセスＡＣ３のタグ及びデータメモリアクセスを開始しようとしても、その時点では、アクセスＡＣ２のデータメモリアクセスがまだ完了していない。そのため、アクセスＡＣ３のタグ及びデータメモリアクセスの開始は、サイクル期間Ｐ４の後半まで待たなければならない。その結果、アクセスＡＣ３に関しては、アクセスＡＣ１，ＡＣ２と比較して消費電力が高いうえに、高速動作も実現されていない。かかる状況は、上記実施の形態１〜６に係るキャッシュシステムに限らず、低速及び高速の二つのアクセスモードを有する任意のキャッシュシステム（上記特許文献１，２に開示されたキャッシュシステムを含む）において発生する。
【０１９６】
本実施の形態７では、かかる状況が発生することを回避し得るキャッシュシステムについて説明する。
【０１９７】
図２３は、本発明の実施の形態７に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。図２３に示した複数の構成要素のうち、上記実施の形態１と同一の構成要素については、図１と同一の参照符号を付している。以下、上記実施の形態１との相違点を中心に説明する。
【０１９８】
図２３に示すように、半導体装置は、ＣＰＵ７０１と、ＣＰＵ８０と、キャッシュ部７００と、バス調停回路６０と、外部バス３と、外部メモリ７０とを備えている。キャッシュ部７００は、キャッシュ制御部７０２と、キャッシュメモリ５０とを有している。キャッシュ制御部７０２は、キャッシュメモリ５０の動作を制御する。ＣＰＵ７０１は、キャッシュ制御部７０２を介してキャッシュメモリ５０にアクセス可能である。キャッシュメモリ５０には、ＣＰＵ８０からも、キャッシュ制御部７０２を介してアクセス可能である。
【０１９９】
ＣＰＵ７０１には、キャッシュアクセス受付信号Ｓ５及びキャッシュデータレディ信号Ｓ６が、キャッシュ制御部７０２から入力される。また、ＣＰＵ７０１には、出力データＤ２が、キャッュメモリ５０から入力される。ＣＰＵ７０１は、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。
【０２００】
キャッシュ制御部７０２には、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２が、ＣＰＵ７０１から入力される。また、キャッシュ制御部７０２には、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１が、ＣＰＵ８０から入力される。また、キャッシュ制御部７０２には、出力データＤ２及びＭｉｓｓ信号Ｓ１１が、キャッシュメモリ５０から入力される。また、キャッシュ制御部７０２には、バスアクセス受付信号Ｓ８が、バス調停回路６０から入力される。キャッシュ制御部７０２は、キャッシュアクセス受付信号Ｓ５、キャッシュデータレディ信号Ｓ６、スヌープ要求受付信号Ｓ２、スヌープデータレディ信号Ｓ３、バスアクセス要求信号Ｓ７、ライトバックデータＤ１、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０を出力する。
【０２０１】
ＣＰＵ８０には、スヌープ要求受付信号Ｓ２及びスヌープデータレディ信号Ｓ３が、キャッシュ制御部７０２から入力される。また、ＣＰＵ８０には、出力データＤ２が、キャッシュメモリ５０から入力される。ＣＰＵ８０は、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。
【０２０２】
キャッシュメモリ５０には、タグイネーブル信号Ｓ９、アクセスアドレスＡ３、及び、キャッシュアクセスモード切替信号Ｓ１０が、キャッシュ制御部７０２から入力される。キャッシュメモリ５０は、Ｍｉｓｓ信号Ｓ１１及び出力データＤ２を出力する。
【０２０３】
ＣＰＵ７０１は、キャッシュメモリ５０内に格納されているデータを読み出す場合、キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２を出力する。キャッシュアクセス要求信号Ｓ４及びキャッシュアドレスＡ２は、キャッシュ制御部７０２に入力される。
【０２０４】
キャッシュ制御部７０２は、キャッシュアクセス要求信号Ｓ４を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、キャッシュアクセス受付信号Ｓ５と、タグイネーブル信号Ｓ９と、キャッシュアドレスＡ２に基づきアクセスアドレスＡ３とを出力する。キャッシュアクセス受付信号Ｓ５は、ＣＰＵ７０１に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０２０５】
ＣＰＵ８０は、キャッシュメモリ５０内に格納されているデータを読み出す場合、スヌープ要求信号Ｓ１及びスヌープアドレスＡ１を出力する。スヌープ要求信号Ｓ１及びスヌープアドレスＡ１は、キャッシュ制御部７０２に入力される。
【０２０６】
キャッシュ制御部７０２は、スヌープ要求信号Ｓ１を受け付けると、キャッシュメモリ５０がアクセス可能な状態であれば、スヌープ要求受付信号Ｓ２と、タグイネーブル信号Ｓ９と、スヌープアドレスＡ１に基づきアクセスアドレスＡ３とを出力する。スヌープ要求受付信号Ｓ２は、ＣＰＵ８０に入力される。タグイネーブル信号Ｓ９及びアクセスアドレスＡ３は、キャッシュメモリ５０に入力される。
【０２０７】
ＣＰＵ７０１及びＣＰＵ８０からキャッシュメモリ５０への各アクセスに関して、キャッシュ制御部７０２は、上記実施の形態１と同様の２サイクルアクセスモード及び１サイクルアクセスモードを有している。
【０２０８】
キャッシュ制御部７０２は、２サイクルアクセスモードでのアクセス要求に連続して１サイクルアクセスモードでのアクセス要求が発生したことに起因して、２サイクルアクセスモードでアクセスする期間（第１のアクセス期間）の一部に１サイクルアクセスモードでアクセスする期間（第２のアクセス期間）が重複することとなる場合、上記第２のアクセス期間におけるアクセスを２サイクルアクセスモードに変更する。例えば図２２に示した例を参照すると、２サイクルアクセスモードでアクセスする第１のアクセス期間（サイクル期間Ｐ２の後半からサイクル期間Ｐ４の前半）の後半部分に、１サイクルアクセスモードでアクセスする第２のアクセス期間（サイクル期間Ｐ３の後半からサイクル期間Ｐ４の前半）が重複している。従って、キャッシュ制御部７０２は、上記第２のアクセス期間におけるアクセスＡＣ３を、１サイクルアクセスモードから２サイクルアクセスモードに変更する。
【０２０９】
図２４は、本実施の形態７に係るキャッシュシステムに関して、アクセスモードが切り替わる状況を示すタイミングチャートである。図２２に示した例と同様に、サイクル期間Ｐ１においては、２サイクルアクセスモードの判定条件を満たしたことにより、２サイクルアクセスモードによるアクセス要求（アクセスＡＣ１）が発生している。また、サイクル期間Ｐ１に連続するサイクル期間Ｐ２においても、２サイクルアクセスモードの判定条件を満たしたことにより、２サイクルアクセスモードによるアクセス要求（アクセスＡＣ２）が発生している。また、サイクル期間Ｐ２に連続するサイクル期間Ｐ３においては、１サイクルアクセスモードの判定条件を満たしたことにより、１サイクルアクセスモードによるアクセス要求（アクセスＡＣ３）が発生している。
【０２１０】
キャッシュ制御部７０２は、１サイクルアクセスモードでのアクセスＡＣ３が２サイクルアクセスモードでのアクセスＡＣ２に連続していることを判別すると、アクセスＡＣ３に対応するキャッシュアクセスモード切替信号Ｓ１０を、「Ｈ」レベルから「Ｌ」レベルに変更する。これにより、アクセスＡＣ３のアクセスモードが、１サイクルアクセスモードから２サイクルアクセスモードに変更される。
【０２１１】
なお、２サイクルアクセスモードでのアクセスの後に１サイクルアクセスモードでのアクセスが実行される場合であっても、１サイクルアクセスモードでのアクセスが２サイクルアクセスモードでのアクセスに連続していない場合には、図２１と同様の動作が行われる。
【０２１２】
図２５は、キャッシュ制御部７０２の構成の一部を示すブロック図である。キャッシュ制御部７０２は、切替信号生成回路６０を有している。切替信号生成回路６０は、アクセスサイクル判定回路６１、ＡＮＤ回路６２，６３，６５、及び、フリップフロップ６４を有している。アクセスサイクル判定回路６１の出力端子は、ＡＮＤ回路６３，６５の各第１の入力端子に接続されている。ＡＮＤ回路６３の出力端子は、フリップフロップ６４の入力端子に接続されている。フリップフロップ６４の出力端子は、ＡＮＤ回路６２の第１の入力端子と、ＡＮＤ回路６５の第２の入力端子とに接続されている。ＡＮＤ回路６５からは、キャッシュアクセスモード切替信号Ｓ１０が出力される。ＡＮＤ回路６２の第２の入力端子には、タグイネーブル信号Ｓ９が入力される。ＡＮＤ回路６２の出力端子は、ＡＮＤ回路６３の第２の入力端子に接続されている。
【０２１３】
アクセスサイクル判定回路６１は、通常は「Ｈ」レベルの信号を出力し、２サイクルアクセスモードでキャッシュメモリ５０へのアクセスを行う場合には、１サイクル期間だけ「Ｌ」レベルの信号を出力する。
【０２１４】
アクセスサイクル判定回路６１が１サイクル期間だけ「Ｌ」レベルの信号を出力すると、この１サイクル期間と、この１サイクル期間に続く次の１サイクル期間とにおいて、「Ｌ」レベルのキャッシュアクセスモード切替信号Ｓ１０が出力される。
【０２１５】
一方、アクセスサイクル判定回路６１が「Ｈ」レベルの信号を出力すると、同一のサイクル期間内にタグメモリへのアクセスがあり、かつ、２サイクルアクセスモードでのデータメモリへのアクセスがある場合には、「Ｌ」レベルの信号がフリップフロップ６４へ入力される。また、それ以外の場合には、「Ｈ」レベルの信号がフリップフロップ６４へ入力される。ＡＮＤ回路６５は、フリップフロップ６４から入力される信号と、アクセスサイクル判定回路６１から入力される信号との論理積をとり、キャッシュアクセスモード切替信号Ｓ１０として出力する。
【０２１６】
なお、本実施の形態７に係るキャッシュシステムにおいて、１サイクルアクセスモード及び２サイクルアクセスモードの各判定条件は、上記実施の形態１〜６で説明した判定条件に限定されるものではなく、どのようなものであってもよい。
【０２１７】
このように本実施の形態７に係るキャッシュシステムによれば、キャッシュ制御部７０２は、１サイクルアクセスモードでのアクセスＡＣ３が２サイクルアクセスモードでのアクセスＡＣ２に連続していることを判別すると、アクセスＡＣ３のアクセスモードを、１サイクルアクセスモードから２サイクルアクセスモードに変更する。従って、１サイクルアクセスモードに切り替えても高速動作が実現できない場合に２サイクルアクセスモードが維持されることによって、消費電力を抑制することが可能となる。
【図面の簡単な説明】
【０２１８】
【図１】本発明の実施の形態１に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。
【図２】本発明の実施の形態１に係るキャッシュシステムに関して、キャッシュ制御部の構成の一部を示すブロック図である。
【図３】本発明の実施の形態１に係るキャッシュシステムに関して、キャッシュ制御部の構成の一部を示すブロック図である。
【図４】本発明の実施の形態１に係るキャッシュシステムに関して、キャッシュメモリの具体的な構成を示すブロック図である。
【図５】本発明の実施の形態１に係るキャッシュシステムに関して、キャッシュアクセスモード切替装置の具体的な構成を示すブロック図である。
【図６】本発明の実施の形態１に係るキャッシュシステムに関して、２サイクルアクセスモードで動作している場合のキャッシュメモリの各部の波形を示したタイミングチャートである。
【図７】本発明の実施の形態１に係るキャッシュシステムに関して、１サイクルアクセスモードで動作している場合のキャッシュメモリの各部の波形を示したタイミングチャートである。
【図８】本発明の実施の形態２に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。
【図９】本発明の実施の形態２に係るキャッシュシステムに関して、キャッシュ制御部の構成の一部を示すブロック図である。
【図１０】本発明の実施の形態３に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。
【図１１】本発明の実施の形態３に係るキャッシュシステムに関して、キャッシュ制御部の構成の一部を示すブロック図である。
【図１２】本発明の実施の形態４に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。
【図１３】本発明の実施の形態４に係るキャッシュシステムに関して、キャッシュ制御部の構成の一部を示すブロック図である。
【図１４】本発明の実施の形態５に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。
【図１５】本発明の実施の形態５に係るキャッシュシステムの構成の一部を示すブロック図である。
【図１６】本発明の実施の形態５に係るキャッシュシステムの構成の一部を示すブロック図である。
【図１７】本発明の実施の形態５に係るキャッシュシステムの構成の一部を示すブロック図である。
【図１８】本発明の実施の形態５に係るキャッシュシステムに関して、キャッシュ制御部の構成の一部を示すブロック図である。
【図１９】本発明の実施の形態６に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。
【図２０】本発明の実施の形態６に係るキャッシュシステムに関して、キャッシュ制御部の構成の一部を示すブロック図である。
【図２１】本発明の実施の形態１〜６に係るキャッシュシステムに関して、アクセスモードが切り替わる状況を示すタイミングチャートである。
【図２２】本発明の実施の形態１〜６に係るキャッシュシステムに関して、アクセスモードが切り替わる状況を示すタイミングチャートである。
【図２３】本発明の実施の形態７に係るキャッシュシステムが搭載されている半導体装置の構成を示すブロック図である。
【図２４】本発明の実施の形態７に係るキャッシュシステムに関して、アクセスモードが切り替わる状況を示すタイミングチャートである。
【図２５】本発明の実施の形態７に係るキャッシュシステムに関して、キャッシュ制御部の構成の一部を示すブロック図である。
【符号の説明】
【０２１９】
１，８０，２０１，３０１，４０１，５０１，６０１，７０１  ＣＰＵ、２，２０２，３０２，４０２，５０２，６０２，７０２  キャッシュ制御部、５０  キャッシュメモリ。
【図１】
2005084712.tif 000003
【図２】
2005084712.tif 000004
【図３】
2005084712.tif 000005
【図４】
2005084712.tif 000006
【図５】
2005084712.tif 000007
【図６】
2005084712.tif 000008
【図７】
2005084712.tif 000009
【図８】
2005084712.tif 000010
【図９】
2005084712.tif 000011
【図１０】
2005084712.tif 000012
【図１１】
2005084712.tif 000013
【図１２】
2005084712.tif 000014
【図１３】
2005084712.tif 000015
【図１４】
2005084712.tif 000016
【図１５】
2005084712.tif 000017
【図１６】
2005084712.tif 000018
【図１７】
2005084712.tif 000019
【図１８】
2005084712.tif 000020
【図１９】
2005084712.tif 000021
【図２０】
2005084712.tif 000022
【図２１】
2005084712.tif 000023
【図２２】
2005084712.tif 000024
【図２３】
2005084712.tif 000025
【図２４】
2005084712.tif 000026
【図２５】
2005084712.tif 000027