JP2017510902A - 無効化を伴う読取りを使用してキャッシュにおける帯域幅および電力を下げる方法および装置 - Google Patents

無効化を伴う読取りを使用してキャッシュにおける帯域幅および電力を下げる方法および装置 Download PDF

Info

Publication number
JP2017510902A
JP2017510902A JP2016561316A JP2016561316A JP2017510902A JP 2017510902 A JP2017510902 A JP 2017510902A JP 2016561316 A JP2016561316 A JP 2016561316A JP 2016561316 A JP2016561316 A JP 2016561316A JP 2017510902 A JP2017510902 A JP 2017510902A
Authority
JP
Japan
Prior art keywords
cache
cache line
writeback
line
memory
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.)
Ceased
Application number
JP2016561316A
Other languages
English (en)
Other versions
JP2017510902A5 (ja
Inventor
ジョージ・パトシララス
モイヌル・エイチ・カーン
パンカジ・チュウラシア
ボフスラヴ・ライチリック
フェン・ワン
アンワル・キュー・ロヒラー
スッバラオ・パラチャルラ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2017510902A publication Critical patent/JP2017510902A/ja
Publication of JP2017510902A5 publication Critical patent/JP2017510902A5/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

キャッシュに記憶されたエフェメラルデータは、必要とされるとき読み取られるが、電力および帯域幅を節約するためにシステムメモリに書き込まれない。一実施形態では、Read-No-Writeback命令に応答して、エフェメラルデータと関連するNo-Writebackビットがセットされる。No-Writebackビットがセットされているキャッシュライン中のデータは、システムメモリに書き戻されない。したがって、キャッシュラインを追い出すとき、キャッシュラインがNo-Writebackビットをセットされている場合、そのキャッシュライン中のデータは、システムメモリに書き戻されることなく廃棄される。

Description

実施形態は、電子システムにおけるキャッシュメモリに関する。
たとえば、セルフォンおよびタブレットなど、様々な家庭用電子デバイスの多くについては、システムメモリに記憶される必要のないいくつかのタイプのデータがキャッシュに存在する。そのようなデータは、エフェメラルデータ(ephemeral data)と呼ばれる場合がある。たとえば、モバイルフォンまたはタブレットのディスプレイにレンダリングされた画像を見る人が、画像を回転させたいと思う場合がある。多くの環境における画像回転に関して内部で生成されるデータは、システムメモリに記憶される必要がない。しかしながら、多くのデバイスは、キャッシュライン置換ポリシーを実行するとき、そのようなエフェメラルデータをシステムメモリに書き込む場合がある。エフェメラルデータの書込み動作が、電力およびメモリ帯域幅を不必要に消費する。
本発明の実施形態は、無効化を伴う読取り(read with invalidate)を使用してキャッシュにおける帯域幅および電力を下げるためのシステムおよび方法を対象とする。
一実施形態では、本方法は、アドレスを示すRead-No-Writeback命令をキャッシュにおいて受信するステップと、アドレスと関連するキャッシュラインが、キャッシュからキャッシュラインを追い出す(eviction)ときにメモリに書き込まれないことを示すために、キャッシュにおいてNo-Writebackビットをセットするステップとを含む。
別の実施形態では、キャッシュが、キャッシュラインと関連するデータを記憶するためのストレージであって、各キャッシュラインが、対応するNo-Writebackビットを有する、ストレージと、ストレージに結合されるコントローラであって、キャッシュラインを示すRead-No-Writeback命令を受信することに応答して、キャッシュラインがキャッシュからキャッシュラインを追い出すときにメモリに書き込まれないことを示すためにキャッシュラインに対応するNo-Writebackビットをセットする、コントローラとを含む。
別の実施形態では、システムが、メモリと、デバイスと、デバイスに結合されるキャッシュとを含み、キャッシュは、キャッシュに記憶されたキャッシュラインのアドレスを示す、デバイスからのRead-No-Writeback命令を受信し、キャッシュラインが対応するNo-Writebackビットを有するとき、キャッシュからキャッシュラインを追い出すときにキャッシュラインがメモリに書き込まれるべきではないことを示すためにNo-Writebackビットをセットする。
添付の図面は、本発明の実施形態の説明を助けるために提示されており、実施形態を限定するためではなく、実施形態を例示するためにのみ提供される。
一実施形態が適用されるシステムを示す図である。 一実施形態による方法を示す図である。 一実施形態による別の方法を示す図である。 一実施形態による別の方法を示す図である。 一実施形態による別の方法を示す図である。 一実施形態が適用できる通信ネットワークを示す図である。
本発明の態様は、本発明の特定の実施形態を対象とする以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替的な実施形態が考案される場合がある。加えて、本発明のよく知られている要素は、本発明の関連する詳細を不明瞭にしないように、詳細には説明されず、または省略される。
「本発明の実施形態」という用語は、本発明のすべての実施形態が議論される特徴、利点または動作モードを含むことを必要としない。
本明細書で使用する用語は、特定の実施形態について説明することのみを目的とするものであり、本発明の実施形態を限定するものではない。本明細書で使用される単数形"a"、"an"、および"the"は、文脈が別段に明確に示すのでなければ、複数形を含むものとする。本明細書で使用する場合、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されよう。
さらに、多くの実施形態が、たとえば、コンピューティングデバイスの要素によって実行されるべき一連の動作の観点から説明される。特定の回路(たとえば、特定用途向け集積回路(ASIC))、プログラム命令を実行する1つまたは複数のプロセッサ、または両方の組合せが、本明細書において説明する種々の動作を実行する場合があることが認識されよう。さらに、本明細書で説明する一連のアクションは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させるコンピュータ命令の対応するセットを記憶した、任意の形式のコンピュータ可読記憶媒体内で完全に具現化されるものとみなすことができる。したがって、本発明の様々な態様は、そのすべてが特許請求される主題の範囲内であることが企図された、いくつかの異なる形式で具現化することができる。さらに、本明細書において説明されている実施形態ごとに、本明細書においては、任意のそのような実施形態の対応する形態を、たとえば説明されているアクションを実施する「ように構成される論理」として説明することができる。
キャッシュに記憶されたエフェメラルデータに読取り動作を実行する際に、いくつかの実施形態は、エフェメラルデータをNo-Writebackデータとしてタグ付けする機能を含み、タグ付けされたエフェメラルデータは、システムメモリに書き込まれることはない。No-Writebackタグは、対応するデータが有効であるかどうかを示すための従来の有効タグに加えるものである。No-Writebackタグ付けは、たとえばキャッシュが、バスマスタによって実行される読取り動作と関連するバスシグナリングを調べる方法など、いくつかの方法で行われる場合がある。たとえば、バスシグナリングは、読取り命令のオペコードが、データのキャッシュラインを読み取るときに、データがNo-Writebackとしてタグ付けされることを示す、読取り命令の特殊なバージョンを含む場合がある。別の方法は、キャッシュが読取りデバイス(たとえば、ディスプレイ)と関連するMasterID(マスター識別情報)を調べ、MasterIDに応じてデータをNo-Writebackとしてタグ付けすることである。別の方法は、フラグを含めるために読取りデバイスとキャッシュとの間のトランザクションでトランザクション属性を変更することであり、フラグは、読取り動作を実行時にキャッシュに、キャッシュラインをNo-Writebackデータとしてタグ付けさせるために、読取りデバイスによってセットされてよい。
図1は、一実施形態が適用できるシステム100を示す。システム100は、ディスプレイ104に表示される画像を処理し、操作するために使用されてよいプロセッサ102を含む。システム100には、バスアービタ106、システムメモリ108、キャッシュ110、およびシステムバス112もまた含まれる。システム100は、たとえば、セルラーフォンまたはタブレットなど、より大きいシステムの一部を表す場合がある。
説明を簡単にするために、システムのすべての構成要素が図1に示されるわけではない。システム100中に示す構成要素のいくつかは、1つまたは複数の半導体チップに統合される場合がある。たとえば、キャッシュ110は、プロセッサ102と一体化される場合があるが、簡単にするために、キャッシュ110はシステムバス112に結合される別個の構成要素として示している。別の例として、プロセッサ102は、バスアービタ106の機能を実行する場合がある。さらに、システムメモリ108は、メモリ階層の一部である場合があり、キャッシュのいくつかのレベルがある場合がある。簡単にするために、単に1つのレベル、キャッシュ110が示される。
プロセッサ102は、ディスプレイ104に専用であり、画像処理用に最適化されたものであってよい。しかしながら、実施形態はそのように限定されず、プロセッサ102は、たとえばセルラーフォンまたはタブレット用の一般的なアプリケーションプロセッサを表してよい。いくつかの実施形態については、図1に示す構成要素の全部または大部分は、ディスプレイ104に専用である、または画像処理用に最適化されたものである場合がある。たとえば、キャッシュ110は、プロセッサ102と一体化され、ディスプレイ104に専用であってよく、システムメモリ108は、図示していない他の構成要素と共有される。
キャッシュ110は、キャッシュアドレスを保持するためのレジスタ112を含む。図1の特定の例では、レジスタ112に記憶されるキャッシュアドレスは、2つのフィールド、すなわちタグフィールド114と、インデックスフィールド116とを含み、タグフィールド114の値は、キャッシュアドレスのビットの上位セットであり、インデックスフィールド116の値は、キャッシュアドレスのビットの下位セットである。図1の特定の例については、キャッシュ110は、タグがRAM(ランダムアクセスメモリ)118に記憶され、データの対応するキャッシュラインがRAM120に記憶される、ダイレクトマップキャッシュとして構成される。他の実施形態では、キャッシュが、たとえばセットアソシアティブキャッシュなど、他の方法で構成されてよい。RAM118およびRAM120が、別個のRAMとして実装されるか、1つのRAMとして実装されるかは、この説明には重要ではない。キャッシュラインおよび関連するビットを記憶するための他のタイプのストレージが使用されてよい。図1の特定の例については、キャッシュライン122などの各キャッシュラインが、4バイトのデータを含む。
インデックスフィールド116中のビットの上位セットが、デコーダ124に提供され、デコーダ124は、キャッシュライン122と関連するタグ126を取得するために、RAM118へインデックス付けするために使用される。インデックスフィールド116中のビットの下位セットが、キャッシュライン122に記憶された特定のバイトを選択するために、マルチプレクサ128で使用される。タグ126は、マッチがあるかどうかを示すために、比較器130によってタグフィールド114に記憶された値と比較される。タグ126に加えて、インデックスフィールド116に記憶されたビットの上位セットは、キャッシュライン122と関連する有効ビット132を提供するために、RAM118へインデックス付けするために使用され、有効ビット132は、キャッシュライン122に記憶されたデータが有効であるかどうかを示す。タグ126がタグフィールド114の値とマッチする場合、および有効ビット132がキャッシュライン122は有効であることを示す場合、キャッシュライン122に記憶されたデータが正しいアドレスを有し、有効であることを示す有効なヒットがある。
有効ビット132を提供することに加えて、インデックスフィールド116に記憶されたビットの上位セットは、キャッシュライン122と関連するNo-Writebackビット133を提供するために、RAM118にインデックス付けする。No-Writebackビット133は、キャッシュ110からキャッシュライン122を追い出すときに、キャッシュライン122に記憶されたデータがシステムメモリ108に書き戻されるべきかどうかを示す。No-Writebackビット133がセットされている場合、実施されているキャッシュポリシーにかかわらず、キャッシュライン122はシステムメモリ108に書き戻されない。
いくつかの実施形態では、プロセッサ102用の命令セットは、Read-No-Writeback命令を含む。Read-No-Writeback命令は、そのパラメータの1つがアドレスである命令であり、キャッシュ110によって受信されるとき、そのアドレスと関連するデータは、従来の読取り動作においてと同様に、適切なキャッシュラインから読み取られる。適切なキャッシュラインが見つけられるならば、キャッシュラインがキャッシュから追い出されるときにシステムメモリ108に書き戻されないことを示すために、キャッシュラインと関連するNo-Writebackビットはセットされる。ノーライトビットをこのようにセットすると、キャッシュライン中のデータは、システムメモリ(またはより高いレベルのキャッシュ)に書き込まれることはない。Read-No-Writeback命令を受信した後に、キャッシュコヒーレンスポリシーがキャッシュ110にライトバック命令を送信する場合、No-Writebackとしてマーク付けされたキャッシュラインがメモリ(たとえば、システムメモリ108)に書き込まれることはない。ここでは、キャッシュ110が命令を受信することへの言及は、命令を示す様々なバス信号がキャッシュ110に提供されることを意味する場合がある。
いくつかの実施形態については、No-Writebackビットは、次に置き換えるキャッシュラインを選択するための手段として使用することができる。そのような実施形態では、置換ポリシーは、セットされたNo-Writebackビットを有するキャッシュラインを探し、No-Writebackビットがセットされていない有効キャッシュラインを追い出す前に、そのようなキャッシュラインを追い出すことである。これは、エフェメラルデータがその最後の使用を確認し、置き換えられることが可能であるという前提に基づいている。
図2および図3は、上記で説明した実施形態のいくつかを示す。プロセッサで実行しているプロセス(ステップ202)については、エフェメラルデータが生成される場合(ステップ204)、エフェメラルデータがシステムメモリに書き戻されることのないように、キャッシュされたエフェメラルデータのキャッシュライン中のNo-Writebackビットがセットされる。キャッシュコヒーレンスポリシーの実施時に、キャッシュラインのライトバック命令がキャッシュによって受信される場合(ステップ208)、キャッシュラインと関連するNo-Writebackビットがセットされている場合(ステップ210)、実施されている特定のキャッシュライン置換ポリシーにかかわらず、キャッシュラインはシステムメモリに書き込まれることはない(ステップ212)。しかしながら、No-Writebackビットがセットされていない場合(ステップ210)、キャッシュラインは、それが有効であるならば、システムメモリに書き込まれてよい(ステップ214)。
図3を参照すると、命令のフェッチ時に(ステップ302)、Read-No-Writeback命令がデコードされる場合(ステップ304)、Read-No-Writeback命令がキャッシュに送信される(ステップ306)。キャッシュがRead-No-Writeback命令を実行すると、Read-No-Writeback命令のアドレスパラメータによって示されるキャッシュラインと関連するデータの読取りを引き起こし、キャッシュラインがシステムメモリに書き戻されないように、対応するNo-Writebackビットをセットする(ステップ308)。
図2および図3に示すプロセスの一部は、プロセッサ102によって実行されてよく、他はキャッシュ110で、たとえばRAM118においてNo-Writebackビットをセットするためにコントローラ134によって実行されてよい。
いくつかの実施形態については、キャッシュラインと関連するNo-Writebackビットが、キャッシュを読み取るデバイス(たとえば、セルラーフォンのディスプレイ)と関連する変更されたトランザクション属性に従ってセットされてよい。トランザクション属性はフラグを含み、フラグは、読取り動作が実行されるとき、キャッシュに記憶された対応するキャッシュラインにNo-Writebackビットがセットされることを示すためにデバイスによってセットされてよい。これは、図4に示されており、ステップ402において、キャッシュラインのデータを読み取るデバイスが、トランザクション属性にフラグをセットし、ステップ404においてキャッシュコントローラ134は、キャッシュラインにNo-Writebackビットをセットして、それがエフェメラルデータであることを示す。
図5は、別の方法を示す。ステップ502において、キャッシュ110は、たとえばディスプレイなど、読取りデバイスと関連するMasterIDを調べ、特定のMasterIDに応じて、キャッシュコントローラ134は、キャッシュラインと関連するNo-Writebackビットをセットして、キャッシュライン中のデータがエフェメラルデータであることを示す(ステップ504)。
図6は、実施形態を適用できるワイヤレス通信システムを示す。図6は、基地局604A、604B、および604Cを含むワイヤレス通信ネットワーク602を示す。図6は、セルラーフォン、タブレット、またはコンピュータもしくはコンピュータシステムなど、セルラーフォンネットワークに好適な何らかの他の種類の通信デバイスなどのモバイル通信デバイスであってよい、606と標示される通信デバイスを示す。通信デバイス606は、モバイルである必要はない。図6の特定の例では、通信デバイス606は、基地局604Cと関連するセル内に位置する。矢印608および610は、それぞれアップリンクチャネルおよびダウンリンクチャネルを図式的に表しており、そのチャネルによって、通信デバイス606は基地局604Cと通信する。
実施形態は、たとえば、通信デバイス606もしくは基地局604C、またはその両方と関連するデータ処理システムにおいて使用される場合がある。図6は、本明細書で説明する実施形態が用いられてもよい多くの適用例のうちのたった1つの適用例を示す。
情報および信号が様々な異なる技術および技法のいずれかを用いて表される場合があることが、当業者には了解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
さらに、本明細書に開示される実施形態に関して記載される、様々な例示のロジックブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェアまたは両方の組合せとして実装できることが、当業者には了解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、全般にそれらの機能性に関してこれまで説明されてきた。そのような機能がハードウェアまたはソフトウェアとして実装されるかどうかは、特定の用途および全体的なシステムに課せられる設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で開示した実施形態に関して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはその2つの組合せにおいて直接具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態の記憶媒体中に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替形態では、記憶媒体はプロセッサと一体化することができる。
したがって、本発明の実施形態は、無効化を伴う読取りを使用して、キャッシュにおける帯域幅および電力を下げるための方法を具現する非一時的コンピュータ可読媒体を含むことができる。したがって、本発明は図示される例に限定されず、本明細書で説明される機能を実行するためのあらゆる手段が、本発明の実施形態に含まれる。
上記開示は、本発明の実例実施形態を示したものであるが、添付の特許請求の範囲で定義されている本発明の範囲を逸脱することなく、本明細書において様々な変更および修正を加えることができることに留意されたい。本明細書で説明される本発明の実施形態による方法クレームの機能、ステップ、および/または動作は、任意の特定の順序で実行される必要はない。さらに、本発明の要素は、単数形において記載または特許請求されている場合があるが、単数形に限定することが明示的に述べられていない限り、複数形も考えられる。
100 システム
102 プロセッサ
104 ディスプレイ
106 バスアービタ
108 メモリ
110 キャッシュ
112 レジスタ
114 タグ
116 インデックス
118 ランダムアクセスメモリ
120 ランダムアクセスメモリ
122 キャッシュライン
124 デコーダ
126 タグ
128 マルチプレクサ
130 比較器
132 有効ビット
134 コントローラ

Claims (17)

  1. アドレスを示すRead-No-Writeback命令をキャッシュにおいて受信するステップと、
    前記アドレスと関連するキャッシュラインが、前記キャッシュから前記キャッシュラインを追い出すときにメモリに書き込まれないことを示すために前記キャッシュにおいてNo-Writebackビットをセットするステップと
    を含む、方法。
  2. No-Writebackビットがセットされていない他のキャッシュラインを追い出す前に、置換ポリシーに応答して前記キャッシュラインを追い出すステップ
    をさらに含む、請求項1に記載の方法。
  3. デバイスによって、トランザクション属性にフラグをセットするステップであって、前記デバイスが、キャッシュの前記キャッシュラインを読み取るものである、ステップと、
    前記キャッシュラインが前記メモリに書き込まれないように、前記キャッシュラインと関連する前記No-Writebackビットを前記フラグに応答してキャッシュコントローラによってセットするステップと
    をさらに含む、請求項1に記載の方法。
  4. No-Writebackビットがセットされていない他のキャッシュラインを追い出す前に、置換ポリシーに応答して前記キャッシュラインを追い出すステップ
    をさらに含む、請求項3に記載の方法。
  5. 前記キャッシュにおいて、前記デバイスに対応する受信マスター識別情報を調べるステップと、
    前記キャッシュラインが前記メモリに書き込まれないように、前記マスター識別情報に応じて前記キャッシュラインと関連するNo-Writebackビットをセットするステップと
    をさらに含む、請求項3に記載の方法。
  6. 前記キャッシュにおいて、デバイスに対応する受信マスター識別情報を調べるステップであって、前記デバイスが、前記キャッシュに記憶されたキャッシュライン中のデータを読み取るものである、ステップと、
    前記キャッシュラインが前記メモリに書き込まれないように、前記マスター識別情報に応じて前記キャッシュラインと関連するNo-Writebackビットをセットするステップと
    をさらに含む、請求項1に記載の方法。
  7. キャッシュラインと関連するデータを記憶するためのストレージであって、各キャッシュラインが対応するNo-Writebackビットを有する、ストレージと、
    前記ストレージに結合されるコントローラであって、キャッシュラインを示すRead-No-Writeback命令を受信することに応答して、前記キャッシュラインが前記キャッシュから前記キャッシュラインを追い出すときにメモリに書き込まれないことを示すために前記キャッシュラインに対応するNo-Writebackビットをセットする、コントローラと
    を含む、キャッシュ。
  8. 前記コントローラがさらに、No-Writebackビットがセットされていない他のキャッシュラインを追い出す前に、置換ポリシーに応答して前記キャッシュラインを追い出すものである、請求項7に記載のキャッシュ。
  9. 前記コントローラがさらに、デバイスに対応する受信マスター識別情報を調べ、前記デバイスが、前記キャッシュライン中のデータを読み取り、前記キャッシュラインが前記メモリに書き込まれないように前記マスター識別情報に応じて前記キャッシュラインと関連する前記No-Writebackビットをセットするものである、請求項8に記載のキャッシュ。
  10. 前記コントローラがさらに、デバイスに対応する受信マスター識別情報を調べ、前記デバイスが、前記キャッシュライン中のデータを読み取り、前記キャッシュラインが前記メモリに書き込まれないように前記マスター識別情報に応じて前記キャッシュラインと関連する前記No-Writebackビットをセットする、請求項7に記載のキャッシュ。
  11. 前記キャッシュが、セルラーフォン、タブレット、およびコンピュータシステムからなるグループから選択される装置の一部である、請求項7に記載のキャッシュ。
  12. メモリと、
    デバイスと、
    前記デバイスに結合されるキャッシュであって、前記キャッシュに記憶されたキャッシュラインのアドレスを示す、前記デバイスからのRead-No-Writeback命令を受信し、前記キャッシュラインが対応するNo-Writebackビットを有するとき、前記キャッシュから前記キャッシュラインを追い出すときに前記キャッシュラインが前記メモリに書き込まれないことを示すために前記No-Writebackビットをセットする、キャッシュと
    を含む、システム。
  13. 前記キャッシュがさらに、No-Writebackビットがセットされていない他のキャッシュラインを追い出す前に、置換ポリシーに応答して前記キャッシュラインを追い出す、請求項12に記載のシステム。
  14. 前記デバイスが、前記キャッシュの前記キャッシュラインを読み取るためにトランザクション属性にフラグをセットし、
    前記キャッシュが、前記フラグに応答して、前記キャッシュラインが前記メモリに書き込まれないように、前記No-Writebackビットをセットする、
    請求項12に記載のシステム。
  15. 前記キャッシュがさらに、No-Writebackビットがセットされていない他のキャッシュラインを追い出す前に、置換ポリシーに応答して前記キャッシュラインを追い出す、請求項14に記載のシステム。
  16. 前記デバイスがマスター識別情報を有し、
    前記キャッシュが受信し、前記受信マスター識別情報を調べ、前記キャッシュラインが前記メモリに書き込まれないように、前記キャッシュが、前記マスター識別情報に応じて前記No-Writebackビットをセットするものである、
    請求項14に記載のシステム。
  17. 前記デバイスがディスプレイである、請求項12に記載のシステム。
JP2016561316A 2014-04-13 2015-03-31 無効化を伴う読取りを使用してキャッシュにおける帯域幅および電力を下げる方法および装置 Ceased JP2017510902A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/251,628 2014-04-13
US14/251,628 US20150293847A1 (en) 2014-04-13 2014-04-13 Method and apparatus for lowering bandwidth and power in a cache using read with invalidate
PCT/US2015/023686 WO2015160503A1 (en) 2014-04-13 2015-03-31 Method and apparatus for lowering bandwidth and power in a cache using read with invalidate

Publications (2)

Publication Number Publication Date
JP2017510902A true JP2017510902A (ja) 2017-04-13
JP2017510902A5 JP2017510902A5 (ja) 2018-04-26

Family

ID=53039586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016561316A Ceased JP2017510902A (ja) 2014-04-13 2015-03-31 無効化を伴う読取りを使用してキャッシュにおける帯域幅および電力を下げる方法および装置

Country Status (8)

Country Link
US (1) US20150293847A1 (ja)
EP (1) EP3132354A1 (ja)
JP (1) JP2017510902A (ja)
KR (1) KR20160143682A (ja)
CN (1) CN106170776A (ja)
BR (1) BR112016023745A2 (ja)
TW (1) TW201604681A (ja)
WO (1) WO2015160503A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10176096B2 (en) * 2016-02-22 2019-01-08 Qualcomm Incorporated Providing scalable dynamic random access memory (DRAM) cache management using DRAM cache indicator caches
US10552153B2 (en) * 2017-03-31 2020-02-04 Intel Corporation Efficient range-based memory writeback to improve host to device communication for optimal power and performance
US11023162B2 (en) 2019-08-22 2021-06-01 Apple Inc. Cache memory with transient storage for cache lines
CN113918081B (zh) 2020-07-08 2024-03-26 慧荣科技股份有限公司 计算机可读取存储介质、配置可靠命令的方法及装置
TWI771707B (zh) * 2020-07-08 2022-07-21 慧榮科技股份有限公司 組態可靠命令的方法及裝置以及電腦程式產品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0354649A (ja) * 1989-07-24 1991-03-08 Oki Electric Ind Co Ltd バッファ記憶制御方式
JPH0448358A (ja) * 1990-06-18 1992-02-18 Nec Corp キャッシュ・メモリ制御方式
JPH08137748A (ja) * 1994-11-08 1996-05-31 Toshiba Corp コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法
JPH0926930A (ja) * 1995-03-31 1997-01-28 Sun Microsyst Inc マルチプロセッサ・キャッシュ・コヒーレント・コンピュータ・システムにおいてメモリ・アクセスを迅速に開始する方法および装置
US20060026360A1 (en) * 2004-07-30 2006-02-02 Dale Morris Purging without write-back of cache lines containing spent data
US20090006668A1 (en) * 2007-06-28 2009-01-01 Anil Vasudevan Performing direct data transactions with a cache memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4434534B2 (ja) * 2001-09-27 2010-03-17 株式会社東芝 プロセッサ・システム
JP2003177963A (ja) * 2001-12-12 2003-06-27 Hitachi Ltd ストレージ装置
US6968429B2 (en) * 2003-02-20 2005-11-22 Sun Microsystems, Inc. Method and apparatus for controlling line eviction in a cache
JP2006119796A (ja) * 2004-10-20 2006-05-11 Matsushita Electric Ind Co Ltd キャッシュメモリシステムおよび動画処理装置
US7461209B2 (en) * 2005-12-06 2008-12-02 International Business Machines Corporation Transient cache storage with discard function for disposable data
US20090037661A1 (en) * 2007-08-04 2009-02-05 Applied Micro Circuits Corporation Cache mechanism for managing transient data
US20120047330A1 (en) * 2010-08-18 2012-02-23 Nec Laboratories America, Inc. I/o efficiency of persistent caches in a storage system
US20120297147A1 (en) * 2011-05-20 2012-11-22 Nokia Corporation Caching Operations for a Non-Volatile Memory Array
JP2014178804A (ja) * 2013-03-14 2014-09-25 Sony Corp キャッシュ制御装置、プロセッサ、情報処理システム、および、その制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0354649A (ja) * 1989-07-24 1991-03-08 Oki Electric Ind Co Ltd バッファ記憶制御方式
JPH0448358A (ja) * 1990-06-18 1992-02-18 Nec Corp キャッシュ・メモリ制御方式
JPH08137748A (ja) * 1994-11-08 1996-05-31 Toshiba Corp コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法
JPH0926930A (ja) * 1995-03-31 1997-01-28 Sun Microsyst Inc マルチプロセッサ・キャッシュ・コヒーレント・コンピュータ・システムにおいてメモリ・アクセスを迅速に開始する方法および装置
US20060026360A1 (en) * 2004-07-30 2006-02-02 Dale Morris Purging without write-back of cache lines containing spent data
US20090006668A1 (en) * 2007-06-28 2009-01-01 Anil Vasudevan Performing direct data transactions with a cache memory

Also Published As

Publication number Publication date
EP3132354A1 (en) 2017-02-22
WO2015160503A1 (en) 2015-10-22
KR20160143682A (ko) 2016-12-14
TW201604681A (zh) 2016-02-01
US20150293847A1 (en) 2015-10-15
BR112016023745A2 (pt) 2017-08-15
CN106170776A (zh) 2016-11-30

Similar Documents

Publication Publication Date Title
US10169240B2 (en) Reducing memory access bandwidth based on prediction of memory request size
US9087392B2 (en) Techniques for efficient GPU triangle list adjacency detection and handling
US9477476B2 (en) Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
JP2017510902A (ja) 無効化を伴う読取りを使用してキャッシュにおける帯域幅および電力を下げる方法および装置
US20220004501A1 (en) Just-in-time synonym handling for a virtually-tagged cache
KR20160141735A (ko) 캐시 오염을 감소시키기 위해서 전용 캐시 세트들에서의 경합 전용 프리페치 정책들에 기초한 적응형 캐시 프리페칭
US20130166846A1 (en) Hierarchy-aware Replacement Policy
US9720829B2 (en) Online learning based algorithms to increase retention and reuse of GPU-generated dynamic surfaces in outer-level caches
US10236917B2 (en) Providing memory bandwidth compression in chipkill-correct memory architectures
US20160188490A1 (en) Cost-aware page swap and replacement in a memory
US20140047221A1 (en) Fusing flag-producing and flag-consuming instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
US9075746B2 (en) Utility and lifetime based cache replacement policy
JP2018503924A (ja) 中央処理ユニット(cpu)ベースのシステム内の圧縮メモリコントローラ(cmc)による連続読取り動作を使用するメモリ帯域幅圧縮の提供
CN105095104A (zh) 数据缓存处理方法及装置
US20160239420A1 (en) System and method for managing a cache pool
CN106780415A (zh) 一种直方图统计电路及多媒体处理系统
US20130326197A1 (en) Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media
TW201913364A (zh) 在以區塊架構處理器為基礎系統中快取指令區塊標頭資料
US8447934B2 (en) Reducing cache probe traffic resulting from false data sharing
US9794580B2 (en) Cache management device, and motion picture system and method using the same
JP2018506122A (ja) 適応モードのトランスレーションルックアサイドバッファ検索およびアクセスフォルト
CN104252334B (zh) 分支目标地址获取方法和装置
US9251096B2 (en) Data compression in processor caches
US11126437B2 (en) Load instruction with final read indicator field to invalidate a buffer or cache entry storing the memory address holding load data
CN113655953A (zh) 一种mmu和ifu读取memory中数据的实现方法及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180315

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180919

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181001

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20190225