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

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

Info

Publication number
JP2010518487A
JP2010518487A JP2009548426A JP2009548426A JP2010518487A JP 2010518487 A JP2010518487 A JP 2010518487A JP 2009548426 A JP2009548426 A JP 2009548426A JP 2009548426 A JP2009548426 A JP 2009548426A JP 2010518487 A JP2010518487 A JP 2010518487A
Authority
JP
Japan
Prior art keywords
cache
level
line
allocation
selected line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009548426A
Other languages
English (en)
Inventor
スピーアー、トマス・フィリップ
ディーフェンダーファー、ジェームズ・ノリス
サートリウス、トマス・アンドリュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010518487A publication Critical patent/JP2010518487A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

本開示は、一般に、キャッシュメモリの分野に関し、より明確には、命令、データおよびビクティムキャッシュを有するメモリシステムに関する。
携帯電話、ラップトップコンピュータ、携帯情報端末(personal digital assistant)(PDA)などのような多くのポータブル製品は、通信およびマルチメディアプログラムのようなプログラムを実行するプロセッサを利用する。そのような製品の処理システムは、命令およびデータを記憶するためのプロセッサおよびメモリコンプレックス(memory complex)を含む。大容量メインメモリは、一般的に、プロセッササイクル時間と比較して、遅いアクセス時間を有している。結果として、メモリコンプレックスは、従来、プロセッサと最も近くに位置する最も高いパフォーマンスおよび最も低い容量キャッシュを有するキャッシュメモリの容量およびパフォーマンスに基づいた階層に構成されている。例えば、レベル1命令キャッシュおよびレベル1データキャッシュは、一般に、プロセッサに直接アタッチ(attach)されるであろう。そしてレベル2ユニファイキャッシュ(unified cache)は、レベル1(L1)命令およびデータキャッシュに接続される。さらに、システムメモリは、レベル2(L2)ユニファイキャッシュに接続される。レベル1命令キャッシュは、一般に、プロセッサの速度で動作し、レベル2ユニファイキャッシュは、レベル1キャッシュより遅く動作するがシステムメモリより速いアクセスタイムを有している。他のメモリ構成は、例えば、レベル1およびレベル2キャッシュに加えてレベル3キャッシュを有するメモリ階層に多い。他のメモリ構成は、レベル1キャッシュおよびシステムメモリのみを使用することがある。
メモリ構成は、包含的キャッシュ(inclusive cache)、狭義包含的キャッシュ(strictly inclusive cache)、排他的キャッシュ(exclusive cache)、またはこれらのキャッシュタイプの組み合わせとして動作するキャッシュの階層から構成されることがある。ここの定義によって、互いに排他的な任意の2つのレベルのキャッシュは、同じキャッシュラインを含むことができない。互いに包含的な任意の2つのレベルのキャッシュは、同じキャッシュラインを含むことができる。互いに狭義に包含的な任意の2つのレベルのキャッシュは、より大きなキャッシュ、通常、上位レベルのキャッシュがより小さなキャッシュ、通常、下位レベルのキャッシュにおける全てのラインを含まなければならないことを意味する。3つ以上のマルチレベルキャッシュメモリ構成において、任意の2つ以上のキャッシュレベルは、排他的のように1つのタイプのキャッシュとして作動することがあり、残りのキャッシュレベルは、包含的のように1つの他のタイプのキャッシュとして動作することがある。
命令キャッシュは、一般に、命令キャッシュにおいて単一のアドレスに位置する複数の命令をサポートするように構築される。データキャッシュは、一般に、データキャッシュにおいて単一のアドレスに位置する複数のデータユニットをサポートするために構築される、ここでデータユニットはプロセッサに依存するバイトの可変数であることがある。この複数の命令およびデータユニットは、一般に、キャッシュラインまたは単にラインと呼ばれる。例えば、プロセッサは、L1キャッシュからの命令またはデータユニットをフェッチし、命令またはデータユニットはキャッシュにおいて存在する場合、「ヒット(hit)」が生じ、命令またはデータユニットがプロセッサに提供される。命令またはデータユニットがL1キャッシュにおいて存在しない場合、「ミス(miss)」が生じる。ミスは、キャッシュラインにおいていかなる場所の命令またはデータユニットアクセスに生じることがある。ミスが生じたとき、キャッシュにおけるラインは、ミスされた命令を含む新しいラインと置換される。置換手段は、どのキャッシュラインと置換するか決定するために使用される。例えば、最も使用されていないキャッシュラインを選択するかビクティムすることは、最低使用頻度(least recently used)(LRU)手段を表す。置換するように選択されたキャッシュラインは、ビクティムキャッシュラインである。
キャッシュラインは、さらに、有効ビットおよびダーティ(dirty)ビットのような多数のステータス(status)ビットと関連されることがある。有効ビットは、命令またはデータがキャッシュラインにおいて存在するか示す。デーティビットは、キャッシュラインへの変更が生じたかどうかを示す。ライトバック(write-back)キャッシュにおいて、ダーティビットは、キャッシュラインが置換されることになっているとき、メモリシステム階層における次のより上位メモリレベルに変更がライトバックされる必要があるか示す。
ビクティムキャッシュは、レベル1キャッシュのようなキャッシュに接続された、または、隣接する上位レベルキャッシュに一体化された別個のバッファであることがある。ビクティムキャッシュラインは、ビクティムラインが立ち退かせられる直後に必要であること、および、ビクティムキャッシュからの要求があるときのビクティムランをアクセスすることが上位レベルのメモリ階層からのビクティムラインをアクセスするより早いという想定のもとにビクティムキャッシュにおいて割り当てられることがある。ビクティムキャッシュが隣接する上位レベルのキャッシュにおいて一体化されたと同時に、ラインが下位レベルキャッシュから分離されたとき、および、上位レベルキャッシュに割り当てられたときにキャストアウトが生じ、これにより、下位レベルキャッシュのビクティムをキャッシュする。下位レベルキャッシュは、すべての立ち退かせたライン、ダーティおよび非ダーティ(non-dirty)の両方を上位レベルのキャッシュに送信する。ある場合において、ビクティムラインは、すでにビクティムキャッシュにおいて存在することがあり、すでに存在するラインを再書き込むことは電力を消費し、帯域幅をビクティムキャッシュに低減する。
本開示は、メモリシステムにおける電力要求を低減することがポータブルアプリケーションにとって、および、一般に、処理システムにおける電力要求を低減することにとって重要であることを認識させる。そのような目的に、発明の実施形態は、置換されたキャッシュラインの割り当てを低減するためにトラッキング方法をアドレスする。ラインは、下位レベルキャッシュにおいて置換されるために選択されている。選択されたラインが上位レベルキャッシュに存在することを示す選択されたラインに関連した情報は、識別される。上位レベルキャッシュにおける選択されたラインの割り当ては、識別された情報に基づいて防がれる。選択されたラインの割り当てを防ぐことは、割り当てに関連するであろう電力を蓄える。
発明の他の実施形態は、キャストアウトを低減する方法をアドレスする。レベルXキャッシュにおけるミスに応じて、割り当て情報は、ミスに関連したキャッシュラインのタグのレベルXキャッシュにおいて保管される。割り当て情報は、キャッシュラインがレベルX+1キャッシュにおいて割り当てられていたかどうかを示す。ラインは、レベルXキャッシュにおいて置換されるために選択される。レベルXキャッシュからレベルX+1キャッシュまでの選択されたキャストアウトは、レベルX+1キャッシュにおいてキャッシュラインが割り当てられたことを示す選択されたラインの割り当て情報に応じて防がれる。
発明の他の実施形態は、複数のキャッシュレベルを有するメモリシステムをアドレスする。下位レベルキャッシュは、複数の第1キャッシュラインのそれぞれを割り当てビットで記憶するように構成される。複数の第1キャッシュラインのうち1つに関連した割り当てビットは、複数の第1キャッシュラインのうち1つが上位レベルのキャッシュにおいて割り当てられたどうかを示す。キャストアウトロジック回路は、複数の第1キャッシュラインからの置換のために選択された第1キャッシュラインが、選択された第1キャッシュラインに関連する割り当てビットに基づいた上位レベルキャッシュにおけるキャッシュラインで過多のキャッシュラインかどうかを決定するように構成される。上位レベルキャッシュへ選択された第1キャッシュラインのキャストアウトは、選択された第1キャッシュラインの割り当てビットに応じて防がれる。
本発明の他の実施形態が、発明の様々な実施形態が示され、例として説明された次の詳細な記述から当業者に容易に明白になるであろうことは理解される。理解されるように、発明は、本発明からすべて外れることなく、他のおよび異なる実施形態があり、そのそれぞれ細部が様々の他の点において変更することできる。したがって、図面および詳細な説明は、限定的ではなく、本質的な例としてみなされることになっている。
図1は、無線通信システムを示す。 図2は、キャストアウトが低減される典型的なプロセッサおよびメモリコンプレックスの機能的なブロック図である。 図3は、キャストアウトを低減するための工程を示すフロー図である。
添付された図面と関連して下記に説明された詳細な説明は、本発明の様々な典型的な実施形態の説明として意図され、本発明が実施されることがある実施形態のみを表すことを意図していない。詳細な説明は、本発明の理解を提供する目的で特定の詳細を含む。しかしながら、当業者にとって、本発明がこれらの特定の詳細なしで実施されることがあることは明白になるであろう。ある場合において、よく知られている構成および要素は、本発明の概念を不明瞭にすることを防ぐためにブロック図の形式で示される。
図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を示す。
図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つのレベルを備えたプロセッサを有する任意の装置で適切に実施されることがある。
図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において発明の様々な実施形態において適切に実施されることがある。
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によって構成されることがある。
典型的なプロセッサおよびメモリコンプレックス200において命令またはデータユニットをフェッチするために、プロセッサ202は、フェッチされる望ましい命令/データの命令/データアドレス(I/DA)234を生成し、フェッチアドレスをL1キャッシュコントロールユニット206へと送信する。受信されたI/DA234に基づいて、L1キャッシュコントロールユニット206は、命令またはデータがL1キャッシュラインアレイ204において存在するかどうかをチュックする。このチェックは、例えば、I/DA234によって選択されたライン215と関連したマッチングするタグをチェックする比較ロジックの使用を通じて、遂行される。命令またはデータが存在する場合、マッチまたはヒットが生じ、L1キャッシュコントロールユニット206はL1キャッシュ203において命令またはデータが存在することを示す。命令またはデータが存在しない場合、マッチまたはミスが見つからなく、L1キャッシュコントロールユニット206はL1キャッシュ203において命令またはデータが存在しないというミス指示を提供する。
命令またはデータが存在する場合、命令/データフェッチアドレスにおける命令またはデータは、L1キャッシュラインアレイ204から選択される。その後、命令またはデータは、命令/データアウトバス(instruction/data out bus)246でプロセッサ202に送信される。
命令/データがキャッシュにおいて存在しない場合、ミス情報はミスが生じたことを示すミスシグナル248によってL2キャッシュ208に提供される。L1キャッシュ203においてミスを発見する際に、L2キャッシュ208からの望ましい命令/データをフェッチする試みがなされる。L2キャッシュ208において望ましい命令/データが存在する場合、それはメモリバスインターフェース(memory bus interface)250で提供される。L2キャッシュ208において望ましい命令/データが存在しない場合、それはシステムメモリ210からフェッチされる。
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はミスのときにおけるラインに割り当てられない。
下位レベルキャッシュがラインを置換しなければならないとき、ラインは下位レベルのキャッシュにおけるラインとともに記憶された情報に応答して次のレベルのキャッシュにおいて割り当てられることがある。例えば、「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ビットのそのような使用を通じて、過多のキャストアウトは、上位レベルのメモリ階層への不必要なアクセスを防ぐことによって抑えられる、その結果、電力およびアクセスサイクルを蓄える。
図3は、キャストアウトを低減するためのプロセス300を示すフロー図である。プロセス300において、メモリレベルは、インデックス(X)、(X+1)または(X+2)によって示される、ここで、例えば、X=1でL1,L2およびL3メモリレベルが示されることがある。さらに、プロセス300のブロックの説明は、図2における機能的な要素の参照番号を含む。
プロセス300は、ブロック302において命令またはデータユニットをフェッチするプロセッサ202のようなプロセッサで始まる。決定ブロック304において、要求された命令/データがL1キャッシュ203のようなL(X)キャッシュに位置することができるかどうか決定される。命令/データが位置することができる場合、要求された命令/データがブロック306でL(X)キャッシュからフェッチされ、命令/データがブロック308でプロセッサに戻る。
命令/データがL(X)キャッシュに位置することができない場合、ミス指示が生成され、ブロック310において要求された命令/データがL2キャッシュ208のようにL(X+1)キャッシュにおいて位置することができるかどうかを判断する。命令/データが位置することができる場合、要求された命令/データがブロック316でL(X+1)キャッシュからフェッチされる。ブロック318において、FRCビット258のような力置換キャストアウト(FRC)は、L1キャッシュ203がL2キャッシュ208にこの命令/データを送信することを防ぐために、L1キャッシュ203のキャッシュライン217に関連するようなタグラインで「0」状態に設定される。
ブロック310に戻って、命令/データがL(X+1)キャッシュにおいて位置することができない場合、ミス指示が生成される。ブロック312において、要求された命令/データは、プロセッサおよびメモリコンプレックス200のL3キャッシュまたはシステムメモリ210のように、L(X+2)レベル以上のメモリ階層のレベルからフェッチされる。ブロック314において、FRCビット、例えば、FRCビット256は、「1」
状態に設定され、キャッシュライン216のように、選択されたラインに関連したタグとともに記憶される。
決定ブロック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で割り当てられる。
決定ブロック320においてラインが置換されるべきでないと決定された場合、または、決定ブロック326において「0」状態のように、FRCビットが非アクティブであると決定された場合、FRCビットのケースであるように、L1キャッシュ203のように、要求された命令/データがL(X)キャッシュにおいてブロック328で割り当てられる。要求された命令/データは、さらに、ブロック330においてプロセッサ202のような要求プロセッサに戻る。そのような方法において、L(X+1)キャッシュへの過多のキャストアウトが防がれ、それによって電力を蓄え、メモリ階層においてキャッシュアクセス帯域幅が改善する。
本明細書に開示された実施形態と関連して説明された様々な例となるロジカルブロック、モジュール、回路、要素、および/または構成は、汎用プロセッサ(general purpose processor)、デジタルシグナルプロセッサ(digital signal processor)(DSP)、特定用途向け集積回路(application specific integrated circuit)(ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array)(FPGA)または他のプログラミング可能なロジック構成要素、ディスクリートゲート(discrete gate)またはトランジスタロジック、ディスクリートハードウェア(discrete hardware)構成要素、または、本明細書で説明された機能を実行するように設計されたそれらの任意の組み合わせ、とともに実装または実行されることがある。汎用プロセッサは、マイクロプロセッサであることがあるが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または、定常マシンであることがある。プロセッサは、計算デバイスの組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPのコアと接続された1つ以上のマイクロプロセッサ、または他の任意のそのような構成として実施されることもある。
本明細書に開示された実施形態と関連して説明された方法は、ハードウェア、プロセッサによって実行されたソフトウェアモジュール、または2つの組み合わせに直接実施されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または、当業者において知られている記憶媒体の形式に存在してもよい。記憶媒体は、記憶媒体からプロセッサが情報を読み込み、記憶媒体に情報を書き込むことができるようなプロセッサにつながれることがある。代替として、記憶装置は、プロセッサと一体的であることがある。
発明が、命令キャッシュ、データキャッシュ、および他のタイプのキャッシュについての実施形態の例のコンテキストに示される一方で、上述した説明および下記に続く請求項と一致する通常の当業者によって様々な広いインプリメンテーションが使用されることが認識されるであろう。

