(57)【特許請求の範囲】
【請求項１】
キャッシュシステムにおいて、
外部メモリの一部のデータが保持されるデータメモリと、
当該データメモリに保持されるデータのアドレス情報と当該アドレス情報が有効か否かを示す有効データビットとを保持し、前記アドレス情報は連続するアドレスの複数データを共通に管理し、前記有効データビットが前記複数データに対応して複数ビット設けられたタグメモリと、
アクセス対象アドレスが直前のアクセス対象アドレスと同一のタグメモリ内アドレス情報で管理されるデータに対応する第１の場合は、前記タグメモリへの読み出しを禁止し、かつ、前記有効データビットに従ってキャッシュヒット判定し、前記アクセス対象アドレスが直前のアクセス対象アドレスと異なるタグメモリ内アドレス情報で管理されるデータに対応する第２の場合は、前記タグメモリへの読み出しを許可してキャッシュヒット判定し当該キャッシュヒット判定でキャッシュミスと判定した時に、前記外部メモリからアクセス対象の前記複数データの一部を前記データメモリに転送し、対応する有効データビットを更新するキャッシュコントローラとを有することを特徴とするキャッシュシステム。
【請求項２】
請求項１において、前記キャッシュコントローラは、前記第１の場合に、キャッシュヒットと判定されたら前記データメモリのアクセス対象アドレスのデータをアクセスし、キャッシュミスと判定されたら前記外部メモリからアクセス対象のデータを前記データメモリに転送し、対応する有効データビットを更新することを特徴とするキャッシュシステム。
【請求項３】
請求項２において、前記キャッシュコントローラは、前記第２の場合に、前記タグメモリの有効データビットを読み出して保持し、その後の第１の場合に、当該保持した有効データビットに従ってキャッシュヒット判定を行うことを特徴とするキャッシュシステム。
【請求項４】
請求項１において、前記キャッシュコントローラは、キャッシュミスと判定されたら、前記データメモリへの読み出し動作を中断することを特徴とするキャッシュシステム。
【請求項５】
請求項１において、前記キャッシュコントローラは、アクセス対象アドレスが直前のアクセス対象アドレスからインクリメントされ、且つ当該アクセス対象アドレスが前記複数データの先頭アドレスでない場合に、前記第１の場合と判断し、前記アクセス対象アドレスが直前のアクセス対象アドレスからインクリメントされないか、または当該アクセス対象アドレスが前記複数データの先頭アドレスである場合に、前記第２の場合と判断することを特徴とするキャッシュシステム。
【請求項６】
請求項１において、前記キャッシュコントローラは、アクセス対象アドレスと直前のアクセス対象アドレスとが、同じ前記複数データのいずれかに対応する場合は、前記第１の場合と判断し、異なる前記複数データのいずれかに対応する場合は、前記第２の場合と判断することを特徴とするキャッシュシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵ内のキャッシュシステムに関し、特に、キャッシュヒットか否かの検出に使用するタグメモリのアクセス回数を少なくすることができるキャッシュシステムに関する。
【０００２】
【従来の技術】
一般的なＣＰＵは、内部にキャッシュシステムを有する。ＣＰＵの外部にはプログラムやデータ（以下総称してデータとする）を記録したメインメモリが設けられるが、ＣＰＵから外部のメインメモリへのアクセスは低速である。そこで、一旦外部のメインメモリがアクセスされると、その記録されているデータがＣＰＵ内部のキャッシュメモリにも記録され、それ以降同じアドレスへのアクセスが発生した時は、外部のメインメモリにアクセスすることなくキャッシュメモリに記録されたデータが利用される。それにより、ＣＰＵから外部のメインメモリへのアクセス頻度を下げて、ＣＰＵのパフォーマンスを高めることができる。
【０００３】
キャッシュシステムは、外部メモリのデータを記録するデータメモリに加えて、どのアドレスのデータがデータメモリに記録されているかを記録するタグメモリを有する。そして、ＣＰＵ内では、データアクセスが発生した時、タグメモリ内のアドレスデータを読み出し、アクセス対象アドレスと一致するか否かのキャッシュヒット判定が行われる。タグメモリ内から読み出されたアドレスデータとアクセス対象アドレスが一致し、タグメモリ内の有効データを示すフラグが有効であれば、キャッシュヒットと判定され、内部のデータメモリ内のデータが読み出され、外部のメインメモリへのアクセスは行われない。一方、タグメモリ内から読み出されたアドレスデータとアクセス対象アドレスとが不一致、または、タグメモリ内の有効データを示すフラグが無効であればキャッシュミスと判定され、外部のメインメモリへのアクセスが行われ、そのデータが内部のデータメモリに記録されると共に、そのアドレス情報及び有効フラグがタグメモリ内に記録される。タグメモリ内のアドレス情報はアドレスタグとも称され、上位アドレスが下位アドレスで特定される番地に記録される。また、タグメモリ内には、このアドレスタグに加えて、そのアドレスタグが有効か否かを示す有効データビットが記録される。
【０００４】
【発明が解決しようとする課題】
上記の通り、ＣＰＵ内では、メモリアクセスのたびにタグメモリがアクセスされ、キャッシュ判定が行われる。一方、キャッシュシステムに設けられるタグメモリやデータメモリは、高速性の観点からＳＲＡＭなどの高速メモリが使用される。従って、タグメモリにアクセスするたびにかなりの電力が消費される。このような電力の消費は、ＣＰＵが携帯電話や携帯情報端末などに搭載される場合、無視できない問題になる。
【０００５】
そこで、本発明の目的は、タグメモリへのアクセス回数を少なくすることができるキャッシュシステムを提供することにある。
【０００６】
更に、本発明の別の目的は、タグメモリへの読み出し動作回数を少なくすることができるキャッシュシステムを提供することにある。
【０００７】
更に、本発明の別の目的は、消費電力を減らすことができるキャッシュシステムを提供することにある。
【０００８】
【課題を解決するための手段】
上記の目的を達成するために、本発明の一つの側面は、外部メモリのデータが保持されるデータメモリと、当該データメモリに保持されるデータのアドレス情報と当該アドレス情報が有効か否かを示す有効データビットとを保持するタグメモリとを有するキャッシュシステムにおいて、タグメモリのアドレス情報は、連続するアドレスの複数データを共通に管理し、アクセス対象アドレスが直前のアクセス対象アドレスと同一のタグメモリ内アドレス情報で管理されるデータに対応する場合は、タグメモリへの読み出しが禁止され、アクセス対象アドレスが直前のアクセス対象アドレスと異なるタグメモリ内アドレス情報で管理されるデータに対応する場合は、タグメモリへの読み出しが行われキャッシュヒット判定が行われることを特徴とする。
【０００９】
タグメモリのアドレス情報が、連続するアドレスの複数データを共通に管理する場合は、一つのタグメモリ内のアドレス情報はその複数データに対して共有される。従って、ある一つのタグメモリ内アドレス情報で管理される複数データのアドレスへのアクセス要求があった場合、その管理範囲内のアドレスへの最初のアクセス時は、タグメモリの読み出しを行ってキャッシュヒット判定を行うが、その後に同じ管理範囲内のアドレスへのアクセス要求があった場合は、タグメモリ内アドレス情報は同じであるので、再度タグメモリの読み出しは行わない。その結果、無駄なタグメモリへの読み出し回数を減らすことができる。
【００１０】
上記の複数データを共通して管理するタグメモリの場合、有効データビットを１ビットにして、キャッシュミスした時に外部メモリから複数データを一括して内部のデータメモリに書き込む第１の構成の場合と、有効データビットを複数ビット（例えば複数データに対応して同じビット数）にして、キャッシュミスした時に外部メモリからアクセス要求されたデータのみを内部のデータメモリに書き込み、対応する有効データビットを更新する第２の構成の場合とがある。
【００１１】
第１の構成の場合は、一つのタグメモリ内アドレス情報の管理範囲内のアドレスへの最初のアクセス時は、タグメモリを読み出してヒット判定を行うが、その後同じ管理範囲内アドレスへのアクセス時は、上記ヒット判定に関わらず既に対応する複数データは内部のデータメモリに書き込まれているので、タグメモリを読み出すことなく、強制的にキャッシュヒットと判定して内部のデータメモリの対応するデータにアクセスする。
【００１２】
第２の構成の場合は、一つのタグメモリ内アドレス情報の管理範囲内のアドレスへの最初のアクセス時は、タグメモリを読み出してヒット判定を行い、同時に対応する有効データビットを保持する。その後同じ管理範囲内アドレスへのアクセス時は、タグメモリを読み出すことなく、保持した有効データビットの従ってヒット判定が行われる。キャッシュヒット時は内部のデータメモリの対応するデータがアクセスされ、キャッシュミス時は外部メモリの対応するデータがアクセスされ、そのデータが内部のデータメモリに書き込まれると共に有効データビットが有効状態に更新される。また、上記のキャッシュミス時は内部メモリへのアクセスは停止される。
【００１３】
上記の目的を達成するために、本発明の別の側面は、キャッシュシステムにおいて、
外部メモリの一部のデータが保持されるデータメモリと、
当該データメモリに保持されるデータのアドレス情報と当該アドレス情報が有効か否かを示す有効データビットとを保持し、前記アドレス情報は、連続するアドレスの複数データを共通に管理するタグメモリと、
アクセス対象アドレスが直前のアクセス対象アドレスと同一のタグメモリ内アドレス情報で管理されるデータに対応する第１の場合は、前記タグメモリへの読み出しを禁止し、前記アクセス対象アドレスが直前のアクセス対象アドレスと異なるタグメモリ内アドレス情報で管理されるデータに対応する第２の場合は、前記タグメモリへの読み出しを許可し、キャッシュヒット判定を行うキャッシュコントローラとを有することを特徴とする。
【００１４】
同じタグメモリ内アドレス情報で管理される複数データに対するアクセスが、２度目以降においては、タグメモリの読み出し動作が省略されるので、消費電力を節約することができる。
【００１５】
より好ましい実施例では、上記の発明において、
前記有効データビットが前記複数データに共通に１ビット設けられ、前記キャッシュコントローラは、前記第２の場合に、キャッシュヒット判定でキャッシュミスと判定した時に、前記外部メモリのアクセス対象の前記複数データを一括して前記データメモリに転送し、前記第１の場合に、前記アドレス情報にかかわらずキャッシュヒットと判定して、前記データメモリのアクセス対象アドレスのデータにアクセスすることを特徴とする。
【００１６】
タグメモリ内アドレス情報により複数データが共通に管理され、その複数データが一括してデータメモリに転送される場合は、２度目以降のアクセスに対しては、タグメモリを読み出すことなく、キャッシュヒットと判定することができる。
【００１７】
別のより好ましい実施例では、上記の発明において、
前記有効データビットが前記複数データに対応して複数ビット設けられ、前記キャッシュコントローラは、前記第２の場合に、キャッシュヒット判定でキャッシュミスと判定した時に、前記外部メモリからアクセス対象の前記複数データの一部を前記データメモリに転送し、対応する有効データビットを更新し、前記第１の場合に、前記有効データビットに従ってキャッシュヒット判定することを特徴とする。
【００１８】
タグメモリ内アドレス情報により複数データが共通に管理され、その複数のデータが有効データビットで個別にそれが有効か否かを管理する場合は、２度目以降のアクセスに対しては、タグメモリを読み出すことなく、有効データビットに従ってキャッシュヒット判定をすることができる。
【００１９】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
【００２０】
図１は、本実施の形態例におけるシステムブロック図である。ＣＰＵは、外部アドレスバスADRと外部データバスDを介して外部のメインメモリ１０に接続される。図１の例では、外部データバスDは３２ビットのバスであり、外部アドレスADRは３０ビットのバスである。データが３２ビット単位、４バイト構成のため、外部アドレスADRの最下位２ビットADR[1:0]は不使用である。
【００２１】
ＣＰＵは、内部に演算回路などのインテジャーユニットIUとキャッシュシステムCACHEとバスインターフェースユニットBIUとを有する。インテジャーユニットIUは、内部アドレスバスIAにアドレスを出力してメモリへのアクセスを要求する。このアクセス要求に応答して、キャッシュシステムCACHEは、内蔵するデータメモリ内にアクセス対象のデータが保持されているか否かをチェックし、保持されていれば、内部のデータメモリにアクセスし、内部データバスIDを介して読み出しまたは書き込みを行う。一方、保持されていない場合は、キャッシュシステムCACHEがキャッシュミス信号MISSをバスインターフェースユニットBIUに供給し、外部のメインメモリ１０へのアクセスを要求する。このアクセス要求に応答して、バスインターフェースユニットBIUは、メインメモリ１０にアクセスし、アクセス対象データを読み出し、キャッシュシステムCACHE内のデータメモリに書き込み、タグメモリのアドレス情報を更新する。
【００２２】
尚、インテジャーユニットIUは、アクセス対象アドレスが直前のアドレスを単にインクリメントするものか否かを示す信号PLUS4を生成する。
【００２３】
図２は、図１のキャッシュシステム内の構成を示す図である。キャッシュシステム内には、タグメモリ２２とデータメモリ３０と、キャッシュヒットの判定やタグメモリやデータメモリへのアクセスを制御するキャッシュコントローラ２０とを有する。図２中には、キャッシュ判定部２３が特に示されるが、このキャッシュ判定部２３はキャッシュコントローラ２０内に設けらているものとする。
【００２４】
タグメモリ２２には、内部のデータメモリ３０が保持するデータのアドレス情報が記録される。内部アドレスIA[31:2]は、アドレス表２１に示される通り、上位ビットIA[31:10]と中位ビットIA[9:4]と下位ビットIA[3:2]に分けられ、最下位２ビットIA[1:0]は存在しない。中位ビットIA[9:4]は、タグメモリ２２のアドレスに使用される。従って、タグメモリ２２は２5＝６４ラインの容量を有する。タグメモリの各ラインには、データメモリ３０が保持するデータのアドレスの上位アドレスIA[31:10]が、その中位アドレスIA[9:4]のライン内にアドレス情報ADD-TAGとして記録される。更に、各ラインには、そのアドレス情報ADD-TAGが管理する複数データがデータメモリ３０内に保持されているか否かを示す有効データビットVBが記録される。
【００２５】
そして、ヒット判定は、アクセス対象アドレスの中位アドレスIA[9:4]でタグメモリ２２をアクセスし、そのアドレスに記録されている上位アドレスIA[31:10]からなるアドレス情報ADD-TAGと、アクセス対象アドレスの上位アドレスIA[31:10]とを比較器２４で比較することで、ヒット判定が行われる。そして、比較器２４の出力と有効データビットＶＢとの論理積が、ヒット判定信号THitとして生成される。タグメモリ２２にデータメモリ３０に保持される上位アドレスIA[31:10]を、その中位アドレスIA[9:4]のデコードされた位置に保持させることで、タグメモリ２２の容量を小さくし、且つ、データメモリ３０のヒット判定を高速に行うことができる。
【００２６】
更に、タグメモリ２２の各ラインのアドレス情報ADD-TAGは、アドレスが連続する複数のデータを共通に管理する。図２の例では、アドレスが連続する４つのデータが、一つのアドレス情報ADD-TAGにより共通に管理される。図２に示される通り、外部のメインメモリ１０は、上位アドレスADR[31:10]で特定されるデータ群に分けられる。各データ群は、中位及び下位アドレスADR[9:2]で特定される２8＝２５６ワードのデータを有し、その２５６ワードの中の中位アドレスADR[9:4]で特定される連続する４ワードのデータ群が、キャッシュシステム内のデータメモリ３０に転送され、タグメモリ２２により共通に管理される。
【００２７】
そして、データメモリ３０は、中位及び下位アドレスADR[9:2]で特定可能な２５６ワードの容量を有する。即ち、外部のメインメモリ１０の中位アドレスADR[9:4]で特定される複数組の４ワードデータのうち、１組の４ワードデータ30A,30Bがデータメモリ３０に書き込まれる。そして、その４ワードデータがどの２５６ワードのデータ群に属するかが、上位アドレスADR[31:10]により特定され、アドレス情報ADD-TAGとしてタグメモリ２２に記録される。
【００２８】
タグメモリ２２には、データメモリ３０に保持されるデータの管理を行うアドレス情報ADD-TAGに加えて、そのアドレス情報ADD-TAGで管理されているデータメモリの内容が有効か否かを示す有効データビットBVを有する。この有効データビットBVは、１ビットであっても良いし、４ワードデータが有効か否かを個別に示すために４ビットであっても良い。
【００２９】
有効データビットVBが１ビットの場合は、４ワードデータ30A,30Bは、一括してメインメモリ１０から転送されまたは転出される。従って、有効データビットVBが有効の場合は、４ワードデータが全てデータメモリ３０内に保持されていることを示し、無効の場合は、４ワードデータが全てデータメモリ３０内に保持されていないことを示す。有効データビットVBが１ビットの場合は、図２のヒット判定部２３内のセレクタSELは不要である。
【００３０】
有効データビットVBが４ビットの場合は、４ワードデータ30A,30Bは、１ワードずつメインメモリ１０から転送されまたは転出される。従って、有効データビットVBが「１１１１」の場合は、中位アドレスADR[9:4]で特性される４ワードデータが全てデータメモリ３０内に保持されていることを示し、有効データビットVBが「０００１」の場合は、４ワードデータのうち最初の１ワードデータのみがデータメモリ３０内に保持されていることを示す。
【００３１】
一般に、キャッシュシステムでは、タグメモリ内において、データメモリのデータの上位アドレスをその下位アドレスのデコードで決定された位置に記録して、タグメモリの容量を減らしキャッシュ判定を高速に行うことができるようにしている。しかし、同じ下位アドレスADR[9:2]を有する複数の４ワードデータ群を重複してデータメモリ３０内に保持することができず、キャッシュヒット率が低下する場合がある。それを防ぐために、上記のタグメモリとデータメモリを複数組設けることが行われる。この複数組の管理は、ウエイにより行われる。但し、本件ではその説明は省略する。
【００３２】
従来のキャッシュシステムでは、インテジャーユニットIUが内部アドレスIA[31:2]を発生してデータのアクセス要求を出すたびに、タグメモリ２２が読み出され、ヒット判定部２３によりヒット判定が行われる。タグメモリ２２は、ＳＲＡＭなどの高速メモリが使用され、タグメモリ２２への読み出し動作に伴い多くの電力が消費される。
【００３３】
しかし、上記した通り、タグメモリ２２の１ラインのアドレス情報ADD-TAGが、４ワードデータ30A,30Bを共通に管理している。従って、４ワードデータが順番にアクセスされる場合、タグメモリ２２から読み出されるアドレス情報ADD-TAG（上位アドレスIA[31:10]）は、毎回同じであり、ヒット判定部２４の比較器２４の出力は毎回一致を示す。或いは、タグメモリのアドレス情報が管理する範囲（４ワードデータ）内のアクセスであれば、タグメモリ２２から読み出されるアドレス情報は同じになり、比較器２４の出力も同じである。
【００３４】
そこで、本実施の形態例では、アクセス対象アドレスが直前のアクセス対象アドレスと同一のタグメモリ内アドレス情報で管理されるデータに対応する場合は、タグメモリ２２への読み出しが禁止される。また、アクセス対象アドレスが直前のアクセス対象アドレスと異なるタグメモリ内アドレス情報で管理されるデータに対応する場合は、タグメモリ２２への読み出しが行われキャッシュヒット判定が行われる。これにより、従来の無駄に行っていたタグメモリ２２の読み出し動作をなくすことができ、タグメモリ２２のアクセス頻度を下げて消費電力を少なくすることができる。
【００３５】
図３は、第１の実施の形態例におけるキャッシュコントローラを示す図である。キャッシュコントローラの動作が、図中の表に示される。この例は、タグメモリの有効データビットVBが１ビットの例であり、４ワードデータ30A,30Bが同時に外部メモリから転送され、転出される。第１の実施の形態例では、アクセス対象アドレスが直前のアクセス対象アドレスと同一のタグメモリ内アドレス情報で管理されるデータに対応するか否かの判定が、判定回路４０にて行われる。判定回路４０は、内部アドレスIA[3:2]の論理和ゲート４１と、そのゲート４１の出力とインテジャーユニットIUから供給されるアドレスインクリメント信号PLUS4との論理積ゲート４２で構成される。
【００３６】
内部アドレスIA[3:2]は、４ワードデータ（番地0,4,8,c）のいずれかを特定する。従って、内部アドレスIA[3]とIA[2]の論理和４１の出力SLineは、IA[3:2]＝００（番地０）の時は０になり、IA[3:2]＝０１（番地４）、１０（番地８）、１１（番地ｃ）の時は出力SLineが１になる。つまり、アドレスがインクリメントされながら順番にアクセスされる場合は、４ワードデータの先頭データ（番地０）の時に論理和ゲート４１の出力SLineが０になり、それ以外のデータ（番地4,8,c）の時に出力Slineが１になる。
【００３７】
従って、判定回路４０は、アクセス対象アドレスが直前のアドレスをインクリメントする場合（PLUS4=1）であって、アクセス対象アドレスが４ワードデータの番地4,8,cのいずれかの場合には、論理積ゲート４２の出力が１（Ｈレベル）になり、タグメモリ読み出し禁止信号TRCancelを生成する。つまり、この場合は、同じタグメモリ内アドレス情報の管理範囲内のアクセスであるので、タグメモリ読み出し禁止信号TRCancelにより、タグメモリの読み出しが禁止される。一方、判定回路４０は、アドレスがインクリメントされる場合（PLUS4=1）であっても、アクセス対象アドレスが４ワードデータの番地０の場合は、異なるタグメモリ内アドレス情報の管理範囲へのアクセスであり、タグメモリ読み出し禁止信号TRCancelはＬレベルになる。その結果、タグメモリの読み出しは許可される。そして、判定回路４０は、アドレスがインクリメントされない場合（PLUS4=0）は、同じタグメモリ内アドレス情報の管理範囲外のアクセスの可能性が高いので、タグメモリ読み出し禁止信号TRCancelはＬレベルになる。
【００３８】
この実施の形態例では、判定回路４０により生成されるタグメモリ読み出し禁止信号TRCancelにより、アクセス時に生成されるＨレベルのタグメモリ読み出し信号TReadをANDゲート４４でＬレベルにし、新たに生成された第２のタグメモリ読み出し信号TRead2により、NORゲート４５とバッファ４６を介して、タグメモリ２２へのワード線イネーブル信号Wenとセンスアンプイネーブル信号Senを生成する。また、キャッシュミス時のタグメモリ書き込み信号TWriteは、第２のタグメモリ読み出し信号TRead2にかかわらず、タグメモリのワード線イネーブル信号Wenを生成する。
【００３９】
タグメモリ読み出し禁止信号TRCancelがＨレベルの時は、タグメモリ２２の読み出しは行われないので、ヒット判定部２３のヒット判定出力THitはＬレベルになる。しかし、禁止信号TRCancelのＨレベルにより、NORゲートを介して、新たに生成されるヒット判定信号THit2が強制的にヒット状態（Ｈレベル）にされる。その結果、キャッシュコントローラは、図示しない回路により、内部のデータメモリ３０のデータを読み出してインテジャーユニットIUに供給する。一方、ヒット状態を示す信号MISSによりバスインターフェースユニットBIUは、外部メモリ１０へのアクセスを行わない。
【００４０】
図３は、タグメモリ２２の例を示す図である。図４はＳＲＡＭの例である。複数のワード線WL0,1…nと複数のビット線対BL0,/BL0〜BLm,/BLmの交差位置に、メモリセルMCが配置される。ワード線ＷＬは、ワードデコーダ221の出力とキャッシュコントローラにより生成されるワード線イネーブル信号Wenの論理和222、223〜224により駆動される。従って、ワード線イネーブル信号WenがＬレベルの時は、ワード線は駆動されず、メモリセルがビット線対に接続されることはない。また、ビット線対BL,/BLは、コラムゲート226,227を介して、センスアンプSAに接続され、センスアンプSAはセンスアンプイネーブル信号Senにより活性化される。
【００４１】
SRAMの動作では、ワード線ＷＬが駆動されると、メモリセルMCがビット線対に接続され、Ｈレベルにされているビット線対の一方をＬレベルに駆動する。そして、そのビット線対の状態が、センスアンプSAにより検出される。従って、ワード線WLを駆動したり、センスアンプを駆動することにより、大量の電流を消費することになる。
【００４２】
前述のキャッシュコントロール回路は、タグメモリ読み出し禁止信号TRCancelにより、読み出し要求信号Treadにかかわらず、上記のワード線イネーブル信号Wenやセンスアンプイネーブル信号Senを非活性状態に維持し、タグメモリの読み出し動作を禁止する。
【００４３】
データメモリ３０も、図４のタグメモリと同様の回路構成である。従って、キャッシュミス判定がなされた時点で、データメモリ３０へのセンスアンプイネーブル信号の駆動を止めることで、無駄なデータメモリ３０への読み出し動作をなくすことができ、更に消費電力を節約することができる。
【００４４】
図５は、第２の実施の形態例におけるキャッシュコントローラを示す図である。図３と同じ部分には同じ引用番号が与えられる。第２の実施の形態例は、有効データビットが４ビットで構成され、４ワードデータのそれぞれがデータメモリ内に格納されているか否かが示される。
【００４５】
図５の例において、図３の例と同様に、判定回路４０によりタグメモリ読み出し禁止信号TRCancelが生成され、新たな読み出し信号TRead2が生成され、タグメモリの読み出し動作を禁止する。但し、図５の例では、同一のタグメモリ内アドレス情報により管理される４ワードデータが最初にアクセスされて、タグメモリ２２の読み出しが行われる時に、有効データビット保持部５０が、４ビットの有効データビットVBのうち、番地4,8,cに対応する有効データビットVB1,2,3をそれぞれのフリップフロップFF1,2,3に保持する。即ち、第２のタグメモリ読み出し信号TRead2がＨレベルの時に、NORゲート５１の出力n51（＝Ｈ）により、ANDゲート53,54,55を介して３つの有効データビットVB1,2,3がNORゲート５６を介してフリップフロップFF1,2,3にそれぞれ保持される。その後は、フリップフロップの各出力が信号n52（＝Ｈ）により、ANDゲート５７を介して再度フリップフロップに保持される。
【００４６】
また、有効データビット保持部５０は、キャッシュミスした時のタグメモリ書き込み信号TWrite（＝Ｈ）によっても、有効データビットを保持する。その結果、キャッシュミス後の有効データビットVBの更新後の状態が、有効データビット保持部５０に保持される。
【００４７】
有効データビット保持部５０がそれぞれ保持する有効データビットVB1,2,3は、内部アドレスIA[3:2]をデコードした信号により、セレクタ６０で選択され、現在アクセス対象のアドレスの有効ビット信号VNowが出力される。
【００４８】
図６は、第２の実施の形態例におけるタイミングチャート図である。図６を参照しながら、図５のキャッシュコントローラの動作を説明する。図６の例では、内部アドレスIAが、ｎ、n+4、n+8、n+c、n+10とインクリメントされ、その後ｍにジャンプし、更に、m+4、m+8、m+c、m+10とインクリメントされる。
【００４９】
最初に、内部アドレスIAがインクリメントされ（PLUS4=H）、そのアドレスがｎ番地の場合は、異なるタグメモリ内アドレス情報で管理されるデータへのアクセスである。従って、信号SlineはＬレベルになりタグメモリ読み出し禁止信号TRCancelがＬレベル（読み出し許可状態）になる。従って、第２の読み出し信号TRead2がＨレベルになり、タグメモリ２２の読み出しが行われ、ヒット判定部２３によりヒット判定が行われる。図６の例では、ヒット判定信号Thit、Thit2が共にＨレベルになり、アクセス対象データがデータメモリ３０内に保持されていることが検出される。この時、有効データビットVB1,2,3がその保持部５０に保持される。この時の有効データビットVB1,2,3は、「111」とする。
【００５０】
次に、内部アドレスがインクリメントされ、n+4番地になると、判定回路４０は、インクリメント信号PLUS4がＨレベルで信号SLineがＨレベルになるので、タグメモリ読み出し禁止信号TRCancel（＝Ｈ、読み出し禁止状態）が生成される。その結果、第２のタグメモリ読み出し信号TRead2がＬレベルになり、タグメモリ２２の読み出しが禁止される。一方、キャッシュヒット判定については、アドレスn+4に対応する有効データビットVB1が１であるので、セレクト回路６０の出力である現在の有効データビットVNowもＨレベルになり、ANDゲート47の出力もＨレベルとなり、キャッシュヒットを示すヒット判定信号THit2（＝Ｈ）が生成される。その結果、内部のデータメモリ３０のデータにアクセスされ、外部のメインメモリ１０へのアクセスは行われない。同様に、内部アドレスIAがインクリメントされ、n+8、n+c番地になるときも、上記と同様の動作をする。
【００５１】
その次に、内部アドレスIAがインクリメントされ、n+10番地になると、内部アドレスIA[3:2]＝００になり、信号SLineがＬレベルになる。つまり、アクセス対象アドレスが、異なるタグメモリ内アドレス情報に管理されるアドレスになり、タグメモリ読み出し禁止信号TRCancelがＬレベル（読み出し許可状態）になる。従って、読み出し信号TReadに従って、第２の読み出し信号TRead2がＨレベルになり、タグメモリ２２が読み出され、ヒット判定が行われる。この例では、ヒット判定信号THitがＨレベルになり、内部のデータメモリ２２にアクセスされる。同時に、有効データビットVB1,2,3が有効データビット保持部５０に保持される。
【００５２】
次に、ジャンプ命令により内部アドレスIAがｍ番地に飛ぶと、インクリメント信号PLUS4がＬレベルになり、タグメモリ読み出し禁止信号TRCancelがＬレベル（読み出し許可状態）になる。従って、読み出し信号TReadに従って、第２の読み出し信号TRead2がＨレベルになり、タグメモリ２２が読み出され、ヒット判定が行われる。この例では、ヒット判定信号THitがＬレベル（キャッシュミス）になり、外部のメインメモリ１０がアクセスされる。外部のメインメモリ１０へのアクセスは、内部データメモリ２２へのアクセスよりも長時間を要する。メインメモリ１０にアクセスされ、そのデータがインテジャーユニットITに供給されると共に、内部のデータメモリ３０にそのデータが書き込まれ、タグメモリ２２に対応するデータの上位アドレスが書き込まれ、有効データビットVBが「0001」と更新される。
【００５３】
次に、番地がm+4になると、タグメモリ２２への読み出しが禁止され、保持された有効データビットVB1が参照される。VB1=0であるので、現在の有効データビットVNowがＬレベルになる。従って、キャッシュミスのヒット判定THit2＝Ｌとなり、外部のメインメモリ１０がアクセスされ、そのデータが内部のデータメモリ３０に記録されると共に、有効データビットVB1が１に更新される。
【００５４】
次の、番地m+8、m+cも同様の動作であり、タグメモリ２２の読み出しが禁止され、保持されている有効データビットに従って、キャッシュヒット判定が行われる。
【００５５】
以上の様に、第２の実施の形態例において、同じタグメモリ内アドレス情報で管理されるデータへのアクセスの場合は、タグメモリの読み出し動作が禁止され、有効データビットに従ってヒット判定が行われる。その為に、タグメモリが読み出されたとき、有効データビットが保持される。
【００５６】
図７は、第３の実施の形態例におけるキャッシュコントローラの図である。この例は、有効データビットVBが１ビットからなり、４ワードデータが一括して外部メモリ１０から内部のデータメモリ３０に転送、転出される。第３の実施の形態例が第１の実施の形態例と異なるところは、判定回路４０の代わりに、アドレス変化検出回路７０が設けられていることにある。アドレス変化検出回路７０は、現在のアクセス対象アドレスIA[31:4]と直前のアクセス対象アドレスIA[31:4]とを比較し、一致する場合は同一のタグメモリ内アドレス情報により管理される範囲内へのアクセスと判断し、タグメモリ読み出し禁止信号TRCancelをＨレベルにする。それ以外の構成は、図３に示した第１の実施の形態例と同じであり、動作も同じである。
【００５７】
図８は、そのアドレス変化検出回路７０の構成図である。内部アドレスIA[31:2]のうち、有効データビットを選択するIA[3:2]を除いた内部アドレスIA[31:4]が、クロックCLKに同期して、遅延フリップフロップ群７２にラッチされる。そして、次のアクセス対象の内部アドレスIA[31:4]と遅延フリップフロップ群７２にラッチされた直前の内部アドレスIA[31:4]とがENORゲート群７４で比較され、全て一致するときにANDゲート７６の出力TRCancelがＨレベルになる。つまり、直前のアクセスと同じ４ワードデータ群へのアクセスであることが、このアドレス変化検出回路７０により検出される。その場合は、既に４ワードデータへの最初のアクセスが行われ、４ワードデータが一括して外部メモリ１０から内部メモリ３０に転送されているので、或いは既に内部メモリ３０内に保持されているので、改めてタグメモリ２２を読み出すことなく、強制的にヒットの判定（THit2=H）が行われる。
【００５８】
第３の実施の形態例では、直前のアドレスと現在のアドレスを比較し、同じタグメモリ内アドレス情報で管理される４ワードデータへのアクセスか否かの判定が行われる。最初に４ワードデータへのアクセスが行われた場合は、タグメモリが読み出され、ヒット判定が行われる。キャッシュヒットなら内部メモリ３０にアクセスされ、キャッシュミスなら外部のメモリ１０にアクセスされ、その４ワードデータが内部メモリ３０に転送されると共に、タグメモリ２２も書き換えられ、有効データビットＶＢも更新される。キャッシュヒットなら単に内部のデータメモリ３０のデータにアクセスされる。次に、同じ４ワードデータにアクセスされた場合は、その４ワードデータは既に内部データメモリ３０に転送されているので、再度タグメモリ２２を読み出してヒット判定することは行われない。
【００５９】
図９は、第４の実施の形態例におけるキャッシュコントローラの図である。この例は、第２の実施の形態例と同様に、有効データビットVBが４ビットあり、４ワードデータが１ワード単位で、外部メモリ１０から内部データメモリ３０に転送、転出される。
【００６０】
図９のキャッシュコントローラは、図５に示した第２の実施の形態例と異なり、アドレス変化検出回路７０がタグメモリ読み出し禁止信号TRCancelを生成する。アドレス変化検出回路７０は、図８に示した通りである。更に、図９のキャッシュコントローラは、タグメモリ２２が読み出される時と、書き込まれる時に、４ビットの有効データビット全てVB0-3を保持部５０の４つのフリップフロップFF0-FF3が保持する。そして、アドレス変化検出回路７０が内部アドレスIA[31:4]の変化を検出しない場合は、保持された有効データビットVB0-3のうち、アクセスアドレスIA[3:2]に従って選択された現在の有効データビットVNowに従って、ヒット判定が行われ、第２のヒット信号Thit2が生成される。
【００６１】
図３，４の実施の形態例では、４ワードデータへのアクセスが繰り返されているか否かを、アドレス変化検出回路７０が直前と現在の内部アドレスIA[31:4]を比較することにより検出する。そして、アクセス対象アドレスが直前と同じ４ワードデータのいずれかに対応する場合、つまり、同一のタグメモリ内アドレス情報により管理される範囲内であれば、タグメモリへの読み出しを禁止する。４ワードデータを一括して内部データメモリに転送または転出する場合は、その判定信号TRCancelにより、強制的にヒット状態と判定される。また、４ワードデータを１ワードデータずつ内部データメモリに転送または転出する場合は、有効データビットVBに従ってヒット判定が行われる。
【００６２】
いずれの場合も、最初に４ワードデータへのアクセスが行われた時に、タグメモリへの読み出し動作が実行されるだけであり、その後に同じ４ワードデータへのアクセスが行われる場合は、タグメモリの読み出しは繰り返さない。
【００６３】
通常、メインメモリ１０に保持されているプログラムを実行する場合は、インテジャーユニットIUは、メインメモリ１０にアドレスをインクリメントしながらアクセスする。従って、４ワードデータずつタグメモリ内アドレス情報が管理する場合は、４アクセスに１回だけタグメモリが読み出され、ヒット判定が行われ、４アクセスに３回はタグメモリの読み出し動作が禁止される。また、プログラムのアドレスがジャンプしたことにより、別の４ワードデータにアクセスが要求された時は、タグメモリが読み出されヒット判定が行われる。
【００６４】
更に、キャッシュシステムでは、高速動作の為に、インテジャーユニットIUからアクセス要求があると、タグメモリ２２と共に内部のデータメモリ３０も同時にアクセスされる。その場合、本実施の形態例によりタグメモリ２２を読み出すことなくヒット判定が行われると、ヒット判定が短時間に完了する。従って、キャッシュミスと判定された場合に、データメモリへのセンスアンプイネーブル信号Senを非活性にすることで、その後のデータメモリ３０の読み出し動作を中断させることができ、消費電力を節約することができる。
【００６５】
本実施の形態例では、４ワードデータ単位でタグメモリ内アドレス情報が管理したが、本発明はそれに限定されず、８ワードデータ単位または１６ワードデータ単位で管理されても良い。また、タグメモリに記録される上位アドレスのビット数も適宜変更することができる。
以上、本実施の形態例は次の付記の通りまとめられる。
（付記１）キャッシュシステムにおいて、
外部メモリの一部のデータが保持されるデータメモリと、
当該データメモリに保持されるデータのアドレス情報と当該アドレス情報が有効か否かを示す有効データビットとを保持し、前記アドレス情報は、連続するアドレスの複数データを共通に管理するタグメモリと、
アクセス対象アドレスが直前のアクセス対象アドレスと同一のタグメモリ内アドレス情報で管理されるデータに対応する第１の場合は、前記タグメモリへの読み出しを禁止し、前記アクセス対象アドレスが直前のアクセス対象アドレスと異なるタグメモリ内アドレス情報で管理されるデータに対応する第２の場合は、前記タグメモリへの読み出しを許可し、キャッシュヒット判定を行うキャッシュコントローラとを有することを特徴とするキャッシュシステム。
（付記２）付記１において、
前記有効データビットが前記複数データに共通に１ビット設けられ、前記キャッシュコントローラは、前記第２の場合に、キャッシュヒット判定でキャッシュミスと判定した時に、前記外部メモリのアクセス対象の前記複数データを一括して前記データメモリに転送し、前記第１の場合に、前記アドレス情報にかかわらずキャッシュヒットと判定して、前記データメモリのアクセス対象アドレスのデータにアクセスすることを特徴とするキャッシュシステム。
（付記３）付記１において、
前記有効データビットが前記複数データに対応して複数ビット設けられ、前記キャッシュコントローラは、前記第２の場合に、キャッシュヒット判定でキャッシュミスと判定した時に、前記外部メモリからアクセス対象の前記複数データの一部を前記データメモリに転送し、対応する有効データビットを更新し、前記第１の場合に、前記有効データビットに従ってキャッシュヒット判定することを特徴とするキャッシュシステム。
（付記４）付記３において、
前記キャッシュコントローラは、前記第１の場合に、キャッシュヒットと判定されたら前記データメモリのアクセス対象アドレスのデータをアクセスし、キャッシュミスと判定されたら前記外部メモリからアクセス対象のデータを前記データメモリに転送し、対応する有効データビットを更新することを特徴とするキャッシュシステム。
（付記５）付記４において、
前記キャッシュコントローラは、前記第１の場合に、キャッシュミスと判定されたら、前記タグメモリのアドレス情報を更新することなく、前記対応する有効データビットを更新することを特徴とするキャッシュシステム。
（付記６）付記４において、
前記キャッシュコントローラは、前記第２の場合に、前記タグメモリの有効データビットを読み出して保持し、その後の第１の場合に、当該保持した有効データビットに従ってキャッシュヒット判定を行うことを特徴とするキャッシュシステム。
（付記７）付記１乃至６のいずれかにおいて、
前記キャッシュコントローラは、キャッシュミスと判定されたら、前記データメモリへの読み出し動作を中断することを特徴とするキャッシュシステム。
（付記８）付記１において、
前記キャッシュコントローラは、アクセス対象アドレスが直前のアクセス対象アドレスからインクリメントされ、且つ当該アクセス対象アドレスが前記複数データの先頭アドレスでない場合に、前記第１の場合と判断し、前記アクセス対象アドレスが直前のアクセス対象アドレスからインクリメントされないか、または当該アクセス対象アドレスが前記複数データの先頭アドレスである場合に、前記第２の場合と判断することを特徴とするキャッシュシステム。
（付記９）付記１において、
前記キャッシュコントローラは、アクセス対象アドレスと直前のアクセス対象アドレスとが、同じ前記複数データのいずれかに対応する場合は、前記第１の場合と判断し、異なる前記複数データのいずれかに対応する場合は、前記第２の場合と判断することを特徴とするキャッシュシステム。
（付記１０）付記９において、
前記キャッシュコントローラは、前記アクセス対象アドレスと直前のアクセス対象アドレスとの上位ビット同士を比較し、一致する時に前記第１の場合と判断し、不一致の時に前記第２の場合と判断することを特徴とするキャッシュシステム。
（付記１１）付記１乃至３において、
前記タグメモリは、ワード線とビット線とその交差位置のメモリセルとビット線を増幅するセンスアンプとを有し、前記ワード線はワード線イネーブル信号に従って駆動され、前記センスアンプはセンスアンプイネーブル信号に従って駆動され、
前記キャッシュコントローラは、前記第１の場合に、前記ワード線イネーブル信号とセンスアンプイネーブル信号を不活性状態にすることを特徴とするキャッシュシステム。
（付記１２）付記１１において、
前記キャッシュコントローラは、キャッシュミスした時に、前記タグメモリのセンスアンプイネーブル信号を不活性状態にすることを特徴とするキャッシュシステム。
（付記１３）付記１１において、
前記キャッシュコントローラは、キャッシュミスした時に、前記タグメモリへの不活性状態のセンスアンプイネーブル信号を、前記データメモリにも供給して、当該データメモリの読み出し動作を中断することを特徴とするキャッシュシステム。
【００６６】
以上、本発明の保護範囲は、上記の実施の形態例に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００６７】
【発明の効果】
以上、本発明によれば、タグメモリの各アドレス情報が、アドレスが連続する複数のデータを共通に管理することを利用して、アクセス対象アドレスが直前のアクセス対象アドレスと同じ複数データに対応しているときに、タグメモリへの読み出し動作を行わないで、無駄な電力が消費されるのを防止する。
【図面の簡単な説明】
【図１】本実施の形態例におけるシステムブロック図である。
【図２】図１のキャッシュシステム内の構成を示す図である。
【図３】第１の実施の形態例におけるキャッシュコントローラを示す図である。
【図４】タグメモリ２２の例を示す図である。
【図５】第２の実施の形態例におけるキャッシュコントローラを示す図である。
【図６】第２の実施の形態例におけるタイミングチャート図である。
【図７】第３の実施の形態例におけるキャッシュコントローラを示す図である。
【図８】アドレス変化検出回路７０の構成図である。
【図９】第４の実施の形態例におけるキャッシュコントローラを示す図である。
【符号の説明】
IU        インテジャーユニット
CACHE    キャッシュシステム
BIU        バスインターフェースユニット
IA        内部アドレス
１０      外部メインメモリ
２０      キャッシュコントローラ
２２      タグメモリ
３０      データメモリ
４０      判定回路（第１の場合、第２の場合判定）
７０      アドレス変化検出回路（第１の場合、第２の場合判定）
ADD-TAG  アドレス情報
VB        有効データビット
Wen        ワード線イネーブル信号
Sen        センスアンプイネーブル信号
【図１】
0004073157.tif 000002
【図２】
0004073157.tif 000003
【図３】
0004073157.tif 000004
【図４】
0004073157.tif 000005
【図５】
0004073157.tif 000006
【図６】
0004073157.tif 000007
【図７】
0004073157.tif 000008
【図８】
0004073157.tif 000009
【図９】
0004073157.tif 000010