(57)【要約】【課題】キャッシュ・メモリの容量を削減すると共に、ＣＰＵの性能低下を防ぐ。【解決手段】前回のリード・アドレスと連続しない非順次アドレスへのリードである非順次リードがあったときに、第１のキャッシュ・メモリ回路２７０により該非順次アドレス、および該非順次アドレスに続くｎ個（ｎ：１以上の整数）のアドレスのデータを順次キャッシングすると共に、キャッシングしたｎ個のアドレスのデータを第２のキャッシュンメモリ回路２８０に保存する。その後、次の非順次リードがなされるまで、第１のキャッシュ・メモリ回路２７０を介さずに、ｎ個のアドレスの末尾のアドレスに続くアドレスのデータをメモリから第２のキャッシュ・メモリ回路２８０に順次読み出して保存する。非順次リードに続く各順次リードに対して、第２のキャッシュ・メモリ回路２８０から該順次リードのリード・アドレスのデータを出力する。【選択図】図１
2008257508.tif 000002
【特許請求の範囲】
【請求項１】
前回のリード・アドレスと連続しない非順次アドレスへのリードである非順次リードがあったときに、第１のキャッシュ・メモリ回路により該非順次アドレス、および該非順次アドレスに続くｎ個（ｎ：１以上の整数）のアドレスのデータを順次キャッシングすると共に、キャッシングした前記ｎ個のアドレスのデータを第２のキャッシュンメモリ回路に保存する工程と、
その後、次の非順次リードがなされるまで、前記第１のキャッシュ・メモリ回路を介さずに、前記ｎ個のアドレスの末尾のアドレスに続くアドレスのデータをメモリから前記第２のキャッシュ・メモリ回路に順次読み出して保存する工程と、
前記非順次リードに続く各順次リードに対して、前記第２のキャッシュ・メモリ回路から該順次リードのリード・アドレスのデータを出力する工程とを有することを特徴とするキャッシュ制御方法。
【請求項２】
前記個数ｎは、前記非順次アドレスに続くｎ個のアドレスのデータが第１のキャッシュ・メモリ回路に保存されている場合において、前記非順次リードに続く各順次リードのうちの（ｎ＋１）回の順次リードの開始時に、そのリード・アドレスのデータが既に第２のキャッシュ・メモリ回路に保存されていることを条件に定められていることを特徴とする請求項１に記載のキャッシュ制御方法。
【請求項３】
前記個数ｎは、前記条件を満たすように定められた整数のうちの最も小さい整数であることを特徴とする請求項２に記載のキャッシュ制御方法。
【請求項４】
ＣＰＵ（Ｃｅｒｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）がリードを行う際にリード・アドレスと共に出力する信号であって、該リードが非順次リードであるか否かを示す非順次リード信号に基づいて、非順次リードか否かの判定を行う工程を有することを特徴とする請求項１から３のいずれか１項に記載のキャッシュ制御方法。
【請求項５】
第１のキャッシュ・メモリ回路と、
第２のキャッシュ・メモリ回路と、
前回のリード・アドレスと連続しない非順次アドレスへのリードである非順次リードがあったときに、前記第１のキャッシュ・メモリ回路に該非順次アドレス、および該非順次アドレスに続くｎ個（ｎ：１以上の整数）のアドレスのデータを順次キャッシングさせると共に、キャッシングした前記ｎ個のアドレスのデータを前記第２のキャッシュンメモリ回路に保存させ、その後、次の非順次リードがなされるまで、前記第１のキャッシュ・メモリ回路を介さずに、前記ｎ個のアドレスの末尾のアドレスに続くアドレスのデータをメモリから読み出して前記第２のキャッシュ・メモリ回路に保存させる先読出処理部とを備え、
前記第２のキャッシュ・メモリ回路は、前記非順次リードに続く各順次リードに対して、該順次リードのリード・アドレスのデータを出力することを特徴とするキャッシュ装置。
【請求項６】
リード・アドレスを受信したときに該リード・アドレスのデータを前記メモリから読み出すキューをさらに備え、
前記先読出処理部は、
非順次リードがあったときに、該非順次リードのリード・アドレスである非順次アドレスに続くアドレスを先読アドレスとして生成して保持し、その後、次の非順次リードがなされるまで、保持中の先読みアドレスに続くアドレスを次の先読アドレスとして生成して保持すると共に、生成した先読アドレスを順次出力する先読アドレス・カウンタと、
非順次リードがあったときに、該非順次リードのリード・アドレスである非順次アドレスを保持すると共に、次の非順次リードがなされるまで、保持中の非順次アドレスを出力する非順次アドレス保持回路と、
前記先読アドレス・カウンタから出力された先読アドレスと、前記非順次アドレス保持回路から出力された非順次アドレスとを比較し、前記先読アドレスが前記非順次アドレスに続く前記ｎ個目までのアドレスである場合に、前記第１のキャッシュ・メモリ回路にアクセスすることを示すキャッシュ・アクセス信号を出力する一方、前記先読アドレスが前記非順次アドレスに続く前記ｎ個目以降のアドレスである場合に、前記第１のキャッシュ・メモリ回路にアクセスしないことを示す非キャッシュ・アクセス信号を出力する比較回路と、
該比較回路から前記キャッシュ・アクセス信号を受信した際に、前記先読アドレス・カウンタから出力された先読アドレスを、前記第１のキャッシュ・メモリ回路に出力するアドレスを選択する選択回路に出力する一方、前記非キャッシュ・アクセス信号を受信した際に、前記先読アドレス・カウンタから出力された先読アドレスを前記キューに出力する切替回路と、
前記選択回路であって、非順次リードがあったときに、該非順次リードのリード・アドレスである非順次アドレスを前記第１のキャッシュ・メモリ回路に出力する一方、その後、前記切替回路から受信した先読アドレスを前記第１のキャッシュ・メモリ回路に出力する選択回路とを有し、
前記第１のキャッシュ・メモリ回路は、前記選択回路から出力があったときに、該選択回路から出力された前記非順次アドレスまたは前記先読アドレスのデータをキャッシングすると共に、前記非順次アドレスに対してはそのデータを出力し、
前記第２のキャッシュ・メモリ回路は、前記第１のキャッシュ・メモリ回路のキャッシング動作および前記キューの読出動作に応じて、前記第１のキャッシュ・メモリ回路がキャッシングしたデータと、前記キューが前記切替回路から受信した先読アドレスに応じて前記メモリから読み出した該先読アドレスのデータを保存することを特徴とする請求項５に記載のキャッシュ装置。
【請求項７】
前記個数ｎは、前記非順次アドレスに続くｎ個のアドレスのデータが第１のキャッシュ・メモリ回路に保存されている場合において、前記非順次リードに続く各順次リードのうちの（ｎ＋１）回目の順次リードの開始時に、そのリード・アドレスのデータが既に第２のキャッシュ・メモリ回路に保存されていることを条件に定められていることを特徴とする請求項５または６に記載のキャッシュ装置。
【請求項８】
前記個数ｎは、前記条件を満たすように定められた整数のうちの最も小さい整数であることを特徴とする請求項７に記載のキャッシュ装置。
【請求項９】
先読出処理部は、ＣＰＵ（Ｃｅｒｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）がリードを行う際にリード・アドレスと共に出力する信号であって、該リードが非順次リードであるか否かを示す非順次リード信号に基づいて、非順次リードか否かの判定を行うことを特徴とする請求項５から８までのいずれか１項に記載のキャッシュ装置。
【請求項１０】
ＣＰＵ（Ｃｅｒｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、
メモリと、
ＣＰＵとメモリ間に接続され、請求項５から９のいずれか１項に記載のキャッシュ装置とを備えたことを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリに記憶されたデータをキャッシングする技術に関する。
【背景技術】
【０００２】
マイクロコンピュータシステムにおいて、実行プログラムやデータなどがメインメモリ（以下単にメモリという）に保存され、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は、メモリから実行プログラムやデータをリードしてプログラムを実行する。システムの処理速度は、ＣＰＵが実行プログラムやデータをリードする速度に左右される。
【０００３】
リード速度を速くするために、ＣＰＵとメモリ間に、メモリより動作速度が速いキャッシュメモリを設ける手法が用いられている。この手法は、ＣＰＵがリードする際の参照の局所性（ＬＯＦ：Ｌｏｃａｌｉｔｙ  ｏｆ  Ｒｅｆｅｒｅｎｃｅ）を利用したものである。ＬＯＦは時間的局所性と空間的局所性を含み、時間的局所性は、メモリ上のあるアドレスが参照されたとき、このアドレスが近い将来に再び参照される確率が高いことを意味し、空間的局所性は、メモリ上のあるアドレスが参照されたとき、このアドレスの近傍のアドレスが参照される確率が高いことを意味する。
【０００４】
キャッシュメモリを設けたシステムにおいて、このようなＬＯＦを利用して、参照される確率が高い実行プログラムやデータをメモリから読み出してキャッシュメモリに格納しておき、ＣＰＵがリードする実行プログラムやデータがキャッシュメモリにある場合にキャッシュメモリからＣＰＵに出力する。こうすることによって、ＣＰＵが実行プログラムやデータをリードするサイクル数を少なくでき、プログラムの実行サイクル数も少なくできる。
【０００５】
チップ上の実装面積やコストダウンなどのために、キャッシュメモリの容量を節減する様々な技術が提案されている。ここで図６を用いて特許文献１に記載された技術を説明する。
【０００６】
図６は、特許文献１の図１に示すキャッシュ装置に対して、各機能ブロックの名称を追記して分かりやすくしたものである。このキャッシュ装置は、プリフェッチアドレスレジスタ１と、比較回路内蔵レジスタ２、３、４と、キャッシュメモリ５、６、７と、命令キュ８、９、１０と、インストラクションレジスタ１１を有する。比較回路内蔵レジスタは、キャッシュメモリに記憶されている命令のアドレスを記憶するレジスタと、該レジスタの内容とプリフェッチアドレスレジスタ１の内容を比較する機能をもつ回路である。図中１２は、ジャンプ命令識別信号である。なお、特許文献１では、命令「キュ」などのように、待ち行列（ｑｕｅｕｅ）を「キュ」として記しているため、本明細書において、特許文献１について説明する際にそれに合わせて「キュ」を用いるが、本発明の説明の際には「キュー」と記載する。
【０００７】
命令キュ８、９、１０へは常に外部メモリから連続したアドレスの命令がプリフェッチされている。通常、ジャンプ命令（分岐命令ともいう）実行時以外は、ジャンプ命令識別信号１２により命令キュ８、９、１０から命令がインストラクションレジスタ１１に読み出される。一方、ジャンプ命令実行後の数命令について、比較回路内蔵レジスタによる比較結果に基づいて、プリフェッチアドレスレジスタ１に入力されたプリフェッチアドレスと一致した命令がキャッシュメモリからインストラクションレジスタ１１に読み出される。
【０００８】
プログラムは、通常、連続したアドレスの命令と、ジャンプ命令によって不連続に変化するアドレスの命令とからなる。この技術は、キャッシュメモリと命令キュを合わせもつことによって、ジャンプ命令実行時以外は命令キュ内の命令を実行し、ジャンプ命令実行後の数命令についてのみキャッシュメモリからの命令を実行する。すなわち、連続したアドレスの命令は命令キュに記憶されるので、連続したアドレスの命令の実行中には、キャッシュメモリとプリフェッチアドレスレジスタに記憶されたアドレスの比較動作が無い。また、キャッシュメモリは、ジャンプ命令実行後の数命令のみを記憶すればよいので、キャッシュメモリの容量を削減できる。
【特許文献１】特開昭６２−１５１９３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、特許文献１に記載の技術では、ＣＰＵが命令キュを経由して、連続したアドレスの命令をリードしている。ＣＰＵとメモリの動作速度の差が小さい時代には、リード時にこのように命令キュの介在があってもＣＰＵの性能の低下はそれほど無かった。しかし、近年、ＣＰＵの動作速度とメモリの動作速度の差が数倍以上になることが多く、命令キューにデータが保存されるまでに時間がかかるため、命令キュを経由して連続した命令するをリードするＣＰＵの性能が大幅に低下してしまうという問題がある。
【課題を解決するための手段】
【００１０】
本発明の一つの態様は、キャッシュ制御方法である。この方法は、前回のリード・アドレスと連続しない非順次アドレスへのリードである非順次リードがあったときに、第１のキャッシュ・メモリ回路により該非順次アドレス、および該非順次アドレスに続くｎ個（ｎ：１以上の整数）のアドレスのデータを順次キャッシングすると共に、キャッシングしたｎ個のアドレスのデータを第２のキャッシュンメモリ回路に保存する。その後、次の非順次リードがなされるまで、第１のキャッシュ・メモリ回路を介さずに、このｎ個のアドレスの末尾のアドレスに続くアドレスのデータをメモリから第２のキャッシュ・メモリ回路に順次読み出して保存する。そして、非順次リードに続く各順次リードに対して、第２のキャッシュ・メモリ回路から該順次リードのリード・アドレスのデータを出力する。
【００１１】
なお、上記態様を装置やシステム、または上記方法を実現する装置を備えたマイクロコンピュータとして表現したものも、本発明の態様としては有効である。
【発明の効果】
【００１２】
本発明の技術によれば、キャッシュ・メモリの容量を削減すると共に、ＣＰＵの性能低下を防ぐことができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施の形態について説明する。
【００１４】
図１は、本発明の実施の形態にかかるマイクロコンピュータ１００を示す。マイクロコンピュータ１００は、ＣＰＵ１１０と、キャッシュ・コントローラ２００と、メモリ・コントローラ１２０と、メインメモリ（以下単にメモリという）１３０を備える。ここで、本発明の主旨が分かりやすいように、本発明と関連する部分についてのみ図示し、マイクロコンピュータに通常備えられている他の部分については図示および説明を省略する。
【００１５】
キャッシュ・コントローラ２００は、キャッシュ装置としてＣＰＵ１１０とメモリ・コントローラ１２０の間に接続されている。図１に示すように、キャッシュ・コントローラ２００は、ＣＰＵ１１０と接続するインターフェース回路（以下Ｉ／Ｆ回路という）２１０と、先読みアドレス・カウンタ２２０と、非順次アドレス保持回路２３０と、アドレス比較回路２４０と、切替回路２５０と、選択回路２６０と、第１のキャッシュ・メモリ回路２７０と、第２のキャッシュ・メモリ回路２８０と、キュー２９０を備える。
【００１６】
ＣＰＵ１１０がリードするデータは２つの種類があり、１つは実行する命令のデータであり、１つは命令以外のデータである。ＣＰＵは、命令のデータをリードする際には該命令のデータのアドレス（フェッチ・アドレス）を出力し、命令以外のデータをリードする際には当該データのアドレスを出力する。以下の説明において、データの種類に関わらず、ＣＰＵ１１０がリードするデータを単に「データ」といい、ＣＰＵ１１０がリードするために出力したアドレスを「リード・アドレス」という。
【００１７】
ＣＰＵ１１０は、データをリードする際に、当該データのアドレスをリード・アドレスとして出力する。また、ＣＰＵ１１０は、リード・アドレスの出力に伴い、今回出力するリード・アドレスが、前回リードしたデータのアドレスの順次アドレスであるか否かを示す信号Ｓ１を出力する。
【００１８】
「順次アドレス」は、前回のリード・アドレスと連続したアドレスを意味する。順次アドレスではないアドレスは、前回のリード・アドレスと連続していないアドレスを意味し、以下「非順次アドレス」という。また、以下の説明において、順次アドレスのリードを「順次リード」といい、非順次アドレスのリードを「非順次リード」という。
【００１９】
本実施の形態のマイクロコンピュータ１００において、今回のリード・アドレスが順次アドレスであるか非順次アドレスであるかを示す信号Ｓ１は、「ハイ」のときには非順次アドレスであることを示し、「ロウ」のときには順次アドレスであることを示す。以下、この信号を非順次信号という。ＣＰＵ１１０は、順次アドレスを出力する際に非順次信号Ｓ１にロウを出力し、非順次アドレスを出力する際に非順次信号Ｓ１にハイを出力する。
【００２０】
ＣＰＵ１１０が出力したリード・アドレスと非順次信号Ｓ１は、キャッシュ・コントローラ２００に入力される。具体的には、リード・アドレスは、アドレス・バス１１１を介してＩ／Ｆ回路２１０に入力され、非順次信号Ｓ１は、先読みアドレス・カウンタ２２０と、非順次アドレス保持回路２３０と、選択回路２６０に入力される。
【００２１】
Ｉ／Ｆ回路２１０は、ＣＰＵ１１０からのリード・アドレスを、第２のキャッシュ・アドレス入力バス２８１を介して第２のキャッシュ・メモリ回路２８０に出力すると共に、リード・アドレス・バス２１１を介して先読みアドレス・カウンタ２２０と、非順次アドレス保持回路２３０と、選択回路２６０に出力する。
【００２２】
また、Ｉ／Ｆ回路２１０は、第２のキャッシュ・データ出力バス２８２または第１のキャッシュ・データ出力バス２７２にデータが出力された際に、データ・バス１１２を介してこのデータをＣＰＵ１１０に出力する。第２のキャッシュ・データ出力バス２８２に出力されるデータは第２のキャッシュ・メモリ回路２８０からのものであり、第１のキャッシュ・データ出力バス２７２に出力されるデータは第１のキャッシュ・メモリ回路２７０からのものである、この２つのキャッシュ・メモリ回路については後述する。
【００２３】
先読みアドレス・カウンタ２２０と、非順次アドレス保持回路２３０と、アドレス比較回路２４０と、切替回路２５０と、選択回路２６０と、キュー２９０は、非順次リードがあったときに行う先読出処理を行う先読出処理部として機能する。
【００２４】
先読みアドレス・カウンタ２２０は、Ｉ／Ｆ回路２１０とＣＰＵ１１０からリード・アドレスと非順次信号Ｓ１を受信し、非順次信号Ｓ１に応じて先読みアドレスを生成する。
【００２５】
具体的には、リード・アドレスが非順次アドレスである場合すなわち非順次信号Ｓ１がハイである場合において、先読みアドレス・カウンタ２２０は、このアドレスに１を加算して得た「リード・アドレス＋１」を先読みアドレスとして生成して保持すると共に、先読みアドレス・バス２２１を介してアドレス比較回路２４０と切替回路２５０に出力する。
【００２６】
一方、リード・アドレスが順次アドレスである場合すなわち非順次信号Ｓ１がロウである場合において、先読みアドレス・カウンタ２２０は、自身が保持しているアドレス（以下保持アドレスという）に１を加算して得た「保持アドレス＋１」を先読みアドレスとして生成して保持すると共に、先読みアドレス・バス２２１を介してアドレス比較回路２４０と切替回路２５０に出力する。
【００２７】
非順次アドレス保持回路２３０は、Ｉ／Ｆ回路２１０とＣＰＵ１１０からリード・アドレスと非順次信号Ｓ１を受信し、非順次信号Ｓ１がハイであるときすなわちリード・アドレスが非順次アドレスであるときにこのアドレスを保持すると共に、非順次アドレス信号Ｓ２としてアドレス比較回路２４０を介してアドレス比較回路２４０に出力する。また、非順次信号Ｓ１がロウであるときには保持した非順次アドレスをアドレス比較回路２４０に出力する。
【００２８】
すなわち、リード・アドレスが順次アドレスである場合には、アドレス比較回路２４０に、先読みアドレス・カウンタ２２０からの先読みアドレス（「保持アドレス＋１」）と、非順次アドレス保持回路２３０に保持された非順次アドレスとが入力される。一方、リード・アドレスが非順次アドレスである場合には、アドレス比較回路２４０に、先読みアドレス・カウンタ２２０により生成された先読みアドレス（「リード・アドレス＋１」）と、非順次アドレス保持回路２３０からの該リード・アドレスとが入力される。
【００２９】
アドレス比較回路２４０は、先読みアドレスと非順次アドレス信号Ｓ２とを比較し、比較結果に応じて第１のキャッシュ・メモリ回路２７０にキャッシングさせるか否かを制御する信号（キャッシュ・アクセス信号）Ｓ３を出力する。具体的には、非順次アドレス信号Ｓ２の次のｎ（ｎ：１以上の整数）個目までのアドレスである先読出アドレスに対して、アドレス比較回路２４０は、キャッシュ・アクセスをすることを示すキャッシュ・アクセス信号Ｓ３を出力する。一方、非順次アドレス信号Ｓ２の次の「ｎ＋１」個目からのアドレスである先読出アドレスに対して、アドレス比較回路２４０は、キャッシュ・アクセスをしないことを示すキャッシュ・アクセス信号Ｓ３を出力する。
【００３０】
本実施の形態において、キャッシュ・アクセス信号Ｓ３がハイであるときにはキャッシュ・アクセスすることを示し、キャッシュ・アクセス信号Ｓ３がロウであるときにはキャッシュ・アクセスしないことを示す。アドレス比較回路２４０は、比較結果に応じてハイかロウのキャッシュ・アクセス信号Ｓ３を出力する。
【００３１】
キャッシュ・アクセス信号Ｓ３は、切替回路２５０に出力される。切替回路２５０は、キャッシュ・アクセス信号Ｓ３に応じて、先読みアドレス・カウンタ２２０からの先読みアドレスを選択回路２６０に与えるか、キュー２９０に与えるかの切替えを行う。具体的に、切替回路２５０は、キャッシュ・アクセス信号Ｓ３がキャッシュ・アクセスすることを示すハイであるときには、先読みキャッシュ・アドレス・バス２５３を介して先読みアドレスを選択回路２６０に出力する一方、キャッシュ・アクセス信号Ｓ３がロウであるときには、先読みキュー・セット・アドレス・バス２５１を介して先読みアドレスをキュー２９０に出力する。
【００３２】
選択回路２６０は、Ｉ／Ｆ回路２１０からのリード・アドレスと、切替回路２５０からの先読みアドレスのうちのいずれを第１のキャッシュ・メモリ回路２７０に出力するかを選択する。具体的には、非順次信号Ｓ１がハイであるときに、選択回路２６０は、Ｉ／Ｆ回路２１０からのリード・アドレスを第１のキャッシュ・アドレス入力バス２７１に出力する。一方、非順次信号Ｓ１がロウであるときに、選択回路２６０は、切替回路２５０からの先読みアドレスを第１のキャッシュ・アドレス入力バス２７１に出力する。
【００３３】
第１のキャッシュ・アドレス入力バス２７１に出力されたアドレス（Ｉ／Ｆ回路２１０からのリード・アドレス、または先読みアドレス）が第１のキャッシュ・メモリ回路２７０に入力される。第１のキャッシュ・メモリ回路２７０は、選択回路２６０から第１のキャッシュ・アドレス入力バス２７１にアドレスが出力された場合においてのみキャッシュ動作をする。
【００３４】
第１のキャッシュ・メモリ回路２７０は、キャッシュ動作をするのにあたり、選択回路２６０からのアドレス（リード・アドレスまたは先読みアドレス）が自身に保存されているか否かを確認する。
【００３５】
保存されていれば、第１のキャッシュ・メモリ回路２７０は、そのアドレスに対応するデータ（キャッシュ・データ）を、第１のキャッシュ・データ出力バス２７２を介してＩ／Ｆ回路２１０に出力すると共に、キャッシュ・リード・アドレス・データ・バス２７５を介して該アドレスおよび該アドレスに対応するデータを第２のキャッシュ・メモリ回路２８０に出力する。
【００３６】
一方、保存されていなければ、第１のキャッシュ・メモリ回路２７０は、キャッシュ・アドレス出力バス２７３を介して、選択回路２６０からのアドレスをキュー２９０に出力する。また、第１のキャッシュ・メモリ回路２７０は、選択回路２６０からのアドレスを出力した後に、このアドレスに対応するデータがメモリ・コントローラ１２０からメモリ・リード・アドレス・データ・バス１２２に出力されたとき、このデータとこのデータのアドレスを保存する。
【００３７】
キュー２９０は、第１のキャッシュ・メモリ回路２７０がキャッシュ・アドレス出力バス２７３にアドレス（Ｉ／Ｆ回路２１０からのアドレスまたは先読みアドレス）が出力されたときにこのアドレスを保持すると共に、メモリ・リード・アドレス・バス１２１を介してメモリ・コントローラ１２０に出力する。また、切替回路２５０から先読みキュー・セット・アドレス・バス２５１に先読みアドレスが出力されたときにも、キュー２９０は、この先読みアドレスを保持すると共に、メモリ・リード・アドレス・バス１２１を介してメモリ・コントローラ１２０に出力する。
【００３８】
メモリ・コントローラ１２０は、メモリ１３０を制御する回路であり、メモリ・リード・アドレス・バス１２１を介してキュー２９０から出力されたアドレスを、メモリ・アドレス・バス１３１を介してメモリ１３０に出力してリード要求をする。また、このリード要求に従ってメモリ１３０から、当該アドレスに対応するデータがメモリ・データ・バス１３２に出力されたときに、このデータとこのデータに対応するアドレスを、メモリ・リード・アドレス・データ・バス１２２に出力する。
【００３９】
第２のキャッシュ・メモリ回路２８０は、第２のキャッシュ・アドレス入力バス２８１を介してＩ／Ｆ回路２１０からリード・アドレスが出力されたとき、このリード・アドレスに対応するデータが自身に保存されているか否かを確認する。保存されていれば、第２のキャッシュ・データ出力バス２８２を介してそのデータをＩ／Ｆ回路２１０に出力する。
【００４０】
第２のキャッシュ・メモリ回路２８０は、第１のキャッシュ・メモリ回路２７０がキャッシュ・リード・アドレス・データ・バス２７５にデータおよびこのデータに対応するアドレスを出力したとき、このデータとアドレスを保存する。また、メモリ・コントローラ１２０がメモリ・リード・アドレス・データ・バス１２２にデータおよびこのデータに対応するアドレスを出力したときも、このデータとアドレスを保存する。
【００４１】
第１のキャッシュ・メモリ回路２７０と第２のキャッシュ・メモリ回路２８０は、通常のキャッシュメモリと同じように複数のエントリから構成される。図２は、このエントリ３００は、アドレス３０１と、アドレス３０１に対応するデータデータ３０２と、アドレス３０１とデータ３０２が有効であるか無効であるかを示す有効ビット３０３から構成される。
【００４２】
次に具体例を用いて図１に示すマイクロコンピュータ１００の動作を具体的に説明する。
【００４３】
まず、アドレス０からアドレス３までのデータが第１のキャッシュ・メモリ回路２７０と第２のキャッシュ・メモリ回路２８０に保存されていない状態で、ＣＰＵ１１０が非順次アドレスとしてアドレス０からリードを行う場合について説明する。
【００４４】
ＣＰＵ１１０は、アドレス０をアドレス・バス１１１に出力している期間においてのみ非順次信号Ｓ１をハイにし、次の非順次アドレスをアドレス・バス１１１に出力するまでは非順次信号Ｓ１をロウにする。
【００４５】
ＣＰＵ１１０は、非順次信号Ｓ１をハイにすると共に、アドレス・バス１１１を介してアドレス０をＩ／Ｆ回路２１０に出力する。
【００４６】
Ｉ／Ｆ回路２１０は、アドレス０を第２のキャッシュ・メモリ回路２８０、先読みアドレス・カウンタ２２０、非順次アドレス保持回路２３０、選択回路２６０に出力する。
【００４７】
第２のキャッシュ・メモリ回路２８０は、自身の各エントリとアドレス０を比較する。この場合、アドレス０のデータが保存されていないため、ミスヒットとなる。
【００４８】
先読みアドレス・カウンタ２２０は、非順次信号Ｓ１がハイであるため、先読みアドレス（「アドレス０＋１」＝アドレス１）を生成して保持する共に、先読みアドレスとなるアドレス１をアドレス比較回路２４０と切替回路２５０に出力する。
【００４９】
また、非順次アドレス保持回路２３０は、非順次信号Ｓ１がハイであるため、非順次アドレスとなるアドレス０を保持すると共に、非順次アドレス信号Ｓ２としてアドレス比較回路２４０に出力する。
【００５０】
アドレス比較回路２４０は、先読みアドレス・カウンタ２２０からの先読みアドレスと、非順次アドレス保持回路２３０からの非順次アドレス信号Ｓ２とを比較し、比較の結果に応じてキャッシュ・アクセス信号Ｓ３をハイかロウ出力する。
【００５１】
本具体例において、アドレス比較回路２４０は、ｎとして３を用いて、非順次アドレス信号Ｓ２の次の３個目までのアドレスである先読出アドレスに対して、キャッシュ・アクセス信号Ｓ３をハイ出力する一方、非順次アドレス信号Ｓ２の次の４個目からのアドレスである先読出アドレスに対して、キャッシュ・アクセス信号Ｓ３をロウ出力する。
【００５２】
ここで、先読みアドレス（アドレス１）が非順次アドレス信号Ｓ２（アドレス０）の次の１個目のアドレスであるため、アドレス比較回路２４０はキャッシュ・アクセス信号Ｓ３をハイ出力する。
【００５３】
切替回路２５０は、キャッシュ・アクセス信号Ｓ３がハイであるため、先読みアドレス・カウンタ２２０からの先読みアドレス（アドレス１）を選択回路２６０に出力する。
【００５４】
選択回路２６０は、非順次信号Ｓ１がハイであるため、Ｉ／Ｆ回路２１０からのアドレス０と、切替回路２５０からのアドレス１からアドレス０を選択して第１のキャッシュ・メモリ回路２７０に出力する。
【００５５】
第１のキャッシュ・メモリ回路２７０は、自身の各エントリとアドレス０を比較する。この場合、アドレス０のデータが保存されていないため、ミスヒットとなる。第１のキャッシュ・メモリ回路２７０は、キュー２９０にアドレス０を出力する。
【００５６】
キュー２９０は、アドレス０を保持すると共に、メモリ・コントローラ１２０に出力する。これに応じて、アドレス０に対応するデータがメモリ・コントローラ１２０によりメモリ１３０から読み出される。このデータは、アドレス０と共に、メモリ・リード・アドレス・データ・バス１２２に出力される。
【００５７】
第１のキャッシュ・メモリ回路２７０は、メモリ・リード・アドレス・データ・バス１２２に出力されたデータを、第１のキャッシュ・データ出力バス２７２を介してＩ／Ｆ回路２１０に出力すると共に、アドレス０と共に保存する。
【００５８】
第２のキャッシュ・メモリ回路２８０は、メモリ・リード・アドレス・データ・バス１２２に出力されたアドレス０とデータを保存する。
【００５９】
Ｉ／Ｆ回路２１０は、第１のキャッシュ・データ出力バス２７２に出力されたデータをデータ・バス１１２に出力する。アドレス０のデータがデータ・バス１１２に出力され、ＣＰＵ１１０により取り込まれることをもって、ＣＰＵ１１０によるアドレス０のデータのリードが終了する。
【００６０】
なお、ＣＰＵ１１０は、アドレス０をＣＰＵ１１０に出力した後、非順次信号Ｓ１をロウにしている。
【００６１】
先読みアドレス・カウンタ２２０は、非順次信号Ｓ１が次にハイになるまで、アドレス１、アドレス２、アドレス３、・・・のように連続した先読みアドレスを順次生成して切替回路２５０とアドレス比較回路２４０に出力する。なお、この間、非順次信号Ｓ１がロウであり、非順次アドレス保持回路２３０から出力される非順次アドレス信号Ｓ２はアドレス０のままである。
【００６２】
先読みアドレス・カウンタ２２０により先読みアドレスとしてアドレス１、アドレス２、アドレス３を生成して出力しているとき、これらの先読みアドレスが非順次アドレス信号Ｓ２（アドレス０）の次の３個目までのアドレスであるため、アドレス比較回路２４０からのキャッシュ・アクセス信号Ｓ３はハイである。そのため、切替回路２５０は、先読みアドレスを選択回路２６０に出力する。また、非順次信号Ｓ１がロウであるので、選択回路２６０は、切替回路２５０からの先読みアドレスを第１のキャッシュ・メモリ回路２７０に出力する。これにより、アドレス１、アドレス２、アドレス３のデータがメモリ１３０から読み出され、第１のキャッシュ・メモリ回路２７０と第２のキャッシュ・メモリ回路２８０に保存される。
【００６３】
一方、先読みアドレス・カウンタ２２０が先読みアドレスとしてアドレス４を生成して出力したとき、アドレス４がアドレス０からの４個目のアドレスであるため、アドレス比較回路２４０からのキャッシュ・アクセス信号Ｓ３はロウとなる。そのため、切替回路２５０は、アドレス４をキュー２９０に出力する。この場合、第１のキャッシュ・メモリ回路２７０がキュー２９０にアドレス４を出力したわけではないので、キュー２９０とメモリ・コントローラ１２０を介してメモリ１３０から読みだされたアドレス４のデータとアドレス４は、第２のキャッシュ・メモリ回路２８０にのみ保存される。
【００６４】
すなわち、ＣＰＵ１１０が一度非順次アドレスのリードを行った後、次の非順次リードまで、この非順次アドレスに続くアドレス（先読みアドレス）のデータが順にメモリ１３０から読み出される。また、この非順次アドレスの次の３個目までのアドレスである先読出アドレスについては、そのデータが第１のキャッシュ・メモリ回路２７０と第２のキャッシュ・メモリ回路２８０の両方に保存されるが、非順次アドレスの次の４個目からのアドレスである先読みアドレスについては、そのデータが第２のキャッシュ・メモリ回路２８０にのみ保存される。
【００６５】
ＣＰＵ１１０が非順次アドレスとなるアドレス０のリード後、順次アドレスとしてアドレス１以降のリードをするときに、順次アドレスがアドレス・バス１１１に出力されるとき該順次アドレスのデータが既に先読みによって第２のキャッシュ・メモリ回路２８０に保存されている。そのため、順次リードの場合において、該順次リードの開始時に、第２のキャッシュ・メモリ回路２８０は、該順次リードのリード・アドレスのデータをＣＰＵ１１０に出力できる状態にある。
【００６６】
このように、一度の非順次リードがあった後に、非順次アドレスと非順次アドレスに続く３個のアドレス計４個の連続したアドレスのデータが第１のキャッシュ・メモリ回路２７０と第２のキャッシュ・メモリ回路２８０に保存される。該順次アドレスの次の４個目からのアドレスのデータが第２のキャッシュ・メモリ回路２８０にのみ保存されている。
【００６７】
次に、アドレス０からアドレス３までのデータが第１のキャッシュ・メモリ回路２７０に保存されている状態で、ＣＰＵ１１０が非順次アドレス０から連続したアドレスのデータをリードする場合について説明する。
【００６８】
この場合、アドレス０のデータが第１のキャッシュ・メモリ回路２７０に保存されているため、第１のキャッシュ・メモリ回路２７０からアドレス０のデータが第１のキャッシュ・データ出力バス２７２を介してＣＰＵ１１０に出力される。
【００６９】
その後、先読みアドレス・カウンタ２２０により先読みアドレスとして生成したアドレス１、アドレス２、アドレス３は、第１のキャッシュ・メモリ回路２７０に与えられる。第１のキャッシュ・メモリ回路２７０に保存されたこれらのアドレスおよび相対応するデータは、第１のキャッシュ・メモリ回路２７０からキャッシュ・リード・アドレス・データ・バス２７５を介して第２のキャッシュ・メモリ回路２８０に出力され、第２のキャッシュ・メモリ回路２８０に保存される。
【００７０】
また、先読みアドレス・カウンタ２２０により生成したアドレス４以降の先読みアドレスは、キュー２９０に与えられる。キュー２９０とメモリ・コントローラ１２０を介してメモリ１３０から読み出されたこれらの先読みアドレスに対応するデータは、相対応するアドレスと共に第２のキャッシュ・メモリ回路２８０にのみ保存される。
【００７１】
その後、ＣＰＵ１１０が順次アドレスとしてアドレス１以降のデータをリードするときに、リード開始時に該リードのアドレスに対応するデータが既に先読みによって第２のキャッシュ・メモリ回路２８０に保存されている。そのため、第２のキャッシュ・メモリ回路２８０から該当データがＣＰＵ１１０に出力される。
【００７２】
次いで、図３〜図５のタイミングチャートを参照して、本実施の形態のマイクロコンピュータ１００において、ＣＰＵ１１０がデータをリード際にかかるについて詳細に説明する。
【００７３】
図３〜図５のタイミングチャートにおいて、Ａ０〜Ａ７はアドレスを示し、Ｄ０〜Ｄ７はそれぞれのアドレスに対応するデータを示す。Ｈｉｔは、選択回路２６０が第１のキャッシュ・アドレス入力バス２７１に与えたアドレスのデータが第１のキャッシュ・メモリ回路２７０に保存されている場合を示し、Ｍｉｓは、選択回路２６０が第１のキャッシュ・アドレス入力バス２７１に与えたアドレスのデータが第１のキャッシュ・メモリ回路２７０に保存されていない場合を示す。
【００７４】
図３は上述した具体例に用いられたメモリ１３０の動作タイミングチャートである。メモリ１３０はレイテンシ４のメモリである。
【００７５】
図３に示すように、メモリ・アドレス・バス１３１にアドレスが与えられてから、クロックの４サイクル後に、該アドレスに対応するデータがメモリ・データ・バス１３２に出力される。すなわち、メモリ１３０からデータをリードする際に、メモリ・アドレス・バス１３１にアドレスを与える頻度と、データがメモリ・データ・バス１３２に出力される頻度は、最も速くても３サイクル毎に１回である。
【００７６】
図４は、第１のキャッシュ・メモリ回路２７０に保存されているデータと保存されていないデータを非順次リードする際のそれぞれのタイミングチャートである。
【００７７】
図４に示すように、第１のキャッシュ・メモリ回路２７０に非順次アドレスＡ０のデータＤ０が保存されている場合に、ＣＰＵ１１０がアドレス・バス１１１にアドレスＡ０を出力したサイクルと同じサイクルに、アドレスＡ０が第１のキャッシュ・アドレス入力バス２７１に出力される。アドレスＡＯのデータＤ０が第１のキャッシュ・メモリ回路２７０に保存されているので、Ｈｉｔとして次のサイクルでデータＤ０が第１のキャッシュ・メモリ回路２７０から、第１のキャッシュ・データ出力バス、データ・バス１１２を介してＣＰＵ１１０に出力される。
【００７８】
また、第１のキャッシュ・メモリ回路２７０に非順次アドレスＡ５のデータＤ５が保存されていない場合に、ＣＰＵ１１０がアドレス・バス１１１にアドレスＡ５を出力すると、第１のキャッシュ・メモリ回路２７０にデータＤ５が無い（Ｍｉｓ）の判定に２サイクルがかかり、メモリ１３０からデータＤ５をメモリ・データ・バス１３２に読み出すのに４サイクルかかり、データＤ５がメモリ・データ・バス１３２に出力されてからデータ・バス１１２に出力されるまで１サイクルかかるため、ＣＰＵ１１０がアドレス・バス１１１にアドレスＡ５を与えてから７サイクル後にデータ・バス１１２にデータＤ５が出力される。
【００７９】
ＣＰＵ１１０が３サイクルに一度の頻度でリードする場合を例にする。また、第１のキャッシュ・メモリ回路２７０には、ＣＰＵ１１０から出力された非順次アドレスおよび該非順次アドレスの次の３個目までのアドレスのデータが保存されていないとする。
【００８０】
この場合、ＣＰＵ１１０が非順次リードをするために非順次アドレスをアドレス・バス１１１に出力してから７サイクル後に、非順次アドレスのデータがデータ・バス１１２に出力される。
【００８１】
この間、非順次アドレスキャッシュ・コントローラ２００において先読出がなされ、ＣＰＵ１１０が順次アドレスとして「非順次アドレス＋１」をアドレス・バス１１１に出力するときに、「非順次アドレス＋１」のデータが既に第２のキャッシュ・メモリ回路２８０に保存されているため、ＣＰＵ１１０が「非順次アドレス＋１」を出力したサイクルの次のサイクルに、データ・バス１１２に「非順次アドレス＋１」のデータが出力される。
【００８２】
すなわち、本具体例において、第１のキャッシュ・メモリ回路２７０にデータが保存されていない順次アドレスに対しても、ＣＰＵ１１０が３サイクル毎にリードすることができる。
【００８３】
次に、図５を参照して第１のキャッシュ・メモリ回路２７０には、ＣＰＵ１１０から出力された非順次アドレスおよび該非順次アドレスの次の３個目までのアドレスのデータが保存されている場合を説明する。この非順次アドレスをアドレス０とする。
【００８４】
図５に示すように、このとき、アドレスＡ０のデータＤ０が第１のキャッシュ・メモリ回路２７０にあるため、ＣＰＵ１１０が１サイクル目にアドレス・バス１１１にアドレスＡ０を与えてから１サイクル後の２サイクル目にデータＡ０がデータ・バス１１２に出力される。
【００８５】
そして、３サイクル目に先読みアドレス・カウンタ２２０が先読みアドレスとしてアドレスＡ１を先読みアドレス・バス２２１に出力することにより先読みが行われるが、アドレスＡ１のデータＤ１も第１のキャッシュ・メモリ回路２７０に保存されているため、１サイクル後の４サイクル目にアドレスＡ１とデータＤ１が第２のキャッシュ・メモリ回路２８０に保存される。
【００８６】
そのため、４サイクル目にＣＰＵ１１１がアドレス・バス１１１に出力したアドレスＡ１に対して、１サイクル後の５サイクル目に、データＤ１が第２のキャッシュ・メモリ回路２８０からデータ・バス１１２に出力される。
【００８７】
アドレスＡ２とＡ３のデータＤ２、Ｄ３も同じように、５サイクル目と６サイクル目でそれぞれ第２のキャッシュ・メモリ回路２８０に保存される。そして、ＣＰＵ１１０が７サイクル目にアドレスＡ２をアドレス・バス１１１に出力した１サイクル後の８サイクル目にデータＤ２がデータ・バス１１２に出力され、ＣＰＵ１１０が１０サイクル目にアドレスＡ３をアドレス・バス１１１に出力した１サイクル後の１１サイクル目にデータＤ３がデータ・バス１１２に出力される。
【００８８】
キャッシュ・コントローラ２００は、アドレスＡ１〜Ａ３までは、ＣＰＵ１１０がアドレスを与えてから１サイクル後に対応するデータをデータ・バス１１２に出力可能となったため、アドレスＡ４の先読みは、ＣＰＵ１１０がアドレスＡ０をアドレス・バス１１１に与えてから５サイクル後の６サイクル目で可能となる。
【００８９】
さらに、先読みアドレスとしてアドレスＡ４を第１のキャッシュ・アドレス入力バス２７１に与えてから、データＡ４が７サイクル後の１３サイクル目にメモリ・データ・バス１３２に出力されるため、ＣＰＵ１１０が１サイクル目にアドレスＡ０をアドレス・バス１１１に与えてから、アドレスＡ４のデータＤ４がＣＰＵ１１０に出力可能になるのは、１２サイクル後になる。
【００９０】
ＣＰＵ１１０が３サイクル毎にリードをする場合、アドレスＡ４のデータＤ４が必要になるのは、アドレスＡ０がアドレス・バス１１１に与えられてから１３サイクル後の１４サイクル目である。そのため、ＣＰＵ１１０がアドレスＡ４をアドレス・バス１１１に与えて１サイクル後に、第２のキャッシュ・メモリ回路２８０からデータＤ４をデータ・バス１１２に出力できる。
【００９１】
また、先読みアドレスとしてのアドレスＡ５は、先読みアドレスＡ４が６サイクル目に先読みアドレス・バス２２１に出力されてから３サイクル後に先読みアドレス・バス２２１に出力できるため、９サイクル目においてアドレスＡ５は先読みアドレス・バス２２１に出力される。そして、７サイクル目後の１６サイクル目にデータＤ５はメモリ１３０から読み出され、第２のキャッシュ・メモリ回路２８０に保存される。
【００９２】
そのため、３サイクル毎にリードをするＣＰＵ１１０が１３サイクル目にアドレスＡ５をアドレス・バス１１１に出力すると、第２のキャッシュ・メモリ回路２８０は１サイクル後にデータ５をデータ・バス１１２に出力できる。
【００９３】
このように、ＣＰＵ１１０がアドレス・バス１１１にリード・アドレスを出力した１サイクル後に、該アドレスのデータがデータ・バス１１２に出力される。
【００９４】
このように、本実施の形態において、非順次アドレスから４個のアドレスのデータを第１のキャッシュ・メモリ回路２７０に保存することにより、ＣＰＵ１１０は、短サイクルで命令の実行ができる。
【００９５】
すなわち、非順次アドレスに続くｎ個のアドレスのデータが第１のキャッシュ・メモリ回路２７０に保存されている場合において、非順次リードに続く各順次リードのうちの（ｎ＋１）回目の順次リードの開始時に、そのリード・アドレスのデータが既に第２のキャッシュ・メモリ回路２８０に保存されていることを条件に定められているｎを用い、非順次アドレスからＮ（Ｎ＝ｎ＋１）個のアドレスのデータを第１のキャッシュ・メモリ回路２７０に保存するようにすれば、ＣＰＵ１１０の性能が低下すること無く、リードをすることができる。
【００９６】
本実施の形態の例において、個数Ｎ（Ｎ：整数）を下記の式（１）により求めることができる。
【００９７】
Ｎ≧（Ｄ＋ＭＬＣ−ＣＬＣ）／（ＣＩＶ−ＨＬＣ）      （１）
但し，Ｄ：非順次リードが完了してから、次のリードが開始されるまでの時間
（クロックのサイクル数）
ＭＬＣ：第１のキャッシュ・メモリと第２のキャッシュ・メモリのいずれにも
データが保存されていないリード・アドレスのリードが開始してから、
該リード・アドレスのデータをＣＰＵに出力できるまでにかかる時間
（クロックのサイクル数）
ＣＬＣ：１回のリードにかかる再短時間（クロックのサイクル数）
ＣＩＶ：リードの頻度（クロックのサイクル数）
ＨＬＣ：第１のキャッシュ・メモリにデータが保存されているリード・アドレス
のリードが開始してから、該リード・アドレスのデータをＣＰＵに出力
できるまでにかかる時間（クロックのサイクル数）
図６に示すように、本実施の形態において、Ｄ、ＨＬＣ、ＭＬＣ、ＣＩＶ、ＣＬＣはそれぞれ１、１、７、３、１である。そのため、式（１）からＮは４以上の整数として算出される。
【００９８】
すなわち、非順次アドレスからの４個以上のアドレスのデータを第１のキャッシュ・メモリ回路２７０に保存しておけば、ＣＰＵ１１０は、アドレス・バス１１１にアドレスを出力してから最短のサイクル数ＣＬＣでデータ・バス１１２からデータを取り込むことができる。
【００９９】
なお、非順次アドレスからの４個のアドレスのデータを第１のキャッシュ・メモリ回路２７０に保存するようにした場合に、ＣＰＵ１１０が最短サイクル数ＣＬＣでデータをリードすることができると共に、第１のキャッシュ・メモリ回路２７０の容量が最も小さい。
【０１００】
また、第２のキャッシュ・メモリ回路２８０も、式（１）で求められたＮ個の先読みアドレスのデータを保存できる容量があればよいので、第２のキャッシュ・メモリ回路２８０の容量も小さくできる。
【０１０１】
このように、マイクロコンピュータ１００によれば、キャッシュ・メモリの容量を抑制しつつ、ＣＰＵ１１０がデータをリードする際の性能低下を防ぐことができる。
【０１０２】
また、特許文献１に記載された技術は、命令のデータにしか適用できず、分岐（ジャンプ命令）が生じないデータアクセスには適用できなかった。本実施の形態では、ＣＰＵ１１０がリード・アドレスを出力するときに、このリード・アドレスが非順次アドレスか否かを示す信号を出力しているので、命令のデータおよび命令のデータ以外のデータにも本発明を適用できる。
【０１０３】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１０４】
例えば、上述した実施の形態において、式（１）に求められたＮを用いたが、このＮとして２を用いた場合には非順次アドレスの次の順次リードを速くすることができ、３を用いた場合には非順次アドレスの次の順次リード、およびさらに次の順次リードを速くすることができる。すなわち、Ｎとして２以上（ｎ：１以上）であれば、本発明の効果を発揮することができる。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施の形態にかかるマイクロコンピュータを示す図である。
【図２】図１に示すマイクロコンピュータにおけるキャッシュ・メモリ回路の構造を示す図である。
【図３】図１に示すマイクロコンピュータにおけるメモリの動作タイミングチャートである。
【図４】図１に示すマイクロコンピュータにおけるＣＰＵのリードのタイミングチャートである（その１）
【図５】図１に示すマイクロコンピュータにおけるＣＰＵのリードのタイミングチャートである（その２）
【図６】従来の技術を説明するための図である。
【符号の説明】
【０１０６】
１００  マイクロコンピュータ  １１０  ＣＰＵ
１１１  アドレス・バス  １１２  データ・バス
１２０  メモリ・コントローラ  １２１  メモリ・リード・アドレス・バス
１２２  メモリ・リード・アドレス・データ・バス  １３０  メモリ
１３１  メモリ・アドレス・バス  １３２  メモリ・データ・バス
２００  キャッシュ・コントローラ  ２１０  Ｉ／Ｆ回路
２１１  リード・アドレス・バス  ２２０  先読みアドレス・カウンタ
２２１  先読みアドレス・バス  ２３０  非順次アドレス保持回路
２４０  アドレス比較回路  ２５０  切替回路
２５１  先読みキュー・セット・アドレス・バス
２５３  先読みキャッシュ・アドレス・バス  ２６０  選択回路
２７０  第１のキャッシュ・メモリ回路
２７１  第１のキャッシュ・アドレス入力バス
２７２  第１のキャッシュ・データ出力バス
２７３  キャッシュ・アドレス出力バス
２７５  キャッシュ・リード・アドレス・データ・バス
２８０  第２のキャッシュ・メモリ回路
２８１  第２のキャッシュ・アドレス入力バス
２８２  第２のキャッシュ・データ出力バス
２９０  キュー  ３００  エントリ
３０１  アドレス  ３０２  データ
３０３  有効ビット。
【図１】
2008257508.tif 000003
【図２】
2008257508.tif 000004
【図３】
2008257508.tif 000005
【図４】
2008257508.tif 000006
【図５】
2008257508.tif 000007
【図６】
2008257508.tif 000008