集積回路装置、マイクロコンピュータ及び電子機器
【課題】キャッシュメモリ内蔵のCPUを有する集積回路装置において、機能を低下させることなくキャッシュメモリの消費電流を減らすこと。
【解決手段】本集積回路装置10は、CPU20とキャッシュメモリ30とキャッシュインターフェース回路40と、CPUの要求データ幅よりも大きいバス幅を持つキャッシュデータバスとを含み、前記キャッシュインターフェース回路40は、要求アドレスに基づきCPUの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出し、読み出したデータをCPUの要求データ幅単位で取り出し可能に保持し、CPUの要求アドレスのデータが前記データ保持回路に保持されている場合には、データ保持回路に保持されているデータをCPUにむけ出力し、CPUの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する。
【解決手段】本集積回路装置10は、CPU20とキャッシュメモリ30とキャッシュインターフェース回路40と、CPUの要求データ幅よりも大きいバス幅を持つキャッシュデータバスとを含み、前記キャッシュインターフェース回路40は、要求アドレスに基づきCPUの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出し、読み出したデータをCPUの要求データ幅単位で取り出し可能に保持し、CPUの要求アドレスのデータが前記データ保持回路に保持されている場合には、データ保持回路に保持されているデータをCPUにむけ出力し、CPUの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路装置、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【0002】
キャッシュメモリ内蔵のCPUやマイクロコンピュータではプログラム、データ等でキャッシュへのアクセスが多発する。キャッシュは多数のデータ幅の広いSRAMからなりチップの消費電流におけるキャッシュの消費電流の割合は大きい。
【0003】
一般に32bitCPUに8KBクラスのキャッシュメモリが付く場合、命令長が32bit、データ長が32bitに合わせ、32bitのデータを1クロックに1回、絶え間なくリード/ライトするように設計される。
【0004】
例えば0.18umプロセスのある32bitのRISC CPUでは、CPU部で0.2mA/MHzの消費電流、キャッシュ部では0.5mA/MHzの消費電流が流れ、キャッシュ部の消費電力が70%という大きな割合を占めている。
【特許文献1】特開平2004−287761号
【特許文献2】特開平2003−256068号
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は以上のような問題点に鑑みてなされたものであり、キャッシュメモリ内蔵のCPUを有する集積回路装置において、機能を低下させることなくキャッシュメモリの消費電流を減らすことを目的とする。
【課題を解決するための手段】
【0006】
(1)本発明は、
集積回路装置であって、
CPUと、
キャッシュメモリと、
CPUの要求アドレスを受け、当該要求アドレスに基づき前記キャッシュメモリのデータを読み出して、CPUの要求アドレスに対応するデータをCPUに向け出力するキャッシュインターフェース回路と、
前記キャッシュメモリとキャッシュインターフェース回路に接続されCPUの要求データ幅よりも大きいバス幅を持つキャッシュデータバスと、
前記CPUとキャッシュインターフェース回路に接続されたCPUデータバスを含み、
前記キャッシュインターフェース回路は、
CPUから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからCPUの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出すデータ読み出し回路と、
読み出したデータをCPUの要求データ幅単位で取り出し可能に保持するデータ保持回路と、
CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断し、保持されている場合には、CPUの要求アドレスに応じてキャッシュメモリへのアクセスを行わず、データ保持回路に保持されているCPUの要求アドレスに対応するデータを前記CPUデータバスを介してCPUにむけ出力する出力回路と、
CPUの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する低パワー制御信号生成回路と、
を含むことを特徴とする。
【0007】
キャッシュメモリとは集積回路装置内に内蔵されているキャッシュメモリであり、SRAM、ROM、フラッシュキャッシュメモリ、DRAMでもよい。
【0008】
キャッシュデータバスのバス幅はキャッシュのデータRAMのサイズ以下にする。
【0009】
CPUデータバスは、CPUの要求データ幅と同じバス幅を持つようにしてもよい。
【0010】
CPUから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからキャッシュデータバスのバス幅分のデータを読み出す際には、CPUから受け取った要求アドレスに基づき実際の読み出しアドレスを生成してキャッシュメモリにアクセスする。このとき例えばキャッシュデータバスのバス幅がCPUの要求バス幅の2のn乗倍である場合には、CPUの要求アドレス下位nビットを除いて読み出しアドレスを生成するようにしてもよい。
【0011】
CPUの要求データ幅単位で取り出し可能に保持するデータ保持回路とは、例えばCPUの要求データ幅のデータを格納可能なフィリップフロップを必要個数分(|(キャッシュデータバスのデータ幅/CPUの要求データ幅)+1|)設けることにより実現することができる。
【0012】
前記データ保持回路は、例えばCPUの要求データ幅のデータを格納可能なフィリップフロップを必要個数分だけ設け、読み出したデータを一旦すべて上記フィリップフロップに格納するようにしてもよい。
【0013】
また読み出したデータのうち先読み部分のデータのみに対応したフィリップフロップを設け先読み部分のデータのみフィリップフロップに格納するようにしてもよい。先読み部分とは、CPUデータバスから読み込んだデータのうちCPUの要求データ幅以外のデータ部分である。この場合読み出したデータのうち、CPUの要求アドレスに対応する部分のデータは、そのままCPUデータバスに出力する。
【0014】
キャッシュインターフェース回路はキャッシュメモリからキャッシュヒットかミスかを通知するキャッシュヒット信号を受け取りキャッシュミスである場合には、データ保持回路にはデータを保持しないようにする。
【0015】
CPUの要求アドレスのデータが前記データ保持回路に保持されていない場合には、CPUの要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからCPUの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出す処理を行う。
【0016】
キャッシュメモリを低パワーにするとは、キャッシュメモリ内の消費電流値を小さくすることである。
【0017】
集積回路装置は、低パワー制御信号に基づきはキャッシュメモリのクロックをストップ又は低パワーにする回路を含むが、この回路は専用の回路を設けてもよいし、例えばキャッシュメモリに装備されている汎用の機能を用いて低パワー制御信号に基づきはキャッシュメモリのクロックをストップ又は低パワーにする処理を行う構成でもよい。
【0018】
本発明によれば、キャッシュメモリのバス幅(キャッシュデータバスのバス幅)をCPUの要求データ幅よりも大きくとり、キャッシュメモリから読み出した余分なデータは先読みデータとして保持し、CPUの次の要求アドレスにマッチした場合には、保持されたデータをCPUに渡す。従ってCPUの次の要求アドレスのデータが保持されている場合(連続したアドレスのデータをCPUが要求する場合)にはキャッシュメモリ荷タイするアクセスを省略することができる。そしてその間(CPUの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクル)はキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力するので、キャッシュメモリを低パワーの状態にすることができる。
【0019】
このように本発明によればキャッシュメモリアクセスの頻度を下げることができ、非アクセス中は明示的に低パワーにする処理(キャッシュメモリへのクロックの供給を停止する処理又はキャッシュメモリ内の消費電流を減らす処理)を加えるので、集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置(IC)を作成することができる。
【0020】
(2)本発明の集積回路装置は、
前記キャッシュメモリが、
チップセレクト端子から前記低パワー制御信号を入力し、
当該前記低パワー制御信号に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する低パワー制御回路を含むことを特徴とする。
【0021】
キャッシュメモリのチップセレクト端子には、低パワー制御信号を接続する。
【0022】
本発明によればチップセレクト信号に基づき、キャッシュメモリ内部を低パワーに制御する機能を有するキャッシュメモリを有する集積回路装置においても、集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置(IC)を作成することができる。
【0023】
(3)本発明の集積回路装置は、
前記低パワー制御信号に基づき前記キャッシュメモリに供給するクロックを制御するクロック制御回路を含み、
前記キャッシュメモリは、
クロック制御端子からクロック制御回路によって制御されたクロック信号を入力するように構成されることを特徴とする。
【0024】
本発明によればキャッシュメモリ自体がキャッシュメモリ内部を低パワーに制御する機能を有しないキャッシュメモリを有する集積回路装置においても、キャッシュメモリに供給するクロックを制御することで集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置(IC)を作成することができる。
【0025】
(4)本発明の集積回路装置は、
前記キャッシュデータバスのバス幅は、CPUの要求データ幅の2のn乗倍であることを特徴とする。
【0026】
(5)本発明の集積回路装置は、
前記データ保持回路は、
読み出したデータのうち先読み部分のみをCPUの要求データ幅単位で取り出し可能に保持することを特徴とする。
【0027】
キャッシュヒットした場合だけ保持するようにしてもよい。
【0028】
例えば読み出したデータのうち先読み部分のデータのみに対応したフィリップフロップを設け先読み部分のデータのみフィリップフロップに格納するようにしてもよい。先読み部分とは、CPUデータバスから読み込んだデータのうちCPUの要求データ幅以外のデータ部分である。この場合読み出したデータのうち、CPUの要求アドレスに対応する部分のデータは、そのままCPUデータバスに出力する。
【0029】
本発明によれば先読み部分以外のデータ保持回路を設けなくても良いので、データ保持回路の回路規模の増大を防止することができる。
【0030】
(6)本発明の集積回路装置は、
前記判断回路は、
CPUの要求アドレスのうちデータ保持回路に保持されているデータのアドレスに共通する上位ビット分のアドレスを保持するアドレス保持回路を含み、
前記アドレス保持回路に保持されているアドレスとCPUの要求アドレスの対応ビット部分が一致した否か判断し、判断結果に基づきCPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする。
【0031】
キャッシュヒットした場合だけ保持するようにしてもよい。
【0032】
本発明によればキャッシュデータバスのバス幅がCPUの要求データ幅の2のn乗倍である場合nビット分の下位ビットを保持しないでよいので回路規模を節約することができる。
【0033】
(7)本発明の集積回路装置は、
前記CPUは、
プログラムカウンタのインクリメント信号を出力し、
前記キャッシュインターフェース回路の判断回路は、
前記インクリメント信号に基づき、CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする。
【0034】
プログラムカウンタは、分岐やジャンプがないと命令コード長分順次インクリメントされる。従ってインクリメント信号が順次インクリメントされていることを示している場合には、CPUは連続したアドレスのデータを要求しているので、CPUの要求アドレスのデータがデータ保持回路に保持されていると判断することができる。
【0035】
(8)本発明の集積回路装置は、
前記キャッシュメモリは命令キャッシュであることを特徴とする。
【0036】
(9)本発明の集積回路装置は、
前記キャッシュメモリが、
データRAMに対するリード処理を行うデータリード部と、キャッシュミスが発生したときのリフィル処理を行うリフィル部とを含み、
前記キャッシュメモリがリフィル状態にある場合には、データリード部を低パワーに制御する回路を含むことを特徴とする。
【0037】
データリード部を低パワーに制御する回路とは例えばデータリード部に供給するクロックを制御する回路等である。
【0038】
たとえば低パワー制御信号に基づきリフィル部に供給するクロックを制御し、
前記低パワー制御信号及びリフィル信号に基づきデータリード部に供給するクロックを制御するようにしてもよい。
【0039】
(10)本発明は、
上記のいずれかに記載の集積回路装置を含むことを特徴とするマイクロコンピュータである。
【0040】
(11)本発明は、
上記に記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【0041】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【0042】
なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0043】
1. 第1の実施の形態
図1は、第1の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【0044】
本実施の形態の集積回路装置10は、CPU(広義には、処理回路)20、キャッシュメモリ30と、キャッシュインターフェース回路40、キャッシュデータバス70、CPUデータバス60、アドレスバス24とを含む。
【0045】
CPU20は、キャッシュインターフェース回路40に対しチップセレクト信号22、要求アドレス24(ここではA2〜A31の30ビット)を出力し、キャッシュインターフェース回路40から要求アドレス24に対応したデータ(ここではD0〜D31の32ビット)60とヒット/ミス信号122を受け取る。
【0046】
チップセレクト信号22はLowアクティブとなる信号である。
【0047】
キャッシュインターフェース回路40は、CPU20の要求アドレス24に対応したデータ60とキャッシュヒット/ミス信号122を1クロックのサイクルで返すように構成されている。なおキャッシュミスが発生した場合には、CPUの要求アドレスのデータは帰ってなこないので、CPUはキャッシュヒットとなるまで同じ要求アドレスを出し続ける事となる。
【0048】
CPUは、例えばキャッシュメモリ30に格納されている命令コードをキャッシュインターフェース回路40を介して読み出して読み出した命令を実行する処理等を行う。
【0049】
キャッシュメモリ30は、例えばスタティックRAM(Random Access Memory)等で構成され、ダイレクトマップ方式(Direct Mapped)、セットアソシアティブ方式(Set Associative)、フルアソシアティブ方式(Filly Associative)でもよいが、ここではダイレクトマップ方式(Direct Mapped)の1ライン64bitの命令キャッシュである場合を例にとり説明する。
【0050】
ダイレクトマップ方式(Direct Mapped)は1組のタグにより構成(連想度1)されるデータ格納構造を有しており、アドレスにより一意に配置が決まり、同一エントリに異なるフレームアドレスが転送されると必ずラインの入れ替えが発生する。ラインの入替え(リフィル)は該当エントリの全ラインにデータが格納されてなお同一エントリ新規フレームアドレスが入力されてキャッシュミスヒットした場合に発生する。その場合どのラインを掃出して新規アドレスと入替えるかのアルゴリズムとしてはラウンドロビン(Round Robin)、LRU(Least Recently Used)、ランダム(Random)等の方式があるが、いずれの方式でもよい。
【0051】
キャッシュインターフェース回路40は、CPU20のチップセレクト信号22及び要求アドレス24を受け、当該要求アドレス24に基づき、キャッシュメモリに読み出しアドレス90を出力し、前記キャッシュメモリ30のデータ70を読み出して、読み出したデータに基づきCPU20の要求アドレスのデータ60をCPU20に向け出力する処理を行う。
【0052】
キャッシュメモリ30からキャッシュヒット信号120を入力しCPUに向けヒット/ミス信号122を出力する。
【0053】
キャッシュデータバス70は、キャッシュメモリ30とキャッシュインターフェース回路40に接続されCPU20の要求データ幅よりも大きく、キャッシュのデータRAMのサイズ以下のバス幅を持つ。ここではCPU20の要求データ幅である32bitの2倍のデータ幅である64bitのデータ幅を有する場合について説明する。
【0054】
CPUデータバス60は、CPU20とキャッシュインターフェース回路40に接続されCPU20の要求データ幅のバス幅(ここでは32bit)を持つ。なおCPU10は32ビット幅のデータを扱うが16ビットの命令コードを処理するよう構成されている。
【0055】
アドレスバス24は、CPU20とキャッシュインターフェース回路40に接続されCPU20の要求アドレス幅のバス幅(ここでは32bit)を持つ。
【0056】
キャッシュのデータRAMの参照はA2〜A31の30bitで足りるので、上位30bitで処理するよう構成されている。
【0057】
キャッシュインターフェース回路40は、CPU20から受け取った要求アドレス24に基づき読み出しアドレス(要求アドレスA3〜A31)を生成し、前記キャッシュデータバス70を介してキャッシュメモリ30からキャッシュデータバス70のバス幅分のデータ(64bit分のデータ)を読み出すデータ読み出し回路と、読み出した(余分な先読み)データ70をCPUの要求データ幅単位で取り出し可能に保持するデータ保持回路42と、CPUの要求アドレス24のデータが前記データ保持回路42に保持されているか否か判断する判断回路(比較器47)と、保持されている場合には、データ保持回路42に保持されているCPUの要求アドレスに対応するデータを前記2のバス60を介してCPU20にむけ出力する出力回路と、CPU20にデータ保持回路42に保持された先読みデータを渡しており、キャッシュメモリ30にアクセスする必要の無い期間はキャッシュメモリ30のクロックをストップ又は低パワーにするための低パワー制御信号54を生成して出力する低パワー制御信号生成回路とを含む。
【0058】
なお集積回路装置10は、これ以外にもBCU(バスコントロールユニット)、MMU(Memory Management Unit)、DMAC(Direct Memory Access Controller)、LCD(Liquid Crystal Display)ドライバ或いはSIO(Serial Input Output)等の各種周辺回路を含むことができる。
【0059】
本実施の形態では、CPUの要求データ幅(ここでは32bit)単位で取り出し可能に保持するために32bitのデータが保持可能なフィリップフロップFFをCPUデータバスの32bit分のデータに接続している。例えば読み出したデータ1(D0からD31の32bit)、データ2(D32からD63の32bit)のそれぞれに32bitのデータが保持可能なフィリップフロップFFを接続してもよい。また例えば図1の42にしめすように、読み出したデータ(D0〜D61)のうち先読み部分(D32〜D61)のみをCPUの要求データ幅単位で取り出し可能に保持するようにしてもよい。読み出したデータ1(D0からD31の32bit)の部分は読み出してそのままCPUデータバスに出力するようにしてもよい。このように、キャッシュデータバス70の最下位の要求幅分(D0〜D31)については保持しないようにするとキャッシュインターフェース回路40の回路規模の増大を防止することができる。
【0060】
図2は本実施の形態の判断回路の一例について説明するための図である。
【0061】
判断回路50は、図2に示すようにCPU20からのチップセレクト信号22(Lowアクティブ)と比較器47が出力する比較結果信号(1で一致、0で不一致)48とCPUの要求アドレスのA2とキャッシュメモリ30のキャッシュヒット信号120を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号(低パワー制御信号)54、選択信号45、アドレス/データ保持信号52、CPUに入力されるヒット/ミス信号122を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【0062】
判断回路は、例えばアンド回路81、OR回路82を含み、アンド回路81の入力を、A2と比較結果信号48に接続し、アンド回路81の出力とチップセレクト信号22をOR回路82の入力に接続し、OR回路82出力を低パワー制御信号54としてもよい。
【0063】
アンド回路81の出力はA2が1(奇数番地)で比較結果信号が1(一致)の時(このときはCPUの要求アドレスに対応したデータがデータ保持回路に保持されている)1となる。この場合にはOR回路82の出力は、チップセレクト信号22の値にかかわらず1となりCPUの出力したチップセレクト信号22をマスクすることができる。このようにCPUの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号22をマスクして、キャッシュメモリを低パワー化することができる。
【0064】
また判断回路50は反転バッファ(インバータとバッファ)83とアンド回路84を含む。反転バッファ83はA2を入力しその反転値を出力し、アンド回路84は、前記反転値とキャッシュヒット信号120を入力して、アドレス/データ保持信号52として出力する。
【0065】
A2が0の場合(CPUの要求アドレスが偶数アドレスの場合)でヒット信号が1の場合アドレス/データ保持信号52は1となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持される。またA2が1の場合(CPUの要求アドレスが奇数アドレスの場合)やヒット信号が0の場合(キャッシュミスの場合)にはアドレス/データ保持信号52は0となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持されない。
【0066】
また判断回路50は反転バッファ(インバータとバッファ)85を含む。反転バッファ85はA2を入力して、その反転値を第1の選択信号45−1として出力する。従ってA2=0の時(すなわちCPUの要求データが偶数番地のとき)第1の選択信号45−1=1(H)となり、選択回路41はデータ72(キャッシュデータバスのD0〜D31)を選択してCPUデータバスに出力する。
【0067】
また判断回路50は反転バッファ(インバータとバッファ)86とアンド回路87を含む。反転バッファ86は比較結果信号48を入力して、その反転値を出力する。AND回路87は反転値とA2を入力し、出力値が第2の選択信号45−2となる。従ってA2=1(すなわちCPUの要求データが奇数番地のとき)で比較結果が不一致の時、第2の選択信号45−2=1(H)となり、選択回路41はデータ74(キャッシュデータバスのD32〜D61)を選択してCPUデータバスに出力する。
【0068】
また判断回路50はアンド回路88を含む。AND回路88はA2と比較結果信号48を入力し、出力値が第3の選択信号45−3となる。従ってA2=1(すなわちCPUの要求データが奇数番地のとき)で比較結果が一致の時、第3の選択信号45−3=1(H)となり、選択回路41はデータ76(データ保持回路に保持されたデータ)を選択してCPUデータバスに出力する。
【0069】
また判断回路50はOR回路89を含む。OR回路89は比較結果信号48とキャッシュヒット信号120を入力し、ヒット/ミス信号122を出力する。
従ってCPUの要求アドレスがキャッシュヒットした場合又はデータ保持回路に保持されていた場合に、CPUはヒットがあったことを示すヒット信号を受け取ることになる。
【0070】
アドレス/データ保持信号52はCPUからの要求アドレス24のA2が0でキャッシュヒットしている場合にアドレス/データ保持が行われるレベル(第1のレベル)に変化する。
【0071】
アドレス保持回路46は、29bit分のアドレスを保持可能なフィリップフロップFFで、入力はCPU20のアドレスバス24の要求アドレスA3〜A31の信号線、アドレス/データ保持信号52に接続され、その出力は比較器47に接続されている。アドレス保持回路46は、アドレス/データ保持信号52が第1のレベルのタイミングでCPUの要求アドレスA3〜A31を保持する。
【0072】
図1に示すようにキャッシュメモリのデータ読み出しにかかるアドレス(A2〜A31)のうちデータ保持回路42に保持されているデータのアドレスに共通する上位ビット分(A3〜A31の29bit)のアドレスを保持するアドレス保持回路46をもつようにしてもよい。
【0073】
このようにアドレス保持回路46はCPUデータバス幅(ここでは32bit×2の1乗)の2のべき(32bit×2のn乗の場合はnなので、ここでは1)に対応したビット数分の下位ビットを保持しないように構成することができる。
【0074】
アドレス保持回路46のFFにアドレスを保持するタイミングは、図1のようにキャッシュデータバスがCPUデータバスの2倍のデータ幅を持つ場合には、要求アドレスが偶数アドレスのデータ(A0=0の場合)の場合である。なお2のn乗倍のデータ幅をもつ場合には、要求アドレスが2のn乗番目の場合である。
【0075】
データ保持回路42は、32bit分のデータを保持可能なフィリップフロップFFで、入力はキャッシュデータバス70のデータDA32〜D61の信号線、アドレス/データ保持信号52に接続され、その出力は選択回路41に接続されている。データ保持回路42は、アドレス/データ保持信号52が第1のレベルのタイミングでキャッシュデータバス70のデータDA32〜D61を保持する。
【0076】
比較器47は、アドレス保持回路46に保持されているアドレスとCPUの要求アドレス24の対応ビット分(A3〜A31の29bit)を入力し、一致した否か判断して比較結果信号48を判断回路50に向け出力する。比較器47の比較結果に基づき、CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することができる。
【0077】
選択回路(MUX)41は、キャッシュデータバス70のD0〜D31のデータ72、キャッシュデータバス70のD32〜D71のデータ74、データ保持回路42の出力データ76を入力し、判断回路50が出力する選択信号45に基づきデータ72、74、76のいずれかのデータを選択して、CPUデータバス60に出力する。
【0078】
ここで要求アドレスのA2=0ならデータ72が選択出力され、要求アドレスのA2=1で、CPUの要求アドレスのA3〜A31がアドレス保持回路46のFFに保持されているアドレスと不一致(比較器47の比較結果が不一致を示している場合)ならデータ74が選択出力され、要求アドレスのA2=1で、CPUの要求アドレスのA3〜A31がアドレス保持回路46のFFに保持されているアドレスとが一致(比較器47の比較結果が一致を示している場合)ならデータ76が選択出力されるように、選択信号45で選択回路(MUX)41を制御する。
【0079】
図3、図4はキャッシュインターフェース回路の処理について説明するためのフローチャート図である。
【0080】
CPUからチップセレクトON及び要求アドレスを受けると以下の処理を行う(ステップS10)。
【0081】
CPUの要求アドレス24のA2=0でキャッシュヒットの場合は(ステップS20)、要求アドレスA3〜A31をアドレス保持回路46に保持し(ステップS30)、キャッシュデータバス70を介してキャッシュメモリ30から要求データの2倍のデータ(D0〜D61)を読み出し(ステップS40)、読み出したデータD0〜D61のうちCPUの要求アドレスのデータD0〜D31を選択してCPUデータバスに出力し(ステップS50)、先読みデータD32〜D61をデータ保持回路42に保持する(ステップS60)。
【0082】
またCPUの要求アドレス24のA2=1の場合は(ステップS70)、要求アドレスA1〜A15と、アドレス保持回路のアドレスが一致するかどうか比較器で検出する(ステップS80)。一致する場合には(ステップS90)、データ保持回路42のFFに保持されたデータを出力する(ステップS100)。
【0083】
また不一致の場合には、CPU20の要求アドレスA3〜A31をアドレス保持回路46に保持し(ステップS110)、キャッシュデータバス70を介してキャッシュメモリ30から要求データの2倍のデータ(D0〜D61)を読み出し(ステップS120)、読み出したデータD0〜D61のうちCPUの要求アドレスのデータD32〜D61を選択してCPUデータバスに出力する(ステップS130)。
【0084】
判断回路50は、CPU20からのチップセレクト信号22と比較器47が出力する比較結果信号48とCPUの要求アドレスの最下位bitA2を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号(低パワー制御信号)52、選択信号45、アドレス/データ保持信号52を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。アドレス/データ保持信号52はCPUからの要求アドレス24のA2が’0’の場合にアドレス/データ保持が行われるレベル(第1のレベル)に変化する。
【0085】
図5は、本実施の形態においてキャッシュヒットしている場合のタイミングチャート図である。
【0086】
12はクロックである。
【0087】
200はCPUとキャッシュインターフェース間でやり取りされる各種信号である。
22はCPUがキャッシュインターフェースに出力するチップセレクト信号である。Lowアクティブの信号であり、CPUはLレベルでキャッシュメモリの読み出しを指示する。24はCPUが出力する要求アドレスである。60はCPUがキャッシュインターフェースからCPUデータバスで受け取る命令コード(32bitで1命令分)である。CPUとキャッシュインターフェース間では要求アドレス24に対応したデータ601クロック毎にやり取りされている。
【0088】
210はキャッシュインターフェースとキャッシュメモリ間でやり取りされる各種信号である。54はキャッシュインターフェースがキャッシュメモリに出力するチップセレクト信号(低パワー制御信号)である。Lレベルの時、キャッシュメモリの読み出しが行われHレベルの時はキャッシュメモリの読み出しが行われない。従ってチップセレクト信号(低パワー制御信号)はHレベルの時はキャッシュメモリが低パワー化するように制御される。90はキャッシュインターフェースが出力する読み出しアドレスでり、本実施の形態ではCPUの要求アドレスが偶数アドレスのときのみ出力される。従って内蔵RAMへの実際のアクセスはCPUの要求アドレスの要求回数の半分となる。70はキャッシュインターフェース回路がキャッシュメモリから第1のデータデータバスで受け取る命令コード(64bitで連続するアドレスに格納された2命令)である。
【0089】
本実施の形態では、キャッシュインターフェース回路はCPUからの要求アドレスは偶数番地の時のキャッシュメモリをアクセスし、1回のアクセスで(偶数番地の読み出し)で連続する2命令を読み出し、先読みデータ(次の奇数番地のデータ)をデータ保持回路に保持している。そしてCPUから次の要求アドレス(奇数番地の読みだし)を受けた時に、連続アドレスである場合にはデータ保持回路のデータをCPUに渡す。従って230に示すようにCPUの要求アドレスが連続アドレスである場合には、実際のアクセスはCPUの要求回数の2回に1回でよい。このように連続したアドレスキャッシュヒットが続いている場合にはキャッシュアクセスは1/2となるため、キャッシュメモリの低パワー化を図ることができる。
【0090】
しかし240のようにCPUの要求アドレスが不連続な場合にはデータ保持回路に保持されたデータは使えないのアクセスが毎回になることもある。
【0091】
図6はキャッシュメモリの低パワー化の一例について説明するための図である。
【0092】
キャッシュメモリがチップセレクト信号に基づき低パワー制御を行う機能を有している場合には、キャッシュメモリのチップセレクト端子38にCPUの出力するチップセレクト信号22ではなくキャッシュインターフェースの出力する低パワー制御信号54を接続する。このようにするとキャッシュメモリ30は、チップセレクト信号として低パワー制御信号54を受け取り、内蔵する低パワー制御回路32が前記低パワー制御信号54に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する。
【0093】
低パワー制御信号(チップセレクト信号)54はHで非動作(低電流状態になる使用)、Lで動作するように指示する信号である。
【0094】
低パワー制御回路32は、反転バッファ32、FF34、アンド回路35を含む。反転バッファ32は低パワー制御信号(チップセレクト信号)54を入力し反転値をFF34似出力する。アンド回路35はFFの出力とクロック12を入力し供給クロック14を出力する。従って非動作時(低パワー制御信号(チップセレクト信号)54がHの時)は供給クロック14はLレベルのままでクロックの供給が停止している状態となる。
【0095】
なお図6は、キャッシュメモリ30がチップセレクト端子38から入力される信号に基づき内部のクロックの供給の有無を制御する構成を有している場合について説明したが、是に限られない。
【0096】
例えばキャッシュメモリ自体にこのような機能がない場合には図7に示すように集積回路内に低パワー制御回路32を設けるようにしてもよい。なお低パワー制御回路32の構成は図6と同様なので説明を省略する。この場合にはキャッシュメモリのクロック端子39には低パワー制御回路32の出力クロック14を接続する。
【0097】
図8は、本実施の形態のキャッシュメモリに供給されるクロックに関するタイミングチャート図である。
【0098】
12は基準クロックであり、14はキャッシュメモリに供給されるクロックである。
【0099】
250に示すようにアドレスが連続している場合には、供給クロックがマスクされるため、キャッシュメモリの低パワー化を図ることができる。
【0100】
2. 第2の実施の形態
図9は、第2の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【0101】
本実施の形態の集積回路装置10’は、CPU(広義には、処理回路)20、キャッシュメモリ30と、キャッシュインターフェース回路40、キャッシュデータバス70、CPUデータバス60、アドレスバス24とを含む。
【0102】
CPU20は、キャッシュインターフェース回路40に対しチップセレクト信号22、要求アドレス24(ここではA2〜A31の30ビット)を出力し、キャッシュインターフェース回路40から要求アドレス24に対応したデータ(ここではD0〜D31の32ビット)60とヒット/ミス信号122を受け取る。
【0103】
チップセレクト信号22はLowアクティブとなる信号である。
【0104】
キャッシュインターフェース回路40は、CPU20の要求アドレス24に対応したデータ60を1クロックのサイクルで返すように構成されている。
【0105】
CPUは、例えばキャッシュメモリ30に格納されている命令コードをキャッシュインターフェース回路40を介して読み出して読み出した命令を実行する処理等を行う。
【0106】
キャッシュメモリ30は、例えばROM(Read Only Memory)、RAM(Random Access Memory)、SRAM、フラッシュキャッシュメモリ、DRAMでもよく、CPUの使用するデータや命令コードが格納されているとする。
【0107】
キャッシュインターフェース回路40は、CPU20のチップセレクト信号22及び要求アドレス24を受け、当該要求アドレス24に基づき、キャッシュメモリに読み出しアドレス90を出力し、前記キャッシュメモリ30のデータを読み出して、読み出したデータに基づきCPU20の要求アドレスのデータ60とキャッシュヒット/ミス信号122を1クロックのサイクルで返すように構成されている。なおキャッシュミスが発生した場合には、CPUの要求アドレスのデータは帰ってなこないので、CPUはキャッシュヒットとなるまで同じ要求アドレスを出し続ける事となる。
【0108】
キャッシュデータバス70’は、キャッシュメモリ30とキャッシュインターフェース回路40に接続されCPU20の要求データ幅よりも大きいバス幅を持つ。ここではCPU20の要求データ幅である32bitの4倍のデータ幅である128bitのデータ幅を有する。
【0109】
CPUデータバス60は、CPU20とキャッシュインターフェース回路40に接続されCPU20の要求データ幅のバス幅(ここでは32bit)を持つ。なおCPU10は32ビット幅のデータを扱うが16ビットの命令コードを処理するよう構成されている。
【0110】
アドレスバス24は、CPU20とキャッシュインターフェース回路40に接続されCPU20の要求アドレス幅のバス幅(ここでは32bit)を持つ。
【0111】
キャッシュのデータRAMの参照はA2〜A31の30bitで足りるので、上位30bitで処理するよう構成されている。
【0112】
キャッシュインターフェース回路40は、CPU20から受け取った要求アドレス24に基づき読み出しアドレス(要求アドレスA2〜A31)を生成し、前記キャッシュデータバス70を介してキャッシュメモリ30からキャッシュデータバス70’のバス幅分のデータ(128bit分のデータ)を読み出すデータ読み出し回路と、読み出した(余分な先読み)データ70をCPUの要求データ幅単位で取り出し可能に保持するデータ保持回路42−1〜42−4と、CPUの要求アドレス24のデータが前記データ保持回路42−1〜42−4に保持されているか否か判断する判断回路(比較器47)と、保持されている場合には、データ保持回路42−1〜42−4に保持されているCPUの要求アドレスに対応するデータを前記2のバス60を介してCPU20にむけ出力する出力回路と、CPU20にデータ保持回路42−1〜42−4に保持された先読みデータを渡しており、キャッシュメモリ30にアクセスする必要の無い期間はキャッシュメモリ30のクロックをストップ又は低パワーにするための低パワー制御信号54を生成して出力する低パワー制御信号生成回路と、を含む。
【0113】
なお集積回路装置10’は、これ以外にもBCU(バスコントロールユニット)、MMU(Memory Management Unit)、DMAC(Direct Memory Access Controller)、LCD(Liquid Crystal Display)ドライバ或いはSIO(Serial Input Output)等の各種周辺回路を含むことができる。
【0114】
本実施の形態では、CPUの要求データ幅(ここでは32bit)単位で取り出し可能に保持するために32bitのデータが保持可能なフィリップフロップFFをCPUデータバスの32bit分のデータに接続している。例えば読み出したデータ1(D0からD31の32bit)、データ2(D32からD63の32bit)のデータ3(D64からD95の32bit)、データ4(D96からD127の32bit)それぞれに32bitのデータが保持可能なフィリップフロップFFを接続してもよい。
【0115】
判断回路50’は、図10に示すようにCPU20からのチップセレクト信号22(Lowアクティブ)と比較器47が出力する比較結果信号(1で一致、0で不一致)48、キャッシュメモリからのキャッシュヒット信号120を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号(低パワー制御信号)54、選択信号45、アドレス/データ保持信号52、ヒット/ミス信号122を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【0116】
判断回路50’は、OR回路91を含み、OR回路91の入力を、チップセレクト信号22と比較結果信号48に接続し、出力を低パワー制御信号54としてもよい。このようにするとアドレスが一致ならば、CPUが出力するチップセレクト信号をマスクした低パワー制御信号54を生成することができる。
【0117】
従ってCPUの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号22をマスクして、キャッシュメモリを低パワー化することができる。
【0118】
判断回路50’は、反転バッファ92、アンド回路93を含む。反転バッファ92は比較結果信号48の反転値を出力する。アンド回路93は反転値とキャッシュヒット振動120を入力しアドレス/データ保持信号52として出力するようにしてもよい。
【0119】
このようにするとA2が0の場合(CPUの要求アドレスが偶数アドレスの場合)でヒット信号が1の場合アドレス/データ保持信号52は1となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持される。またA2が1の場合(CPUの要求アドレスが奇数アドレスの場合)やヒット信号が0の場合(キャッシュミスの場合)にはアドレス/データ保持信号52は0となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持されない。
【0120】
また判断回路50’比較結果信号48をスルーして第1の選択信号45’として出力する。第1の選択信号45’は、第1の選択回路49−1〜49−4への選択信号として入力される。
【0121】
第1の選択回路49−1は第1のデータバッファ42−1とCPUデータバスのデータD0〜D31を入力し第1の選択信号45’に基づきいずれかを選択して出力する。
【0122】
第1の選択回路49−2は第1のデータバッファ42−2とCPUデータバスのデータD32〜D63を入力し第1の選択信号45’に基づきいずれかを選択して出力する。
【0123】
第1の選択回路49−3は第1のデータバッファ42−3とCPUデータバスのデータD64〜D95を入力し第1の選択信号45’に基づきいずれかを選択して出力する。
【0124】
第1の選択回路49−4は第1のデータバッファ42−4とCPUデータバスのデータD96〜D127を入力し第1の選択信号45’に基づきいずれかを選択して出力する。
【0125】
第1の選択回路49−1〜49−4は比較結果信号48が不一致の場合、それぞれに接続されたデータ保持バッファ42−1〜42−4の値を出力し、一致する場合それそれに接続されたキャッシュデータバスからのデータを出力する。
【0126】
第2の選択回路41’は、第1の選択回路49−1〜49−4の出力を入力とし、CPUの要求アドレスA3、A4を選択信号としていずれかを選択して、CPUデータバス60に出力する。
【0127】
A3,A4が’11’の場合には第1の選択回路49−4の出力を選択して出力し、A3,A4が’10’の場合には第1の選択回路49−3の出力を選択して出力し、A3,A4が’01’の場合には第1の選択回路49−2の出力を選択して出力し、A3,A4が’00’の場合には第1の選択回路49−1の出力を選択して出力する。
【0128】
アドレス保持回路46は、28bit分のアドレスを保持可能なフィリップフロップFFで、入力はCPU20のアドレスバス24の要求アドレスA4〜A31の信号線、アドレス/データ保持信号52に接続され、その出力は比較器47に接続されている。アドレス保持回路46は、アドレス/データ保持信号52が第1のレベルのタイミングでCPUの要求アドレスA4〜A31を保持する。
【0129】
図9に示すようにキャッシュメモリのデータ読み出しにかかるアドレス(A2〜A31)のうちデータ保持回路42に保持されているデータのアドレスに共通する上位ビット分(A4〜A31の28bit)のアドレスを保持するアドレス保持回路46をもつようにしてもよい。
【0130】
このようにアドレス保持回路46はキャッシュデータバスのバス幅(ここでは32bit×2の2乗)の2のべき(32bit×2のn乗の場合はnなので、ここでは2)に対応したビット数分の下位ビットを保持しないように構成することができる。
【0131】
なお上記実施の形態では、前記キャッシュインターフェース回路が、CPUの要求アドレスに対応したデータを1クロックのサイクルで返すように構成されている場合を例にとり説明したが、これに限られない。例えばキャッシュインターフェース回路が、CPUの要求アドレスに対応したデータを2クロック以上のサイクルで返すように構成されている場合でもよい。
【0132】
3. 第3の実施の形態
図11は、第3の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【0133】
第3の実施の形態は図1に示す第1の実施の形態の変形であり、図1と同じ符号のものについて同じ構成であり説明を省略する。
【0134】
第3の実施の形態では、CPU20は、プログラムカウンタのインクリメント信号130を出力し、前記キャッシュインターフェース回路の判断回路50は、インクリメント信号130に基づき、CPUの要求アドレスのデータが前記データ保持回路42に保持されているか否か判断する。
【0135】
インクリメント信号130は、0(L)、1(H)でインクリメントか否かを通知する信号であり、Hでインク(連続)状態、Lで非インク(非連続)状態であることを示す。CPUが連続して命令をよんでいる場合にはインク状態となる。
【0136】
第3の実施の形態ではインク信号130に基づき本実施の形態ではCPU20の要求アドレスのデータが前記データ保持回路42に保持されているか否か判断するので、図1に示すようなアドレス保持回路46や比較回路47を設ける必要がなくキャッシュインターフェース回路の回路規模を削減することができる。
【0137】
図12は第3の実施の形態の判断回路の一例について説明するための図である。
【0138】
判断回路50は、図12に示すようにCPU20からのチップセレクト信号22(Lowアクティブ)とCPUの要求アドレスのA2とキャッシュメモリ30のキャッシュヒット信号120、CPUからのインクリメント信号130を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号(低パワー制御信号)54、選択信号45、データ保持信号52’、CPUに入力されるヒット/ミス信号122を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【0139】
判断回路50は、例えばAND回路151、OR回路152を含む。AND回路151の入力はA2とインクリメント信号130に接続される。AND回路151の出力とチップセレクト信号22をOR回路152の入力とし、OR回路152の出力を低パワー制御信号54としてもよい。
【0140】
アンド回路151の出力はA2が1(奇数番地)でインクリメント信号が1(連続)の時(このときはCPUの要求アドレスに対応したデータがデータ保持回路に保持されている)1となる。この場合にはOR回路152の出力は、チップセレクト信号22の値にかかわらず1となりCPUの出力したチップセレクト信号22をマスクすることができる。このようにCPUの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号22をマスクして、キャッシュメモリを低パワー化することができる。
【0141】
また判断回路50は反転バッファ(インバータとバッファ)153とAND回路154を含む。反転バッファ153はA2を入力しその反転値を出力し、アンド回路154は、前記反転値とキャッシュヒット信号120を入力して、データ保持信号52’として出力する。
【0142】
A2が0の場合(CPUの要求アドレスが偶数アドレスの場合)でヒット信号が1の場合データ保持信号52’は1となり、データ保持回路にデータが保持される。またA2が1の場合(CPUの要求アドレスが奇数アドレスの場合)やヒット信号が0の場合(キャッシュミスの場合)にはデータ保持信号52’は0となり、データ保持回路にデータが保持されない。
【0143】
また判断回路50は反転バッファ(インバータとバッファ)155を含む。反転バッファ155はA2を入力して、その反転値を第1の選択信号45−1として出力する。従ってA2=0の時(すなわちCPUの要求データが偶数番地のとき)第1の選択信号45−1=1(H)となり、選択回路41はデータ72(キャッシュデータバスのD0〜D31)を選択してCPUデータバスに出力する。
【0144】
また判断回路50は反転バッファ(インバータとバッファ)156とアンド回路157を含む。反転バッファ156はインクリメント信号130を入力して、その反転値を出力する。AND回路157は反転値とA2を入力し、出力値が第2の選択信号45−2となる。従ってA2=1(すなわちCPUの要求データが奇数番地のとき)でCPUの要求アドレスが連続していない時、第2の選択信号45−2=1(H)となり、選択回路41はデータ74(キャッシュデータバスのD32〜D61)を選択してCPUデータバスに出力する。
【0145】
また判断回路50はアンド回路158を含む。AND回路158はA2とインクリメント信号130を入力し、出力値が第3の選択信号45−3となる。従ってA2=1(すなわちCPUの要求データが奇数番地のとき)でCPUの要求アドレスが連続している時、第3の選択信号45−3=1(H)となり、選択回路41はデータ76(データ保持回路に保持されたデータ)を選択してCPUデータバスに出力する。
【0146】
また判断回路50はAND回路159とOR回路160を含む。AND回路159の入力はA2とインクリメント信号130を入力し、その出力とキャッシュヒット信号120はOR回路160に入力され、ヒット/ミス信号122を出力する。
【0147】
従ってCPUの要求アドレスがキャッシュヒットした場合又はデータ保持回路に保持されていた場合に、CPUはヒットがあったことを示すヒット信号を受け取ることになる。
【0148】
図13は第3の実施の形態のタイミングチャート図である。
【0149】
CPUは毎サイクル要求アドレスを出力しているので、CPUが出力するチップセレクト信号22はLレベル(セレクト状態)となっている。しかしキャッシュインターフェース回路がキャッシュのチップセレクト端子に出力する低パワー制御信号54は、340、350に示すように、要求アドレスが連続した(インクリメント信号130が奇数番地である場合、インクリメント連続」に出力に)
300に示すようにCPUの要求アドレスが連続している場合にはインクリメント信号130はHとなり、かつ奇数アドレスであればデータ保持部に保持されているので、キャッシュメモリをリードする必要が無いため、310に示すように低パワー制御信号がHレベルに変化する。
【0150】
また320に示すようにCPUの要求アドレスが連続していない場合には、インクリメント信号130がLレベルに変化し(330参照)、低パワー制御信号はHレベルとなり、キャッシュメモリからデータの読み出しが行われる(350参照)。
【0151】
4.第4の実施の形態
図14(A)(B)は、第4の実施の形態について説明するための図である。
【0152】
キャッシュメモリ30は、図14(A)に示すようにデータRAM186に対するリード処理を行うデータリード部180と、キャッシュミスが発生したときのリフィル処理を行うリフィル部190とを含む。キャッシュメモリ30がリフィル状態にある場合には、データリード部180を低パワーに制御する回路を含む。
【0153】
データリード部を低パワーに制御する回路とは例えば図14(B)に示すようにデータリード部に供給するクロックを制御する回路等である。
【0154】
たとえば低パワー制御信号54に基づきリフィル部に供給するクロック192を制御し、低パワー制御信号54及びリフィル信号170を入力とするOR回路172の出力182に基づきデータリード部に供給するクロックを制御するようにしてもよい。
【0155】
図15は、第4の実施の形態のフローチャート図である。
【0156】
12は基準クロックである。
【0157】
22はチップセレクト信号であり24はCPUの要求アドレスであり、122はヒット/ミス信号である。これらの信号410は、CPUとキャッシュインターフェース回路の間でやり取りされる信号である。
【0158】
182は低パワー制御信号とリフィル信号に基づき生成されたデータリード部低パワー信号(図14(A)参照、データリード部のみ低パワーになるように制御する信号)信号であり、24は読み出しアドレスである。これらの信号420はキャッシュインターフェースからキャッシュに向けて出力される信号である。
【0159】
120はキャッシュヒット信号であり、170はリフィル信号であり、70はキャッシュデータバスから読み出されたデータである。これらの信号430はキャッシュからキャッシュインターフェースに向けて出力される信号である。
【0160】
第4の実施の形態では、460に示すように、キャッシュメモリがリフィル中はデータリード部低パワー信号182がHレベル(低パワー状態)となり、データリード部は低パワーになるように制御される。
【0161】
5.マイクロコンピュータ
図16は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【0162】
本マイクロコンピュータ700は、CPU510、キャッシュキャッシュメモリ520、LCDコントローラ530、リセット回路540、プログラマブルタイマ550、リアルタイムクロック(RTC)560、DRAMコントローラ兼バスI/F570、割り込みコントローラ580、シリアルインターフェース590、バスコントローラ600、A/D変換器610、D/A変換器620、入力ポート630、出力ポート640、I/Oポート650、クロック発生装置560、プリスケーラ570及びそれらを接続する汎用バス680、専用バス730等、キャッシュインターフェース回路740、各種ピン690等を含む。
【0163】
キャッシュインターフェース回路740は、例えば図1や図9や図11で説明した構成を有する。
【0164】
6.電子機器
図17に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器800は、マイクロコンピュータ(またはASIC)810、入力部820、キャッシュメモリ830、電源生成部840、LCD850、音出力部860を含む。
【0165】
ここで、入力部820は、種々のデータを入力するためのものである。マイクロコンピュータ810は、この入力部820により入力されたデータに基づいて種々の処理を行うことになる。キャッシュメモリ830は、マイクロコンピュータ810などの作業領域となるものである。電源生成部840は、電子機器800で使用される各種電源を生成するためのものである。LCD850は、電子機器が表示する各種の画像(文字、アイコン、グラフィック等)を出力するためのものである。 音出力部860は、電子機器800が出力する各種の音(音声、ゲーム音等)を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0166】
図18(A)に、電子機器の1つである携帯電話950の外観図の例を示す。この携帯電話950は、入力部として機能するダイヤルボタン952や、電話番号や名前やアイコンなどを表示するLCD954や、音出力部として機能し音声を出力するスピーカ956を備える。
【0167】
図18(B)に、電子機器の1つである携帯型ゲーム装置960の外観図の例を示す。この携帯型ゲーム装置960は、入力部として機能する操作ボタン962、十字キー964や、ゲーム画像を表示するLCD966や、音出力部として機能しゲーム音を出力するスピーカ968を備える。
【0168】
図18(C)に、電子機器の1つであるパーソナルコンピュータ970の外観図の例を示す。このパーソナルコンピュータ970は、入力部として機能するキーボード972や、文字、数字、グラフィックなどを表示するLCD974、音出力部976を備える。
【0169】
本実施の形態のマイクロコンピュータを図18(A)〜図18(C)の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
【0170】
なお、本実施形態を利用できる電子機器としては、図8(A)、(B)、(C)に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のLCDを使用する種々の電子機器を考えることができる。
【0171】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【0172】
【図1】第1の実施の形態の集積回路装置の構成を示す回路図。
【図2】第1の実施の形態の判断回路の一例を示す図。
【図3】キャッシュインターフェース回路の処理のフローチャート図。
【図4】キャッシュインターフェース回路の処理のフローチャート図。
【図5】本実施の形態のタイミングチャート図。
【図6】キャッシュメモリの低パワー化の一例について説明するための図。
【図7】集積回路内に低パワー制御回路を設ける例の説明図。
【図8】キャッシュメモリに供給されるクロックに関するタイミングチャート図。
【図9】第2の実施の形態の集積回路装置の構成を示す回路図。
【図10】第2の実施の形態の他の構成の判断回路の一例を示す図。
【図11】第2の実施の形態の集積回路装置の構成を示す回路図。
【図12】第3の実施の形態の他の構成の判断回路の一例を示す図。
【図13】第3の実施の形態のタイミングチャート図
【図14】第4の実施の形態の集積回路装置の構成を示す図。
【図15】第4の実施の形態のタイミングチャート図
【図16】本実施の形態のマイクロコンピュータのハードウエアブロック図。
【図17】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図18】図18(A)(B)(C)は、種々の電子機器の外観図の例である。
【符号の説明】
【0173】
10 集積回路装置、20 CPU、22 チップセレクト信号、24 アドレスバス、30 キャッシュメモリ、32 低パワー制御回路、40 インターフェース回路、44 選択回路、42 データ保持回路、44 アドレス保持回路、47 比較器、50 判断回路、54 低パワー制御信号、60 CPUデータバス、70 キャッシュデータバス、120 キャッシュヒット信号、122 ヒット/ミス信号、130 インクリメント信号、170 リフィル信号、182 データリード部低パワー制御信号、180 データリード部、186 データRAM、190 リフィル部、510 CPU、530 LCDコントローラ、540 リセット回路、550 プログラマブルタイマ、560 リアルタイムクロック(RTC)、570 DRAMコントローラ兼バスI/F、580 割り込みコントローラ、590 シリアルインターフェース、600 バスコントローラ、610 A/D変換器、620 D/A変換器、630 入力ポート、640 出力ポート、650 I/Oポート、660 クロック発生装置(PLL)、670 プリスケーラ、680 汎用バス、690 各種ピン、700 マイクロコンピュータ、710 ROM、720 RAM、730 MMU、800 電子機器、850 LCD
【技術分野】
【0001】
本発明は、集積回路装置、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【0002】
キャッシュメモリ内蔵のCPUやマイクロコンピュータではプログラム、データ等でキャッシュへのアクセスが多発する。キャッシュは多数のデータ幅の広いSRAMからなりチップの消費電流におけるキャッシュの消費電流の割合は大きい。
【0003】
一般に32bitCPUに8KBクラスのキャッシュメモリが付く場合、命令長が32bit、データ長が32bitに合わせ、32bitのデータを1クロックに1回、絶え間なくリード/ライトするように設計される。
【0004】
例えば0.18umプロセスのある32bitのRISC CPUでは、CPU部で0.2mA/MHzの消費電流、キャッシュ部では0.5mA/MHzの消費電流が流れ、キャッシュ部の消費電力が70%という大きな割合を占めている。
【特許文献1】特開平2004−287761号
【特許文献2】特開平2003−256068号
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は以上のような問題点に鑑みてなされたものであり、キャッシュメモリ内蔵のCPUを有する集積回路装置において、機能を低下させることなくキャッシュメモリの消費電流を減らすことを目的とする。
【課題を解決するための手段】
【0006】
(1)本発明は、
集積回路装置であって、
CPUと、
キャッシュメモリと、
CPUの要求アドレスを受け、当該要求アドレスに基づき前記キャッシュメモリのデータを読み出して、CPUの要求アドレスに対応するデータをCPUに向け出力するキャッシュインターフェース回路と、
前記キャッシュメモリとキャッシュインターフェース回路に接続されCPUの要求データ幅よりも大きいバス幅を持つキャッシュデータバスと、
前記CPUとキャッシュインターフェース回路に接続されたCPUデータバスを含み、
前記キャッシュインターフェース回路は、
CPUから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからCPUの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出すデータ読み出し回路と、
読み出したデータをCPUの要求データ幅単位で取り出し可能に保持するデータ保持回路と、
CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断し、保持されている場合には、CPUの要求アドレスに応じてキャッシュメモリへのアクセスを行わず、データ保持回路に保持されているCPUの要求アドレスに対応するデータを前記CPUデータバスを介してCPUにむけ出力する出力回路と、
CPUの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する低パワー制御信号生成回路と、
を含むことを特徴とする。
【0007】
キャッシュメモリとは集積回路装置内に内蔵されているキャッシュメモリであり、SRAM、ROM、フラッシュキャッシュメモリ、DRAMでもよい。
【0008】
キャッシュデータバスのバス幅はキャッシュのデータRAMのサイズ以下にする。
【0009】
CPUデータバスは、CPUの要求データ幅と同じバス幅を持つようにしてもよい。
【0010】
CPUから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからキャッシュデータバスのバス幅分のデータを読み出す際には、CPUから受け取った要求アドレスに基づき実際の読み出しアドレスを生成してキャッシュメモリにアクセスする。このとき例えばキャッシュデータバスのバス幅がCPUの要求バス幅の2のn乗倍である場合には、CPUの要求アドレス下位nビットを除いて読み出しアドレスを生成するようにしてもよい。
【0011】
CPUの要求データ幅単位で取り出し可能に保持するデータ保持回路とは、例えばCPUの要求データ幅のデータを格納可能なフィリップフロップを必要個数分(|(キャッシュデータバスのデータ幅/CPUの要求データ幅)+1|)設けることにより実現することができる。
【0012】
前記データ保持回路は、例えばCPUの要求データ幅のデータを格納可能なフィリップフロップを必要個数分だけ設け、読み出したデータを一旦すべて上記フィリップフロップに格納するようにしてもよい。
【0013】
また読み出したデータのうち先読み部分のデータのみに対応したフィリップフロップを設け先読み部分のデータのみフィリップフロップに格納するようにしてもよい。先読み部分とは、CPUデータバスから読み込んだデータのうちCPUの要求データ幅以外のデータ部分である。この場合読み出したデータのうち、CPUの要求アドレスに対応する部分のデータは、そのままCPUデータバスに出力する。
【0014】
キャッシュインターフェース回路はキャッシュメモリからキャッシュヒットかミスかを通知するキャッシュヒット信号を受け取りキャッシュミスである場合には、データ保持回路にはデータを保持しないようにする。
【0015】
CPUの要求アドレスのデータが前記データ保持回路に保持されていない場合には、CPUの要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからCPUの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出す処理を行う。
【0016】
キャッシュメモリを低パワーにするとは、キャッシュメモリ内の消費電流値を小さくすることである。
【0017】
集積回路装置は、低パワー制御信号に基づきはキャッシュメモリのクロックをストップ又は低パワーにする回路を含むが、この回路は専用の回路を設けてもよいし、例えばキャッシュメモリに装備されている汎用の機能を用いて低パワー制御信号に基づきはキャッシュメモリのクロックをストップ又は低パワーにする処理を行う構成でもよい。
【0018】
本発明によれば、キャッシュメモリのバス幅(キャッシュデータバスのバス幅)をCPUの要求データ幅よりも大きくとり、キャッシュメモリから読み出した余分なデータは先読みデータとして保持し、CPUの次の要求アドレスにマッチした場合には、保持されたデータをCPUに渡す。従ってCPUの次の要求アドレスのデータが保持されている場合(連続したアドレスのデータをCPUが要求する場合)にはキャッシュメモリ荷タイするアクセスを省略することができる。そしてその間(CPUの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクル)はキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力するので、キャッシュメモリを低パワーの状態にすることができる。
【0019】
このように本発明によればキャッシュメモリアクセスの頻度を下げることができ、非アクセス中は明示的に低パワーにする処理(キャッシュメモリへのクロックの供給を停止する処理又はキャッシュメモリ内の消費電流を減らす処理)を加えるので、集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置(IC)を作成することができる。
【0020】
(2)本発明の集積回路装置は、
前記キャッシュメモリが、
チップセレクト端子から前記低パワー制御信号を入力し、
当該前記低パワー制御信号に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する低パワー制御回路を含むことを特徴とする。
【0021】
キャッシュメモリのチップセレクト端子には、低パワー制御信号を接続する。
【0022】
本発明によればチップセレクト信号に基づき、キャッシュメモリ内部を低パワーに制御する機能を有するキャッシュメモリを有する集積回路装置においても、集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置(IC)を作成することができる。
【0023】
(3)本発明の集積回路装置は、
前記低パワー制御信号に基づき前記キャッシュメモリに供給するクロックを制御するクロック制御回路を含み、
前記キャッシュメモリは、
クロック制御端子からクロック制御回路によって制御されたクロック信号を入力するように構成されることを特徴とする。
【0024】
本発明によればキャッシュメモリ自体がキャッシュメモリ内部を低パワーに制御する機能を有しないキャッシュメモリを有する集積回路装置においても、キャッシュメモリに供給するクロックを制御することで集積回路装置内のキャッシュメモリ部の消費電力を減らすことができ、低パワーの集積回路装置(IC)を作成することができる。
【0025】
(4)本発明の集積回路装置は、
前記キャッシュデータバスのバス幅は、CPUの要求データ幅の2のn乗倍であることを特徴とする。
【0026】
(5)本発明の集積回路装置は、
前記データ保持回路は、
読み出したデータのうち先読み部分のみをCPUの要求データ幅単位で取り出し可能に保持することを特徴とする。
【0027】
キャッシュヒットした場合だけ保持するようにしてもよい。
【0028】
例えば読み出したデータのうち先読み部分のデータのみに対応したフィリップフロップを設け先読み部分のデータのみフィリップフロップに格納するようにしてもよい。先読み部分とは、CPUデータバスから読み込んだデータのうちCPUの要求データ幅以外のデータ部分である。この場合読み出したデータのうち、CPUの要求アドレスに対応する部分のデータは、そのままCPUデータバスに出力する。
【0029】
本発明によれば先読み部分以外のデータ保持回路を設けなくても良いので、データ保持回路の回路規模の増大を防止することができる。
【0030】
(6)本発明の集積回路装置は、
前記判断回路は、
CPUの要求アドレスのうちデータ保持回路に保持されているデータのアドレスに共通する上位ビット分のアドレスを保持するアドレス保持回路を含み、
前記アドレス保持回路に保持されているアドレスとCPUの要求アドレスの対応ビット部分が一致した否か判断し、判断結果に基づきCPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする。
【0031】
キャッシュヒットした場合だけ保持するようにしてもよい。
【0032】
本発明によればキャッシュデータバスのバス幅がCPUの要求データ幅の2のn乗倍である場合nビット分の下位ビットを保持しないでよいので回路規模を節約することができる。
【0033】
(7)本発明の集積回路装置は、
前記CPUは、
プログラムカウンタのインクリメント信号を出力し、
前記キャッシュインターフェース回路の判断回路は、
前記インクリメント信号に基づき、CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする。
【0034】
プログラムカウンタは、分岐やジャンプがないと命令コード長分順次インクリメントされる。従ってインクリメント信号が順次インクリメントされていることを示している場合には、CPUは連続したアドレスのデータを要求しているので、CPUの要求アドレスのデータがデータ保持回路に保持されていると判断することができる。
【0035】
(8)本発明の集積回路装置は、
前記キャッシュメモリは命令キャッシュであることを特徴とする。
【0036】
(9)本発明の集積回路装置は、
前記キャッシュメモリが、
データRAMに対するリード処理を行うデータリード部と、キャッシュミスが発生したときのリフィル処理を行うリフィル部とを含み、
前記キャッシュメモリがリフィル状態にある場合には、データリード部を低パワーに制御する回路を含むことを特徴とする。
【0037】
データリード部を低パワーに制御する回路とは例えばデータリード部に供給するクロックを制御する回路等である。
【0038】
たとえば低パワー制御信号に基づきリフィル部に供給するクロックを制御し、
前記低パワー制御信号及びリフィル信号に基づきデータリード部に供給するクロックを制御するようにしてもよい。
【0039】
(10)本発明は、
上記のいずれかに記載の集積回路装置を含むことを特徴とするマイクロコンピュータである。
【0040】
(11)本発明は、
上記に記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【0041】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【0042】
なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0043】
1. 第1の実施の形態
図1は、第1の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【0044】
本実施の形態の集積回路装置10は、CPU(広義には、処理回路)20、キャッシュメモリ30と、キャッシュインターフェース回路40、キャッシュデータバス70、CPUデータバス60、アドレスバス24とを含む。
【0045】
CPU20は、キャッシュインターフェース回路40に対しチップセレクト信号22、要求アドレス24(ここではA2〜A31の30ビット)を出力し、キャッシュインターフェース回路40から要求アドレス24に対応したデータ(ここではD0〜D31の32ビット)60とヒット/ミス信号122を受け取る。
【0046】
チップセレクト信号22はLowアクティブとなる信号である。
【0047】
キャッシュインターフェース回路40は、CPU20の要求アドレス24に対応したデータ60とキャッシュヒット/ミス信号122を1クロックのサイクルで返すように構成されている。なおキャッシュミスが発生した場合には、CPUの要求アドレスのデータは帰ってなこないので、CPUはキャッシュヒットとなるまで同じ要求アドレスを出し続ける事となる。
【0048】
CPUは、例えばキャッシュメモリ30に格納されている命令コードをキャッシュインターフェース回路40を介して読み出して読み出した命令を実行する処理等を行う。
【0049】
キャッシュメモリ30は、例えばスタティックRAM(Random Access Memory)等で構成され、ダイレクトマップ方式(Direct Mapped)、セットアソシアティブ方式(Set Associative)、フルアソシアティブ方式(Filly Associative)でもよいが、ここではダイレクトマップ方式(Direct Mapped)の1ライン64bitの命令キャッシュである場合を例にとり説明する。
【0050】
ダイレクトマップ方式(Direct Mapped)は1組のタグにより構成(連想度1)されるデータ格納構造を有しており、アドレスにより一意に配置が決まり、同一エントリに異なるフレームアドレスが転送されると必ずラインの入れ替えが発生する。ラインの入替え(リフィル)は該当エントリの全ラインにデータが格納されてなお同一エントリ新規フレームアドレスが入力されてキャッシュミスヒットした場合に発生する。その場合どのラインを掃出して新規アドレスと入替えるかのアルゴリズムとしてはラウンドロビン(Round Robin)、LRU(Least Recently Used)、ランダム(Random)等の方式があるが、いずれの方式でもよい。
【0051】
キャッシュインターフェース回路40は、CPU20のチップセレクト信号22及び要求アドレス24を受け、当該要求アドレス24に基づき、キャッシュメモリに読み出しアドレス90を出力し、前記キャッシュメモリ30のデータ70を読み出して、読み出したデータに基づきCPU20の要求アドレスのデータ60をCPU20に向け出力する処理を行う。
【0052】
キャッシュメモリ30からキャッシュヒット信号120を入力しCPUに向けヒット/ミス信号122を出力する。
【0053】
キャッシュデータバス70は、キャッシュメモリ30とキャッシュインターフェース回路40に接続されCPU20の要求データ幅よりも大きく、キャッシュのデータRAMのサイズ以下のバス幅を持つ。ここではCPU20の要求データ幅である32bitの2倍のデータ幅である64bitのデータ幅を有する場合について説明する。
【0054】
CPUデータバス60は、CPU20とキャッシュインターフェース回路40に接続されCPU20の要求データ幅のバス幅(ここでは32bit)を持つ。なおCPU10は32ビット幅のデータを扱うが16ビットの命令コードを処理するよう構成されている。
【0055】
アドレスバス24は、CPU20とキャッシュインターフェース回路40に接続されCPU20の要求アドレス幅のバス幅(ここでは32bit)を持つ。
【0056】
キャッシュのデータRAMの参照はA2〜A31の30bitで足りるので、上位30bitで処理するよう構成されている。
【0057】
キャッシュインターフェース回路40は、CPU20から受け取った要求アドレス24に基づき読み出しアドレス(要求アドレスA3〜A31)を生成し、前記キャッシュデータバス70を介してキャッシュメモリ30からキャッシュデータバス70のバス幅分のデータ(64bit分のデータ)を読み出すデータ読み出し回路と、読み出した(余分な先読み)データ70をCPUの要求データ幅単位で取り出し可能に保持するデータ保持回路42と、CPUの要求アドレス24のデータが前記データ保持回路42に保持されているか否か判断する判断回路(比較器47)と、保持されている場合には、データ保持回路42に保持されているCPUの要求アドレスに対応するデータを前記2のバス60を介してCPU20にむけ出力する出力回路と、CPU20にデータ保持回路42に保持された先読みデータを渡しており、キャッシュメモリ30にアクセスする必要の無い期間はキャッシュメモリ30のクロックをストップ又は低パワーにするための低パワー制御信号54を生成して出力する低パワー制御信号生成回路とを含む。
【0058】
なお集積回路装置10は、これ以外にもBCU(バスコントロールユニット)、MMU(Memory Management Unit)、DMAC(Direct Memory Access Controller)、LCD(Liquid Crystal Display)ドライバ或いはSIO(Serial Input Output)等の各種周辺回路を含むことができる。
【0059】
本実施の形態では、CPUの要求データ幅(ここでは32bit)単位で取り出し可能に保持するために32bitのデータが保持可能なフィリップフロップFFをCPUデータバスの32bit分のデータに接続している。例えば読み出したデータ1(D0からD31の32bit)、データ2(D32からD63の32bit)のそれぞれに32bitのデータが保持可能なフィリップフロップFFを接続してもよい。また例えば図1の42にしめすように、読み出したデータ(D0〜D61)のうち先読み部分(D32〜D61)のみをCPUの要求データ幅単位で取り出し可能に保持するようにしてもよい。読み出したデータ1(D0からD31の32bit)の部分は読み出してそのままCPUデータバスに出力するようにしてもよい。このように、キャッシュデータバス70の最下位の要求幅分(D0〜D31)については保持しないようにするとキャッシュインターフェース回路40の回路規模の増大を防止することができる。
【0060】
図2は本実施の形態の判断回路の一例について説明するための図である。
【0061】
判断回路50は、図2に示すようにCPU20からのチップセレクト信号22(Lowアクティブ)と比較器47が出力する比較結果信号(1で一致、0で不一致)48とCPUの要求アドレスのA2とキャッシュメモリ30のキャッシュヒット信号120を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号(低パワー制御信号)54、選択信号45、アドレス/データ保持信号52、CPUに入力されるヒット/ミス信号122を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【0062】
判断回路は、例えばアンド回路81、OR回路82を含み、アンド回路81の入力を、A2と比較結果信号48に接続し、アンド回路81の出力とチップセレクト信号22をOR回路82の入力に接続し、OR回路82出力を低パワー制御信号54としてもよい。
【0063】
アンド回路81の出力はA2が1(奇数番地)で比較結果信号が1(一致)の時(このときはCPUの要求アドレスに対応したデータがデータ保持回路に保持されている)1となる。この場合にはOR回路82の出力は、チップセレクト信号22の値にかかわらず1となりCPUの出力したチップセレクト信号22をマスクすることができる。このようにCPUの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号22をマスクして、キャッシュメモリを低パワー化することができる。
【0064】
また判断回路50は反転バッファ(インバータとバッファ)83とアンド回路84を含む。反転バッファ83はA2を入力しその反転値を出力し、アンド回路84は、前記反転値とキャッシュヒット信号120を入力して、アドレス/データ保持信号52として出力する。
【0065】
A2が0の場合(CPUの要求アドレスが偶数アドレスの場合)でヒット信号が1の場合アドレス/データ保持信号52は1となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持される。またA2が1の場合(CPUの要求アドレスが奇数アドレスの場合)やヒット信号が0の場合(キャッシュミスの場合)にはアドレス/データ保持信号52は0となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持されない。
【0066】
また判断回路50は反転バッファ(インバータとバッファ)85を含む。反転バッファ85はA2を入力して、その反転値を第1の選択信号45−1として出力する。従ってA2=0の時(すなわちCPUの要求データが偶数番地のとき)第1の選択信号45−1=1(H)となり、選択回路41はデータ72(キャッシュデータバスのD0〜D31)を選択してCPUデータバスに出力する。
【0067】
また判断回路50は反転バッファ(インバータとバッファ)86とアンド回路87を含む。反転バッファ86は比較結果信号48を入力して、その反転値を出力する。AND回路87は反転値とA2を入力し、出力値が第2の選択信号45−2となる。従ってA2=1(すなわちCPUの要求データが奇数番地のとき)で比較結果が不一致の時、第2の選択信号45−2=1(H)となり、選択回路41はデータ74(キャッシュデータバスのD32〜D61)を選択してCPUデータバスに出力する。
【0068】
また判断回路50はアンド回路88を含む。AND回路88はA2と比較結果信号48を入力し、出力値が第3の選択信号45−3となる。従ってA2=1(すなわちCPUの要求データが奇数番地のとき)で比較結果が一致の時、第3の選択信号45−3=1(H)となり、選択回路41はデータ76(データ保持回路に保持されたデータ)を選択してCPUデータバスに出力する。
【0069】
また判断回路50はOR回路89を含む。OR回路89は比較結果信号48とキャッシュヒット信号120を入力し、ヒット/ミス信号122を出力する。
従ってCPUの要求アドレスがキャッシュヒットした場合又はデータ保持回路に保持されていた場合に、CPUはヒットがあったことを示すヒット信号を受け取ることになる。
【0070】
アドレス/データ保持信号52はCPUからの要求アドレス24のA2が0でキャッシュヒットしている場合にアドレス/データ保持が行われるレベル(第1のレベル)に変化する。
【0071】
アドレス保持回路46は、29bit分のアドレスを保持可能なフィリップフロップFFで、入力はCPU20のアドレスバス24の要求アドレスA3〜A31の信号線、アドレス/データ保持信号52に接続され、その出力は比較器47に接続されている。アドレス保持回路46は、アドレス/データ保持信号52が第1のレベルのタイミングでCPUの要求アドレスA3〜A31を保持する。
【0072】
図1に示すようにキャッシュメモリのデータ読み出しにかかるアドレス(A2〜A31)のうちデータ保持回路42に保持されているデータのアドレスに共通する上位ビット分(A3〜A31の29bit)のアドレスを保持するアドレス保持回路46をもつようにしてもよい。
【0073】
このようにアドレス保持回路46はCPUデータバス幅(ここでは32bit×2の1乗)の2のべき(32bit×2のn乗の場合はnなので、ここでは1)に対応したビット数分の下位ビットを保持しないように構成することができる。
【0074】
アドレス保持回路46のFFにアドレスを保持するタイミングは、図1のようにキャッシュデータバスがCPUデータバスの2倍のデータ幅を持つ場合には、要求アドレスが偶数アドレスのデータ(A0=0の場合)の場合である。なお2のn乗倍のデータ幅をもつ場合には、要求アドレスが2のn乗番目の場合である。
【0075】
データ保持回路42は、32bit分のデータを保持可能なフィリップフロップFFで、入力はキャッシュデータバス70のデータDA32〜D61の信号線、アドレス/データ保持信号52に接続され、その出力は選択回路41に接続されている。データ保持回路42は、アドレス/データ保持信号52が第1のレベルのタイミングでキャッシュデータバス70のデータDA32〜D61を保持する。
【0076】
比較器47は、アドレス保持回路46に保持されているアドレスとCPUの要求アドレス24の対応ビット分(A3〜A31の29bit)を入力し、一致した否か判断して比較結果信号48を判断回路50に向け出力する。比較器47の比較結果に基づき、CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することができる。
【0077】
選択回路(MUX)41は、キャッシュデータバス70のD0〜D31のデータ72、キャッシュデータバス70のD32〜D71のデータ74、データ保持回路42の出力データ76を入力し、判断回路50が出力する選択信号45に基づきデータ72、74、76のいずれかのデータを選択して、CPUデータバス60に出力する。
【0078】
ここで要求アドレスのA2=0ならデータ72が選択出力され、要求アドレスのA2=1で、CPUの要求アドレスのA3〜A31がアドレス保持回路46のFFに保持されているアドレスと不一致(比較器47の比較結果が不一致を示している場合)ならデータ74が選択出力され、要求アドレスのA2=1で、CPUの要求アドレスのA3〜A31がアドレス保持回路46のFFに保持されているアドレスとが一致(比較器47の比較結果が一致を示している場合)ならデータ76が選択出力されるように、選択信号45で選択回路(MUX)41を制御する。
【0079】
図3、図4はキャッシュインターフェース回路の処理について説明するためのフローチャート図である。
【0080】
CPUからチップセレクトON及び要求アドレスを受けると以下の処理を行う(ステップS10)。
【0081】
CPUの要求アドレス24のA2=0でキャッシュヒットの場合は(ステップS20)、要求アドレスA3〜A31をアドレス保持回路46に保持し(ステップS30)、キャッシュデータバス70を介してキャッシュメモリ30から要求データの2倍のデータ(D0〜D61)を読み出し(ステップS40)、読み出したデータD0〜D61のうちCPUの要求アドレスのデータD0〜D31を選択してCPUデータバスに出力し(ステップS50)、先読みデータD32〜D61をデータ保持回路42に保持する(ステップS60)。
【0082】
またCPUの要求アドレス24のA2=1の場合は(ステップS70)、要求アドレスA1〜A15と、アドレス保持回路のアドレスが一致するかどうか比較器で検出する(ステップS80)。一致する場合には(ステップS90)、データ保持回路42のFFに保持されたデータを出力する(ステップS100)。
【0083】
また不一致の場合には、CPU20の要求アドレスA3〜A31をアドレス保持回路46に保持し(ステップS110)、キャッシュデータバス70を介してキャッシュメモリ30から要求データの2倍のデータ(D0〜D61)を読み出し(ステップS120)、読み出したデータD0〜D61のうちCPUの要求アドレスのデータD32〜D61を選択してCPUデータバスに出力する(ステップS130)。
【0084】
判断回路50は、CPU20からのチップセレクト信号22と比較器47が出力する比較結果信号48とCPUの要求アドレスの最下位bitA2を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号(低パワー制御信号)52、選択信号45、アドレス/データ保持信号52を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。アドレス/データ保持信号52はCPUからの要求アドレス24のA2が’0’の場合にアドレス/データ保持が行われるレベル(第1のレベル)に変化する。
【0085】
図5は、本実施の形態においてキャッシュヒットしている場合のタイミングチャート図である。
【0086】
12はクロックである。
【0087】
200はCPUとキャッシュインターフェース間でやり取りされる各種信号である。
22はCPUがキャッシュインターフェースに出力するチップセレクト信号である。Lowアクティブの信号であり、CPUはLレベルでキャッシュメモリの読み出しを指示する。24はCPUが出力する要求アドレスである。60はCPUがキャッシュインターフェースからCPUデータバスで受け取る命令コード(32bitで1命令分)である。CPUとキャッシュインターフェース間では要求アドレス24に対応したデータ601クロック毎にやり取りされている。
【0088】
210はキャッシュインターフェースとキャッシュメモリ間でやり取りされる各種信号である。54はキャッシュインターフェースがキャッシュメモリに出力するチップセレクト信号(低パワー制御信号)である。Lレベルの時、キャッシュメモリの読み出しが行われHレベルの時はキャッシュメモリの読み出しが行われない。従ってチップセレクト信号(低パワー制御信号)はHレベルの時はキャッシュメモリが低パワー化するように制御される。90はキャッシュインターフェースが出力する読み出しアドレスでり、本実施の形態ではCPUの要求アドレスが偶数アドレスのときのみ出力される。従って内蔵RAMへの実際のアクセスはCPUの要求アドレスの要求回数の半分となる。70はキャッシュインターフェース回路がキャッシュメモリから第1のデータデータバスで受け取る命令コード(64bitで連続するアドレスに格納された2命令)である。
【0089】
本実施の形態では、キャッシュインターフェース回路はCPUからの要求アドレスは偶数番地の時のキャッシュメモリをアクセスし、1回のアクセスで(偶数番地の読み出し)で連続する2命令を読み出し、先読みデータ(次の奇数番地のデータ)をデータ保持回路に保持している。そしてCPUから次の要求アドレス(奇数番地の読みだし)を受けた時に、連続アドレスである場合にはデータ保持回路のデータをCPUに渡す。従って230に示すようにCPUの要求アドレスが連続アドレスである場合には、実際のアクセスはCPUの要求回数の2回に1回でよい。このように連続したアドレスキャッシュヒットが続いている場合にはキャッシュアクセスは1/2となるため、キャッシュメモリの低パワー化を図ることができる。
【0090】
しかし240のようにCPUの要求アドレスが不連続な場合にはデータ保持回路に保持されたデータは使えないのアクセスが毎回になることもある。
【0091】
図6はキャッシュメモリの低パワー化の一例について説明するための図である。
【0092】
キャッシュメモリがチップセレクト信号に基づき低パワー制御を行う機能を有している場合には、キャッシュメモリのチップセレクト端子38にCPUの出力するチップセレクト信号22ではなくキャッシュインターフェースの出力する低パワー制御信号54を接続する。このようにするとキャッシュメモリ30は、チップセレクト信号として低パワー制御信号54を受け取り、内蔵する低パワー制御回路32が前記低パワー制御信号54に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する。
【0093】
低パワー制御信号(チップセレクト信号)54はHで非動作(低電流状態になる使用)、Lで動作するように指示する信号である。
【0094】
低パワー制御回路32は、反転バッファ32、FF34、アンド回路35を含む。反転バッファ32は低パワー制御信号(チップセレクト信号)54を入力し反転値をFF34似出力する。アンド回路35はFFの出力とクロック12を入力し供給クロック14を出力する。従って非動作時(低パワー制御信号(チップセレクト信号)54がHの時)は供給クロック14はLレベルのままでクロックの供給が停止している状態となる。
【0095】
なお図6は、キャッシュメモリ30がチップセレクト端子38から入力される信号に基づき内部のクロックの供給の有無を制御する構成を有している場合について説明したが、是に限られない。
【0096】
例えばキャッシュメモリ自体にこのような機能がない場合には図7に示すように集積回路内に低パワー制御回路32を設けるようにしてもよい。なお低パワー制御回路32の構成は図6と同様なので説明を省略する。この場合にはキャッシュメモリのクロック端子39には低パワー制御回路32の出力クロック14を接続する。
【0097】
図8は、本実施の形態のキャッシュメモリに供給されるクロックに関するタイミングチャート図である。
【0098】
12は基準クロックであり、14はキャッシュメモリに供給されるクロックである。
【0099】
250に示すようにアドレスが連続している場合には、供給クロックがマスクされるため、キャッシュメモリの低パワー化を図ることができる。
【0100】
2. 第2の実施の形態
図9は、第2の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【0101】
本実施の形態の集積回路装置10’は、CPU(広義には、処理回路)20、キャッシュメモリ30と、キャッシュインターフェース回路40、キャッシュデータバス70、CPUデータバス60、アドレスバス24とを含む。
【0102】
CPU20は、キャッシュインターフェース回路40に対しチップセレクト信号22、要求アドレス24(ここではA2〜A31の30ビット)を出力し、キャッシュインターフェース回路40から要求アドレス24に対応したデータ(ここではD0〜D31の32ビット)60とヒット/ミス信号122を受け取る。
【0103】
チップセレクト信号22はLowアクティブとなる信号である。
【0104】
キャッシュインターフェース回路40は、CPU20の要求アドレス24に対応したデータ60を1クロックのサイクルで返すように構成されている。
【0105】
CPUは、例えばキャッシュメモリ30に格納されている命令コードをキャッシュインターフェース回路40を介して読み出して読み出した命令を実行する処理等を行う。
【0106】
キャッシュメモリ30は、例えばROM(Read Only Memory)、RAM(Random Access Memory)、SRAM、フラッシュキャッシュメモリ、DRAMでもよく、CPUの使用するデータや命令コードが格納されているとする。
【0107】
キャッシュインターフェース回路40は、CPU20のチップセレクト信号22及び要求アドレス24を受け、当該要求アドレス24に基づき、キャッシュメモリに読み出しアドレス90を出力し、前記キャッシュメモリ30のデータを読み出して、読み出したデータに基づきCPU20の要求アドレスのデータ60とキャッシュヒット/ミス信号122を1クロックのサイクルで返すように構成されている。なおキャッシュミスが発生した場合には、CPUの要求アドレスのデータは帰ってなこないので、CPUはキャッシュヒットとなるまで同じ要求アドレスを出し続ける事となる。
【0108】
キャッシュデータバス70’は、キャッシュメモリ30とキャッシュインターフェース回路40に接続されCPU20の要求データ幅よりも大きいバス幅を持つ。ここではCPU20の要求データ幅である32bitの4倍のデータ幅である128bitのデータ幅を有する。
【0109】
CPUデータバス60は、CPU20とキャッシュインターフェース回路40に接続されCPU20の要求データ幅のバス幅(ここでは32bit)を持つ。なおCPU10は32ビット幅のデータを扱うが16ビットの命令コードを処理するよう構成されている。
【0110】
アドレスバス24は、CPU20とキャッシュインターフェース回路40に接続されCPU20の要求アドレス幅のバス幅(ここでは32bit)を持つ。
【0111】
キャッシュのデータRAMの参照はA2〜A31の30bitで足りるので、上位30bitで処理するよう構成されている。
【0112】
キャッシュインターフェース回路40は、CPU20から受け取った要求アドレス24に基づき読み出しアドレス(要求アドレスA2〜A31)を生成し、前記キャッシュデータバス70を介してキャッシュメモリ30からキャッシュデータバス70’のバス幅分のデータ(128bit分のデータ)を読み出すデータ読み出し回路と、読み出した(余分な先読み)データ70をCPUの要求データ幅単位で取り出し可能に保持するデータ保持回路42−1〜42−4と、CPUの要求アドレス24のデータが前記データ保持回路42−1〜42−4に保持されているか否か判断する判断回路(比較器47)と、保持されている場合には、データ保持回路42−1〜42−4に保持されているCPUの要求アドレスに対応するデータを前記2のバス60を介してCPU20にむけ出力する出力回路と、CPU20にデータ保持回路42−1〜42−4に保持された先読みデータを渡しており、キャッシュメモリ30にアクセスする必要の無い期間はキャッシュメモリ30のクロックをストップ又は低パワーにするための低パワー制御信号54を生成して出力する低パワー制御信号生成回路と、を含む。
【0113】
なお集積回路装置10’は、これ以外にもBCU(バスコントロールユニット)、MMU(Memory Management Unit)、DMAC(Direct Memory Access Controller)、LCD(Liquid Crystal Display)ドライバ或いはSIO(Serial Input Output)等の各種周辺回路を含むことができる。
【0114】
本実施の形態では、CPUの要求データ幅(ここでは32bit)単位で取り出し可能に保持するために32bitのデータが保持可能なフィリップフロップFFをCPUデータバスの32bit分のデータに接続している。例えば読み出したデータ1(D0からD31の32bit)、データ2(D32からD63の32bit)のデータ3(D64からD95の32bit)、データ4(D96からD127の32bit)それぞれに32bitのデータが保持可能なフィリップフロップFFを接続してもよい。
【0115】
判断回路50’は、図10に示すようにCPU20からのチップセレクト信号22(Lowアクティブ)と比較器47が出力する比較結果信号(1で一致、0で不一致)48、キャッシュメモリからのキャッシュヒット信号120を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号(低パワー制御信号)54、選択信号45、アドレス/データ保持信号52、ヒット/ミス信号122を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【0116】
判断回路50’は、OR回路91を含み、OR回路91の入力を、チップセレクト信号22と比較結果信号48に接続し、出力を低パワー制御信号54としてもよい。このようにするとアドレスが一致ならば、CPUが出力するチップセレクト信号をマスクした低パワー制御信号54を生成することができる。
【0117】
従ってCPUの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号22をマスクして、キャッシュメモリを低パワー化することができる。
【0118】
判断回路50’は、反転バッファ92、アンド回路93を含む。反転バッファ92は比較結果信号48の反転値を出力する。アンド回路93は反転値とキャッシュヒット振動120を入力しアドレス/データ保持信号52として出力するようにしてもよい。
【0119】
このようにするとA2が0の場合(CPUの要求アドレスが偶数アドレスの場合)でヒット信号が1の場合アドレス/データ保持信号52は1となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持される。またA2が1の場合(CPUの要求アドレスが奇数アドレスの場合)やヒット信号が0の場合(キャッシュミスの場合)にはアドレス/データ保持信号52は0となり、データ保持回路及びアドレス保持回路にデータやアドレスが保持されない。
【0120】
また判断回路50’比較結果信号48をスルーして第1の選択信号45’として出力する。第1の選択信号45’は、第1の選択回路49−1〜49−4への選択信号として入力される。
【0121】
第1の選択回路49−1は第1のデータバッファ42−1とCPUデータバスのデータD0〜D31を入力し第1の選択信号45’に基づきいずれかを選択して出力する。
【0122】
第1の選択回路49−2は第1のデータバッファ42−2とCPUデータバスのデータD32〜D63を入力し第1の選択信号45’に基づきいずれかを選択して出力する。
【0123】
第1の選択回路49−3は第1のデータバッファ42−3とCPUデータバスのデータD64〜D95を入力し第1の選択信号45’に基づきいずれかを選択して出力する。
【0124】
第1の選択回路49−4は第1のデータバッファ42−4とCPUデータバスのデータD96〜D127を入力し第1の選択信号45’に基づきいずれかを選択して出力する。
【0125】
第1の選択回路49−1〜49−4は比較結果信号48が不一致の場合、それぞれに接続されたデータ保持バッファ42−1〜42−4の値を出力し、一致する場合それそれに接続されたキャッシュデータバスからのデータを出力する。
【0126】
第2の選択回路41’は、第1の選択回路49−1〜49−4の出力を入力とし、CPUの要求アドレスA3、A4を選択信号としていずれかを選択して、CPUデータバス60に出力する。
【0127】
A3,A4が’11’の場合には第1の選択回路49−4の出力を選択して出力し、A3,A4が’10’の場合には第1の選択回路49−3の出力を選択して出力し、A3,A4が’01’の場合には第1の選択回路49−2の出力を選択して出力し、A3,A4が’00’の場合には第1の選択回路49−1の出力を選択して出力する。
【0128】
アドレス保持回路46は、28bit分のアドレスを保持可能なフィリップフロップFFで、入力はCPU20のアドレスバス24の要求アドレスA4〜A31の信号線、アドレス/データ保持信号52に接続され、その出力は比較器47に接続されている。アドレス保持回路46は、アドレス/データ保持信号52が第1のレベルのタイミングでCPUの要求アドレスA4〜A31を保持する。
【0129】
図9に示すようにキャッシュメモリのデータ読み出しにかかるアドレス(A2〜A31)のうちデータ保持回路42に保持されているデータのアドレスに共通する上位ビット分(A4〜A31の28bit)のアドレスを保持するアドレス保持回路46をもつようにしてもよい。
【0130】
このようにアドレス保持回路46はキャッシュデータバスのバス幅(ここでは32bit×2の2乗)の2のべき(32bit×2のn乗の場合はnなので、ここでは2)に対応したビット数分の下位ビットを保持しないように構成することができる。
【0131】
なお上記実施の形態では、前記キャッシュインターフェース回路が、CPUの要求アドレスに対応したデータを1クロックのサイクルで返すように構成されている場合を例にとり説明したが、これに限られない。例えばキャッシュインターフェース回路が、CPUの要求アドレスに対応したデータを2クロック以上のサイクルで返すように構成されている場合でもよい。
【0132】
3. 第3の実施の形態
図11は、第3の実施の形態の集積回路装置の構成について説明するための機能ブロック図である。
【0133】
第3の実施の形態は図1に示す第1の実施の形態の変形であり、図1と同じ符号のものについて同じ構成であり説明を省略する。
【0134】
第3の実施の形態では、CPU20は、プログラムカウンタのインクリメント信号130を出力し、前記キャッシュインターフェース回路の判断回路50は、インクリメント信号130に基づき、CPUの要求アドレスのデータが前記データ保持回路42に保持されているか否か判断する。
【0135】
インクリメント信号130は、0(L)、1(H)でインクリメントか否かを通知する信号であり、Hでインク(連続)状態、Lで非インク(非連続)状態であることを示す。CPUが連続して命令をよんでいる場合にはインク状態となる。
【0136】
第3の実施の形態ではインク信号130に基づき本実施の形態ではCPU20の要求アドレスのデータが前記データ保持回路42に保持されているか否か判断するので、図1に示すようなアドレス保持回路46や比較回路47を設ける必要がなくキャッシュインターフェース回路の回路規模を削減することができる。
【0137】
図12は第3の実施の形態の判断回路の一例について説明するための図である。
【0138】
判断回路50は、図12に示すようにCPU20からのチップセレクト信号22(Lowアクティブ)とCPUの要求アドレスのA2とキャッシュメモリ30のキャッシュヒット信号120、CPUからのインクリメント信号130を入力し、これらの信号に基づき、キャッシュメモリに入力されるチップセレクト信号(低パワー制御信号)54、選択信号45、データ保持信号52’、CPUに入力されるヒット/ミス信号122を生成して出力する処理を行い、低パワー制御信号生成回路として機能する。
【0139】
判断回路50は、例えばAND回路151、OR回路152を含む。AND回路151の入力はA2とインクリメント信号130に接続される。AND回路151の出力とチップセレクト信号22をOR回路152の入力とし、OR回路152の出力を低パワー制御信号54としてもよい。
【0140】
アンド回路151の出力はA2が1(奇数番地)でインクリメント信号が1(連続)の時(このときはCPUの要求アドレスに対応したデータがデータ保持回路に保持されている)1となる。この場合にはOR回路152の出力は、チップセレクト信号22の値にかかわらず1となりCPUの出力したチップセレクト信号22をマスクすることができる。このようにCPUの要求アドレスに対応したデータがデータ保持回路に保持されている場合には、キャッシュメモリからのデータの読み出しを行わないので、チップセレクト信号22をマスクして、キャッシュメモリを低パワー化することができる。
【0141】
また判断回路50は反転バッファ(インバータとバッファ)153とAND回路154を含む。反転バッファ153はA2を入力しその反転値を出力し、アンド回路154は、前記反転値とキャッシュヒット信号120を入力して、データ保持信号52’として出力する。
【0142】
A2が0の場合(CPUの要求アドレスが偶数アドレスの場合)でヒット信号が1の場合データ保持信号52’は1となり、データ保持回路にデータが保持される。またA2が1の場合(CPUの要求アドレスが奇数アドレスの場合)やヒット信号が0の場合(キャッシュミスの場合)にはデータ保持信号52’は0となり、データ保持回路にデータが保持されない。
【0143】
また判断回路50は反転バッファ(インバータとバッファ)155を含む。反転バッファ155はA2を入力して、その反転値を第1の選択信号45−1として出力する。従ってA2=0の時(すなわちCPUの要求データが偶数番地のとき)第1の選択信号45−1=1(H)となり、選択回路41はデータ72(キャッシュデータバスのD0〜D31)を選択してCPUデータバスに出力する。
【0144】
また判断回路50は反転バッファ(インバータとバッファ)156とアンド回路157を含む。反転バッファ156はインクリメント信号130を入力して、その反転値を出力する。AND回路157は反転値とA2を入力し、出力値が第2の選択信号45−2となる。従ってA2=1(すなわちCPUの要求データが奇数番地のとき)でCPUの要求アドレスが連続していない時、第2の選択信号45−2=1(H)となり、選択回路41はデータ74(キャッシュデータバスのD32〜D61)を選択してCPUデータバスに出力する。
【0145】
また判断回路50はアンド回路158を含む。AND回路158はA2とインクリメント信号130を入力し、出力値が第3の選択信号45−3となる。従ってA2=1(すなわちCPUの要求データが奇数番地のとき)でCPUの要求アドレスが連続している時、第3の選択信号45−3=1(H)となり、選択回路41はデータ76(データ保持回路に保持されたデータ)を選択してCPUデータバスに出力する。
【0146】
また判断回路50はAND回路159とOR回路160を含む。AND回路159の入力はA2とインクリメント信号130を入力し、その出力とキャッシュヒット信号120はOR回路160に入力され、ヒット/ミス信号122を出力する。
【0147】
従ってCPUの要求アドレスがキャッシュヒットした場合又はデータ保持回路に保持されていた場合に、CPUはヒットがあったことを示すヒット信号を受け取ることになる。
【0148】
図13は第3の実施の形態のタイミングチャート図である。
【0149】
CPUは毎サイクル要求アドレスを出力しているので、CPUが出力するチップセレクト信号22はLレベル(セレクト状態)となっている。しかしキャッシュインターフェース回路がキャッシュのチップセレクト端子に出力する低パワー制御信号54は、340、350に示すように、要求アドレスが連続した(インクリメント信号130が奇数番地である場合、インクリメント連続」に出力に)
300に示すようにCPUの要求アドレスが連続している場合にはインクリメント信号130はHとなり、かつ奇数アドレスであればデータ保持部に保持されているので、キャッシュメモリをリードする必要が無いため、310に示すように低パワー制御信号がHレベルに変化する。
【0150】
また320に示すようにCPUの要求アドレスが連続していない場合には、インクリメント信号130がLレベルに変化し(330参照)、低パワー制御信号はHレベルとなり、キャッシュメモリからデータの読み出しが行われる(350参照)。
【0151】
4.第4の実施の形態
図14(A)(B)は、第4の実施の形態について説明するための図である。
【0152】
キャッシュメモリ30は、図14(A)に示すようにデータRAM186に対するリード処理を行うデータリード部180と、キャッシュミスが発生したときのリフィル処理を行うリフィル部190とを含む。キャッシュメモリ30がリフィル状態にある場合には、データリード部180を低パワーに制御する回路を含む。
【0153】
データリード部を低パワーに制御する回路とは例えば図14(B)に示すようにデータリード部に供給するクロックを制御する回路等である。
【0154】
たとえば低パワー制御信号54に基づきリフィル部に供給するクロック192を制御し、低パワー制御信号54及びリフィル信号170を入力とするOR回路172の出力182に基づきデータリード部に供給するクロックを制御するようにしてもよい。
【0155】
図15は、第4の実施の形態のフローチャート図である。
【0156】
12は基準クロックである。
【0157】
22はチップセレクト信号であり24はCPUの要求アドレスであり、122はヒット/ミス信号である。これらの信号410は、CPUとキャッシュインターフェース回路の間でやり取りされる信号である。
【0158】
182は低パワー制御信号とリフィル信号に基づき生成されたデータリード部低パワー信号(図14(A)参照、データリード部のみ低パワーになるように制御する信号)信号であり、24は読み出しアドレスである。これらの信号420はキャッシュインターフェースからキャッシュに向けて出力される信号である。
【0159】
120はキャッシュヒット信号であり、170はリフィル信号であり、70はキャッシュデータバスから読み出されたデータである。これらの信号430はキャッシュからキャッシュインターフェースに向けて出力される信号である。
【0160】
第4の実施の形態では、460に示すように、キャッシュメモリがリフィル中はデータリード部低パワー信号182がHレベル(低パワー状態)となり、データリード部は低パワーになるように制御される。
【0161】
5.マイクロコンピュータ
図16は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【0162】
本マイクロコンピュータ700は、CPU510、キャッシュキャッシュメモリ520、LCDコントローラ530、リセット回路540、プログラマブルタイマ550、リアルタイムクロック(RTC)560、DRAMコントローラ兼バスI/F570、割り込みコントローラ580、シリアルインターフェース590、バスコントローラ600、A/D変換器610、D/A変換器620、入力ポート630、出力ポート640、I/Oポート650、クロック発生装置560、プリスケーラ570及びそれらを接続する汎用バス680、専用バス730等、キャッシュインターフェース回路740、各種ピン690等を含む。
【0163】
キャッシュインターフェース回路740は、例えば図1や図9や図11で説明した構成を有する。
【0164】
6.電子機器
図17に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器800は、マイクロコンピュータ(またはASIC)810、入力部820、キャッシュメモリ830、電源生成部840、LCD850、音出力部860を含む。
【0165】
ここで、入力部820は、種々のデータを入力するためのものである。マイクロコンピュータ810は、この入力部820により入力されたデータに基づいて種々の処理を行うことになる。キャッシュメモリ830は、マイクロコンピュータ810などの作業領域となるものである。電源生成部840は、電子機器800で使用される各種電源を生成するためのものである。LCD850は、電子機器が表示する各種の画像(文字、アイコン、グラフィック等)を出力するためのものである。 音出力部860は、電子機器800が出力する各種の音(音声、ゲーム音等)を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0166】
図18(A)に、電子機器の1つである携帯電話950の外観図の例を示す。この携帯電話950は、入力部として機能するダイヤルボタン952や、電話番号や名前やアイコンなどを表示するLCD954や、音出力部として機能し音声を出力するスピーカ956を備える。
【0167】
図18(B)に、電子機器の1つである携帯型ゲーム装置960の外観図の例を示す。この携帯型ゲーム装置960は、入力部として機能する操作ボタン962、十字キー964や、ゲーム画像を表示するLCD966や、音出力部として機能しゲーム音を出力するスピーカ968を備える。
【0168】
図18(C)に、電子機器の1つであるパーソナルコンピュータ970の外観図の例を示す。このパーソナルコンピュータ970は、入力部として機能するキーボード972や、文字、数字、グラフィックなどを表示するLCD974、音出力部976を備える。
【0169】
本実施の形態のマイクロコンピュータを図18(A)〜図18(C)の電子機器に組みむことにより、低価格で画像処理速度の速いコストパフォーマンスの高い電子機器を提供することができる。
【0170】
なお、本実施形態を利用できる電子機器としては、図8(A)、(B)、(C)に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のLCDを使用する種々の電子機器を考えることができる。
【0171】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【0172】
【図1】第1の実施の形態の集積回路装置の構成を示す回路図。
【図2】第1の実施の形態の判断回路の一例を示す図。
【図3】キャッシュインターフェース回路の処理のフローチャート図。
【図4】キャッシュインターフェース回路の処理のフローチャート図。
【図5】本実施の形態のタイミングチャート図。
【図6】キャッシュメモリの低パワー化の一例について説明するための図。
【図7】集積回路内に低パワー制御回路を設ける例の説明図。
【図8】キャッシュメモリに供給されるクロックに関するタイミングチャート図。
【図9】第2の実施の形態の集積回路装置の構成を示す回路図。
【図10】第2の実施の形態の他の構成の判断回路の一例を示す図。
【図11】第2の実施の形態の集積回路装置の構成を示す回路図。
【図12】第3の実施の形態の他の構成の判断回路の一例を示す図。
【図13】第3の実施の形態のタイミングチャート図
【図14】第4の実施の形態の集積回路装置の構成を示す図。
【図15】第4の実施の形態のタイミングチャート図
【図16】本実施の形態のマイクロコンピュータのハードウエアブロック図。
【図17】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図18】図18(A)(B)(C)は、種々の電子機器の外観図の例である。
【符号の説明】
【0173】
10 集積回路装置、20 CPU、22 チップセレクト信号、24 アドレスバス、30 キャッシュメモリ、32 低パワー制御回路、40 インターフェース回路、44 選択回路、42 データ保持回路、44 アドレス保持回路、47 比較器、50 判断回路、54 低パワー制御信号、60 CPUデータバス、70 キャッシュデータバス、120 キャッシュヒット信号、122 ヒット/ミス信号、130 インクリメント信号、170 リフィル信号、182 データリード部低パワー制御信号、180 データリード部、186 データRAM、190 リフィル部、510 CPU、530 LCDコントローラ、540 リセット回路、550 プログラマブルタイマ、560 リアルタイムクロック(RTC)、570 DRAMコントローラ兼バスI/F、580 割り込みコントローラ、590 シリアルインターフェース、600 バスコントローラ、610 A/D変換器、620 D/A変換器、630 入力ポート、640 出力ポート、650 I/Oポート、660 クロック発生装置(PLL)、670 プリスケーラ、680 汎用バス、690 各種ピン、700 マイクロコンピュータ、710 ROM、720 RAM、730 MMU、800 電子機器、850 LCD
【特許請求の範囲】
【請求項1】
集積回路装置であって、
CPUと、
キャッシュメモリと、
CPUの要求アドレスを受け、当該要求アドレスに基づき前記キャッシュメモリのデータを読み出して、CPUの要求アドレスに対応するデータをCPUに向け出力するキャッシュインターフェース回路と、
前記キャッシュメモリとキャッシュインターフェース回路に接続されCPUの要求データ幅よりも大きいバス幅を持つキャッシュデータバスと、
前記CPUとキャッシュインターフェース回路に接続されたCPUデータバスを含み、
前記キャッシュインターフェース回路は、
CPUから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからCPUの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出すデータ読み出し回路と、
読み出したデータをCPUの要求データ幅単位で取り出し可能に保持するデータ保持回路と、
CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断し、保持されている場合には、CPUの要求アドレスに応じてキャッシュメモリへのアクセスを行わず、データ保持回路に保持されているCPUの要求アドレスに対応するデータを前記CPUデータバスを介してCPUにむけ出力する出力回路と、
CPUの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する低パワー制御信号生成回路と、
を含むことを特徴とする集積回路装置。
【請求項2】
請求項1において、
前記キャッシュメモリは、
チップセレクト端子から前記低パワー制御信号を入力し、
当該前記低パワー制御信号に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する低パワー制御回路を含むことを特徴とする集積回路装置。
【請求項3】
請求項1において、
前記低パワー制御信号に基づき前記キャッシュメモリに供給するクロックを制御するクロック制御回路を含み、
前記キャッシュメモリは、
クロック制御端子からクロック制御回路によって制御されたクロック信号を入力するように構成されることを特徴とする集積回路装置。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記キャッシュデータバスのバス幅は、CPUの要求データ幅の2のn乗倍であることを特徴とする集積回路装置。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記データ保持回路は、
読み出したデータのうち先読み部分のみをCPUの要求データ幅単位で取り出し可能に保持することを特徴とする集積回路装置。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記判断回路は、
CPUの要求アドレスのうちデータ保持回路に保持されているデータのアドレスに共通する上位ビット分のアドレスを保持するアドレス保持回路を含み、
前記アドレス保持回路に保持されているアドレスとCPUの要求アドレスの対応ビット部分が一致した否か判断し、判断結果に基づきCPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする集積回路装置。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記CPUは、
プログラムカウンタのインクリメント信号を出力し、
前記キャッシュインターフェース回路の判断回路は、
前記インクリメント信号に基づき、CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする集積回路装置。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記キャッシュメモリは命令キャッシュであることを特徴とする集積回路装置。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記キャッシュメモリは、
データRAMに対するリード処理を行うデータリード部と、キャッシュミスが発生したときのリフィル処理を行うリフィル部とを含み、
前記キャッシュメモリがリフィル状態にある場合には、データリード部を低パワーに制御する回路を含むことを特徴とする集積回路装置。
【請求項10】
請求項1乃至9のいずれかに記載の集積回路装置を含むことを特徴とするマイクロコンピュータ。
【請求項11】
請求項10に記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器。
【請求項1】
集積回路装置であって、
CPUと、
キャッシュメモリと、
CPUの要求アドレスを受け、当該要求アドレスに基づき前記キャッシュメモリのデータを読み出して、CPUの要求アドレスに対応するデータをCPUに向け出力するキャッシュインターフェース回路と、
前記キャッシュメモリとキャッシュインターフェース回路に接続されCPUの要求データ幅よりも大きいバス幅を持つキャッシュデータバスと、
前記CPUとキャッシュインターフェース回路に接続されたCPUデータバスを含み、
前記キャッシュインターフェース回路は、
CPUから受け取った要求アドレスに基づき前記キャッシュデータバスを介して前記キャッシュメモリからCPUの要求データ幅よりも大きいキャッシュデータバスのバス幅分のデータを読み出すデータ読み出し回路と、
読み出したデータをCPUの要求データ幅単位で取り出し可能に保持するデータ保持回路と、
CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断し、保持されている場合には、CPUの要求アドレスに応じてキャッシュメモリへのアクセスを行わず、データ保持回路に保持されているCPUの要求アドレスに対応するデータを前記CPUデータバスを介してCPUにむけ出力する出力回路と、
CPUの要求アドレスに応じたキャッシュメモリへのアクセスを行わないサイクルはキャッシュメモリのクロックをストップ又は低パワーにするための低パワー制御信号を生成して出力する低パワー制御信号生成回路と、
を含むことを特徴とする集積回路装置。
【請求項2】
請求項1において、
前記キャッシュメモリは、
チップセレクト端子から前記低パワー制御信号を入力し、
当該前記低パワー制御信号に基づき、キャッシュメモリ内のクロックの停止又は消費電流が低減するように制御する低パワー制御回路を含むことを特徴とする集積回路装置。
【請求項3】
請求項1において、
前記低パワー制御信号に基づき前記キャッシュメモリに供給するクロックを制御するクロック制御回路を含み、
前記キャッシュメモリは、
クロック制御端子からクロック制御回路によって制御されたクロック信号を入力するように構成されることを特徴とする集積回路装置。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記キャッシュデータバスのバス幅は、CPUの要求データ幅の2のn乗倍であることを特徴とする集積回路装置。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記データ保持回路は、
読み出したデータのうち先読み部分のみをCPUの要求データ幅単位で取り出し可能に保持することを特徴とする集積回路装置。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記判断回路は、
CPUの要求アドレスのうちデータ保持回路に保持されているデータのアドレスに共通する上位ビット分のアドレスを保持するアドレス保持回路を含み、
前記アドレス保持回路に保持されているアドレスとCPUの要求アドレスの対応ビット部分が一致した否か判断し、判断結果に基づきCPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする集積回路装置。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記CPUは、
プログラムカウンタのインクリメント信号を出力し、
前記キャッシュインターフェース回路の判断回路は、
前記インクリメント信号に基づき、CPUの要求アドレスのデータが前記データ保持回路に保持されているか否か判断することを特徴とする集積回路装置。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記キャッシュメモリは命令キャッシュであることを特徴とする集積回路装置。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記キャッシュメモリは、
データRAMに対するリード処理を行うデータリード部と、キャッシュミスが発生したときのリフィル処理を行うリフィル部とを含み、
前記キャッシュメモリがリフィル状態にある場合には、データリード部を低パワーに制御する回路を含むことを特徴とする集積回路装置。
【請求項10】
請求項1乃至9のいずれかに記載の集積回路装置を含むことを特徴とするマイクロコンピュータ。
【請求項11】
請求項10に記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2006−285760(P2006−285760A)
【公開日】平成18年10月19日(2006.10.19)
【国際特許分類】
【出願番号】特願2005−106300(P2005−106300)
【出願日】平成17年4月1日(2005.4.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成18年10月19日(2006.10.19)
【国際特許分類】
【出願日】平成17年4月1日(2005.4.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]