(57)【要約】【課題】キャッシュメモリ内蔵のＣＰＵを有する集積回路装置において、機能を低下させることなくキャッシュメモリの消費電流を減らすこと。【解決手段】本集積回路装置１０は、ＣＰＵ２０とキャッシュメモリ３０とキャッシュインターフェース回路４０と、ＣＰＵの要求データ幅よりも大きいバス幅を持つキャッシュデータバスとを含み、前記キャッシュインターフェース回路４０は、要求アドレスに基づきＣＰＵの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出し、読み出したデータをＣＰＵの要求データ幅単位で取り出し可能に保持し、ＣＰＵの要求アドレスのデータが前記データ保持回路に保持されている場合には、データ保持回路に保持されているデータをＣＰＵにむけ出力し、ＣＰＵの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する。【選択図】      図１
2006285760.tif 000002
【特許請求の範囲】
【請求項１】
集積回路装置であって、
ＣＰＵと、
キャッシュメモリと、
ＣＰＵの要求アドレスを受け、当該要求アドレスに基づき前記キャッシュメモリのデータを読み出して、ＣＰＵの要求アドレスに対応するデータをＣＰＵに向け出力するキャッシュインターフェース回路と、
前記キャッシュメモリとキャッシュインターフェース回路に接続されＣＰＵの要求データ幅よりも大きいバス幅を持つキャッシュデータバスと、
前記ＣＰＵとキャッシュインターフェース回路に接続されたＣＰＵデータバスを含み、
前記キャッシュインターフェース回路は、
ＣＰＵから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからＣＰＵの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出すデータ読み出し回路と、
読み出したデータをＣＰＵの要求データ幅単位で取り出し可能に保持するデータ保持回路と、
ＣＰＵの要求アドレスのデータが前記データ保持回路に保持されているか否か判断し、保持されている場合には、ＣＰＵの要求アドレスに応じてキャッシュメモリへのアクセスを行わず、データ保持回路に保持されているＣＰＵの要求アドレスに対応するデータを前記ＣＰＵデータバスを介してＣＰＵにむけ出力する出力回路と、
ＣＰＵの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する低パワー制御信号生成回路と、
を含むことを特徴とする集積回路装置。
【請求項２】
請求項１において、
前記キャッシュメモリは、
チップセレクト端子から前記低パワー制御信号を入力し、
当該前記低パワー制御信号に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する低パワー制御回路を含むことを特徴とする集積回路装置。
【請求項３】
請求項１において、
前記低パワー制御信号に基づき前記キャッシュメモリに供給するクロックを制御するクロック制御回路を含み、
前記キャッシュメモリは、
クロック制御端子からクロック制御回路によって制御されたクロック信号を入力するように構成されることを特徴とする集積回路装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記キャッシュデータバスのバス幅は、ＣＰＵの要求データ幅の２のｎ乗倍であることを特徴とする集積回路装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記データ保持回路は、
読み出したデータのうち先読み部分のみをＣＰＵの要求データ幅単位で取り出し可能に保持することを特徴とする集積回路装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記判断回路は、
ＣＰＵの要求アドレスのうちデータ保持回路に保持されているデータのアドレスに共通する上位ビット分のアドレスを保持するアドレス保持回路を含み、
前記アドレス保持回路に保持されているアドレスとＣＰＵの要求アドレスの対応ビット部分が一致した否か判断し、判断結果に基づきＣＰＵの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする集積回路装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記ＣＰＵは、
プログラムカウンタのインクリメント信号を出力し、
前記キャッシュインターフェース回路の判断回路は、
前記インクリメント信号に基づき、ＣＰＵの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする集積回路装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記キャッシュメモリは命令キャッシュであることを特徴とする集積回路装置。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記キャッシュメモリは、
データＲＡＭに対するリード処理を行うデータリード部と、キャッシュミスが発生したときのリフィル処理を行うリフィル部とを含み、
前記キャッシュメモリがリフィル状態にある場合には、データリード部を低パワーに制御する回路を含むことを特徴とする集積回路装置。
【請求項１０】
請求項１乃至９のいずれかに記載の集積回路装置を含むことを特徴とするマイクロコンピュータ。
【請求項１１】
請求項１０に記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【０００２】
キャッシュメモリ内蔵のＣＰＵやマイクロコンピュータではプログラム、データ等でキャッシュへのアクセスが多発する。キャッシュは多数のデータ幅の広いＳＲＡＭからなりチップの消費電流におけるキャッシュの消費電流の割合は大きい。
【０００３】
一般に３２bitＣＰＵに８ＫＢクラスのキャッシュメモリが付く場合、命令長が３２bit、データ長が３２bitに合わせ、３２bitのデータを１クロックに１回、絶え間なくリード／ライトするように設計される。
【０００４】
例えば０．１８umプロセスのある３２bitのＲＩＳＣ  ＣＰＵでは、ＣＰＵ部で０．２ｍＡ／ＭＨｚの消費電流、キャッシュ部では０．５ｍＡ／ＭＨｚの消費電流が流れ、キャッシュ部の消費電力が７０％という大きな割合を占めている。
【特許文献１】特開平２００４−２８７７６１号
【特許文献２】特開平２００３−２５６０６８号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は以上のような問題点に鑑みてなされたものであり、キャッシュメモリ内蔵のＣＰＵを有する集積回路装置において、機能を低下させることなくキャッシュメモリの消費電流を減らすことを目的とする。
【課題を解決するための手段】
【０００６】
（１）本発明は、
集積回路装置であって、
ＣＰＵと、
キャッシュメモリと、
ＣＰＵの要求アドレスを受け、当該要求アドレスに基づき前記キャッシュメモリのデータを読み出して、ＣＰＵの要求アドレスに対応するデータをＣＰＵに向け出力するキャッシュインターフェース回路と、
前記キャッシュメモリとキャッシュインターフェース回路に接続されＣＰＵの要求データ幅よりも大きいバス幅を持つキャッシュデータバスと、
前記ＣＰＵとキャッシュインターフェース回路に接続されたＣＰＵデータバスを含み、
前記キャッシュインターフェース回路は、
ＣＰＵから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからＣＰＵの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出すデータ読み出し回路と、
読み出したデータをＣＰＵの要求データ幅単位で取り出し可能に保持するデータ保持回路と、
ＣＰＵの要求アドレスのデータが前記データ保持回路に保持されているか否か判断し、保持されている場合には、ＣＰＵの要求アドレスに応じてキャッシュメモリへのアクセスを行わず、データ保持回路に保持されているＣＰＵの要求アドレスに対応するデータを前記ＣＰＵデータバスを介してＣＰＵにむけ出力する出力回路と、
ＣＰＵの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する低パワー制御信号生成回路と、
を含むことを特徴とする。
【０００７】
キャッシュメモリとは集積回路装置内に内蔵されているキャッシュメモリであり、ＳＲＡＭ、ＲＯＭ、フラッシュキャッシュメモリ、ＤＲＡＭでもよい。
【０００８】
キャッシュデータバスのバス幅はキャッシュのデータＲＡＭのサイズ以下にする。
【０００９】
ＣＰＵデータバスは、ＣＰＵの要求データ幅と同じバス幅を持つようにしてもよい。
【００１０】
ＣＰＵから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからキャッシュデータバスのバス幅分のデータを読み出す際には、ＣＰＵから受け取った要求アドレスに基づき実際の読み出しアドレスを生成してキャッシュメモリにアクセスする。このとき例えばキャッシュデータバスのバス幅がＣＰＵの要求バス幅の２のｎ乗倍である場合には、ＣＰＵの要求アドレス下位ｎビットを除いて読み出しアドレスを生成するようにしてもよい。
【００１１】
ＣＰＵの要求データ幅単位で取り出し可能に保持するデータ保持回路とは、例えばＣＰＵの要求データ幅のデータを格納可能なフィリップフロップを必要個数分（｜（キャッシュデータバスのデータ幅／ＣＰＵの要求データ幅）＋１｜）設けることにより実現することができる。
【００１２】
前記データ保持回路は、例えばＣＰＵの要求データ幅のデータを格納可能なフィリップフロップを必要個数分だけ設け、読み出したデータを一旦すべて上記フィリップフロップに格納するようにしてもよい。
【００１３】
また読み出したデータのうち先読み部分のデータのみに対応したフィリップフロップを設け先読み部分のデータのみフィリップフロップに格納するようにしてもよい。先読み部分とは、ＣＰＵデータバスから読み込んだデータのうちＣＰＵの要求データ幅以外のデータ部分である。この場合読み出したデータのうち、ＣＰＵの要求アドレスに対応する部分のデータは、そのままＣＰＵデータバスに出力する。
【００１４】
キャッシュインターフェース回路はキャッシュメモリからキャッシュヒットかミスかを通知するキャッシュヒット信号を受け取りキャッシュミスである場合には、データ保持回路にはデータを保持しないようにする。
【００１５】
ＣＰＵの要求アドレスのデータが前記データ保持回路に保持されていない場合には、ＣＰＵの要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからＣＰＵの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出す処理を行う。
【００１６】
キャッシュメモリを低パワーにするとは、キャッシュメモリ内の消費電流値を小さくすることである。
【００１７】
集積回路装置は、低パワー制御信号に基づきはキャッシュメモリのクロックをストップ又は低パワーにする回路を含むが、この回路は専用の回路を設けてもよいし、例えばキャッシュメモリに装備されている汎用の機能を用いて低パワー制御信号に基づきはキャッシュメモリのクロックをストップ又は低パワーにする処理を行う構成でもよい。
【００１８】
本発明によれば、キャッシュメモリのバス幅（キャッシュデータバスのバス幅）をＣＰＵの要求データ幅よりも大きくとり、キャッシュメモリから読み出した余分なデータは先読みデータとして保持し、ＣＰＵの次の要求アドレスにマッチした場合には、保持されたデータをＣＰＵに渡す。従ってＣＰＵの次の要求アドレスのデータが保持されている場合（連続したアドレスのデータをＣＰＵが要求する場合）にはキャッシュメモリ荷タイするアクセスを省略することができる。そしてその間（ＣＰＵの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクル）はキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力するので、キャッシュメモリを低パワーの状態にすることができる。
【００１９】
このように本発明によればキャッシュメモリアクセスの頻度を下げることができ、非アクセス中は明示的に低パワーにする処理（キャッシュメモリへのクロックの供給を停止する処理又はキャッシュメモリ内の消費電流を減らす処理）を加えるので、集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置（ＩＣ）を作成することができる。
【００２０】
（２）本発明の集積回路装置は、
前記キャッシュメモリが、
チップセレクト端子から前記低パワー制御信号を入力し、
当該前記低パワー制御信号に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する低パワー制御回路を含むことを特徴とする。
【００２１】
キャッシュメモリのチップセレクト端子には、低パワー制御信号を接続する。
【００２２】
本発明によればチップセレクト信号に基づき、キャッシュメモリ内部を低パワーに制御する機能を有するキャッシュメモリを有する集積回路装置においても、集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置（ＩＣ）を作成することができる。
【００２３】
（３）本発明の集積回路装置は、
前記低パワー制御信号に基づき前記キャッシュメモリに供給するクロックを制御するクロック制御回路を含み、
前記キャッシュメモリは、
クロック制御端子からクロック制御回路によって制御されたクロック信号を入力するように構成されることを特徴とする。
【００２４】
本発明によればキャッシュメモリ自体がキャッシュメモリ内部を低パワーに制御する機能を有しないキャッシュメモリを有する集積回路装置においても、キャッシュメモリに供給するクロックを制御することで集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置（ＩＣ）を作成することができる。
【００２５】
（４）本発明の集積回路装置は、
前記キャッシュデータバスのバス幅は、ＣＰＵの要求データ幅の２のｎ乗倍であることを特徴とする。
【００２６】
（５）本発明の集積回路装置は、
前記データ保持回路は、
読み出したデータのうち先読み部分のみをＣＰＵの要求データ幅単位で取り出し可能に保持することを特徴とする。
【００２７】
キャッシュヒットした場合だけ保持するようにしてもよい。
【００２８】
例えば読み出したデータのうち先読み部分のデータのみに対応したフィリップフロップを設け先読み部分のデータのみフィリップフロップに格納するようにしてもよい。先読み部分とは、ＣＰＵデータバスから読み込んだデータのうちＣＰＵの要求データ幅以外のデータ部分である。この場合読み出したデータのうち、ＣＰＵの要求アドレスに対応する部分のデータは、そのままＣＰＵデータバスに出力する。
【００２９】
本発明によれば先読み部分以外のデータ保持回路を設けなくても良いので、データ保持回路の回路規模の増大を防止することができる。
【００３０】
（６）本発明の集積回路装置は、
前記判断回路は、
ＣＰＵの要求アドレスのうちデータ保持回路に保持されているデータのアドレスに共通する上位ビット分のアドレスを保持するアドレス保持回路を含み、
前記アドレス保持回路に保持されているアドレスとＣＰＵの要求アドレスの対応ビット部分が一致した否か判断し、判断結果に基づきＣＰＵの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする。
【００３１】
キャッシュヒットした場合だけ保持するようにしてもよい。
【００３２】
本発明によればキャッシュデータバスのバス幅がＣＰＵの要求データ幅の２のｎ乗倍である場合ｎビット分の下位ビットを保持しないでよいので回路規模を節約することができる。
【００３３】
（７）本発明の集積回路装置は、
前記ＣＰＵは、
プログラムカウンタのインクリメント信号を出力し、
前記キャッシュインターフェース回路の判断回路は、
前記インクリメント信号に基づき、ＣＰＵの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする。
【００３４】
プログラムカウンタは、分岐やジャンプがないと命令コード長分順次インクリメントされる。従ってインクリメント信号が順次インクリメントされていることを示している場合には、ＣＰＵは連続したアドレスのデータを要求しているので、ＣＰＵの要求アドレスのデータがデータ保持回路に保持されていると判断することができる。
【００３５】
（８）本発明の集積回路装置は、
前記キャッシュメモリは命令キャッシュであることを特徴とする。
【００３６】
（９）本発明の集積回路装置は、
前記キャッシュメモリが、
データＲＡＭに対するリード処理を行うデータリード部と、キャッシュミスが発生したときのリフィル処理を行うリフィル部とを含み、
前記キャッシュメモリがリフィル状態にある場合には、データリード部を低パワーに制御する回路を含むことを特徴とする。
【００３７】
データリード部を低パワーに制御する回路とは例えばデータリード部に供給するクロックを制御する回路等である。
【００３８】
たとえば低パワー制御信号に基づきリフィル部に供給するクロックを制御し、
前記低パワー制御信号及びリフィル信号に基づきデータリード部に供給するクロックを制御するようにしてもよい。
【００３９】
（１０）本発明は、
上記のいずれかに記載の集積回路装置を含むことを特徴とするマイクロコンピュータである。
【００４０】
（１１）本発明は、
上記に記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【００４１】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００４２】
なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００４３】
１．  第１の実施の形態
図１は、第１の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【００４４】
本実施の形態の集積回路装置１０は、ＣＰＵ（広義には、処理回路）２０、キャッシュメモリ３０と、キャッシュインターフェース回路４０、キャッシュデータバス７０、ＣＰＵデータバス６０、アドレスバス２４とを含む。
【００４５】
ＣＰＵ２０は、キャッシュインターフェース回路４０に対しチップセレクト信号２２、要求アドレス２４（ここではＡ２〜Ａ３１の３０ビット）を出力し、キャッシュインターフェース回路４０から要求アドレス２４に対応したデータ（ここではＤ０〜Ｄ３１の３２ビット）６０とヒット／ミス信号１２２を受け取る。
【００４６】
チップセレクト信号２２はＬｏｗアクティブとなる信号である。
【００４７】
キャッシュインターフェース回路４０は、ＣＰＵ２０の要求アドレス２４に対応したデータ６０とキャッシュヒット／ミス信号１２２を１クロックのサイクルで返すように構成されている。なおキャッシュミスが発生した場合には、ＣＰＵの要求アドレスのデータは帰ってなこないので、ＣＰＵはキャッシュヒットとなるまで同じ要求アドレスを出し続ける事となる。
【００４８】
ＣＰＵは、例えばキャッシュメモリ３０に格納されている命令コードをキャッシュインターフェース回路４０を介して読み出して読み出した命令を実行する処理等を行う。
【００４９】
キャッシュメモリ３０は、例えばスタティックＲＡＭ（Random Access Memory）等で構成され、ダイレクトマップ方式(Direct Mapped)、セットアソシアティブ方式(Set Associative)、フルアソシアティブ方式(Filly Associative)でもよいが、ここではダイレクトマップ方式(Direct Mapped)の１ライン６４bitの命令キャッシュである場合を例にとり説明する。
【００５０】
ダイレクトマップ方式(Direct Mapped)は１組のタグにより構成(連想度１)されるデータ格納構造を有しており、アドレスにより一意に配置が決まり、同一エントリに異なるフレームアドレスが転送されると必ずラインの入れ替えが発生する。ラインの入替え(リフィル)は該当エントリの全ラインにデータが格納されてなお同一エントリ新規フレームアドレスが入力されてキャッシュミスヒットした場合に発生する。その場合どのラインを掃出して新規アドレスと入替えるかのアルゴリズムとしてはラウンドロビン(Round Robin)、LRU(Least Recently Used)、ランダム(Random)等の方式があるが、いずれの方式でもよい。
【００５１】
キャッシュインターフェース回路４０は、ＣＰＵ２０のチップセレクト信号２２及び要求アドレス２４を受け、当該要求アドレス２４に基づき、キャッシュメモリに読み出しアドレス９０を出力し、前記キャッシュメモリ３０のデータ７０を読み出して、読み出したデータに基づきＣＰＵ２０の要求アドレスのデータ６０をＣＰＵ２０に向け出力する処理を行う。
【００５２】
キャッシュメモリ３０からキャッシュヒット信号１２０を入力しＣＰＵに向けヒット／ミス信号１２２を出力する。
【００５３】
キャッシュデータバス７０は、キャッシュメモリ３０とキャッシュインターフェース回路４０に接続されＣＰＵ２０の要求データ幅よりも大きく、キャッシュのデータＲＡＭのサイズ以下のバス幅を持つ。ここではＣＰＵ２０の要求データ幅である３２bitの２倍のデータ幅である６４bitのデータ幅を有する場合について説明する。
【００５４】
ＣＰＵデータバス６０は、ＣＰＵ２０とキャッシュインターフェース回路４０に接続されＣＰＵ２０の要求データ幅のバス幅（ここでは３２bit）を持つ。なおＣＰＵ１０は３２ビット幅のデータを扱うが１６ビットの命令コードを処理するよう構成されている。
【００５５】
アドレスバス２４は、ＣＰＵ２０とキャッシュインターフェース回路４０に接続されＣＰＵ２０の要求アドレス幅のバス幅（ここでは３２bit）を持つ。
【００５６】
キャッシュのデータＲＡＭの参照はＡ２〜Ａ３１の３０bitで足りるので、上位３０bitで処理するよう構成されている。
【００５７】
キャッシュインターフェース回路４０は、ＣＰＵ２０から受け取った要求アドレス２４に基づき読み出しアドレス（要求アドレスＡ３〜Ａ３１）を生成し、前記キャッシュデータバス７０を介してキャッシュメモリ３０からキャッシュデータバス７０のバス幅分のデータ（６４bit分のデータ）を読み出すデータ読み出し回路と、読み出した（余分な先読み）データ７０をＣＰＵの要求データ幅単位で取り出し可能に保持するデータ保持回路４２と、ＣＰＵの要求アドレス２４のデータが前記データ保持回路４２に保持されているか否か判断する判断回路（比較器４７）と、保持されている場合には、データ保持回路４２に保持されているＣＰＵの要求アドレスに対応するデータを前記２のバス６０を介してＣＰＵ２０にむけ出力する出力回路と、ＣＰＵ２０にデータ保持回路４２に保持された先読みデータを渡しており、キャッシュメモリ３０にアクセスする必要の無い期間はキャッシュメモリ３０のクロックをストップ又は低パワーにするための低パワー制御信号５４を生成して出力する低パワー制御信号生成回路とを含む。
【００５８】
なお集積回路装置１０は、これ以外にもＢＣＵ（バスコントロールユニット）、ＭＭＵ（Memory Management Unit）、ＤＭＡＣ（Direct Memory Access Controller）、ＬＣＤ（Liquid Crystal Display）ドライバ或いはＳＩＯ（Serial Input Output）等の各種周辺回路を含むことができる。
【００５９】
本実施の形態では、ＣＰＵの要求データ幅（ここでは３２bit）単位で取り出し可能に保持するために３２bitのデータが保持可能なフィリップフロップＦＦをＣＰＵデータバスの３２bit分のデータに接続している。例えば読み出したデータ１（Ｄ０からＤ３１の３２bit）、データ２（Ｄ３２からＤ６３の３２bit）のそれぞれに３２bitのデータが保持可能なフィリップフロップＦＦを接続してもよい。また例えば図１の４２にしめすように、読み出したデータ（Ｄ０〜Ｄ６１）のうち先読み部分（Ｄ３２〜Ｄ６１）のみをＣＰＵの要求データ幅単位で取り出し可能に保持するようにしてもよい。読み出したデータ１（Ｄ０からＤ３１の３２bit）の部分は読み出してそのままＣＰＵデータバスに出力するようにしてもよい。このように、キャッシュデータバス７０の最下位の要求幅分（Ｄ０〜Ｄ３１）については保持しないようにするとキャッシュインターフェース回路４０の回路規模の増大を防止することができる。
【００６０】
図２は本実施の形態の判断回路の一例について説明するための図である。
【００６１】
判断回路５０は、図２に示すようにＣＰＵ２０からのチップセレクト信号２２（Ｌｏｗアクティブ）と比較器４７が出力する比較結果信号（１で一致、０で不一致）４８とＣＰＵの要求アドレスのＡ２とキャッシュメモリ３０のキャッシュヒット信号１２０を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号（低パワー制御信号）５４、選択信号４５、アドレス／データ保持信号５２、ＣＰＵに入力されるヒット／ミス信号１２２を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【００６２】
判断回路は、例えばアンド回路８１、ＯＲ回路８２を含み、アンド回路８１の入力を、Ａ２と比較結果信号４８に接続し、アンド回路８１の出力とチップセレクト信号２２をＯＲ回路８２の入力に接続し、ＯＲ回路８２出力を低パワー制御信号５４としてもよい。
【００６３】
アンド回路８１の出力はＡ２が１（奇数番地）で比較結果信号が１（一致）の時（このときはＣＰＵの要求アドレスに対応したデータがデータ保持回路に保持されている）１となる。この場合にはＯＲ回路８２の出力は、チップセレクト信号２２の値にかかわらず１となりＣＰＵの出力したチップセレクト信号２２をマスクすることができる。このようにＣＰＵの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号２２をマスクして、キャッシュメモリを低パワー化することができる。
【００６４】
また判断回路５０は反転バッファ（インバータとバッファ）８３とアンド回路８４を含む。反転バッファ８３はＡ２を入力しその反転値を出力し、アンド回路８４は、前記反転値とキャッシュヒット信号１２０を入力して、アドレス／データ保持信号５２として出力する。
【００６５】
Ａ２が０の場合（ＣＰＵの要求アドレスが偶数アドレスの場合）でヒット信号が１の場合アドレス／データ保持信号５２は１となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持される。またＡ２が１の場合（ＣＰＵの要求アドレスが奇数アドレスの場合）やヒット信号が０の場合（キャッシュミスの場合）にはアドレス／データ保持信号５２は０となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持されない。
【００６６】
また判断回路５０は反転バッファ（インバータとバッファ）８５を含む。反転バッファ８５はＡ２を入力して、その反転値を第１の選択信号４５−１として出力する。従ってＡ２＝０の時（すなわちＣＰＵの要求データが偶数番地のとき）第１の選択信号４５−１＝１（Ｈ）となり、選択回路４１はデータ７２（キャッシュデータバスのＤ０〜Ｄ３１）を選択してＣＰＵデータバスに出力する。
【００６７】
また判断回路５０は反転バッファ（インバータとバッファ）８６とアンド回路８７を含む。反転バッファ８６は比較結果信号４８を入力して、その反転値を出力する。ＡＮＤ回路８７は反転値とＡ２を入力し、出力値が第２の選択信号４５−２となる。従ってＡ２＝１（すなわちＣＰＵの要求データが奇数番地のとき）で比較結果が不一致の時、第２の選択信号４５−２＝１（Ｈ）となり、選択回路４１はデータ７４（キャッシュデータバスのＤ３２〜Ｄ６１）を選択してＣＰＵデータバスに出力する。
【００６８】
また判断回路５０はアンド回路８８を含む。ＡＮＤ回路８８はＡ２と比較結果信号４８を入力し、出力値が第３の選択信号４５−３となる。従ってＡ２＝１（すなわちＣＰＵの要求データが奇数番地のとき）で比較結果が一致の時、第３の選択信号４５−３＝１（Ｈ）となり、選択回路４１はデータ７６（データ保持回路に保持されたデータ）を選択してＣＰＵデータバスに出力する。
【００６９】
また判断回路５０はＯＲ回路８９を含む。ＯＲ回路８９は比較結果信号４８とキャッシュヒット信号１２０を入力し、ヒット／ミス信号１２２を出力する。
従ってＣＰＵの要求アドレスがキャッシュヒットした場合又はデータ保持回路に保持されていた場合に、ＣＰＵはヒットがあったことを示すヒット信号を受け取ることになる。
【００７０】
アドレス／データ保持信号５２はＣＰＵからの要求アドレス２４のＡ２が０でキャッシュヒットしている場合にアドレス／データ保持が行われるレベル（第１のレベル）に変化する。
【００７１】
アドレス保持回路４６は、２９bit分のアドレスを保持可能なフィリップフロップＦＦで、入力はＣＰＵ２０のアドレスバス２４の要求アドレスＡ３〜Ａ３１の信号線、アドレス／データ保持信号５２に接続され、その出力は比較器４７に接続されている。アドレス保持回路４６は、アドレス／データ保持信号５２が第１のレベルのタイミングでＣＰＵの要求アドレスＡ３〜Ａ３１を保持する。
【００７２】
図１に示すようにキャッシュメモリのデータ読み出しにかかるアドレス（Ａ２〜Ａ３１）のうちデータ保持回路４２に保持されているデータのアドレスに共通する上位ビット分（Ａ３〜Ａ３１の２９bit）のアドレスを保持するアドレス保持回路４６をもつようにしてもよい。
【００７３】
このようにアドレス保持回路４６はＣＰＵデータバス幅（ここでは３２bit×２の１乗）の２のべき（３２bit×２のｎ乗の場合はｎなので、ここでは１）に対応したビット数分の下位ビットを保持しないように構成することができる。
【００７４】
アドレス保持回路４６のＦＦにアドレスを保持するタイミングは、図１のようにキャッシュデータバスがＣＰＵデータバスの２倍のデータ幅を持つ場合には、要求アドレスが偶数アドレスのデータ（Ａ０＝０の場合）の場合である。なお２のｎ乗倍のデータ幅をもつ場合には、要求アドレスが２のｎ乗番目の場合である。
【００７５】
データ保持回路４２は、３２bit分のデータを保持可能なフィリップフロップＦＦで、入力はキャッシュデータバス７０のデータＤＡ３２〜Ｄ６１の信号線、アドレス／データ保持信号５２に接続され、その出力は選択回路４１に接続されている。データ保持回路４２は、アドレス／データ保持信号５２が第１のレベルのタイミングでキャッシュデータバス７０のデータＤＡ３２〜Ｄ６１を保持する。
【００７６】
比較器４７は、アドレス保持回路４６に保持されているアドレスとＣＰＵの要求アドレス２４の対応ビット分（Ａ３〜Ａ３１の２９bit）を入力し、一致した否か判断して比較結果信号４８を判断回路５０に向け出力する。比較器４７の比較結果に基づき、ＣＰＵの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することができる。
【００７７】
選択回路（ＭＵＸ）４１は、キャッシュデータバス７０のＤ０〜Ｄ３１のデータ７２、キャッシュデータバス７０のＤ３２〜Ｄ７１のデータ７４、データ保持回路４２の出力データ７６を入力し、判断回路５０が出力する選択信号４５に基づきデータ７２、７４、７６のいずれかのデータを選択して、ＣＰＵデータバス６０に出力する。
【００７８】
ここで要求アドレスのＡ２＝０ならデータ７２が選択出力され、要求アドレスのＡ２＝１で、ＣＰＵの要求アドレスのＡ３〜Ａ３１がアドレス保持回路４６のＦＦに保持されているアドレスと不一致（比較器４７の比較結果が不一致を示している場合）ならデータ７４が選択出力され、要求アドレスのＡ２＝１で、ＣＰＵの要求アドレスのＡ３〜Ａ３１がアドレス保持回路４６のＦＦに保持されているアドレスとが一致（比較器４７の比較結果が一致を示している場合）ならデータ７６が選択出力されるように、選択信号４５で選択回路（ＭＵＸ）４１を制御する。
【００７９】
図３、図４はキャッシュインターフェース回路の処理について説明するためのフローチャート図である。
【００８０】
ＣＰＵからチップセレクトＯＮ及び要求アドレスを受けると以下の処理を行う（ステップＳ１０）。
【００８１】
ＣＰＵの要求アドレス２４のＡ２＝０でキャッシュヒットの場合は（ステップＳ２０）、要求アドレスＡ３〜Ａ３１をアドレス保持回路４６に保持し（ステップＳ３０）、キャッシュデータバス７０を介してキャッシュメモリ３０から要求データの２倍のデータ（Ｄ０〜Ｄ６１）を読み出し（ステップＳ４０）、読み出したデータＤ０〜Ｄ６１のうちＣＰＵの要求アドレスのデータＤ０〜Ｄ３１を選択してＣＰＵデータバスに出力し（ステップＳ５０）、先読みデータＤ３２〜Ｄ６１をデータ保持回路４２に保持する（ステップＳ６０）。
【００８２】
またＣＰＵの要求アドレス２４のＡ２＝１の場合は（ステップＳ７０）、要求アドレスＡ１〜Ａ１５と、アドレス保持回路のアドレスが一致するかどうか比較器で検出する（ステップＳ８０）。一致する場合には（ステップＳ９０）、データ保持回路４２のＦＦに保持されたデータを出力する（ステップＳ１００）。
【００８３】
また不一致の場合には、ＣＰＵ２０の要求アドレスＡ３〜Ａ３１をアドレス保持回路４６に保持し（ステップＳ１１０）、キャッシュデータバス７０を介してキャッシュメモリ３０から要求データの２倍のデータ（Ｄ０〜Ｄ６１）を読み出し（ステップＳ１２０）、読み出したデータＤ０〜Ｄ６１のうちＣＰＵの要求アドレスのデータＤ３２〜Ｄ６１を選択してＣＰＵデータバスに出力する（ステップＳ１３０）。
【００８４】
判断回路５０は、ＣＰＵ２０からのチップセレクト信号２２と比較器４７が出力する比較結果信号４８とＣＰＵの要求アドレスの最下位bitＡ２を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号（低パワー制御信号）５２、選択信号４５、アドレス／データ保持信号５２を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。アドレス／データ保持信号５２はＣＰＵからの要求アドレス２４のＡ２が’０’の場合にアドレス／データ保持が行われるレベル（第１のレベル）に変化する。
【００８５】
図５は、本実施の形態においてキャッシュヒットしている場合のタイミングチャート図である。
【００８６】
１２はクロックである。
【００８７】
２００はＣＰＵとキャッシュインターフェース間でやり取りされる各種信号である。
２２はＣＰＵがキャッシュインターフェースに出力するチップセレクト信号である。Ｌｏｗアクティブの信号であり、ＣＰＵはＬレベルでキャッシュメモリの読み出しを指示する。２４はＣＰＵが出力する要求アドレスである。６０はＣＰＵがキャッシュインターフェースからＣＰＵデータバスで受け取る命令コード（３２bitで１命令分）である。ＣＰＵとキャッシュインターフェース間では要求アドレス２４に対応したデータ６０１クロック毎にやり取りされている。
【００８８】
２１０はキャッシュインターフェースとキャッシュメモリ間でやり取りされる各種信号である。５４はキャッシュインターフェースがキャッシュメモリに出力するチップセレクト信号（低パワー制御信号）である。Ｌレベルの時、キャッシュメモリの読み出しが行われＨレベルの時はキャッシュメモリの読み出しが行われない。従ってチップセレクト信号（低パワー制御信号）はＨレベルの時はキャッシュメモリが低パワー化するように制御される。９０はキャッシュインターフェースが出力する読み出しアドレスでり、本実施の形態ではＣＰＵの要求アドレスが偶数アドレスのときのみ出力される。従って内蔵ＲＡＭへの実際のアクセスはＣＰＵの要求アドレスの要求回数の半分となる。７０はキャッシュインターフェース回路がキャッシュメモリから第１のデータデータバスで受け取る命令コード（６４bitで連続するアドレスに格納された２命令）である。
【００８９】
本実施の形態では、キャッシュインターフェース回路はＣＰＵからの要求アドレスは偶数番地の時のキャッシュメモリをアクセスし、１回のアクセスで（偶数番地の読み出し）で連続する２命令を読み出し、先読みデータ（次の奇数番地のデータ）をデータ保持回路に保持している。そしてＣＰＵから次の要求アドレス（奇数番地の読みだし）を受けた時に、連続アドレスである場合にはデータ保持回路のデータをＣＰＵに渡す。従って２３０に示すようにＣＰＵの要求アドレスが連続アドレスである場合には、実際のアクセスはＣＰＵの要求回数の２回に１回でよい。このように連続したアドレスキャッシュヒットが続いている場合にはキャッシュアクセスは１／２となるため、キャッシュメモリの低パワー化を図ることができる。
【００９０】
しかし２４０のようにＣＰＵの要求アドレスが不連続な場合にはデータ保持回路に保持されたデータは使えないのアクセスが毎回になることもある。
【００９１】
図６はキャッシュメモリの低パワー化の一例について説明するための図である。
【００９２】
キャッシュメモリがチップセレクト信号に基づき低パワー制御を行う機能を有している場合には、キャッシュメモリのチップセレクト端子３８にＣＰＵの出力するチップセレクト信号２２ではなくキャッシュインターフェースの出力する低パワー制御信号５４を接続する。このようにするとキャッシュメモリ３０は、チップセレクト信号として低パワー制御信号５４を受け取り、内蔵する低パワー制御回路３２が前記低パワー制御信号５４に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する。
【００９３】
低パワー制御信号（チップセレクト信号）５４はＨで非動作（低電流状態になる使用）、Ｌで動作するように指示する信号である。
【００９４】
低パワー制御回路３２は、反転バッファ３２、ＦＦ３４、アンド回路３５を含む。反転バッファ３２は低パワー制御信号（チップセレクト信号）５４を入力し反転値をＦＦ３４似出力する。アンド回路３５はＦＦの出力とクロック１２を入力し供給クロック１４を出力する。従って非動作時（低パワー制御信号（チップセレクト信号）５４がＨの時）は供給クロック１４はＬレベルのままでクロックの供給が停止している状態となる。
【００９５】
なお図６は、キャッシュメモリ３０がチップセレクト端子３８から入力される信号に基づき内部のクロックの供給の有無を制御する構成を有している場合について説明したが、是に限られない。
【００９６】
例えばキャッシュメモリ自体にこのような機能がない場合には図７に示すように集積回路内に低パワー制御回路３２を設けるようにしてもよい。なお低パワー制御回路３２の構成は図６と同様なので説明を省略する。この場合にはキャッシュメモリのクロック端子３９には低パワー制御回路３２の出力クロック１４を接続する。
【００９７】
図８は、本実施の形態のキャッシュメモリに供給されるクロックに関するタイミングチャート図である。
【００９８】
１２は基準クロックであり、１４はキャッシュメモリに供給されるクロックである。
【００９９】
２５０に示すようにアドレスが連続している場合には、供給クロックがマスクされるため、キャッシュメモリの低パワー化を図ることができる。
【０１００】
２．  第２の実施の形態
図９は、第２の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【０１０１】
本実施の形態の集積回路装置１０’は、ＣＰＵ（広義には、処理回路）２０、キャッシュメモリ３０と、キャッシュインターフェース回路４０、キャッシュデータバス７０、ＣＰＵデータバス６０、アドレスバス２４とを含む。
【０１０２】
ＣＰＵ２０は、キャッシュインターフェース回路４０に対しチップセレクト信号２２、要求アドレス２４（ここではＡ２〜Ａ３１の３０ビット）を出力し、キャッシュインターフェース回路４０から要求アドレス２４に対応したデータ（ここではＤ０〜Ｄ３１の３２ビット）６０とヒット／ミス信号１２２を受け取る。
【０１０３】
チップセレクト信号２２はＬｏｗアクティブとなる信号である。
【０１０４】
キャッシュインターフェース回路４０は、ＣＰＵ２０の要求アドレス２４に対応したデータ６０を１クロックのサイクルで返すように構成されている。
【０１０５】
ＣＰＵは、例えばキャッシュメモリ３０に格納されている命令コードをキャッシュインターフェース回路４０を介して読み出して読み出した命令を実行する処理等を行う。
【０１０６】
キャッシュメモリ３０は、例えばＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＳＲＡＭ、フラッシュキャッシュメモリ、ＤＲＡＭでもよく、ＣＰＵの使用するデータや命令コードが格納されているとする。
【０１０７】
キャッシュインターフェース回路４０は、ＣＰＵ２０のチップセレクト信号２２及び要求アドレス２４を受け、当該要求アドレス２４に基づき、キャッシュメモリに読み出しアドレス９０を出力し、前記キャッシュメモリ３０のデータを読み出して、読み出したデータに基づきＣＰＵ２０の要求アドレスのデータ６０とキャッシュヒット／ミス信号１２２を１クロックのサイクルで返すように構成されている。なおキャッシュミスが発生した場合には、ＣＰＵの要求アドレスのデータは帰ってなこないので、ＣＰＵはキャッシュヒットとなるまで同じ要求アドレスを出し続ける事となる。
【０１０８】
キャッシュデータバス７０’は、キャッシュメモリ３０とキャッシュインターフェース回路４０に接続されＣＰＵ２０の要求データ幅よりも大きいバス幅を持つ。ここではＣＰＵ２０の要求データ幅である３２bitの４倍のデータ幅である１２８bitのデータ幅を有する。
【０１０９】
ＣＰＵデータバス６０は、ＣＰＵ２０とキャッシュインターフェース回路４０に接続されＣＰＵ２０の要求データ幅のバス幅（ここでは３２bit）を持つ。なおＣＰＵ１０は３２ビット幅のデータを扱うが１６ビットの命令コードを処理するよう構成されている。
【０１１０】
アドレスバス２４は、ＣＰＵ２０とキャッシュインターフェース回路４０に接続されＣＰＵ２０の要求アドレス幅のバス幅（ここでは３２bit）を持つ。
【０１１１】
キャッシュのデータＲＡＭの参照はＡ２〜Ａ３１の３０bitで足りるので、上位３０bitで処理するよう構成されている。
【０１１２】
キャッシュインターフェース回路４０は、ＣＰＵ２０から受け取った要求アドレス２４に基づき読み出しアドレス（要求アドレスＡ２〜Ａ３１）を生成し、前記キャッシュデータバス７０を介してキャッシュメモリ３０からキャッシュデータバス７０’のバス幅分のデータ（１２８bit分のデータ）を読み出すデータ読み出し回路と、読み出した（余分な先読み）データ７０をＣＰＵの要求データ幅単位で取り出し可能に保持するデータ保持回路４２−１〜４２−４と、ＣＰＵの要求アドレス２４のデータが前記データ保持回路４２−１〜４２−４に保持されているか否か判断する判断回路（比較器４７）と、保持されている場合には、データ保持回路４２−１〜４２−４に保持されているＣＰＵの要求アドレスに対応するデータを前記２のバス６０を介してＣＰＵ２０にむけ出力する出力回路と、ＣＰＵ２０にデータ保持回路４２−１〜４２−４に保持された先読みデータを渡しており、キャッシュメモリ３０にアクセスする必要の無い期間はキャッシュメモリ３０のクロックをストップ又は低パワーにするための低パワー制御信号５４を生成して出力する低パワー制御信号生成回路と、を含む。
【０１１３】
なお集積回路装置１０’は、これ以外にもＢＣＵ（バスコントロールユニット）、ＭＭＵ（Memory Management Unit）、ＤＭＡＣ（Direct Memory Access Controller）、ＬＣＤ（Liquid Crystal Display）ドライバ或いはＳＩＯ（Serial Input Output）等の各種周辺回路を含むことができる。
【０１１４】
本実施の形態では、ＣＰＵの要求データ幅（ここでは３２bit）単位で取り出し可能に保持するために３２bitのデータが保持可能なフィリップフロップＦＦをＣＰＵデータバスの３２bit分のデータに接続している。例えば読み出したデータ１（Ｄ０からＤ３１の３２bit）、データ２（Ｄ３２からＤ６３の３２bit）のデータ３（Ｄ６４からＤ９５の３２bit）、データ４（Ｄ９６からＤ１２７の３２bit）それぞれに３２bitのデータが保持可能なフィリップフロップＦＦを接続してもよい。
【０１１５】
判断回路５０’は、図１０に示すようにＣＰＵ２０からのチップセレクト信号２２（Ｌｏｗアクティブ）と比較器４７が出力する比較結果信号（１で一致、０で不一致）４８、キャッシュメモリからのキャッシュヒット信号１２０を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号（低パワー制御信号）５４、選択信号４５、アドレス／データ保持信号５２、ヒット／ミス信号１２２を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【０１１６】
判断回路５０’は、ＯＲ回路９１を含み、ＯＲ回路９１の入力を、チップセレクト信号２２と比較結果信号４８に接続し、出力を低パワー制御信号５４としてもよい。このようにするとアドレスが一致ならば、ＣＰＵが出力するチップセレクト信号をマスクした低パワー制御信号５４を生成することができる。
【０１１７】
従ってＣＰＵの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号２２をマスクして、キャッシュメモリを低パワー化することができる。
【０１１８】
判断回路５０’は、反転バッファ９２、アンド回路９３を含む。反転バッファ９２は比較結果信号４８の反転値を出力する。アンド回路９３は反転値とキャッシュヒット振動１２０を入力しアドレス／データ保持信号５２として出力するようにしてもよい。
【０１１９】
このようにするとＡ２が０の場合（ＣＰＵの要求アドレスが偶数アドレスの場合）でヒット信号が１の場合アドレス／データ保持信号５２は１となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持される。またＡ２が１の場合（ＣＰＵの要求アドレスが奇数アドレスの場合）やヒット信号が０の場合（キャッシュミスの場合）にはアドレス／データ保持信号５２は０となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持されない。
【０１２０】
また判断回路５０’比較結果信号４８をスルーして第１の選択信号４５’として出力する。第１の選択信号４５’は、第１の選択回路４９−１〜４９−４への選択信号として入力される。
【０１２１】
第１の選択回路４９−１は第１のデータバッファ４２−１とＣＰＵデータバスのデータＤ０〜Ｄ３１を入力し第１の選択信号４５’に基づきいずれかを選択して出力する。
【０１２２】
第１の選択回路４９−２は第１のデータバッファ４２−２とＣＰＵデータバスのデータＤ３２〜Ｄ６３を入力し第１の選択信号４５’に基づきいずれかを選択して出力する。
【０１２３】
第１の選択回路４９−３は第１のデータバッファ４２−３とＣＰＵデータバスのデータＤ６４〜Ｄ９５を入力し第１の選択信号４５’に基づきいずれかを選択して出力する。
【０１２４】
第１の選択回路４９−４は第１のデータバッファ４２−４とＣＰＵデータバスのデータＤ９６〜Ｄ１２７を入力し第１の選択信号４５’に基づきいずれかを選択して出力する。
【０１２５】
第１の選択回路４９−１〜４９−４は比較結果信号４８が不一致の場合、それぞれに接続されたデータ保持バッファ４２−１〜４２−４の値を出力し、一致する場合それそれに接続されたキャッシュデータバスからのデータを出力する。
【０１２６】
第２の選択回路４１’は、第１の選択回路４９−１〜４９−４の出力を入力とし、ＣＰＵの要求アドレスＡ３、Ａ４を選択信号としていずれかを選択して、ＣＰＵデータバス６０に出力する。
【０１２７】
Ａ３，Ａ４が’１１’の場合には第１の選択回路４９−４の出力を選択して出力し、Ａ３，Ａ４が’１０’の場合には第１の選択回路４９−３の出力を選択して出力し、Ａ３，Ａ４が’０１’の場合には第１の選択回路４９−２の出力を選択して出力し、Ａ３，Ａ４が’００’の場合には第１の選択回路４９−１の出力を選択して出力する。
【０１２８】
アドレス保持回路４６は、２８bit分のアドレスを保持可能なフィリップフロップＦＦで、入力はＣＰＵ２０のアドレスバス２４の要求アドレスＡ４〜Ａ３１の信号線、アドレス／データ保持信号５２に接続され、その出力は比較器４７に接続されている。アドレス保持回路４６は、アドレス／データ保持信号５２が第１のレベルのタイミングでＣＰＵの要求アドレスＡ４〜Ａ３１を保持する。
【０１２９】
図９に示すようにキャッシュメモリのデータ読み出しにかかるアドレス（Ａ２〜Ａ３１）のうちデータ保持回路４２に保持されているデータのアドレスに共通する上位ビット分（Ａ４〜Ａ３１の２８bit）のアドレスを保持するアドレス保持回路４６をもつようにしてもよい。
【０１３０】
このようにアドレス保持回路４６はキャッシュデータバスのバス幅（ここでは３２bit×２の２乗）の２のべき（３２bit×２のｎ乗の場合はｎなので、ここでは２）に対応したビット数分の下位ビットを保持しないように構成することができる。
【０１３１】
なお上記実施の形態では、前記キャッシュインターフェース回路が、ＣＰＵの要求アドレスに対応したデータを１クロックのサイクルで返すように構成されている場合を例にとり説明したが、これに限られない。例えばキャッシュインターフェース回路が、ＣＰＵの要求アドレスに対応したデータを２クロック以上のサイクルで返すように構成されている場合でもよい。
【０１３２】
３．  第３の実施の形態
図１１は、第３の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【０１３３】
第３の実施の形態は図１に示す第１の実施の形態の変形であり、図１と同じ符号のものについて同じ構成であり説明を省略する。
【０１３４】
第３の実施の形態では、ＣＰＵ２０は、プログラムカウンタのインクリメント信号１３０を出力し、前記キャッシュインターフェース回路の判断回路５０は、インクリメント信号１３０に基づき、ＣＰＵの要求アドレスのデータが前記データ保持回路４２に保持されているか否か判断する。
【０１３５】
インクリメント信号１３０は、０（Ｌ）、１（Ｈ）でインクリメントか否かを通知する信号であり、Ｈでインク（連続）状態、Ｌで非インク（非連続）状態であることを示す。ＣＰＵが連続して命令をよんでいる場合にはインク状態となる。
【０１３６】
第３の実施の形態ではインク信号１３０に基づき本実施の形態ではＣＰＵ２０の要求アドレスのデータが前記データ保持回路４２に保持されているか否か判断するので、図１に示すようなアドレス保持回路４６や比較回路４７を設ける必要がなくキャッシュインターフェース回路の回路規模を削減することができる。
【０１３７】
図１２は第３の実施の形態の判断回路の一例について説明するための図である。
【０１３８】
判断回路５０は、図１２に示すようにＣＰＵ２０からのチップセレクト信号２２（Ｌｏｗアクティブ）とＣＰＵの要求アドレスのＡ２とキャッシュメモリ３０のキャッシュヒット信号１２０、ＣＰＵからのインクリメント信号１３０を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号（低パワー制御信号）５４、選択信号４５、データ保持信号５２’、ＣＰＵに入力されるヒット／ミス信号１２２を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【０１３９】
判断回路５０は、例えばＡＮＤ回路１５１、ＯＲ回路１５２を含む。ＡＮＤ回路１５１の入力はＡ２とインクリメント信号１３０に接続される。ＡＮＤ回路１５１の出力とチップセレクト信号２２をＯＲ回路１５２の入力とし、ＯＲ回路１５２の出力を低パワー制御信号５４としてもよい。
【０１４０】
アンド回路１５１の出力はＡ２が１（奇数番地）でインクリメント信号が１（連続）の時（このときはＣＰＵの要求アドレスに対応したデータがデータ保持回路に保持されている）１となる。この場合にはＯＲ回路１５２の出力は、チップセレクト信号２２の値にかかわらず１となりＣＰＵの出力したチップセレクト信号２２をマスクすることができる。このようにＣＰＵの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号２２をマスクして、キャッシュメモリを低パワー化することができる。
【０１４１】
また判断回路５０は反転バッファ（インバータとバッファ）１５３とＡＮＤ回路１５４を含む。反転バッファ１５３はＡ２を入力しその反転値を出力し、アンド回路１５４は、前記反転値とキャッシュヒット信号１２０を入力して、データ保持信号５２’として出力する。
【０１４２】
Ａ２が０の場合（ＣＰＵの要求アドレスが偶数アドレスの場合）でヒット信号が１の場合データ保持信号５２’は１となり、データ保持回路にデータが保持される。またＡ２が１の場合（ＣＰＵの要求アドレスが奇数アドレスの場合）やヒット信号が０の場合（キャッシュミスの場合）にはデータ保持信号５２’は０となり、データ保持回路にデータが保持されない。
【０１４３】
また判断回路５０は反転バッファ（インバータとバッファ）１５５を含む。反転バッファ１５５はＡ２を入力して、その反転値を第１の選択信号４５−１として出力する。従ってＡ２＝０の時（すなわちＣＰＵの要求データが偶数番地のとき）第１の選択信号４５−１＝１（Ｈ）となり、選択回路４１はデータ７２（キャッシュデータバスのＤ０〜Ｄ３１）を選択してＣＰＵデータバスに出力する。
【０１４４】
また判断回路５０は反転バッファ（インバータとバッファ）１５６とアンド回路１５７を含む。反転バッファ１５６はインクリメント信号１３０を入力して、その反転値を出力する。ＡＮＤ回路１５７は反転値とＡ２を入力し、出力値が第２の選択信号４５−２となる。従ってＡ２＝１（すなわちＣＰＵの要求データが奇数番地のとき）でＣＰＵの要求アドレスが連続していない時、第２の選択信号４５−２＝１（Ｈ）となり、選択回路４１はデータ７４（キャッシュデータバスのＤ３２〜Ｄ６１）を選択してＣＰＵデータバスに出力する。
【０１４５】
また判断回路５０はアンド回路１５８を含む。ＡＮＤ回路１５８はＡ２とインクリメント信号１３０を入力し、出力値が第３の選択信号４５−３となる。従ってＡ２＝１（すなわちＣＰＵの要求データが奇数番地のとき）でＣＰＵの要求アドレスが連続している時、第３の選択信号４５−３＝１（Ｈ）となり、選択回路４１はデータ７６（データ保持回路に保持されたデータ）を選択してＣＰＵデータバスに出力する。
【０１４６】
また判断回路５０はＡＮＤ回路１５９とＯＲ回路１６０を含む。ＡＮＤ回路１５９の入力はＡ２とインクリメント信号１３０を入力し、その出力とキャッシュヒット信号１２０はＯＲ回路１６０に入力され、ヒット／ミス信号１２２を出力する。
【０１４７】
従ってＣＰＵの要求アドレスがキャッシュヒットした場合又はデータ保持回路に保持されていた場合に、ＣＰＵはヒットがあったことを示すヒット信号を受け取ることになる。
【０１４８】
図１３は第３の実施の形態のタイミングチャート図である。
【０１４９】
ＣＰＵは毎サイクル要求アドレスを出力しているので、ＣＰＵが出力するチップセレクト信号２２はＬレベル（セレクト状態）となっている。しかしキャッシュインターフェース回路がキャッシュのチップセレクト端子に出力する低パワー制御信号５４は、３４０、３５０に示すように、要求アドレスが連続した（インクリメント信号１３０が奇数番地である場合、インクリメント連続」に出力に）
３００に示すようにＣＰＵの要求アドレスが連続している場合にはインクリメント信号１３０はＨとなり、かつ奇数アドレスであればデータ保持部に保持されているので、キャッシュメモリをリードする必要が無いため、３１０に示すように低パワー制御信号がＨレベルに変化する。
【０１５０】
また３２０に示すようにＣＰＵの要求アドレスが連続していない場合には、インクリメント信号１３０がＬレベルに変化し（３３０参照）、低パワー制御信号はＨレベルとなり、キャッシュメモリからデータの読み出しが行われる（３５０参照）。
【０１５１】
４．第４の実施の形態
図１４（Ａ）（Ｂ）は、第４の実施の形態について説明するための図である。
【０１５２】
キャッシュメモリ３０は、図１４（Ａ）に示すようにデータＲＡＭ１８６に対するリード処理を行うデータリード部１８０と、キャッシュミスが発生したときのリフィル処理を行うリフィル部１９０とを含む。キャッシュメモリ３０がリフィル状態にある場合には、データリード部１８０を低パワーに制御する回路を含む。
【０１５３】
データリード部を低パワーに制御する回路とは例えば図１４（Ｂ）に示すようにデータリード部に供給するクロックを制御する回路等である。
【０１５４】
たとえば低パワー制御信号５４に基づきリフィル部に供給するクロック１９２を制御し、低パワー制御信号５４及びリフィル信号１７０を入力とするＯＲ回路１７２の出力１８２に基づきデータリード部に供給するクロックを制御するようにしてもよい。
【０１５５】
図１５は、第４の実施の形態のフローチャート図である。
【０１５６】
１２は基準クロックである。
【０１５７】
２２はチップセレクト信号であり２４はＣＰＵの要求アドレスであり、１２２はヒット／ミス信号である。これらの信号４１０は、ＣＰＵとキャッシュインターフェース回路の間でやり取りされる信号である。
【０１５８】
１８２は低パワー制御信号とリフィル信号に基づき生成されたデータリード部低パワー信号（図１４（Ａ）参照、データリード部のみ低パワーになるように制御する信号）信号であり、２４は読み出しアドレスである。これらの信号４２０はキャッシュインターフェースからキャッシュに向けて出力される信号である。
【０１５９】
１２０はキャッシュヒット信号であり、１７０はリフィル信号であり、７０はキャッシュデータバスから読み出されたデータである。これらの信号４３０はキャッシュからキャッシュインターフェースに向けて出力される信号である。
【０１６０】
第４の実施の形態では、４６０に示すように、キャッシュメモリがリフィル中はデータリード部低パワー信号１８２がＨレベル（低パワー状態）となり、データリード部は低パワーになるように制御される。
【０１６１】
５．マイクロコンピュータ
図１６は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【０１６２】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュキャッシュメモリ５２０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ兼バスＩ／Ｆ５７０、割り込みコントローラ５８０、シリアルインターフェース５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置５６０、プリスケーラ５７０及びそれらを接続する汎用バス６８０、専用バス７３０等、キャッシュインターフェース回路７４０、各種ピン６９０等を含む。
【０１６３】
キャッシュインターフェース回路７４０は、例えば図１や図９や図１１で説明した構成を有する。
【０１６４】
６．電子機器
図１７に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、キャッシュメモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【０１６５】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。キャッシュメモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。  音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【０１６６】
図１８（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【０１６７】
図１８（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【０１６８】
図１８（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【０１６９】
本実施の形態のマイクロコンピュータを図１８（Ａ）〜図１８（Ｃ）の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
【０１７０】
なお、本実施形態を利用できる電子機器としては、図８（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【０１７１】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【０１７２】
【図１】第１の実施の形態の集積回路装置の構成を示す回路図。
【図２】第１の実施の形態の判断回路の一例を示す図。
【図３】キャッシュインターフェース回路の処理のフローチャート図。
【図４】キャッシュインターフェース回路の処理のフローチャート図。
【図５】本実施の形態のタイミングチャート図。
【図６】キャッシュメモリの低パワー化の一例について説明するための図。
【図７】集積回路内に低パワー制御回路を設ける例の説明図。
【図８】キャッシュメモリに供給されるクロックに関するタイミングチャート図。
【図９】第２の実施の形態の集積回路装置の構成を示す回路図。
【図１０】第２の実施の形態の他の構成の判断回路の一例を示す図。
【図１１】第２の実施の形態の集積回路装置の構成を示す回路図。
【図１２】第３の実施の形態の他の構成の判断回路の一例を示す図。
【図１３】第３の実施の形態のタイミングチャート図
【図１４】第４の実施の形態の集積回路装置の構成を示す図。
【図１５】第４の実施の形態のタイミングチャート図
【図１６】本実施の形態のマイクロコンピュータのハードウエアブロック図。
【図１７】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図１８】図１８（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【０１７３】
１０  集積回路装置、２０  ＣＰＵ、２２  チップセレクト信号、２４  アドレスバス、３０  キャッシュメモリ、３２  低パワー制御回路、４０  インターフェース回路、４４  選択回路、４２  データ保持回路、４４  アドレス保持回路、４７  比較器、５０  判断回路、５４  低パワー制御信号、６０  ＣＰＵデータバス、７０  キャッシュデータバス、１２０  キャッシュヒット信号、１２２  ヒット／ミス信号、１３０  インクリメント信号、１７０  リフィル信号、１８２  データリード部低パワー制御信号、１８０  データリード部、１８６  データＲＡＭ、１９０  リフィル部、５１０  ＣＰＵ、５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  ＤＲＡＭコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  シリアルインターフェース、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、８００  電子機器、８５０  ＬＣＤ
【図１】
2006285760.tif 000003
【図２】
2006285760.tif 000004
【図３】
2006285760.tif 000005
【図４】
2006285760.tif 000006
【図５】
2006285760.tif 000007
【図６】
2006285760.tif 000008
【図７】
2006285760.tif 000009
【図８】
2006285760.tif 000010
【図９】
2006285760.tif 000011
【図１０】
2006285760.tif 000012
【図１１】
2006285760.tif 000013
【図１２】
2006285760.tif 000014
【図１３】
2006285760.tif 000015
【図１４】
2006285760.tif 000016
【図１５】
2006285760.tif 000017
【図１６】
2006285760.tif 000018
【図１７】
2006285760.tif 000019
【図１８】
2006285760.tif 000020