Claims (20)

  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キャッシュラインと関連する前記割り当てビットに基づいて前記上位レベルキャッシュにおいてキャッシュラインで過多のキャッシュラインであるかどうかを決定するように、および、前記選択された第1キャッシュラインの前記割り当てビットに応じて前記選択された第1キャッシュラインの前記上位レベルキャッシュへのキャストアウトを防ぐように、構成されたキャストアウトロジック回路と、
    を備えたメモリシステム。
  17. 前記上位レベルキャッシュは、
    複数の第2キャッシュラインと、
    前記下位レベルキャッシュにおけるミスに応じ、前記ミスに関連した前記キャッシュラインが前記上位レベルキャッシュにおいて割り当てられたかどうかに基づく割り当てシグナルを生成するように構成されたロジック回路と、前記割り当てシグナルは前記ミスがキャッシュラインと関連すると記憶のために前記下位レベルキャッシュと通信する、
    を備えた請求項16のメモリシステム。
  18. 前記キャストロジック回路は、前記割り当てビットを前記割り当てシグナルの前記状態に設定することをさらに備えた請求項17のメモリシステム。
  19. 前記下位レベルキャッシュは、データキャッシュである請求項16のメモリシステム。
  20. 前記上位レベルキャッシュは、ユニファイドキャッシュである請求項17のメモリシステム。
