(57)【要約】【課題】性能の改善されたデータ処理装置およびデータ処理方法を得る。【解決手段】データ処理装置はキャッシュ制御値を格納するように動作する制御レジスタと、データアクセス命令および前記キャッシュ制御値に応答して、前記キャッシュ制御値が所定値を持つ場合にはキャッシュ内でアクセスすべきデータを探し、前記キャッシュ制御値が前記所定値を持たない場合には前記キャッシュ内でアクセスすべき前記データを探さないデータアクセス論理とを含んでいる。【選択図】図４
2005235207.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ制御値を格納するように動作可能な制御レジスタと、
データアクセス命令および前記キャッシュ制御値に応答して、前記キャッシュ制御値が所定値を持つ場合にはアクセスすべきデータをキャッシュ内で探し、前記キャッシュ制御値が前記所定値を持たない場合には前記アクセスすべきデータを前記キャッシュ内で探さないデータ処理論理と、
を含むデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置であって、前記キャッシュ制御値は前記データ処理装置内に存在するイネーブルされたキャッシュを示す前記所定値を持つデータ処理装置。
【請求項３】
請求項１に記載のデータ処理装置であって、前記データ処理装置はキャッシュを含まず、前記キャッシュ制御値は前記所定値を含まないようにハードワイヤされるデータ処理装置。
【請求項４】
請求項１に記載のデータ処理装置であって、前記データ処理装置はキャッシュを含み、前記データ処理装置は前記キャッシュがイネーブルされているのに応答して、前記キャッシュ制御値を前記所定値に設定するように動作可能なデータ処理装置。
【請求項５】
請求項１に記載のデータ処理装置であって、前記データ処理装置はキャッシュを含み、前記データ処理装置は前記キャッシュがディセーブルされているのに応答して、前記キャッシュ制御値が前記所定値を持たないと設定するように動作可能なデータ処理装置。
【請求項６】
請求項４に記載のデータ処理装置であって、前記データ処理装置は複数のキャッシュを含み、前記制御レジスタは少なくとも２つのキャッシュ制御値を格納するように動作可能であり、前記少なくとも２つのキャッシュ制御値は前記複数のキャッシュのいずれにおいて前記アクセスすべきデータを見つけられるかを指示し、前記データアクセス論理はデータアクセス命令および前記少なくとも２つのキャッシュ制御値に応答して、前記少なくとも２つのキャッシュ制御値により指示される前記キャッシュの各々内で前記アクセスすべきデータを探し、前記少なくとも２つのキャッシュ制御値により指示されないキャッシュ内では前記データを探さないデータ処理装置。
【請求項７】
請求項６に記載のデータ処理装置であって、前記複数のキャッシュに対応する複数のキャッシュ制御値を含み、前記データ処理論理は、データアクセス命令および前記複数のキャッシュ制御値に応答して、前記所定値に設定されたそれらの対応するキャッシュ制御値を有する前記キャッシュの各々内で前記アクセスすべきデータを探し、前記所定値に設定されないその対応するキャッシュ制御値を有する任意のキャッシュ内では前記データを探さないデータ処理装置。
【請求項８】
請求項１に記載のデータ処理装置であって、前記データ処理装置はもう１つのキャッシュ制御値を含み、前記データ処理論理は、データアクセス命令および前記キャッシュ制御値と前記もう１つのキャッシュ制御値との両方に応答して、前記キャッシュ制御値が所定値を持ちかつ前記もう１つのキャッシュ制御値が第２の所定値を持たない場合にはアクセスすべきデータをキャッシュ内で探し、前記キャッシュ制御値が所定値を持たないかまたは前記もう１つのキャッシュ制御値が第２の所定値を持つ場合には前記アクセスすべきデータを前記キャッシュ内で探さないデータ処理装置。
【請求項９】
請求項８に記載のデータ処理装置であって、前記データ処理装置はもう１つの制御レジスタを含み、前記もう１つの制御レジスタはもう１つのキャッシュ制御値を含むデータ処理装置。
【請求項１０】
請求項８に記載のデータ処理装置であって、前記もう１つのキャッシュ制御値は前記アクセスすべきデータが前記キャッシュ内に無いことを示す前記第２の所定値を持つデータ処理装置。
【請求項１１】
請求項８に記載のデータ処理装置であって、前記データ処理装置は、前記データ処理装置の検出された所定状態に応答して、前記もう１つのキャッシュ制御値が前記第２の所定値を有するように設定可能であり、かつ前記データ処理装置が前記所定状態を出ると前記データ処理装置が検出するのに応答して、前記もう１つのキャッシュ制御値を再評価するように動作可能であるデータ処理装置。
【請求項１２】
請求項１に記載のデータ処理装置であって、前記データ処理装置は、前記データ処理装置が所定状態にあるとの検出に応答して、前記所定値を持たないように前記キャッシュ制御値を設定可能であり、かつ前記データ処理装置が前記所定状態を出ると前記データ処理装置が検出するのに応答して、前記キャッシュ制御値を再評価するように動作可能であるデータ処理装置。
【請求項１３】
請求項１１に記載のデータ処理装置であって、前記所定状態はキャッシュ可能ではないメモリ領域にアクセスする一連のデータアクセス命令の実行を含むデータ処理装置。
【請求項１４】
請求項１３に記載のデータ処理装置であって、メモリアクセス命令がメモリの異なる領域へのアクセスであるのに応答して、前記データ処理装置が前記所定状態を出ると前記データ処理装置が検出するデータ処理装置。
【請求項１５】
請求項１３に記載のデータ処理装置であって、メモリアクセス命令がメモリ領域ミスを与えるのに応答して、前記データ処理装置が所定状態を出ると前記データ処理装置が検出するデータ処理装置。
【請求項１６】
請求項１５に記載のデータ処理装置であって、前記データ処理装置は前記キャッシュ制御値の再評価に続いてメモリ領域ミスを与えるメモリアクセス命令を再発行するように動作可能であるデータ処理装置。
【請求項１７】
制御レジスタ内にキャッシュ制御値を格納するステップと、
データアクセス命令および前記キャッシュ制御値に応答して、前記キャッシュ制御値が所定値を持つ場合にはキャッシュを読み出し、前記キャッシュ制御値が前記所定値を持たない場合にはキャッシュを読み出さないステップと、
を含むデータ処理方法。
【請求項１８】
請求項１７に記載のデータ処理方法であって、前記キャッシュ制御値は前記データ処理装置内に存在するイネーブルされたキャッシュを示す前記所定値を持つ方法。
【請求項１９】
請求項１７に記載のデータ処理方法であって、前記方法はさらに、前記データ処理装置がキャッシュを含まなければ、前記所定値を含まぬように前記キャッシュ制御値をハードワイヤリングするステップを含む方法。
【請求項２０】
請求項１７に記載のデータ処理方法であって、前記方法はさらに、前記データ処理装置がキャッシュを含みかつ前記キャッシュがイネーブルされているのに応答して、前記キャッシュ制御値を前記所定値に設定するステップを含む方法。
【請求項２１】
請求項１７に記載のデータ処理方法であって、前記方法はさらに、前記データ処理装置がキャッシュを含みかつ前記キャッシュがディセーブルされているのに応答して、前記所定値を含まぬように前記キャッシュ制御値を設定するステップを含む方法。
【請求項２２】
請求項２０に記載のデータ処理方法であって、前記データ処理装置は複数のキャッシュを含みかつ前記制御レジスタは少なくとも２つのキャッシュ制御値を格納し、前記少なくとも２つのキャッシュ制御値は前記複数のキャッシュのいずれにおいて前記アクセスすべきデータを見つけられるかを指示し、前記方法はデータアクセス命令および前記少なくとも２つのキャッシュ制御値に応答して、前記少なくとも２つのキャッシュ制御値により指示される前記キャッシュの各々を読み出し、前記少なくとも２つのキャッシュ制御値により指示されないキャッシュ内のデータは読み出さないステップを含む方法。
【請求項２３】
請求項２２に記載のデータ処理方法であって、前記複数のキャッシュに対応する複数のキャッシュ制御値があり、前記方法は前記データアクセス命令および前記複数のキャッシュ制御値に応答して、前記所定値に設定された対応するキャッシュ制御値を有するキャッシュの各々を読み出し、前記所定値に設定されていない対応するキャッシュ制御値を有するキャッシュを読み出さないステップを含む方法。
【請求項２４】
請求項１７に記載のデータ処理方法であって、前記データ処理装置はもう１つのキャッシュ制御値を含み、前記方法は、データアクセス命令および前記キャッシュ制御値と前記もう１つのキャッシュ制御値との両方に応答して、前記キャッシュ制御値が所定値を持ちかつ前記もう１つのキャッシュ制御値が第２の所定値を持たない場合にはキャッシュを読み出し、前記キャッシュ制御値が前記所定値を持たないかまたは前記もう１つのキャッシュ制御値が前記第２の所定値を持つ場合には前記キャッシュを読み出さないステップを含む方法。
【請求項２５】
請求項２４に記載のデータ処理方法であって、前記もう１つのキャッシュ制御値はアクセスされる前記データが前記キャッシュ内に無いことを示す前記第２の所定値を持つ方法。
【請求項２６】
請求項２４に記載のデータ処理方法であって、前記方法は、前記データ処理装置の検出された所定状態に応答して、前記第２の所定値を持つように前記もう１つのキャッシュ制御値を設定し、かつ前記データ処理装置が前記所定状態を出るとの検出に応答して、前記もう１つのキャッシュ制御値を再評価するステップを含む方法。
【請求項２７】
請求項１７に記載のデータ処理方法であって、前記方法は、前記データ処理装置が所定状態にあるとの検出に応答して、前記所定値を持たないように前記キャッシュ制御値を設定し、かつ前記データ処理装置が前記所定状態を出るとの検出に応答して、前記キャッシュ制御値を再評価するステップを含む方法。
【請求項２８】
請求項２６に記載のデータ処理方法であって、前記所定状態はキャッシュ可能ではないメモリ領域にアクセスする一連のデータアクセス命令の前記データ処理装置による実行を含む方法。
【請求項２９】
請求項２８に記載の方法であって、前記方法は、メモリアクセス命令がメモリの異なる領域へのアクセスであるのに応答して、前記データ処理装置が前記所定状態を出るのを検出する方法。
【請求項３０】
請求項２８に記載の方法であって、前記データ処理装置は、メモリアクセス命令がメモリ領域ミスを与えるのに応答して、前記データ処理装置が前記所定状態を出るのを検出する方法。
【請求項３１】
請求項３０に記載の方法であって、前記方法は、前記キャッシュ制御値の再評価に続いてメモリ領域ミスを与えるメモリアクセス命令を再発行する方法。
【請求項３２】
データ処理装置上で実行する時に、データ処理装置を制御して請求項１７に従った方法のステップを実施するように動作するコンピュータプログラムプロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明はデータ処理中のデータアクセスの分野に関する。
【背景技術】
【０００２】
（従来技術の説明）
データ処理装置は典型的にいくつかの異なる場所にデータを格納し、それは一般的にメモリ領域および少なくとも１つのキャッシュを含んでいる。メモリ領域は異なるタイプのメモリにより形成することができるが、一般的にそれらは比較的安価であるため大型となることがあり迅速にアクセスできない。一方、キャッシュは一般的により高速のデータ記憶装置を含むため、より高価ではあるがより迅速にアクセスする。したがって、データ処理装置の性能、特に、処理装置内の特定のデータアクセスを改善するために、数回アクセスすべきデータはメモリからキャッシュへコピーすることができる。次に、データアクセス要求に応答して、処理装置は一般的にデータがキャッシュ内にあるかどうかを最初に調べ、それがそこに無くてキャッシュミスが生じる場合だけ、他のメモリをさらに調べる。
【０００３】
図１は従来技術に従って外部メモリを要求する標準機構を示すフロー図である。メモリ要求が処理装置の命令パイプラインから送られ、それに応答して、処理装置はキャッシュ内で要求されたデータ片を探す（キャッシュメモリ読出し）。キャッシュヒット検出があれば、データはパイプラインへ戻される、すなわち、“イエス”ラインに従う。キャッシュヒット検出が無ければ、処理装置は“ノー”ラインに従って外部メモリアクセスの要求に進み、この外部メモリアクセスを実施してデータを検索する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
メモリへのアクセスはキャッシュへのアクセスよりも遥かに時間を消費するため、データアクセスに関するデータ処理装置の性能の改善は一般的により多くのキャッシュを設けてキャッシュアクセスを改善することに関連している。
【課題を解決するための手段】
【０００５】
（発明の概要）
本発明の第１の側面により、キャッシュ制御値を格納するように動作可能な制御レジスタと、データアクセス命令および前記キャッシュ制御値に応答して、前記キャッシュ制御値が所定値を持つ場合にはキャッシュ内でアクセスすべきデータを探し、前記キャッシュ制御値が前記所定値を持たない場合には前記キャッシュ内で前記アクセスすべきデータを探さないデータアクセス論理とを含むデータ処理装置が提供される。
【０００６】
本発明は、予測可能性が重要である状況等のある状況では、処理装置の性能が重要ではあってもキャッシュを使用するのは不適切となることがある問題を認識して取り組むものである。制御レジスタ内に制御値を与えることによりメモリアクセス速度を改善することでこの問題に取り組み、制御値の値はデータアクセス論理がキャッシュ内を探すことであるかどうかを決定する。従来、データアクセスが実施される時は、処理装置はキャッシュ内でデータを探しそれがそこに無ければキャッシュミスが生じ、処理装置は他所、例えば、メモリ内を探す。本発明では、キャッシュ内にデータが在り得ないことが判っているような場合にキャッシュ検索、キャッシュミスステップを解消するのに制御値が使用される。これにより、キャッシュ内にデータが在り得ないことが予め判っている各メモリデータアクセスに対する実行時間および電力が節減される。このような状況における実行時間の節減はインプリメンテーションによって決まるが、メモリデータアクセス当り２サイクル以上とすることができる。
【０００７】
好ましくは、前記キャッシュ制御値は前記データ処理装置内にイネーブルされたキャッシュが存在することを示す前記所定値を持つ。
【０００８】
データ処理装置がイネーブルされたキャッシュを含んでいなければ、キャッシュ内でデータ片を探すことは時間の浪費である。このような状況では、所定値を持たないように制御値を設定すれば、処理装置がデータアクセス要求に応答してキャッシュ内を探しキャッシュミスを返すことが回避される。
【０００９】
ある実施例では、前記データ処理装置はキャッシュを含まず、前記キャッシュ制御値は前記所定値を含まないようにハードワイヤされる。
【００１０】
データ処理装置がキャッシュを含まなければ、キャッシュ制御値は全データアクセスがキャッシュ内を調べないように、所定値ではない値にデフォルトとして設定することができる。明らかに、データ処理装置がキャッシュを含まなければ、データアクセスがキャッシュ内を調べなければならない状況はなく、制御値のハードワイヤリングはキャッシュ制御値が常に正しい値に設定されることを保証する実際的な解決策となる。
【００１１】
好ましい実施例では、前記データ処理装置はキャッシュを含み前記キャッシュがイネーブルされているのに応答して、前記キャッシュ制御値を前記所定値に設定するように動作可能である。好ましくは、前記データ処理装置は、前記キャッシュがディセーブルされているのに応答して、前記キャッシュ制御値を前記所定値を持たないように設定するようにも動作可能である。
【００１２】
好ましい実施例では、データ処理装置はキャッシュがディセーブルされているかまたはイネーブルされているかに応答して、キャッシュ制御値を設定することができ、データアクセスはキャッシュがイネーブルされる場合だけ調べられ、ディセーブルされる状況ではデータ処理装置はデータアクセス要求に応答して、キャッシュを無視することにより、避けられないキャッシュミスを回避するように制御することができる。
【００１３】
ある実施例では、前記データ処理装置は複数のキャッシュを含み前記制御レジスタは少なくとも２つのキャッシュ制御値を格納するように動作可能であり、前記少なくとも２つのキャッシュ制御値は前記複数のキャッシュのいずれかでアクセスすべきデータを見つけられるかもしれないことを指示し、前記データアクセス論理はデータアクセス命令および前記少なくとも２つのキャッシュ制御値に応答して、前記少なくとも２つのキャッシュ制御値により指示される各キャッシュ内でアクセスすべき前記データを探し、前記少なくとも２つのキャッシュ制御値により指示されないキャッシュ内では前記データを探さない。
【００１４】
２つ以上のキャッシュを有するデータ処理装置の場合、複数の制御値を使用して任意のキャッシュ、あるキャッシュまたは全キャッシュを調べるかどうかを指示することができる。ある実施例では各キャッシュに対する制御値があり、他の実施例ではどのキャッシュが調べられるかを指示するある値に制御値を設定することができる。
【００１５】
ある実施例では、前記データ処理装置はもう１つのキャッシュ制御値を含み、前記データ処理論理はデータアクセス命令および前記キャッシュ制御値と前記もう１つのキャッシュ制御値との両方に応答して、前記キャッシュ制御値が所定値を有しかつ前記もう１つのキャッシュ制御値が第２の所定値を持たない場合にはキャッシュ内でアクセスすべきデータを探し、前記キャッシュ制御値が前記所定値を持たないかまたは前記もう１つのキャッシュ制御値が前記第２の所定値を持つ場合には前記キャッシュ内でアクセスすべき前記データを探さない。
【００１６】
ある実施例では、もう１つの制御値によりデータアクセスをさらに制御することができる。これはキャッシュを調べるべきではないことを意味する状態が存在することを示す第２の所定値に設定することができる。したがって、キャッシュはこれが受け入れられることを両方の制御値が示す場合のみ調べればよい。キャッシュは調べるべきでないことをいずれかの制御値が示す場合、キャッシュはメモリアクセスを実施する前に読み出されることはない。
【００１７】
ある実施例では、このもう１つのキャッシュ制御値はキャッシュ制御値と同じ制御レジスタ内に存在し、他の実施例では、前記データ処理装置は前記もう１つのキャッシュ制御値を含むもう１つの制御レジスタを含んでいる。
【００１８】
好ましい実施例では、前記もう１つのキャッシュ制御値はアクセスすべき前記データが前記キャッシュ内には無いことを示す前記第２の所定値を有する。
【００１９】
もう１つのキャッシュ制御値はアクセスすべきデータがキャッシュ内には無いためキャッシュ内を調べる価値がないことを示すことができる。これはある範囲内の理由による。
【００２０】
ある実施例では、前記データ処理装置は、前記データ処理装置の検出された所定状態に応答して、前記もう１つのキャッシュ制御値を前記第２の所定値を持つように設定可能であり、かつ前記データ処理装置が前記所定状態を出ると前記データ処理装置が検出するのに応答して、前記もう１つのキャッシュ制御値を再評価するように動作可能である。
【００２１】
したがって、もう１つの制御値はその間状態データがキャッシュ内に格納されない処理装置のある状態を示すことができ、したがって、データアクセス中のキャッシュアクセスはキャッシュヒットを生ぜず回避しなければならない。前記所定状態を出ることは再評価をトリガし恐らくはこの制御値をリセットしなければならない。
【００２２】
ある実施例では、前記所定値を持たない前記制御値は前記データ処理装置が所定状態であり、前記データ処理装置は、前記データ処理装置が前記所定状態であるとの検出に応答して、前記キャッシュ制御値を前記所定値を持たないように設定可能であり、前記データ処理装置が前記所定状態を出ると前記データ処理装置が検出するのに応答して、前記キャッシュ制御値を再評価するように動作可能である。
【００２３】
したがって、ある実施例では１つの制御値しかなく、それはイネーブルされたキャッシュの存在ではなく、その間状態データがキャッシュ内に格納されない処理装置のある状態を示すことができる。この状態に入るまたは出ることは制御値の再評価をトリガし恐らくは制御値をリセットしなければならない。
【００２４】
好ましくは、前記所定状態はキャッシュ可能ではないメモリ領域をアクセスする一連のデータアクセス命令の実行を含んでいる。
【００２５】
あるメモリ領域はキャッシュ可能ではないため、この領域に一連のデータアクセス命令が行われたら、これらのアクセス命令に応答してキャッシュ内を調べないことが道理にかなっている。これはこれらのメモリアクセス命令の実行中に制御値を設定して達成することができる。
【００２６】
好ましくは、前記データ処理装置は、メモリアクセス命令がメモリの異なる領域へのアクセスであるのに応答して、前記データ処理装置が前記所定状態を出ると検出する。
【００２７】
処理装置が非キャッシュ可能メモリ領域への複数のデータアクセス命令に応答していれば、メモリ領域内の変化はその領域内のデータにアクセスする一連のデータアクセス命令が終了し関連する制御値を再評価すべきであることを示す。
【００２８】
ある実施例では、前記データ処理装置は、あるメモリアクセス命令がメモリ領域ミスを与えるのに応答して、前記データ処理装置が前記所定状態を出ると検出する。
【００２９】
メモリ領域ミスはこの領域内のデータにアクセスする一連のデータアクセス命令が終了し関連する制御値を再評価すべきであることを示す。
【００３０】
好ましくは、前記データ処理装置は前記キャッシュ制御値の再評価に続いてメモリ領域ミスを与えるメモリアクセス命令を再発行するように動作することができる。これはメモリアクセスがそのデータを見つけることを保証する。
【００３１】
本発明の第２の側面に従って、制御レジスタ内にキャッシュ制御値を格納するステップと、データアクセス命令および前記キャッシュ制御値に応答して、前記キャッシュ制御値が所定値を持つ場合にはキャッシュを読出し、前記キャッシュ制御値が前記所定値を持たない場合には前記キャッシュを読み出さないステップとを含むデータ処理方法が提供される。
【００３２】
本発明の第３の側面に従って、コンピュータプログラムプロダクトが提供され、それはデータ処理装置上で実行すると、データ処理装置を制御して本発明の第２の側面に従った方法のステップを実施するように動作することができる。
【実施例】
【００３３】
（好ましい実施例の説明）
添付図に例示された好ましい実施例を参照して、単なる例として、本発明をさらに説明する。図２は本発明の実施例に従って外部メモリにアクセスする機構を略示している。ここでは、命令パイプラインからメモリ要求が送られ、この要求に応答して処理装置は制御値の値に応じて２つの方法の一方で作用する。制御値はイネーブルされたキャッシュの存在を示すのに使用される。制御値がイネーブルされキャッシュの存在を示す場合には、処理装置は標準的方法で“イエス”ラインに従って進んでキャッシュメモリから読み出し、キャッシュヒットが検出されるとデータを戻し、検出されなければ外部メモリアクセスを要求し実施する。しかし、キャッシュは存在しないまたはディセーブルされることを制御値が示す場合には、処理装置は“ノー”ラインに従ってまっすぐ外部メモリアクセスの要求および実施へ行く。本図を図１と比べると、この制御値の提供により処理装置はキャッシュメモリからの読出しおよびキャッシュヒットを検出しないステップを省くことが判る。
【００３４】
図３は集積回路８およびメモリ５０からなるデータ処理装置５を示す。メモリは集積回路外部に配置された単一ブロックとして示されているが、実際にはいくつかの異なるタイプのメモリを含むことができ、そのいくつかは集積回路８内に配置することができる。
【００３５】
集積回路８は命令パイプライン６０を含み、それはコア６２へ命令を送る。コア６２は処理論理２０および命令デコーダを含むブロック２３を含んでいる。レジスタバンク６１もコア内に存在し、このバンクは制御レジスタ１０，１５を含み、それについては後述する。集積回路内に１つのキャッシュ３０が示されているが、実際には２つ以上のキャッシュであってもよい。
【００３６】
ライン５７および５８はデータアクセス要求を表し、これらはコアからキャッシュへ行き次にキャッシュミスが生じたらメモリ５７へ行くことができ、あるいはキャッシュを調べるべきではないことを制御レジスタ１０および１５内の制御ビットが示す場合には、それらは直接メモリ５８へ行くことができる（図２の“ノー”パス）。このプロセスについては後述する。
【００３７】
図４は本発明の実施例に従ったキャッシュ構成オプションを有するデータ処理システムを略示している。図４は制御レジスタ１０を有する処理装置５、処理論理２０、２つのキャッシュ３０および４０並びにメモリ５０を示している。処理論理がデータアクセス要求を受信する時、それがこのデータアクセス要求をどのように処理するかは制御レジスタ１０内に格納された２つの制御ビット１２および１４の値によって決まる。制御ビット１２および１４はそれぞれキャッシュ３０および４０に関連しており、これらのキャッシュがイネーブルされるかどうかを示すように設定される。こうして、データアクセス要求を受信すると処理論理は制御ビット１２および１４を調べ、その各キャッシュがイネーブルされていないことをいずれかが示す場合には、処理論理はデータアクセス要求に応答してそのキャッシュ内を調べない。
【００３８】
例えば、データアクセス要求が受信されかつキャッシュ３０および４０がディセーブルされていることを制御ビット１２および１４が共に示す場合、処理論理はメモリ５０内のデータを探し最初はキャッシュ３０および４０を調べない。したがって、このシナリオでは、データアクセス要求は制御ビットが存在せず処理論理が２つのキャッシュ内のデータを最初に探した場合よりも４処理ステップだけ速く処理される。さらに、２つのルックアップステップが不要であるため消費電力が低減する。
【００３９】
もう１つの例では、制御ビット１２はイネーブルすべきキャッシュ３０を示すことができ、制御ビット１４はディセーブルすべきキャッシュ４０を示すことができる。その場合、処理論理はメモリアクセス要求に応答して最初にキャッシュ３０内を調べ、次にメモリ５０内を調べ、キャッシュ４０を無視し、メモリ内にデータがある場合には、キャッシュ４０も調べている場合よりも２処理ステップだけ速くアクセスを実施する。
【００４０】
図５はキャッシュの無いデータ処理装置５を示す。ここでは、キャッシュ内にデータを格納することはできないため、制御ビット１２は所定値に設定され、本例ではそれは接地にハードワイヤされる。これはどんな場合でもキャッシュを調べるべきではないことを処理論理２０に示し、全てのメモリアクセス要求はメモリ５０へ送られる。
【００４１】
図６はキャッシュ３０がイネーブルまたはディセーブルされるのに応答して、制御ビット１２をどのように設定できるかを略示している。このような場合、キャッシュの状態が変化している（例えば、ディセーブルやイネーブルされている）ことを示す信号が処理論理２０により検出され、制御ビット１２に信号が送られてそれを適切な値に設定する。したがって、制御ビット１２の値はキャッシュの状態を反映し処理論理２０は、データアクセス要求に応答して、制御ビット１２の値に応じてキャッシュを無視するかあるいはメモリを調べる前にそれを調べる。
【００４２】
図７は２つの制御レジスタ１０および１５を有するデータ処理装置５、制御ビット１２を有する制御レジスタ１０、および制御ビット１７を有する制御レジスタ１５を略示している。この実施例では、制御ビット１２はキャッシュ３０が存在しかつ１つの値でイネーブルされる、または前例のように存在しないかあるいは異なる値でディセーブルされるかどうかを示す。しかし、本例ではさらに制御ビット１７を有する付加制御レジスタ１５がある。この制御ビット１７はマシンの状態に応答し処理論理が現在キャッシュ内でデータアクセスを見つけられなかった状態であるかどうかを示すように設定することができる。例えば、処理論理がメモリのキャッシュ可能ではないエリア５２へデータアクセスしておれば、制御ビット１７はキャッシュを調べないよう処理論理に指示する値に設定することができる。処理装置がこの状態から出る時はこの制御ビット１７はリセットしなければならない。
【００４３】
処理装置がメモリ５２の非キャッシュ可能領域へデータアクセスが行われている状態であれば、処理論理は処理装置にキャッシュを調べないよう指示するように制御ビット１７を設定することができる。アクセスされるメモリ領域のタイプに変化が生じると、これはこの領域内のデータにアクセスする一連のデータアクセス命令が終了していることを示す。しかし、制御ビット１７の値が変化しなければ、それはまだキャッシュを調べないよう指示し、したがって、この新しい領域は非キャッシュ可能領域として処理される。したがって、アクセスされるメモリ領域のタイプの変化の検出は制御ビット１７を評価しかつアクセスを正しい位置へ潜在的に再発行するトリガとして使用することができる（すなわち、キャッシュをチェックする）。
【００４４】
図示していないある実施例では、イネーブルされたキャッシュの存在または不存在を示す制御ビット１２は無く、マシンの状態を示す制御ビット１７だけである。他の実施例では、制御ビット１２および１７は単一制御レジスタ上に現れる。
【００４５】
特定の実施例について説明してきたが、本発明はそれに限定されるものではなく、発明の範囲内で多くの修正および追加を行えることがお判りであろう。例えば、本発明の範囲から逸脱することなく、下記の従属項の特徴を独立項の特徴と様々に組み合わせることができる。
【図面の簡単な説明】
【００４６】
【図１】従来技術に従った外部メモリ要求機構を示す略フロー図である。
【図２】本発明の実施例に従った外部メモリ要求機構を示す略フロー図であり、キャッシュディセーブルまたは不在時にキャッシュルックアップペナルティを回避する方式を示している。
【図３】本発明の実施例に従ったデータ処理装置を示す図である。
【図４】本発明の実施例に従ったキャッシュ構成を有する図３のデータ処理装置を示す略図である。
【図５】本発明の実施例に従ったキャッシュ構成の無いデータ処理装置５を示す図である。
【図６】制御ビットの設定を示す略図である。
【図７】もう１つの制御レジスタを有する図３のデータ処理装置を示す略図である。
【符号の説明】
【００４７】
５  データ処理装置
８  集積回路
１０，１５  制御レジスタ
１２，１４，１７  制御ビット
２０  処理論理
２３  ブロック
３０，４０  キャッシュ
５０  メモリ
５２  非キャッシュ可能メモリ
５７，５８  ライン
６１  レジスタ  バンク
６２  コア
【図１】
2005235207.tif 000003
【図２】
2005235207.tif 000004
【図３】
2005235207.tif 000005
【図４】
2005235207.tif 000006
【図５】
2005235207.tif 000007
【図６】
2005235207.tif 000008
【図７】
2005235207.tif 000009