(57)【要約】【課題】  キャッシュメモリにおける消費電力を低減し、処理効率の向上を図ること。【解決手段】  キャッシュメモリ制御装置１は、読み出し対象であるデータがプロセッサから読み出されている際に、引き続いて読み出されると予想されるデータがキャッシュされているか否かを検出する。そして、引き続いて読み出されると予想されるデータがキャッシュに記憶されている場合、そのデータを先読みキャッシュ部２０に記憶し、引き続いて読み出されると予想されるデータがキャッシュに記憶されていない場合、そのデータを外部メモリから読み出し、先読みキャッシュ部２０に記憶する。その後、引き続くサイクルでプロセッサから実際に読み出されたデータのアドレスが、先読みキャッシュ部２０に記憶されたデータのアドレスと一致する場合、そのデータを先読みキャッシュ部２０からプロセッサに出力する。【選択図】  図１
2005084999.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの読み出し対象となるデータを記憶しているメモリデバイスから、記憶されているデータの少なくとも一部を複数のウェイを含むキャッシュメモリにキャッシュしておき、キャッシュされたデータをプロセッサに供給可能なキャッシュメモリ制御装置であって、
プロセッサが読み出している読み出し中データの後に読み出されると予想される予定データが、前記キャッシュメモリのいずれかのウェイにキャッシュされているか否かを判定するキャッシュ判定手段と、
前記キャッシュ判定手段によって、前記予定データがいずれかのウェイにキャッシュされていると判定された場合に、前記複数のウェイのうち、該予定データが記憶されているウェイにアクセスし、該予定データを読み出して記憶する先読みキャッシュ手段と、
を含み、
前記先読みキャッシュ手段は、前記読み出し中データの後に前記予定データが読み出された場合に、記憶している予定データをプロセッサに出力することを特徴とするキャッシュメモリ制御装置。
【請求項２】
前記キャッシュメモリは、前記複数のウェイについて、キャッシュしているデータのアドレスを格納しているアドレス記憶手段と、該アドレスそれぞれに対応するデータを記憶しているデータ記憶手段とを含み、
前記キャッシュ判定手段は、前記アドレス記憶手段のいずれかのウェイに、前記予定データのアドレスが記憶されているか否かによって、該予定データがキャッシュされているか否かを判定し、
前記先読みキャッシュ手段は、前記データ記憶手段の複数のウェイのうち、前記予定データのアドレスを記憶している前記アドレス記憶手段のウェイに対応するウェイにアクセスすることを特徴とする請求項１記載のキャッシュメモリ制御装置。
【請求項３】
前記予定データは、前記読み出し中データの直後に読み出されると予想されるデータであることを特徴とする請求項１または２記載のキャッシュメモリ制御装置。
【請求項４】
プロセッサの読み出し対象となるデータは、複数のワードを含むブロックとして構成され、該ブロックを単位として、前記予定データがキャッシュされているか否かの判定あるいは前記予定データの読み出しを行うことを特徴とする請求項１から３のいずれか１項に記載のキャッシュメモリ制御装置。
【請求項５】
前記キャッシュ判定手段は、前記読み出し中データを構成する複数のワードのうち、プロセッサが末尾のワードの読み出しを指示することに対応して、前記予定データがキャッシュされているか否かを判定することを特徴とする請求項４記載のキャッシュメモリ制御装置。
【請求項６】
前記キャッシュ判定手段は、前記読み出し中データを構成する複数のワードのうち、プロセッサが末尾のワードに先行するワードの読み出しを指示することに対応して、前記予定データがキャッシュされているか否かを判定することを特徴とする請求項４記載のキャッシュメモリ制御装置。
【請求項７】
前記先読みキャッシュ手段は、前記キャッシュ判定手段によって、前記予定データがいずれかのウェイにキャッシュされていると判定された場合に、前記読み出し中データを構成する複数のワードのうち、プロセッサが末尾のワードの読み出しを指示することに対応して、該予定データが記憶されているウェイにアクセスし、該予定データを読み出すことを特徴とする請求項６記載のキャッシュメモリ制御装置。
【請求項８】
前記キャッシュメモリにおける複数のウェイのうち、データの読み出しに関係しないウェイを低消費電力で動作させる低消費電力化手段をさらに含むことを特徴とする請求項１から７のいずれか１項に記載のキャッシュメモリ制御装置。
【請求項９】
前記低消費電力化手段は、データの読み出しに関係しないウェイに対し、クロック信号を供給しないように制御するクロックゲーティング機能を備えることを特徴とする請求項８記載のキャッシュメモリ制御装置。
【請求項１０】
前記キャッシュメモリは、セット・アソシアティブ方式のキャッシュメモリであることを特徴とする請求項１から９のいずれか１項に記載のキャッシュメモリ制御装置。
【請求項１１】
前記先読みキャッシュ手段は、前記キャッシュ判定手段によって、前記キャッシュメモリのいずれのウェイにも前記予定データがキャッシュされていないと判定された場合、前記メモリデバイスにアクセスし、該予定データを読み出して記憶することを特徴とする請求項１から１０のいずれか１項に記載のキャッシュメモリ制御装置。
【請求項１２】
プロセッサの読み出し対象となるデータを記憶しているメモリデバイスから、記憶されているデータの少なくとも一部を複数のウェイを含むキャッシュメモリにキャッシュしておき、キャッシュされたデータをプロセッサに供給するためのキャッシュメモリ制御方法であって、
プロセッサが読み出している読み出し中データの後に読み出されると予想される予定データが、前記キャッシュメモリのいずれかのウェイにキャッシュされているか否かを判定するキャッシュ判定ステップと、
前記キャッシュ判定ステップにおいて、前記予定データがいずれかのウェイにキャッシュされていると判定された場合に、前記複数のウェイのうち、該予定データが記憶されているウェイにアクセスし、該予定データを読み出して記憶する先読みキャッシュステップと、
プロセッサによって、前記読み出し中データの後に前記予定データが読み出された場合に、前記先読みキャッシュステップにおいて記憶された予定データをプロセッサに出力する出力ステップと、
を含むことを特徴とするキャッシュメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサとメモリデバイスとの間で、データの転送を効率的に行うために設けられるキャッシュメモリの制御装置およびキャッシュメモリの制御方法に関する。
【背景技術】
【０００２】
従来、プロセッサがメインメモリ等のメモリデバイス上のデータを読み出す処理を高速化するために、キャッシュメモリが用いられている。
キャッシュメモリは、プロセッサによって高速にデータを読み出すことが可能な記憶素子によって構成されている。そして、キャッシュメモリは、メモリデバイスに記憶されているデータ（以下、適宜「メモリデバイスデータ」と言う。）の一部を記憶しておき、プロセッサがメモリデバイスからデータの読み出しを行う場合に、そのデータがキャッシュメモリに記憶されているものであれば、キャッシュメモリから読み出すことによって、データを高速に読み出すことを可能としている。
【０００３】
ここで、キャッシュメモリの方式には種々のものがあるが、セット・アソシアティブ方式が一般的である。
セット・アソシアティブ方式とは、キャッシュメモリを複数の領域（ウェイ）に分割し、それぞれのウェイに、メモリデバイス上の異なるアドレスのデータを格納しておくことにより、ヒット率を向上させることができる方式である。
【０００４】
図１２は、従来のセット・アソシアティブ方式のキャッシュメモリ１００の構成を示す概略図である。
図１２において、キャッシュメモリ１００は、タグ・テーブル１１０と、データ・メモリ１２０と、ヒット検出部１３０と、マルチプレクサ（ＭＵＸ）１４０とを含んで構成される。なお、キャッシュメモリ１００においては、その記憶領域内に、複数Ｎ個の要素を記憶することが可能であり、これらの要素それぞれは“エントリ”と称される。また、キャッシュメモリ１００は、２ウェイのセット・アソシアティブ方式であり、各エントリには、それぞれ２つのメモリデバイスデータ（ウェイＡおよびウェイＢのデータ）が格納されている。
【０００５】
タグ・テーブル１１０は、データ・メモリ１２０におけるウェイＡ，Ｂそれぞれのメモリデバイスデータが、メモリデバイス上のいずれのアドレスに記憶されているものであるかを示すアドレス情報を記憶している。タグ・テーブル１１０に記憶されているアドレス情報は、後述するヒット検出部１３０によって参照され、キャッシュがヒットしたか否かの判定に用いられる。
【０００６】
データ・メモリ１２０は、アクセス頻度の高いデータ等、所定のメモリデバイスデータを記憶している。また、データ・メモリ１２０には、ウェイＡ，Ｂそれぞれに対応するメモリデバイスデータを記憶することが可能である。
ヒット検出部１３０は、プロセッサからの読み出し命令に対し、キャッシュメモリ１００に記憶されているメモリデバイスデータがヒットしたか否かを検出する。具体的には、タグ・テーブル１１０に記憶されたアドレス情報それぞれを参照し、プロセッサからの読み出し命令に示されたアドレスに対応するアドレス情報が検出されると、キャッシュがヒットしたものと判定する。そして、ヒット検出部１３０は、ヒットしたウェイを示す情報をＭＵＸ１４０に出力する。
【０００７】
ＭＵＸ１４０は、ヒット検出部１３０から入力されたウェイを示す情報に基づいて、データ・メモリ１２０から出力されるいずれかのメモリデバイスデータを選択し、プロセッサへの出力データ（プロセッサによって読み出されたデータ）とする。
このようなセット・アソシアティブ方式においては、プロセッサからエントリ・アドレス（キャッシュメモリ内に記憶されているいずれかのエントリを選択するアドレス）が入力された場合、キャッシュメモリ１００の複数のウェイそれぞれについて、タグ・テーブル１１０およびデータ・メモリ１２０にアクセスを行い、データがヒットしたか否かが検出される。
【０００８】
そのため、キャッシュメモリ１００内の不要な部分に対するアクセスが増加することとなり、消費電力の増加、あるいは、処理効率の低下を招くと言う問題があった。
ここで、上述のようなキャッシュメモリ１００を含め、従来のキャッシュメモリにおける問題を解決するために、種々の提案がなされている。
特開平１１−３９２１６号公報には、複数のウェイを有するセット・アソシアティブ方式のキャッシュメモリにおいて、データ・メモリの出力が確定するまでの遅延を低減するために、メモリデバイスをインターリーブしてアクセスする方法が開示されている。
【０００９】
また、同様の目的で、特開２００２−３２８８３９号公報には、連想記憶によってウェイの予測を行う方法が開示されている。さらに、特開２０００−１１２８２０号公報や特開２０００−３４７９３４号公報には、キャッシュのヒットを先行的に予測する技術として、プロセッサが命令を読み出す場合、命令は連続したアドレスから読み出されることが多いという傾向を利用して、引き続く命令を予測する技術が開示されている。
【特許文献１】特開平１１−３９２１６号公報
【特許文献２】特開２００２−３２８８３９号公報
【特許文献３】特開２０００−１１２８２０号
【特許文献４】特開２０００−３４７９３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の公報に記載された技術は、いずれも読み出されるデータに対するアクセスの遅延を低減するための技術であった。
即ち、上述の公報に記載された技術においては、キャッシュメモリ内の不要な部分に対するアクセスが増加することにより、消費電力の増加、あるいは、処理効率の低下を招くと言う問題を解決することが困難であった。
【００１１】
本発明の課題は、キャッシュメモリにおける消費電力を低減し、処理効率の向上を図ることである。
【課題を解決するための手段】
【００１２】
以上の課題を解決するため、本発明は、
プロセッサの読み出し対象となるデータを記憶しているメモリデバイス（例えば、発明を実施するための最良の形態中の外部メモリ）から、記憶されているデータの少なくとも一部を複数のウェイ（例えば、発明を実施するための最良の形態中のウェイＡ，Ｂ）含むキャッシュメモリにキャッシュしておき、キャッシュされたデータをプロセッサに供給可能なキャッシュメモリ制御装置であって、プロセッサが読み出している読み出し中データの後に読み出されると予想される予定データが、前記キャッシュメモリのいずれかのウェイにキャッシュされているか否かを判定するキャッシュ判定手段（例えば、図１のアクセス管理部１０およびタグ・テーブル３０）と、前記キャッシュ判定手段によって、前記予定データがいずれかのウェイにキャッシュされていると判定された場合に、前記複数のウェイのうち、該予定データが記憶されているウェイにアクセスし、該予定データを読み出して記憶する先読みキャッシュ手段（例えば、図１のアクセス管理部１０および先読みキャッシュ部２０）とを含み、前記先読みキャッシュ手段は、前記読み出し中データの後に前記予定データが読み出された場合に、記憶している予定データをプロセッサに出力することを特徴としている。
【００１３】
このような構成により、プロセッサによって読み出されているデータの後に読み出されると考えられるデータを予め先読みキャッシュ手段に記憶しておき、プロセッサに出力することが可能になると共に、そのデータをキャッシュメモリから読み出す際に、不要なウェイにアクセスすることを防止することができる。即ち、キャッシュメモリ内の不要な部分に対するアクセスが増加することにより、消費電力の増加、あるいは、処理効率の低下を招くと言う問題を解決することができる。
【００１４】
また、前記キャッシュメモリは、前記複数のウェイについて、キャッシュしているデータのアドレスを格納しているアドレス記憶手段と、該アドレスそれぞれに対応するデータを記憶しているデータ記憶手段とを含み、前記キャッシュ判定手段は、前記アドレス記憶手段のいずれかのウェイに、前記予定データのアドレスが記憶されているか否かによって、該予定データがキャッシュされているか否かを判定し、前記先読みキャッシュ手段は、前記データ記憶手段の複数のウェイのうち、前記予定データのアドレスを記憶している前記アドレス記憶手段のウェイに対応するウェイにアクセスすることを特徴としている。
【００１５】
このような構成により、アドレス記憶手段にアクセスすることで、予定データがキャッシュにヒットするか否かを判定することができるため、キャッシュにヒットするか否かを判定する際にデータ記憶手段にアクセスすることによって発生する不要な消費電力を低減することが可能となる。また、データ記憶手段において、予定データが記憶されているウェイにのみアクセスすることができるため、さらに消費電力を低減することが可能となる。
【００１６】
また、前記予定データは、前記読み出し中データの直後に読み出されると予想されるデータ（例えば、読み出し中データのアドレスに引き続くアドレスのデータ等）であることを特徴としている。
したがって、読み出し中データの次に読み出されると予想されるデータのみについて、キャッシュされているか否かおよび先読みキャッシュ手段への記憶等の処理を行えばよいため、処理効率を向上させることができる。
【００１７】
また、プロセッサの読み出し対象となるデータは、複数のワードを含むブロックとして構成され、該ブロックを単位として、前記予定データがキャッシュされているか否かの判定あるいは前記予定データの読み出しを行うことを特徴としている。
このような構成により、複数のワードそれぞれについて、プロセッサが読み出し命令を行う必要がなく、一つの読み出し命令でブロック全体を読み出すことができるため、消費電力を低減することができると共に、処理効率を向上させることが可能となる。
【００１８】
また、前記キャッシュ判定手段は、前記読み出し中データを構成する複数のワードのうち、プロセッサが末尾のワードの読み出しを指示することに対応して、前記予定データがキャッシュされているか否かを判定することを特徴としている。
一般に、予定データは、読み出し中データのより後のワードがプロセッサに読み出されているタイミングで予想する方が、的中する確率が高くなるものである。
【００１９】
したがって、このような構成により、より高い確率でプロセッサに読み込まれるデータを予定データとして先読みすることが可能となる。
また、前記キャッシュ判定手段は、前記読み出し中データを構成する複数のワードのうち、プロセッサが末尾のワードに先行するワードの読み出しを指示することに対応して、前記予定データがキャッシュされているか否かを判定することを特徴としている。
【００２０】
このような構成により、より早いタイミングで予定データがキャッシュされているか否かを判定できるため、キャッシュされていない場合の処理（例えば、メモリデバイスから読み込む処理等）をより早く行うことができ、ウェイトサイクルの発生を防止することあるいは発生するウェイトサイクルを低減することが可能となる。
また、前記先読みキャッシュ手段は、前記キャッシュ判定手段によって、前記予定データがいずれかのウェイにキャッシュされていると判定された場合に、前記読み出し中データを構成する複数のワードのうち、プロセッサが末尾のワードの読み出しを指示することに対応して、該予定データが記憶されているウェイにアクセスし、該予定データを読み出すことを特徴としている。
【００２１】
このような構成により、より早いタイミングで予定データがキャッシュされているか否かを判定した場合にも、予定データが読み出される確率が高くなったタイミングで、実際に予定データを読み出すことができる。したがって、先読みキャッシュ手段に記憶された予定データがプロセッサに読み出されないこととなる割合を低減できるため、処理効率の低下を防止することができる。
【００２２】
また、前記キャッシュメモリにおける複数のウェイのうち、データの読み出しに関係しないウェイを低消費電力で動作させる低消費電力化手段をさらに含むことを特徴としている。
このような構成により、不要な部分の消費電力を低減することができ、キャッシュメモリ制御装置の消費電力をさらに低減することが可能となる。
【００２３】
また、前記低消費電力化手段は、データの読み出しに関係しないウェイに対し、クロック信号を供給しないように制御するクロックゲーティング機能を備えることを特徴としている。
このような構成により、不要な部分に対するクロック信号を供給することにより発生する不要な消費電力を低減することができる。
【００２４】
また、前記キャッシュメモリは、セット・アソシアティブ方式のキャッシュメモリであることを特徴としている。
このような構成により、セット・アソシアティブ方式のキャッシュメモリにおいて、エントリに含まれる各ウェイのアドレス記憶手段（タグ・テーブル）およびデータ記憶手段（データ・メモリ）に不必要にアクセスすることによって発生する消費電力を大幅に低減できると共に、処理効率を向上させることが可能となる。
【００２５】
また、前記先読みキャッシュ手段は、前記キャッシュ判定手段によって、前記キャッシュメモリのいずれのウェイにも前記予定データがキャッシュされていないと判定された場合、前記メモリデバイスにアクセスし、該予定データを読み出して記憶することを特徴としている。
このような構成により、予定データがキャッシュされていない場合に、メモリデバイスから予定データを読み出す処理をより早く行うことができるため、ウェイトサイクルの発生を防止することあるいは発生するウェイトサイクルを低減することが可能となる。
【００２６】
また、本発明は、
プロセッサの読み出し対象となるデータを記憶しているメモリデバイスから、記憶されているデータの少なくとも一部を複数のウェイを含むキャッシュメモリにキャッシュしておき、キャッシュされたデータをプロセッサに供給するためのキャッシュメモリ制御方法であって、プロセッサが読み出している読み出し中データの後に読み出されると予想される予定データが、前記キャッシュメモリのいずれかのウェイにキャッシュされているか否かを判定するキャッシュ判定ステップと、前記キャッシュ判定ステップにおいて、前記予定データがいずれかのウェイにキャッシュされていると判定された場合に、前記複数のウェイのうち、該予定データが記憶されているウェイにアクセスし、該予定データを読み出して記憶する先読みキャッシュステップと、プロセッサによって、前記読み出し中データの後に前記予定データが読み出された場合に、前記先読みキャッシュステップにおいて記憶された予定データをプロセッサに出力する出力ステップとを含むことを特徴としている。
【００２７】
このように、本発明によれば、キャッシュメモリにおける消費電力を低減し、処理効率の向上を図ることが可能となる。
【発明を実施するための最良の形態】
【００２８】
以下、図を参照して本発明に係るキャッシュメモリ制御装置の実施の形態を説明する。
まず、構成を説明する。
図１は、本発明を適用したキャッシュメモリ制御装置１の構成を示す図である。
図１において、キャッシュメモリ制御装置１は、アクセス管理部１０と、先読みキャッシュ部２０と、タグ・テーブル３０と、データ・メモリ４０と、ヒット検出部５０と、ＭＵＸ６０とを含んで構成される。
【００２９】
また、図２は、タグ・テーブル３０およびデータ・メモリ４０に記憶されるデータの構成を示す図であり、（ａ）はタグ・テーブル３０内のデータの構成、（ｂ）はデータ・メモリ４０内のデータの構成を示している。
以下、図１に基づいて、キャッシュメモリ制御装置１の構成を説明し、適宜、図２を参照することとする。なお、ここでは、キャッシュメモリ制御装置１が、２ウェイ（ウェイＡ，Ｂ）のセット・アソシアティブ方式である場合を想定している。
【００３０】
アクセス管理部１０は、キャッシュメモリ制御装置１全体を制御するものであり、後述する状態遷移図に従うように、キャッシュメモリ制御装置１を動作させる。
例えば、アクセス管理部１０は、プロセッサから入力された読み出し命令に基づいて、読み出し命令に示されたアドレスのデータが先読みキャッシュ部２０に記憶されている場合には、そのアドレスに対応するデータをプロセッサに対して出力させると共に、引き続き読み出されるデータを予想し、予想したデータを先読みキャッシュ部２０のプロセッサ先読みバッファ２２に記憶させる。
【００３１】
一方、読み出し命令に示されたアドレスのデータが先読みキャッシュ部２０に記憶されていない場合、アクセス管理部１０は、タグ・テーブル３０を参照する。そして、そのアドレスがタグ・テーブル３０に記憶されている場合、アクセス管理部１０は、そのアドレスに対応するデータをデータ・メモリ４０からプロセッサ先読みバッファ２２に記憶させる。
【００３２】
また、読み出し命令に示されたアドレスがタグ・テーブル３０に記憶されていない場合、アクセス管理部１０は、外部メモリにアクセスし、そのアドレスのデータを先読みキャッシュ部２０の外部メモリ先読みバッファ２３に記憶させる。
先読みキャッシュ部２０は、プロセッサから入力された読み出し命令を受け取り、読み出し命令に示されたアドレスをアクセス管理部１０に出力する。また、先読みキャッシュ部２０は、アクセス管理部１０の指示に従って、プロセッサによって読み出されると予想されたデータを、データ・メモリ４０あるいは外部メモリから予め読み出して記憶し、プロセッサから実際に読み出された場合に、そのデータをプロセッサに出力する。
【００３３】
具体的には、先読みキャッシュ部２０は、アドレス制御部２１と、プロセッサ先読みバッファ２２と、外部メモリ先読みバッファ２３とを含んで構成される。
アドレス制御部２１は、プロセッサから入力された読み出し命令から、読み出し対象となっているデータのアドレスを取得し、アクセス管理部１０に出力する。また、アドレス制御部２１は、データ・メモリ４０にキャッシュされているデータを読み出す際に、タグ・テーブル３０およびデータ・メモリ４０に読み出し対象のアドレスを出力したり、データ・メモリ４０にキャッシュされていないデータを外部メモリから読み出す際に、読み出し対象のアドレスを外部メモリに出力したりする。
【００３４】
なお、アドレス制御部２１は、アクセス管理部１０からデータの読み出し（先読み）が指示され、そのデータのアドレスがタグ・テーブル３０に記憶されている場合には、データ・メモリ４０の各ウェイのうち、そのデータが記憶されているウェイにのみアドレスを出力する。
そのため、不要なウェイへのアクセス回数を低減することができ、消費電力を低減することができると共に、処理効率の向上を実現することができる。
【００３５】
プロセッサ先読みバッファ２２は、データ・メモリ４０から読み出されたデータを、ＭＵＸ６０を介して受け取り、プロセッサに出力するデータとして記憶する。
外部メモリ先読みバッファ２３は、外部メモリから読み出されたデータを受け取り、プロセッサに出力するデータとして記憶する。また、外部メモリ先読みバッファ２３に記憶されたデータは、キャッシュメモリ制御装置１において処理が行われないクロックタイミングにデータ・メモリ４０に格納される。
【００３６】
タグ・テーブル３０は、図２（ａ）に示すように、各エントリ（０番〜５１１番、ただし、エントリ数Ｎ＝５１２の場合）について、データ・メモリ４０に記憶されたデータがキャッシュヒットしたか否かを示すフラグと、データ・メモリ４０に記憶されたデータが記憶されている外部メモリ上のアドレスとを記憶している。また、各エントリには、ウェイＡ，Ｂに対応するフラグおよびアドレスが記憶されている。タグ・テーブル３０に記憶されているアドレスを参照することにより、データ・メモリ４０のデータが、キャッシュにヒットしたか否かを判定することができる。
【００３７】
データ・メモリ４０は、各エントリについて、所定のメモリデバイスデータを記憶している。なお、データ・メモリ４０は、４ワードを１ブロックとして取り扱い、データ・メモリ４０からデータを読み出す場合には、エントリに含まれるいずれかのウェイの４ワード（ｗ０〜ｗ４）を１まとまりとして読み出すことが可能である。ただし、１ブロックにおける一部のワード（例えば、ワードｗ１〜ｗ３）を読み出すことも可能である。
【００３８】
ヒット検出部５０は、アドレス制御部２１からタグ・テーブル３０に対し、読み出し命令に示されたアドレスが入力された場合に、データ・メモリ４０に記憶されているメモリデバイスデータがヒットしたか否かを検出する。具体的には、タグ・テーブル３０に記憶されたアドレスそれぞれを参照し、アドレス制御部２１から入力されたアドレスが検出されると、キャッシュがヒットしたものと判定する。そして、ヒット検出部５０は、ヒットしたウェイを示す情報をＭＵＸ６０に出力する。
【００３９】
ＭＵＸ６０は、ヒット検出部５０からヒットしたウェイを示す情報を受け取り、データ・メモリ４０の各ウェイの記憶領域からメモリデバイスデータを受け取る。そして、ＭＵＸ６０は、ヒット検出部５０から入力されたウェイに対応するメモリデバイスデータを選択し、プロセッサ先読みバッファ２２に出力する。
次に、動作を説明する。
【００４０】
キャッシュメモリ制御装置１は、主としてアクセス管理部１０の制御によって、所定の動作に対応する状態遷移を行う。
まず、キャッシュメモリ制御装置１の基本的な動作について説明する。
キャッシュメモリ制御装置１の基本的な動作においては、読み出し対象であるメモリデバイスデータの最後のワードのアドレスがプロセッサから出力されるタイミングで、タグ・テーブル３０を参照し、引き続き読み出されると予想されるデータ（以下、「予定データ」と言う。）がキャッシュにヒットするか否かを検出（先読み）する。したがって、実際に読み出される可能性の高いデータについて、キャッシュを先読みすることができるため、先読みキャッシュ部２０におけるデータのヒット率を向上させることができる。
【００４１】
図３は、キャッシュメモリ制御装置１の基本的な動作を示す状態遷移図である。
図３において、キャッシュメモリ制御装置１は、状態Ｓ１〜Ｓ４を遷移し、それぞれの状態間を遷移するための遷移条件Ｃ１〜Ｃ１２が定められている。
状態Ｓ１（ST-PRC-NORMAL）においては、予定データが、プロセッサ先読みバッファ２２に記憶されている場合（先読みキャッシュにヒットしている場合）に、そのデータをブロック単位でプロセッサに出力する。
【００４２】
また、状態Ｓ１においては、予定データが、プロセッサ先読みバッファ２２に記憶されていない場合には、読み出し対象のアドレスに基づいて、タグ・テーブル３０およびデータ・メモリ４０にアクセスし、そのアドレスと一致するデータをデータ・メモリ４０から読み込む状態（ST-PREREAD-ACTIVE）に移行する。
さらに、状態Ｓ１においては、外部メモリから読み込まれているデータのブロックのうち、末尾のワードの読み出しが完了するまでは、キャッシュのリード（データ・メモリ４０の読み出し）を行わない。
【００４３】
状態Ｓ２（ST-PREREAD-ACTIVE）においては、予定データのアドレスに基づいて、タグ・テーブル３０にのみアクセスし、タグ・テーブル３０に記憶されたアドレスと一致（キャッシュにヒット）した場合、そのアドレスに対応するデータをデータ・メモリ４０から読み出す。
状態Ｓ３（ST-CACHE-HIT-TEST）においては、タグ・テーブル３０とデータ・メモリ４０にアクセスし、予定データのアドレスがタグ・テーブル３０のアドレスと一致するか否かを検出する。そして、状態Ｓ３においては、予定データのアドレスと一致したアドレスに対応するデータをデータ・メモリ４０から読み出す。
【００４４】
状態Ｓ４（ST-EXMEM-ACCESS）においては、外部メモリを読み出すためのステートマシン“sm-exmem-access”（図４参照）を起動し、外部メモリを読み出す。状態Ｓ４から他の状態へ遷移するタイミングは、１ワードの読み込みが終了する時点であり、ステートマシン“sm-exmem-access”の動作の終了を待たない。即ち、他の状態においては、外部メモリの読み出しを待つためのウェイトサイクル（wait-cycle）が生ずる場合がある。
【００４５】
遷移条件Ｃ１（CND-PRA-START）は、状態Ｓ１において、読み込み対象であるデータの末尾のワード（１６進数で表されたアドレスの末尾が“Ｃ”のワード）のアドレスが、プロセッサから入力されることを意味している。
遷移条件Ｃ２（CND-PRA-END）は、状態Ｓ２において、ウェイトサイクルが発生しなければ、次のサイクルで状態Ｓ１に戻ることを意味している。
【００４６】
遷移条件Ｃ３（CND-CHT-START）は、状態Ｓ１において、予定データが、先読みキャッシュにヒットしない場合（プロセッサ先読みバッファ２２に記憶されている場合）を意味している。
遷移条件Ｃ４（CND-CHT-CNT）は、状態Ｓ３を継続するための条件である。即ち、先読みキャッシュ部２０に予定データが記憶されていないため、タグ・テーブル３０およびデータ・メモリ４０にアクセスしてキャッシュヒットを確認し続けるための条件である。なお、分岐命令について、分岐先のアドレスがブロックの末尾であり、かつ状態Ｓ３である場合には、次のサイクルでブロックの先頭のワードにアクセスすることから、連続して先読みキャッシュにヒットしない場合に、先読みキャッシュのミスヒットと判定される。
【００４７】
遷移条件Ｃ５（CND-CHT-PRA）は、状態Ｓ３から状態Ｓ２へ遷移するための条件である。即ち、先読みキャッシュ部２０に予定データが記憶されていないため、タグ・テーブル３０およびデータ・メモリ４０にアクセスしてキャッシュヒットを確認する状態から、タグ・テーブル３０にのみアクセスし、キャッシュヒットを確認する状態へ遷移するための条件である。なお、分岐命令について、分岐先のアドレスがブロックの末尾から２番目（１６進数で表されたアドレスの末尾が“８”のワード）であり、かつ状態Ｓ３である場合には、次のサイクルでブロックの末尾のデータにアクセスすることとなり、即ち、状態Ｓ２に遷移することとなるため、状態Ｓ１に戻ることなく、状態Ｓ２に直接遷移するものである。
【００４８】
遷移条件Ｃ６（CND-CHT-END）は、状態Ｓ３において、分岐先のアドレスがブロックの先頭および２番目（１６進数で表されたアドレスの末尾が“０”あるいは“４”のワード）である場合に、先読みキャッシュにヒットしている状態であれば、状態Ｓ１に戻ることを意味している。
遷移条件Ｃ７（CND-EMA-START）は、状態Ｓ３において、キャッシュにヒットしない場合（データ・メモリ４０に読み込み対象であるデータが記憶されていない場合）を意味している。
【００４９】
遷移条件Ｃ８（CND-PRA-EMA）は、状態Ｓ２において、キャッシュにヒットしない場合を意味している。
遷移条件Ｃ９（CND-PRA-CHT）は、状態Ｓ２において、先読みキャッシュにヒットしない場合を意味している。
遷移条件Ｃ１０（CND-NORM-CNT）は、状態Ｓ１において、先読みキャッシュにヒットしている場合あるいは外部メモリにアクセスしている場合を意味している。
【００５０】
遷移条件Ｃ１１（CND-PRA-CNT）は、状態Ｓ２において、先読み処理を継続する場合を意味している。
遷移条件Ｃ１２（CND-EMA-END）は、状態Ｓ４において、外部メモリへのアクセスが終了した場合を意味している。
次に、外部メモリを読み出すためのステートマシン“sm-exmem-access”について説明する。
【００５１】
図４は、キャッシュメモリ制御装置１上に構築されるステートマシン“sm-exmem-access”の動作を示す状態遷移図である。
図４において、キャッシュメモリ制御装置１は、状態Ｔ１〜Ｔ６を遷移する。
状態Ｔ１（ST-WAIT）においては、外部メモリへのアクセスを停止している。状態Ｔ１においては、所定のタイミングで、状態Ｔ２に移行する。
【００５２】
状態Ｔ２（ST-EXMEM-READ-1W-S）においては、読み出し対象であるデータの第１番目のワードを外部メモリから読み出し、読み出す処理が終了すると、状態Ｔ３に移行する。
状態Ｔ３（ST-EXMEM-READ-1W-E-2W-S）においては、読み出し対象であるデータの第２番目のワードを外部メモリから読み出し、読み出す処理が終了すると、状態Ｔ４に移行する。
【００５３】
状態Ｔ４（ST-EXMEM-READ-2W-E-3W-S）においては、読み出し対象であるデータの第３番目のワードを外部メモリから読み出し、読み出す処理が終了すると、状態Ｔ５に移行する。
状態Ｔ５（ST-EXMEM-READ-3W-E-4W-S）においては、読み出し対象であるデータの第４番目のワードを外部メモリから読み出し、読み出す処理が終了すると、状態Ｔ６に移行する。
【００５４】
状態Ｔ６（ST-EXMEM-READ-4W-E）においては、読み出し対象であるデータの第４番目のワードを外部メモリから読み出す処理が終了することに対応して、状態Ｔ１に戻る。
図３および図４に示すように各状態を遷移する結果、キャッシュメモリ制御装置１は、プロセッサによって読み出されるデータに応じて、具体的に以下のような動作を行う。
まず、プロセッサによって読み出されるデータが、連続して先読みキャッシュにヒットする場合の例について説明する。
【００５５】
図５は、プロセッサによって読み出されるデータが、連続して先読みキャッシュにヒットする場合の動作例を示すタイミングチャートである。
図５においては、プロセッサによって、連続するアドレスのデータ（アドレス“Ａ００〜Ａ０Ｃ”、“Ａ１０〜Ａ１Ｃ”および“Ａ２０〜Ａ２Ｃ”のデータ）が読み出される場合を示している。なお、以下、アドレス“Ａ００〜Ａ０Ｃ”、“Ａ１０〜Ａ１Ｃ”および“Ａ２０〜Ａ２Ｃ”によって示されるデータをそれぞれ第１〜第３のデータと称する。
【００５６】
図５において、第１のデータにおける末尾のワードのアドレス（アドレス“Ａ０Ｃ”）がプロセッサから入力されるタイミング（サイクル“４”）で、予定データである第２のデータのアドレスがタグ・テーブル３０の各ウェイに入力される。
すると、次のクロックタイミング（サイクル “５”）において、タグ・テーブル３０の各ウェイに記憶されたアドレスが出力されると共に、それらのアドレスと第２のデータのアドレスとが一致するか否かが判定され、ここでは一致していることから、キャッシュにヒットしたことが検出される（CACHE-HIT＝１）。また、このとき、第２のデータのアドレスが、データ・メモリ４０の第２のデータが記憶されている方のウェイ（ここでは、図５中に実線で示されているウェイＡであるものとし、第２のデータが記憶されていないウェイＢについては点線で示す。以下、同様である。）に入力される（WAYA-DATA-ADRS，WAYB-DATA-ADRS）。
【００５７】
そして、引き続くクロックタイミング（サイクル “６”）において、データ・メモリ４０から、第２のデータを記憶しているウェイのデータ（WAYA-TAG-DATA，WAYB-TAG-DATA）が出力されると共に、ヒット検出部５０から、いずれかのウェイを選択する情報（WAY-SELECT）が出力される。その結果、選択されたウェイのメモリデバイスデータ（データ“Ｄ１０”）が、プロセッサに対して出力される（PBUS-RDDATA）。
【００５８】
即ち、サイクル “５”で行われたプロセッサからの読み出し命令に対し、キャッシュメモリ制御装置１は、対応するメモリデバイスデータをサイクル“６”で出力している。
また、キャッシュメモリ制御装置１においては、メモリデバイスデータをブロック単位で読み出すことができるため、データ“Ｄ１０”を読み出すことにより、同じブロックの他のデータ（データ“Ｄ１４”〜“Ｄ１Ｃ”）もまとめて読み出され、プロセッサ先読みバッファ２２に記憶される。その結果、データ“Ｄ１０”に引き続く３ワードは、それぞれを読み出すためにタグ・テーブル３０およびデータ・メモリ４０にアクセスすることなく、データ“Ｄ１０”に連続して、プロセッサ先読みバッファ２２からプロセッサに出力されることとなる。
【００５９】
なお、キャッシュメモリ制御装置１は、第２のデータをプロセッサに出力しながら、上述のような処理によって第３のデータを先読みし、同様にプロセッサに出力する。
次に、プロセッサによって読み出されるデータが、先読みキャッシュにヒットしない場合の例について説明する。
図６は、プロセッサによって読み出されるデータが、先読みキャッシュにヒットしない場合の動作例を示すタイミングチャートである。なお、図６におけるデータ名や信号名等は、図５における場合と同様である。
【００６０】
図６において、サイクル“６”までの動作は、図５に示すサイクル“６”までの動作とほぼ同様である。ただし、サイクル“５”で読み出される第２のデータの先頭ワードは分岐命令であり、その命令はサイクル“６”で実行される。
そして、サイクル“７”において、分岐先であるアドレス“Ａ４４”のデータは、プロセッサ先読みバッファ２２に記憶されていないことから、先読みキャッシュにヒットしないことが検出される（PRC-HIT＝０）。このとき、キャッシュメモリ制御装置１は、ノーウェイトでデータの供給を行うため、次のサイクルでアドレス“Ａ４４”に対応するメモリデバイスデータ“Ｄ４４”を出力するべく、タグ・テーブル３０およびデータ・メモリ４０の各ウェイに、アドレス“Ａ４４”のワードを含むブロック（以下、「分岐先データ」と言う。）のアドレスを出力する。
【００６１】
そして、サイクル“８”において、タグ・テーブル３０から、各ウェイに記憶されたアドレス（WAYA-TAG-DATA，WAYB-TAG-DATA）が出力されると共に、データ・メモリ４０から、各ウェイのデータ（WAYA-TAG-DATA，WAYB-TAG-DATA）が出力される。このとき、タグ・テーブル３０の各ウェイに記憶されたアドレスと、分岐先データのアドレスとが一致することから、キャッシュにヒットしたことが検出される（CACHE-HIT＝１）。さらに、ヒット検出部５０から、いずれかのウェイを選択する情報（WAY-SELECT）が出力される。その結果、選択されたウェイのメモリデバイスデータ（データ“Ｄ４４”）がプロセッサに対して出力される（PBUS-RDDATA）。
【００６２】
即ち、サイクル“７”で行われたプロセッサからの分岐先の読み出し命令に対し、キャッシュメモリ制御装置１は、対応するメモリデバイスデータをサイクル“８”で出力している。
ここで、分岐先であるアドレス“Ａ４４”は、ブロックの第２番目のワードであることから、キャッシュメモリ制御装置１においては、そのブロックの第２番目から第４番目のワード（アドレス“Ａ４４〜”Ａ４Ｃ“のワード）がまとめて読み出され、プロセッサ先読みバッファ２２に記憶される。
【００６３】
この後、キャッシュメモリ制御装置１は、図５における処理と同様に、分岐先データをプロセッサに出力しながら、引き続くデータを先読みし、プロセッサに出力する。
次に、プロセッサによって読み出されるデータが、先読みキャッシュにもキャッシュにもヒットしない場合の例について説明する。
図７は、プロセッサによって読み出されるデータが、先読みキャッシュにもキャッシュにもヒットしない場合の動作例を示すタイミングチャートである。なお、図７におけるデータ名や信号名等は、図５における場合と同様である。
【００６４】
図７において、サイクル“７”までの動作は、図６に示すサイクル“７”までの動作と同様である。
そして、サイクル“８”において、タグ・テーブル３０から、各ウェイに記憶されたアドレス（WAYA-TAG-DATA，WAYB-TAG-DATA）が出力されると共に、データ・メモリ４０から、各ウェイのデータ（WAYA-TAG-DATA，WAYB-TAG-DATA）が出力される。このとき、タグ・テーブル３０の各ウェイに記憶されたアドレスと、分岐先データのアドレスとが一致しないことから、キャッシュにヒットしないことが検出される（CACHE-HIT＝０）。
【００６５】
すると、アドレス“Ａ４４”のデータが読み出せないことから、キャッシュメモリ制御装置１は、外部メモリからデータを読み出す。そのため、外部メモリからデータが取り込めるまでの３サイクル分、ウェイトサイクルが発生する。
なお、キャッシュメモリ制御装置１は、外部メモリから取り込んだ分岐先データを外部メモリ先読みバッファ２３に順次記憶する。このとき、外部メモリからデータを取り込むためには、キャッシュの場合と異なり、１ワードにつき２サイクルを要している（データ“Ｄ４４〜Ｄ４８”）。そして、キャッシュメモリ制御装置１は、分岐先データを外部メモリ先読みバッファ２３に記憶した後には、図５における処理と同様に、引き続くデータを先読みし、同様にプロセッサに出力する。また、外部メモリ先読みバッファ２３に記憶された分岐先データは、データ・メモリ４０へのアクセスが行われていないタイミングで、データ・メモリ４０にキャッシュされる。さらに、外部メモリ先読みバッファ２３に外部メモリから取り込んだデータが記憶されている状態で、そのデータに対する読み出し命令がプロセッサから入力された場合、外部メモリ先読みバッファ２３に記憶されたデータが、プロセッサに出力される。
【００６６】
次に、プロセッサによって読み出されるデータが、連続するアドレスのデータであるにもかかわらず、先読みが行えない場合（キャッシュにヒットしない場合）の例について説明する。なお、このような場合には、予定データを外部メモリから取り込む必要がある。
図８は、プロセッサによって読み出されるデータが、連続するアドレスのデータであるにもかからず、キャッシュにヒットしない場合の動作例を示すタイミングチャートである。なお、図８におけるデータ名や信号名等は、図５における場合と同様である。
【００６７】
図８において、サイクル“４〜５”の動作は、図７に示すサイクル“６〜７”の動作とほぼ同様である。ただし、図８の場合、キャッシュにヒットしないことが検出されるサイクル“５”において、外部メモリへのアクセスを直ちに開始している。
そして、外部メモリへのアクセスを行ってから３サイクルの後（サイクル“８”）、外部メモリから予定データの各ワードが順次取り込まれる。
【００６８】
即ち、プロセッサから読み出し対象となるデータのアドレス（アドレス“Ａ１０”）が入力されるサイクル“５”に対し、３サイクル後に外部メモリのデータがプロセッサに出力されることとなる。
この結果、従来のように、プロセッサから読み出し対象となるデータのアドレスが入力されてから、キャッシュにヒットするか否かを検出する場合に比べ、１サイクル早いタイミングで外部メモリのデータを取り込むことが可能となる。つまり、従来の方法では、プロセッサから読み出し命令が入力されてから、プロセッサにデータが出力されるまで４サイクルを要していたが、図８においては、３サイクルに短縮されている。
【００６９】
なお、図３〜図８の説明においては、予定データがキャッシュにヒットするか否かを検出（先読み）するタイミングを、読み出し対象であるメモリデバイスデータの最後のワードのアドレスがプロセッサから出力されるタイミングであるものとして説明したが、読み出し対象であるメモリデバイスデータの先頭のワードのアドレスがプロセッサから入力されるタイミングで先読みを行うこととしても良い。この場合、先読みしたデータが実際にプロセッサから読み出される確率が低下するものの、キャッシュにヒットしない場合にウェイトサイクルのペナルティを軽減できる。
【００７０】
以下、読み出し対象であるメモリデバイスデータの先頭のワードのアドレスがプロセッサから入力されるタイミングで先読みを行う場合（以下、「先行先読み処理」と言う。）の動作について説明する。
図９は、先行先読み処理の動作を示す状態遷移図である。
図９において、キャッシュメモリ制御装置１は、状態Ｐ１〜Ｐ４および状態Ｐ５，６を遷移し、それぞれの状態間を遷移するための遷移条件Ｇ１〜Ｇ１４が定められている。
【００７１】
なお、図９における状態Ｐ１〜Ｐ４および遷移条件Ｇ２〜Ｇ１２は、図３における状態Ｓ１〜Ｓ４および遷移条件Ｃ２〜Ｃ１２とそれぞれ同様であるため説明を省略し、異なる部分についてのみ説明する。
状態Ｐ５（ST-PREREAD-IDLE）は、タイミングを遅らせるためのアイドル状態である。即ち、ブロックの先頭のワードのアドレスがプロセッサから入力されるタイミングで先読みを行う場合、読み出し対象となるデータをプロセッサ先読みバッファ２２に取り込むタイミングが早すぎてしまう“ずれ”を解消するために、一定サイクルのアイドル状態が挿入されるものである。
【００７２】
状態Ｐ６（ST-PREREAD-EXE）においては、データ・メモリ４０からプロセッサ先読みバッファ２２にデータが転送される。
遷移条件    Ｇ１（CND-PRA-F-START）は、状態Ｐ１において、読み込み対象であるデータの先頭のワード（１６進数で表されたアドレスの末尾が“０”のワード）のアドレスが、プロセッサから入力されることを意味している。
【００７３】
遷移条件Ｇ１３（CND-PRA-READ-START）は、状態Ｐ５において、読み込み対象であるデータの末尾のワード（１６進数で表されたアドレスの末尾が“Ｃ”のワード）のアドレスが、プロセッサから入力されることを意味している。
遷移条件Ｇ１４（CND-PRA-READ-END）は、データ・メモリ４０からプロセッサ先読みバッファ２２へのデータの転送が終了することを意味している。
【００７４】
図９に示すように各状態を遷移する結果、キャッシュメモリ制御装置１は、例えば、上述の図５〜図８に対応する動作を行う。なお、ここでは具体的な動作の説明を省略する。
以上のように、本実施の形態に係るキャッシュメモリ制御装置１は、読み出し対象であるデータがプロセッサから読み出されている際に、引き続いて読み出されると予想されるデータがキャッシュされているか否か（データ・メモリ４０に記憶されているか否か）を検出する。そして、引き続いて読み出されると予想されるデータがキャッシュに記憶されている場合、そのデータを先読みキャッシュ部２０に記憶し、引き続いて読み出されると予想されるデータがキャッシュに記憶されていない場合、そのデータを外部メモリから読み出し、先読みキャッシュ部２０に記憶する。その後、引き続くサイクルでプロセッサから実際に読み出されたデータのアドレスが、先読みキャッシュ部２０に記憶されたデータのアドレスと一致する場合、そのデータを先読みキャッシュ部２０からプロセッサに出力する。なお、引き続くサイクルでプロセッサから実際に読み出されたデータのアドレスが、先読みキャッシュ部２０に記憶されたデータのアドレスと一致しない場合には、その時点で外部メモリにアクセスする。
【００７５】
そのため、プロセッサから読み出し対象であるデータのアドレスが入力された場合に、タグ・テーブル３０およびデータ・メモリ４０の各ウェイに常にはアクセスする必要がなく、データ・メモリ４０に読み出し対象であるデータが記憶されている場合にのみアクセスすれば足りる。
したがって、キャッシュメモリ制御装置１内の不要な部分に対するアクセスを防ぐことができ、消費電力の低減、および、処理効率の向上を実現することが可能となる。
【００７６】
また、キャッシュメモリ制御装置１は、読み出し対象であるデータの末尾のワードのアドレスが入力されているタイミングで、予定データの先読みを行う。
したがって、引き続くサイクルで読み出される確率の高いデータを先読みキャッシュ部２０に記憶しておくことができるため、無駄なデータに対するアクセスを行う事態を低減でき、消費電力の低減を図ることができる。
【００７７】
一方、キャッシュメモリ制御装置１は、読み出し対象であるデータの先頭のワードのアドレスが入力されるタイミング等、末尾のワードのアドレスが入力されるタイミングより早く予定データの先読みを行うことも可能である。
この場合、より早いタイミングでキャッシュのヒットが検出されるため、キャッシュにヒットしない場合に、外部メモリから読み出し対象であるデータを読み込む処理をより早く行うことができ、ウェイトサイクルの発生を防止すること、あるいは、ウェイトサイクルの回数を低減することが可能となる。
【００７８】
なお、キャッシュメモリ制御装置１において、クロックゲーティング機能を備えることにより、さらに消費電力を低減することが可能である。
図１０は、キャッシュメモリ制御装置１がクロックゲーティング機能を備える場合の構成を示す図である。
図１０において、キャッシュメモリ制御装置１は、図１に示す構成に加え、消費電力制御部７０を含んで構成される。
【００７９】
消費電力制御部７０は、キャッシュメモリ制御装置１において動作を行わない部分に対し、クロック信号の供給を停止させる機能を備えている。
図１１は、消費電力制御部７０の構成を示す図である。
図１１において、消費電力制御部７０は、複数ｎ個のメモリそれぞれに対応するクロックゲーティング素子（以下、「ＣＧ素子」と言う。）７１−１〜７１−ｎを含んで構成される。
【００８０】
これらのＣＧ素子７１−１〜７１−ｎには、アクセス管理部１０から、クロック信号の供給を行うか否かを切り替えるための消費電力モード信号ＳＧ１〜ＳＧｎがそれぞれ入力される。アクセス管理部１０は、動作が不要であると判定されたメモリに対してはクロック信号の供給を停止させる消費電力モード信号を出力し、動作を行うと判定されたメモリに対してはクロック信号を供給する消費電力モード信号を出力する。
【００８１】
このような構成とすることにより、先読みキャッシュ部２０に読み込むデータが記憶されているデータ・メモリ４０のウェイに対してのみクロック信号を供給するといったことが可能となり、さらに消費電力の低減を図ることができる。
【図面の簡単な説明】
【００８２】
【図１】本発明を適用したキャッシュメモリ制御装置１の構成を示す図である。
【図２】タグ・テーブル３０およびデータ・メモリ４０に記憶されるデータの構成を示す図である。
【図３】キャッシュメモリ制御装置１の基本的な動作を示す状態遷移図である。
【図４】キャッシュメモリ制御装置１上に構築されるステートマシン“sm-exmem-access”の動作を示す状態遷移図である。
【図５】プロセッサによって読み出されるデータが、連続して先読みキャッシュにヒットする場合の動作例を示すタイミングチャートである。
【図６】プロセッサによって読み出されるデータが、先読みキャッシュにヒットしない場合の動作例を示すタイミングチャートである。
【図７】プロセッサによって読み出されるデータが、先読みキャッシュにもキャッシュにもヒットしない場合の動作例を示すタイミングチャートである。
【図８】プロセッサによって読み出されるデータが、連続するアドレスのデータであるにもかからず、キャッシュにヒットしない場合の動作例を示すタイミングチャートである。
【図９】先行先読み処理の動作を示す状態遷移図である。
【図１０】キャッシュメモリ制御装置１がクロックゲーティング機能を備える場合の構成を示す図である。
【図１１】消費電力制御部７０の構成を示す図である。
【図１２】従来のセット・アソシアティブ方式のキャッシュメモリ１００の構成を示す概略図である。
【符号の説明】
【００８３】
１  キャッシュメモリ制御装置，１０  アクセス管理部，２０  先読みキャッシュ部，２１  アドレス制御部，２２  プロセッサ先読みバッファ，２３  外部メモリ先読みバッファ，３０，１１０  タグ・テーブル，４０，１２０  データ・メモリ，５０，１３０  ヒット検出部，６０  ＭＵＸ，７０  消費電力制御部，７１  ＣＧ素子，１００  キャッシュメモリ
【図１】
2005084999.tif 000003
【図２】
2005084999.tif 000004
【図３】
2005084999.tif 000005
【図４】
2005084999.tif 000006
【図５】
2005084999.tif 000007
【図６】
2005084999.tif 000008
【図７】
2005084999.tif 000009
【図８】
2005084999.tif 000010
【図９】
2005084999.tif 000011
【図１０】
2005084999.tif 000012
【図１１】
2005084999.tif 000013
【図１２】
2005084999.tif 000014