(57)【特許請求の範囲】
【請求項１】
第１〜第Ｎ（Ｎは２以上の整数）のウェイから構成され、選択されたウェイに対してアクセスアドレスに対応したエントリへのデータの書き込み及び読み出しが行われるキャッシュメモリと、
所与のロック期間を検出するロック検出回路と、
前記ロック検出回路の検出結果を用いて、前記キャッシュメモリのウェイを選択するウェイ選択回路と、
を含み、
前記ウェイ選択回路は、
前記所与のロック期間では、アクセスアドレスに基づいてアクセスされるウェイ及びキャッシュミスが発生したときにリプレースされるウェイとして、第ｋ（１≦ｋ≦Ｎ、ｋは整数）のウェイを選択し、
前記所与のロック期間以外の期間では、前記ロック期間にリプレースされた第ｋのウェイのエントリへのアクセスにおいてキャッシュミスが発生したとき、リプレースされるウェイとして、第１〜第Ｎのウェイの中から前記第ｋのウェイを除くいずれかのウェイを選択することを特徴とするキャッシュ回路。
【請求項２】
請求項１において、
前記キャッシュメモリは、
アクセスアドレスの少なくとも一部に対応したエントリごとに、少なくとも比較用アドレス及びロックビットを記憶するタグメモリと、
前記エントリごとに、前記比較用アドレスに対応したデータを記憶するデータメモリと、
を含む第ｋのウェイと、
前記エントリごとに、比較用アドレスを記憶するタグメモリと、
前記エントリごとに、前記比較用アドレスに対応したデータを記憶するデータメモリと、
を含む、前記第ｋのウェイを除く第１〜第Ｎのウェイと、
ウェイごとに、アクセスアドレスと、該アクセスアドレスに対応して前記タグメモリから読み出された比較用アドレスとを比較し、キャッシュヒット又はキャッシュミスを検出する比較回路と、
前記第１〜第Ｎのウェイのデータメモリから読み出されたデータのうち、前記アクセスアドレスと前記比較用アドレスとが一致したウェイのデータの少なくとも一部を選択出力するセレクタ回路と、
を含み、
前記ロック期間では、
前記第ｋのウェイにおいてアクセスされたエントリのロックビットが第１の状態から第２の状態に変更され、
前記ロック期間以外の期間では、
前記第ｋのウェイにおいてロックビットが前記第２の状態のエントリへのアクセスについてキャッシュミスが検出されたとき、前記第ｋのウェイを除く前記第１〜第Ｎのウェイの中から、リプレースされるウェイが選択されることを特徴とするキャッシュ回路。
【請求項３】
請求項１又は２において、
ロック設定値を任意に設定可能なロック設定レジスタを含み、
前記ロック検出回路は、
前記ロック設定値と、所与の入力値とが一致している期間を、前記ロック期間として検出することを特徴とするキャッシュ回路。
【請求項４】
請求項３において、
前記ロック設定値は、割り込みレベルであり、
前記所与の入力値は、割り込み処理中の割り込みレベルであることを特徴とするキャッシュ回路。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記第ｋのウェイに代えて、第ｋのウェイを含む２以上のウェイであることを特徴とするキャッシュ回路。
【請求項６】
データを一時的に記憶して所与の情報処理を行う情報処理装置であって、
請求項１乃至５のいずれか記載のキャッシュ回路と、
前記キャッシュ回路から読み出されたデータに基づいて所与の情報処理を行う処理回路と、
を含むことを特徴とする情報処理装置。
【請求項７】
データを一時的に記憶して所与の情報処理を行う情報処理装置であって、
請求項５記載のキャッシュ回路と、
所与のルーチン処理中に入力された割り込み入力を受け付け、該割り込み入力の割り込みレベルに応じた割り込み処理を行う処理回路と、
を含み、
前記処理回路は、
前記割り込みレベルを前記キャッシュ回路に通知すると共に、前記キャッシュ回路から読み出されたデータに基づいて前記割り込みレベルに応じた割り込み処理を行うことを特徴とする情報処理装置。
【請求項８】
請求項６又は７記載の情報処理装置と、
前記情報処理装置に対して割り込み入力を行う割り込み入力装置と、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュ回路、情報処理装置及び電子機器に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
マイクロコンピュータ（広義には、情報処理装置）は、キャッシュメモリを内蔵することで、外部に接続された低速なメインメモリ（記憶装置）へのアクセスを省略して、高速な処理を継続して行うことができる。しかしながら、マイクロコンピュータに内蔵させることができるキャッシュメモリの容量では、メインメモリ上の全てのデータを記憶させることは困難である。したがってキャッシュメモリでは、所与の置き換えアルゴリズムに従って記憶されるデータのリプレースが行われる。
【０００３】
またマイクロコンピュータでは、一般的に、内部の処理と非同期に発生する割り込み入力を受け付け、所与のメインルーチンの処理中に該割り込み入力に対応した割り込み処理を行うことができる。
【０００４】
ところが、このような割り込み処理を行う場合、割り込み入力に応じて異なる処理を行う必要があるため、割り込み入力に対応した割り込みルーチンのプログラムをフェッチする。これにより、既にキャッシュメモリ内に記憶されたメインルーチンのプログラムがリプレースされてしまうことがある。更に、割り込みルーチンの処理からメインルーチンの処理に復帰したとき、メインルーチンのプログラムもまたリフィルされることになり、性能の劣化を招く。特に、使用頻度の高い割り込みレベルの割り込み入力があると、該割り込みレベルに対応した割り込みルーチンのリフィルと、メインルーチンのリフィルとが頻発し、性能の大幅な低下を招いてしまう。
【０００５】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、メインルーチンと割り込みルーチンとを共存させ、高い性能を維持することができるキャッシュ回路、情報処理装置及び電子機器を提供することにある。
【０００６】
【課題を解決するための手段】
上記課題を解決するために本発明は、第１〜第Ｎ（Ｎは２以上の整数）のウェイから構成され、選択されたウェイに対してアクセスアドレスに対応したエントリへのデータの書き込み及び読み出しが行われるキャッシュメモリと、所与のロック期間を検出するロック検出回路と、前記ロック検出回路の検出結果を用いて、前記キャッシュメモリのウェイを選択するウェイ選択回路とを含み、前記ウェイ選択回路は、前記所与のロック期間では、アクセスアドレスに基づいてアクセスされるウェイ及びキャッシュミスが発生したときにリプレースされるウェイとして、第ｋ（１≦ｋ≦Ｎ、ｋは整数）のウェイを選択し、前記所与のロック期間以外の期間では、少なくとも前記ロック期間にリプレースされた第ｋのウェイのエントリへのアクセスにおいてキャッシュミスが発生したとき、リプレースされるウェイとして、第１〜第Ｎのウェイの中から前記第ｋのウェイを除くいずれかのウェイを選択するキャッシュ回路に関係する。
【０００７】
ここでキャッシュメモリは、例えばセットアソシアティブ方式のキャッシュメモリを採用することができるが、その方式に限定されるものではない。
【０００８】
またロック期間とは、ロック機能を有効にする期間をいう。このロック機能は、ある特定のプログラムやデータをリフィルし、その後リプレース対象から除外することでリフィルしたプログラム等を保護する機能をいう。
【０００９】
本発明においては、ロック期間を検出するロック検出回路を設け、ロック検出回路の検出結果を用いて、複数のウェイから構成されるキャッシュメモリのウェイを選択するようにした。そして、ロック期間中において、第ｋのウェイに固定してアクセスさせ、キャッシュミスが発生したときには第ｋのウェイに固定してリプレースさせる。更に、ロック期間以外の期間では、ロック期間にリプレースされたエントリへのキャッシュミスが発生したときにリプレース対象となるウェイから第ｋのウェイを除外し、ロック期間中にリプレースさせたプログラム等を保護する。これにより、リプレースされるプログラム等は、第ｋのウェイに限定されて記憶され、キャッシュミスが発生した場合でも第ｋのウェイしかリプレースが行われないため、キャッシュメモリ内の他のプログラムは、このリプレースから保護される。しかも、ソフトウェアによるロック機能を実現する場合と異なり、プログラム中のレジスタアクセス等の命令が不要となる。
【００１０】
また本発明に係るキャッシュ回路は、前記キャッシュメモリは、アクセスアドレスの少なくとも一部に対応したエントリごとに、少なくとも比較用アドレス及びロックビットを記憶するタグメモリと、前記エントリごとに、前記比較用アドレスに対応したデータを記憶するデータメモリとを含む第ｋのウェイと、前記エントリごとに、比較用アドレスを記憶するタグメモリと、前記エントリごとに、前記比較用アドレスに対応したデータを記憶するデータメモリとを含む、前記第ｋのウェイを除く第１〜第Ｎのウェイと、ウェイごとに、アクセスアドレスと、該アクセスアドレスに対応するタグメモリのエントリから読み出された比較用アドレスとを比較し、キャッシュヒット又はキャッシュミスを検出する比較回路と、前記第１〜第Ｎのウェイのデータメモリから読み出されたデータのうち、前記アクセスアドレスと前記比較用アドレスとが一致したウェイのデータの少なくとも一部を選択出力するセレクタ回路とを含み、前記ロック期間では、前記第ｋのウェイにおいてアクセスされたエントリのロックビットが第１の状態から第２の状態に変更され、前記ロック期間以外の期間では、前記第ｋのウェイにおいてロックビットが前記第２の状態のエントリへのアクセスについてキャッシュミスが検出されたとき、前記第ｋのウェイを除く前記第１〜第Ｎのウェイの中から、リプレースされるウェイが選択されてもよい。
【００１１】
本発明においては、第ｋのウェイのエントリごとにロックビットを設けるようにしている。そして、ロック期間中にアクセスされた第ｋのウェイのエントリのロックビットを第１の状態から第２の状態に変更し、ロック期間中にリプレースが行われたか否かを判別できるようにした。このようなロックビットを用いたウェイの選択を行うことで、ロック機能を実現するためのウェイの選択制御を簡素化することができる。
【００１２】
また本発明に係るキャッシュ回路は、ロック設定値を任意に設定可能なロック設定レジスタを含み、前記ロック検出回路は、前記ロック設定値と、所与の入力値とが一致している期間を、前記ロック期間として検出することができる。
【００１３】
本発明においては、ロック設定レジスタに任意に設定可能なロック設定値と、所与の入力値との比較により、ロック期間を検出するようにしている。例えば、両者の値が一致している期間をロック期間、不一致の期間をロック期間以外の期間として検出する。これにより、例えばロック設定値に応じた期間だけ、プログラム等をリフィルして、例えばＣＰＵからのアクセスに対して高いヒット率を実現し、高速な情報処理に貢献することができる。
【００１４】
また本発明に係るキャッシュ回路は、前記ロック設定値は、割り込みレベルであり、前記所与の入力値は、割り込み処理中の割り込みレベルであってもよい。
【００１５】
本発明によれば、割り込みルーチン処理中にキャッシュミスが発生した場合に、メインルーチンプログラムがリプレースされて追い出されるのを防止することができる。割り込みルーチンプログラムは、第ｋのウェイに限定されており、キャッシュミスが発生した場合でも第ｋのウェイしかリプレースが行われないため、キャッシュメモリ内の他のプログラムは、このリプレースから保護されることになる。例えば、使用している全ての割り込み入力に対してロック対象となるように設定することにより、例えば第ｋのウェイを除く残りのウェイには、割り込みルーチンを含まないプログラムで占めることができ、ヒット率がより向上し高いパフォーマンスを維持することができる。
【００１６】
また使用頻度の高い割り込みルーチンをリフィルして、キャッシュ内で保護することができる。この場合、第ｋのウェイが、割り込みルーチン専用の命令及びデータが混在したダイレクトマップ方式のキャッシュメモリと同等の機能を有することになる。プログラム容量が１ウェイ当たりのデータメモリの容量以下で、割り込み発生率が高い割り込みルーチンであれば、キャッシュメモリ内に割り込みルーチンと別のプログラムが共存することになるため、高いパフォーマンスを維持することができる。
【００１７】
また本発明に係るキャッシュ回路は、前記第ｋのウェイに代えて、第ｋのウェイを含む２以上のウェイであってもよい。
【００１８】
本発明によれば、複数のルーチンや大容量のプログラムについてもロック機能を用いることができ、情報処理の高速化に貢献することができる。
【００１９】
また本発明に係る情報処理装置は、データを一時的に記憶して所与の情報処理を行う情報処理装置であって、上記いずれか記載のキャッシュ回路と、前記キャッシュ回路から読み出されたデータに基づいて所与の情報処理を行う処理回路とを含むことができる。
【００２０】
本発明によれば、特定のルーチンの処理を高速化した情報処理装置を提供することができる。
【００２１】
また本発明に係る情報処理装置は、データを一時的に記憶して所与の情報処理を行う情報処理装置であって、上記記載のキャッシュ回路と、所与のルーチン処理中に入力された割り込み入力を受け付け、該割り込み入力の割り込みレベルに応じた割り込み処理を行う処理回路とを含み、前記処理回路は、前記割り込みレベルを前記キャッシュ回路に通知すると共に、前記キャッシュ回路から読み出されたデータに基づいて前記割り込みレベルに応じた割り込み処理を行うことができる。
【００２２】
本発明によれば、割り込み応答の早い情報処理装置を提供することができる。
【００２３】
また本発明に係る電子機器は、上記記載の情報処理装置と、前記情報処理装置に対して割り込み入力を行う割り込み入力装置とを含むことができる。
【００２４】
本発明によれば、割り込み入力に対して高速な処理を行う電子機器を提供することができる。
【００２５】
【発明の実施の形態】
以下、本発明の好適な実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２６】
１．  キャッシュ回路
図１に、本実施形態におけるキャッシュ回路の原理ブロック構成図を示す。
【００２７】
キャッシュ回路１０は、キャッシュメモリ２０と、ウェイ選択回路２６と、割り込みロック検出回路（広義には、ロック検出回路）３０とを含む。
【００２８】
キャッシュメモリ２０は、第１〜第Ｎ（Ｎは２以上の整数）のウェイ（ｗａｙ）から構成される。そして、ウェイ選択回路２６により選択されたウェイに対して、アクセスアドレスに対応したデータの書き込み及び読み出し（アクセス）が行われる。なお、ウェイ選択回路２６をキャッシュメモリ２０に含めるように構成してもよい。
【００２９】
キャッシュメモリ２０は、セットアソシアティブ方式によりデータのアクセスが行われる。ここでセットアソシアティブ方式とは、外部に接続されたメインメモリ（記憶装置）とキャッシュメモリとを対応付けるマッピング方式をいう。より具体的には、メインメモリの記憶領域とキャッシュメモリに記憶領域とを複数のセットに分割し、メインメモリのデータは、対応するキャッシュメモリのセットに記憶される。
【００３０】
なお、キャッシュメモリ２０と、メインメモリとを関連付ける方式には、上述のセットアソシアティブ方式に限定されないが、以下ではセットアソシアティブ方式によりデータのアクセスが行われるものとして説明する。
【００３１】
セットアソシアティブ方式でデータのアクセスが行われるキャッシュメモリ２０は、タグメモリ２２と、データメモリ２４とを含む。
【００３２】
タグメモリ２２は、第１〜第Ｎのウェイの各ウェイごとに比較用アドレスを記憶する。より具体的には、各ウェイでは、アクセスアドレスの少なくとも一部により特定されるエントリごとに、比較用アドレスを記憶する。なお、タグメモリ２２のいずれか１つのウェイについては、エントリごとに、比較用アドレスと共にロックビットを設け、後述するロック機能を実現させることができるようになっている。
【００３３】
データメモリ２４は、第１〜第Ｎのウェイの各ウェイごとに、アクセスアドレスに対応するデータを記憶する。より具体的には、各ウェイでは、上述のエントリごとに、タグメモリ２２に記憶された比較用アドレスに対応するデータが記憶される。
【００３４】
ウェイ選択回路２６は、所与の置き換えアルゴリズムにしたがって、キャッシュメモリ２０の第１〜第Ｎのウェイの中から、アクセスされるウェイや、リプレースされるウェイを選択する。
【００３５】
割り込みロック検出回路３０は、ロック機能を有効にする期間（所与のロック期間）を検出する。ロック機能は、有効化された期間中において、ある特定のプログラムやデータを第ｋのウェイ（１≦ｋ≦Ｎ、ｋは整数）に固定してアクセスさせ、キャッシュミスが発生したときには第ｋのウェイに固定してリプレースさせる。そして、ロック期間以外の期間では、キャッシュミスが発生したときにリプレース対象となるウェイから第ｋのウェイを除外し、ロック期間中にリプレースさせたプログラム等を保護する。キャッシュメモリ２０では、主にウェイ選択回路２６が、割り込みロック検出回路３０の検出結果に基づいて上述の機能を実現する。
【００３６】
またキャッシュメモリ２０は、ロック機能を有効にする割り込みレベル（広義には、ロック設定値）を任意に設定可能な割り込みロック設定レジスタ（広義には、ロック設定レジスタ）４０を含むことができる。そして割り込みロック検出回路３０は、処理回路（例えばＣＰＵ）において割り込み処理中の割り込みレベル（広義には、所与の入力値）と、割り込みロック設定レジスタ４０に設定された割り込みレベル（ロック設定値）とを比較し、一致しているときにはロックスタートを検出し、不一致のときにはロックエンドを検出する。
【００３７】
図２に、ロックスタートとロックエンドについて説明するための説明図を示す。
【００３８】
ロックスタートが検出されている期間はロック期間として、キャッシュメモリ２０のウェイ選択回路２６は、アクセス要求があったときには第ｋのウェイに固定し、キャッシュミスが発生するとリプレースされるウェイも第ｋのウェイに固定する。
【００３９】
一方、ロックエンドが検出されている期間では、ウェイ選択回路２６は、キャッシュミスが発生すると、第ｋのウェイを除く第１〜第Ｎのウェイの中から、リプレース対象のウェイを選択する。
【００４０】
２．  マイクロコンピュータ
次に、上述したキャッシュ回路をマイクロコンピュータ（広義には、情報処理装置）に内蔵した場合について説明する。
【００４１】
図３に、本実施形態のマイクロコンピュータのブロック構成図を示す。
【００４２】
ただし、図１に示すキャッシュ回路と同一部分には同一符号を付し、適宜説明を省略する。
【００４３】
マイクロコンピュータ５０は、図１に示すキャッシュ回路１０と、ＣＰＵ（広義には、処理回路）５２とを含む。なおマイクロコンピュータ５０は、これ以外にもＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＤＭＡＣ（Direct Access Memory Controller）、ＭＭＵ（Memory Management Unit）、ＬＣＤ（Liquid Crystal Display）ドライバ或いはＳＩＯ（Serial Input Output）等の各種周辺回路を含むことができる。
【００４４】
以下では、キャッシュ回路１０のウェイ選択回路２６は、置き換えアルゴリズムとしてＬＲＵ（Least Recently Used）方式により第１〜第Ｎのウェイの中からいずれかのウェイを選択するものとして説明する。
【００４５】
この場合、ウェイ選択回路２６は、ＬＲＵ回路５４、ＬＲＵ制御回路５６を含む。ＬＲＵ回路５４は、ＬＲＵ方式により選択する際の判断の材料となるＬＲＵ情報を保持する。ＬＲＵ制御回路５６は、キャッシュヒットのとき、ＬＲＵ回路５４に保持されたＬＲＵ情報に基づいていずれか１つのウェイを選択し、該ＬＲＵ情報を更新する。
【００４６】
ＣＰＵ５２は、ＲＯＭやＲＡＭに記憶されたプログラムに従って、命令のフェッチ、命令のデコード、演算処理、レジスタへの書き込み等の情報処理を行う。またＣＰＵ５２は、メインルーチンプログラムの処理中に、内部の処理タイミングと非同期で入力される割り込み入力を受け付けることができる。この割り込み入力は、ハードウェアによる割り込み信号により入力されるものや、ソフトウェアによって起動されるものがある。
【００４７】
ＣＰＵ５２は、割り込み入力を受け付けると、その割り込みレベルに応じた割り込み処理を行う。割り込み処理は、ＲＯＭやＲＡＭにおいてメインルーチンプログラムとは別の記憶領域に記憶された割り込みルーチンプログラムに従って行われる。したがってＣＰＵ５２は、割り込み入力を受け付けると、割り込みルーチンプログラムのフェッチを行って、割り込み処理を行うことになる。
【００４８】
本実施形態では、ＣＰＵ５２が、割り込み処理中の割り込みレベルをキャッシュ回路１０に通知することができるようになっている。より具体的には、ＣＰＵ５２は、割り込み入力を受け付けて割り込み処理を開始するとき、内部のステータスを示すプロセッサステータスレジスタ（Processor Status Register：ＰＳＲ）に処理中の割り込みレベルを設定する。ＣＰＵ５２は、該ＰＳＲに設定された割り込みレベル（ＩＬ）をキャッシュ回路１０に通知する。
【００４９】
以下では、本実施形態において、割り込みレベル「５」についてロック機能を有効にした場合の動作について説明する。
【００５０】
図４（Ａ）に、マイクロコンピュータ５０のメモリマップの一例を示す。
【００５１】
マイクロコンピュータ５０のＣＰＵ５２が処理を行うためにフェッチするプログラムは、例えば０ｘ００００００００〜０ｘＦＦＦＦＦＦＦＦのアドレスで特定される領域に記憶される。
【００５２】
メインルーチンプログラムは、例えばＭＡ１番地からＭＡ２番地までの領域に割り当てられる。割り込みレベル「５」の割り込み処理を行うための割り込みルーチンプログラムは、メインルーチンプログラムとは別の領域である例えばＩＡ１番地からＩＡ２番地までの領域に割り当てられる。
【００５３】
図４（Ｂ）に、マイクロコンピュータ５０がメインルーチンプログラムを処理中に、割り込みレベル「５」の割り込み入力を受け付けて割り込みルーチンプログラムの処理を行う場合の動作を説明するための図を示す。
【００５４】
割り込みロック設定レジスタ４０は、図５に示すように、割り込みレベルの各レベルごとに、ロック機能を有効にするか否かを任意に設定することができるようになっている。
【００５５】
まずＣＰＵ５２により、割り込みロック設定レジスタ４０にアクセスして、ＩＫＩＬ５を「１」に設定して、ロック機能を行う有効化する割り込みレベルを設定する。更にＣＰＵ５２により、キャッシュ回路１０への各種制御のために割り当てられた所与の制御レジスタにアクセスして、例えばロック期間の検出のオン制御を行う。これ以降、キャッシュ回路１０では、ロック期間が検出されて、割り込みレベル「５」についてのロック機能が有効化される。
【００５６】
マイクロコンピュータ５０のＣＰＵ５２が図４（Ａ）に示す領域のメインルーチンプログラムの処理期間Ｔ１では、メインルーチンの処理が行われる。このとき、ＣＰＵ５２がキャッシュ回路１０にアクセスした場合、キャッシュ回路１０のウェイ選択回路２６はＬＲＵ情報を用いてウェイを選択する。
【００５７】
例えばＣＰＵ５２は、キャッシュ回路１０に対してアクセスアドレスを供給してアクセス要求をする。そしてキャッシュ回路１０においてキャッシュヒットが検出された場合には、キャッシュ回路１０は、ＣＰＵ５２に対してヒットしたエントリのデータの一部又は全部を出力する。このとき、所与のＬＲＵ更新タイミングにおいて、ＬＲＵ制御回路５６はＬＲＵ情報を更新する。ＣＰＵ５２は、キャッシュ回路１０からのデータを用いて、メインルーチンのプログラムに従って所与の情報処理（演算処理）を行う。一方キャッシュミスが検出された場合には、キャッシュ回路１０は、選択されたウェイの対応するエントリについてリプレースを行う。キャッシュミスの場合には、ＬＲＵ情報は更新されない。リプレースされたデータは、ＣＰＵ５２にも供給される。ＣＰＵ５２は、キャッシュ回路１０からのデータを用いて、メインルーチンのプログラムに従って所与の情報処理を行う。
【００５８】
メインルーチン処理中に割り込みレベル「５」の割り込み入力があると、ＣＰＵ５２は所与の割り込み受け付けタイミングで、該割り込み入力を受け付ける。ＣＰＵ５２は、割り込みレベル「５」に対応する割り込みルーチンを実行するのに先立って、メインルーチンプログラムの処理中の状態を退避（例えばレジスタ退避）して、ＰＳＲのＩＬフィールド（割り込み処理中の割り込みレベルを表すフィールド）に「５」を設定する。
【００５９】
キャッシュ回路１０の割り込みロック検出回路３０は、ＣＰＵ５２から通知された割り込みレベルと、割り込みロック設定レジスタ４０に設定された割り込みレベルとを比較する。割り込みロック検出回路３０は、両割り込みレベルが一致したことを検出すると、ウェイ選択回路２６に対して、ロックスタートを通知する。
【００６０】
そしてロックスタートが通知されているロック期間Ｔ２において、ＣＰＵ５２は、割り込みレベル「５」に対応する割り込みルーチンプログラムのフェッチを行いながら、割り込み処理を行う。このとき、キャッシュ回路１０のウェイ選択回路２６は、ＣＰＵ５２からアクセス要求があったときには、第ｋのウェイに固定して選択する。そして、キャッシュヒットの場合は、ＣＰＵ５２に対し、アクセスアドレスに対応したエントリのデータを出力する。このとき、所与のＬＲＵ更新タイミングにおいて、ＬＲＵ制御回路５６はＬＲＵ情報を更新する。ＣＰＵ５２は、キャッシュ回路１０からのデータを用いて、割り込みルーチンのプログラムに従って所与の割り込み処理（広義には、情報処理）を行う。一方キャッシュミスの場合には、第ｋのウェイに固定して、対応するエントリのリプレースを行う。キャッシュミスの場合には、ＬＲＵ情報は更新されない。
【００６１】
割り込みルーチンプログラム中に復帰命令ｒｅｔｉがある場合、ＣＰＵ５２が復帰命令ｒｅｔｉを実行すると、割り込みルーチン処理開始前に退避した内部状態を復帰させて、ＰＳＲのＩＬフィールドを「０」に戻す。
【００６２】
これにより割り込みロック検出回路３０は、ＣＰＵ５２から通知された割り込みレベルと、割り込みロック設定レジスタ４０に設定された割り込みレベルとが不一致であることを検出し、ウェイ選択回路２６に対して、ロックエンドを通知する。
【００６３】
そして、両割り込みレベルが不一致である期間Ｔ３において、ＣＰＵ５２は、割り込みルーチンに移行する前に実行していた命令に後続する命令のフェッチを行いながらメインルーチンを処理することになる。このとき、ＣＰＵ５２は、キャッシュ回路１０にアクセスした場合、ウェイ選択回路２６はＬＲＵ情報に基づくＬＲＵ制御により、ウェイを選択する。すなわち、ＣＰＵ５２は、キャッシュ回路１０に対してアクセスアドレスを供給してアクセス要求をする。そしてキャッシュ回路１０は、キャッシュヒットの場合には、ＣＰＵ５２に対し、アクセスアドレスに対応したエントリのデータを出力する。このとき、所与のＬＲＵ更新タイミングにおいて、ＬＲＵ制御回路５６はＬＲＵ情報を更新する。一方キャッシュミスの場合には、第ｋのウェイを除いて選択されたウェイの対応するエントリのリプレースを行う。リプレースされたデータは、ＣＰＵ５２にも供給される。ＣＰＵ５２は、キャッシュ回路１０からのデータを用いて、割り込みルーチンのプログラムに従って所与の割り込み処理を行う。
【００６４】
なお、期間Ｔ３において第ｋのウェイをリプレース対象外とする場合、期間Ｔ２でリプレースが行われたエントリを記憶しておくことようにしてもよい。この場合、期間Ｔ２（ロック期間）にリフィルが行われたエントリのみをリプレースから保護することができる。したがって、ロック期間にキャッシュメモリ内にリフィルされた割り込みルーチンプログラムの保護を効率的に行うことができる。
【００６５】
このように、割り込みロック設定レジスタ４０に設定された割り込みレベルの割り込み処理ルーチンを、第ｋのウェイにのみリフィルさせることができ、かつ第ｋのウェイにリフィルされた割り込み処理ルーチンが別のプログラムによりリプレースされるのを防止することができる。
【００６６】
２．１  キャッシュ回路の構成例
次に、上述したキャッシュ回路について具体的に説明する。
【００６７】
なお以下では、Ｎが「４」である４ウェイセットアソシアティブ方式のキャッシュメモリ（ウェイ０〜ウェイ３）を有するキャッシュ回路について説明するが、これに限定されるものではない。また、ウェイ０を第１のウェイ、ウェイ１を第２のウェイ、ウェイ２を第３のウェイ、ウェイ３を第４のウェイとしたときに、ロック期間において固定するウェイをウェイ１（第２のウェイ。すなわち、ｋ＝２）として説明する。
【００６８】
図６に、キャッシュ回路１０のブロック構成例を示す。
【００６９】
ただし、図３に示すキャッシュ回路と同一部分には同一符号を付し、適宜説明を省略する。
【００７０】
キャッシュ回路１０は、タグメモリ２２、データメモリ２４、ＬＲＵ回路５４、ＬＲＵ制御回路５６の他に、キャッシュ制御回路１００、データ制御回路１１０、ライトバック制御回路１２０を含むことができる。
【００７１】
まず、タグメモリ２２とデータメモリ２４の構成例について説明する。
【００７２】
図７に、タグメモリ２２とデータメモリ２４の構成例を示す。
【００７３】
ここでは、各ウェイが１２８エントリを有し、データメモリ２４の各エントリは４ワード（１６バイト）のデータが記憶されるものとする。
【００７４】
各エントリは、ＬＲＵ情報と、タグ部と、データ部とが関連付けられている。ＬＲＵ情報は、ＬＲＵ回路５４で保持されるＬＲＵビットで表される。タグ部には、比較用アドレスが記憶される。タグ部の記憶データは、タグメモリ２２に記憶される。データ部には、タグ部に記憶された比較用アドレスに対応する４ワード分（Ｗ０〜Ｗ３）のデータが記憶される。データ部の記憶データはデータメモリ２４に記憶される。
【００７５】
図８に、ウェイ１のエントリの構成例を示す。
【００７６】
ウェイ１の各エントリは、タグ部とデータ部とを含む。
【００７７】
タグ部は、２１ビットの比較用アドレスＣＰＡ［３１：１１］と、１ビットのダーティ（Ｄ）ビットと、１ビットのバリッド（Ｖ）ビットと、１ビットのロック（Ｌ）ビットの計２４ビットにより構成される。
【００７８】
比較用アドレスは、３２ビットのアクセスアドレスのうち上位２１ビットのみが記憶される。アクセスアドレスは、物理アドレスであってもよいし、論理アドレスであってもよい。
【００７９】
Ｄビットは、ライトバック制御において、キャッシュメモリ上のデータが、メインメモリ上に反映されているか否かを示すビットである。Ｄビットは、当該エントリへの書き込みが行われたときに「１」が設定される。Ｄビットは、ライトバック制御を行わない場合には、無効化される。
【００８０】
Ｖビットは、リプレースが行われると「１」となって当該エントリのデータが有効であることを示す。なお、Ｖビットは、エントリがフラッシュされると「０」となり、当該エントリのデータが無効であることを示す。
【００８１】
Ｌビットは、当該エントリがロックされていることを示す。Ｌビットは、初期状態の「０」（第１の状態）から、ロックスタートにより「１」（第２の状態）に設定される。そして、ロックエンドのとき、Ｌビットが「１」のエントリは、リプレース対象外とされ、既に格納されているデータは、別のデータに置き換えられることがない。
【００８２】
なおＬビットは、ウェイ１にのみ設けられており、ウェイ０、ウェイ２及びウェイ３ではＬビットが設けられていない。
【００８３】
データ部は、１ワード（３２ビット）のデータが４ワード分記憶され、１２８ビット構成となっている。
【００８４】
ＬＲＵ情報は、４ウェイのうちいずれか１つを選択するための情報であり、ＬＲＵ回路５４に保持され、ＬＲＵ制御回路５６により更新される。
【００８５】
このようなタグメモリ２２とデータメモリ２４を用いるキャッシュ回路１０の各部について、図６に戻って説明を続ける。
【００８６】
キャッシュ制御回路１００は、図３に示す割り込みロック検出回路３０と割り込みロック設定レジスタ４０とを含む。
【００８７】
データ制御回路１１０は、比較回路１１２と、セレクタ回路（ＭＵＸ）１１４とを含む。比較回路１１２は、アクセスアドレスと、該アクセスアドレスに基づいてタグメモリから読み出された比較用アドレスとを、ウェイごとに比較し、キャッシュヒット又はキャッシュミスを検出する。ここで、比較用アドレスは、アクセスアドレスのビット４〜ビット１０により特定されるエントリに基づいてタグメモリから読み出される。ＭＵＸ１１４は、各ウェイのデータメモリの該エントリから読み出されたデータの中から、比較回路１１２でキャッシュヒットとして検出されたウェイのデータを、リードデータとしてＣＰＵ５２に対して出力する。このとき、ＣＰＵ５２からアクセスアドレスに対応して、データの一部のみを出力することができる。
【００８８】
ライトバック制御回路１２０は、バッファ１２２を含み、ライトバック制御を行う。ライトバック制御では、キャッシュメモリへの書き込みを行うときに、メインメモリへの書き込みを行わない。そのため、ライトバック制御では、キャッシュヒットのときキャッシュメモリにのみ書き込むと共にＬＲＵ情報を更新する。一方、キャッシュミスのとき、ＬＲＵ情報に基づいてリプレースするウェイを選択し、該ウェイのタグ部のＤビットに基づいてライトバック制御を行う。
【００８９】
ライトバック制御は、リプレースするウェイのデータ部から、メインメモリに書き込むデータを読み出してバッファ１２２に保持し、該ウェイのリプレースを行った後に、バッファ１２２に保持されたデータをメインメモリに書き込む。こうすることで、キャッシュ回路１０は、ウェイのリプレースが行われた直後から使用可能になるため、キャッシュミスに伴うペナルティを減少させることができる。
【００９０】
なお、ここではライトバック制御を行う場合について説明したが、これに限定されるものではなく、キャッシュメモリへの書き込みとメインメモリへの書き込みとを同時に行うライトスルー制御を行うようにしてもよい。またライトスルー制御とライトバック制御とを、任意に切り替えることができるように構成することも可能である。
【００９１】
図９に、キャッシュ回路の基本的な動作を説明するための図を示す。
【００９２】
キャッシュ回路１０に、ＣＰＵ５２からアクセスアドレスＰＡ［３１：０］が入力されると、アクセスアドレスＰＡ［１０：４］の７ビット（広義には、アクセスアドレスの一部）によりエントリが特定される。例えばアクセスアドレスＰＡ［１０：４］＝「０００００１０」とすると、エントリ２が特定される。
【００９３】
次に、特定されたエントリに対応して記憶されているタグ部の比較用アドレスＣＰＡ［３１：１１］が４ウェイ分読み出される。
【００９４】
また、該エントリに対応して記憶されているデータ部から、アクセスアドレスＰＡ［３：２］で特定されるワードデータを４ウェイ分読み出す。例えばＰＡ［３：２］＝「１０」とすると、該エントリのワードＷ２の位置のワードデータが読み出される。
【００９５】
そして、比較回路１１２において設けられた比較器ｃｍｐ０〜ｃｍｐ３により、ウェイごとに、タグ部から読み出された比較用アドレスＣＰＡ［３１：１１］と、アクセスアドレスの比較アドレスＰＡ［３１：１１］とが比較される。
【００９６】
一致するウェイが存在し、かつ該エントリのＶビットが「１」のとき、キャッシュヒットと判断し、ヒットしたウェイを決定する。
【００９７】
そして、データ部から読み出した４ウェイ分のワードデータのうち、ヒットしたウェイのデータをＭＵＸ１１４で選択し、ＣＰＵ５２に対してリードデータとして出力する。例えば、比較器ｃｍｐ１により一致することが検出されたときには、ウェイ１がヒットしたと判断して、ＭＵＸ１１４はウェイ１から読み出されたワードデータＷ２をリードデータとして出力する。
【００９８】
このとき、該エントリのＬＲＵ情報を、ＬＲＵ制御回路５６により更新する。
【００９９】
一方、比較器ｃｍｐ０〜ｃｍｐ３において一致したウェイが存在しなかったときや、一致したウェイのＶビットが「０」のときには、キャッシュミスと判断し、ＣＰＵ５２に対してデータを出力しない。
【０１００】
そして、この時点のＬＲＵ情報からリプレースするウェイを選択する。選択されたウェイのうち、キャッシュミスが検出されたエントリのＤビットが「１」のときには、データの書き込みが行われたことを意味するので、キャッシュメモリの内容とメインメモリの内容とが不一致の状態となっている。したがって、上述したライトバック制御を行い、その後にリフィルを行う。リフィルは４ワード単位でデータ部に書き込まれると同時に、アクセス要求を行ったＣＰＵ５２に対してアクセス要求のあったデータの該当部分を出力する。
【０１０１】
図１０に、このようなキャッシュメモリに対して書き込み又は読み出し動作の制御を行うキャッシュ制御回路の制御内容の一例を示す。
【０１０２】
キャッシュ制御回路１００は、ステートマシンを用いて、キャッシュ回路１０の各部を制御する。
【０１０３】
ステートマシンは、ＩＤＬＥステート、ＲＥＡＤステート、ＷＲＩＴＥステート、ＭＩＳＳ＿Ｒステート、ＭＩＳＳ＿Ｗステート、ＢＵＦＣＯＰＹ＿Ｒステート、ＢＵＦＣＯＰＹ＿Ｗステート、ＲＤ＿ＲＥＦステート及びＷＲ＿ＲＥＦステートを有し、ステート間を遷移する。
【０１０４】
ＩＤＬＥステートでは、キャッシュ回路１０に対するアクセス要求があると、すぐにＲＥＡＤステート又はＷＲＩＴＥステートに遷移する。
【０１０５】
ＲＥＡＤステートでは、キャッシュヒット又はキャッシュミスが判定される。キャッシュヒットのとき、ヒットしたウェイのデータ部のデータを出力し、アクセス要求に応じてＩＤＬＥステート、ＲＥＡＤステート或いはＷＲＩＴＥステートに遷移する。一方、キャッシュミスのとき、ＭＩＳＳ＿Ｒステートに遷移する。なおＲＥＡＤステートでは、キャッシュミスのときライトバック制御が行われている場合には、ライトバック制御が終了するまで待つように制御するようにすることができる。
【０１０６】
ＭＩＳＳ＿Ｒステートでは、タグ部のＤビットの値に基づいて、ＢＵＦＣＯＰＹ＿Ｒステート又はＲＤ＿ＲＥＦステートに遷移する。より具体的には、Ｄビットが「１」のときＢＵＦＣＯＰＹ＿Ｒステートに遷移し、Ｄビットが「０」のときＲＤ＿ＲＥＦステートに遷移する。
【０１０７】
ＢＵＦＣＯＰＹ＿Ｒステートでは、キャッシュミスのウェイからメインメモリに書き込むデータをバッファに転送し、ＲＤ＿ＲＥＦステートに遷移する。
【０１０８】
ＲＤ＿ＲＥＦステートでは、メインメモリから対象となるデータのリフィルを行うと共に、キャッシュミスの発生した該当部分をＣＰＵ５２に出力する。ＲＤ＿ＲＥＦステートでは、読み出し要求があったときには、ＲＥＡＤステートに遷移し、書き込み要求があったときにはＷＲＩＴＥステートに遷移する。
【０１０９】
ＷＲＩＴＥステートでは、キャッシュヒット又はキャッシュミスが判定される。キャッシュヒットのとき、ヒットしたウェイのデータ部にデータを書き込み、アクセス要求に応じてＩＤＬＥステート、ＲＥＡＤステート或いはＷＲＩＴＥステートに遷移する。一方、キャッシュミスのとき、ＭＩＳＳ＿Ｗステートに遷移する。なおＷＲＩＴＥステートでは、キャッシュミスのときライトバック制御が行われている場合には、ライトバック制御が終了するまで待つように制御するようにすることができる。
【０１１０】
ＭＩＳＳ＿Ｗステートでは、タグ部のＤビットの値に基づいて、ＢＵＦＣＯＰＹ＿Ｗステート又はＷＲ＿ＲＥＦステートに遷移する。より具体的には、Ｄビットが「１」のときＢＵＦＣＯＰＹ＿Ｗステートに遷移し、Ｄビットが「０」のときＷＲ＿ＲＥＦステートに遷移する。
【０１１１】
ＢＵＦＣＯＰＹ＿Ｗステートでは、キャッシュミスのウェイからメインメモリに書き込むデータをバッファに転送し、ＷＲ＿ＲＥＦステートに遷移する。
【０１１２】
ＷＲ＿ＲＥＦステートでは、メインメモリから対象となるデータのリフィルを行うと共に、アクセス要求のあったデータを該当するウェイのデータ部に書き込む。ＷＲ＿ＲＥＦステートでは、読み出し要求があったときにはＲＥＡＤステートに遷移し、書き込み要求があったときにはＷＲＩＴＥステートに遷移する。
【０１１３】
キャッシュ制御回路１００は、このようなステートを遷移させることで、一連のキャッシュ動作を実現させることができる。
【０１１４】
ところで、ＲＥＡＤステート又はＷＲＩＴＥステートで、キャッシュミスの判定が行われたとき、４ウェイのうちいずれか１つがリプレース対象のウェイとして選択される。キャッシュ回路１０では、ウェイの選択アルゴリズムとして、最も以前にアクセスされたウェイを選ぶＬＲＵ方式を採用する。４ウェイセットアソシアティブ方式では、６ビットで構成するフルＬＲＵ方式やランダム方式で行うことができるが、ここでは説明を簡略化するために３ビットの簡易ＬＲＵ制御を行う場合について説明する。
【０１１５】
図１１に、ＬＲＵ情報の更新について説明するための図を示す。
【０１１６】
ここで「Ｘ」は、「０」でも「１」でもよいことを示す。
【０１１７】
ＬＲＵ制御回路５６は、キャッシュがヒットしたときに図１１に示すようにＬＲＵ情報の更新を行う。ここで、ＬＲＵ情報は、３ビットのＬＲＵビット（ｂｉｔ２〜ｂｉｔ０）で表される。ＬＲＵ情報の更新は、例えばウェイ０にアクセスされたとき、ＬＲＵ情報のうちｂｉｔ１を「１」、ｂｉｔ０を「１」に設定し、ｂｉｔ２を変更しないことを示している。同様に、例えばウェイ３にアクセスされたときには、ＬＲＵ情報のうちｂｉｔ１を変更せず、ｂｉｔ２を「０」に設定し、ｂｉｔ１を「０」に設定することを示している。
【０１１８】
キャッシュミスが発生したとき、このようにして更新されたＬＲＵ情報に基づいてリプレース対象のウェイが選択される。
【０１１９】
図１２に、リプレースされるウェイの選択条件について説明するための図を示す。
【０１２０】
ＬＲＵ制御回路５６は、キャッシュがミスしたときは、ＬＲＵ情報の更新を行わず、現在のＬＲＵ情報からリプレースされるウェイを選択する。例えばＬＲＵ情報のうちｂｉｔ１が「０」、ｂｉｔ０が「０」のとき、リプレースウェイとしてウェイ０が選択されることを示している。同様に、例えばＬＲＵ情報のうちｂｉｔ２が「１」、ｂｉｔ０が「１」のとき、リプレースウェイとしてウェイ３が選択されることを示している。
【０１２１】
このようにＬＲＵ制御回路５６は、図１１に示すようにＬＲＵ情報を更新し、図１２に示すようにリプレースウェイを選択することで、非常に簡素な構成でＬＲＵ制御を擬似的に実現することができる。
【０１２２】
ＬＲＵ情報の更新は、図１３（Ａ）に示すように、ｂｉｔ０が「１」か「０」かにより、ウェイ０及びウェイ１の群か、ウェイ２及びウェイ３の群かに分けられる。したがって、ウェイ０にアクセスされたときには、図１１に示したようにｂｉｔ０が「１」に設定されるため、リプレース対象のウェイとしてウェイ２又はウェイ３が選択される。図１３（Ｂ）では、ウェイ０がアクセスされたときに、例えばウェイ２がリプレース対象として選択される場合を示している。
【０１２３】
２．２  キャッシュ回路のロック機能
本実施形態におけるキャッシュ回路１０は、ロック機能を有する。ロック機能は、ロック期間においてアクセスされるウェイをウェイ１に固定すると共にリプレース対象のウェイもウェイ１に固定し、ロック期間以外の期間においてキャッシュミスが発生したときのリプレース対象のウェイとして、ウェイ１を除くウェイ０、ウェイ２及びウェイ３のうちのいずれかを選択するものである。
【０１２４】
このうち、ロック期間においてアクセスされるウェイは、割り込みロック検出回路３０により検出されたロックスタートに基づいて、ウェイ選択回路２６により固定的に選択させることができる。
【０１２５】
一方、ロック期間及びそれ以外の期間において選択されるリプレース対象のウェイは、ウェイ選択回路２６により、上述したＬＲＵ情報を用いることで実現することができる。以下では、このようなロック機能を実現するウェイ選択回路２６について説明する。
【０１２６】
図１４に、ウェイ選択回路２６のブロック構成例を模式的に示す。
【０１２７】
ここで、図３に示したウェイ選択回路と同一部分には同一符号を付し、適宜説明を省略する。
【０１２８】
ウェイ選択回路２６は、ＬＲＵ回路５４と、ＬＲＵ制御回路５６と、セレクタ回路（ＭＵＸ）１５０と、クロック制御回路１６０0〜１６０127とを含む。
【０１２９】
クロック制御回路１６０0〜１６０127は、アクセスアドレスの少なくとも一部である例えばＰＡ［１０：４］により特定されるエントリごとに設けられている。エントリごとに入力されるエントリアクセス信号ｅｎｔ０＿ａｃｃ〜ｅｎｔ１２７＿ａｃｃは、アクセス要求のあったエントリに対応する信号のみが「１」となり、他は「０」になる信号である。例えばエントリ０がアクセスされたるとき、ｅｎｔ０＿ａｃｃのみが「１」となり、ｅｎｔ１＿ａｃｃ〜ｅｎｔ１２７＿ａｃｃが「０」となる。また、クロック制御回路１６０0〜１６０127には、共通に内部クロックｃｃｌｋとキャッシュミス信号ｃａｃｈｅ＿ｍｉｓｓとが供給されている。ここでキャッシュミス信号ｃａｃｈｅ＿ｍｉｓｓは、比較回路１１２から出力される。
【０１３０】
クロック制御回路１６０0〜１６０127は、キャッシュミス信号ｃａｃｈｅ＿ｍｉｓｓと、エントリアクセス信号ｅｎｔ０＿ａｃｃ〜ｅｎｔ１２７＿ａｃｃとにより、アクセスのあったエントリのＬＲＵ情報を更新するときのみ、ＬＲＵ回路５４に対してクロック信号を出力するようになっている。
【０１３１】
ＬＲＵ回路５４は、エントリごとに、３ビット構成のＬＲＵビット（ＬＲＵ情報）を保持するフリップフロップを有している。各フリップフロップは、クロック制御回路１６０0〜１６０127から供給されたクロック信号の立ち上がりで、ＬＲＵ制御回路５６において生成されたＬＲＵ出力信号ＬＲＵ＿ｏｕｔ［２：０］を保持する。
【０１３２】
ＭＵＸ１５０は、エントリごとに保持されたＬＲＵ情報の中から、アクセスアドレスの少なくとも一部（例えばＰＡ［１０：４］）により特定されるエントリを示すエントリ情報に基づいて選択したＬＲＵ情報を、ＬＲＵ＿ｉｎ［２：０］としてＬＲＵ制御回路５６に出力する。
【０１３３】
ＬＲＵ制御回路５６には、ウェイ１のタグ部のＬビットと、割り込みロック検出回路３０からのロック検出信号とが入力される。そしてＬＲＵ制御回路５６は、キャッシュヒットのときＬＲＵ情報を更新する。
【０１３４】
ＬＲＵ情報の更新は、図１５に示したように、ロック検出信号により、割り込みロック設定レジスタに設定した割り込みレベルとＣＰＵ５２が処理中の割り込みレベルとが一致したことを示すロックスタートが検出されたとき、ＬＲＵ出力信号ＬＲＵ＿ｏｕｔ［１：０］が「１０」に固定されるようにＬＲＵ情報を操作する。これにより、図１２に示すように、リプレース対象のウェイとしてウェイ１が固定的に選択される。
【０１３５】
また、両割り込みレベルが一致しないことを示すロックエンドが検出されたときには、ウェイ１のＬビットを参照し、Ｌビットが「０」のときには図１１に示すようなＬＲＵ方式でＬＲＵ情報を操作する。一方、Ｌビットが「１」のときには、ＬＲＵ出力信号ＬＲＵ＿ｏｕｔ［１］が「０」に固定されるようにＬＲＵ情報を操作する。これにより、図１２に示すように、リプレース対象のウェイとしてウェイ１が選択されることがなくなる。
【０１３６】
その結果として、図１６に示したように、ＬＲＵ制御回路５６は、ＬＲＵ出力信号ＬＲＵ＿ｏｕｔ［２：０］の各ビットを操作すればよい。なお、ＬＲＵ出力信号ＬＲＵ＿ｏｕｔ［２：０］は、その他にフラッシュ信号ｆｌａｓｈがアクティブになったときや、リセットが行われたときに「０」に設定される。
【０１３７】
このようにすることで、ロック期間において、ウェイ１をリプレース対象のウェイとして固定的に選択することができると共に、ロック期間以外の期間においてウェイ１をリプレース対象外とすることができる。更に、擬似的なＬＲＵ方式で、キャッシュミスが発生したエントリのリプレースを行うことができる。
【０１３８】
以上説明したように、本実施形態におけるキャッシュ回路１０は、割り込みルーチン処理中にキャッシュミスが発生した場合に、メインルーチンプログラムがリプレースされて追い出されるのを防止することができる。割り込みルーチンプログラムは、例えばウェイ１（第ｋのウェイ）に限定されており、キャッシュミスが発生した場合でもウェイ１しかリプレースが行われないため、キャッシュメモリ内の他のプログラムは、このリプレースから保護されることになる。例えば、使用している全ての割り込み入力に対してロック対象となるように設定することにより、例えばウェイ１を除くウェイ０、ウェイ２及びウェイ３には、割り込みルーチンを含まないプログラムで占めることができ、ヒット率がより向上し高いパフォーマンスを維持することができる。
【０１３９】
また使用頻度の高い割り込みルーチンをリフィルして、キャッシュ内で保護することができる。この場合、例えばウェイ１が、割り込みルーチン専用の命令及びデータが混在したダイレクトマップ方式のキャッシュメモリと同等の機能を有することになる。プログラム容量が１ウェイ当たりのデータメモリの容量以下で、割り込み発生率が高い割り込みルーチンであれば、キャッシュメモリ内に割り込みルーチンと別のプログラムが共存することになるため、高いパフォーマンスを維持することができる。
【０１４０】
なお本実施形態では、割り込みロック設定レジスタに割り込みレベルを設定し、割り込み入力が行われる割り込みレベルと一致する場合の割り込みロック機能を実現させるものとして説明したが、これに限定されるものではない。例えば、メインルーチンプログラム中のロックしたい範囲にのみロックされるようにロック設定レジスタを書き換えて、ＰＳＲのＩＬフィールドを変更することで、メインルーチンプログラム中の任意のプログラムについてもロックさせることができるようになる。
【０１４１】
３．電子機器
次に、上述したマイクロコンピュータを含む電子機器について説明する。
【０１４２】
例えば図１７（Ａ）に、電子機器の１つであるカーナビゲーションシステムの内部ブロック図を示し、図１８（Ａ）に、その外観図を示す。カーナビゲーションシステムの操作はリモコン５１０を用いて行われ、ＧＰＳやジャイロからの情報に基づいて位置検出部５２０が車の位置を検出する。地図などの情報はＣＤＲＯＭ５３０（情報記憶媒体）に格納されている。メモリ５４０は画像処理や音声処理の際の作業領域になるメモリであり、生成された画像は画像出力部５５０を用いて運転者に表示される。また、生成されたカーナビゲーション用のガイド音声は、音出力部５３５を用いて運転者に出力される。マイクロコンピュータ５００は、リモコン５１０、位置検出部５２０、ＣＤＲＯＭ５３０などの情報入力源から情報を入力し、種々の処理を行い、処理後の情報を、画像出力部５５０、音出力部５３５などの出力装置を用いて出力する。
【０１４３】
図１７（Ｂ）に、電子機器の１つであるゲーム装置の内部ブロック図を示し、図１８（Ｂ）に、その外観図を示す。このゲーム装置では、ゲームコントローラ５６０からのプレーヤの操作情報、ＣＤＲＯＭ５７０からのゲームプログラム、ＩＣカード５８０からのプレーヤ情報等に基づいて、メモリ５９０を作業領域としてゲーム画像やゲーム音を生成し、画像出力部６１０、音出力部６００を用いて出力する。
【０１４４】
図１７（Ｃ）に電子機器の１つであるプリンタの内部ブロック図を示し、図８（Ｃ）にその外観図を示す。このプリンタでは、操作パネル６２０からの操作情報、コードメモリ６３０及びフォントメモリ６４０から文字情報に基づいて、ビットマップメモリ６５０を作業領域として、印刷画像を生成し、プリント出力部６６０を用いて出力する。またプリンタの状態やモードを表示パネル６７０を用いてユーザに伝える。
【０１４５】
本実施形態のマイクロコンピュータによれば、リモコン５１０、ゲームコントローラ５６０、操作パネル６２０などの割り込み入力装置から、操作情報が入力されたときに、該操作情報に応じた表示処理や演算処理を行うことができる。特に、これら装置からの割り込み入力の頻度が高い場合でも、これら割り込み入力に対応する割り込みルーチンプログラムとメインルーチンプログラムとを共存させることができる。従って、高いパフォーマンスを維持することができる。
【０１４６】
なおマイクロコンピュータを適用できる電子機器としては、上記以外にも例えば、携帯電話（セルラーフォン）、ＰＨＳ、ページャ、携帯型情報端末、デジタルカメラ、ハードディスク装置、光ディスク（ＣＤ、ＤＶＤ）装置、光磁気ディスク（ＭＯ）装置、オーディオ機器、電子手帳、電子卓上計算機、ＰＯＳ端末、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、パーソナルコンピュータ、テレビ、ビューファインダ型、又はモニタ直視型のビデオテープレコーダなど種々のものを考えることができる。
【０１４７】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１４８】
なお本実施形態では、セットアソシアティブ方式について説明したが、これに限定されるものではない。また４ウェイセットアソシアティブ方式について説明したが、ウェイ数が２以上であればウェイ数に限定されるものではない。更にロックするウェイをウェイ１にした場合について説明したが、これに限定されるものではなく、他のウェイであってもよい。更にまた、２以上のウェイをロック対象とすることも可能である。
【０１４９】
また、本発明の電子機器の構成も、図１７（Ａ）〜（Ｃ）、図１８（Ａ）〜（Ｃ）で説明したものに限定されるものでなく、種々の変形実施が可能である
【図面の簡単な説明】
【図１】本実施形態におけるキャッシュ回路の原理ブロック構成図である。
【図２】ロックスタートとロックエンドについての説明図である。
【図３】本実施形態のマイクロコンピュータのブロック構成図である。
【図４】図４（Ａ）は、メモリマップの一例を示す説明図である。図４（Ｂ）は、マイクロコンピュータがメインルーチンプログラムを処理中に、割り込みレベル「５」の割り込み入力を受け付けて割り込みルーチンプログラムの処理を行う場合の動作説明図を示す。
【図５】割り込みロック設定レジスタの構成例を示す構成図である。
【図６】キャッシュ回路の構成例を示すブロック図である。
【図７】タグメモリとデータメモリの構成例を示すブロック図である。
【図８】ウェイ１のウェイのエントリの構成例を示すブロック図である。
【図９】キャッシュ回路の基本的な動作を説明するための図である。
【図１０】キャッシュ制御回路の制御内容の一例を示す状態遷移図である。
【図１１】ＬＲＵ情報の更新についての説明図である。
【図１２】リプレースされるウェイの選択条件についての説明図である。
【図１３】図１３（Ａ）は、ＬＲＵ情報についての説明図である。図１３（Ｂ）は、ウェイ０がアクセスされたときにウェイ２がリプレース対象として選択される場合を示す説明図である。
【図１４】ウェイ選択回路の構成例を示す模式的に示すブロック図である。
【図１５】ロック検出信号に基づくＬＲＵ情報の更新についての説明図である。
【図１６】ＬＲＵ出力信号についての説明図である。
【図１７】図１７（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の内部ブロック図の例である。
【図１８】図１８（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
１０  キャッシュ回路
２０  キャッシュメモリ
２２  タグメモリ
２４  データメモリ
２６  ウェイ選択回路
３０  割り込みロック検出回路（ロック検出回路）
４０  割り込みロック設定レジスタ（ロック設定レジスタ）
５０、５００  マイクロコンピュータ（情報処理装置）
５２  ＣＰＵ（処理回路）
５４  ＬＲＵ回路
５６  ＬＲＵ制御回路
１００  キャッシュ制御回路
１１０  データ制御回路
１１２  比較回路
１１４、１５０  セレクタ回路（ＭＵＸ）
１２０  ライトバック制御回路
１２２  バッファ
１６０0〜１６０127  クロック制御回路
５１０  リモコン
５２０  位置検出部
５３５、６００  音出力部
５４０  メモリ
５５０、６１０  画像出力部
５６０  ゲームコントローラ
５７０  ＣＤＲＯＭ
５８０  カード
５９０  ＩＣメモリ
６００  音出力部
６２０  操作パネル
６３０  コードメモリ
６４０  フォントメモリ
６５０  ビットマップメモリ
６６０  プリント出力部
６７０  表示パネル
【図１】
0003988485.tif 000002
【図２】
0003988485.tif 000003
【図３】
0003988485.tif 000004
【図４】
0003988485.tif 000005
【図５】
0003988485.tif 000006
【図６】
0003988485.tif 000007
【図７】
0003988485.tif 000008
【図８】
0003988485.tif 000009
【図９】
0003988485.tif 000010
【図１０】
0003988485.tif 000011
【図１１】
0003988485.tif 000012
【図１２】
0003988485.tif 000013
【図１３】
0003988485.tif 000014
【図１４】
0003988485.tif 000015
【図１５】
0003988485.tif 000016
【図１６】
0003988485.tif 000017
【図１７】
0003988485.tif 000018
【図１８】
0003988485.tif 000019