(57)【要約】【課題】セットアソシアティブ方式のキャッシュ装置において、タグメモリとデータメモリに対するアクセス回数を少なくする。【解決手段】キャッシュ装置は、メインメモリのデータの一部を記憶する複数のウェイを含むデータメモリと、データメモリの各ウェイに記録されたデータのアドレスに含まれるタグをそれぞれ記憶する複数のウェイを含むタグメモリと、アクセス対象アドレスに含まれるタグとタグメモリに記録されたタグとが一致するか否かを判定する比較回路と、今回アクセスする第１のアドレスを参照して次回アクセスする第２のアドレスを計算する次回アドレス生成部と、第２のアドレスのインデックスに対応するタグをタグメモリから先読みするとともに第２のアドレスに含まれるタグと先読みしたタグとが一致した場合には、以降のタグをタグメモリから読み出さないようにするタグ読み出し制御回路とを有する。【選択図】図１
2011100213.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリのデータの一部を記憶する複数のウェイを含むデータメモリと、
前記データメモリの各ウェイに記録されたデータのアドレスに含まれるタグをそれぞれ記憶する複数のウェイを含むタグメモリと、
アクセス対象アドレスに含まれるタグと前記タグメモリに記録されたタグとが一致するか否かを判定する比較回路と、
今回アクセスするアドレスである第１のアドレスを参照して次回アクセスするアドレスを第２のアドレスとして計算する次回アドレス生成部と、
前記第２のアドレスのインデックスに対応するタグを前記タグメモリから先読みするとともに、前記第２のアドレスに含まれるタグと先読みしたタグとが一致した場合には、以降のタグを前記タグメモリから読み出さないようにするタグ読み出し制御回路とを備えていることを特徴とするセットアソシアティブ方式のキャッシュ装置。
【請求項２】
前記タグ読み出し制御回路は、同一のタグで管理されるワードにアクセスしている間に、前記第２のアドレスのインデックスに対応するタグを前記タグメモリから先読みすることを特徴とする、請求項１に記載のキャッシュ装置。
【請求項３】
前記次回アドレス生成部は、前記第１のアドレスと１ラインに含まれるワード数とに基づいて、前記第２のアドレスを計算することを特徴とする、請求項１又は２に記載のキャッシュ装置。
【請求項４】
前記タグメモリに含まれる複数のウェイのうちの前記第２のアドレスに含まれるタグと一致するタグが記録されたウェイをウェイ情報として記憶するウェイ記憶回路をさらに備えていることを特徴とする、請求項１乃至３のいずれか１項に記載のキャッシュ装置。
【請求項５】
前記ウェイ記憶回路は、前記ウェイ情報を記憶する次回アドレスウェイ記憶回路と、
インデックスの値が変化した場合に、前記次回アドレスウェイ記憶回路に記録されたウェイ情報を記憶するようにし、該ウェイ情報を前記データメモリからデータを読み出す際の選択信号として出力する今回アドレスウェイ記憶回路とを備えていることを特徴とする、請求項４に記載のキャッシュ装置。
【請求項６】
前記今回アドレス記憶回路に記録されたウェイ情報を参照して、前記データメモリのうちの一部のウェイのみからデータを読み出すデータ読み出し制御回路をさらに備えていること特徴とする、請求項５に記載のキャッシュ装置。
【請求項７】
前記タグメモリに含まれる複数のウェイは、それぞれ自身が記録するタグが有効か否かを示す有効データビットを記憶することを特徴とする、請求項１乃至６のいずれか１項に記載のキャッシュ装置。
【請求項８】
前記第１のアドレスを記憶する今回アドレス部をさらに備えていることを特徴とする、請求項１乃至７のいずれか１項に記載のキャッシュ装置。
【請求項９】
前記第２のアドレスを記憶する次回アドレス部をさらに備えていることを特徴とする、請求項１乃至８のいずれか１項に記載のキャッシュ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ装置に関し、特に、ＣＰＵに内蔵されるキャッシュ装置に関する。
【背景技術】
【０００２】
ＣＰＵに内蔵されるキャッシュ装置は、アクセスを受けると、キャッシュ装置に搭載されたタグメモリとデータメモリに対するアクセスが行われる。一般に、キャッシュ装置のタグメモリ及びデータメモリの応答速度は処理性能に影響を及ぼすことから、これらのメモリとしてＳＲＡＭなどの高速メモリが使用される。
【０００３】
キャッシュ装置へのアクセス回数とビット数に比例して消費電力が大きくなることが知られている。また、キャッシュ装置のヒット率を向上させるために、ダイレクトマップ方式のキャッシュ装置に代わり、複数ウェイ構成のセットアソシアティブ方式のキャッシュ装置が主流となってきており、メモリの回路規模の増大により、キャッシュ装置における消費電力はさらに増大している。携帯電話、携帯情報端末、デジタルカメラのようなデジタルモバイル機器を連続して使用する時間を延ばすために、これらの機器に搭載されたキャッシュ装置の消費電力を抑える要求が高まっている。
【０００４】
図６は、特許文献１に記載されたキャッシュシステムの構成を示すブロック図である。図６を参照すると、キャッシュシステムは、メインメモリ（主記憶）１０の一部のデータを保持するデータメモリ３０と、データメモリ３０に保持されるデータのアドレス情報（タグ）ＡＤＤ−ＴＡＧとアドレス情報ＡＤＤ−ＴＡＧが有効か否かを示す有効データビットＶＢとを保持するタグメモリ２２と、アクセス対象アドレスとタグメモリ２２から読み出したアドレス情報ＡＤＤ−ＴＡＧを比較する比較回路２４と、セレクタＳＥＬ及び論理積２６から成るヒット判定部２３と、キャッシュコントローラ２０とを有する。タグメモリ２２において、前記アドレス情報は連続するアドレスの複数データを共通に管理し、前記有効データビットは前記複数データに対応して複数ビット設けられている。
【０００５】
キャッシュコントローラ２０は、アクセス対象アドレスが直前のアクセス対象アドレスと同一のタグメモリ内アドレス情報で管理されるデータに対応する第１の場合は、タグメモリ２２への読み出しを禁止し、かつ、有効データビットＶＢに従ってキャッシュヒット判定し、前記アクセス対象アドレスが直前のアクセス対象アドレスと異なるタグメモリ内アドレス情報で管理されるデータに対応する第２の場合は、タグメモリ２２への読み出しを許可してキャッシュヒット判定し、当該キャッシュヒット判定でキャッシュミスと判定したときに、メインメモリ１０からアクセス対象の前記複数データの一部をデータメモリ３０に転送し、対応する有効データビットＶＢを更新する。
【０００６】
ＣＰＵは、内部に演算回路などのインテジャーユニットＩＵと、キャッシュシステムと、バスインターフェースユニットＢＩＵとを有する。インテジャーユニットＩＵは、内部アドレスバスＩＡにアドレス２１を出力してメモリへのアクセスを要求する。バスインターフェースユニットＢＩＵは、メインメモリ１０にアクセスし、アクセス対象データを読み出し、キャッシュシステム内のデータメモリ３０に書き込み、タグメモリ２２のアドレス情報を更新する。タグメモリ２２には、データメモリ３０が保持するデータのアドレス情報ＡＤＤ−ＴＡＧが記録され、タグメモリ２２の１ラインのアドレス情報ＡＤＤ−ＴＡＧが、４ワードデータ３０Ａ、３０Ｂを共通に管理している。
【０００７】
したがって、４ワードデータ３０Ａ、３０Ｂが順番にアクセスされる場合、タグメモリ２２から読み出されるアドレス情報ＡＤＤ−ＴＡＧ（上位アドレスＩＡ［３１：１０］）は毎回同一となり、比較回路２４の出力は毎回一致する。また、タグメモリ２２のアドレス情報が管理する範囲（４ワードデータ）内のアクセスであれば、タグメモリ２２から読み出されるアドレス情報は同一となり、比較回路２４の出力も同一となる。
【０００８】
そこで、アクセス対象アドレスが直前のアクセス対象アドレスと同一のタグメモリ内アドレス情報で管理されるデータに対応する場合には、タグメモリ２２への読み出しが禁止される。一方、アクセス対象アドレスが直前のアクセス対象アドレスと異なるタグメモリ内アドレス情報で管理されるデータに対応する場合には、タグメモリ２２への読み出しが行われキャッシュヒット判定が行われる。
【０００９】
図７は、特許文献１に記載されたキャッシュシステムの動作を示すタイミングチャートである。図７のアドレスは、内部アドレスバスＩＡに出力されるアドレス２１を示す。図７のタグは、タグメモリ２２のアドレス情報ＡＤＤ−ＴＡＧへのアクセスを示す。図７のデータは、データメモリ３０の４ワードデータ３０Ａ、３０Ｂへのアクセスを示す。アドレス０ｘ０〜０ｘｃ、アドレス０ｘ１０〜０ｘ１ｃ、及び、アドレス０ｘ２０〜０ｘ２ｃは、それぞれ１つのタグで管理されている。
【００１０】
アドレスが０ｘ０のときには、アクセス対象アドレスは直前のアクセス対象アドレスと異なるタグで管理されているため、タグメモリ２２へのアクセスが行われる。タグメモリ２２へのアクセスで読み出されたアドレス情報ＡＤＤ−ＴＡＧと、アドレス０ｘ０の上位ビット（ＩＡ［３１：１０］）との比較が行われる。比較結果が一致した場合にはヒットとなり、タグメモリ２２へのアクセスと同時に行われたデータメモリ３０へのアクセスにより、アドレス０ｘ０のデータが出力される。
【００１１】
アドレスが０ｘ４のときには、直前のアクセス対象アドレス０ｘ０は同一タグで管理されているため、タグメモリ２２へのアクセスは行われず、データメモリ３０へのアクセスにより、アドレス０ｘ４のデータが出力される。アドレス０ｘ８及びアドレス０ｘｃでは、同様にタグメモリ２２へのアクセスは行われず、データメモリ３０へのアクセスのみが行われる。
【００１２】
アドレスが０ｘ１０のときには、アクセス対象アドレスは直前のアクセス対象アドレスと異なるタグで管理されているため、タグメモリ２２へのアクセスが行われる。タグメモリ２２へのアクセスで読み出されたアドレス情報ＡＤＤ−ＴＡＧと、アドレス０ｘ１０の上位ビット（ＩＡ［３１：１０］）との比較が行われる。比較結果が一致した場合はヒットとなり、タグメモリ２２へのアクセスと同時に行われたデータメモリ３０へのアクセスにより、アドレス０ｘ１０のデータが出力される。
【００１３】
なお、特許文献２には、キャッシュメモリにおける消費電力を低減し、処理効率の向上を図るためのキャッシュメモリ制御装置が記載されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００２−０６３０７３号公報
【特許文献２】特開２００５−０８４９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
以下の分析は、本発明者によってなされたものである。特許文献１に記載されたキャッシュシステムによると、比較回路２４は、メモリのアクセス要求ごとにアクセス対象アドレスに対しタグメモリ２２を読み出し、アクセス対象アドレスと比較してヒット判定を行う。また、同時にデータメモリ３０内のデータを読み出しておくことにより、ヒット判定においてアクセス対象アドレスと一致すると判断した時点で、必要なデータを直ちにＣＰＵその他の外部装置に出力する。
【００１６】
特許文献１に記載されたダイレクトマップ方式のキャッシュ装置を、複数ウェイ構成のセットアソシアティブ方式のキャッシュ装置に適用した場合には、ヒット判定を行うタイミングで、すべてのウェイのデータメモリ３０を読み出す必要がある。したがって、多くの電力が消費されるという問題がある。
【００１７】
そこで、セットアソシアティブ方式のキャッシュ装置において、タグメモリに対するアクセス回数（又はタグメモリとデータメモリに対するアクセス回数）を少なくすることが課題となる。本発明の目的は、かかる課題を解決するキャッシュ装置を提供することにある。
【課題を解決するための手段】
【００１８】
本発明の第１の視点に係るキャッシュ装置は、
メインメモリのデータの一部を記憶する複数のウェイを含むデータメモリと、
前記データメモリの各ウェイに記録されたデータのアドレスに含まれるタグをそれぞれ記憶する複数のウェイを含むタグメモリと、
アクセス対象アドレスに含まれるタグと前記タグメモリに記録されたタグとが一致するか否かを判定する比較回路と、
今回アクセスするアドレスである第１のアドレスを参照して次回アクセスするアドレスを第２のアドレスとして計算する次回アドレス生成部と、
前記第２のアドレスのインデックスに対応するタグを前記タグメモリから先読みするとともに、前記第２のアドレスに含まれるタグと先読みしたタグとが一致した場合には、以降のタグを前記タグメモリから読み出さないようにするタグ読み出し制御回路とを有する。
【発明の効果】
【００１９】
本発明に係るセットアソシアティブ方式のキャッシュ装置によると、タグメモリに対するアクセス回数を少なくすることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態に係るキャッシュ装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るキャッシュ装置の動作を示すタイミングチャートである。
【図３】本発明の第１の実施形態に係るキャッシュ装置におけるタグ読み出し制御回路の構成を示すブロック図である。
【図４】本発明の第２の実施形態に係るキャッシュ装置の構成を示すブロック図である。
【図５】本発明の第２の実施形態に係るキャッシュ装置の動作を示すタイミングチャートである。
【図６】従来のキャッシュシステムの構成を示すブロック図である。
【図７】従来のキャッシュシステムの動作を示すタイミングチャートである。
【発明を実施するための形態】
【００２１】
第１の展開形態のキャッシュ装置は、上記第１の視点に係るキャッシュ装置であることが好ましい。
【００２２】
第２の展開形態のキャッシュ装置は、前記タグ読み出し制御回路が、同一のタグで管理されるワードにアクセスしている間に、前記第２のアドレスのインデックスに対応するタグを前記タグメモリから先読みすることが好ましい。
【００２３】
第３の展開形態のキャッシュ装置は、前記次回アドレス生成部が、前記第１のアドレスと１ラインに含まれるワード数とに基づいて、前記第２のアドレスを計算することが好ましい。
【００２４】
第４の展開形態のキャッシュ装置は、前記タグメモリに含まれる複数のウェイのうちの前記第２のアドレスに含まれるタグと一致するタグが記録されたウェイをウェイ情報として記憶するウェイ記憶回路をさらに有していてもよい。
【００２５】
第５の展開形態のキャッシュ装置は、
前記ウェイ記憶回路が、前記ウェイ情報を記憶する次回アドレスウェイ記憶回路と、
インデックスの値が変化した場合に、前記次回アドレスウェイ記憶回路に記録されたウェイ情報を記憶するようにし、該ウェイ情報を前記データメモリからデータを読み出す際の選択信号として出力する今回アドレスウェイ記憶回路とを有していてもよい。
【００２６】
第６の展開形態のキャッシュ装置は、前記今回アドレス記憶回路に記録されたウェイ情報を参照して、前記データメモリのうちの一部のウェイのみからデータを読み出すデータ読み出し制御回路をさらに有していることが好ましい。
【００２７】
第７の展開形態のキャッシュ装置は、前記タグメモリに含まれる複数のウェイが、それぞれ自身に記録されたタグが有効か否かを示す有効データビットを記憶することが好ましい。
【００２８】
第８の展開形態のキャッシュ装置は、前記第１のアドレスを記憶する今回アドレス部をさらに有していてもよい。
【００２９】
第９の展開形態のキャッシュ装置は、前記第２のアドレスを記憶する次回アドレス部をさらに有していてもよい。
【００３０】
上記キャッシュ装置によると、セットアソシアティブ方式のキャッシュ装置において、タグメモリに対するアクセス回数、又はタグメモリとデータメモリに対するアクセス回数を削減することができる。
【００３１】
（実施形態１）
本発明の第１の実施形態に係るキャッシュ装置について、図面を参照して説明する。図１は、本実施形態に係るキャッシュ装置の構成を示すブロック図である。本実施形態のキャッシュ装置は、１ラインが４ワードである４ウェイ・セットアソシアティブ方式のキャッシュ装置である。なお、１ライン（１ブロックともいう）当りのワード数及びウェイ数は、これらの値に限られない。
【００３２】
図１を参照すると、キャッシュ装置は、データメモリ６０、タグメモリ５２、比較回路２４、次回アドレス生成回路４１、次回アドレス部４７、タグ読み出し制御回路４２、ウェイ記憶回路４３、データ読み出し制御回路４６及びセレクタ２５を有する。
【００３３】
データメモリ６０は、メインメモリ（主記憶）１０のデータの一部を保持する４つのウェイを含む。
【００３４】
タグメモリ５２は、データメモリ６０に保持されたデータのアドレス情報（タグ）ＡＤＤ−ＴＡＧとアドレス情報ＡＤＤ−ＴＡＧが有効か否かを示す有効データビットＶＢとを保持する４つのウェイを含む。
【００３５】
比較回路２４は、アクセス対象アドレスに含まれるタグと、タグメモリ５２から読み出したアドレス情報（タグ）とを比較する。
【００３６】
今回アドレス部４０は、ＣＰＵのアドレスに基づいて、今回アクセスするアドレスを保持する。次回アドレス生成回路４１は、今回アクセスするアドレスから次回アクセスするアドレスを計算する。次回アドレス部４７は、次回アクセスするアドレスを保持する。
【００３７】
タグ読み出し制御回路４２は、次回アクセスするアドレスに含まれるインデックスに対応するタグを先読みして、ヒットした（すなわち、次回アクセスするアドレスに含まれるタグと先読みしたタグとが一致した）場合には以降のタグをタグメモリ５２から読み出さない。
【００３８】
ウェイ記憶回路４３は、次にアクセスするインデックスでヒットしたウェイの情報を保持する次回アドレスウェイ記憶回路４４と、今回のアクセスでヒットしたウェイの情報を保持する今回アドレスウェイ記憶回路４５と有する。
【００３９】
データ読み出し制御回路４６は、データメモリ６０の複数のウェイのうちのヒットするウェイのみからデータを読み出す。
【００４０】
セレクタ２５は、データメモリ６０の複数のウェイのうちのいずれかのウェイから出力されたデータをＣＰＵへのデータとして送出する。
【００４１】
図１において、データメモリ６０内に格納されているウェイ情報の１ライン分（４ワードを１ラインとする）の情報を得るためには４回のデータの読み出しが発生する。
【００４２】
タグ読み出し制御回路４２は、上記のデータ読み出しごとに、１ウェイずつタグメモリ５２を読み出すことにより、データメモリ６０の１ライン分の読み出し期間に（全ウェイである）４ウェイのタグメモリ５２を読み出す。
【００４３】
タグ読み出し制御回路４２は、１ウェイずつタグメモリ５２の読み出しを行う。次回アドレスと比較して一致した場合には、比較回路２４はヒット判定５３をアクティブとし、タグ読出し制御回路４２は以降のウェイに対するタグメモリ５２の読み出しを行わない。ウェイ記憶回路４３の次回アドレスウェイ記憶回路４４は、ヒットしたウェイの情報を記憶する。そして、当該タグのアドレスへのアクセスが発生した場合には、次回アドレスウェイ記憶回路４４に記憶しておいたウェイ情報を今回アドレスウェイ記憶回路４５に移動する。
【００４４】
データ読み出し制御回路４６は、今回アドレスウェイ記憶回路４５のウェイ情報を参照して、ヒットするウェイのデータメモリ６０のみを読み出す。
【００４５】
図２は、１ラインが４ワードである４ウェイ・セットアソシアティブ・キャッシュ方式の場合の動作例を示す。ここでは、アドレス０ｘ０番地にアクセスするときにはウェイ０がヒットすることが、直前までのサイクルですでに分かっているものとする。
【００４６】
次にアクセスするタグは、４ワードのアクセス単位であるため、アドレス０ｘ１０番地となり、次回アドレス部４７に設定されるアドレスはアドレス０ｘ１０番地となる。
【００４７】
アドレス０ｘ０番地にアクセスする場合には、ウェイ０に格納されているデータのみを読み出す。データ読み出しと同時に、次回アドレス部４７に格納されているアドレス０ｘ１０番地のウェイ０のタグを読み出し、ヒットしたか否かを判断する。ヒットしなかった場合には、次のアドレス読み出し時に次のウェイの比較を行う。
【００４８】
アドレス０ｘ４番地にアクセスする場合には、ウェイ０に格納されているデータのみを読み出す。データ読み出しと同時に、次回アドレス部４７に格納されているアドレス０ｘ１０番地のウェイ１のタグを読み出し、ヒットしたか否かを判断する。ヒットしなかった場合には、次のアドレス読み出し時に次のウェイの比較を行う。
【００４９】
アドレス０ｘ８番地にアクセスする場合には、ウェイ０に格納されているデータのみを読み出す。データ読み出しと同時に、次回アドレス部４７に格納されているアドレス０ｘ１０番地のウェイ２のタグを読み出し、ヒットしたか否かを判断する。ヒットした場合には、アドレス０ｘ１０番地はウェイ２がヒットしたと判断し、ウェイ記憶回路４３の次回アドレスウェイ記憶回路４４にウェイ２が記録される。
【００５０】
アドレス０ｘｃ番地にアクセスする場合には、ウェイ０に格納されているデータのみを読み出す。次回アドレス部４７に格納されているアドレス０ｘ１０番地はウェイ２でヒットすることが判明しているため、タグの読み出しは行わない。
【００５１】
アドレス０ｘ１０番地にアクセスする場合には、すでにウェイ２がヒットすることが判明している。したがって、アドレス０ｘ１０番地、０ｘ１４番地、０ｘ１８番地、０ｘ１ｃ番地の読み出し時にウェイ２のデータのみを読み出す。
【００５２】
タグの読み出しの動作は、次の通りである。次回アドレス部４７にアドレス０ｘ２０番地が設定されて、アドレス０ｘ１０番地の読み出し時には、次回アドレス部４７に格納されているアドレス０ｘ２０番地のウェイ０のタグを読み出し、ヒットしたか否かを判断する。ヒットしなかった場合には、アドレス０ｘ１４番地の読み出し時に、次回アドレス部４７に格納されているアドレス０ｘ２０番地のウェイ１のタグを読み出し、ヒットしたか否かを判断する。ヒットした場合には、ウェイ記憶回路４３の次回アドレスウェイ記憶回路４４にウェイ１が記録され、アドレス０ｘ１８番地、アドレス０ｘ１ｃ番地の読み出し時にはタグの読み出しは行わない。
【００５３】
同様に、アドレス０ｘ２０番地にアクセスする場合には、すでにウェイ１がヒットすることが判明している。したがって、アドレス０ｘ２０番地、０ｘ２４番地、０ｘ２８番地、０ｘ２ｃ番地の読み出し時にはウェイ１のデータのみを読み出す。
【００５４】
タグの読み出しの動作は、次の通りである。次回アドレス部４７にアドレス０ｘ３０番地が設定されて、アドレス０ｘ２０番地の読み出し時には、次回アドレス部４７に格納されているアドレス０ｘ３０番地のウェイ０のタグを読み出し、ヒットしたか否かを判断する。ヒットしなかった場合には、アドレス０ｘ２４番地の読み出し時には次回アドレス部４７に格納されているアドレス０ｘ３０番地のウェイ１のタグを読み出し、ヒットしたか否かを判断する。ヒットしなかった場合には、アドレス０ｘ２８番地の読み出し時には次回アドレス部４７に格納されているアドレス０ｘ３０番地のウェイ２のタグを読み出し、ヒットしたか否かを判断する。
【００５５】
アドレス０ｘ０番地のアクセス時にはアドレス０ｘ１０番地のウェイ０、アドレス０ｘ４番地のアクセス時にはアドレス０ｘ１０番地のウェイ１のように、１ウェイずつタグを読み出す。図１ではアドレス０ｘ１０番地のデータはタグメモリ５２のウェイ２に格納されており、前記ウェイ２のタグ読み出しでヒットするため、タグメモリ５２のウェイ３のタグは読み出さない。そして、アドレス０ｘ１０番地へのアクセスが発生した場合には、前記ウェイ２のデータを読み出すと同時に、その次にアクセスするアドレス０ｘ２０番地のウェイ０のタグを読み出す。このとき、データメモリ６０のウェイ０、１及び３のデータを読み出す必要はない。
【００５６】
図３は、本実施形態に係るキャッシュ装置におけるタグ読み出し制御回路４２の構成を示すブロック図である。タグ読み出し制御回路４２は、今回アドレス部４０と次回アドレス部４７とヒット判定５３とを入力とし、タグ読み出し制御信号４８を出力する。図３を参照すると、タグ読み出し制御回路４２は、全ウェイ同時読み出し制御回路５０、１ウェイ読み出し制御回路４９及び有効ウェイ選択回路５１を有する。
【００５７】
初回のヒットするウェイが分かっていない場合には、今回アドレス部４０からの信号により、全ウェイ同時読み出し制御回路５０は、全ウェイのタグ読み出し制御信号４８をアサートする。
【００５８】
データの読み出し動作を行っている場合には、１ウェイ読み出し制御回路４９は、次回アドレス部４７の一部のウェイのタグ読み出し制御信号４８をアサートする。ヒットしなかった場合には、次のウェイのタグ読み出し制御信号４８をアサートし、以降この処理を繰り返す。ヒットした場合には、ヒット判定５３をアサートし、以降のウェイへのアクセスを禁止する。
【００５９】
なお、１ラインがｍワードのｎウェイ・セットアソシアティブ方式のキャッシュ装置では、タグ読み出し制御回路４２は、データ読み出し毎に（ｎ／ｍ）個のウェイずつ、タグメモリ５２を読み出すことで、本実施形態の４ワード・４ウェイ・セットアソシアティブ方式のキャッシュ装置と同様の動作を実現することができる。
【００６０】
特許文献１に記載されたキャッシュメモリによると、インデックスが変化したアドレスにアクセスする場合には、つねに全ウェイのデータを読み出す必要がある。
【００６１】
一方、本実施形態のキャッシュメモリによると、インデックスが変化したアドレスにアクセスする場合に、インデックスのタグを先読みし、既にヒット判定が終わっていることから、ヒットするウェイのデータのみを読み出すことによって、メモリアクセスに伴う消費電力を削減することができる。
【００６２】
本実施形態のキャッシュメモリによると、各メモリへのアクセス回数とビット数に比例して消費する電力を大幅に軽減することができる。その理由は、今回アクセスするアドレスから次回アクセスするアドレスを計算し、次にアクセスするインデックスのタグを先読みし、次回アドレスとタグメモリから先読みしたアドレス情報がヒットした場合は以降のタグは読み出さないようにし、次にアクセスするインデックスでヒットするウェイの情報と今回のアクセスでヒットしたウェイの情報を保持して、ヒットするウェイのデータメモリのみを読み出すからである。
【００６３】
表１は、本実施形態のキャッシュ装置と特許文献１に記載されたキャッシュ装置によるメモリアクセスを比較した結果を示す。ここでは、一例として、１ラインが４ワードである４ウェイ・セットアソシアティブ方式のキャッシュ装置において、キャッシュがヒットする場合の１ライン分のデータ読み出しに必要なメモリのアクセスビット数を求めた。なお、データは３２ビットとし、タグは２２ビットとした。
【００６４】
特許文献１のキャッシュ装置によると、アドレス０ｘ１０〜０ｘ１ｃ番地までのアクセスにおいて、タグ読出しとして４ウェイ分、データ読出しとして４ウェイのデータが４回分とヒットした４ワードのデータが３回分必要となり、合計３１２ビットの読み出しが必要となる。表１を参照すると、本実施形態のキャッシュ装置によると、メモリへのアクセスを減らすことにより、消費電力を削減することができる。
【００６５】
表１  メモリアクセス比較結果
2011100213.tif 000003
【００６６】
（実施形態２）
本発明の第２の実施形態に係るキャッシュ装置について、図面を参照して説明する。図４は、本実施形態に係るキャッシュ装置の構成を示すブロック図である。本実施形態のキャッシュ装置は、実施形態１のキャッシュ装置（図１）から、ウェイ記憶回路４３（次回アドレスウェイ記憶回路４４と今回アドレスウェイ記憶回路４５を含む）及びデータ読み出し制御回路４６を除いたものであり、１ライン（ブロック）が４ワードである４ウェイ・セットアソシアティブ方式のキャッシュ装置である。なお、１ライン当りのワード数及びウェイ数は、これらの値に限られない。
【００６７】
図４を参照すると、本実施形態のキャッシュ装置は、データメモリ６０、タグメモリ５２、比較回路２４、次回アドレス生成回路４１、次回アドレス部４７及びタグ読み出し制御回路４２を有する。
【００６８】
データメモリ６０は、メインメモリ１０のデータの一部を保持する４つのウェイを含む。
【００６９】
タグメモリ５２は、データメモリ６０に保持されるデータのアドレス情報（タグ）ＡＤＤ−ＴＡＧとアドレス情報ＡＤＤ−ＴＡＧが有効か否かを示す有効データビットＶＢとを保持する４つのウェイを含む。
【００７０】
比較回路２４は、アクセス対象アドレスに含まれるタグと、タグメモリ５２から読み出したアドレス情報（タグ）とを比較する。
【００７１】
次回アドレス生成回路４１は、今回アクセスするアドレスを保持する今回アドレス部４０を参照して、次回アクセスするアドレスを計算する。次回アドレス部４７は、次回アドレスを保持する。
【００７２】
タグ読み出し制御回路４２は、次回アクセスするアドレスに含まれるインデックスに対応するタグを先読みし、ヒットした（すなわち、次回アクセスするアドレスに含まれるタグと先読みしたタグとが一致した）場合には以降のタグを読み出さない。
【００７３】
図５は、本実施形態に係るキャッシュ装置の動作を示すタイミングチャートである。本実施形態のキャッシュ装置は、１ラインが４ワードである４ウェイ・セットアソシアティブ方式のキャッシュ装置である。
【００７４】
本実施形態のキャッシュ装置においては、タグを順番に読み出して比較する場合に、全ウェイと比較する前にヒットしたときには、ヒットした以降のウェイのタグの読み出しを禁止する。このとき、特許文献１に記載されたキャッシュシステムのように、無条件に全ウェイのタグを読み出す場合と比較して、メモリアクセスの回数を減らすことができる。
【００７５】
本実施形態のキャッシュ装置によると、データメモリ６０の構成に制限を与えずに、実施形態１よりも小さい回路規模で、タグメモリ５２の読み出し回数を減らすことができる。その理由は次の通りである。すなわち、メモリの回路上の特長により、複数のウェイのデータメモリを単一のメモリとして構成する場合がある。例えば、４ウェイ・セットアソシアティブ方式のキャッシュ装置において、データメモリ６０を４個のメモリではなく、２個又は１個のメモリで構成する場合がある。これらの場合には、データメモリの読み出し回数を減らすことはできないものの、タグメモリ５２の読み出し回数を減らすことができる。
【００７６】
本実施形態のキャッシュメモリによると、簡単な構成に基づいて、タグメモリ５２へのアクセス回数を削減することができる。タグを順番に読み出して比較する際に、全ウェイと比較する前にヒットした場合には、ヒットした以降のウェイのタグの読み出しを禁止することができるからである。
【００７７】
以上の記載は実施形態に基づいて行ったが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更を加えることができる。
【符号の説明】
【００７８】
１０  メインメモリ（主記憶）
２０  キャッシュコントローラ
２１  アドレス
２２  タグメモリ
２３  ヒット判定部
２４  比較回路
２５  セレクタ
２６  論理積
３０  データメモリ
３０Ａ、３０Ｂ  ４ワードデータ
４０  今回アドレス部
４１  次回アドレス生成回路
４２  タグ読み出し制御回路
４３  ウェイ記憶回路
４４  次回アドレスウェイ記憶回路
４５  今回アドレスウェイ記憶回路
４６  データ読み出し制御回路
４７  次回アドレス部
４８  タグ読み出し制御信号
４９  １ウェイ読み出し制御回路
５０  全ウェイ同時読み出し制御回路
５１  有効ウェイ選択回路
５２  タグメモリ
５３  ヒット判定
６０  データメモリ
ＡＤＤ−ＴＡＧ  アドレス情報（タグ）
ＩＡ  内部アドレスバス
ＳＥＬ  セレクタ
ＶＢ  有効データビット
【図１】
2011100213.tif 000004
【図２】
2011100213.tif 000005
【図３】
2011100213.tif 000006
【図４】
2011100213.tif 000007
【図５】
2011100213.tif 000008
【図６】
2011100213.tif 000009
【図７】
2011100213.tif 000010