JP2013232210A - キャッシュライン置換のためのシステムおよび方法 - Google Patents

キャッシュライン置換のためのシステムおよび方法 Download PDF

Info

Publication number
JP2013232210A
JP2013232210A JP2013128940A JP2013128940A JP2013232210A JP 2013232210 A JP2013232210 A JP 2013232210A JP 2013128940 A JP2013128940 A JP 2013128940A JP 2013128940 A JP2013128940 A JP 2013128940A JP 2013232210 A JP2013232210 A JP 2013232210A
Authority
JP
Japan
Prior art keywords
cache
instruction
tag
index
cache 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.)
Granted
Application number
JP2013128940A
Other languages
English (en)
Other versions
JP5722389B2 (ja
Inventor
A Ingle Ajay
アジャイ・エー.・イングル
J Plondke Erich
エリッチ・ジェイ.・プロンケ
Codrescu Lucian
ルシアン・コドレスキュ
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 JP2013232210A publication Critical patent/JP2013232210A/ja
Application granted granted Critical
Publication of JP5722389B2 publication Critical patent/JP5722389B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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
    • 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/1016Performance improvement
    • 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

【課題】置換されるキャッシュラインを決定するためのコンピュータ可読記憶媒体を提供する。
【解決手段】システム300は複数のキャッシュラインを備えるキャッシュを含む。命令がプロセッサによって実行されたとき、プロセッサに、インデックスによるキャッシュ無効化命令に含まれるインデックス値、符号化されたウェイ値及びインクリメンタ120の出力値を受信させ、インデックスによるキャッシュ無効化命令の受信に応答して、インデックス値を識別子114の値として割り当てさせる。識別子の値は置換のためのキャッシュラインを示す。
【選択図】図3

Description

本明細書に開示される発明のコンセプトの実施形態は、一般にデータ処理システムの分野に関する。例えば、本明細書に開示される発明のコンセプトの実施形態は、キャッシュライン置換のためのシステムおよび方法に関する。
今日、多くの計算システムにおいて、メモリ(例えば、ランダムアクセスメモリ)は、計算命令でプロセッサによって使用されるべきデータを記憶する。例えば、メモリはプロセッサによって加算される2つのオペランドを記憶し、2つのオペランドの合計の結果を記憶する。従って、例において、プロセッサは2つのオペランドを読み取るためにメモリにアクセスし、結果を書き込むためにメモリに再度アクセスする。
メモリは、プロセッサよりも遅い動作速度を有する。従って、プロセッサは、メモリのアクセスの間、待つ。それゆえに、電力および時間は、プロセッサがメモリのアクセスの時間を無駄に待っている間、計算デバイスによって消費される。計算システムの全体の処理速度を高め、電力消費を減らすために、メモリよりも速い動作速度を有するキャッシュがプロセッサに結合される。
キャッシュは、複数のキャッシュラインを含み、各キャッシュラインはメモリ内のデータの一部を記憶する。
キャッシュはメモリよりも速いため、プロセッサによって使用されるデータはキャッシュの一部(例えば、キャッシュライン)にプレロード(preload)される。それゆえに、プロセッサが処理のためのデータを検索する時、プロセッサは、データを得るためにキャッシュにアクセスする。キャッシュがデータを含まない場合、データを得るために、メモリがアクセスされる。
さらなるデータがキャッシュにプレロードされると、以前に記憶されたデータは新たに計算または検索されたデータと置換される。結果として、キャッシュラインが占領および/または置換されるシーケンスを決定するように構成されたシステムが存在する。従来のプロセッサにおいて、キャッシュのキャッシュラインは順番に使用され、プロセッサは、一度キャッシュの最後のキャッシュラインに到達すると、最初のキャッシュラインに戻る。システムは、プロセッサによって使用される次のキャッシュラインを決定およびポイント(point)するためにプロセッサに存在する。1つのそのようなシステムは、先入れ先出し(FIFO)キャッシュ置換方式を実施し、そこでは、ポインタがキャッシュの次のキャッシュラインを連続的にポイントするために増やされる。
プログラムは、キャッシュラインを無効にするためにキャッシュ保全命令(cache maintenance instruction)を含むようプロセッサによって実行される。命令がキャッシュラインを無効にするため、プロセッサによって置換されるべき有効なキャッシュラインをシステムがポイントする一方で、無効なキャッシュラインがキャッシュに存在する。結果として、FIFO置換方式を実施するキャッシュにおいては、無効なキャッシュラインが存在するにもかかわらず、有効なキャッシュラインがロード動作によって置換される。このアプローチの1つの問題は、有効なキャッシュラインの減少が、より頻繁なメモリへのアクセスをプロセッサに要求し、それにより、電力消費の増加および計算速度の低下を引き起こすことである。
置換するキャッシュラインを決定するためのシステムが記述される。ある実施形態において、システムは、複数のキャッシュラインを備えるキャッシュを含む。システムは、置換のためのキャッシュラインを識別するように構成された識別子をさらに含む。システムは、また、インクリメンタ、キャッシュ保全命令、または同じ値のままから選択される識別子の値を決定するように構成された制御ロジックを含む。
本明細書に開示される1つ以上の実施形態の利点は、電力の節約および増大された処理速度を含む。
実例となる実施形態は、本明細書に開示される発明のコンセプトを制限または定義するためではなく、それらの理解を助けるための例を提供するために述べられる。本開示の別の態様、利点、および特徴は、下記項目:図面の簡単な説明、発明の詳細な説明、および請求項、を含む本明細書全体のレビューの後に明確になるであろう。
本明細書に開示される本発明のコンセプトのこれら、および、別の特徴、態様、および利点は、以下の発明の詳細な説明が添付図と関連して読まれる時に、より理解される。
図1は、置換するためのキャッシュラインを決定する従来のシステムを示す従来技術の概念図である。 図2は、インデックス無効命令が存在する、置換のためのキャッシュラインを決定する例示的なシステムを示す概略図である。 図3は、インデックス無効命令およびアドレス無効命令が存在する、置換のためのキャッシュラインを決定する例示的なシステムを示す概略図である。 図4は、図2の概略図で示されたシステムの動作の例示的な方法を示すフローチャートである。 図5は、図3の概略図に示されたシステムの動作の例示的な方法を示すフローチャートである。 図6は、図2−3に示されるようなキャッシュ置換システム含むデジタル信号プロセッサを組み込む例示的なポータブル通信デバイスを示す一般図である。 図7は、図2−3に示されるようなキャッシュ置換システムを含むデジタル信号プロセッサを組み込む例示的な携帯電話を示す一般図である。 図8は、図2−3に示されるようなキャッシュ置換システムを含むデジタル信号プロセッサを組み込む例示的な無線インターネットプロトコル電話を示す一般図である。 図9は、図2−3に示されるようなキャッシュ置換システムを含むデジタル信号プロセッサを組み込む例示的なポータブルデジタルアシスタントを示す一般図である。 図10は、図2−3に示されるようなキャッシュ置換システムを含むデジタル信号プロセッサを組み込む例示的なオーディオファイルプレーヤを示す概略図である。
発明の詳細な説明
記述を通して、説明の目的のために、数々の特定な詳細が、本明細書に開示される発明のコンセプトの全体の理解を提供するために示される。しかし、本明細書に開示される発明のコンセプトが、これらの特定な詳細の幾つかを除いて実施されうることは当業者に明確であろう。別の例において、周知の構造およびデバイスは、本明細書に開示される発明のコンセプトの基礎概念を不明確にしないために、ブロック図の形態で示される。
本明細書に開示される発明のコンセプトの実施形態は、キャッシュライン置換のためのシステムおよび方法に関する。図1の概略図で示される従来のシステム100が、キャッシュに存在する無効なキャッシュラインの数を減らすために変更される。結果として、キャッシュミスの存在をより少なくする。それゆえに、プロセッサは、動作中に、より少ない頻度でメモリにアクセスする。
従来のキャッシュ置換システム
図1は、置換のためのキャッシュラインを決定する従来のシステム100を示す概略図である。システム100において、プロセッサは、キャッシュラインに記憶されたデータを置換しながらキャッシュを通して連続的に処理するように構成される。
図1の概略図で示されるように、システム100はタグ記憶装置110および状態記憶装置112を含む。タグ記憶装置110および状態記憶装置112は、同じ数のセット(set)(例えば、行)とウェイ(way)(例えば、列)とを含む配列(array)である。タグ配列(tag array)110および状態配列(state array)112の各セルは、プロセッサのキャッシュのキャッシュラインに対応する。システム100において、各セットは、16個のデータキャッシュラインに対応する16個のウェイ(0−15)を含み、それらは、別々にプロセッサから読み取られ、プロセッサに書き込まれる。
タグ配列110の各セルはタグを記録する。タグは、現在キャッシュラインに対応しているメモリ位置のアドレスである。例えば、キャッシュラインはメモリアドレスAを有するメモリ位置からデータを記憶する。それゆえに、対応タグのセルはメモリアドレスAを記憶する。状態配列112の各セルは対応キャッシュラインの状態(例えば、有効または無効)を記憶する。上の例を継続して、キャッシュライン内の記憶された値が有効な場合、次に、状態セルは、キャッシュラインが有効であることを示す情報を記憶する。プロセッサによって実行されるプログラムはキャッシュ保全命令を含み、それは、無効化されるキャッシュラインを直接ポイントするか、または、タグに対応するメモリの値を記憶するキャッシュラインが無効化されるためのタグをポイントすることによって、キャッシュラインを無効にする命令を含む。キャッシュラインを無効にするために、システム100は状態配列112の対応セルに無効状態を記憶する。
システム100は、複数の識別子114(例えば、ポインタ)をさらに含む。識別子114の数は、タグ配列110および状態配列112のセットの数と一致する。さらに、システム100において、セットに対するウェイの数が16であるため、各識別子は4ビットである。従って、各FIFOは、それぞれのセットの16個のウェイのいずれかをポイントするように構成され、それゆえに、セットと関連付けられた16個のキャッシュラインをポイントすることができる。
システム100において、命令102がプロセッサによって実行される時、命令102はシステム100によって受信される。命令102は、セット104、バイト106、およびタグ108を含む。バイト106は、命令(例えば、ロード、追加など)を実行するプロセッサによって実行される動作のタイプである。命令が、ロード命令または記憶命令である場合、セット104は、16個のキャッシュラインの内の1つの値がロードまたは記憶されるセットである。タグ108は、命令が含むべき値を記憶するメモリのメモリアドレスである。例において、命令がロードオペランドAである場合、命令は、オペランドAをキャッシュのどこに記憶するかを示すセット104、命令がロード命令であることを示すバイト106、オペランドAがメモリ内でどこに記憶されるかを示すタグ108を含む。
システム100は、インクリメンタ(incrementer)120をさらに含む。システム100において、インクリメンタは識別子114の各々に対して存在する。ロードされるべきキャッシュのセットの次のウェイは、セットに対する対応識別子114によってポイントされる。次に、値がキャッシュのセット104のウェイにロードされると、セット104の識別子114に対するインクリメンタ120は、キャッシュのセットの次のウェイをポイントするために識別子を増やす。セットの最後のウェイまで増やすと、インクリメンタは、セットの最初のウェイをポイントするために値を繰り返す(例えば、15から0に)。従って、キャッシュラインは連続的にロードされる。
命令102がロード命令ではない場合、次に、システム100は、命令102のタグ108がタグ配列110に記憶されるか否かを決定する。タグ108がタグ配列110に記憶される場合、次に、タグ108に対応するメモリ位置のメモリ値が記憶される。記憶位置は、タグ108が記憶されるタグ配列110のセルに対するそれぞれのキャッシュラインである。
システム100は、タグ108に対応するメモリ位置に記憶されたメモリ値がキャッシュのキャッシュラインに記憶されるか否かを決定するために、タグコンパレータ(tag comparator)116を含む。タグコンパレータは、タグ配列および状態配列の各ウェイ(例えば、列)に対して存在する。それゆえに、システム100について、16個のタグコンパレータが116に存在する。その対応ウェイについて、タグコンパレータは、タグ108と、セット104のウェイに対してタグ配列110に記憶されたタグとを比較する。タグコンパレータは、タグ配列110に記憶されたタグが、タグ配列110のセルに対応する状態配列112のセルの状態にアクセスすることによって、有効であるか否かをさらに決定する。16個のコンパレータのどれもが有効状態のタグの間に一致を見つけられない場合、タグコンパレータ116はメモリ値がキャッシュに記憶されていないことを示すミス信号118を出力する。そして、値はメモリからキャッシュにロードされる。16個のコンパレータの1つが有効状態のタグの間に一致を見つけると、タグコンパレータ116はメモリ値がキャッシュに記憶されたことを示すヒット信号118を出力する。そして、プロセッサは、メモリにアクセスする代わりに、キャッシュにアクセスする。
命令102がロード命令である場合、システム100は、どのキャッシュラインがロードされるべきかを決定するために、セット104に対する識別子114にアクセスする。次に、識別子114はロードされるべき次のキャッシュラインをポイントするために増やされる。
命令がキャッシュのキャッシュラインを無効化するために存在することから、対応識別子がキャッシュの異なるキャッシュラインを示す間、無効なキャッシュラインが存在する。結果として、従来のシステム100を含むプロセッサにおいて、無効なキャッシュラインが存在するにもかかわらず、有効なキャッシュラインがロード動作によって置換される。
キャッシュ保全命令
キャッシュ保全命令は、インデックスによる無効化命令(invalidate by index instruction)、およびアドレスによる無効化命令(invalidate by address instruction)を含む。インデックスによる無効化命令は、無効化されるキャッシュのインデックスを含む。従って、命令は、無効化されるべきキャッシュラインを明確にポイントする。それゆえに、プロセッサがインデックスによる無効化命令を実行すると、インデックスされたキャッシュラインに対応する状態配列のセルは無効状態を記憶する。
アドレスによる無効化命令は、メモリのアドレス(例えば、タグ)を含む。従って、プロセッサがアドレスによる無効化命令を実行すると、プロセッサは、メモリアドレスに関連付けられたキャッシュラインを無効化する。それにより、プロセッサは、タグ配列内のメモリアドレスを検索し、一致するタグを記憶するタグセルに関連付けられたキャッシュラインを無効化する。
例示的なシステム200(図2)および例示的なシステム300(図3)内の、無効化命令を介して無効化されるキャッシュラインについて、システム200および300は、識別子が無効化されたキャッシュラインをポイントするなど、無効化されるキャッシュラインに関するセットに対応する識別子をキャストする。結果として、無効化されるキャッシュラインは、同一のセットの有効なキャッシュラインが置換される前に置換される。
キャッシュ置換システムの実例となる実施形態
図2−3の概略図は、キャッシュラインを置換するためのシステムの実例となる実施形態を示す。図2の概略図は置換のためのキャッシュのキャッシュラインを決定する例示的なシステム200を示し、インデックスによる無効化命令がプロセッサの動作中に存在する。図3の概略図は、置換のためのキャッシュのキャッシュラインを決定する例示的なシステム300を示し、インデックスによる無効化命令およびアドレスによる無効化命令がプロセッサの動作中に存在する。
図2を参照すると、システム200は、図1のシステム100と比べて、セレクタ202を含む。非保全命令の処理の間、セレクタ202は、増分された識別値(すなわち、インクリメンタ120の出力)を選択する。それにより、システム200は、図1のシステム100に類似して動作する。例えば、ロード動作の間、システム200は、識別子114を選択するための命令102のセット104、状態配列112のセット、およびタグ配列110のセットを使用する。プロセッサは、次に、セット104および識別子114によって識別されたキャッシュラインに、メモリのタグ108に記憶される値をロードする。バイト106が命令はロード命令であることを示すため、バイト106を受信するインクリメンタ120は、セットの次のキャッシュラインをポイントするために、選択された識別子114を増やす。次に、セレクタ202は、命令がキャッシュ保全命令/インデックスによる無効化命令ではないため、インクリメンタの出力(増分された識別値)を選択する。識別子114は、次に、増分された識別値を記憶する。
別の例において、記憶動作の間、システム200は、識別子114を選択するための命令102のセット104、状態配列112のセット、およびタグ配列110のセットを使用する。プロセッサは、セット104および既定のウェイに対応するキャッシュラインの値を、記憶のためにタグ108によって識別されたメモリのメモリ位置に送信する。命令はロード命令でなく、また、プロセッサによって実行されるためにメモリからの値を要求もしないため、インクリメンタ120は、識別値を増やさない。命令がインデックスによる無効化命令でないため、セレクタ202はインクリメンタ120の出力を選択する。従って、識別子の識別値は記憶命令の実行の間、同じままである。
加算または乗算などの幾つかの命令は、命令の実行のために使用されるオペランドを含む。オペランドは、一般的にメモリに記憶される。よって、オペランドはキャッシュに記憶されうる。そして、システム200は、オペランドがキャッシュに記憶されるか否かを決定する。図1のシステム100に類似して、オペランドがキャッシュに記憶されると、ヒット信号118がタグコンパレータ116から出力される。オペランドがキャッシュに記憶されないと、ミス信号118がタグコンパレータ116から出力される。ヒット信号またはミス信号118は、インクリメンタ120が識別値を増やすべきか否かの制御を助けるために、インクリメンタ120にルートされる。
信号118がミス信号の場合、オペランドはキャッシュに記憶されず、メモリからキャッシュにロードされる必要がある。そのため、セット104に対する識別子114は、置換されるべき次のキャッシュラインを識別する。オペランドは識別されたキャッシュラインにロードされる。ミス信号118を受信すると、インクリメンタ120は、置換されたキャッシュラインの次のキャッシュラインをポイントするために、識別値を増やす。信号118がヒット信号の場合、オペランドはメモリからキャッシュにロードされる必要はない。従って、ヒット信号118を受信すると、インクリメンタ120は識別値を変更しない。
システム200の動作は、キャッシュ保全命令(例えば、キャッシュ無効化命令)の実行中、システム100(図1)の動作からそれる。キャッシュ保全命令が実行される時、セレクタ202は命令からインデックス入力を選択する。プロセッサは、また、インデックスされたキャッシュラインを無効化する。セレクタ202が命令からインデックスを選択するため、インデックスされたキャッシュラインに対する識別子114は、無効化されたキャッシュラインをポイントするためにインデックスに等しい。結果として、キャッシュラインが無効化されると、システム200は、置換されるべきセットの次のキャッシュラインとして、無効化されたキャッシュラインを設定する。
図3を参照すると、無効化は、インデックスまたはアドレスによって実行される。従って、図1のシステム100と比べて、システム300は、符号器302およびセレクタ304を含む。図2のシステム200と同様に、システム300は、非保全命令の実行中、図1のシステム100に類似して動作する。保全命令が実行される時、保全命令は、インデックスによる無効化命令またはアドレスによる無効化命令である。キャッシュ保全命令がインデックスによる無効化命令の場合、セレクタ304は命令102からインデックスを選択し、システム300は図2のシステム200に類似して動作する。
キャッシュ保全命令がアドレスによる無効化命令の場合、セレクタ304は符号器302の出力を選択する。前に記述されたように、アドレスによる無効化命令は、プロセッサがタグ108のメモリ位置に関連付けられたキャッシュラインを見つけ、キャッシュラインを無効化するためのメモリアドレスを含む。従って、符号器302は、識別子がプロセッサによる置換のための無効化されたキャッシュラインをポイントするように、メモリのタグ108のメモリ位置に関連付けられたセット104内のキャッシュラインの識別値を出力するよう構成される。
タグコンパレータは、タグ配列のセットの各ウェイに対して存在する。従って、実例となる実施形態において、16個のタグコンパレータが存在する。前に述べられたように、タグコンパレータが有効状態のタグの一致を有する場合、タグコンパレータはヒット信号を出力する。ある実施形態において、コンパレータがタグと一致し、状態配列112内の対応セルから有効状態を受信する場合、次にコンパレータは1を出力する。セット内の1つのキャッシュラインのみがメモリアドレス(タグ108)と関連付けられる。従って、セット104に対する16個のタグコンパレータの出力は以下のようになる:(i)ミスを表す16個の0(すなわち、各タグコンパレータから0を1個ずつ)、または(ii)ヒットを表す15個の0および1個の1(すなわち、タグと一致し、有効状態を受信するタグコンパレータから1を1個、および残りの15個の各タグコンパレータのから0を1個ずつ)。従って、16ビットが、タグコンパレータ116から符号器302に送信される。
ある実施形態において、符号器302は、受信された16ビット値を4ビット識別値に符号化するように構成される。例えば、セット104のウェイ10(ウェイ0−15から)に対するタグコンパレータが1の場合、次に、符号器は「1010」を出力する。別の例において、ウェイ3が1の場合、次に、符号器302は「0011」を出力する。従って、符号器302によって出力される識別値は、無効化されたキャッシュラインが置換される次のキャッシュラインとしてポイントされるようにセレクタ304によって選択され、識別子114によって記憶される。
キャッシュ置換システムの動作の例示的な方法
図4−5は、キャッシュ置換システム200、300の動作の例示的な方法を示すフローチャートである。図4は、図2の概略図で示されるシステム200の動作の例示的な方法400を示すフローチャートである。図5は、図3の概略図で示されるシステム300の動作の例示的な方法500を示すフローチャートである。
図4を参照すると、システム200は、実行される命令がキャッシュ保全命令であるか否かを決定する(402)。システム200のためのキャッシュ保全命令は、インデックスによる無効化命令である。命令がキャッシュ保全命令でない場合、次にシステム200は、インクリメンタ120の出力として、セット104に対する識別子をキャストする(404)。ある実施形態において、セレクタ202は、識別子114に値をフィードバックするために、インクリメンタ120の出力を選択する。インクリメンタ120がタグコンパレータ116からヒット信号118を受信する場合、インクリメンタ120は識別値を増やさない。インクリメンタ120がミス信号118を受信する場合、インクリメンタ120は識別値を増やす。それゆえに、セット104に対する識別子は、同じままであるか、または増やされるかのいずれか一方である。
命令がキャッシュ保全命令である場合、システム200は、命令102から無効化インデックスを検索する。インデックスに位置するキャッシュラインは、次に、無効化される(408)。410に進み、システム200は命令からのインデックスとしてセット104に対する識別子をキャストする。ある実施形態において、セレクタ202は、識別子114にフィードバックするために、命令からインデックスを選択する。それゆえに、識別子は、置換されるべき次のキャッシュラインとして、無効化されたキャッシュラインをポイントする。
図3のシステム300に関連する図5を参照すると、システム300は、実行される命令がキャッシュ保全命令か否かを決定する(502および510)。システム300のためのキャッシュ保全命令は、インデックスによる無効化命令、またはアドレスによる無効化命令である。それゆえに、開始して(502)、システム300は命令がインデックスによる無効化命令であるか否かを決定する。命令がインデックスによる無効化命令である場合、次にシステム300は命令102から無効化インデックスを検索する(504)。インデックスに位置するキャッシュラインは、次に無効化される(506)。508に進み、システム200は、命令からのインデックスとして、セット104に対する識別子をキャストする。ある実施形態において、セレクタ304は、識別子114にフィードバックするために命令からインデックスを選択する。それゆえに、識別子は、置換されるべき次のキャッシュラインとして、無効化されたキャッシュラインをポイントする。
命令がインデックスによる無効化命令でない場合、次に、システム300は、命令がアドレスによるキャッシュ無効化命令であるか否かを決定する(510)。命令がアドレスによる無効化命令である場合、次に、システム300は命令102から無効化メモリアドレス(例えば、タグ108)を検索する(512)。514に進み、システム300は、セット104に対する任意のキャッシュラインが命令102から検索されたメモリアドレス(例えば、タグ108)のメモリ内の値を記憶するか否かを決定する。
キャッシュラインがアドレスのメモリから値を記憶するとシステム300が決定する場合、次に、システム300の符号器302は、キャッシュインデックス(例えば、無効化されたキャッシュラインをポイントする4ビット識別値)を作成するために、タグコンパレータ116からの出力を符号化する(516)。518に進み、システム300は、セット104に対する識別子が無効化されるキャッシュラインをポイントするように、セット104に対する識別子を符号化された値にキャストする。キャッシュラインは無効化される(520)。
無効化アドレスのメモリ位置に記憶された値がキャッシュに記憶されないとシステム300が決定する場合(514)、セット104に対する識別子114は、キャッシュラインのどれもが無効化されないため、同じままである(522)。510に戻って参照すると、命令がアドレスによる無効化命令ではない場合、命令はキャッシュ保全命令ではない。従って、システム300は、インクリメンタ120の出力として、セット104に対する識別子をキャストする(524)。ある実施形態において、セレクタ304は、識別子114に値をフィードバックするためにインクリメンタ120の出力を選択する。インクリメンタ120がタグコンパレータ116からヒット信号118を受信する場合、インクリメンタ120は識別値を増やさない。インクリメンタ120がミス信号118を受信する場合、インクリメンタ120は識別値を増やす。それゆえに、セット104に対する識別子は、同じままであるか、または増やされる。
キャッシュ置換システムを含む例示的なデバイス
マルチモードレジスタファイル(multimode register file)は、デジタル信号プロセッサなどのレジスタファイルを含む任意のプロセッサに含まれる。図6−10の概略図は、図2および3の概略図に示されるように、無効化されたキャッシュラインを置換するために、キャッシュ置換システムを組み込む例示的なデバイスを示す。
図6は、ポータブル通信デバイス600の例示的な実施形態を示す図である。図6の概略図で示されるように、ポータブル通信デバイスはデジタル信号プロセッサ(DSP)604を含むオンチップシステム602を含む。図6の概略図は、また、デジタル信号プロセッサ604およびディスプレイ608に結合されるディスプレイコントローラ606を示す。さらに、入力デバイス610はDSP 604に結合される。示されるように、メモリ612はDSP 604に結合される。加えて、符号器/復号器(CODEC)614はDSP 604 に結合される。スピーカ616およびマイクロフォン618はCODEC 614に結合される。
図6の概略図は、デジタル信号プロセッサ604および無線アンテナ622に結合された無線コントローラ620をさらに示す。特定の実施形態において、電源624は、オンチップシステム602に結合される。さらに、特定の実施形態において、図6で示されるように、ディスプレイ626、入力デバイス630、スピーカ616、マイクロフォン618、無線アンテナ622、電源624は、オンチップシステム602の外付けである。しかし、各々がオンチップシステム602のコンポーネントに結合される。
特定の実施形態において、DSP 604 は、DSP 604のキャッシュのどのキャッシュラインをメモリ612からの値と置換するかを決定するために、キャッシュ置換システム680を含む。
図7は、携帯電話700の例示的な実施形態を示す図である。示されるように、携帯電話700は、互いに結合されるデジタルベースバンドプロセッサ704およびアナログベースバンドプロセッサ706を含むオンチップシステム702を含む。特定の実施形態において、デジタルベースバンドプロセッサ704はデジタル信号プロセッサである。図7の概略図に示されるように、ディスプレイコントローラ708およびタッチスクリーンコントローラ710は、デジタルベースバンドプロセッサ704に結合される。次に、オンチップシステム702の外付けのタッチスクリーンディスプレイ712は、ディスプレイコントローラ708およびタッチスクリーンコントローラ710に結合される。
図7の概略図は、ビデオ符号器714(例えば、パル方式(PAL:phase alternating line)符号器、セカム方式(SECAM :sequential couleur a memoire)符号器、または、NTSC方式(NTSC:national television system committee)符号器)をさらに示し、それらはデジタルベースバンドプロセッサ704に結合される。さらに、ビデオ増幅器716はビデオ符号器714およびタッチスクリーンディスプレイ712に結合される。また、ビデオポート718はビデオ増幅器716に結合される。図7の概略図に描写されるように、USB(universal serial bus)コントローラ720はデジタルベースバンドプロセッサ704に結合される。また、USBポート722はUSBコントローラ720に結合される。メモリ724および加入者同定モジュール(SIM)カード726も、また、デジタルベースバンドプロセッサ704に結合される。さらに、図7の概略図に示されるように、デジタルカメラ728はデジタルベースバンドプロセッサ704に結合される。例示的な実施形態において、デジタルカメラ728は電荷結合素子(CCD:charge-coupled device)カメラまたは相補形金属酸化膜半導体(CMOS:complementary metal-oxide semiconductor)カメラである。
図7の概略図でさらに示されるように、ステレオオーディオCODEC 730はアナログベースバンドプロセッサ706に結合される。さらに、オーディオ増幅器732はステレオオーディオCODEC 730に結合される。例示的な実施形態において、第1のステレオスピーカ734および第2のステレオスピーカ736はオーディオ増幅器732に結合される。マイクロフォン増幅器738は、また、ステレオオーディオCODEC 730に結合される。加えて、マイクロフォン740はマイクロフォン増幅器738に結合される。特定の実施形態において、周波数変調(FM)ラジオチューナー742はステレオオーディオCODEC 730に結合される。また、FMアンテナ744はFMラジオチューナー742に結合される。さらに、ステレオヘッドフォン746はステレオオーディオCODEC 730に結合される。
図7の概略図は、無線周波数(RF)トランシーバ748がアナログベースバンドプロセッサ706に結合されることをさらに示す。RFスイッチ750はRFトランシーバ748およびRFアンテナ752に結合される。キーパッド754はアナログベースバンドプロセッサ706に結合される。また、マイクロフォン付のモノヘッドセット756はアナログベースバンドプロセッサ706に結合される。さらに、バイブレータデバイス758はアナログベースバンドプロセッサ706に結合される。図7の概略図は、また、電源760がオンチップシステム702に結合されることを示す。特定の実施形態において、電源760は携帯電話700の様々なコンポーネントに電力を提供する直流(DC)電源である。さらに、特定の実施形態において、電源は再充電可能なDCバッテリ、または、AC電源に結合された交流(AC)/DC変換変圧器から引き出されたDC電源である。
図7の概略図に描写されるように、タッチスクリーンディスプレイ712、ビデオポート718、USBポート722、カメラ728、第1のステレオスピーカ734、第2のステレオスピーカ736、マイクロフォン740、FMアンテナ744、ステレオヘッドフォン746、RFスイッチ750、RFアンテナ752、キーパッド754、モノヘッドセット756、バイブレータ758、および電源760は、オンチップシステム702の外付けである。特定の実施形態において、デジタルベースバンドプロセッサ704は、プロセッサ704のキャッシュのどのキャッシュラインをメモリ724からの値と置換するかを決定するためのキャッシュ置換システム780を含む。
図8は、無線インターネットプロトコル(IP)電話800の例示的な実施形態を示す図である。示されるように、無線IP電話800はデジタル信号プロセッサ(DSP)804を含むオンチップシステム802を含む。ディスプレイコントローラ806は、DSP 804に結合され、ディスプレイ808はディスプレイコントローラ806に結合される。例示的な実施形態において、ディスプレイ808は液晶ディスプレイ(LCD)である。図8は、キーパッド810がDSP 804に結合されることをさらに示す。
フラッシュメモリ812はDSP 804に結合される。同期ダイナミックランダムアクセスメモリ(SDRAM:synchronous dynamic random access memory)814、スタティックランダムアクセスメモリ(SRAM:static random access memory)816、および電気的消去可能PROM(EEPROM)818も、また、DSP 804に結合される。図8の概略図は、また、発光ダイオード(LED)820がDSP 804に結合されることを示す。加えて、特定の実施形態において、音声CODEC 822はDSP 804に結合される。増幅器824は音声CODEC 822に結合され、モノスピーカ826は増幅器824に結合される。図8の概略図は、さらに、音声CODEC 822に結合されたモノヘッドセット828を示す。特定の実施形態において、モノヘッドセット828はマイクロフォンを含む。
無線ローカルエリアネットワーク(WLAN)ベースバンドプロセッサ830はDSP 804に結合される。RFトランシーバ832はWLANベースバンドプロセッサ830に結合され、RFアンテナ834はRFトランシーバ832に結合される。特定の実施形態において、ブルートゥースコントローラ836は、また、DSP 804に結合され、ブルートゥースアンテナ838はコントローラ836に結合される。図8の概略図は、また、USBポート840もDSP 804に結合されることを示す。さらに、電源842はオンチップシステム802に結合され、無線IP電話800の様々なコンポーネントに電力を提供する。
図8の概略図で示されるように、ディスプレイ808、キーパッド810、LED 820、スピーカ826、モノヘッドセット828、RFアンテナ834、ブルートゥースアンテナ838、USBポート840、および電源842はオンチップシステム802の外付けであり、オンチップシステム802の1つ以上のコンポーネントに結合される。特定の実施形態において、デジタル信号プロセッサ804は、プロセッサ804のキャッシュのどのキャッシュラインがフラッシュ812、SDRAM 814、SRAM 816、および/またはEEPROM 818からの値と置換するかを決定するためのキャッシュ置換システム880を含む。
図9はポータブルデジタルアシスタント(PDA)900の例示的な実施形態を示す図である。示されるように、PDA 900はデジタル信号プロセッサ(DSP)904を含むオンチップシステム902を含む。タッチスクリーンコントローラ906およびディスプレイコントローラ908はDSP 904に結合される。さらに、タッチスクリーンディスプレイ910はタッチスクリーンコントローラ906およびディスプレイコントローラ908に結合される。図9の概略図は、また、キーパッド912がDSP 904に結合されることを示す。
特定の実施形態において、ステレオオーディオCODEC 926はDSP 904に結合される。第1のステレオ増幅器928はステレオオーディオCODEC 926に結合され、第1のステレオスピーカ930は第1のステレオ増幅器928に結合される。加えて、マイクロフォン増幅器932はステレオオーディオCODEC 926 に結合され、マイクロフォン934はマイクロフォン増幅器932に結合される。図9の図は、さらに、第2のステレオ増幅器936がステレオオーディオCODEC 926に結合され、第2のステレオスピーカ938が第2のステレオ増幅器936に結合されることを示す。特定の実施形態において、ステレオヘッドフォン940は、また、ステレオオーディオCODEC 926に結合される。
図9の概略図は、また、802.11コントローラ924がDSP 904に結合され、802.11アンテナ944が802.11コントローラ942に結合されることを示す。さらに、ブルートゥースコントローラ946はDSP 904に結合され、ブルートゥースアンテナ948はブルートゥースコントローラ946に結合される。USBコントローラ950はDSP 904に結合され、USBポート952 はUSBコントローラ950に結合される。そのうえ、スマートカード954、例えばマルチメディアカード(MMC:multimedia card)またはSDカード(SD:secure digital card)はDSP 904に結合される。さらに、電源956はオンチップシステム902に結合され、PDA 900の様々なコンポーネントに電力を提供する。
図9の概略図で示されるように、ディスプレイ910、キーパッド912、IrDAポート922、デジタルカメラ924、第1のステレオスピーカ930、マイクロフォン934、第2のステレオスピーカ938、ステレオヘッドフォン940、802.11アンテナ944、ブルートゥースアンテナ948、USBポート952、および電源956はオンチップシステム902の外付けであり、オンチップシステム上の1つ以上のコンポーネントに結合される。特定の実施形態において、デジタル信号プロセッサ904は、プロセッサ904のキャッシュのどのキャッシュラインがフラッシュ914、ROM 916、DRAM 918、および/またはEEPROM 920からの値と置換するかを決定するためのキャッシュ置換システム980を含む。
図10は、オーディオファイルプレーヤ(例えばMP3プレーヤ)1000の例示的な実施形態を示す図である。示されるように、オーディオファイルプレーヤ1000は、デジタル信号プロセッサ(DSP)1004を含むオンチップシステム1002を含む。ディスプレイコントローラ1006はDSP 1004に結合され、ディスプレイ1008はディスプレイコントローラ1006に結合される。例示的な実施形態において、ディスプレイ1008は液晶ディスプレイ(LCD)である。キーパッド1010はDSP 1004に結合される。
図10の概略図にさらに描写されるように、フラッシュメモリ1012および読み取り専用メモリ(ROM)1014はDSP 1004に結合される。さらに、特定の実施形態において、オーディオCODEC 1016はDSP 1004に結合される。増幅器1018はオーディオCODEC 1016に結合され、モノスピーカ1020は増幅器1018に結合される。図10の概略図は、マイクロフォン入力1022およびステレオ入力1024が、また、オーディオCODEC 1016に結合されることをさらに示す。特定の実施形態において、ステレオヘッドフォン1026は、また、オーディオCODEC 1016に結合される。
USBポート1028およびスマートカード1030はDSP 1004に結合される。加えて、電源1032はオンチップシステム1002に結合され、オーディオファイルプレーヤ1000の様々なコンポーネントに電力を提供する。
図10の概略図で示されるように、ディスプレイ1008、キーパッド1010、モノスピーカ1020、マイクロフォン入力1022、ステレオ入力1024、ステレオヘッドフォン1026、USBポート1028および電源1032はオンチップシステム1002の外付けであり、オンチップシステム1002上の1つ以上のコンポーネントに結合される。特定の実施形態において、デジタル信号プロセッサ1004は、プロセッサ1004のキャッシュのどのキャッシュラインがフラッシュ1012、および/またはROM 1014からの値と置換するかを決定するためのキャッシュ置換システム1080を含む。
本明細書に開示された発明のコンセプトの実施形態の以上の記載は、例示および説明の目的のためだけに示されており、網羅的であること、または、ここに開示された発明のコンセプトを開示された正確な形態に限定することを意図するものではない。これらの実施形態に対する様々な変更および適応は、本明細書で開示された本発明の精神または範囲を逸脱することなく当業者には容易に明らかである。
本明細書に開示された発明のコンセプトの実施形態の以上の記載は、例示および説明の目的のためだけに示されており、網羅的であること、または、ここに開示された発明のコンセプトを開示された正確な形態に限定することを意図するものではない。これらの実施形態に対する様々な変更および適応は、本明細書で開示された本発明の精神または範囲を逸脱することなく当業者には容易に明らかである。
以下に、本願の当初の特許請求の範囲に記載された発明を付記する。
[1]
複数のキャッシュラインを備えるキャッシュと;
置換用のキャッシュラインを識別するように構成された識別子と;
インクリメンタ、キャッシュ保全命令、または同じ値のままから選択された前記識別子の値を決定するように構成された制御ロジックと;
を備えるシステム。
[2]
前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、[1]のシステム。
[3]
前記キャッシュ保全命令は、前記制御ロジックによって選択される前記値を含む、[2]のシステム。
[4]
前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、[1]のシステム。
[5]
前記制御ロジックは、前記キャッシュに記憶される情報のタグインデックスを備える、[4]のシステム。
[6]
前記制御ロジックは、前記保全命令のタグが、既定のセットの前記タグインデックスに記憶されたタグのいずれかと一致するか否かを決定するように構成されたコンパレータをさらに備える、[5]のシステム。
[7]
前記制御ロジックは、前記タグインデックス内の前記複数のタグの各々の有効性を記憶するように構成された状態インデックスをさらに備え、前記コンパレータは前記タグインデックスに記憶された前記タグが有効であるか否かを決定するように構成される、[6]のシステム。
[8]
前記制御ロジックは、前記コンパレータの前記出力を受信し、前記識別子の前記値としての選択のために、前記保全命令の前記出力として、キャッシュラインのウェイアドレスに前記出力を符号化するように構成された符号器をさらに備える、[7]のシステム。
[9]
複数のキャッシュラインを備えるキャッシュから置換のためのキャッシュラインを識別子によって識別することと;
インクリメンタ、キャッシュ保全命令、または同じ値のままから選択された前記識別子の値を制御ロジックによって決定することと;
を備える方法。
[10]
前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、[9]の方法。
[11]
前記キャッシュ保全命令は、前記制御ロジックによって選択された前記値を含む、[10]の方法。
[12]
前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、[9]の方法。
[13]
前記キャッシュに記憶された情報のタグインデックスを前記制御ロジックによって記憶することと;
前記保全命令のタグが、既定のセットの前記タグインデックスに記憶された任意のタグと一致するか否かを、コンパレータによって決定することと;
をさらに備える、[12]の方法。
[14]
前記タグインデックス内の前記タグと前記保全命令の前記タグの一致を決定すると、前記タグインデックス内のタグが有効であるか否かを、前記コンパレータによって決定することをさらに備える、[13]の方法。
[15]
前記識別子の前記値としての選択のために、符号器によって、前記コンパレータの出力を前記保全命令の前記出力としてキャッシュラインのウェイアドレスに符号化することをさらに備える、[14]の方法。
[16]
複数のキャッシュラインを備えるキャッシュから、置換のためのキャッシュラインを識別する手段と;
インクリメンタ、キャッシュ保全命令、または同じ値のままから選択されたキャッシュラインを識別するための前記手段の値を決定する手段と;
を備えるシステム。
[17]
前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、[16]のシステム。
[18]
前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、[16]のシステム。
[19]
前記キャッシュに記憶される前記保全命令の状態の位置を決定する手段をさらに備える、[18]のシステム。
[20]
置換される前記キャッシュラインとして識別される前記位置を符号化する手段をさらに備える、[18]のシステム。

Claims (20)

  1. 複数のキャッシュラインを備えるキャッシュと;
    置換用のキャッシュラインを識別するように構成された識別子と;
    インクリメンタ、キャッシュ保全命令、または同じ値のままから選択された前記識別子の値を決定するように構成された制御ロジックと;
    を備えるシステム。
  2. 前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、請求項1のシステム。
  3. 前記キャッシュ保全命令は、前記制御ロジックによって選択される前記値を含む、請求項2のシステム。
  4. 前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、請求項1のシステム。
  5. 前記制御ロジックは、前記キャッシュに記憶される情報のタグインデックスを備える、請求項4のシステム。
  6. 前記制御ロジックは、前記保全命令のタグが、既定のセットの前記タグインデックスに記憶されたタグのいずれかと一致するか否かを決定するように構成されたコンパレータをさらに備える、請求項5のシステム。
  7. 前記制御ロジックは、前記タグインデックス内の前記複数のタグの各々の有効性を記憶するように構成された状態インデックスをさらに備え、前記コンパレータは前記タグインデックスに記憶された前記タグが有効であるか否かを決定するように構成される、請求項6のシステム。
  8. 前記制御ロジックは、前記コンパレータの前記出力を受信し、前記識別子の前記値としての選択のために、前記保全命令の前記出力として、キャッシュラインのウェイアドレスに前記出力を符号化するように構成された符号器をさらに備える、請求項7のシステム。
  9. 複数のキャッシュラインを備えるキャッシュから置換のためのキャッシュラインを識別子によって識別することと;
    インクリメンタ、キャッシュ保全命令、または同じ値のままから選択された前記識別子の値を制御ロジックによって決定することと;
    を備える方法。
  10. 前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、請求項9の方法。
  11. 前記キャッシュ保全命令は、前記制御ロジックによって選択された前記値を含む、請求項10の方法。
  12. 前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、請求項9の方法。
  13. 前記キャッシュに記憶された情報のタグインデックスを前記制御ロジックによって記憶することと;
    前記保全命令のタグが、既定のセットの前記タグインデックスに記憶された任意のタグと一致するか否かを、コンパレータによって決定することと;
    をさらに備える、請求項12の方法。
  14. 前記タグインデックス内の前記タグと前記保全命令の前記タグの一致を決定すると、前記タグインデックス内のタグが有効であるか否かを、前記コンパレータによって決定することをさらに備える、請求項13の方法。
  15. 前記識別子の前記値としての選択のために、符号器によって、前記コンパレータの出力を前記保全命令の前記出力としてキャッシュラインのウェイアドレスに符号化することをさらに備える、請求項14の方法。
  16. 複数のキャッシュラインを備えるキャッシュから、置換のためのキャッシュラインを識別する手段と;
    インクリメンタ、キャッシュ保全命令、または同じ値のままから選択されたキャッシュラインを識別するための前記手段の値を決定する手段と;
    を備えるシステム。
  17. 前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、請求項16のシステム。
  18. 前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、請求項16のシステム。
  19. 前記キャッシュに記憶される前記保全命令の状態の位置を決定する手段をさらに備える、請求項18のシステム。
  20. 置換される前記キャッシュラインとして識別される前記位置を符号化する手段をさらに備える、請求項18のシステム。
JP2013128940A 2008-02-29 2013-06-19 キャッシュライン置換のためのシステムおよび方法 Expired - Fee Related JP5722389B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/039,954 2008-02-29
US12/039,954 US8464000B2 (en) 2008-02-29 2008-02-29 Systems and methods for cache line replacements

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010548780A Division JP5474836B2 (ja) 2008-02-29 2009-02-03 キャッシュライン置換のためのシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2013232210A true JP2013232210A (ja) 2013-11-14
JP5722389B2 JP5722389B2 (ja) 2015-05-20

Family

ID=40565113

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010548780A Expired - Fee Related JP5474836B2 (ja) 2008-02-29 2009-02-03 キャッシュライン置換のためのシステムおよび方法
JP2013128940A Expired - Fee Related JP5722389B2 (ja) 2008-02-29 2013-06-19 キャッシュライン置換のためのシステムおよび方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010548780A Expired - Fee Related JP5474836B2 (ja) 2008-02-29 2009-02-03 キャッシュライン置換のためのシステムおよび方法

Country Status (7)

Country Link
US (2) US8464000B2 (ja)
EP (1) EP2260388B1 (ja)
JP (2) JP5474836B2 (ja)
KR (1) KR101252744B1 (ja)
CN (2) CN105868128B (ja)
TW (1) TW200945051A (ja)
WO (1) WO2009108463A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464000B2 (en) 2008-02-29 2013-06-11 Qualcomm Incorporated Systems and methods for cache line replacements
US9170955B2 (en) * 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US9158702B2 (en) 2012-12-28 2015-10-13 Intel Corporation Apparatus and method for implementing a scratchpad memory using priority hint
WO2015075673A1 (en) 2013-11-21 2015-05-28 Green Cache AB Systems and methods for reducing first level cache energy by eliminating cache address tags
US9619387B2 (en) * 2014-02-21 2017-04-11 Arm Limited Invalidating stored address translations
US10019368B2 (en) 2014-05-29 2018-07-10 Samsung Electronics Co., Ltd. Placement policy for memory hierarchies
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10331561B1 (en) * 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63178354A (ja) * 1987-01-20 1988-07-22 Hitachi Ltd バツフアメモリのリプレ−ス制御方式
US5875465A (en) * 1996-04-03 1999-02-23 Arm Limited Cache control circuit having a pseudo random address generator
JP2005108262A (ja) * 1994-09-09 2005-04-21 Renesas Technology Corp データ処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS579155B2 (ja) * 1975-02-04 1982-02-19
JPH05189356A (ja) 1992-01-14 1993-07-30 Matsushita Electric Ind Co Ltd メモリ制御装置
JP3740195B2 (ja) 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US6405287B1 (en) * 1999-11-17 2002-06-11 Hewlett-Packard Company Cache line replacement using cache status to bias way selection
US6408364B1 (en) 2000-03-17 2002-06-18 Advanced Micro Devices, Inc. Apparatus and method for implementing a least recently used cache replacement algorithm
US6725337B1 (en) * 2001-05-16 2004-04-20 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
US20040143711A1 (en) * 2002-09-09 2004-07-22 Kimming So Mechanism to maintain data coherency for a read-ahead cache
US7669009B2 (en) * 2004-09-23 2010-02-23 Intel Corporation Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US8464000B2 (en) 2008-02-29 2013-06-11 Qualcomm Incorporated Systems and methods for cache line replacements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63178354A (ja) * 1987-01-20 1988-07-22 Hitachi Ltd バツフアメモリのリプレ−ス制御方式
JP2005108262A (ja) * 1994-09-09 2005-04-21 Renesas Technology Corp データ処理装置
US5875465A (en) * 1996-04-03 1999-02-23 Arm Limited Cache control circuit having a pseudo random address generator

Also Published As

Publication number Publication date
US20130254489A1 (en) 2013-09-26
KR101252744B1 (ko) 2013-04-09
TW200945051A (en) 2009-11-01
JP2011513844A (ja) 2011-04-28
CN105868128B (zh) 2018-05-18
KR20100119820A (ko) 2010-11-10
CN101960433B (zh) 2016-04-27
JP5474836B2 (ja) 2014-04-16
US20090222626A1 (en) 2009-09-03
CN105868128A (zh) 2016-08-17
JP5722389B2 (ja) 2015-05-20
EP2260388A1 (en) 2010-12-15
WO2009108463A1 (en) 2009-09-03
US8464000B2 (en) 2013-06-11
EP2260388B1 (en) 2016-08-31
US8812789B2 (en) 2014-08-19
CN101960433A (zh) 2011-01-26

Similar Documents

Publication Publication Date Title
JP5722389B2 (ja) キャッシュライン置換のためのシステムおよび方法
US8639913B2 (en) Multi-mode register file for use in branch prediction
CN102971720B (zh) 管理翻译旁视缓冲器的系统和方法
JP5254342B2 (ja) n−ウェイキャッシュを用いるシステムおよび方法
KR20100090703A (ko) 구성 가능한 전환 색인 버퍼
EP3149594B1 (en) Method and apparatus for cache access mode selection
JP2008529132A (ja) バンクメモリを動的に管理する方法及び装置
JP2019513271A (ja) 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと
US20210089459A1 (en) Storage control apparatus, processing apparatus, computer system, and storage control method
KR101239272B1 (ko) 하드웨어 프리페치 어드레스 및 산술 연산 값을 계산하기 위한 듀얼 함수 가산기
CN102884506B (zh) 使用用于转换并存储数据值的指令来配置替代存储器存取代理
KR20070118705A (ko) 레지스터 파일에 액세스하기 위해 프리디케이트 값을이용하는 시스템 및 방법
JP2018505489A (ja) システムオンチップにおける動的メモリ利用

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140722

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150325

R150 Certificate of patent or registration of utility model

Ref document number: 5722389

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees