説明

マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法

【課題】下位レベルキャッシュから置換されたキャッシュラインの上位レベルキャッシュへの割り当てを低減する方法を提供する。
【解決手段】置換ラインがすでに上位レベルに割り当てられと決定されたとき、置換されたキャッシュラインの割り当ては、次のレベルキャッシュにおいて防がれ、これにより、キャストアウトが低減する。そのような目的に、ラインは、下位レベルキャッシュ204において置換されるように選択される。上位レベルキャッシュ208において選択されたラインが存在するか示す選択されたラインに関連する情報が識別される。上位レベルキャッシュにおける選択されたラインの割り当ては、識別された情報に基づいて防がれる。選択されたラインの割り当てを防ぐことは、割り当てに関連するであろう電力を蓄える。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、キャッシュメモリの分野に関し、より明確には、命令、データおよびビクティムキャッシュを有するメモリシステムに関する。
【背景技術】
【0002】
携帯電話、ラップトップコンピュータ、携帯情報端末(personal digital assistant)(PDA)などのような多くのポータブル製品は、通信およびマルチメディアプログラムのようなプログラムを実行するプロセッサを利用する。そのような製品の処理システムは、命令およびデータを記憶するためのプロセッサおよびメモリコンプレックス(memory complex)を含む。大容量メインメモリは、一般的に、プロセッササイクル時間と比較して、遅いアクセス時間を有している。結果として、メモリコンプレックスは、従来、プロセッサと最も近くに位置する最も高いパフォーマンスおよび最も低い容量キャッシュを有するキャッシュメモリの容量およびパフォーマンスに基づいた階層に構成されている。例えば、レベル1命令キャッシュおよびレベル1データキャッシュは、一般に、プロセッサに直接アタッチ(attach)されるであろう。そしてレベル2ユニファイキャッシュ(unified cache)は、レベル1(L1)命令およびデータキャッシュに接続される。さらに、システムメモリは、レベル2(L2)ユニファイキャッシュに接続される。レベル1命令キャッシュは、一般に、プロセッサの速度で動作し、レベル2ユニファイキャッシュは、レベル1キャッシュより遅く動作するがシステムメモリより速いアクセスタイムを有している。他のメモリ構成は、例えば、レベル1およびレベル2キャッシュに加えてレベル3キャッシュを有するメモリ階層に多い。他のメモリ構成は、レベル1キャッシュおよびシステムメモリのみを使用することがある。
【0003】
メモリ構成は、包含的キャッシュ(inclusive cache)、狭義包含的キャッシュ(strictly inclusive cache)、排他的キャッシュ(exclusive cache)、またはこれらのキャッシュタイプの組み合わせとして動作するキャッシュの階層から構成されることがある。ここの定義によって、互いに排他的な任意の2つのレベルのキャッシュは、同じキャッシュラインを含むことができない。互いに包含的な任意の2つのレベルのキャッシュは、同じキャッシュラインを含むことができる。互いに狭義に包含的な任意の2つのレベルのキャッシュは、より大きなキャッシュ、通常、上位レベルのキャッシュがより小さなキャッシュ、通常、下位レベルのキャッシュにおける全てのラインを含まなければならないことを意味する。3つ以上のマルチレベルキャッシュメモリ構成において、任意の2つ以上のキャッシュレベルは、排他的のように1つのタイプのキャッシュとして作動することがあり、残りのキャッシュレベルは、包含的のように1つの他のタイプのキャッシュとして動作することがある。
【0004】
命令キャッシュは、一般に、命令キャッシュにおいて単一のアドレスに位置する複数の命令をサポートするように構築される。データキャッシュは、一般に、データキャッシュにおいて単一のアドレスに位置する複数のデータユニットをサポートするために構築される、ここでデータユニットはプロセッサに依存するバイトの可変数であることがある。この複数の命令およびデータユニットは、一般に、キャッシュラインまたは単にラインと呼ばれる。例えば、プロセッサは、L1キャッシュからの命令またはデータユニットをフェッチし、命令またはデータユニットはキャッシュにおいて存在する場合、「ヒット(hit)」が生じ、命令またはデータユニットがプロセッサに提供される。命令またはデータユニットがL1キャッシュにおいて存在しない場合、「ミス(miss)」が生じる。ミスは、キャッシュラインにおいていかなる場所の命令またはデータユニットアクセスに生じることがある。ミスが生じたとき、キャッシュにおけるラインは、ミスされた命令を含む新しいラインと置換される。置換手段は、どのキャッシュラインと置換するか決定するために使用される。例えば、最も使用されていないキャッシュラインを選択するかビクティムすることは、最低使用頻度(least recently used)(LRU)手段を表す。置換するように選択されたキャッシュラインは、ビクティムキャッシュラインである。
【0005】
キャッシュラインは、さらに、有効ビットおよびダーティ(dirty)ビットのような多数のステータス(status)ビットと関連されることがある。有効ビットは、命令またはデータがキャッシュラインにおいて存在するか示す。デーティビットは、キャッシュラインへの変更が生じたかどうかを示す。ライトバック(write-back)キャッシュにおいて、ダーティビットは、キャッシュラインが置換されることになっているとき、メモリシステム階層における次のより上位メモリレベルに変更がライトバックされる必要があるか示す。
【0006】
ビクティムキャッシュは、レベル1キャッシュのようなキャッシュに接続された、または、隣接する上位レベルキャッシュに一体化された別個のバッファであることがある。ビクティムキャッシュラインは、ビクティムラインが立ち退かせられる直後に必要であること、および、ビクティムキャッシュからの要求があるときのビクティムランをアクセスすることが上位レベルのメモリ階層からのビクティムラインをアクセスするより早いという想定のもとにビクティムキャッシュにおいて割り当てられることがある。ビクティムキャッシュが隣接する上位レベルのキャッシュにおいて一体化されたと同時に、ラインが下位レベルキャッシュから分離されたとき、および、上位レベルキャッシュに割り当てられたときにキャストアウトが生じ、これにより、下位レベルキャッシュのビクティムをキャッシュする。下位レベルキャッシュは、すべての立ち退かせたライン、ダーティおよび非ダーティ(non-dirty)の両方を上位レベルのキャッシュに送信する。ある場合において、ビクティムラインは、すでにビクティムキャッシュにおいて存在することがあり、すでに存在するラインを再書き込むことは電力を消費し、帯域幅をビクティムキャッシュに低減する。
【発明の概要】
【0007】
本開示は、メモリシステムにおける電力要求を低減することがポータブルアプリケーションにとって、および、一般に、処理システムにおける電力要求を低減することにとって重要であることを認識させる。そのような目的に、発明の実施形態は、置換されたキャッシュラインの割り当てを低減するためにトラッキング方法をアドレスする。ラインは、下位レベルキャッシュにおいて置換されるために選択されている。選択されたラインが上位レベルキャッシュに存在することを示す選択されたラインに関連した情報は、識別される。上位レベルキャッシュにおける選択されたラインの割り当ては、識別された情報に基づいて防がれる。選択されたラインの割り当てを防ぐことは、割り当てに関連するであろう電力を蓄える。
【0008】
発明の他の実施形態は、キャストアウトを低減する方法をアドレスする。レベルXキャッシュにおけるミスに応じて、割り当て情報は、ミスに関連したキャッシュラインのタグのレベルXキャッシュにおいて保管される。割り当て情報は、キャッシュラインがレベルX+1キャッシュにおいて割り当てられていたかどうかを示す。ラインは、レベルXキャッシュにおいて置換されるために選択される。レベルXキャッシュからレベルX+1キャッシュまでの選択されたキャストアウトは、レベルX+1キャッシュにおいてキャッシュラインが割り当てられたことを示す選択されたラインの割り当て情報に応じて防がれる。
【0009】
発明の他の実施形態は、複数のキャッシュレベルを有するメモリシステムをアドレスする。下位レベルキャッシュは、複数の第1キャッシュラインのそれぞれを割り当てビットで記憶するように構成される。複数の第1キャッシュラインのうち1つに関連した割り当てビットは、複数の第1キャッシュラインのうち1つが上位レベルのキャッシュにおいて割り当てられたどうかを示す。キャストアウトロジック回路は、複数の第1キャッシュラインからの置換のために選択された第1キャッシュラインが、選択された第1キャッシュラインに関連する割り当てビットに基づいた上位レベルキャッシュにおけるキャッシュラインで過多のキャッシュラインかどうかを決定するように構成される。上位レベルキャッシュへ選択された第1キャッシュラインのキャストアウトは、選択された第1キャッシュラインの割り当てビットに応じて防がれる。
【0010】
本発明の他の実施形態が、発明の様々な実施形態が示され、例として説明された次の詳細な記述から当業者に容易に明白になるであろうことは理解される。理解されるように、発明は、本発明からすべて外れることなく、他のおよび異なる実施形態があり、そのそれぞれ細部が様々の他の点において変更することできる。したがって、図面および詳細な説明は、限定的ではなく、本質的な例としてみなされることになっている。
【図面の簡単な説明】
【0011】
【図1】図1は、無線通信システムを示す。
【図2】図2は、キャストアウトが低減される典型的なプロセッサおよびメモリコンプレックスの機能的なブロック図である。
【図3】図3は、キャストアウトを低減するための工程を示すフロー図である。
【詳細な説明】
【0012】
添付された図面と関連して下記に説明された詳細な説明は、本発明の様々な典型的な実施形態の説明として意図され、本発明が実施されることがある実施形態のみを表すことを意図していない。詳細な説明は、本発明の理解を提供する目的で特定の詳細を含む。しかしながら、当業者にとって、本発明がこれらの特定の詳細なしで実施されることがあることは明白になるであろう。ある場合において、よく知られている構成および要素は、本発明の概念を不明瞭にすることを防ぐためにブロック図の形式で示される。
【0013】
図1は、発明の実施形態が有利に用いられることがある典型的な無線通信システム100を示す。例として、図1は、3つのリモートユニット120、130ならびに150、および、2つの基地局140を示す。共通の無線通信システムがより多くのリモートユニットおよび基地局を有することがあることが認識されるであろう。リモートユニット120、130および150は、コンポーネント125A、125Cおよび125Bとしてそれぞれ表されるハードウェアコンポーネント、ソフトウェアコンポーネントまたは両方を含む、それはさらに下記に述べられるような発明を具体化するのに適している。図1は、基地局140からリモートユニット120、130および150への順方向リンクシグナル180、および、リモートユニット120、130および150から基地局140への逆方向リンクシグナル190を示す。
【0014】
図1において、リモートユニット120は携帯電話として示され、リモートユニット130はポータブルコンピュータとして示され、リモートユニット150は無線ローカルループ(wireless local loop)システムにおける固定されたロケーションリモート(fixed location remote)ユニットとして示される。例として、リモートユニットは、一方で、個人用データアシスタント(personal data assistant)、またはメータ読み取り機器のような固定されたロケーションデータ(location data)ユニットのような携帯電話、ページャ、ウォーキートーキ(walkie talkies)、ハンドヘルド個人用通信システム(handheld personal communication systems)(PCS)ユニット、ポータブルデータユニットであることがある。図1は、開示の教えによってリモートユニットを示すが、開示はこれらの典型的に示されたユニットに限定されていない。発明の実施形態は、レベル1キャッシュおよびレベル2キャッシュのようなメモリ階層の少なくとも2つのレベルを備えたプロセッサを有する任意の装置で適切に実施されることがある。
【0015】
図2は、キャストアウトが低減される典型的なプロセッサおよびメモリコンプレックス200の機能的なブロック図である。典型的なプロセッサおよびメモリコンプレックス200は、プロセッサ202、L1キャッシュラインアレイ204およびL1キャッシュコントロールユニット206を備えたレベル1のキャッシュ(L1キャッシュ)203、包含的レベル2キャッシュ(L2キャッシュ)208、およびシステムメモリ210を含む。L1キャッシュコントロールユニット206は、セットアソシエイティブ(set associative)キャッシュまたは完全アソシエイティブ(fully associative)キャッシュのような様々なタイプのキャッシュにおいて使用されることがあるように、タグのマッチングするためのキャストアウトロジック回路212およびレベル1コンテントアドレス指定可能メモリ(content addressable memory)(L1 CAM)を含む。プロセッサコンプレックスに接続されることがある周辺装置は、説明の明瞭さのために示されていない。典型的なプロセッサおよびメモリコンプレックス200は、キャッシュ203ならびに208およびシステムメモリ210に記憶されたプログラムコードを実行するためのコンポーネント125A−Cにおいて発明の様々な実施形態において適切に実施されることがある。
【0016】
L1キャッシュラインアレイ204は、キャッシュライン215−217のような複数のラインを含むことがある。1つの実施形態において、L1キャッシュ203は、各ラインが複数のデータユニットから構成されたデータキャッシュである。他の実施形態において、L1キャッシュ203は、各ラインが複数の命令から構成された命令キャッシュである。さらなる実施形態において、L1キャッシュ203は、各ラインが複数の命令またはデータユニットから構成されたユニファイド(unified)キャッシュである。例えば、各ラインは、インスタンス化(instantiated)されたキャッシュの実施形態に適切である複数の要素(U0、U1、…、U7)218−225のそれぞれから構成されている。各ラインと関連するのは、さらに下記で詳しく説明されるように、タグ226、ダーティビット(D)228、力置換キャストアウトビット(force replacement castout)(FRC)230である。キャッシュライン215−217は、ラインアドレス231−233のそれぞれにおけるL1キャッシュラインアレイ204で存在する。L1キャッシコントロールユニット206は、キャッシュラインにアクセスするためにI/DAインターフェース235で受信された命令アドレスまたはデータアドレス(I/DA)234に応答するアドレスコントロールロジックを含む。I/DA234は、タグ236、ラインアドレスフィールド(line address field)238、命令/データ「U」フィールド240、およびバイト「B」フィールド242によって構成されることがある。
【0017】
典型的なプロセッサおよびメモリコンプレックス200において命令またはデータユニットをフェッチするために、プロセッサ202は、フェッチされる望ましい命令/データの命令/データアドレス(I/DA)234を生成し、フェッチアドレスをL1キャッシュコントロールユニット206へと送信する。受信されたI/DA234に基づいて、L1キャッシュコントロールユニット206は、命令またはデータがL1キャッシュラインアレイ204において存在するかどうかをチュックする。このチェックは、例えば、I/DA234によって選択されたライン215と関連したマッチングするタグをチェックする比較ロジックの使用を通じて、遂行される。命令またはデータが存在する場合、マッチまたはヒットが生じ、L1キャッシュコントロールユニット206はL1キャッシュ203において命令またはデータが存在することを示す。命令またはデータが存在しない場合、マッチまたはミスが見つからなく、L1キャッシュコントロールユニット206はL1キャッシュ203において命令またはデータが存在しないというミス指示を提供する。
【0018】
命令またはデータが存在する場合、命令/データフェッチアドレスにおける命令またはデータは、L1キャッシュラインアレイ204から選択される。その後、命令またはデータは、命令/データアウトバス(instruction/data out bus)246でプロセッサ202に送信される。
【0019】
命令/データがキャッシュにおいて存在しない場合、ミス情報はミスが生じたことを示すミスシグナル248によってL2キャッシュ208に提供される。L1キャッシュ203においてミスを発見する際に、L2キャッシュ208からの望ましい命令/データをフェッチする試みがなされる。L2キャッシュ208において望ましい命令/データが存在する場合、それはメモリバスインターフェース(memory bus interface)250で提供される。L2キャッシュ208において望ましい命令/データが存在しない場合、それはシステムメモリ210からフェッチされる。
【0020】
L2キャッシュ208からの力置換キャストアウト(force replacement castout)(FRC)シグナル254は、メモリバスインターフェース250で送信された命令/データとともに下位L1キャッシュ203に送信される。FRCシグナル254は、上位レベルL2キャッシュ208におけるヒットによって供給された命令/データが得られたどうかを示す。例えば、「0」状態のFRCシグナル254は、望ましい命令/データがL2キャッシュ208から供給されたことを示す。「1」状態のFRCシグナル254は、望ましい命令/データがシステムメモリ210からのように、L2キャッシュ208の上の他のレベルのメモリから供給されたことを示す。FRCシグナル254は、例えば、ライン216−217のような、適切なキャッシュラインと関連したタグに沿ってFRCビット256−258としてL1キャッシュ203において記憶される。要求されたラインがL2キャッシュ208およびL1キャッシュ203におけるミスであるとき、L1キャッシュ203がL2キャッシュ208の上の次のレベルのメモリによって供給されるのに対して、L2キャッシュ208はミスのときにおけるラインに割り当てられない。
【0021】
下位レベルキャッシュがラインを置換しなければならないとき、ラインは下位レベルのキャッシュにおけるラインとともに記憶された情報に応答して次のレベルのキャッシュにおいて割り当てられることがある。例えば、「1」状態のダーティビット259によって示されるように、L1キャッシュ203のような下位レベルのキャッシュがダーティ指示とともにキャッシュライン215のような置換されるラインを選択する場合、キャストアウトロジック回路212は、キャッシュライン215が次のレベルのメモリ階層に割り当てられるように決定をする。「0」状態のダーティビット260を備えたキャッシュライン216のようにダーティでなくキャッシュラインが置換されるために選択され、アクティブ、例えば、「1」状態に設定された関連したFRCビットを有している場合、キャッシュライン216は、さらに次のレベルのメモリ階層に割り当てられる。FRCビット256がそのディレクトリにおいてラインが見つからなかった次のレベルのメモリ階層によって提供されたFRCシグナル254指示に応じてアクティブに設定される。「0」状態においてそのダーティビット261を備えたキャッシュライン217のように、置換するために選択されたキャッシュラインがダーティでなく、アクティブ、例えば、「0」状態に設定された関連するFRCビット258を有している場合、キャッシュライン217は、次のレベルのメモリ階層に割り当てられない。キャストアウトは、ラインがダーティでなく、FRCビット258がその非アクティブ状態によって、このキャッシュライン217が次のレベルのメモリ階層に存在すると示すため要求されない。つまり、上位レベルキャッシュは、ダーティビットが設定、または、FRCビットが設定されるとき、下位レベルにおける置換されたキャッシュラインに応答してキャッシュラインを割り当てる。FRCビットのそのような使用を通じて、過多のキャストアウトは、上位レベルのメモリ階層への不必要なアクセスを防ぐことによって抑えられる、その結果、電力およびアクセスサイクルを蓄える。
【0022】
図3は、キャストアウトを低減するためのプロセス300を示すフロー図である。プロセス300において、メモリレベルは、インデックス(X)、(X+1)または(X+2)によって示される、ここで、例えば、X=1でL1,L2およびL3メモリレベルが示されることがある。さらに、プロセス300のブロックの説明は、図2における機能的な要素の参照番号を含む。
【0023】
プロセス300は、ブロック302において命令またはデータユニットをフェッチするプロセッサ202のようなプロセッサで始まる。決定ブロック304において、要求された命令/データがL1キャッシュ203のようなL(X)キャッシュに位置することができるかどうか決定される。命令/データが位置することができる場合、要求された命令/データがブロック306でL(X)キャッシュからフェッチされ、命令/データがブロック308でプロセッサに戻る。
【0024】
命令/データがL(X)キャッシュに位置することができない場合、ミス指示が生成され、ブロック310において要求された命令/データがL2キャッシュ208のようにL(X+1)キャッシュにおいて位置することができるかどうかを判断する。命令/データが位置することができる場合、要求された命令/データがブロック316でL(X+1)キャッシュからフェッチされる。ブロック318において、FRCビット258のような力置換キャストアウト(FRC)は、L1キャッシュ203がL2キャッシュ208にこの命令/データを送信することを防ぐために、L1キャッシュ203のキャッシュライン217に関連するようなタグラインで「0」状態に設定される。
【0025】
ブロック310に戻って、命令/データがL(X+1)キャッシュにおいて位置することができない場合、ミス指示が生成される。ブロック312において、要求された命令/データは、プロセッサおよびメモリコンプレックス200のL3キャッシュまたはシステムメモリ210のように、L(X+2)レベル以上のメモリ階層のレベルからフェッチされる。ブロック314において、FRCビット、例えば、FRCビット256は、「1」状態に設定され、キャッシュライン216のように、選択されたラインに関連したタグとともに記憶される。
【0026】
決定ブロック320において、L1キャッシュ203のように、L(X)キャッシュにおいてラインが置換されるべきかどうか決定される。L(X)においてラインが置換されるべきことが決定した場合、それはさらに決定ブロック322において、「1」状態のダーティビットによって指示されるように、選択ライン、ビクティムラインがダーティかどうか決定される。選択されたビクティムラインがダーティである場合、ビクティムラインは、L2キャッシュ208のように、L(X+1)においてブロック324で割り当てられる。ダーティビット260および261によって指示されるように、選択されたビクティムラインがダーティでない場合、FRCビットは、決定ブロック326においてアクティブに設定されているかどうか決定するためにチェックされる。FRCビットのケースのように、決定ブロック326においてFRCビットがアクティブであると決定された場合、ビクティムラインは、L2キャッシュ208のように、L(X+1)キャッシュにおけるブロック324で割り当てられる。
【0027】
決定ブロック320においてラインが置換されるべきでないと決定された場合、または、決定ブロック326において「0」状態のように、FRCビットが非アクティブであると決定された場合、FRCビットのケースであるように、L1キャッシュ203のように、要求された命令/データがL(X)キャッシュにおいてブロック328で割り当てられる。要求された命令/データは、さらに、ブロック330においてプロセッサ202のような要求プロセッサに戻る。そのような方法において、L(X+1)キャッシュへの過多のキャストアウトが防がれ、それによって電力を蓄え、メモリ階層においてキャッシュアクセス帯域幅が改善する。
【0028】
本明細書に開示された実施形態と関連して説明された様々な例となるロジカルブロック、モジュール、回路、要素、および/または構成は、汎用プロセッサ(general purpose processor)、デジタルシグナルプロセッサ(digital signal processor)(DSP)、特定用途向け集積回路(application specific integrated circuit)(ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array)(FPGA)または他のプログラミング可能なロジック構成要素、ディスクリートゲート(discrete gate)またはトランジスタロジック、ディスクリートハードウェア(discrete hardware)構成要素、または、本明細書で説明された機能を実行するように設計されたそれらの任意の組み合わせ、とともに実装または実行されることがある。汎用プロセッサは、マイクロプロセッサであることがあるが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または、定常マシンであることがある。プロセッサは、計算デバイスの組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPのコアと接続された1つ以上のマイクロプロセッサ、または他の任意のそのような構成として実施されることもある。
【0029】
本明細書に開示された実施形態と関連して説明された方法は、ハードウェア、プロセッサによって実行されたソフトウェアモジュール、または2つの組み合わせに直接実施されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または、当業者において知られている記憶媒体の形式に存在してもよい。記憶媒体は、記憶媒体からプロセッサが情報を読み込み、記憶媒体に情報を書き込むことができるようなプロセッサにつながれることがある。代替として、記憶装置は、プロセッサと一体的であることがある。
【0030】
発明が、命令キャッシュ、データキャッシュ、および他のタイプのキャッシュについての実施形態の例のコンテキストに示される一方で、上述した説明および下記に続く請求項と一致する通常の当業者によって様々な広いインプリメンテーションが使用されることが認識されるであろう。

【特許請求の範囲】
【請求項1】
置換されたキャッシュラインの割り当てを低減するためのトラッキング方法であって、
下位レベルキャッシュにおいて置換されるべきラインを選択することと、
前記選択ラインが上位レベルキャッシュに存在すると示す前記選択されたラインと関連する情報を識別することと、
前記識別された情報に基づいて前記上位レベルキャッシュにおいて前記選択されたラインの割り当てを防ぐことと、
を備えたトラキング方法。
【請求項2】
前記下位レベルキャッシュにおけるミスに応じて、ミスによって前記下位レベルキャッシュにおいて割り当てられたキャッシュラインのタグを有する割り当て情報、前記キャッシュラインが前記上位レベルキャッシュにおいて割り当てられたかどうかを示す割り当て情報を記憶することと、
をさらに備えた請求項1のトラッキング方法。
【請求項3】
前記選択されたラインをダーティとして識別することと、
前記上位レベルキャッシュにおいて前記選択されたラインを割り当てることと、
をさらに備えた請求項1のトラッキング方法。
【請求項4】
前記選択されたラインを表す前記選択されたラインと関連する前記識別された情報が前記上位レベルキャッシュにおいて存在しないと決定することと、
前記上位レベルキャッシュにおける前記選択されたラインを割り当てることと、
をさらに備えた請求項1のトラッキング方法。
【請求項5】
前記選択されたラインをダーティでないとして識別することと、をさらに備えた請求項1のトラッキング方法。
【請求項6】
前記上位レベルキャッシュからデータユニットをフェッチすることと、
前記割り当て指示を前記上位レベルキャッシュにおいて前記データユニットが存在することを表す状態に設定することと、
をさらに備えた請求項2のトラッキング方法。
【請求項7】
前記上位レベルキャッシュの上の前記メモリ階層のレベルからデータユニットをフェッチすることと、
前記割り当てられた指示を前記上位レベルキャッシュにおいて前記データユニットが存在しないと表す状態に設定することと、
をさらに備えた請求項2のトラッキング方法。
【請求項8】
前記上位レベルキャッシュは、ビクティムキャッシュとして動作する請求項1のトラッキング方法。
【請求項9】
キャストアウトを低減する方法であって、
レベルXキャッシュにおけるミスに応じて、前記ミスに関連するキャッシュラインのタグにおける割り当て情報、レベルX+1キャッシュにおいて前記キャッシュラインが割り当てられたかどうか識別する割り当て情報を、レベルXキャッシュにおいて記憶することと、
前記レベルXキャッシュにおいて置換されるべきラインを選択することと、
前記レベルX+1キャッシュにおいて前記キャッシュラインが割り当てられたか示す前記選択されたラインの前記割り当てられた情報に応じて、レベルXキャッシュからレベルX+1キャッシュへの前記選択されたラインのキャストアウトを防ぐことと、
を備えたトラッキング方法。
【請求項10】
前記選択されたラインをダーティとして識別することと、
前記レベルX+1キャッシュにおいて前記選択されたラインを割り当てることと、
をさらに備えた請求項9の方法。
【請求項11】
前記選択されたラインを示す前記選択されたラインと関連する前記割り当て情報が前記レベルX+1キャッシュにおいて存在しないことを決定することと、
前記レベルX+1キャッシュにおいて前記選択されたラインを割り当てることと、
をさらに備えた請求項9の方法。
【請求項12】
前記選択ラインをダーティでないとして識別することと、
をさらに備えた請求項9の方法。
【請求項13】
前記レベルX+1キャッシュからデータユニットをフェッチすることと、
前記割り当て情報を前記データユニットが前記レベルX+1キャッシュにおいて存在することを表す状態に設定することと、
をさらに備えた請求項9の方法。
【請求項14】
前記レベルX+1キャッシュの上のメモリ階層のレベルからデータユニットをフェッチすることと、
前記割り当て情報を前記データユニットが前記レベルX+1キャッシュに存在しないことを表す状態に設定することと、
をさらに備えた請求項9の方法。
【請求項15】
前記レベルXキャッシュは、レベルXの命令キャッシュである請求項9の方法。
【請求項16】
複数のキャッシュレベルを有するメモリシステムであって、
複数の第1キャッシュラインのそれぞれを割り当てビットで記憶するように構成された下位レベルキャッシュと、割り当てビットのそれぞれは前記割り当てビットと関連する前記第1キャッシュラインが上位レベルキャッシュにおいて割り当てられたかどうかを示す、
前記複数の第1キャッシュラインから置換するために選択された第1キャッシュラインが、前記選択された第1キャッシュラインと関連する前記割り当てビットに基づいて前記上位レベルキャッシュにおいてキャッシュラインで過多の(redundant)キャッシュラインであるかどうかを決定するように、および、前記選択された第1キャッシュラインの前記割り当てビットに応じて前記選択された第1キャッシュラインの前記上位レベルキャッシュへのキャストアウトを防ぐように、構成されたキャストアウトロジック回路と、
を備えたメモリシステム。
【請求項17】
前記上位レベルキャッシュは、
複数の第2キャッシュラインと、
前記下位レベルキャッシュにおけるミスに応じ、前記ミスに関連した前記キャッシュラインが前記上位レベルキャッシュにおいて割り当てられたかどうかに基づく割り当てシグナルを生成するように構成されたロジック回路と、前記割り当てシグナルは前記ミスがキャッシュラインと関連すると記憶のために前記下位レベルキャッシュと通信する、
を備えた請求項16のメモリシステム。
【請求項18】
前記キャストロジック回路は、前記割り当てビットを前記割り当てシグナルの前記状態に設定することをさらに備えた請求項17のメモリシステム。
【請求項19】
前記下位レベルキャッシュは、データキャッシュである請求項16のメモリシステム。
【請求項20】
前記上位レベルキャッシュは、ユニファイドキャッシュである請求項17のメモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2013−69322(P2013−69322A)
【公開日】平成25年4月18日(2013.4.18)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−253468(P2012−253468)
【出願日】平成24年11月19日(2012.11.19)
【分割の表示】特願2009−548426(P2009−548426)の分割
【原出願日】平成20年1月30日(2008.1.30)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】