(57)【要約】  マルチウェイキャッシュにおいて、置換に利用可能なＮ個のウェイを選択する方法において、複数のルールセット（１０２，１０８）が与えられ、これら複数のルールセットのそれぞれがキャッシュにおいて置換に利用可能であるＮ個のウェイを特定するものである（なお、Ｎは０以上である）。この方法においては、さらにアクセスアドレスを受信し、複数のルールセットのうち１つを選択するために少なくともこのアクセスアドレスの一部を使用する。複数のルールセットのうち選択された１つ（１１０）は、置換に利用可能であるキャッシュにおいてＮ個のウェイを選択するために用いられる。一実施例では、ルールセットを選択するためにアクセスアドレス（４０）の高次ビットを使用する。別の実施例においては、ルールセットを選択するために少なくともアクセスアドレスの一部とルールセットセレクタ制御レジスタが用いられる。さらに別の実施例においては、ルールセットを選択するためにアクセスアドレスとアドレス範囲コンパレータが用いられる。
2006529034.tif 000002
【特許請求の範囲】
【請求項１】
複数のウェイを有するキャッシュにおいて、置換に利用可能なＮ個のウェイを選択する方法であって、
複数のルールセットを用意する工程であって、前記複数のルールセットの各々は前記キャッシュにおいて置換に利用可能なＮ個のウェイを特定するものであり、Ｎはゼロ以上の整数である、前記用意する工程と、
アクセスアドレスを受信する工程と、
少なくとも前記アクセスアドレスの一部を使用して、前記複数のルールセットから選択された１つのルールセットを選択する工程と、
前記選択された１つのルールセットを使用して、前記キャッシュにおいて置換に利用可能なＮ個のウェイを選択する工程とを備える前記方法。
【請求項２】
前記少なくともアクセスアドレスの一部が複数の連続的なアクセスアドレスビットを含む請求項１に記載の方法。
【請求項３】
前記複数のウェイのうちの第１のウェイの置換を許可する第１のプログラム可能なビットを与える工程を更に備える請求項１に記載の方法。
【請求項４】
前記複数のウェイのうちの第２のウェイの置換を許可する第２のプログラム可能なビットを与える工程を更に備える請求項３に記載の方法。
【請求項５】
前記複数のルールセットのうちの第１のルールセットが第１及び第２のプログラム可能なビットを備える請求項４に記載の方法。
【請求項６】
前記複数のウェイのうちの前記第１のウェイの置換を許可する第３のプログラム可能なビットを与える工程と、
前記複数のウェイのうちの前記第２のウェイの置換を許可する第４のプログラム可能なビットを与える工程とを更に備え、前記複数のルールセットのうちの第２のルールセットは前記第３及び第４のプログラム可能なビットを備える請求項５に記載の方法。
【請求項７】
前記少なくともアクセスアドレスの一部は複数のビットを備え、前記複数のビットが前記アクセスアドレスの最高次ビットを備える請求項１に記載の方法。
【請求項８】
前記少なくともアクセスアドレスの一部は前記キャッシュにおいて別の用途をもたない請求項１に記載の方法。
【請求項９】
前記アクセスアドレスの複数のビットを選択して前記アクセスアドレスのうち少なくとも一部として使用する工程を更に備える請求項１に記載の方法。
【請求項１０】
前記少なくとも前記アクセスアドレスの一部を復号する工程を更に備える、当該複合する工程は、前記少なくとも前記アクセスアドレスの一部を使用して、前記複数のルールセットから選択された１つのルールセットを選択する工程に先だって行われる請求項１に記載の方法。
【請求項１１】
前記少なくともアクセスアドレスの一部を受信し、前記複数のルールセットのうち少なくとも一つを選択するためのルールセット標識を与えるルールセット選択制御レジスタを設ける工程を更に備える請求項１に記載の方法。
【請求項１２】
前記複数のルールセットのうちの第１のルールセットに対応する第１のアドレス範囲を用意する工程と、
前記アクセスアドレスが前記第１のアドレス範囲内にあるか否かを決定する工程とを更に備える請求項１に記載の方法。
【請求項１３】
前記複数のルールセットのうちの第２のルールセットに対応する第２のアドレス範囲を用意する工程と、
前記アクセスアドレスが前記第２のアドレス範囲内にあるか否かを決定する工程とを更に備える請求項１２に記載の方法。
【請求項１４】
前記アクセスアドレスが、前記第１のアドレス範囲内になく、かつ、前記第２のアドレス範囲内にない場合、前記複数のルールセットからデフォルトルールセットを使用する工程を更に備える請求項１３に記載の方法。
【請求項１５】
前記キャッシュは集積回路の一部として形成される請求項１に記載の方法。
【請求項１６】
複数のウェイを有するキャッシュを備えた集積回路であって、前記キャッシュが、
複数のルールセットを記憶するルールセット記憶回路を備えたルールセット選択回路であって、前記複数のルールセットの各々が前記キャッシュにおいて置換に利用可能なＮ個のウェイを特定するものであり、Ｎは０以上の整数であり、少なくともアクセスアドレスの一部を使用して少なくとも１つの選択されたルールセット信号を用意する前記ルールセット選択回路と、
前記ルールセット選択回路に連結され、前記少なくとも１つの選択されたルールセット信号を受信する置換制御回路とを備え、前記置換制御回路は前記少なくとも１つの選択されたルールセット信号を使用して前記キャッシュにおいて置換に利用可能なＮ個のウェイを選択するものである前記集積回路。
【請求項１７】
前記ルールセット選択回路は、
ベースアドレス値と下限値とのうちの１つを記憶する第１の記憶回路と、
マスク値と上限値とのうちの１つを記憶する第２の記憶回路とを更に備える請求項１６に記載の集積回路。
【請求項１８】
複数のルールセットを記憶する記憶回路と、
前記記憶回路に連結され、アクセスアドレスの一部を利用して、前記複数のルールセットのうち少なくとも１つのルールセットを選択するために使用されるルールセット標識を生成する回路とを備え、前記複数のルールセットのうちの前記１つのルールセットは、前記キャッシュにおいて置換に利用可能な少なくとも０以上のウェイを選択するために使用されるものであるキャッシュ制御回路。
【請求項１９】
前記記憶回路は、少なくとも１つのユーザプログラム可能な制御レジスタを備える請求項１８に記載のキャッシュ制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムに関し、より具体的にはデータ処理システムにおける選択可能なキャッシュ置換の方策に関する。
【背景技術】
【０００２】
データ処理システムにおいて、例えば携帯機器やハンドヘルド機器の広範囲な使用に伴い、消費電力の低減は重要度を増しつつある。今日では多くのデータ処理システムには、（メインメモリや他の内部又は外部メモリなどの）メモリへのアクセス回数を低減するために、集積回路上に配置されたキャッシュとも称されるより小さく、より速く、より効率的なメモリが用いられる。キャッシュへのアクセスの場合、一般的には消費電力が少なくて済むため、他の内部又は外部メモリに対するアクセスと比べて待ち時間が短くなる。従って、消費電力を低減し性能を上げるためには、その後再度要求されるような項目についてはより早くより効率的なキャッシュに記憶させることが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
再利用の度合いが低い情報がキャッシュに残っていた場合、これが再利用の度合いが高い情報を置換した場合にキャッシュ汚染が発生する。すなわち一般的には、（例えば複数回再要求されるなど）再度要求される可能性が高いため、より再利用の度合いが高い情報がキャッシュに残るべきである。例えば、ある種の情報は他の情報に比べてその寿命が短く、このような寿命の短い情報によるキャッシュ汚染は、消費電力を増加させ、また、その寿命の短い情報によって置き換えられた後には、遅くより効率的でない内部又は外部メモリから寿命の長い情報を再取得する必要があるため、キャッシュの性能を低下させる。しかしながら、キャッシュ内の再利用によってこれら短い寿命の情報も利益を享受できるようにすることが好ましい。従って、消費電力とキャッシュの性能との向上を得るために、キャッシュ汚染を低減した、改善されたキャッシュが望まれている。
【課題を解決するための手段】
【０００４】
本発明の一例を添付図面に示すが、本発明は図示したものに限定されない。図面において同様の符号は同様の要素を示す。当業者であれば、図面における要素はいずれも簡素化及び明確さを目的として図示されており、必ずしも実物大ではないことが理解できる。例えば、図面におけるいくつかの要素の寸法は、本発明の実施例の理解を深めることを目的として他の要素に対して強調されている。
【０００５】
本明細書において、「バス」という用語は、例えばデータ、アドレス、制御あるいは状態などの１種以上の情報を伝達するために使用される複数の信号やコンダクタを指すのに用いられる。本明細書において述べられるコンダクタとは、単一のコンダクタ、複数のコンダクタ、一方向性コンダクタあるいは双方向コンダクタに関連して図示あるいは説明される。しかしながら、異なる実施例においてはコンダクタの実施が異なる。例えば、一方向性コンダクタに代えて双方向コンダクタを使用することも、逆であることも可能である。また、複数のコンダクタに代えて複数の信号を直列的にあるいは時分割式に伝達する単一のコンダクタを用いてもよい。同様に、複数の信号を伝搬する単一のコンダクタをこれら信号のサブセットを伝搬する複数の異なるコンダクタへと分割することも可能である。従って、信号伝達に関しては多くのオプションが存在する。
【０００６】
一般に、キャッシュの性能と消費電力はキャッシュ汚染を低減することによって改善される。前述のように、キャッシュに残っていた場合、再利用の度合いがより低い情報が再利用の度合いのより高い情報を置換する場合にキャッシュ汚染が発生する。本発明の一実施例では、異なる種類の情報をキャッシュへ配置するのを制御することによってキャッシュ汚染が低減される。例えば、異なる種類の情報は、異なる寿命を有する。例えば、マルチメディア、グラフィックス又はストリーミングデータなどの一時データに比べて指令やスタックまたはヒープデータは一般的にその寿命が長い。他の種類の情報であってもその寿命が異なる。寿命の長い情報は、一般的に同じ情報が再び要求される可能性が高いという点においてその再利用の可能性が高い。従って、要求された時点においてその情報が既にキャッシュにあると効率を上げることが可能である。しかしながら、より短い寿命の情報がより長い寿命の情報を連続的に置換する場合、より長い寿命の情報がその後要求された場合にその情報が既にキャッシュ内にない可能性が高くなり、再度遅い、より効率の悪いメモリから要求された情報を取得しなければならない。しかしながら、中短期の寿命を有する情報もこの再利用の利益を享受することが可能であることが好ましい。従って、後述するように、本発明の異なる実施例では、キャッシュ内への情報の配置をプログラム可能にフレキシブルに制御してキャッシュ性能を改善し、システムの消費電力を低減することが可能となる。
【発明を実施するための最良の形態】
【０００７】
図１には、データ処理システム１０の一実施例が示されている。データ処理システム１０は集積回路１２と外部メモリ１４とを含む。集積回路１２は、プロセッサ１６、キャッシュメモリ１８、バスインターフェイス２２及び他のモジュール２０を含む。また集積回路１２はバス２４とバス２６とを含む。バス２４によってプロセッサ１６、キャッシュメモリ１８、バスインターフェイス２２及び他のモジュール２０が連結されている。バス２６は、バスインターフェイス２２を外部メモリ１４と連結する。ある特定の典型的なデータ処理システム１０の実施例について説明するが、このような処理システムのさまざまな構造や別の実施例を用いることが可能であることが意図される。
【０００８】
例えば、キャッシュ１８は集積回路１２の一部として示されているが、キャッシュ１８は集積回路１２の外部、例えば外部メモリ１４などの中に設けられてもよい。また、集積回路１２は、例えばマルチプロセッサデータ処理システムなどにおいて任意の数のプロセッサを含むものであってもよく、他のモジュール２０が例えば他のマスター、スレーブあるいはメモリなどの他の周辺機器を含むものであってもよい。集積回路１２は、集積回路１２の異なる部分が異なる集積回路上に配置されるように任意の数の集積回路を含むものであってもよいし、集積回路１２は単一集積回路であってもよい。また、外部メモリ１４は集積回路１２と同じ集積回路上に配置されていても別の集積回路上に配置されていてもよい。データ処理システム１０については、以下に図２乃至５を参照して説明される本発明の実施例を理解するために必要な程度にのみ説明する。残りの機能性については本技術分野において知られており、本技術分野において公知のさまざまな様式に変更可能である。
【０００９】
図２には、キャッシュ１８の一部に関する特定の実施例が示されている。キャッシュ１８のこの部分はレジスタ６２、マルチプルウェイ用タグメモリアレイ４２乃至４８、マルチプルウェイ用データメモリアレイ５０乃至５６、及びキャッシュ制御回路５８を含む。アクセスアドレス４０はバス２４のアドレス部から受信されてタグ値部６４、インデックス部６６及びワード選択部６８を含む。例えば読み取りアクセスにおいて、アクセスアドレス４０は要求された情報（例えばデータあるいは指令）のアドレスに対応する。図示された実施例では、受信されたアクセスアドレス４０は、レジスタ６２内に記憶される。アクセスアドレス４０のタグ部６４は、マルチプルウェイタグアレイ４２乃至４８に供給されるタグ値データを含む。インデックス部６６からのデータは、マルチプルウェイタグアレイ４２乃至４８とマルチプルウェイデータアレイ５０乃至５６との両方に供給されてタグ及びデータアレイに対してインデックスを付与するために用いられる。例えば、一実施例では、インデックス部６６は各ウェイのタグとデータ部内における所定の数のセットのうちの一つを選択するためのセット標識を有する。ワード選択部６８からのデータはマルチプルウェイデータアレイ５０乃至５６に供給されて、データアレイ、例えばデータアレイ（ウェイ０）５０、内のデータがインデックス部６６とワード選択部６８の両方によって示される。すなわち、インデックス部６６はデータアレイ（ウェイ０）５０の１つのエントリーを識別し、その後ワード選択６８がそのエントリーの一部分を識別する。マルチプルウェイデータアレイは、バス２４の双方向データ部にも連結されて、バス２４にデータを供給し、バス２４からデータを受信する。
【００１０】
各タグアレイは、例えばタグアレイ（ウェイ０）４２の場合、タグ値６４とインデックス値６６に対応して配置されたタグアレイ（ウェイ０）４２内のデータとの比較に基づいて、例えばデータアレイ（ウェイ０）５０などの対応するデータアレイにヒット信号を供給する。例えば、作動中に、タグ部６４は、ヒット信号７２を生成するために、インデックス部６６を介してタグアレイ（ウェイ０）４２から読み出された値と比較される。比較された値同士がマッチする場合、ヒット信号７２はヒットを示すためにアサ―トされる。データアレイ（ウェイ０）５０は、複数のデータブロックを含んでおり、インデックス値６６とワード選択値６８の両方によってアドレス付けられ、ヒットに対してアドレスされたデータアイテムがデータアレイ（ウェイ０）５０からバス２４のデータ部へと出力される。しかしながら、もし比較された値同士がマッチしない場合、ヒット信号７２はアサートされずにキャッシュ１８のそのウェイにおけるミスを示す。タグ値６４とタグアレイ４２乃至４８のうち任意のタグとの間にマッチが成立しない場合、ヒット信号７２乃至７８のうちいずれもがアサートされず、これはアクセスアドレス４０のキャッシュ１８におけるミスを示す。
【００１１】
図２においてはキャッシュ１８の一部の一例のみが示されている。しかしながら、別の実施例では、所望の機能性を得るためにレジスタ６２、タグアレイ４２乃至４８及びデータアレイ５０乃至５６は、従来技術において公知である多くの異なる方法において使用してもよい。
【００１２】
以下に説明するように、キャッシュ制御回路５８は、少なくともアクセスアドレス４０の一部を受信し、現在のアクセスに対応する選択されたルールセットを決定する。選択されたルールセットは、０からＮ個のウェイのうちのどのウェイが置換に利用可能であるかを示す（もしあれば）。本発明の一実施例では、各ルールセットはキャッシュにおける各ウェイのための単一制御ビットであって、そのルールセットが選択された場合にはその特定のウェイが置換の候補となるかどうかを示す単一制御ビットを備える。他の実施例では、与えられたルールセットに関して、与えられたウェイが置換の候補として考えられるか否かを示すのに別の方法を用いることが可能である。
【００１３】
操作の一例では、装置からの読み取りアクセス要求に応答して、要求された情報のアドレスはアクセスアドレス４０としてキャッシュ１８に供給される。アクセスアドレス４０のタグ値６４がタグアレイ４２，４４，４６及び４８内においていずれともマッチしない場合、前述したミスが生じる。ミスが生じた場合、要求された情報は例えば外部メモリ１４又は他の（内部又は外部の）メモリから取得されてキャッシュ内に記憶され、読み取られた要求に応答して、前記要求をした装置に供給される。一実施例では、キャッシュ制御回路５８は、少なくともアクセスアドレス４０の一部に基づいてルールセットを選択し、この選択されたルールセットを適用して取得情報の受信と記憶に利用可能なウェイを決定し、選択されたルールセットによって示された、取得情報を記憶すべき利用可能なウェイを選択し、選択されたウェイに現在存在する情報のうち、どの情報が取得された情報によって置換されるべきかを決定する。従って、キャッシュ制御回路は書き込み許可８９を通信路７０を介してデータアレイ５０乃至５６に供給して、選択されたウェイの更新を可能とする。キャッシュ制御回路５８は通信路６１を介してタグアレイ４２乃至４８ともつながっており、選択された対応するデータアレイに書き込みが行われる場合に必要に応じてタグアレイの更新を制御する。この機能性は本技術分野で知られているため、以下の説明はデータアレイ５０乃至５６の更新に焦点を合わせ、タグアレイ４２乃至４８の適切な対応する更新についての更なる説明はしない。キャッシュ制御回路５８は、バス２４のデータ、アドレス及び制御の各部にも双方的に連結されている。キャッシュ制御回路５８は、公知の他の多くの機能を実施することが可能であってもよく、従って、図３乃至５の実施例に適用されるキャッシュ制御回路５８の部分のみを以下に説明する。
【００１４】
図３には図２のキャッシュ制御回路５８の一部分の一実施例が示されている。図３の実施例は、キャッシュウェイ制御レジスタ１００及び置換制御回路１１２を含むルールセット選択回路１１３を含む。ルールセット選択回路１１３は、バス２４のアドレス部からアクセスアドレス４０の高次ビットを受信して、高次ビットを使用してルールセット１０２，１０４，１０６及び１０８のうち１つを選択されたルールセット１１０として選択する。選択されたルールセット１１０は、書き込み許可８９を出力する置換制御回路に供給される。図示された実施例では、アクセスアドレス４０の２つの高次ビットは４つの可能なルールセット（１０２乃至１０８）のうち１つを選択するのに用いられる。しかしながら、別の実施例では、より少数のあるいはより多数の可能なルールセットからの選択のために任意の数の高次ビットを使用することができる。例えば、アクセスアドレス４０の３つの高次ビットを８つの（あるいはそれ以下の）可能なルールセットからの選択のために用いてもよい。一実施例では、ルールセットの選択に使用されるアクセスアドレス４０の高次ビットは、本来キャッシュ１８及びデータ処理システム１０において使用されないアドレスビットである。従って、本来使用されないため、（アクセスアドレス４０の残りのビットによって特定される）特定のアクセスアドレスに対して望まれるルールセットに応じて選択するように設定してもよい。例えば、主に一時データに対応するアドレスは、キャッシュ１８のうち特定のウェイのみが一時データを記憶するようにキャッシュ１８の特定のウェイに対して割り当てられてもよい。この例では、一時データ用のアドレスの高次ビットは、例えば１０などの値に設定されることによって、この特定の種類の一時データのために利用可能なウェイを認識するルールセット１０６を選択する。同様に、指令あるいは他の長寿命の情報に対応するアドレスの高次ビットは、例えば００などの値に設定されることによって、この特定の種類の長寿命の情報のために利用可能なウェイを認識するルールセット１０２を選択する。
【００１５】
別の実施例では、適切なルールセットを選択するために高次ビット以外にも（例えば本来は使用されないビットなど）その他のビットがアクセスアドレス内に存在することがある。すなわち、別の実施例では、ルールセット選択回路１１３は、ルールセットを選択するためにアクセスアドレス４０の別の部分を受信することができる。また、図３の実施例において、使用されてないアドレスビットあるいはラインを有する既存のデータ処理システムデザインは、最小限の追加回路とともに上述のキャッシュ制御回路５８の部分に簡単に後付けすることができる。
【００１６】
図３に示されていないが、適切なルールセットを選択するためにキャッシュウェイ制御レジスタ１００に選択信号を供給するのにアクセスアドレス４０の高次ビットを復号するためのデコーダを使用してもよい。従って、Ｎ個のエントリーのうちの１つを選択するのに複数のアドレスビットを使用することを可能にする種々の方法に従うルールセット選択回路１１３を使用してもよいことが当業者であれば理解できる。
【００１７】
図４には、本発明の一実施例によるルールセット１０２の一例が図示されている。図示した実施例では、ルールセット１０２は、キャッシュ１８の各ウェイ（０乃至Ｎ）につき１つの置換許可フィールドを含む。例えば、ルールセット１０２は、ウェイ０置換許可１１４、ウェイ１置換許可１１６及びウェイＮ置換許可１１８を含む。一実施例では、例えばルールセット１０２などの各ルールセットは、ルールセット内における各ビットをユーザがプログラム可能になるように、ユーザプログラム可能なレジスタに記憶される。ルールセット１０２における各置換許可フィールドは、対応するウェイが置換に利用可能か否かを示す。すなわち、各置換許可フィールドは、ミスとなったアクセス要求に応じてメモリから取得された情報を記憶するために対応するウェイが利用可能であるかを示す。例えば、上記段落で説明した例のように、ルールセット１０２を用いて長寿命の情報を記憶するアドレスに対応づけてもよい。この例では、ユーザはこの種の長寿命の情報の使用のためにウェイ０乃至５を割り当てることを希望することがあり、ユーザはルールセット１０２にウェイ０乃至５のための置換許可フィールドをアサートしてもよい。別の実施例では、ルールセット１０２を用いてシステム内において最も短寿命の情報を記憶するアドレスに対応づけてもよい。すなわちユーザがこの種の情報の使用のために０乃至Ｎ個のウェイのうちの１つのみを割り当てる。こうして（例えばルールセット１０２などの）ルールセットを用いてキャッシュ汚染を増加させる可能性が最も高い類の情報に対して特定の数のウェイのみを割り当てることによってキャッシュ汚染を低減する。なお、一実施例では、ルールセット１０２の各置換許可フィールドは、そのウェイが許可されているか否かを示す単一のビットである。別の実施例では、特定のウェイが置換不可能であることをアサートされたビットが示すことが可能である。また、より多くのあるいはより少ないビットを用いることが可能であり、特定のウェイのフィールドを組み合わせたり、別々に符号化してもよい。
【００１８】
再度図３を参照するに、キャッシュウェイ制御レジスタ１００は一実施例では複数のレジスタを有し、そのうち１つが各ルールセット１０２乃至１０８を記憶する。ここで各ルールセットは（図４との関連において上述したとおり）ルールセット１０２として使用されてもよい。あるいはキャッシュウェイ制御レジスタ１００は、例えば所望の実施のために要するルールセットの数とサイズなどによって必要に応じてより多くのあるいはより少ないレジスタを含むことが可能である。また別の実施例では、これらはレジスタとして使用されるのではなく、他の内部あるいは外部メモリにおいて設けられていてもよい。一実施例では、レジスタはユーザに対する柔軟性を有するようにユーザによってプログラム可能であり、ユーザが利用可能なルールセットをいかにして用い、異なる種類の情報に対してキャッシュ１８の異なるウェイをいかに割り当てるかを決定することができる。一旦アクセスアドレス４０の高次ビットによって特定のルールセットが選択された場合、これが選択されたルールセット１１０として置換制御回路１１２に与えられる。
【００１９】
置換制御回路１１２は、選択されたルールセット１１０に基づいて、キャッシュのミスに応じて取得された情報を記憶するためにどのウェイを選択すべきかを決定する。例えば、（ルールセット１０２乃至１０８に対応する）選択されたルールセット１１０は１つ以上のウェイが置換のために利用可能であることを示し、よって、置換制御回路１１２は選択されたルールセット１１０に基づいてどのウェイが利用可能であるかを決定し、その後利用可能なウェイのうちどれを今回の置換に用いるのかを決定することができる。一実施例では、置換制御回路１１２を用いてウェイを選択するのにラウンドロビン方法や最低使用頻度方法を用いることができる。他の多くの公知である方法を用いて置換において利用可能なウェイから一つのウェイを選択することが可能である。更に、一旦置換用のウェイが選択された場合、置換制御回路１１２が（例えばラウンドロビン方法や最低使用頻度方法などの）公知である多くの方法を用いて置換状態情報を変更することが可能である。一旦ウェイが選択された場合、置換制御回路１１２はデータアレイ５０乃至５６の選択されたウェイに対して許可を与えるために書き込み許可８９を与えることができる。一実施例では、書き込み許可８９は、１つの書き込み許可信号をキャッシュ１８の各ウェイに供給する。例えば、キャッシュ１８が（例えば０から７の）８つのウェイを含む場合、書き込み許可８９は、各ウェイに対して１つ、よって８つの許可信号を含むことになる。あるいは置換制御回路１１２（又は他の制御回路）が書き込み許可８９を与えるために書き込み許可信号を符号化することが可能である。例えば、キャッシュ１８が８つのウェイを含む場合、８つのウェイのうち１つを選択するために３ビットの書き込み許可８９を用いることが可能である。キャッシュ制御回路５８もまた置換を実施するために必要に応じてタグアレイ４２乃至４８にアクセスすることが可能である。なお、別の実施例では、選択されたルールセットが置換のためにいかなるウェイをも許可しない場合も置換制御回路１１２が利用可能なウェイのうちいずれのウェイをも選択しない場合もある。
【００２０】
図５においてキャッシュ制御回路５８の部分の別の実施例を示している。図５の実施例では、ユーザはアクセスアドレス４０の任意の（連続的又は非連続である）サブセットに基づいてプログラム可能なルールセットを選択することが可能である。キャッシュ制御回路５８の部分は、アドレスラインセレクタ１２０、アドレスライン選択レジスタ１２４、ルールセットセレクタ制御レジスタ１２６、キャッシュウェイ制御レジスタ１００及び置換制御回路１１２を含むルールセット選択回路１３６を含む。アドレスラインセレクタ１２０は、アドレスライン選択レジスタ１２４に基づいてアクセスアドレス４０の部分を選択し、選択したアドレスラインのデータをインデックスとしてルールセットセレクタ制御レジスタ１２６に供給する。一実施例では、ユーザによってプログラム可能なレジスタであるルールセットセレクタ制御レジスタ１２６は、ルールセット標識１３４をキャッシュウェイ制御レジスタ１００に供給してルールセット１０２乃至１０８のうち１つを表示する。その後選択されたルールセットは、選択されたルールセット１１０として置換制御回路１１２へと与えられ、その後書き込み許可８９を与える。従って、ルールセット選択回路１３６がアクセスアドレス４０（又は少なくともアクセスアドレス４０のうち一部）を受信して選択されたルールセット１１０を与える。なお、ルールセット１０２乃至１０８、選択されたルールセット１１０、置換回路１１２及び書き込み許可８９を含むキャッシュウェイ制御レジスタ１００は、図３及び４との関連において説明した方法で作動するため、図５の実施例に関連しては再度説明しない。
【００２１】
一実施例では、アドレスライン選択レジスタ１２４は、ユーザがルールセットを選択するためにアクセスアドレス４０のうちどのライン（又はビット）を使用すべきかを表示することのできる、ユーザプログラム可能レジスタである。アドレスライン選択レジスタ１２４に基づいてアドレスラインセレクタ１２０は、（アクセスアドレス４０の選択されたビット又はラインから）表示されたアドレス値をインデックス１２２としてルールセットセレクタ制御レジスタ１２６に供給する。例えば、一実施例では、アドレスライン選択レジスタ１２４は、アクセスアドレス４０の各アドレスビットに対して１つのビットを有することが可能であり、レジスタ１２４のビットがアサートされた場合には、アクセスアドレス４０の対応するアドレスビットがインデックス１２２の一部として用いられる。他の実施例においてアドレスライン選択レジスタ１２４の別のフォーマットを用いてユーザがアクセスアドレス４０のサブセット（あるいは全てを）インデックス１２２として選択することが可能となる。一実施例では、インデックス１２２は、ルールセットセレクタ制御レジスタ１２６の各エントリーを区別するために必要な最低限の数のビットを含む。例えば、ルールセットセレクタ制御レジスタ１２６が４つ以下のエントリーしか含まない場合、各エントリーをアドレスするためにはアクセスアドレス４０の（連続的又は非連続な）２つのビットのみが必要となる（よって２ビットインデックス１２２となる）。しかしながら、ルールセットセレクタ制御レジスタ１２６が８つのエントリーを含む場合、アクセスアドレス４０の少なくとも３つのラインが必要とされる（よって少なくとも３ビットインデックス１２２となる）。また、インデックス１２２は、アクセスアドレス４０の選択されたビットからさまざまな方法によって導き出すことが可能である。一実施例では、インデックス１２２は、アクセスアドレス４０の選択されたビット又はラインの単なる連結であってもよい。また別の実施例では、選択されたビットに基づいてインデックス１２２を得るためのデコーダあるいは他の回路を用いることができる。
【００２２】
ルールセットセレクタ制御レジスタ１２６内における（例えばエントリー１２８，１３０及び１３２などの）各エントリーは、どのルールセットを選択すべきという標識を与える。例えば、図示された実施例では、インデックス１２２がエントリー１３０を選択した場合、「１１」の値がルールセット１０８を選択するルールセット標識１３４としてとして与えられる。従って、図示された実施例では、「００」の値がルールセット１０２を、「０１」の値がルールセット１０４、「１０」の値がルールセット１０６を、「１１」の値がルールセット１０８を表す。図示された実施例では、ルールセットセレクタ制御レジスタ１２６は、ルールセット１０２を表すエントリー１２８と、ルールセット１０８を表すエントリー１３０と、ルールセット１０６を表すエントリー１３２を含む。図５において図示される実施例においてキャッシュウェイ制御レジスタ１００が４つの可能性のあるルールセットを含むため、ルールセットセレクタ制御レジスタ１２６の各エントリーは４つのルールセット間で選択される２つのビットを含む。ルールセットの数がこれ以上である場合、ルールセットセレクタ制御レジスタ１２６の各エントリーがより多くのビットを含むことになる。また、ルールセットセレクタ制御レジスタ１２６の複数のエントリーが同一のルールセットを表す。また、別の実施例ではルールセットを表すためにルールセットセレクタ制御レジスタ１２６のエントリーのための異なるフォーマットを用いることができる。
【００２３】
別の実施例では、キャッシュウェイ制御レジスタ１００は、（ルールセット１０２乃至１０８のうちいずれか１つであっても別のルールセットであってもよい）デフォルトルールセットを含むことができ、インデックス１２２がレジスタ１２６のインデックスに対応しない場合、デフォルトのルールセットが選択されたルールセット１１０として与えられてもよい。例えば、インデックス１２２が２ビット値であるが、ルールセットセレクタ制御レジスタ１２６には３つのエントリーしかない場合、インデックス１２２の値のうち１つがデフォルトのルールセットに対応してもよい。同様に、別の例では、インデックス１２２は３ビット値であるが、ルールセットセレクタ制御レジスタ１２６に６つのエントリーしかない場合、インデックス１２２の値のうち１つ又は２つはデフォルトのルールセットに対応してもよい。
【００２４】
従って、図５の実施例において、アクセスアドレス４０の全てあるいは一部を用いてルールセットを選択することが可能であり、ユーザはルールセットセレクタ制御レジスタ１２６の値をプログラムすることによって要求されたアドレスの与えられたアドレス範囲においてどのルールセットを使用すべきかを柔軟にプログラムすることが可能である。また、アクセスアドレス４０の選択されたビットは、連続的なビットであってもそうでなくてもよい。図５は、１つの使用例しか示していないが、例えばルールセット標識１３４などの、ルールセットを選択するために用いられるルールセット標識を選択するためにアクセスアドレス４０の一部を選択する方法は数多くあることが当業者であれば理解できる。
【００２５】
図６にはキャッシュ制御回路５８の部分に関する別の実施例が示されている。図６の実施例によれば、ユーザはアクセスアドレス４０の全てあるいは一部分に基づいてルールセットを選択することが可能となる。例えば図示された実施例では、ルールセット選択回路１３８は、アクセスアドレス４０（又は少なくともアクセスアドレス４０の一部）が含まれる（もしあれば）アドレス範囲によってルールセットを選択する。図６のキャッシュ制御回路５８の部分は、アドレス範囲コンパレータ１４０、デフォルトセレクタ１５０、キャッシュウェイ制御レジスタ１００及び置換制御回路１１２を有するルールセット選択回路１３８を含む。アドレス範囲コンパレータ１４０とデフォルトセレクタ１５０とは、ルールセット１０２乃至１０８あるいはデフォルトルールセット１５２のうち１つを選択するために用いられる。アクセスアドレス４０がアドレスコンパレータ１４２乃至１４８のうちいずれか１つによって規定されるアドレス範囲のうち１つの中に含まれる場合、ルールセット１０２乃至１０８のうち１つが選択される。しかしながら、アクセスアドレス４０がアドレスコンパレータ１４２乃至１４８のうちいずれか１つによって規定されるアドレス範囲のうち１つの中に含まれない場合、デフォルトルールセット１５２が選択される。（なお、一実施例では、デフォルトルールセット１５２はルールセット１０２乃至１０８とは別個の、追加ルールセットであるのに対して、別の実施例においてデフォルトルールセット１５２はルールセット１０２乃至１０８のうちいずれか１つであってもよい。）選択されたルールセットは、その後選択されたルールセット１１０として置換制御回路１１２に供給され、これにより書き込み許可８９が与えられる。なお、（デフォルトルールセット１５２を除く）キャッシュウェイ制御レジスタ１００、選択されたルールセット１１０、置換回路１１２及び書き込み許可８９は、図３及び４との関連において説明した方法で作動するため、図６の実施例に関連しては再度説明しない。
【００２６】
アドレス範囲コンパレータ１４０は、アクセスアドレス４０が含まれる（もしあれば）どのアドレス範囲に含まれるのかを決定する。例えば、アドレスコンパレータ１４２乃至１４８のそれぞれを用いてアドレス範囲を規定する。一実施例では、アドレスコンパレータ１４２乃至１４８のうちそれぞれが対応する範囲の開始アドレスと終了アドレスとを記憶する回路と、その範囲に含まれるか否かを決定するため、アクセスアドレス４０とその開始及び終了アドレスとを比較する比較回路とを含む。あるいは、各アドレスコンパレータ１４２乃至１４８は（アドレス範囲の開始アドレスを規定する）ベースアドレスと（そのベースアドレスから範囲を規定する）マスク値とを記憶する回路と、その範囲に含まれるか否かを決定するために、マスク値によってマスクされるアクセスアドレス４０をマスク値によってマスクされる、基礎としたアドレスに対して比較する比較回路とを有してもよい。従って、各範囲は、対応するルールセットを表す。例えば、図６において図示される実施例では、アクセスアドレス４０がアドレスコンパレータ１４２によって規定されるアドレス範囲内に含まれる場合、ルールセット１０２が表示される。アクセスアドレス４０がアドレスコンパレータ１４４によって規定されるアドレス範囲内に含まれる場合、ルールセット１０４が表示される。アクセスアドレス４０がアドレスコンパレータ１４６によって規定されるアドレス範囲内に含まれる場合、ルールセット１０６が表示される。アクセスアドレス４０がアドレスコンパレータ１４８によって規定されるアドレス範囲内に含まれる場合、ルールセット１０８が表示される。
【００２７】
アクセスアドレス４０がアドレス範囲コンパレータ１４０によって規定される範囲のいずれにも含まれない場合、デフォルトセレクタ１５０はデフォルトルールセット１５２を選択する。例えば、一実施例では、デフォルトセレクタ１５０は、アドレス範囲コンパレータ１４０とキャッシュウェイ制御レジスタ１００との間に連結された標識のいずれもがアサートされていないかどうか見るために監視し、それに応じてその出力標識をアサートしてデフォルトルールセット１５２を選択する。デフォルトルールセット１５２は、例えば図４のルールセット１０２のように他のルールセットと同様の形と機能とを有してもよい。なお、デフォルトルールセット１５２は任意である。例えば、アクセスアドレス４０がいつもある範囲内にあるように全ての範囲を決めてもよい。なお、他の実施例では、必要に応じて任意の数のアドレス範囲を有することができる。更に、複数のアドレス範囲が同一のルールセットに対応することも可能である。一実施例では、各範囲は重複していない。しかしながら、別の実施例において重複していることも可能である。
【００２８】
従って、アドレス範囲内の情報の種類に応じてキャッシュ１８の異なるウェイを許可するためにルールセットを使用することが可能であるように、アドレス範囲は異なる種類の情報を示すようにアドレス範囲コンパレータ１４０によって設定されてもよい。例えば、ストリーミングデータに関して、ストリーミングデータを記憶するアドレスのアドレス範囲は、アドレスコンパレータ１４６によって表示されることができるため、アクセスアドレス４０がこの範囲内に含まれる場合にはストリーミングデータが表示され、よってこれらストリーミングデータを記憶するために、許可されている（すなわち利用可能な）ウェイを含むルールセット１０６が選択される。従って、ユーザにはどのアドレス範囲がキャッシュ１８のどのウェイに対応させるかを決定する柔軟性が与えられるため、この柔軟性を生かしてキャッシュ性能を向上し、キャッシュ汚染を低減することが可能である。
【００２９】
なお、上述の実施例は、ミスとなった読み取りアクセスに応じてキャッシュ１８内において置換に利用可能なウェイを示すためのルールセットを選択する場合に関連して説明された。しかしながら、他の実施例では上述の方法は、さらに別の、例えば先読みなどの、公知であるヒット、ミスあるいは両方に応じて実施されうる他の作業のためにキャッシュ内において置換のために利用可能なウェイを示すためのルールセットを選択するのに使用されてもよい。
【００３０】
従って、（例えばルールセット選択回路１１３，１３６，１３８などの）ルールセット選択回路の異なる使用を用いて少なくともアクセスアドレスの一部に基
づいてルールセットを選択する方法が理解される。各実施例では、キャッシュ性能を向上し、キャッシュ汚染を低減するために、例えば異なるキャッシュウェイを異なる種類の情報に対して割り当てるなどしてルールセットを設計することが可能である。例えば、一実施例では、ユーザは情報の寿命に応じて異なるキャッシュウェイを割り当てることによって短い寿命の情報が長寿命の情報を置換する（あるいは重複置換する）ことがないようにすることが可能である。あるいは、（寿命以外あるいはそれに加えて）情報の異なる特性を用いて異なるキャッシュウェイを割り当てることが可能である。更に、例えばキャッシュウェイ制御レジスタ１００、ルールセットセレクタ制御レジスタ１２６、アドレス範囲コンパレータ１４０などのルールセット選択回路の部分のプログラム可能性によってユーザは、（キャッシュ１８などの）キャッシュを異なる種類のアプリケーションに対して最適化することが可能となる。更に、図５及び６の実施例によって最低限の諸経費でもって必要に応じて任意の数のルールセットとアドレス範囲とを規定することが可能となる。ルールセットは、必要に応じてタスクあるいはスレッドの実施中であってもいつでも再プログラムすることが可能である。更に、最適化は、特別なソフトウェア指令や別途ソフトウェア実施に関わる諸経費を必要とすることなく実施することができる。また、メモリ管理ユニットは、異なるメモリ領域に記憶されている情報の種類に関する知識を必要としない。
【００３１】
本発明を特定の実施例に関連して説明した。しかしながら、特許請求の範囲に記載される本発明の範囲から逸脱することなく、多種の変形や変更が可能であることは当業者にとって理解される。従って、説明及び図面は、限定的な意味合いよりも例示的であるとしてみなされるべきであって、このような全ての変形は、本発明の範囲に含まれるものとされる。
【００３２】
特定の実施例に関連して利点、他の長所あるいは問題に対する解決策を説明した。しかしながら、利点、長所あるいは問題に対する解決策、及び利点、長所あるいは問題に対する解決策をもたすあるいはより顕著にする要素は、重大又は必要でなく、また特許請求の範囲の一部又は全てにおける必要不可欠な特徴又は要素として解釈されるべきでない。「ａ」や「ａｎ」という用語は、本明細書において１つあるいはそれ以上のものを指す。「含む及び／又は有する」という用語は、本明細書において「備える」（すなわちオープンランゲージ）として定義される。本明細書において、「備える」、「備えている」あるいはそのバリエーションである用語は、非排他的な包括を保証するため、羅列された要素を含むプロセス、方法、商品又は装置がこれらの要素だけではなく、明確に羅列されていない、あるいはこれらプロセス、方法、商品又は装置に特有である要素を含むことがある。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施例に従うデータ処理システムを示す概略図である。
【図２】本発明の一実施例に従う図１のキャッシュの一部を示す概略図である。
【図３】本発明の一実施例に従う図２のキャッシュ制御回路の一部を示す概略図である。
【図４】本発明の一実施例に従うキャッシュウェイ制御レジスタの一部を示す概略図である。
【図５】本発明の別実施例に従う図２のキャッシュ制御回路の一部を示す概略図である。
【図６】本発明の別実施例に従う図２のキャッシュ制御回路の一部を示す概略図である。
【図１】
2006529034.tif 000003
【図２】
2006529034.tif 000004
【図３】
2006529034.tif 000005
【図４】
2006529034.tif 000006
【図５】
2006529034.tif 000007
【図６】
2006529034.tif 000008
【国際調査報告】
2006529034.tif 000009