JP2009548426A 2008-01-30 2008-01-30 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法 Pending JP2010518487A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2008/052507 WO2008095025A1 (en) 2007-01-31 2008-01-30 Apparatus and methods to reduce castouts in a multi-level cache hierarchy
US11/669,245 US8078803B2 (en) 2008-01-30 2008-01-30 Apparatus and methods to reduce castouts in a multi-level cache hierarchy

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012253468A Division JP2013069322A (ja) 2007-01-31 2012-11-19 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法

Publications (1)

Publication Number Publication Date
JP2010518487A true JP2010518487A (ja) 2010-05-27

Family

ID=39512778

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2009548426A Pending JP2010518487A (ja) 2008-01-30 2008-01-30 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
JP2012253468A Pending JP2013069322A (ja) 2007-01-31 2012-11-19 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
JP2015006866A Expired - Fee Related JP6009589B2 (ja) 2007-01-31 2015-01-16 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
JP2016180526A Expired - Fee Related JP6392286B2 (ja) 2007-01-31 2016-09-15 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2012253468A Pending JP2013069322A (ja) 2007-01-31 2012-11-19 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
JP2015006866A Expired - Fee Related JP6009589B2 (ja) 2007-01-31 2015-01-16 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
JP2016180526A Expired - Fee Related JP6392286B2 (ja) 2007-01-31 2016-09-15 マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法

