(57)【要約】【課題】従来よりもさらに低消費電流化の実現を図るようにしたキャッシュメモリを提供すること。【解決手段】コンパレータ６は、主アドレスレジスタ３に格納される今回の要求アドレスと、ラッチ回路５に格納される前回の要求アドレスとを比較し、その両者が一致するか否かを判定し、一致するときに一致信号を制御回路１５に出力する。制御回路１５は、コンパレータ６が一致信号を出力するときに、ヒット信号を出力すると同時に、今回の要求アドレスのうちのワードアドレスとそのヒット信号とを参照して、ラッチ回路１１に保持される４ワードのデータのうちの１ワード分のデータを、ヒットデータとしてセレクタ１３、１４から出力させる。このときには、制御回路１５は、２つのタグメモリ１−０、１−１および２つのデータメモリ２−０、２−１へのアクセスをそれぞれ禁止する。【選択図】  図１
2006343803.tif 000002
【特許請求の範囲】
【請求項１】
エントリアドレスに従って複数のタグメモリから読み出されたタグデータとタグアドレスとを比較して両者が一致するか否かを判別し、前記エントリアドレスに従って複数のデータメモリから読み出されたデータのうち、その一致したタグメモリに対応したデータメモリから読み出されたデータを選択的に出力するキャッシュメモリにおいて、
前記複数のデータメモリから選択的に出力されたデータを保持するラッチ回路と、
今回使用されるエントリアドレスおよびタグアドレスと、前回使用されたエントリアドレスおよびタグアドレスとを比較して、その両者が一致するか否かを判定する比較回路と、
前記比較回路が両者が一致すると判定したときには、前記ラッチ回路に保持されるデータをヒットデータとして出力するとともに、前記複数のタグメモリおよび前記複数のデータメモリへのアクセスをそれぞれ禁止する制御回路と、
を備えていることを特徴とするキャッシュメモリ。
【請求項２】
今回使用するタグアドレスおよびエントリアドレスと、前記使用したタグアドレスおよびエントリアドレスとを比較してその両者の一致を判定する第１比較回路と、
エントリアドレスに対応するデータを格納する複数のデータメモリと、
前記複数のデータメモリと１対１に対応して設け、エントリアドレスに対応してタグアドレスのデータを格納する複数のタグメモリと、
前記今回のエントリアドレスに基づいて前記複数のタグメモリが出力する各アドレスと前記今回使用するタグアドレスとをそれぞれ比較して、その両者の一致を判定する第２比較回路と、
前記第２比較回路がその両者が一致すると判定したときに、その一致に基づいて前記複数のデータメモリから出力されるデータのうちの１つを選択的にヒットデータとして出力する選択回路と、
前記選択回路で選択的に出力されたデータを保持するラッチ回路と、
前記第１比較回路がその両者が一致すると判定したときに、前記ラッチ回路に保持されるデータをヒットデータとして出力するとともに、前記複数のタグメモリおよび前記複数のデータメモリへのアクセスをそれぞれ禁止する制御回路と、
を備えていることを特徴とするキャッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリに関し、特に低消費電力化を実現できるキャッシュメモリに関するものである。
【背景技術】
【０００２】
従来、この種のキャッシュメモリとしては、例えばｎウェイセットアソシアティブ方式のものが知られている。
この方式のキャッシュメモリは、エントリアドレスに従って複数のタグメモリから読み出されたタグデータとタグアドレスとを比較して両者が一致するか否かを判別し、上記のエントリアドレスに従って複数のデータメモリから読み出されたデータのうち、その一致したタグメモリに対応したデータメモリから読み出されたデータを選択的に出力するようになっている。
【０００３】
このような従来のキャッシュメモリでは、そのアクセス時に、複数のタグメモリと複数のデータメモリとを必ずアクセスしていた。すなわち、データの読み出し時には、全てのタグメモリおよびデータメモリに同時にアクセスしている。また、データの書き込みの際には、まず最初のサイクルで全てのタグメモリをアクセスし、次のサイクルでヒットしたデータをデータメモリに書き込むようにしている。
【０００４】
このため、従来のキャッシュメモリでは、そのアクセス時に無駄な電力消費があり、このような不具合の解決を図るようにしたキャッシュメモリが知られている（例えば、特許文献１参照）。
この特許文献１に記載のキャッシュメモリでは、ＬＲＵの情報をもとに最近ヒットしたウェイのタグメモリのみを動作させるとともに、ヒットした場合には次のサイクルでヒットしたウェイに相当するデータメモリをアクセスするようにし、低消費電流化を実現しているが、必ずしも十分とはいえなかった。
【特許文献１】特開平８−２６３３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、上記の点に鑑み、新たな着想に基づいて、さらに低消費電流化の実現を図るようにしたキャッシュメモリを提供することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決し本発明の目的を達成するために、各発明は、以下のような構成からなる。
すなわち、第１の発明は、エントリアドレスに従って複数のタグメモリから読み出されたタグデータとタグアドレスとを比較して両者が一致するか否かを判別し、前記エントリアドレスに従って複数のデータメモリから読み出されたデータのうち、その一致したタグメモリに対応したデータメモリから読み出されたデータを選択的に出力するキャッシュメモリにおいて、前記複数のデータメモリから選択的に出力されたデータを保持するラッチ回路と、今回使用されるエントリアドレスおよびタグアドレスと、前回使用されたエントリアドレスおよびタグアドレスとを比較して、その両者が一致するか否かを判定する比較回路と、前記比較回路が両者が一致すると判定したときには、前記ラッチ回路に保持されるデータをヒットデータとして出力するとともに、前記複数のタグメモリおよび前記複数のデータメモリへのアクセスをそれぞれ禁止する制御回路と、を備えている。
【０００７】
第２の発明は、今回使用するタグアドレスおよびエントリアドレスと、前記使用したタグアドレスおよびエントリアドレスとを比較してその両者の一致を判定する第１比較回路と、エントリアドレスに対応するデータを格納する複数のデータメモリと、前記複数のデータメモリと１対１に対応して設け、エントリアドレスに対応してタグアドレスのデータを格納する複数のタグメモリと、前記今回のエントリアドレスに基づいて前記複数のタグメモリが出力する各アドレスと前記今回使用するタグアドレスとをそれぞれ比較して、その両者の一致を判定する第２比較回路と、前記第２比較回路がその両者が一致すると判定したときに、その一致に基づいて前記複数のデータメモリから出力されるデータのうちの１つを選択的にヒットデータとして出力する選択回路と、前記選択回路で選択的に出力されたデータを保持するラッチ回路と、前記第１比較回路がその両者が一致すると判定したときに、前記ラッチ回路に保持されるデータをヒットデータとして出力するとともに、前記複数のタグメモリおよび前記複数のデータメモリへのアクセスをそれぞれ禁止する制御回路と、を備えている。
【０００８】
このような構成からなる本発明によれば、今回のアドレスと前回のアドレスとが一致する場合には、複数のタグメモリおよび前記複数のデータメモリへのアクセスがいずれも禁止される。従って、本発明よれば、従来に比べてさらに低消費電流化を実現することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態について、図面を参照して説明する。
本発明のキャッシュメモリの実施形態の構成について、図１のブロック図を参照して説明する。
この実施形態に係るキャッシュメモリは、例えば、２ウェイセットアソシエイティブ方式を採用している。すなわち、このキャッシュメモリは、図１に示すように、２つのタグメモリ１−０、１−１と、このタグメモリと１対１に対応して設けられた２つのデータメモリ２−０、２−１とを備え、６エントリ（６セット）からなる。
【００１０】
さらに、この実施形態に係るキャッシュメモリは、図１に示すように、主アドレスレジスタ３と、副アドレスレジスタ４と、ラッチ回路５と、コンパレータ（比較回路）６と、コンパレータ７、８と、制御回路９と、セレクタ（選択回路）１０と、ラッチ回路１１と、セレクタ１２〜１４と、制御回路１５とを備えている。
主アドレスレジスタ３と副アドレスレジスタ４は、例えば図示しないＣＰＵから出力された要求アドレスをそれぞれ記憶するレジスタである。
【００１１】
要求アドレスは、キャッシュメモリに対してアクセスする際のアドレスであり、図１に示すように、下位側からワードアドレス、エントリアドレス、およびタグアドレスからなる。
ここで、ワードアドレスは、データメモリ２−０、２−１のブロック内の語（Ｗ０〜Ｗ３）を識別するためのアドレスである。エントリアドレスは、キャッシュメモリを構成する６エントリのうちの１つを識別するためのアドレスである。タグアドレスは、タグメモリ１−０、１−１から出力されるアドレスと比較するためのアドレスである。
【００１２】
ラッチ回路５は、副アドレスレジスタ４の内容を同時（並列）に読み出して、一時的に保持するものである。このラッチ回路５に保持される要求アドレスは、前回に使用されたものである。
コンパレータ６は、主アドレスレジスタ３に格納される今回の要求アドレス（今回のタグアドレスおよびエントリアドレス）と、ラッチ回路５に格納される前回の要求アドレス（前回のタグアドレスおよびエントリアドレス）とを比較し、その両者が一致するか否かを判定し、一致するときに一致信号を制御回路１５に出力するものである。このコンパレータ６は、制御回路１５からの指示に従って動作するようになっている。
【００１３】
コンパレータ７は、主アドレスレジスタ３に格納されるエントリアドレスに基づいてタグメモリ１−０が出力するアドレスと主アドレスレジスタ３に格納されるタグアドレスとを比較し、その両者が一致するか否かを判定し、一致したときに一致信号を制御回路９に出力するものである。
コンパレータ８は、主アドレスレジスタ３に格納されるエントリアドレスに基づいてタグメモリ１−１が出力するアドレスと主アドレスレジスタ３に格納されるタグアドレスとを比較し、その両者が一致するか否かを判定し、一致したときに一致信号を制御回路９に出力するものである。
【００１４】
制御回路９は、コンパレータ７またはコンパレータ８から一致信号が出力された場合に、ヒットした旨を出力するようになっている。また、制御回路９は、その一致信号に基づいてウェイの選択信号をセレクタ１０に出力するようになっている。
セレクタ１０は、主アドレスレジスタ３に格納されるエントリアドレスに従って２つのデータメモリ２−０、２−１からそれぞれ読み出されるデータのうちの１つを選択的に出力するものである。このセレクタ１０のデータの選択的な出力は、制御回路９からのウェイの選択信号に従って行われる。ここで、データメモリ２−０、２−１から１度に読み出されるデータは、この例ではそれぞれ４ワード分（３２ビット×４）である。
【００１５】
ラッチ回路１１は、２つのデータメモリ２−０、２−１から読み出されたデータのうち、セレクタ１０により選択的に出力された４ワード分のデータを一時的に保持するようになっている。
セレクタ１２は、制御回路１５からのワードアドレスに従って、セレクタ１０から出力される４ワード分のデータのうちから、１ワード分のデータを選択的に出力するものである。
【００１６】
セレクタ１３は、制御回路１５からのワードアドレスに従って、ラッチ回路１１に保持される４ワード分のデータのうちから、１ワード分のデータを選択的に出力するものである。
セレクタ１４は、セレクタ１２からのデータとセレクタ１３からのデータとを選択的に出力して、ヒットデータを取り出すものであり、その選択的な出力は制御回路１５からのヒット信号の有無に従って行われる。
【００１７】
制御回路１５は、コンパレータ６からの出力に従って、タグメモリ１−０、１−１およびデータメモリ２−０、２−１のアクセス制御（データの読み書き制御）や、セレクタ１２〜１３のデータの選択的な出力を制御するものである。
すなわち、制御回路１５は、コンパレータ６から一致信号が出力されたときに、今回の要求アドレスのうちのワードアドレスを参照して、ラッチ回路１１に保持される４ワードのうちの１つのワードに係るデータをヒットデータとしてセレクタ１４から出力させる。また、このときには、制御回路１５は、２つのタグメモリ１−０、１−１および２つのデータメモリ２−０、２−１へのアクセスをそれぞれ禁止するように、そのメモリの制御を行う。
【００１８】
一方、制御回路１５は、コンパレータ６が今回の要求アドレスと前回の要求アドレスとの比較の結果、その両者が一致せずに、コンパレータ６から一致信号が出力されない場合には、従来の制御（「背景技術」にて説明）を行う。
なお、便宜上、図１に主アドレスレジスタ１および副アドレスレジスタ２を用いて説明しているが、このレジスタがない構成であっても効果は同じである。
【００１９】
また、より低消費電流化するならば、セレクタ１２とセレクタ１３は排他的に動作させるのが望ましい。つまり、コンパレータ６の結果が一致した場合はセレクタ１３の選択信号のみ変化させ、セレクタ１２の選択信号は変化させない。またコンパレータ６の結果が不一致の場合はセレクタ１２の選択信号のみ変化させ、セレクタ１３の選択信号は変化させない構成にすれば、必要なセレクタのみ動作、不要なセレクタは非動作となり、さらなる低消費電流化が実現できる。
【００２０】
次に、このような構成からなる実施形態の動作例について、キャッシュからのリード動作を例に、図１および図２を参照して説明する。
まず、図示しないＣＰＵから１回目の要求アドレスが、主アドレスレジスタ３および副アドレスレジスタ４に対してそれぞれ格納される（ステップＳ１）。ここで、要求アドレスは、図１に示すように、下位側からワードアドレス、エントリアドレス、タグアドレスからなる。
【００２１】
その要求アドレスの格納が終了すると、制御回路１５は、その要求アドレスが１回目（初回）のものであるか否かを判定する（ステップＳ２）。その判定の結果、１回目のものである場合には、制御回路１５は、主アドレスレジスタ３に格納されるエントリアドレスを参照して、タグメモリ１−０、１−１から２ウェイ分のアドレスを読み出す（ステップＳ３）。このときには同時に、制御回路１５は、主アドレスレジスタ３に格納されるエントリアドレスを参照して、データメモリ２−０〜２−１からそれぞれ４ワード（Ｗ０〜Ｗ３）分のデータを２ウェイ分読み出す（ステップＳ４）。
【００２２】
その後、コンパレータ７、８は、タグメモリ１−０、１−１から読み出されたアドレスと主アドレスレジスタ３に格納されるタグアドレスとを比較し（ステップＳ５）、その両者が一致するか否かを判定し、一致したときに一致信号を制御回路９に出力する。
コンパレータ７またはコンパレータ８から一致信号が制御回路９に出力されると（ステップＳ６）、その一致信号に基づいて、制御回路９はキャッシュヒットとなった旨を示すヒット信号を出力する（ステップＳ７）。さらに、制御回路９は、ヒットしたウェイを決定し、その決定したウェイを選択するための信号をセレクタ１０に出力する。これにより、セレクタ１０はヒットデータを出力し、この出力されたヒットデータはセレクタ１２に入力されると同時にラッチ回路１１に保持される。
【００２３】
セレクタ１２は、その入力された４ワード分のデータのうち、制御回路１５からのワードアドレスに従ってそのうちの１ワード分のデータを選択的に出力する。さらに、その選択された１ワード分のデータは、今回のヒットデータとしてセレクタ１４から出力される（ステップＳ８）。
一方、コンパレータ７またはコンパレータ８から一致信号が制御回路９に出力されない場合には、ステップＳ９に進み、制御回路１５は、キャッシュミスに係る所定の処理を行う。
【００２４】
その後、副アドレスレジスタ４に格納されている１回目の要求アドレスは、ラッチ回路５に保持されるようにする（ステップＳ１０）。
次に、ステップＳ１に戻り、２回目の要求アドレスが、主アドレスレジスタ３および副アドレスレジスタ４に対してそれぞれ格納される。
この場合には、要求アドレスは２回目のものであるため、ステップＳ２では否定判定となり、ステップＳ１１に移行する。
【００２５】
ステップＳ１１では、コンパレータ６が、主アドレスレジスタ３に格納される２回目（今回）の要求アドレスと、ラッチ回路５に格納される１回目（前回）の要求アドレスとを比較し、その両者が一致するか否かを判定するように、制御回路１５がその制御を行う。  次のステップＳ１２では、制御回路１５は、コンパレータ６からその両者が一致した旨を示す一致信号が出力されたか否かを判定する。
【００２６】
その判定の結果、一致信号が出力されたと判定されると（ステップＳ１２：ＹＥＳ）、制御回路１５はヒット信号を出力するとともに、主アドレスレジスタ３に格納される今回の要求アドレスのうちのワードアドレスと、ヒット信号とを参照して、ラッチ回路１１に保持される４ワードのデータのうちの１ワード分のデータを、ヒットデータとしてセレクタ１３とセレクタ１４で選択させて出力させる（ステップＳ１３）。
【００２７】
すなわち、このときには、セレクタ１３は、制御回路１５からの今回のワードアドレスに従ってラッチ回路１１に保持される４ワードのデータのうちの１ワード分のデータを出力する。また、セレクタ１４は、制御回路１５からのヒット信号の従ってその出力された１ワード分のデータを、ヒットデータとして出力する。
また、このときには、制御回路１５は、２つのタグメモリ１−０、１−１および２つのデータメモリ２−０、２−１へのアクセスをそれぞれ禁止するように、そのメモリのアクセス制御を行う（ステップＳ１４）。
【００２８】
ところで、ステップＳ１２の判定の結果、否定判定の場合にはステップＳ３に進み、上記のステップＳ３〜ステップＳ１０の各処理を実行後、ステップＳ１に戻って、３回目の要求アドレスが、主アドレスレジスタ３および副アドレスレジスタ４に対してそれぞれ格納される。以後、これらの一連の処理を行う。
以上説明したように、この実施形態によれば、今回のアドレスと前回のアドレスとが一致する場合には、タグメモリ１−０、１−１およびデータメモリ２−０、２−１へのアクセスをいずれも行わないようにした。従って、この実施形態によれば、従来に比べてさらに低消費電流化を実現することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態の構成を示すブロック図である。
【図２】実施形態のキャッシュリード時の動作例を示すフローチャートである。
【符号の説明】
【００３０】
１−０、１−１・・・タグメモリ、２−０、２−１・・・データメモリ、３・・・アドレスレジスタ、４・・・副アドレスレジスタ、５・・・ラッチ回路、６〜８・・・コンパレータ、９、１５・・・制御回路、１０、１２〜１４・・・セレクタ、１１・・・ラッチ回路
【図１】
2006343803.tif 000003
【図２】
2006343803.tif 000004