(57)【要約】階層型キャッシュメモリを制御するための方法ならびに装置は、各々がアドレスタグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた第１レベルキャッシュメモリ（１０２）を制御することと、各々がアドレスタグ、Ｌフラグ（１１２）を有する各キャッシュラインの状態フラグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた次段レベルのキャッシュメモリ（１０３）を制御することと、前記次段レベルのキャッシュメモリ（１０３）の前記所定のキャッシュライン（１０９）のＬフラグ（１１２）を設定し、前記次段レベルのキャッシュメモリ（１０３）の所定のキャッシュライン（１０９）に記憶されているデータのコピーによって、前記第１レベルキャッシュメモリ（１０２）の前記キャッシュラインのうちの対応するキャッシュラインがリフィルされているかどうかを示すこととを許可する。
2006504158.tif 000002
【特許請求の範囲】
【請求項１】
各々がアドレスタグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた第１レベルキャッシュメモリと、
各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた次段レベルのキャッシュメモリと、を有し、各キャッシュラインの前記状態フラグは、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのいずれかが格納していることを示すＬフラグを有する装置。
【請求項２】
各キャッシュラインの前記Ｌフラグは１ビットであり、その値が真の場合は、前記第１レベルキャッシュメモリの対応するキャッシュラインが、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを格納していることを示し、偽の場合は、前記第１レベルキャッシュメモリのどのキャッシュラインも、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを格納していないことを示す請求項１に記載の装置。
【請求項３】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項２に記載の装置。
【請求項４】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項１に記載の装置。
【請求項５】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインに記憶されているデータのコピーによって、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインがリフィルされているかどうかを示すように動作可能なプロセッサをさらに有する請求項１に記載の装置。
【請求項６】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するように動作可能なプロセッサをさらに有する請求項１に記載の装置。
【請求項７】
前記プロセッサは、前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項６に記載の装置。
【請求項８】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬビットが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項７に記載の装置。
【請求項９】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリである請求項１に記載の装置。
【請求項１０】
前記次段レベルのキャッシュメモリはＮウェイセットアソシエーティブキャッシュメモリである請求項１に記載の装置。
【請求項１１】
各々がアドレスタグおよびデータを記憶するように動作可能な複数のＭ１キャッシュラインを有する第１レベルキャッシュメモリと、
次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリと、前記各Ｎウェイセットは各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のＭ２キャッシュライン（Ｍ２はＭ１より大きい）を有し、
前記次段レベルのキャッシュメモリに関連付けられ、かつ複数のＭ１メモリラインを有する付加的なメモリと、を有し、各メモリラインは、前記次段レベルのキャッシュメモリの各Ｎウェイセットの複数のキャッシュラインに対応するそれぞれのＬフラグを有し、各Ｌビットは、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのいずれかが格納しているかどうかを示す装置。
【請求項１２】
前記付加的なメモリの各メモリラインにあるＬフラグの個数はＭ２／Ｍ１×Ｎである請求項１１に記載の装置。
【請求項１３】
各Ｌフラグは１ビットであり、その値が真の場合は、前記次段レベルのキャッシュメモリの関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す請求項１１に記載の装置。
【請求項１４】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項１３に記載の装置。
【請求項１５】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項１１に記載の装置。
【請求項１６】
前記付加的なメモリのそれぞれのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記キャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すように動作可能なプロセッサをさらに有する請求項１１に記載の装置。
【請求項１７】
前記プロセッサは、前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するようにさらに動作可能である請求項１６に記載の装置。
【請求項１８】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記所定のキャッシュラインへのデータの上書きを禁止するように動作可能なプロセッサをさらに有する請求項１１に記載の装置。
【請求項１９】
前記次段レベルのキャッシュメモリの前記所定のキャッシュラインの前記状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項１８に記載の装置。
【請求項２０】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項１９に記載の装置。
【請求項２１】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリである請求項１１に記載の装置。
【請求項２２】
前記第１レベルキャッシュメモリはＮウェイセットアソシエーティブキャッシュメモリである請求項１１に記載の装置。
【請求項２３】
第１レベルのＮウェイセットアソシエーティブキャッシュメモリと、前記第１レベルキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグおよびデータを記憶するように動作可能な複数のＭ１キャッシュラインを有し、
次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリと、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のＭ２キャッシュライン（Ｍ２はＭ１より大きい）を有し、
前記次段レベルのキャッシュメモリに関連付けられ、かつ複数のＭ１メモリラインを有する付加的なメモリと、を有し、
前記付加的なメモリの各メモリラインは、前記第１レベルキャッシュメモリの前記各Ｎウェイセットに関連付けられたそれぞれのビット群を有しており、これによって前記付加的なメモリの各ビット群は、前記第１レベルキャッシュメモリのキャッシュラインのそれぞれ１つに関連付けられており、
各ビット群はインデックスオフセットビット、ウェイセットビットおよびＬフラグを有し、
前記インデックスオフセットビットとインデックスとの組み合わせが、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットの１つのキャッシュラインに対するポインタとなり、
前記ウェイセットビットは、前記次段レベルのキャッシュメモリの前記Ｎウェイセットの１つに対するポインタとなり、
前記Ｌフラグは、前記インデックスオフセットビット、前記インデックス、および前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記関連付けられたキャッシュラインが格納しているかどうかを示す装置。
【請求項２４】
前記第１レベルキャッシュメモリは複数ＮのＮウェイセットアソシエーティブキャッシュメモリを有し、前記複数のキャッシュメモリの前記各Ｎウェイセットは複数のＭ１キャッシュラインを有し、
前記付加的なメモリの各メモリラインのそれぞれのビット群の各々は、前記複数のキャッシュメモリのうちの１つの前記Ｎウェイセットのうちの１つのキャッシュラインのうちの１つに関連付けられている請求項２３に記載の装置。
【請求項２５】
各Ｌフラグは１ビットであり、（ｉ）その値が真の場合は、当該Ｌフラグを含むビット群に含まれる前記インデックスオフセットビット、前記インデックス、および前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの、当該Ｌフラグを含む前記ビット群に関連付けられているキャッシュラインが格納しているかどうかを示し、（ｉｉ）偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記関連付けられているキャッシュラインが格納していないことを示す請求項２３に記載の装置。
【請求項２６】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項２５に記載の装置。
【請求項２７】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項２３に記載の装置。
【請求項２８】
前記付加的なメモリのそれぞれのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記キャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すように動作可能なプロセッサをさらに有する請求項２３に記載の装置。
【請求項２９】
前記プロセッサは、前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するようにさらに動作可能である請求項２８に記載の装置。
【請求項３０】
前記次段レベルのキャッシュメモリの所定のキャッシュラインに関連付けられているＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するように動作可能なプロセッサをさらに有する請求項２３に記載の装置。
【請求項３１】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項３０に記載の装置。
【請求項３２】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインに関連付けられているＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項３１に記載の装置。
【請求項３３】
前記第１レベルキャッシュメモリがダイレクトマップドキャッシュとなるようにＮ＝１である請求項２３に記載の装置。
【請求項３４】
各々がアドレスタグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた第１レベルキャッシュメモリを制御するステップと、
各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた次段レベルのキャッシュメモリを制御するステップであって、各キャッシュラインの前記状態フラグはＬフラグを有するステップと、
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグを設定して、前記次段レベルのキャッシュメモリの所定の前記キャッシュラインに記憶されているデータのコピーによって、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する方法。
【請求項３５】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するステップをさらに有する請求項３４に記載の方法。
【請求項３６】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項３５に記載の方法。
【請求項３７】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬビットが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項３６に記載の方法。
【請求項３８】
各キャッシュラインの前記Ｌフラグは１ビットであり、その値が真の場合は、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの対応するキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す請求項３４に記載の方法。
【請求項３９】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項３８に記載の方法。
【請求項４０】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項３４に記載の方法。
【請求項４１】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリである請求項３４に記載の方法。
【請求項４２】
前記次段レベルのキャッシュメモリはＮウェイセットアソシエーティブキャッシュメモリである請求項３４に記載の方法。
【請求項４３】
各々がアドレスタグおよびデータを記憶するように動作可能な複数のＭ１キャッシュラインを有する第１レベルキャッシュメモリを制御するステップと、
次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリを制御するステップであって、前記各Ｎウェイセットは各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のＭ２キャッシュライン（Ｍ２はＭ１より大きい）を有するステップと、
前記次段レベルのキャッシュメモリに関連付けられ、かつ複数のＭ１メモリラインを有する付加的なメモリを制御するステップであって、各メモリラインは、前記次段レベルのキャッシュメモリの各Ｎウェイセットの複数のキャッシュラインに対応するそれぞれのＬフラグを有するステップと、
前記付加的なメモリのそれぞれのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記キャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する方法。
【請求項４４】
前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するステップをさらに有する請求項４３に記載の方法。
【請求項４５】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するステップをさらに有する請求項４３に記載の方法。
【請求項４６】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項４５に記載の方法。
【請求項４７】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項４６に記載の方法。
【請求項４８】
前記付加的なメモリの各メモリラインにあるＬフラグの個数はＭ２／Ｍ１×Ｎである請求項４３に記載の方法。
【請求項４９】
各Ｌフラグは１ビットであり、その値が真の場合は、前記次段レベルのキャッシュメモリの関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す請求項４３に記載の方法。
【請求項５０】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項４９に記載の方法。
【請求項５１】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項４３に記載の方法。
【請求項５２】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリである請求項４３に記載の方法。
【請求項５３】
第１レベルキャッシュメモリは、Ｎウェイセットアソシエーティブキャッシュメモリである請求項４３に記載の方法。
【請求項５４】
第１レベルのＮウェイセットアソシエーティブキャッシュメモリを制御するステップであって、前記第１レベルキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグおよびデータを記憶するように動作可能な複数のＭ１キャッシュラインを有するステップと、
次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリを制御するステップであって、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のＭ２キャッシュライン（Ｍ２はＭ１より大きい）を有するステップと、
前記次段レベルのキャッシュメモリに関連付けられ、かつ複数のＭ１メモリラインを有する付加的なメモリを制御するステップであって、（ｉ）前記付加的なメモリの各メモリラインは、前記第１レベルキャッシュメモリの前記各Ｎウェイセットに関連付けられたそれぞれのビット群を有しており、これによって前記付加的なメモリの各ビット群は、前記第１レベルキャッシュメモリのキャッシュラインのそれぞれ１つに関連付けられており、（ｉｉ）各ビット群はインデックスオフセットビット、ウェイセットビットおよびＬフラグを有し、（ｉｉｉ）前記インデックスオフセットビットとインデックスとの組み合わせが、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットの１つのキャッシュラインに対するポインタとなり、（ｉｖ）前記ウェイセットビットは、前記次段レベルのキャッシュメモリの前記Ｎウェイセットの１つに対するポインタとなるステップと、
前記付加的なメモリのそれぞれのＬフラグを設定して、前記インデックスオフセットビット、前記インデックスおよび前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する方法。
【請求項５５】
前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するステップをさらに有する請求項５４に記載の方法。
【請求項５６】
前記次段レベルのキャッシュメモリの所定のキャッシュラインに関連付けられているＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するステップをさらに有する請求項５４に記載の方法。
【請求項５７】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記所定のキャッシュラインにデータを上書きするステップをさらに有する請求項５６に記載の方法。
【請求項５８】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインに関連付けられているＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項５７に記載の方法。
【請求項５９】
前記第１レベルキャッシュメモリは複数ＮのＮウェイセットアソシエーティブキャッシュメモリを有し、前記複数のキャッシュメモリの前記各Ｎウェイセットは複数のＭ１キャッシュラインを有し、
前記付加的なメモリの各メモリラインのそれぞれのビット群の各々は、前記複数のキャッシュメモリのうちの１つの前記Ｎウェイセットのうちの１つのキャッシュラインのうちの１つに関連付けられている請求項５４に記載の方法。
【請求項６０】
各Ｌフラグは１ビットであり、（ｉ）その値が真の場合は、当該Ｌフラグを含むビット群に含まれる前記インデックスオフセットビット、前記インデックス、および前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの、当該Ｌフラグを含む前記ビット群に関連付けられているキャッシュラインが格納しているかどうかを示し、（ｉｉ）偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記関連付けられているキャッシュラインが格納していないことを示す請求項５４に記載の方法。
【請求項６１】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項６０に記載の方法。
【請求項６２】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項５４に記載の方法。
【請求項６３】
前記第１レベルキャッシュメモリがダイレクトマップドキャッシュとなるようにＮ＝１である請求項５４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層型キャッシュメモリを制御するための方法ならびに装置に関する。より詳細には、本発明は、下位レベルキャッシュメモリのキャッシュラインにデータを記憶することによって、上位レベルのキャッシュメモリに既に記憶されている当該キャッシュラインのデータが上書きされてしまう場合に、そのデータの記憶を禁止する制御方法に関する。
【背景技術】
【０００２】
近年、最先端のコンピュータアプリケーションがますます複雑になっているため、コンピュータによるデータ処理のスループットの向上への要求がとどまることを知らず、マイクロプロセシングシステムに対する要求が増加の一途をたどっている。従来のマイクロプロセシングシステム（マイクロプロセッサと、これと関連付けられたメモリとを使用するシステム）では、サイクルタイム（マイクロプロセッサがデータを処理できる時間の単位）が非常に短く、例えば１ナノ秒である。しかし、メインメモリに記憶されているデータへのアクセスに要する時間は、マイクロプロセッサのサイクルタイムと比べてかなり長いことがある。例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）技術を利用して実装されたメインメモリから１バイトのデータを取り出す際のアクセス時間は約６０ナノ秒程度となっている。
【０００３】
ＤＲＡＭメモリのアクセス時間が比較的長いことによるボトルネックを改善するために、従来、キャッシュメモリが利用されている。キャッシュメモリはメインメモリを補助して、システムのスループットを向上させる。メインメモリは、比較的安価で低速のＤＲＡＭメモリ技術を用いて実装されることが多いのに対し、キャッシュメモリは通常、より高価かつ高速のスタティックランダムアクセスメモリ（ＳＲＡＭ）技術を用いて実装される。キャッシュメモリは、コストの高い技術を用いて実装されることから、通常はメインメモリよりも大幅に容量が小さい。
【０００４】
キャッシュメモリは比較的容量が小さいため、従来のアルゴリズムを使用して、マイクロプロセシングシステムの動作中の様々な時点において、キャッシュメモリに記憶すべきデータを判定していた。例えば、これらの従来のアルゴリズムは、「参照の局所性」の理論の概念に基づいており、ある特定の時点において、マイクロプロセッサが実行可能プログラムの比較的限られた部分しか使用していないという事実を利用するものであり得る。このため、参照の局所性の概念に従って、ある特定の時点において、実行可能プログラムの限られた部分のみがキャッシュメモリに記憶される。また、このようなアルゴリズムやその他のアルゴリズムを使用して、キャッシュメモリへのデータの記憶や、キャッシュメモリからのデータの取り出し（これらのデータは実行可能プログラムによって使用され得る）が制御され得る。
【０００５】
キャッシュメモリへの実行可能プログラムやデータの記憶を制御するための、参照の局所性を利用する公知のアルゴリズムやその他の概念の詳細については、その数が多いためにここに記載することはできない。ただし、アプリケーションによってデータ処理の目的が大きく異なることがあるため、あらゆるアプリケーションに適するアルゴリズムは存在しないということに言及すれば十分であろう。
【０００６】
キャッシュメモリを制御するための従来のアルゴリズムでは、マイクロプロセッサがキャッシュメモリに対してデータアクセス要求を与える。要求されたデータがキャッシュメモリに記憶されている場合はキャッシュヒットとなり、マイクロプロセッサは比較的速やかにデータを受け取る。キャッシュメモリにアクセスしてもデータに対するデータアクセス要求が満たされない場合、すなわちキャッシュミスが発生した場合は、データをメインメモリから取得し、キャッシュメモリに記憶するデータリフィルシーケンス（data refill sequence）を実行することが望ましい。
【０００７】
キャッシュメモリは、マイクロプロセッサに「オンチップ」で配置されていることがあり、この構成をレベル１（Ｌ１）キャッシュメモリと呼ぶ。あるいは、キャッシュメモリは、マイクロプロセッサとは別に配置されている、すなわちオフチップのこともあり、この構成をレベル２（Ｌ２）キャッシュメモリと呼ぶ。通常、Ｌ１キャッシュメモリはＬ２キャッシュメモリと比べてアクセス時間が大幅に短い。オンチップのキャッシュメモリとオフチップのキャッシュメモリとを併用するＬ１、Ｌ２複合キャッシュメモリシステムを構成することも可能であり、この構成を階層型キャッシュメモリと呼ぶことがある。この構成では、マイクロプロセッサがデータに対するアクセス要求を行うと、この要求を満たすために最初にＬ１キャッシュメモリがアクセスされる。要求が満たされない場合、Ｌ２キャッシュメモリがアクセスされる。Ｌ２キャッシュメモリのミスが発生した場合、メインメモリがアクセスされて、Ｌ１キャッシュメモリおよびＬ２キャッシュメモリがリフィルされる。
【０００８】
Ｌ１キャッシュメモリとＬ２キャッシュメモリと間の競合の発生を低減させると共にアクセス効率を向上させるため、Ｌ２キャッシュメモリは、Ｌ１キャッシュメモリよりも多くのウェイセットを有するＮウェイセットアソシエーティブメモリであり得る。従来の技術によれば、Ｌ２キャッシュメモリがリフィルされる際（すなわち、Ｌ２キャッシメモリミスの発生後）には、Ｌ２キャッシュメモリのＮ個のキャッシュラインの中から、リフィルデータを入れるためのキャッシュラインを１つ選択する必要がある。Ｎ個のキャッシュラインの１つ以上に無効なデータが格納されている場合には、これらのキャッシュラインの１つにリフィルデータを記憶する。しかし、Ｎ個のキャッシュラインの全てに有効なデータが格納されている場合は、無作為選択手法を使用するか、公知の最低使用頻度（ＬＲＵ）アルゴリズムを使用するか、その他の任意のアルゴリズムを使用して、リフィルデータを入れるキャッシュラインを選択する。いずれにしても、Ｌ２キャッシュメモリのキャッシュラインにある有効なデータが上書きされ、かつこの有効なデータのコピーがＬ１キャッシュメモリのキャッシュラインにも格納されている場合には、Ｌ１キャッシュメモリとＬ２キャッシュメモリとの整合を図るために、Ｌ１キャッシュメモリのそのキャッシュラインを無効にする必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、従来の制御方法で行われているように、Ｌ１キャッシュメモリなどの上位レベルのキャッシュメモリにあるデータを無効にすると、マイクロプロセシングシステム全体のスループットが低下してしまう。例えば、Ｌ１キャッシュメモリ内のデータが不必要に無効にされると、Ｌ１キャッシュメモリを最適に使用することができない。この結果、ループ本体内で非常に頻繁にアクセスされる、キャッシュ済みの命令やデータが不必要に無効にされるおそれがある。この状態は、非常に大きなデータ配列にアクセスする場合に多くみられる。
【００１０】
したがって、メモリ効率を改良し、処理スループットを向上させ、システム全体で実行されるデータ処理品質を改良させるために、Ｌ１キャッシュメモリ、Ｌ２キャッシュメモリおよび／またはより下位のレベルキャッシュメモリを備え得るキャッシュメモリを制御するための新しい方法ならびに装置が当業界で望まれている。
【課題を解決するための手段】
【００１１】
本発明の１つ以上の態様によれば、装置は、各々がアドレスタグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた第１レベルキャッシュメモリと、各々がアドレスタグ状態フラグ、およびデータを記憶するように動作可能な複数のキャッシュラインを備えた、次のより低いレベル、つまり次段レベル（next lower level）のキャッシュメモリと、を有し、各キャッシュラインの前記状態フラグは、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのいずれかが格納していることを示すＬフラグを有する。
【００１２】
好ましくは、各キャッシュラインの前記Ｌフラグは１ビットであり、その値が真の場合は、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの対応するキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す。例えば、Ｌフラグビットの真のレベルは論理ハイおよび論理ローのうちの一方であり得、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方であり得る。
【００１３】
好ましくは、前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである。
【００１４】
上記装置は、前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインに記憶されているデータのコピーによって、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインがリフィルされているかどうかを示すように動作可能なプロセッサをさらに有し得る。
【００１５】
上記装置は、別法として（あるいは上記に加えて）、前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するように動作可能であり得る。好ましくは、前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記プロセッサは、前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である。
【００１６】
さらに、前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬビットが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能であり得る。
【００１７】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリであり得る。前記次段レベルのキャッシュメモリはＮウェイセットアソシエーティブキャッシュメモリであり得る。
【００１８】
本発明の１つ以上のさらに別の態様によれば、装置は、各々がアドレスタグおよびデータを記憶するように動作可能な複数のＭ１キャッシュラインを有する第１レベルキャッシュメモリと、次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリと、前記各Ｎウェイセットは各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のＭ２キャッシュライン（Ｍ２はＭ１より大きい）を有し、前記次段レベルのキャッシュメモリに関連付けられ、かつ複数のＭ１メモリラインを有する付加的なメモリと、を有し、各メモリラインは、前記次段レベルのキャッシュメモリの各Ｎウェイセットの複数のキャッシュラインに対応するそれぞれのＬフラグを有し、各Ｌビットは、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのいずれかが格納しているかどうかを示す。
【００１９】
好ましくは、前記付加的なメモリの各メモリラインにあるＬフラグの個数はＭ２／Ｍ１×Ｎである。各キャッシュラインの前記Ｌフラグは１ビットであり得、その値が真の場合は、前記次段レベルのキャッシュメモリの関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す。前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり得、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方であり得る。
【００２０】
上記装置は、好ましくは、前記付加的なメモリのそれぞれのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記キャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すように動作可能なプロセッサを有する。前記プロセッサは、好ましくは、前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するようにさらに動作可能である。
【００２１】
上記プロセッサは、別法として（あるいは上記に加えて）、前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するように動作可能であり得る。好ましくは、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインの前記状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、上記プロセッサは、前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能であり得る。さらに、前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記プロセッサは、好ましくは、前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である。
【００２２】
本発明の１つ以上のさらに別の態様によれば、装置は、第１レベルのＮウェイセットアソシエーティブキャッシュメモリと、前記第１レベルキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグおよびデータを記憶するように動作可能な複数のＭ１キャッシュラインを有し、次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリと、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のＭ２キャッシュライン（Ｍ２はＭ１より大きい）を有し、前記次段レベルのキャッシュメモリに関連付けられ、かつ複数のＭ１メモリラインを有する付加的なメモリと、を有し、前記付加的なメモリの各メモリラインは、前記第１レベルキャッシュメモリの前記各Ｎウェイセットに関連付けられたそれぞれのビット群を有しており、これによって前記付加的なメモリの各ビット群は、前記第１レベルキャッシュメモリのキャッシュラインのそれぞれ１つに関連付けられており、各ビット群はインデックスオフセットビット、ウェイセットビットおよびＬフラグを有し、前記インデックスオフセットビットとインデックスとの組み合わせが、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットの１つのキャッシュラインに対するポインタとなり、前記ウェイセットビットは、前記次段レベルのキャッシュメモリの前記Ｎウェイセットの１つに対するポインタとなり、前記Ｌフラグは、前記インデックスオフセットビット、前記インデックス、および前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記関連付けられたキャッシュラインが格納しているかどうかを示す。
【００２３】
本発明の１つ以上のさらに別の態様によれば、方法は、各々がアドレスタグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた第１レベルキャッシュメモリを制御するステップと、各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のキャッシュラインを備えた次段レベルのキャッシュメモリを制御するステップであって、各キャッシュラインの前記状態フラグはＬフラグを有するステップと、前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインに記憶されているデータのコピーによって、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する。
【００２４】
上記方法は、好ましくは、前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するステップを有する。また、上記方法は、前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップを有し得る。さらに、前記方法は、前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬビットが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有し得る。
【００２５】
本発明の１つ以上のさらに別の態様によれば、方法は、各々がアドレスタグおよびデータを記憶するように動作可能な複数のＭ１キャッシュラインを有する第１レベルキャッシュメモリを制御するステップと、次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリを制御するステップであって、前記各Ｎウェイセットは各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のＭ２キャッシュライン（Ｍ２はＭ１より大きい）を有するステップと、前記次段レベルのキャッシュメモリに関連付けられ、かつ複数のＭ１メモリラインを有する付加的なメモリを制御するステップであって、各メモリラインは、前記次段レベルのキャッシュメモリの各Ｎウェイセットの複数のキャッシュラインに対応するそれぞれのＬフラグを有するステップと、前記付加的なメモリのそれぞれのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記キャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する。
【００２６】
本発明の１つ以上のさらに別の態様によれば、方法は、第１レベルのＮウェイセットアソシエーティブキャッシュメモリを制御するステップであって、前記第１レベルキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグおよびデータを記憶するように動作可能な複数のＭ１キャッシュラインを有するステップと、次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリを制御するステップであって、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のＭ２キャッシュライン（Ｍ２はＭ１より大きい）を有するステップと、前記次段レベルのキャッシュメモリに関連付けられ、かつ複数のＭ１メモリラインを有する付加的なメモリを制御するステップであって、（ｉ）前記付加的なメモリの各メモリラインは、前記第１レベルキャッシュメモリの前記各Ｎウェイセットに関連付けられたそれぞれのビット群を有しており、これによって前記付加的なメモリの各ビット群は、前記第１レベルキャッシュメモリのキャッシュラインのそれぞれ１つに関連付けられており、（ｉｉ）各ビット群はインデックスオフセットビット、ウェイセットビットおよびＬフラグを有し、（ｉｉｉ）前記インデックスオフセットビットとインデックスとの組み合わせが、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットの１つのキャッシュラインに対するポインタとなり、（ｉｖ）前記ウェイセットビットは、前記次段レベルのキャッシュメモリの前記Ｎウェイセットの１つに対するポインタとなるステップと、前記付加的なメモリのそれぞれのＬフラグを設定して、前記インデックスオフセットビット、前記インデックスおよび前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する。
【００２７】
本発明の１つ以上のさらに別の態様によれば、キャッシュメモリを制御するための上記した方法および装置、あるいは本明細書で後述する方法および装置は、下記の図面に示すような適切なハードウェアを用いて実現することができる。この種のハードウェアは、任意の公知の技術を用いて実装することができる。この例には、標準的なディジタル回路、アナログ回路、ソフトウェアプログラムおよび／またはファームウエアプログラムを実行するように動作可能な任意の公知のプロセッサ、プログラマブル読出し専用メモリ（ＰＲＯＭ）、プログラマブルアレイロジックデバイス（ＰＡＬ）、これらの任意の組合せなどの、１つ以上のプログラム可能なディジタル装置またはシステムなどがある。
【００２８】
添付の図面を参照しつつ、ここに記載する本発明の説明を読めば、他の態様、機能および利点等は当業者に自明となるであろう。
【発明を実施するための最良の形態】
【００２９】
本発明を説明するために、現在の好ましい形態を図面の形式に示すが、本発明は、図示したとおりの構成ならびに手段に限定されないことを理解されたい。
【００３０】
図面において、同一の要素は同じ参照符号によって参照される。図１は、本発明の１つ以上の態様を示すブロック図である。簡潔を期すと共に明確になるように、図１のブロック図は装置１００の説明として本明細書において言及かつ記載される。しかし、この記載は同等の効力を有する１つ以上の方法のさまざまな態様に容易に適用できることを理解されたい。
【００３１】
装置１００は、好ましくはマイクロプロセッサ１０１、第１レベルキャッシュメモリ１０２、下位レベルキャッシュメモリ１０３、およびさらに別のメモリ１０４を備えたマイクロプロセッサシステムである。マイクロプロセッサ１０１は、現在入手可能な公知のマイクロプロセッサデバイスまたは今後開発されるマイクロプロセッサデバイスのいずれを使用して実現することができる。
【００３２】
第１レベルキャッシュメモリ１０２は、好ましくはＬ１キャッシュメモリ、すなわちマイクロプロセッサ１０１にオンチップに設けられた配置されているキャッシュメモリである。しかし、第１レベルキャッシュメモリ１０２がマイクロプロセッサ１０１にオンチップに配置されていることが好ましいものの、必ずしも第１レベルキャッシュメモリ１０２がオンチップで実装されていなくてもよい。実際、第１レベルキャッシュメモリ１０２は、マイクロプロセッサ１０１の外部にオフチップで配置されてもよい。
【００３３】
好ましくは、第１レベルキャッシュメモリ１０２は、命令キャッシュメモリ１０２Ａと、別個のデータキャッシュメモリ１０２Ｂとを有し、キャッシュメモリの各々は複数のキャッシュラインを備える。各キャッシュラインは、アドレスタグ、状態フラグおよびデータを有する。アクセス競合を回避するために、命令キャッシュとデータキャッシュとが分かれていることが好ましい。例えば、命令キャッシュメモリ１０２Ａとデータキャッシュメモリ１０２Ｂとは、各々６４キロバイトのダイレクトマップド構成として実装され得る。しかし、命令キャッシュメモリ１０２Ａおよびデータキャッシュメモリ１０２Ｂのサイズは任意である点に留意されたい。別法として、第１レベルキャッシュメモリ１０２は１つのダイレクトマップドキャッシュメモリを有し、命令とデータの両方を格納してもよい点にも留意されたい。
【００３４】
命令キャッシュメモリ１０２Ａおよびデータキャッシュメモリ１０２Ｂのキャッシュラインは、マイクロプロセッサ１０１が発行した有効アドレスとしてアドレス指定され、有効アドレスの各々は、タグビットとインデックスビットとを含む。インデックスビットは、第１レベルキャッシュメモリ１０２の命令キャッシュメモリ１０２Ａおよび／またはデータキャッシュメモリ１０２Ｂの特定のキャッシュラインに対するポインタとなる。キャッシュメモリのサイズが６４キロバイトである上記の例においては、インデックスビットは、利用可能な全キャッシュラインをポイントするために０ｘ００００〜０ｘＦＦＦＦの範囲をとり得る（最下位ビットの一部はオフセットとして使用される）。例示のための例として、マイクロプロセッサ１０１が発行した有効アドレスのインデックスビットから得られたポインタ（またはインデックス）１１０が０ｘＡＦＦ０であるとする。このポインタは、命令キャッシュメモリ１０２Ａの命令Ａを格納しているキャッシュラインをポイントしていると共に、データキャッシュメモリ１０２ＢのデータＡを格納しているキャッシュラインをポイントしている。
【００３５】
下位レベルキャッシュメモリ１０３は、本実施形態においてはＬ２キャッシュメモリであり、好ましくはＮ＝４のＮウェイセットアソシエーティブメモリである。このため、下位レベルキャッシュメモリ１０３は、第１ウェイセット１０５、第２ウェイセット１０６、第３ウェイセット１０７、および第４ウェイセット１０８を有する。下位レベルキャッシュメモリ１０３の各ウェイセットは、好ましくは複数のキャッシュラインを有し、各キャッシュラインはアドレスタグ、状態フラグおよびデータ（命令を含み得る）を記憶するように動作可能である。本発明の例示的なこの実施形態において、下位レベルキャッシュメモリ１０３のサイズは好ましくは２５６キロバイトであり、各ウェイセットのサイズは６４キロバイトである。このため、第１レベルキャッシュメモリ１０２の命令キャッシュメモリ１０２Ａおよびデータキャッシュメモリ１０２Ｂの各キャッシュラインは、下位レベルキャッシュメモリ１０３の４つのウェイセット１０５，１０６，１０７，１０８の各キャッシュラインに対応している。上記の例においては、ポインタ１１０（インデックス値０ｘＡＦＦ０）は、下位レベルキャッシュメモリ１０３の４つのキャッシュライン、すなわち各ウェイセット１０５，１０６，１０７，１０８につき１つのキャッシュラインをポイントしている。
【００３６】
下位レベルのキャッシュメモリ１０３の各キャッシュラインの状態フラグは、好ましくはＬフラグ１１２を格納しており、このフラグは、次段レベルのキャッシュメモリ１０３のそのキャッシュラインに記憶されているデータのコピーを、第１レベルキャッシュメモリ１０２のキャッシュラインのいずれかが格納しているかどうかを示す。各Ｌフラグは１ビット以上であってもよいが、１ビットが最も好ましい点に留意されたい。本発明に従ってどのような規則を使用してもよいが、例えば、Ｌフラグ（またはビット）１１２が「真」の場合には、好ましくは下位レベルキャッシュメモリ１０３のそのキャッシュラインに記憶されているデータのコピーを、第１レベルキャッシュメモリ１０２の対応するキャッシュラインが格納していることを示す。これに対し、Ｌフラグ１１２が「偽」の場合には、好ましくは下位レベルキャッシュメモリ１０３のそのキャッシュラインに記憶されているデータのコピーを、第１レベルキャッシュメモリ１０２のキャッシュラインが格納していないことを示す。Ｌフラグ１１２が１ビットの場合、好ましくは論理ハイ（logic high）および論理ロー（logic low）のうちの一方が真の状態を表し、論理ハイおよび論理ローのうちの他方が偽の状態を表す。
【００３７】
例えば、ウェイセット１０５の（０ｘＡＦＦ０によってインデックスされている）キャッシュライン１０９Ａは、論理ロー（偽）のＬビット１１２Ａを格納しており、これは、このキャッシュラインのデータ（データＣ）を、データキャッシュメモリ１０２Ｂの０ｘＡＦＦ０によってインデックスされているキャッシュラインが格納していないことを示す。下位レベルキャッシュメモリ１０３のキャッシュライン１０９Ｂは、論理ハイ（真）のＬビット１１２Ｂを格納しており、これは、このキャッシュラインのデータ（データＡ）を、第１レベルキャッシュメモリ１０２のデータキャッシュメモリ１０２Ｂの０ｘＡＦＦ０によってインデックスされているキャッシュラインが格納していることを示す。
下位レベルキャッシュメモリ１０３のキャッシュライン１０９Ｃは、論理ロー（偽）のＬビット１１２Ｃを格納しており、これは、このキャッシュラインのデータ（データＢ）を、データキャッシュメモリ１０２Ｂの０ｘＡＦＦ０によってインデックスされているキャッシュラインが格納していないことを示す。また、キャッシュライン１０９Ｄは、論理ハイ（真）のＬビット１１２Ｄを格納しており、これは、このキャッシュラインのデータ（命令Ａ）を、命令キャッシュメモリ１０２Ａの０ｘＡＦＦ０によってインデックスされているキャッシュラインが格納していることを示す。
【００３８】
さらに別のメモリ１０４は、次段レベルのキャッシュメモリかメインメモリであり得る。実際、本発明では、階層型キャッシュメモリの、マイクロプロセッサ１０１とメインメモリとの間に存在する階層数はどのような値であってもよい。
【００３９】
装置１００の構造および動作は、図２をさらに参照すればより深く理解できるであろう。図２は、装置１００によって実行されるか、あるいは装置１００と関連する特定のアクションを示すフローチャートである。説明のために、第１レベルキャッシュメモリ１０２がＬ１キャッシュメモリであり、下位レベルキャッシュメモリ１０３がＬ２キャッシュメモリであり、さらに別のメモリ１０４はメインメモリであると想定する。
【００４０】
図１，２に示す方法ならびに装置の１つ以上の態様によれば、Ｌフラグ１１２の各々の状態は、第１レベルキャッシュメモリ１０２に記憶されているデータ（または命令）の関数（function）として制御される。Ｌフラグ１１２を使用して、下位レベルキャッシュメモリ１０３へのキャッシュラインのデータまたは命令の記憶を許可するかあるいは禁止するかを判定する。詳細に説明すると、下位レベルキャッシュメモリ１０３のあるキャッシュラインに記憶されているデータのコピーによって、第１レベルキャッシュメモリ１０２のキャッシュラインの対応するキャッシュラインがリフィルされているかどうかを示すために、好ましくは下位レベルキャッシュメモリ１０３の当該キャッシュラインのＬフラグ１１２が真または偽にセットされる。
【００４１】
図２に、この一般的な制御をさらに詳細に示す。アクション１５０において、Ｌ１キャッシュのヒットまたはミスのいずれが発生したかが判定される。キャッシュヒットが発生した場合、処理フローはアクション１５１に進み、ここで、要求されたデータが第１レベルキャッシュメモリ１０２から取得されて、マイクロプロセッサ１０１に提供される。キャッシュミスが発生したと判定された場合、処理フローはアクション１５２に進む。例えば、マイクロプロセッサ１０１が、第１レベルキャッシュメモリ１０２（Ｌ１キャッシュメモリ）に対し、データキャッシュメモリ１０２Ｂの０ｘＡＦＦ０によってインデックスされているキャッシュラインからデータＣを要求するアクセス要求を出していると想定する。キャッシュミスが発生するのは、このキャッシュラインの状態フラグ（例えば有効フラグまたはビット）のいずれか１つが、このキャッシュラインに格納されているデータが無効であることを示している場合か、あるいはこのキャッシュラインのアドレスタグと有効アドレスのタグビットとが一致しない場合（このキャッシュラインに格納されているデータがデータＣではない場合など）である。
【００４２】
アクション１５２において、下位レベルキャッシュメモリ１０３の０ｘＡＦＦ０によってインデックスされているキャッシュライン１０９Ａ，１０９Ｂ，１０９Ｃ，１０９Ｄがアクセスされ、（ｉ）これらキャッシュラインのアドレスタグのいずれかが有効アドレスのタグビットと一致するか、および（ｉｉ）タグビットが一致するアドレスタグを格納しているキャッシュラインの有効フラグが、そのデータが有効であることを示しているかどうかが判定される。上記の条件のいずれも満たさない場合、Ｌ２キャッシュメモリ１０３はアクセス要求を満たすことができず、Ｌ２キャッシュミスが発生することになる（アクション１５４）。キャッシュライン１０９Ａが有効なデータ（すなわちデータＣ）を格納しているため、Ｌ１キャッシュメモリ（およびマイクロプロセッサ１０１）によって要求されたデータは、Ｌ２キャッシュメモリのヒットとなり、処理フローはアクション１５４からアクション１５６に進む。
【００４３】
アクション１５６において、Ｌ２キャッシュメモリ１０３のキャッシュライン１０９Ａに格納されているデータにより、Ｌ１キャッシュメモリ１０２のデータキャッシュメモリ１０２Ｂのキャッシュラインがリフィルされる。詳細に説明すると、データキャッシュメモリ１０２Ｂの、０ｘＡＦＦ０によってインデックスされ、データＡを格納しているキャッシュラインが、Ｌ２キャッシュメモリ１０３のキャッシュライン１０９Ａに格納されているリフィルデータ（データＣ）によって上書きされる。次に処理フローはアクション１５８に進み、ここで、Ｌ２キャッシュメモリ１０３のキャッシュライン１０９ＡのＬビット１１２Ａが真に設定される。これは、キャッシュライン１０９Ａのデータのコピーを、データキャッシュメモリ１０２Ｂの対応するキャッシュラインが格納していることを示す。さらに、キャッシュライン１０９ＢのＬビット１１２Ｂが偽に設定されて、キャッシュライン１０９Ｂに格納されているデータ（すなわちデータＡ）のコピーを、データキャッシュメモリ１０２Ｂの対応するキャッシュラインに格納されているデータがもはや格納していないことを示すようになる。
【００４４】
上記の例においては、マイクロプロセッサ１０１が行ったアクセス要求は、Ｌ１キャッシュメモリ１０２のミスとなり、この結果Ｌ１キャッシュメモリ１０２が行ったアクセス要求が、Ｌ２キャッシュメモリ１０３のヒットとなった。以下に、マイクロプロセッサ１０１が行ったアクセス要求がＬ１キャッシュメモリ１０２のミスとなり、Ｌ１キャッシュメモリ１０２が行ったアクセス要求もＬ２キャッシュメモリ１０３のミスとなる場合を説明する。詳細に説明すると、マイクロプロセッサ１０１がＬ１キャッシュメモリ１０２に対し、０ｘＡＦＦ０によってインデックスされているデータＤに対するアクセス要求を発行すると想定する。アクション１５０において、Ｌ１キャッシュメモリのミスが発生し、処理はアクション１５２に進む。アクション１５２において、０ｘＡＦＦ０によってインデックスされているキャッシュライン１０９Ａ〜Ｄがアクセスされて、処理フローはアクション１５４に進む。アクション１５４において、０ｘＡＦＦ０によってインデックスされているキャッシュライン１０９Ａ〜ＤのいずれもデータＤを格納していないため、Ｌ２キャッシュメモリのミスが発生する。次に処理フローはアクション１６０に進む。アクション１６０において、所望のデータ（データＤ）が次段レベルのキャッシュメモリまたはメインメモリから取得される。この例では、さらに別のメモリ１０４がメインメモリであると想定しているため、所望のデータがメインメモリから取得される。次に処理フローはアクション１６２に進み、ここでデータリフィルシーケンスが開始される。
【００４５】
アクション１６２の詳細を議論する前に、本発明の１つ以上の態様によれば、Ｌ２キャッシュメモリ１０３のキャッシュラインのうち、無効なデータを格納しているキャッシュライン（すなわち、あるキャッシュラインの有効フラグが、そのキャッシュラインに記憶されているデータが無効なことを示している）に対するデータの上書きを許可することが望ましい。Ｌ２キャッシュメモリ１０３の、特定のポインタ１１０によってインデックスされたキャッシュライン（キャッシュライン１０９Ａ〜Ｄなど）の全てが有効なデータを格納していると想定して、Ｌ２キャッシュメモリ１０３のあるキャッシュラインのＬフラグが、Ｌ２キャッシュメモリ１０３のそのキャッシュラインに記憶されているデータのコピーを、Ｌ１キャッシュメモリ１０２のキャッシュラインのうちの対応するキャッシュラインが格納していることを示している場合、好ましくは、Ｌ２キャッシュメモリ１０３のそのキャッシュラインへのデータの上書きが禁止される。これに関する詳細は、図２のアクション１６２〜１６８に示されている。
【００４６】
アクション１６２において、Ｌ２キャッシュメモリ１０３の（０ｘＡＦＦ０によってインデックスされている）キャッシュラインの全てが有効なデータを格納しているかどうかが判定される。Ｌ２キャッシュメモリ１０３のキャッシュラインの１つ以上が無効なデータを格納している場合、処理フローは好ましくはアクション１６４に分岐し、ここで所望のデータ（データＤ）がこのキャッシュラインのうちの１つに上書きされる。しかし、本例では、Ｌ２キャッシュメモリ１０３のどのキャッシュラインも有効なデータを格納していると想定しているため、アクション１６２での判定の結果、処理フローはアクション１６６に分岐する。アクション１６６において、対応するＬフラグ（またはＬビット）１１２が偽であるキャッシュラインのうちの１つのみに、所望のデータ（データＤ）が上書きされる。換言すれば、Ｌフラグ１１２が、Ｌ２キャッシュメモリ１０３のそのＬフラグ１１２に対応するキャッシュラインに格納されているデータのコピーを、Ｌ１キャッシュメモリ１０２の対応するキャッシュラインが格納していることを示している場合は、Ｌ２キャッシュメモリ１０３のキャッシュラインの上書きが禁止される。このため、例えば、キャッシュライン１０９Ａ，１０９Ｃは、各々対応するＬビット１１２Ａ，１１２Ｃが偽であるため、キャッシュライン１０９Ａまたは１０９Ｃに所望のデータ（データＤ）が上書きされ得る。Ｌ２キャッシュメモリ１０３のキャッシュライン１０９Ｃのデータが上書きされると想定した場合、Ｌビット１１２Ｃが真に設定され（アクション１６８）、データＤのコピーが、Ｌ１キャッシュメモリ１０２のデータキャッシュメモリ１０２Ｂの対応するキャッシュラインにもリフィルされる。
【００４７】
Ｌ２キャッシュメモリ１０３をリフィルする際に、Ｌ１キャッシュメモリ１０２のどのデータも無効にする必要がないため有利である。このように、メモリ使用効率の改善、処理スループットの向上、および処理データの品質向上を図ることができる。
【００４８】
次に、図３を参照すると、図３は、本発明の別の態様および実施形態を示すブロック図である。ここでも、簡潔を期すと共に明確になるように、図３のブロック図は装置２００の説明として本明細書において言及かつ記載される。しかし、この記載は同じ効力（force）を有する１つ以上の方法のさまざまな態様に容易に適用できることを理解されたい。装置２００は、好ましくはマイクロプロセッサデバイス２０１、第１レベルキャッシュメモリ２０２、次段レベルのキャッシュメモリ２０３、およびさらに別のメモリ１０４を有するマイクロプロセッサシステムである。
【００４９】
第１レベルキャッシュメモリ２０２は、好ましくは命令キャッシュメモリ２０２Ａと、別個のデータキャッシュメモリ２０２Ｂとを有するが、本発明は、命令キャッシュメモリとデータキャッシュメモリとが統合されている別の実施態様を意図していることを理解されたい。いずれの場合も、命令キャッシュメモリ２０２Ａおよびデータキャッシュメモリ２０２Ｂの各々は、好ましくは、Ｎ＝２のＮウェイセットアソシエーティブキャッシュメモリとして実装される。このため、データキャッシュメモリ２０２Ｂは、ウェイセット２０４とウェイセット２０５とを有し、命令キャッシュメモリ２０２Ａはウェイセット２０６とウェイセット２０７とを有する。命令キャッシュメモリ２０２Ａおよびデータキャッシュメモリ２０２Ｂの各ウェイセット２０４〜２０７のサイズは好ましくは８キロバイトであり、これらの各キャッシュラインは、好ましくはアドレスタグ、状態フラグおよびデータ（命令を含み得る）を記憶するように動作可能である。このため、所定のインデックス（またはポインタ）２０８は、ウェイセット２０４，２０５，２０６，２０７の全てのキャッシュラインをインデックスするために、０ｘ００００〜０ｘ１ＦＦＦ（１３ビット）の範囲の値をとり得る。説明のため、ポインタ２０８の値は０ｘ０ＦＦ０であり、各ウェイセット２０４，２０５，２０６，２０７について１つのキャッシュラインをポイントしているとする。
【００５０】
次段レベルのキャッシュメモリ２０３も、好ましくはＮ＝８のＮウェイセットアソシエーティブキャッシュメモリである。このため、次段レベルのキャッシュメモリ２０３は、ウェイセット２０９、ウェイセット２１０、ウェイセット２１１、ウェイセット２１２、ウェイセット２１３、ウェイセット２１４、ウェイセット２１５、およびウェイセット２１６を有する。本明細書において、これらのウェイセットを、セット０、セット１、セット２、セット３、セット４、セット５、セット６、およびセット７とも呼ぶ。本発明のこの実施形態によると、次段レベルのキャッシュメモリ２０３の各ウェイセット２０９〜２１６は、好ましくは第１レベルキャッシュメモリ２０２の各ウェイセット２０４〜２０７よりもサイズが大きい。例えば、次段レベルのキャッシュメモリ２０３の各ウェイセット２０９〜２１６のサイズは、好ましくは３２キロバイトである。このため、次段レベルのキャッシュメモリ２０３の各ウェイセット２０９〜２１６のサイズは、第１レベルキャッシュメモリ２０２の各ウェイセット２０４〜２０７の４倍である。
【００５１】
インデックス（またはポインタ）２０８Ａが、次段レベルのキャッシュメモリ２０３の全てのキャッシュラインにアクセスできるようになるには、０ｘ００００〜０ｘ７ＦＦＦの範囲の１５ビットを必要とする点に留意されたい。しかし、第１レベルキャッシュメモリ２０２の全てのキャッシュラインにアクセスするには、ポインタ２０８のサイズが０ｘ００００〜０ｘ１ＦＦＦの１３ビットで充分であると説明した。実際のシステムにおいて、この見かけ上の不一致は以下のようにして解消される。第１レベルキャッシュメモリ２０２でキャッシュミスが発生すると、有効アドレスがアドレスバス上の次段レベルのキャッシュメモリ２０３に渡される。このアドレスバスは、例えば［３１：０］の３２ビットを有し得る。このため、第１レベルキャッシュメモリ２０２によってアドレスが発行された時点では、アドレスバスのビット［３１：１３］は有効アドレスのタグビットを格納しており、アドレスバスのビット［１２：０］は有効アドレスのインデックスビットを格納している。有効アドレスは、第１レベルキャッシュメモリ２０２から次段レベルのキャッシュメモリ２０３にこの状態で渡される。
【００５２】
しかし、次段レベルのキャッシュメモリ２０３は、アドレスバスのビット［１４：０］を、対象とする８つのキャッシュラインを指すポインタ２０８Ａのインデックスビットを格納しているビットとして処理する。このため、アドレスバスのビット［１４：１３］（第１レベルキャッシュメモリ２０２がタグビットとして処理したビットの一部）は、次段レベルのキャッシュメモリ２０３によって、インデックスビットまたはポインタ２０８Ａの一部として使用される。アドレスバスのビット［１４：１３］が００の場合、ポインタ２０８Ａは、０ｘ０ＦＦ０のインデックスを格納しており、ウェイセット２０９〜２１６の最下位の８つのキャッシュラインをポイントしている。アドレスバスのビット［１４：１３］が０１の場合、ポインタ２０８Ａは、０ｘ０ＦＦ０＋０ｘ２０００のインデックスを格納しており、ウェイセット２０９〜２１６の１つ上の８つのキャッシュラインをポイントしている。同様に、アドレスバスのビット［１４：１３］が１０の場合、ポインタ２０８Ａは、０ｘ０ＦＦ０＋０ｘ４０００のインデックスを格納しており、ウェイセット２０９〜２１６の次に上の８つのキャッシュラインをポイントしている。最後に、アドレスバスのビット［１４：１３］が１１の場合、ポインタ２０８Ａは、０ｘ０ＦＦ０＋０ｘ６０００のインデックスを格納しており、ウェイセット２０９〜２１６のさらに上の８つのキャッシュラインをポイントしている。このため、アドレスバスのビット［１４：１３］は、インデックスオフセットであると見なすことができ、このインデックスオフセットは、本例においては０ｘ００００、０ｘ２０００、０ｘ４０００、および０ｘ６０００のいずれかを取り得る。
【００５３】
次段レベルのキャッシュメモリ２０３の各キャッシュラインは、好ましくはアドレスタグ、状態フラグおよびデータ（命令を含み得る）を記憶するように動作可能である。しかし、本発明の図１の実施形態とは異なり、図３の装置２００は、好ましくは、次段レベルのキャッシュメモリ２０３は、各キャッシュラインにＬフラグを有さない。この理由は、仮に各キャッシュラインがＬフラグを有するとすると、異なるインデックスオフセットによってインデックスされているキャッシュラインに存在するそれぞれのＬフラグの値を制御または変更することは不可能なためである。実際、一度に処理可能なのは、同じインデックスオフセットによってインデックスされた８つのキャッシュラインのみである。
【００５４】
本発明のこの実施形態に係る装置２００は、好ましくは、付加的なメモリ２０３Ａを有しており、この付加的なメモリ２０３Ａは、次段レベルのキャッシュメモリ２０３に内蔵されていても、次段レベルのキャッシュメモリ２０３とは別に設けられていてもよい。付加的なメモリ２０３Ａは、好ましくは複数のメモリラインを有し、このメモリラインの個数は、第１レベルキャッシュメモリ２０２の所定のウェイセットに存在するキャッシュラインの個数と対応している。このため、図３の例では、付加的なメモリ２０３Ａは、好ましくは８キロバイトのメモリラインを有する。付加的なメモリ２０３Ａの各メモリラインは、好ましくは、次段レベルのキャッシュメモリ２０３の複数のキャッシュライン２０９〜２１６の各ウェイセットのそれぞれに対応するＬフラグを有する。本例では、各メモリラインは、各ウェイセット２０９〜２１６の４つのキャッシュラインのそれぞれに対応するＬフラグを有しており、Ｌフラグの合計は３２となる。さらに一般化すると、付加的なメモリ２０３Ａの各メモリラインのＬフラグの個数は、Ｎを第１レベルキャッシュメモリ２０２のウェイセットの個数、Ｍ１を第１レベルキャッシュメモリ２０２の各ウェイセットのキャッシュラインの個数、Ｍ２を次段レベルのキャッシュメモリ２０３の各ウェイセットのキャッシュラインの個数とすると、Ｍ２／Ｍ１×Ｎとなる。このように、所定のインデックスに第１レベルキャッシュメモリ２０２の全てのインデックスオフセットを加算した値に対応するＬフラグの全てが、付加的なメモリ２０３Ａの１つのメモリラインに含まれる。このため、このＬフラグは、全てを一度に制御または変更することができる。
【００５５】
次に、図３の装置２００の動作を、一例を挙げてさらに詳細に記載する。マイクロプロセッサ２０１が、例えば３２ビットのアドレスバスを介して、第１レベルキャッシュメモリ２０２に対して、有効アドレス（またはアクセス要求）を発行するこの例では、マイクロプロセッサ２０１がデータＣを要求すると想定する。データＣは、第１レベルキャッシュメモリ２０２にも次段レベルのキャッシュメモリ２０３にも記憶されていない。このため、アドレスバスのビット［３１：１３］は、マイクロプロセッサ２０１が要求しているデータ（データＣ）に対応するタグビットを格納している。アドレスバスのビット［１２：０］はインデックスビットを格納しており、このインデックスビットは、第１レベルキャッシュメモリ２０２のウェイセット２０４〜２０７の個々のキャッシュラインをポイントしている。この例では、インデックスビットは０ｘ０ＦＦ０であり、このため、ポインタ２０８は、命令キャッシュメモリ２０２Ａの命令Ａと命令Ｂとを格納している２つのキャッシュライン、およびデータキャッシュメモリ２０２ＢのデータＡとデータＢとを格納している２つのキャッシュラインにアクセスする。アクセスされたデータキャッシュメモリ２０２Ｂの２つのキャッシュラインは、いずれもデータＣを格納していないため、キャッシュミスが発生する。
【００５６】
キャッシュミスのため、第１レベルキャッシュメモリ２０２は下位レベルキャッシュメモリ２０３に有効アドレスを渡し、このキャッシュメモリ内でデータアクセス要求を満たそうと試みる。第１レベルキャッシュメモリ２０２は、アドレスバスのビット［１２：０］を有効アドレスのインデックスとして使用していたのに対し、次段レベルのキャッシュメモリ２０３は、アドレスバスのビット［１４：０］を、有効アドレスのインデックスビットを格納しているビットとして処理する。本例においては、アドレスバスのビット［１４：１３］の値が０１であると想定する。この値は０ｘ２０００のインデックスオフセットに対応している。このため、ポインタ２０８Ａは０ｘ０ＦＦ０＋０ｘ２０００の値をとることとなり、下位レベルキャッシュメモリ２０３のウェイセット２０９〜２１６の対応する８つのキャッシュラインをポイントする。
【００５７】
アクセスされた下位レベルキャッシュメモリ２０３の８つのキャッシュラインは、いずれもデータＣを格納していないため、キャッシュミスが発生する。このため、下位レベルキャッシュメモリ２０３は、さらに別のメモリ１０４（１つ以上のさらに別のキャッシュメモリおよび／またはメインメモリであり得る）に有効アドレスを渡す。その後、キャッシュメモリ２０２，２０３の各々にリフィルするため、データＣが返される。
【００５８】
下位レベルキャッシュメモリ２０３のうち、０ｘ０ＦＦ０＋０ｘ２０００によってインデックスされているキャッシュラインのうち、どのキャッシュラインにリフィルデータ（データＣ）を入れるかが判定される。下位レベルキャッシュメモリ２０３のキャッシュラインの１つ以上が無効なデータを格納している場合、リフィルデータはこのようなキャッシュラインの１つに上書きされることが好ましい。しかし、本例では、下位レベルキャッシュメモリ２０３のいずれのキャッシュラインも有効なデータを格納している（すなわち、キャッシュラインの各有効フラグが、全てのデータが有効であることを示している）と想定している。このため、好ましくは、第１レベルキャッシュメモリ２０２にキャッシュされていないデータをキャッシュラインの１つ以上が格納しているかどうかが判定され、未キャッシュのデータを格納しているキャッシュラインがあれば、そのようなキャッシュラインの１つにリフィルデータが記憶される。
【００５９】
これを行うために、付加的なメモリ２０３Ａの０ｘ０ＦＦ０（オフセットなし）によってインデックスされているメモリラインがアクセスされる。全てのメモリラインと同様に、このメモリラインは３２個のＬフラグを格納しており、本例ではＬフラグは１ビットを有する。真のビット（論理ハイ）は、下位レベルキャッシュメモリ２０３の対応するキャッシュラインのデータが、第１レベルキャッシュメモリ２０２にもキャッシュされていることを示す。偽（論理ロー）のレベルは、下位レベルキャッシュメモリ２０３の対応するキャッシュラインのデータが、第１レベルキャッシュメモリ２０２にキャッシュされていないことを示す。
【００６０】
本例においては、０ｘ０ＦＦ０によってインデックスされているメモリラインのビット［１５：８］が、下位レベルキャッシュメモリ２０３の、０ｘ０ＦＦ０＋０ｘ２０００によってインデックスされている８つのキャッシュラインに対応するＬビットを格納している。これらのＬビットの値は、Ｌビット２２２（メモリラインの［１３］ビット）を除いて全て偽であり、この偽のビットは、下位レベルキャッシュメモリ２０３のキャッシュライン２１８に対応している。キャッシュライン２１８は、データ（命令Ａ）を格納しており、このデータは、第１レベルキャッシュメモリ２０２の命令キャッシュメモリ２０２Ａにキャッシュされている。より詳細には、０ｘ０ＦＦ０によってインデックスされている命令キャッシュメモリ２０２Ａのウェイセット２０７のキャッシュラインに命令Ａが記憶されている。
【００６１】
本発明によれば、Ｌビット２２２が真であるため、キャッシュライン２１８は保護されており、このキャッシュラインへのリフィルデータ（データＣ）の上書きが禁止される。このため、リフィルデータ（データＣ）は、下位レベルキャッシュメモリ２０３の、０ｘ０ＦＦ０＋０ｘ２０００によってインデックスされている他のキャッシュラインのいずれかにリフィルされる。例えば、ウェイセット２１２のキャッシュラインにリフィルデータが上書きされ得る。さらに、第１レベルキャッシュメモリ２０２のデータキャッシュメモリ２０２Ｂの、０ｘ０ＦＦ０によってインデックスされているキャッシュラインの１つ（ウェイセット２０４のキャッシュラインなど）にリフィルデータ（データＣ）が書き込まれる。このため、ウェイセット２０４のキャッシュラインに記憶されていたデータ（データＢ）が、リフィルデータ（データＣ）によって上書きされる。付加的なメモリ２０３Ａの、０ｘ０ＦＦ０によってインデックスされているメモリラインのビット［１１］が真に設定され、これによって、下位レベルキャッシュメモリ２０３のウェイセット２１２の対応するキャッシュラインのデータが第１レベルキャッシュメモリ２０２にキャッシュされていることが示されるようになる。データキャッシュメモリ２０２Ｂのウェイセット２０４の、０ｘ０ＦＦ０によってインデックスされているキャッシュラインはデータＢをもはや格納していないため、付加的なメモリ２０３ＡのＬビットの変更も行う必要がある。詳細に説明すると、データＢのコピーは、下位レベルキャッシュメモリ２０３のウェイセット２０９のキャッシュライン２２１に記憶されている。このキャッシュライン２２１は０ｘ０ＦＦ０＋０ｘ６０００によってインデックスされており、このため、このキャッシュラインに対応するＬビット２２５を更新する必要がある。このＬビット２２５は、付加的なメモリ２０３Ａの、０ｘ０ＦＦ０によってインデックスされているメモリラインのビット［２４］に存在する。詳細に説明すると、Ｌビット２２５が、偽（論理ロー）の状態から真（論理ハイ）の状態にセットされる。Ｌビット２２２，２２５は同時に変更されるという点に留意されたい。
【００６２】
下位レベルキャッシュメモリ２０３をリフィルする際に、第１レベルキャッシュメモリ２０２のどのデータも無効にする必要がないため有利である。このように、メモリ使用効率の改善、処理スループットの向上、および処理データの品質向上を図ることができる。
【００６３】
次に、図４を参照すると、図４は、本発明のさらに別の態様および実施形態を示すブロック図である。ここでも、簡潔を期すと共に明確になるように、図４のブロック図は装置３００の説明として本明細書において言及かつ記載される。しかし、この記載は同じ効力（force）を有する１つ以上の方法のさまざまな態様に容易に適用できることを理解されたい。
【００６４】
装置３００は、好ましくはマイクロプロセッサデバイス３０１、第１レベルキャッシュメモリ２０２、次段レベルのキャッシュメモリ３０３、およびさらに別のメモリ１０４を有するマイクロプロセッサシステムである。第１レベルキャッシュメモリ２０２は、好ましくは上に記載しかつ図３に示した第１レベルキャッシュメモリ２０２とほぼ同じである。このため、第１レベルキャッシュメモリ２０２は、好ましくは命令キャッシュメモリ２０２Ａとデータキャッシュメモリ２０２Ｂとを有し、それぞれＮ＝２のＮウェイセットアソシエーティブキャッシュメモリとして実装される。命令キャッシュメモリ２０２Ａの各ウェイセット２０４〜２０７のサイズは好ましくは８キロバイトであり、これらの各キャッシュラインは、好ましくはアドレスタグ、状態フラグおよびデータ（命令を含み得る）を記憶するように動作可能である。このため、ポインタ２０８は、ウェイセット２０４〜２０７の各キャッシュラインをインデックスするために、０ｘ００００〜０ｘ１ＦＦＦ（１３ビット）の範囲の値をとる。説明のため、ポインタ２０８の値は０ｘ０ＦＦ０であり、各ウェイセット２０４〜２０７について１つのキャッシュラインをポイントしているとする。
【００６５】
次段レベルのキャッシュメモリ３０３は、好ましくは付加的なメモリ３０３Ａを除いて、上に記載し図３に示したキャッシュメモリ２０３とほぼ同じである（これについては本明細書で詳細に後述する）。このため、下位レベルキャッシュメモリ３０３は、好ましくはＮウェイセットアソシエーティブキャッシュメモリであり、このメモリは、８つのウェイセット２０９〜２１６を有する。これらも本明細書においてそれぞれセット０〜セット７と呼ぶことができる。さらに、次段レベルのキャッシュメモリ３０３の各ウェイセット２０９〜２１６のサイズは、好ましくは３２キロバイトである。すなわち、各ウェイセット２０９〜２１６のサイズは、第１レベルキャッシュメモリ２０２の各ウェイセット２０４〜２０７の４倍である。このため、インデックス２０８Ａが、次段レベルのキャッシュメモリ３０３のどのキャッシュラインにでもアクセスできるようになるには、０ｘ００００〜０ｘ７ＦＦＦの範囲の１５ビットが必要となる。
【００６６】
図３の装置２００の場合と同様に、第１レベルキャッシュメモリ２０２の全てのキャッシュラインにアクセスするには、ポインタ２０８のサイズが０ｘ００００〜０ｘ１ＦＦＦの１３ビットで充分である。しかし、下位レベルキャッシュメモリ３０３は、第１レベルキャッシュメモリ２０２から提供された１３ビットと有効アドレスのタグビットの最下位の２ビットと併せて、１５ビットのインデックスビットとして使用する。このように、第１レベルキャッシュメモリ２０２から受け取った１３ビットのインデックスビットに、タグビットからの追加の２ビットから得たインデックスオフセットを加えることによって、下位レベルキャッシュメモリ３０３のキャッシュラインに対するインデックスが得られる。本例においては、インデックスオフセットは０ｘ００００、０ｘ２０００、０ｘ４０００、および０ｘ６０００のいずれかの値をとり得る。
【００６７】
下位レベルキャッシュメモリ３０３の各キャッシュラインは、好ましくはアドレスタグ、状態フラグおよびデータ（命令を含み得る）を記憶するように動作可能である。図３のキャッシュメモリ２０３と同様に、図４の下位レベルキャッシュメモリ３０３は、好ましくは、各キャッシュシュラインにＬフラグを有さない。これに代わって、Ｌフラグを有するのは付加的なメモリ３０３Ａであり、付加的なメモリ３０３Ａは、下位レベルキャッシュメモリ３０３に内蔵されていても、下位レベルキャッシュメモリ３０３とは別に設けられていてもよい。
【００６８】
より詳細には、付加的なメモリ３０３Ａは、好ましくは複数のメモリラインを有し、このメモリラインの個数は、第１レベルキャッシュメモリ２０２の各ウェイセット２０４〜２０７に含まれるキャッシュラインの個数と対応している。このため、図４の例では、付加的なメモリ３０３Ａは、好ましくは８キロバイトのメモリラインを有する。付加的なメモリ３０３Ａの各メモリラインは、好ましくは、第１レベルキャッシュメモリ２０２の各ウェイセット２０４〜２０７に関連付けられたそれぞれのビット群を有する。このため、付加的なメモリ３０３Ａの各メモリラインの各ビット群は、第１レベルキャッシュメモリ２０２のキャッシュラインのそれぞれ１つに関連付けられている。各ビット群は、好ましくはＬフラグ３５０、オフセットビット３５２およびウェイセットビット３５４を有する。本発明の上記の実施形態と同様に、Ｌフラグ３５０は、下位レベルキャッシュメモリ３０３の所定のキャッシュラインに記憶されているデータのコピーが、第１レベルキャッシュメモリ２０２の対応するキャッシュラインに格納されているかどうかを示している。本発明のこの実施形態において、あるＬフラグ３５０に関連付けられている特定のキャッシュラインは、（第１レベルキャッシュメモリ２０２によって提供される）インデックスと、その群のインデックスオフセットビット３５２およびウェイセットビット３５４の組み合わせによってポイントされる。このため、付加的なメモリ３０３Ａのあるビット群に関連付けられている下位レベルキャッシュメモリ３０３のキャッシュラインは、第１レベルキャッシュメモリ２０２から提供されたインデックスを、インデックスオフセットビット３５２（各ウェイセット２０９〜２１６のキャッシュラインから１つずつ、合計８つのキャッシュラインに対するポインタとなる）に相当する値だけオフセットしてから、ウェイセットビット３５４に対応するウェイセット２０９〜２１６を選択することによって決定される。本例において、インデックスオフセットビット３５２は、００（インデックスオフセット０ｘ００００に対応）、０１（インデックスオフセット０ｘ２０００に対応）、１０（インデックスオフセット０ｘ４０００に対応）、および１１（インデックスオフセット０ｘ６０００に対応）の４つの値のいずれかをとり得る。ウェイセットビット３５４は、０００（セット０に対応）、００１（セット１に対応）、０１０（セット２に対応）、０１１（セット３に対応）、…、１１１（セット７に対応）の８つの値のいずれか１つを取り得る。
【００６９】
このため、付加的なメモリ３０３Ａの各メモリラインは、下位レベルキャッシュメモリ３０３の複数のキャッシュライン（すなわち、各インデックスと、各ビット群のインデックスオフセットビット３５２およびウェイセットビット３５４とに対応したキャッシュライン）に対するＬフラグ３５０をそれぞれ有する。さらに、付加的なメモリ３０３Ａの各メモリラインの各ビット群は、第１レベルキャッシュメモリ２０２のウェイセット２０４〜２０７のうちの特定の１つに対応している。第１レベルキャッシュメモリ２０２のウェイセットの個数、下位レベルキャッシュメモリ３０３のウェイセットの個数およびサイズ、ならびに各Ｌフラグ３５０のサイズ（すなわち１ビット）を考慮すると、付加的なメモリ３０３Ａの各メモリラインは、２４ビット［２３：０］を有する。
【００７０】
次に、図４の装置３００の動作を、一例を挙げてさらに詳細に記載する。マイクロプロセッサ３０１が、例えば３２ビットのアドレスバスを介して、第１レベルキャッシュメモリ２０２に対して、有効アドレス（またはアクセス要求）を発行するこの例では、マイクロプロセッサ３０１がインデックス０ｘ０ＦＦ０に存在するデータＣを要求すると想定する。このデータ（データＣ）は、第１レベルキャッシュメモリ２０２にも下位レベルキャッシュメモリ３０３にも記憶されていない。このため、アドレスバスのビット［３１：１３］は、マイクロプロセッサ３０１が要求しているデータ（データＣ）に対応するタグビットを格納している。アドレスバスのビット［１２：０］はインデックスビットを格納しており、このインデックスビットは、第１レベルキャッシュメモリ２０２のウェイセット２０４〜２０７の個々のキャッシュラインをポイントしている。この例では、インデックスビットは０ｘ０ＦＦ０であり、このため、ポインタ２０８は、命令キャッシュメモリ２０２Ａの命令Ａと命令Ｂとを格納している２つのキャッシュライン、および／またはデータキャッシュメモリ２０２ＢのデータＡとデータＢとを格納している２つのキャッシュラインにアクセスする。アクセスされたデータキャッシュメモリ２０２Ｂの２つのキャッシュラインは、いずれもデータＣを格納していないため、キャッシュミスが発生する。
【００７１】
キャッシュミスのため、第１レベルキャッシュメモリ２０２は下位レベルキャッシュメモリ３０３に有効アドレスを渡し、このキャッシュメモリ内でデータアクセス要求を満たそうと試みる。次段レベルのキャッシュメモリ３０３は、アドレスバスのビット［１４：０］を、有効アドレスのインデックスビットを格納しているビットとして使用する。本例においては、アドレスバスのビット［１４：１３］の値が０１であると想定する。この値は０ｘ２０００のインデックスオフセットに対応している。このため、ポインタ２０８Ａは０ｘ０ＦＦ０＋０ｘ２０００の値をとることとなり、下位レベルキャッシュメモリ２０３のウェイセット２０９〜２１６の対応する８つのキャッシュラインをポイントする。
【００７２】
アクセスされた下位レベルキャッシュメモリ３０３の８つのキャッシュラインは、いずれもデータＣを格納していないため、キャッシュミスが発生する。このため、下位レベルキャッシュメモリ３０３は、さらに別のメモリ１０４（１つ以上のさらに別のキャッシュメモリおよび／またはメインメモリであり得る）に有効アドレスを渡す。その後、キャッシュメモリ２０２，３０３の各々にリフィルするため、データＣが返される。
【００７３】
下位レベルキャッシュメモリ３０３のうち、０ｘ０ＦＦ０＋０ｘ２０００によってインデックスされているキャッシュラインのうち、どのキャッシュラインにリフィルデータ（データＣ）を入れるかが判定される。下位レベルキャッシュメモリ３０３のキャッシュラインの１つ以上が無効なデータを格納している場合、リフィルデータはこのようなキャッシュラインの１つに上書きされることが好ましい。しかし、本例では、下位レベルキャッシュメモリ３０３のどのキャッシュラインも有効なデータを格納していると想定している。このため、好ましくは、第１レベルキャッシュメモリ２０２にキャッシュされていないデータをキャッシュラインの１つ以上が格納しているかどうかが判定され、未キャッシュのデータを格納しているキャッシュラインがあれば、そのようなキャッシュラインの１つにリフィルデータが記憶される。
【００７４】
これを行うために、付加的なメモリ３０３Ａの０ｘ０ＦＦ０（オフセットなし）によってインデックスされているメモリラインがアクセスされる。全てのメモリラインと同様に、このメモリラインは４個のＬフラグ３５０Ａ〜Ｄを格納している。各Ｌフラグは１ビットであり、下位レベルキャッシュメモリ３０３の４つのキャッシュラインに対応している。真のビット（論理ハイ）は、下位レベルキャッシュメモリ３０３の対応するキャッシュラインのデータが、第１レベルキャッシュメモリ２０２にもキャッシュされていることを示す。偽（論理ロー）のレベルは、下位レベルキャッシュメモリ３０３の対応するキャッシュラインのデータが、第１レベルキャッシュメモリ２０２にキャッシュされていないことを示す。
【００７５】
この例では、唯一のインデックスオフセットビット３５２Ｄは０１であり、この値は０ｘ２０００のオフセットに対応している。このオフセットと、第１レベルキャッシュメモリ２０２から提供されたインデックスおよびウェイセットビット３５４Ｄ（セット５に対応）の組み合わせとによって、このビット群が、下位レベルキャッシュメモリ３０３のキャッシュライン３２１に関連付けられていることが示される。このビット群のＬビット３５０Ｄは真であり、リフィルデータ（データＣ）によるキャッシュライン３２１の上書きが禁止されていることを示している。これに対し、下位レベルキャッシュメモリ３０３の、０ｘ０ＦＦ０＋０ｘ２０００によってインデックスされている他のどのキャッシュライン（キャッシュライン３５８など）にもデータをリフィルすることができる。
【００７６】
リフィルデータ（データＣ）は、第１レベルキャッシュメモリ２０２のデータキャッシュメモリ２０２Ｂの、０ｘ０ＦＦ０によってインデックスされているキャッシュラインの１つ（ウェイセット２０４のキャッシュライン３５２など）に書き込まれる。このため、元々キャッシュライン３５２に記憶されていたデータ（データＢ）が、リフィルデータ（データＣ）によって上書きされる。データキャッシュメモリ２０２Ｂのウェイセット２０４の、０ｘ０ＦＦ０によってインデックスされているキャッシュライン３５２はデータＢをもはや格納していないため、付加的なメモリ３０３ＡのＬビット３５０の変更も行う必要がある。詳細に説明すると、データＢのコピーは、下位レベルキャッシュメモリ３０３のウェイセット２０９のキャッシュライン３２４に記憶されている。このキャッシュライン３２４は０ｘ０ＦＦ０＋０ｘ６０００によってインデックスされており、このため、このキャッシュライン３２４に対応するＬビット３５０Ａを更新する必要がある。このＬビット３５０Ａは、付加的なメモリ３０３Ａの、０ｘ０ＦＦ０によってインデックスされているメモリラインのビット［５］に存在する。実際、Ｌビット３５０Ａは、値が１１であるインデックスオフセットビット３５２Ａ、および値が０００であるウェイセットビット３５４Ａと群を形成している。すなわち、これらは下位レベルキャッシュメモリ３０３のキャッシュライン３２４をポイントしている。キャッシュライン３５８，３２４に関連付けられているＬビットを適切に更新するために、第１レベルキャッシュメモリ２０２のウェイセット１０４に関連付けられているインデックスオフセットビット３５２とウェイセットビット３５４とが更新される。詳細に説明すると、インデックスオフセットビット３５２Ａが１１から０１に変更され、ウェイセットビット３５４Ａが０００から０１１に変更される。これによって、このビット群は、下位レベルキャッシュメモリ３０３のキャッシュライン３２４に代わってキャッシュライン３５８と関連付けられる。
【００７７】
下位レベルキャッシュメモリ３０３をリフィルする際に、第１レベルキャッシュメモリ２０２のどのデータも無効にする必要がないため有利である。このように、メモリ使用効率の改善、処理スループットの向上、および処理データの品質向上を図ることができる。
【００７８】
本明細書において、具体的な実施形態を用いて本発明を記載したが、これらの実施形態は、本発明の原理および用途の例を示すものに過ぎないことを理解されたい。このため、添付の請求の範囲に記載した本発明の趣旨および範囲から逸脱することなく、これら例示的な実施形態を種々に変更したり、上記以外の構成を考案し得ることが理解されよう。
【図面の簡単な説明】
【００７９】
【図１】本発明の１つ以上の実施形態による、階層型キャッシュメモリの制御に適する１つ以上の方法および装置の態様を示すブロック図である。
【図２】本発明の実施形態の１つ以上によって実行および／または実装され得る特定の動作／機能を示すフローチャートである。
【図３】本発明の１つ以上の別の実施形態による、階層型キャッシュメモリの制御に適する１つ以上の別法による方法および装置の別の態様を示すブロック図である。
【図４】本発明の１つ以上の別の実施形態による、階層型キャッシュメモリの制御に適する１つ以上の方法および装置の別の態様を示すブロック図である。
【図１】
2006504158.tif 000003
【図２】
2006504158.tif 000004
【図３】
2006504158.tif 000005
【図４】
2006504158.tif 000006
【手続補正書】
【提出日】平成16年2月3日(2004.2.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各々がアドレスタグおよびデータを記憶するように動作可能な複数のキャッシュラインを有する第１レベルキャッシュメモリと、
各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のキャッシュラインを有する次段レベルのキャッシュメモリと、を有し、各キャッシュラインの前記状態フラグは、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのいずれかが格納していることを示すＬフラグを有する装置。
【請求項２】
各キャッシュラインの前記Ｌフラグは１ビットであり、その値が真の場合は、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの対応するキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す請求項１に記載の装置。
【請求項３】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項２に記載の装置。
【請求項４】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項１に記載の装置。
【請求項５】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインに記憶されているデータのコピーによって、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインがリフィルされているかどうかを示すように動作可能なプロセッサをさらに有する請求項１に記載の装置。
【請求項６】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記所定のキャッシュラインへのデータの上書きを禁止するように動作可能なプロセッサをさらに有する請求項１に記載の装置。
【請求項７】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項６に記載の装置。
【請求項８】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項７に記載の装置。
【請求項９】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリである請求項１に記載の装置。
【請求項１０】
前記次段レベルのキャッシュメモリはＮウェイセットアソシエーティブキャッシュメモリである請求項１に記載の装置。
【請求項１１】
各々がアドレスタグおよびデータを記憶するように動作可能な複数Ｍ１個のキャッシュラインを有する第１レベルキャッシュメモリと、
次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリと、前記各Ｎウェイセットは各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数Ｍ２個のキャッシュライン（Ｍ２はＭ１より大きい）を有し、
前記次段レベルのキャッシュメモリに関連付けられ、かつ複数Ｍ１個のメモリラインを有する付加的なメモリと、を有し、各メモリラインは、前記次段レベルのキャッシュメモリの各Ｎウェイセットの複数のキャッシュラインに対応するそれぞれのＬフラグを有し、各Ｌフラグは、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのいずれかが格納しているかどうかを示す装置。
【請求項１２】
前記付加的なメモリの各メモリラインにあるＬフラグの個数はＭ２／Ｍ１×Ｎである請求項１１に記載の装置。
【請求項１３】
各Ｌフラグは１ビットであり、その値が真の場合は、前記次段レベルのキャッシュメモリの関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す請求項１１に記載の装置。
【請求項１４】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項１３に記載の装置。
【請求項１５】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項１１に記載の装置。
【請求項１６】
前記付加的なメモリのそれぞれのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記キャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すように動作可能なプロセッサをさらに有する請求項１１に記載の装置。
【請求項１７】
前記プロセッサは、前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するようにさらに動作可能である請求項１６に記載の装置。
【請求項１８】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記所定のキャッシュラインへのデータの上書きを禁止するように動作可能なプロセッサをさらに有する請求項１１に記載の装置。
【請求項１９】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項１８に記載の装置。
【請求項２０】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項１９に記載の装置。
【請求項２１】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリである請求項１１に記載の装置。
【請求項２２】
前記第１レベルキャッシュメモリはＮウェイセットアソシエーティブキャッシュメモリである請求項１１に記載の装置。
【請求項２３】
第１レベルのＮウェイセットアソシエーティブキャッシュメモリと、前記第１レベルキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグおよびデータを記憶するように動作可能な複数Ｍ１個のキャッシュラインを有し、
次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリと、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数Ｍ２個のキャッシュライン（Ｍ２はＭ１より大きい）を有し、
前記次段レベルのキャッシュメモリに関連付けられ、かつ複数Ｍ１個のメモリラインを有する付加的なメモリと、を有し、
前記付加的なメモリの各メモリラインは複数のビット群を有し、各群は前記第１レベルキャッシュメモリの前記各Ｎウェイセットのそれぞれのウェイセットに関連付けられており、これによって前記付加的なメモリの各ビット群は、前記第１レベルキャッシュメモリのキャッシュラインのそれぞれ１つに関連付けられており、
各ビット群はインデックスオフセットビット、ウェイセットビットおよびＬフラグを有し、
前記インデックスオフセットビットとインデックスとの組み合わせが、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットの１つのキャッシュラインに対するポインタとなり、
前記ウェイセットビットは、前記次段レベルのキャッシュメモリの前記Ｎウェイセットの１つに対するポインタとなり、
前記Ｌフラグは、前記インデックスオフセットビット、前記インデックス、および前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記関連付けられたキャッシュラインが格納しているかどうかを示す装置。
【請求項２４】
前記第１レベルキャッシュメモリは複数ＮのＮウェイセットアソシエーティブキャッシュメモリを有し、前記複数ＮのＮウェイセットアソシエーティブキャッシュメモリの各々は複数Ｍ１個のキャッシュラインを有し、
前記付加的なメモリの各メモリラインのそれぞれのビット群の各々は、前記複数のキャッシュメモリのうちの１つの前記Ｎウェイセットのうちの１つのキャッシュラインのうちの１つに関連付けられている請求項２３に記載の装置。
【請求項２５】
各Ｌフラグは１ビットであり、（ｉ）その値が真の場合は、当該Ｌフラグを含むビット群に含まれる前記インデックスオフセットビット、前記インデックス、および前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの、当該Ｌフラグを含む前記ビット群に関連付けられているキャッシュラインが格納しているかどうかを示し、（ｉｉ）偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記関連付けられているキャッシュラインが格納していないことを示す請求項２３に記載の装置。
【請求項２６】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項２５に記載の装置。
【請求項２７】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項２３に記載の装置。
【請求項２８】
前記付加的なメモリのそれぞれのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記キャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すように動作可能なプロセッサをさらに有する請求項２３に記載の装置。
【請求項２９】
前記プロセッサは、前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するようにさらに動作可能である請求項２８に記載の装置。
【請求項３０】
前記次段レベルのキャッシュメモリの所定のキャッシュラインに関連付けられているＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するように動作可能なプロセッサをさらに有する請求項２３に記載の装置。
【請求項３１】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項３０に記載の装置。
【請求項３２】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインに関連付けられているＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記プロセッサは前記所定のキャッシュラインへのデータの上書きを許可するようにさらに動作可能である請求項３１に記載の装置。
【請求項３３】
前記第１レベルキャッシュメモリがダイレクトマップドキャッシュとなるようにＮ＝１である請求項２３に記載の装置。
【請求項３４】
各々がアドレスタグおよびデータを記憶するように動作可能な複数のキャッシュラインを有する第１レベルキャッシュメモリを制御するステップと、
各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数のキャッシュラインを有する次段レベルのキャッシュメモリを制御するステップであって、各キャッシュラインの前記状態フラグはＬフラグを有するステップと、
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグを設定して、前記次段レベルのキャッシュメモリの所定の前記キャッシュラインに記憶されているデータのコピーによって、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する方法。
【請求項３５】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するステップをさらに有する請求項３４に記載の方法。
【請求項３６】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項３５に記載の方法。
【請求項３７】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項３６に記載の方法。
【請求項３８】
各キャッシュラインの前記Ｌフラグは１ビットであり、その値が真の場合は、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの対応するキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの当該キャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す請求項３４に記載の方法。
【請求項３９】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項３８に記載の方法。
【請求項４０】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項３４に記載の方法。
【請求項４１】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリである請求項３４に記載の方法。
【請求項４２】
前記次段レベルのキャッシュメモリはＮウェイセットアソシエーティブキャッシュメモリである請求項３４に記載の方法。
【請求項４３】
各々がアドレスタグおよびデータを記憶するように動作可能な複数Ｍ１個のキャッシュラインを有する第１レベルキャッシュメモリを制御するステップと、
次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリを制御するステップであって、前記各Ｎウェイセットは各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数Ｍ２個のキャッシュライン（Ｍ２はＭ１より大きい）を有するステップと、
前記次段レベルのキャッシュメモリに関連付けられ、かつ複数Ｍ１個のメモリラインを有する付加的なメモリを制御するステップであって、各メモリラインは、前記次段レベルのキャッシュメモリの各Ｎウェイセットの複数のキャッシュラインに対応するそれぞれのＬフラグを有するステップと、
前記付加的なメモリのそれぞれのＬフラグを設定して、前記次段レベルのキャッシュメモリの前記キャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する方法。
【請求項４４】
前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するステップをさらに有する請求項４３に記載の方法。
【請求項４５】
前記次段レベルのキャッシュメモリの所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するステップをさらに有する請求項４３に記載の方法。
【請求項４６】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項４５に記載の方法。
【請求項４７】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインのＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項４６に記載の方法。
【請求項４８】
前記付加的なメモリの各メモリラインにあるＬフラグの個数はＭ２／Ｍ１×Ｎである請求項４３に記載の方法。
【請求項４９】
各Ｌフラグは１ビットであり、その値が真の場合は、前記次段レベルのキャッシュメモリの関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのキャッシュラインが格納していることを示し、偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリのどのキャッシュラインも格納していないことを示す請求項４３に記載の方法。
【請求項５０】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項４９に記載の方法。
【請求項５１】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項４３に記載の方法。
【請求項５２】
前記第１レベルキャッシュメモリはダイレクトマップドキャッシュメモリである請求項４３に記載の方法。
【請求項５３】
前記第１レベルキャッシュメモリはＮウェイセットアソシエーティブキャッシュメモリである請求項４３に記載の方法。
【請求項５４】
第１レベルのＮウェイセットアソシエーティブキャッシュメモリを制御するステップであって、前記第１レベルキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグおよびデータを記憶するように動作可能な複数Ｍ１個のキャッシュラインを有するステップと、
次段レベルのＮウェイセットアソシエーティブユニファイドキャッシュメモリを制御するステップであって、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットは、各々がアドレスタグ、状態フラグおよびデータを記憶するように動作可能な複数Ｍ２個のキャッシュライン（Ｍ２はＭ１より大きい）を有するステップと、
前記次段レベルのキャッシュメモリに関連付けられ、かつ複数Ｍ１個のメモリラインを有する付加的なメモリを制御するステップであって、（ｉ）前記付加的なメモリの各メモリラインは複数のビット群を有し、各群は前記第１レベルキャッシュメモリの前記各Ｎウェイセットのそれぞれのウェイセットに関連付けられており、これによって前記付加的なメモリの各ビット群は、前記第１レベルキャッシュメモリのキャッシュラインのそれぞれ１つに関連付けられており、（ｉｉ）各ビット群はインデックスオフセットビット、ウェイセットビットおよびＬフラグを有し、（ｉｉｉ）前記インデックスオフセットビットとインデックスとの組み合わせが、前記次段レベルのキャッシュメモリの前記各Ｎウェイセットの１つのキャッシュラインに対するポインタとなり、（ｉｖ）前記ウェイセットビットは、前記次段レベルのキャッシュメモリの前記Ｎウェイセットの１つに対するポインタとなるステップと、
前記付加的なメモリのそれぞれのＬフラグを設定して、前記インデックスオフセットビット、前記インデックスおよび前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータによって、前記第１レベルキャッシュメモリの対応するキャッシュラインがリフィルされているかどうかを示すステップと、を有する方法。
【請求項５５】
前記付加的なメモリの所定のメモリラインのＬフラグをほぼ同時に設定するステップをさらに有する請求項５４に記載の方法。
【請求項５６】
前記次段レベルのキャッシュメモリの所定のキャッシュラインに関連付けられているＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していることを示す場合に、前記次段レベルのキャッシュメモリの前記所定のキャッシュラインへのデータの上書きを禁止するステップをさらに有する請求項５４に記載の方法。
【請求項５７】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータのいずれかが無効であることを示す場合に、前記所定のキャッシュラインにデータを上書きするステップをさらに有する請求項５６に記載の方法。
【請求項５８】
前記次段レベルのキャッシュメモリの所定のキャッシュラインの状態フラグの有効フラグが、前記所定のキャッシュラインに記憶されているデータが有効であることを示し、かつ前記所定のキャッシュラインに関連付けられているＬフラグが、前記所定のキャッシュラインに記憶されているデータのコピーを前記第１レベルキャッシュメモリの前記キャッシュラインのうちの対応するキャッシュラインが格納していないことを示す場合に、前記所定のキャッシュラインへのデータの上書きを許可するステップをさらに有する請求項５７に記載の方法。
【請求項５９】
前記第１レベルキャッシュメモリは複数ＮのＮウェイセットアソシエーティブキャッシュメモリを有し、前記複数のキャッシュメモリの前記各Ｎウェイセットは複数Ｍ１個のキャッシュラインを有し、
前記付加的なメモリの各メモリラインのそれぞれのビット群の各々は、前記複数のキャッシュメモリのうちの１つの前記Ｎウェイセットのうちの１つのキャッシュラインのうちの１つに関連付けられている請求項５４に記載の方法。
【請求項６０】
各Ｌフラグは１ビットであり、（ｉ）その値が真の場合は、当該Ｌフラグを含むビット群に含まれる前記インデックスオフセットビット、前記インデックス、および前記ウェイセットビットによってポイントされている前記次段レベルのキャッシュメモリのキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの、当該Ｌフラグを含む前記ビット群に関連付けられているキャッシュラインが格納しているかどうかを示し、（ｉｉ）偽の場合は、前記次段レベルのキャッシュメモリの前記関連付けられているキャッシュラインに記憶されているデータのコピーを、前記第１レベルキャッシュメモリの前記関連付けられているキャッシュラインが格納していないことを示す請求項５４に記載の方法。
【請求項６１】
前記Ｌフラグビットの前記真のレベルは論理ハイおよび論理ローのうちの一方であり、前記Ｌフラグビットの前記偽のレベルは前記論理ハイおよび前記論理ローのもう一方である請求項６０に記載の方法。
【請求項６２】
前記第１レベルキャッシュメモリはＬ１キャッシュメモリであり、前記次段レベルのキャッシュメモリはＬ２キャッシュメモリである請求項５４に記載の方法。
【請求項６３】
前記第１レベルキャッシュメモリがダイレクトマップドキャッシュとなるようにＮ＝１である請求項５４に記載の方法。
【国際調査報告】
2006504158.tif 000007
2006504158.tif 000008
2006504158.tif 000009