Country Status (10)

Country Link
US (2) US8078803B2 (ja)
EP (2) EP2118754B1 (ja)
JP (4) JP2010518487A (ja)
KR (1) KR101165132B1 (ja)
CN (2) CN101595462B (ja)
BR (1) BRPI0806865A2 (ja)
CA (1) CA2675046C (ja)
MX (1) MX2009008092A (ja)
RU (1) RU2438165C2 (ja)
WO (1) WO2008095025A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176880B2 (en) 2011-10-17 2015-11-03 Samsung Electronics Co., Ltd. Cache memory system for tile based rendering and caching method thereof

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518487A (ja) 2008-01-30 2010-05-27 クゥアルコム・インコーポレイテッド マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
JP2010113593A (ja) 2008-11-07 2010-05-20 Sony Corp 情報処理装置、情報処理方法及び情報処理プログラム
WO2010052799A1 (ja) * 2008-11-10 2010-05-14 富士通株式会社 情報処理装置及びメモリ制御装置
US20110202727A1 (en) * 2010-02-18 2011-08-18 Qualcomm Incorporated Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache
US9201794B2 (en) * 2011-05-20 2015-12-01 International Business Machines Corporation Dynamic hierarchical memory cache awareness within a storage system
US9021206B2 (en) 2011-08-25 2015-04-28 International Business Machines Corporation Use of cache statistics to ration cache hierarchy access
WO2014111984A1 (ja) 2013-01-17 2014-07-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびファイル管理方法
KR20150132099A (ko) * 2013-03-20 2015-11-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 서로 다른 계층 레벨의 메모리 노드를 가진 메모리 시스템에서의 데이터 캐싱
US9854052B2 (en) * 2013-09-27 2017-12-26 Sap Se Business object attachments and expiring URLs
JP2015088146A (ja) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
JP2015176245A (ja) 2014-03-13 2015-10-05 株式会社東芝 情報処理装置及びデータ構造
US10216640B2 (en) 2014-03-21 2019-02-26 Samsung Electronics Co., Ltd. Opportunistic cache injection of data into lower latency levels of the cache hierarchy
CN104932989B (zh) * 2014-03-21 2020-05-19 三星电子株式会社 数据到高速缓冲层次低延迟层级中的机会性高速缓冲注入
JP2016057763A (ja) 2014-09-08 2016-04-21 株式会社東芝 キャッシュ装置、及びプロセッサ
US9684602B2 (en) 2015-03-11 2017-06-20 Kabushiki Kaisha Toshiba Memory access control device, cache memory and semiconductor device
KR101697515B1 (ko) * 2015-12-15 2017-01-18 전남대학교산학협력단 캐시 라인의 태그 거리 상관관계를 이용한 캐시 교체 방법 및 임베디드 시스템
CN109074320B (zh) * 2017-03-08 2023-11-17 华为技术有限公司 一种缓存替换方法,装置和系统
JP7139719B2 (ja) * 2018-06-26 2022-09-21 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法
US11782919B2 (en) * 2021-08-19 2023-10-10 International Business Machines Corporation Using metadata presence information to determine when to access a higher-level metadata table

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737751A (en) 1996-03-26 1998-04-07 Intellectual Business Machines Corporation Cache memory management system having reduced reloads to a second level cache for enhanced memory performance in a data processing system
US5787478A (en) * 1997-03-05 1998-07-28 International Business Machines Corporation Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
US6374330B1 (en) 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6202129B1 (en) 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
TW451132B (en) * 1998-12-15 2001-08-21 Nippon Electric Co System and method for cache processing
US6564301B1 (en) * 1999-07-06 2003-05-13 Arm Limited Management of caches in a data processing apparatus
US6282615B1 (en) * 1999-11-09 2001-08-28 International Business Machines Corporation Multiprocessor system bus with a data-less castout mechanism
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US6941421B2 (en) * 2002-10-29 2005-09-06 International Business Machines Corporation Zero delay data cache effective address generation
JP2006155080A (ja) * 2004-11-26 2006-06-15 Fujitsu Ltd メモリ制御装置およびメモリ制御方法
US20060155934A1 (en) * 2005-01-11 2006-07-13 Ramakrishnan Rajamony System and method for reducing unnecessary cache operations
US7330941B2 (en) 2005-03-23 2008-02-12 Qualcomm Incorporated Global modified indicator to reduce power consumption on cache miss
DE102005015116A1 (de) 2005-04-01 2006-10-05 Webasto Ag Kraftfahrzeugheizung
JP2010518487A (ja) 2008-01-30 2010-05-27 クゥアルコム・インコーポレイテッド マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
US20110202727A1 (en) 2010-02-18 2011-08-18 Qualcomm Incorporated Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176880B2 (en) 2011-10-17 2015-11-03 Samsung Electronics Co., Ltd. Cache memory system for tile based rendering and caching method thereof

