(57)【要約】【課題】  初期状態/Ｌ２キャッシュフラッシュ直後で不要なＬ２キャッシュへのアクセスを減らし、ＣＰＵの処理能力を向上させる。【解決手段】  本発明のマイクロプロセッサおよびその制御方法は、ＣＰＵ１１から直接アクセスされるＬ１キャッシュ１２と、Ｌ１キャッシュ１２にＣＰＵ１１が必要とするデータが存在しない場合に、当該データが検索されるＬ２キャッシュ１３と、Ｌ２キャッシュ１３における初期データの有無を示すフラグ１４を有する。【選択図】  図１
2008040982.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵから直接アクセスされる第１のキャッシュメモリと、
前記第１のキャッシュメモリに前記ＣＰＵが必要とするデータが存在しない場合に、当該データが検索される第２のキャッシュメモリと、
前記第２のキャッシュメモリにおけるデータの有無を示すフラグを有することを特徴とするマイクロプロセッサ。
【請求項２】
前記フラグは、前記ＣＰＵが前記第１のキャッシュメモリをアクセスする経路とは異なる経路によってアクセスされることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項３】
前記フラグは、前記ＣＰＵに内蔵された状態レジスタの一部であることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項４】
第１および第２のキャッシュメモリを備えたマイクロプロセッサの制御方法であって、
前記第２のキャッシュメモリにおけるデータの有無を示すフラグを判定する第１の判定ステップと、
前記第１の判定ステップで前記フラグが前記第２のキャッシュメモリに前記データが存在することを示している場合に、ＣＰＵが必要とするデータを前記第２のキャッシュメモリで検索し、当該データの有無を判定する第２の判定ステップと、
前記第２の判定ステップで前記ＣＰＵが必要とするデータが前記第２のキャッシュメモリに存在している場合に、当該データを前記第２のキャッシュメモリから前記第１のキャッシュメモリへ転送し、前記ＣＰＵが当該データに直接アクセスできるように前記第１のキャッシュメモリを更新する第１のリフィルステップと、
前記第１の判定ステップで前記フラグが前記第２のキャッシュメモリに前記データが存在しないことを示している場合、または、前記第２の判定ステップで前記ＣＰＵが必要とするデータが前記第２のキャッシュメモリに存在していない場合に、当該データを外部メモリから前記第１のキャッシュメモリへ転送し、前記ＣＰＵが当該データに直接アクセスできるように前記第１のキャッシュメモリを更新する第２のリフィルステップを有することを特徴とするマイクロプロセッサの制御方法。
【請求項５】
前記第２のリフィルステップにおいて、前記ＣＰＵが必要とするデータのうち前記第１のキャッシュメモリのメモリ容量を超える部分を前記第２のキャッシュメモリへ格納することを特徴とする請求項４に記載のマイクロプロセッサの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次キャッシュメモリを備えたマイクロプロセッサおよびその制御方法に関する。
【背景技術】
【０００２】
近年、コンピュータシステムの性能を向上させるために、主記憶に対して階層メモリシステム（いわゆるキャッシュシステム。例えば、「特許文献１」を参照。）を採用するのが主流になっている。特に、最近では、マイクロプロセッサの性能を向上させるために、高速ＳＲＡＭセルなどを使用した２次キャッシュメモリ（以下、「Ｌ２キャッシュ」という。）がオンチップで搭載されるようになっている。Ｌ２キャッシュを搭載した従来のマイクロプロセッサでは、外部メモリ（主記憶）アクセスのための比較的長いメモリサイクルによるＣＰＵの待ち時間が解消され、本来のＣＰＵ性能を引出すことができ、マイクロプロセッサの性能を大幅に向上させることができる。
【０００３】
しかしながら、従来のマイクロプロセッサでは、電源投入時などのリセット直後の初期状態およびタスク切り替え等のキャッシュフラッシュ後で、Ｌ２キャッシュに命令/データがまだセットされていないにもかかわらず、不要なＬ２キャッシュのヒット/ミス判定を行なっていた。このため、初期状態/フラッシュ後においては、Ｌ２キャッシュを実装したことによりかえって性能が低下するという問題があった。すなわち、リセット直後/フラッシュ直後にデータのないＬ２キャッシュでのヒット/ミス判定を繰り返すため、性能向上のために大容量のＬ２キャッシュを搭載するとその分だけリセット直後/フラッシュ後の性能が低下するという問題があった。
【特許文献１】特開平１１−８５６１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、初期状態/フラッシュ直後等で不要なＬ２キャッシュへのアクセスを減らし、ＣＰＵの処理能力を向上させることができるマイクロプロセッサおよびその制御方法を提供する。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、ＣＰＵから直接アクセスされる第１のキャッシュメモリと、前記第１のキャッシュメモリに前記ＣＰＵが必要とするデータが存在しない場合に、当該データが検索される第２のキャッシュメモリと、前記第２のキャッシュメモリにおけるデータの有無を示すフラグを有することを特徴とするマイクロプロセッサが提供される。
【０００６】
本発明の別の一態様によれば、第１および第２のキャッシュメモリを備えたマイクロプロセッサの制御方法であって、前記第２のキャッシュメモリにおけるデータの有無を示すフラグを判定する第１の判定ステップと、前記第１の判定ステップで前記フラグが前記第２のキャッシュメモリに前記データが存在することを示している場合に、ＣＰＵが必要とするデータを前記第２のキャッシュメモリで検索し、当該データの有無を判定する第２の判定ステップと、前記第２の判定ステップで前記ＣＰＵが必要とするデータが前記第２のキャッシュメモリに存在している場合に、当該データを前記第２のキャッシュメモリから前記第１のキャッシュメモリへ転送し、前記ＣＰＵが当該データに直接アクセスできるように前記第１のキャッシュメモリを更新する第１のリフィルステップと、前記第１の判定ステップで前記フラグが前記第２のキャッシュメモリに前記データが存在しないことを示している場合、または、前記第２の判定ステップで前記ＣＰＵが必要とするデータが前記第２のキャッシュメモリに存在していない場合に、当該データを外部メモリから前記第１のキャッシュメモリへ転送し、前記ＣＰＵが当該データに直接アクセスできるように前記第１のキャッシュメモリを更新する第２のリフィルステップを有することを特徴とするマイクロプロセッサの制御方法が提供される。
【発明の効果】
【０００７】
本発明によれば、初期状態/Ｌ２キャッシュフラッシュ直後等で不要なＬ２キャッシュへのアクセスを減らすことができるので、ＣＰＵの処理能力を向上させることができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照しながら、本発明の実施例を説明する。
【実施例】
【０００９】
図１は、本発明の実施例に係わるマイクロプロセッサを示す回路ブロック図である。ここでは、主に、Ｌ２キャッシュ１３のリフィルおよびライトバックにかかわる部分を示した。
【００１０】
本発明の実施例に係わるマイクロプロセッサは、ＣＰＵ１１（Central Processing Unit）、ＣＰＵ１１から直接アクセスされるＬ１キャッシュ１２、Ｌ１キャッシュ１２との間で必要な命令/データのリフィル（Ｌ２キャッシュ１３からＬ１キャッシュ１２への命令/データの転送。）およびライトバック（Ｌ１キャッシュ１２からＬ２キャッシュ１３への更新された命令/データの転送。）が行われるＬ２キャッシュ１３、Ｌ２キャッシュ１３のデータの有無を示すＬ２キャッシュ初期状態フラグ１４、および外部メモリ１５との間で命令/データを入出力するためのバスインターフェース回路１６を備えている。
【００１１】
ＣＰＵ１１の第１の入出力にはＬ１キャッシュ１２の第１の入出力が接続され、第２の入出力にはＬ２キャッシュ初期状態フラグ１４の入出力が接続されている。
【００１２】
Ｌ１キャッシュ１２の第２の入出力にはバスインターフェース回路１６の第１の入出力が接続され、Ｌ１キャッシュ１２の出力はＬ２キャッシュ１３の入力に接続され、Ｌ１キャッシュ１２の入力にはＬ２キャッシュ１３の出力が接続されている。
【００１３】
Ｌ２キャッシュ１３の入出力にはバスインターフェース回路１６の第２の入出力が接続され、バスインターフェース回路１６の第３の入出力には外部メモリ１５の入出力が接続されている。
【００１４】
Ｌ１キャッシュ１２は、ＣＰＵ１１が実行処理する命令/データを格納する高速キャッシュメモリであり、ＣＰＵ１１から直接アクセスされる。
【００１５】
Ｌ２キャッシュ１３は、Ｌ１キャッシュ１２より低速ではあるが、Ｌ１キャッシュ１２より大容量のキャッシュメモリであり、Ｌ１キャッシュ１２にＣＰＵ１１が必要とする命令/データが存在しない（Ｌ１キャッシュミス）場合に検索される。
【００１６】
Ｌ２キャッシュ１３に必要な命令/データが存在すれば、Ｌ２キャッシュ１３からＬ１キャッシュ１２へ命令/データが転送（Ｌ２キャッシュ１３からのリフィル）される。Ｌ２キャッシュ１３にもＣＰＵ１１が必要とする命令/データが存在しない（Ｌ２キャッシュミス）場合は、バスインターフェース回路１６を介して外部メモリ１５から命令/データが転送（外部メモリ１５からのリフィル）される。
【００１７】
外部メモリ１５からのリフィルでは、まずＬ１キャッシュ１２へ命令/データが転送され、さらに、Ｌ１キャッシュ１２に入りきらない部分がＬ２キャッシュ１３へ転送される。
【００１８】
また、ＣＰＵ１１の実行処理によってＬ１キャッシュ１２の内容が更新された場合には、対応するＬ２キャッシュ１３の内容も置き換え時に更新（Ｌ２キャッシュ１３へのライトバック）される。
【００１９】
Ｌ２キャッシュ初期状態フラグ１４は、Ｌ１キャッシュ１２へのアクセスとは異なる経路でＣＰＵ１１からアクセスされるレジスタであり、Ｌ２キャッシュ１３が初期状態/フラッシュ直後でまだ命令/データが格納されていないことを示す。
【００２０】
すなわち、電源投入直後やリセット直後/Ｌ２キャッシュフラッシュ直後に“ＯＮ”され、Ｌ１キャッシュ１２からＬ２キャッシュ１３に命令/データが転送されると“ＯＦＦ”される。
【００２１】
次に、上述した構成を持つマイクロプロセッサの制御方法について説明する。  
図２は、本発明の実施例に係わるマイクロプロセッサの制御方法を示すフロー図である。ここでは、主にＬ１キャッシュ１２に必要な命令/データが存在しない（Ｌ１キャッシュミス）場合のキャッシュリフィルにかかわる部分を示した。
【００２２】
本発明の実施例に係わるマイクロプロセッサの制御方法は、Ｌ２キャッシュ初期状態フラグ１４を判定するステップ（ＳＴ２１）、Ｌ２キャッシュ１３を検索しヒット/ミスを判定するステップ（ＳＴ２２）、Ｌ２キャッシュ１３からＬ１キャッシュ１２に命令/データをリフィルするステップ（ＳＴ２３）、外部メモリ１５からＬ１キャッシュ１２に命令/データをリフィルするステップ（ＳＴ２４）、およびＣＰＵ１１がＬ１キャッシュ１２をアクセスして処理を実行するステップ（ＳＴ２５）を備えている。
【００２３】
Ｌ１キャッシュミスが発生すると、まず、ＳＴ２１で、ＣＰＵ１１がＬ２キャッシュ初期状態フラグ１４をアクセスし、これが“ＯＮ”であれば、Ｌ２キャッシュ１３は初期状態であり、命令/データはまだ転送されていないので、動作はＳＴ２４へ移行する。
【００２４】
Ｌ２キャッシュ初期状態フラグ１４が“ＯＦＦ”であれば、Ｌ２キャッシュ１３にはすでに命令/データが格納されているので、動作はＳＴ２２へ移行する。
【００２５】
ＳＴ２２では、ＣＰＵ１１がＬ２キャッシュ１３を検索し、必要な命令/データが存在する（Ｌ２キャッシュヒット）場合（“ＯＫ”）には、Ｌ２キャッシュ１３からリフィルするために動作はＳＴ２３へ移行する。
【００２６】
Ｌ２キャッシュ１３に必要な命令/データが存在しない（Ｌ２キャッシュミス）場合（“ＮＧ”）には、外部メモリ１５から命令/データを転送するために動作はＳＴ２４へ移行する。
【００２７】
ＳＴ２３では、必要な命令/データがＬ２キャッシュ１３からＬ１キャッシュ１２へ転送される。リフィルが終了すると動作はＳＴ２５へ移行する。
【００２８】
ＳＴ２４では、Ｌ１キャッシュ１２およびＬ２キャッシュ１３にＣＰＵ１１が必要とする命令/データが存在しないので、バスインターフェース回路１６を介して外部メモリ１５からＬ１キャッシュ１２へ命令/データが転送される。
【００２９】
この時、まず、Ｌ１キャッシュ１２へ命令/データが転送され、Ｌ１キャッシュ１２にすでにＶａｌｉｄデータが存在する場合はＬ１キャッシュ１２からＬ２キャッシュ１３へ転送される。リフィルが終了すると動作はＳＴ２５へ移行する。
【００３０】
ＳＴ２５では、ＣＰＵ１１が、ＳＴ２３またはＳＴ２４でリフィルされたＬ１キャッシュ１２をアクセスし、実行処理を行う。
【００３１】
このように、Ｌ２キャッシュ初期状態フラグ１４が“ＯＮ”の場合には、Ｌ２キャッシュ１３を検索してのキャッシュヒット/ミスの判定を行なうことなく、外部メモリ１５からのリフィルを実行する。
【００３２】
上記実施例によれば、Ｌ２キャッシュ初期状態フラグ１４によって初期状態/Ｌ２キャッシュフラッシュ直後等で不要なＬ２キャッシュ１３へのアクセスを減らすことができるので、ＣＰＵ１１の処理能力を向上させることができる。
【００３３】
上述の実施例では、キャッシュシステムは、２階層構成であるとしたが、本発明はこれに限られるものではなく、３階層以上のキャッシュメモリを備えたマイクロプロセッサにも原理的には適用可能である。
【００３４】
また、上述の実施例では、Ｌ２キャッシュ初期状態フラグ１４はＣＰＵ１１から直接アクセスされるフラグレジスタであるとしたが、本発明はこれに限られるものではなく、例えば、ＣＰＵ１１内部の状態レジスタの一部を割り当てるように構成することもできる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施例に係わるマイクロプロセッサを示す回路ブロック図。
【図２】本発明の実施例に係わるマイクロプロセッサの制御方法を示すフロー図。
【符号の説明】
【００３６】
１１  ＣＰＵ
１２  Ｌ１キャッシュ
１３  Ｌ２キャッシュ
１４  Ｌ２キャッシュ初期状態フラグ
１５  外部メモリ
１６  バスインターフェース回路
【図１】
2008040982.tif 000003
【図２】
2008040982.tif 000004