Also Published As

Publication number Publication date
BRPI0806865A2 (pt) 2014-04-29
EP2527987A1 (en) 2012-11-28
WO2008095025A1 (en) 2008-08-07
RU2009132554A (ru) 2011-03-10
JP2017033584A (ja) 2017-02-09
KR101165132B1 (ko) 2012-07-12
US20120059995A1 (en) 2012-03-08
CN101595462A (zh) 2009-12-02
CA2675046A1 (en) 2008-08-07
US8386716B2 (en) 2013-02-26
EP2118754A1 (en) 2009-11-18
CN102693187A (zh) 2012-09-26
US20080183967A1 (en) 2008-07-31
JP2013069322A (ja) 2013-04-18
CN102693187B (zh) 2016-03-30
CA2675046C (en) 2013-07-30
JP2015111435A (ja) 2015-06-18
CN101595462B (zh) 2012-04-25
US8078803B2 (en) 2011-12-13
EP2118754B1 (en) 2013-07-03
KR20090115799A (ko) 2009-11-06
JP6392286B2 (ja) 2018-09-19
RU2438165C2 (ru) 2011-12-27
MX2009008092A (es) 2009-08-12
JP6009589B2 (ja) 2016-10-19

Similar Documents

Publication Publication Date Title
JP6009589B2 (ja) マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
US8930625B2 (en) Weighted history allocation predictor algorithm in a hybrid cache
US9218286B2 (en) System cache with partial write valid states
KR101393933B1 (ko) 캐시 블록 코히어런스를 위한 시스템들, 방법들, 및 디바이스들
US7552288B2 (en) Selectively inclusive cache architecture
US8028129B2 (en) Dynamically re-classifying data in a shared cache
US8788757B2 (en) Dynamic inclusive policy in a hybrid cache hierarchy using hit rate
US8683136B2 (en) Apparatus and method for improving data prefetching efficiency using history based prefetching
US8843707B2 (en) Dynamic inclusive policy in a hybrid cache hierarchy using bandwidth
US20080320228A1 (en) Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache
US20140075125A1 (en) System cache with cache hint control
US9043570B2 (en) System cache with quota-based control
US7380068B2 (en) System and method for contention-based cache performance optimization
US20090024796A1 (en) High Performance Multilevel Cache Hierarchy
KR101689094B1 (ko) 스티키 제거 엔진을 구비한 시스템 캐시
US20110202727A1 (en) Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache
US20180052778A1 (en) Increase cache associativity using hot set detection
JP2024511768A (ja) Dramキャッシュタグプリフェッチャ用の方法及び装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120410

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120717