JP5697279B2 - メモリアクセスを正確に予測するための、領域に基づく技術 - Google Patents

メモリアクセスを正確に予測するための、領域に基づく技術 Download PDF

Info

Publication number
JP5697279B2
JP5697279B2 JP2013516745A JP2013516745A JP5697279B2 JP 5697279 B2 JP5697279 B2 JP 5697279B2 JP 2013516745 A JP2013516745 A JP 2013516745A JP 2013516745 A JP2013516745 A JP 2013516745A JP 5697279 B2 JP5697279 B2 JP 5697279B2
Authority
JP
Japan
Prior art keywords
ptb
memory
page
entry
processor
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.)
Expired - Fee Related
Application number
JP2013516745A
Other languages
English (en)
Other versions
JP2013529815A (ja
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2013529815A publication Critical patent/JP2013529815A/ja
Application granted granted Critical
Publication of JP5697279B2 publication Critical patent/JP5697279B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

Landscapes

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

Description

コンピューティングシステム(PC、サーバ等)のパフォーマンス及び効率を高めるために、プロセッサが後で必要とするであろうデータ及び命令をプリフェッチしておくと好適であると考えられる。しかし、従来のプリフェッチ技術は、どのキャッシュラインをプリフェッチすべきか、またはプリフェッチすべきではないか、を正確に予測することができなかった。
本発明の一実施形態におけるプロセッサ及びメモリの一例のブロック図である。 本発明の一実施形態におけるページ・トラッカー・バッファの一例のブロック図である。 本発明の一実施形態におけるアクセス署名(access signature)を利用する方法の一例のフローチャートである。 本発明の一実施形態における再利用署名(reuse signature)を利用する方法の一例のフローチャートである。 本発明の一実施形態におけるシステムの一例のブロック図である。
予測プリフェッチのための方法及び装置が提供される。以下の記載において、多くの特定の詳細を示して本発明の実施形態の完全な理解を促す。しかし、本発明の実施形態がこれら特定の詳細がなくても実施可能であることは当業者であれば理解するところである。また一方で、公知の構造及びデバイスは詳細を示すのではなく、ブロック図という形態で示すことで、本発明の実施形態を曖昧にしないようにしている。
「一実施形態」または「1つの実施形態」といった言い回しは、実施形態との関連で記載された特定の特徴、構造または性質が本発明の少なくとも1つの実施形態に含まれることを意味している。故に、「一実施形態において」または「1つの実施形態において」等の言い回しが本明細書の随所に見られるが、これらは必ずしも同じ実施形態のことを意味しているわけではない。さらに、特定の特徴、構造または性質は、1以上の実施形態において適切な方法で組み合わせることが可能である。
図1は、本発明の一実施形態におけるプロセッサ及びメモリの一例のブロック図である。図1に示すように、システム100は、プロセッサ102とメモリ104とを含んでいる。プロセッサ102は、コア106、レベル1キャッシュ108、トランスレーション・ルックアサイド・バッファ(TLB)110、ページ・トラッカー・バッファ(PTB)112、レベル2キャッシュ114、及びPTBハンドラ116を含んでよい。レベル1キャッシュ108とレベル2キャッシュ114とを含むとして示されているが、プロセッサ102は、任意の数のキャッシュレベルを含んでよい。さらに、プロセッサ102は、仮想アドレスから物理アドレスへのアドレス・トランスレーションを格納することができるTLB110を含むものとして示されているが、本発明はTLBのないプロセッサでも実行可能である。
PTB112は、図2を参照して詳述される、前にコア106によりアクセスされた特定のメモリ領域の部分(例えば、特定のキャッシュページのキャッシュラインのいずれか、またはその他のメモリ領域)を示すエントリを含むことができる。一実施形態では、PTB112は、さらに、コア106により複数回アクセスされた特定のキャッシュページのキャッシュラインを示す(潜在的には、これはキャッシュに置き続けることが最も望ましいであろうキャッシュラインを示している)エントリも含む。
PTBハンドラ116は、後で詳述するように、後でコア106が必要とする命令及びデータの正確な予測を試みることができる。一実施形態では、PTBハンドラ116は、前のインスタンス化中にアクセスされたとPTB112が示すTLB110(例えばTLBミスの後)に追加されたキャッシュページのキャッシュラインをプリフェッチする。PTBハンドラ116は、ページ・トラッカー・メモリ・テーブル118からPTB112エントリを読み出したり、ページ・トラッカー・メモリ・テーブル118にPTB112エントリを書き戻したりすることができる。PTBハンドラ116はさらに、ほかにいずれかのキャッシュラインがコア106からアクセスされると、PTB112のエントリを更新することもできる。PTBハンドラ116は、他のハードウェア(例えばプリフェッチモジュール)、または、ソフトウェア、または、ハードウェアとソフトウェアとの組み合わせに実装することもできる。PTBハンドラ116は、個々にプリフェッチを行うデータ及び命令に適用することができ、他のプリフェッチャーと共存させてもよい。
メモリ104は、スタティックであってもダイナミックであってもよいランダムアクセスメモリ(RAM)等の任意の種類のメモリを表していてよい。一実施形態では、メモリ104は、ダブルデータレート・シンクロノス・ダイナミックRAM(DDR−SDRAM)を表しているが、本発明は任意の種類のメモリに限定されない。メモリ104は、キャッシングまたはアドレッシングをしやすくするために、ページ120等のページに論理的に分割することができる。各ページ120は、固定数のライン122を含んでよい。一実施形態では、ページ120は64個のライン122を含んでいる。別の実施形態では、ページ120は、ファームウェアまたはソフトウェアによってサイズを設定可能なメモリ領域を表している。
図2は、本発明の一実施形態におけるページ・トラッカー・バッファの一例のブロック図である。図2に示すように、ページ・トラッカー・バッファ112は、インデックス208を介してアクセス可能であり、それぞれがアドレス202、アクセス署名204、及び再利用署名206を含む任意の数のエントリを含んでよい。一実施形態では、PTB112は、TLB110と同数のエントリを含んでよい。他の実施形態では、PTB112が、TLB110より多い数のエントリ、または少ない数のエントリを含んでよい。一実施形態では、PTB112は64個のエントリを含んでよい。別の実施形態では、PTB112が1024個のエントリを含んでよい。
アドレス202は28ビットを含むものとして示されているが、ページ120(または別のメモリ領域)を特定するために、これより多い数の、または少ない数のビットを含んでよい。アクセス署名204及び再利用署名206は、64ビットを含むものとして示されているが、ページ120のライン122を特定するために、これより多い数の、または少ない数のビットを含んでもよい。一実施形態では、アクセス署名204に設定されるビットは、TLB110内のページ120が前にアドレッシングされた際に、コア106がアクセスしたページ120のライン122を示している。一実施形態では、再利用署名206に設定されるビットは、TLB110内のページ120が前にアドレッシングされた際に、コア106が複数回アクセスしたページ120のライン122を示している。
図3は、本発明の一実施形態におけるアクセス署名を利用する方法の一例のフローチャートである。図3に示すように、方法は、PTBハンドラ116が、ページ・トラッカー・メモリ・テーブル118に、退避したエントリを書き戻した後に、キャッシュページ120に関するアクセス署名204をPTB112にロードすることから始まる(302)。一実施形態では、PTBハンドラ116は、TLB110ミスの後にアクセス署名204をロードして、置き換えられたアクセス署名をすべて書き戻す。次に、PTBハンドラ116は、例えば前にコア106がアクセスしたとアクセス署名204が示しているライン122を、レベル2キャッシュ114にプリフェッチする(304)。最後に、PTBハンドラ116は、アクセス署名204を更新する(306)。一実施形態では、PTBハンドラ116は、ほかにいずれかのラインが要求されフェッチされたときに取得されたアクセス署名204にビットを加える。別の実施形態では、PTBハンドラ116は、プリフェッチするために、取得したアクセス署名204を利用することもでき、後のページアクセスでメモリに書き戻す際に利用する目的で、アクセス署名を再生することもできる。
図4は、本発明の一実施形態における再利用署名を利用する方法の一例のフローチャートである。図4に示すように、方法は、PTBハンドラ116が、ページ・トラッカー・メモリ・テーブル118に、退避したエントリを書き戻した後に、キャッシュページ120に関する再利用署名206をPTB112にロードすることから始まる(402)。一実施形態では、PTBハンドラ116は、TLB110ミスの後に再利用署名206をロードする。次に、PTBハンドラ116は、再利用署名206が、前にコア106が複数回アクセスしたと示しているレベル2キャッシュ114内のキャッシュラインの置き換えポリシーを優先させてよい(404)。一実施形態では、PTBハンドラ116は、再利用署名206にビットが設定されているキャッシュラインを、最後に利用されてから最も短い時間が経過しているものとして設定することができる。別の実施形態では、PTBハンドラ116は、再利用署名206にビットが設定されていないキャッシュラインを、最後に利用されてから最も長い時間が経過したものとして設定してもよい。最後に、PTBハンドラ116は、ほかにいずれかのラインが複数回要求されると、再利用署名206を更新してよい(406)。
実施形態は数多くの異なるシステムタイプで実装可能である。図5は、本発明の一実施形態におけるシステムのブロック図である。図5に示すように、マイクロプロセッサシステム500はポイントツーポイントインターコネクトであり、ここでは第1のプロセッサ570と第2のプロセッサ580とがポイントツーポイントインターコネクト550により連結されている。図5に示す各プロセッサ570及び580はマルチコアプロセッサであってよく、第1及び第2のプロセッサコアを含んでよい(つまり、プロセッサコア574a及び574b、並びに、プロセッサコア584a及び584b)。プロセッサコアは、本発明の一実施形態におけるPTBハードウェア、ソフトウェア、及び、ファームウェアを含んでよい。
さらに図5を参照すると、第1のプロセッサ570はさらにメモリコントローラハブ(MCH)572と、ポイントツーポイント(P−P)インタフェース576及び578とを含む。同様に、第2のプロセッサ580は、MCH582と、P−Pインタフェース586及び588とを含む。図5に示すように、MCH572及び582は、プロセッサをメモリそれぞれ(つまり、メモリ532及びメモリ534)に連結し、これらはメインメモリ(例えばプロセッサそれぞれにローカルにアタッチされるDRAM)の一部であってよく、これらそれぞれが、本発明の一実施形態におけるページ・トラッカー・メモリ・テーブルを含んでよい。第1のプロセッサ570及び第2のプロセッサ580は、P−Pインターコネクト552及び554をそれぞれ介してチップセット590に連結されてよい。図5に示すように、チップセット590はP−Pインタフェース594及び598を含む。
さらにチップセット590は、チップセット590と高性能グラフィックスエンジン538とを、P−Pインターコネクト539により連結するインタフェース592を含む。そしてチップセット590は、インタフェース596を介して第1のバス516に連結されてよい。図5に示すように、第1のバス516を第2のバス520に連結するバスブリッジ518とともに、様々な入出力(I/O)デバイス514が第1のバス516に連結されてよい。例えば一実施形態では、キーボード/マウス522、通信デバイス526、及び、コード530を含みうるデータ格納ユニット528(例えば、ディスクドライブその他の大容量記憶デバイス)を含む様々なデバイスが第2のバス520に連結されてよい。さらにオーディオI/O524が第2のバス520に連結されてよい。
実施形態は、コードで実装されて、システムをプログラムして命令を行わせるのに利用されうる命令を格納する記憶媒体上に格納されてよい。記憶媒体には、これらに限定はされないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、CD−RW、及び光磁気ディスク、半導体デバイス(ROM、DRAM等のRAM、SRAM、EPROM、フラッシュメモリ、EEPROM(登録商標)、磁気カードまたは光学カード等)、及び、電子命令を格納するのに適した他の種類の媒体が含まれてよい。
本発明を限られた数の実施形態を参照して記載してきたが、当業者には数多くの変形例及び変更例が可能であることが明らかである。添付請求項はこれら全ての変形例及び変更例を本発明の真の精神及び範囲に含むことを意図している。

Claims (15)

  1. 第1のコアと、
    レベル1キャッシュと、
    トランスレーション・ルックアサイド・バッファ(TLB)と、
    レベル2キャッシュと、
    メモリページのアドレスを格納して、前記メモリページの各ラインへのアクセスをトラッキングするためのアクセス署名及び前記メモリページの各ラインに対するアクセスの繰り返しをトラッキングするための再利用署名を格納する複数のエントリを含むページ・トラッカー・バッファ(PTB)と、
    前記PTBにエントリをロードして、前記アクセス署名及び前記再利用署名を更新するPTBハンドラと、
    を備え、
    前記PTBハンドラは、以前にアクセスされたことを前記アクセス署名が示すメモリページのラインを前記レベル2キャッシュにプリフェッチするとともに、以前に複数回アクセスされたことを前記再利用署名が示すラインを優先させる
    プロセッサ。
  2. 前記アクセス署名は64ビットを含む、請求項1に記載のプロセッサ。
  3. 前記PTBは約64個のエントリを含む、請求項1または2に記載のプロセッサ。
  4. 前記PTBは約1024個のエントリを含む、請求項1または2に記載のプロセッサ。
  5. 前記PTBにエントリをロードする前記PTBハンドラは、
    さらに、メモリのページ・トラッカー・メモリ・テーブルから前記PTBにエントリをロードする、請求項1からの何れか1項に記載のプロセッサ。
  6. 前記PTBハンドラはさらに、前記メモリの前記ページ・トラッカー・メモリ・テーブルに、前記PTBから退避したエントリを格納する、請求項に記載のプロセッサ。
  7. 前記PTBにエントリをロードする前記PTBハンドラは、
    さらに、TLBミスの後に、前記PTBにエントリをロードする、請求項1からの何れか1項に記載のプロセッサ。
  8. 命令を実行する第1コア、レベル2キャッシュ、及びメモリページのどのラインがアクセスされたかを示すエントリ及び前記メモリページのどのラインが複数回アクセスされたかを示すエントリを格納するページ・トラッカー・バッファ(PTB)を含むプロセッサと、
    PTBのエントリを含むページ・トラッカー・メモリ・テーブルを格納し、前記プロセッサに連結されたダイナミック・ランダムアクセスメモリ(DRAM)と、
    前記ページ・トラッカー・メモリ・テーブルから前記PTBにエントリをロードして、前にアクセスされたとして前記PTBのエントリが示しているメモリページのラインを前記レベル2キャッシュにロードするとともに、前に複数回アクセスされたと前記PTBのエントリが示すラインを優先させるPTBハンドラと
    を備えるシステム。
  9. 前記PTBハンドラはさらに、メモリページのラインがアクセスされた旨を示すべく、前記PTBのエントリを更新する、請求項に記載のシステム。
  10. 前記PTBハンドラはさらに、前記ページ・トラッカー・メモリ・テーブルに前記PTBのエントリを書き戻す、請求項8または9に記載のシステム。
  11. 前記プロセッサは、トランスレーション・ルックアサイド・バッファ(TLB)をさらに有し、
    前記PTBハンドラは、TLBミスがあるとPTBのエントリをロードする、請求項8から10のいずれか1項に記載のシステム。
  12. メモリページに関連しており、前記メモリページのラインが前にアクセスされたかを示す情報を含むアクセス署名を読み出す段階と、
    前にアクセスされたと前記アクセス署名が示しているメモリページのラインを、プロセッサのレベル2キャッシュにロードする段階と
    前記メモリページに関連しており、前記メモリページのラインが前に複数回アクセスされたかを示す情報を含む再利用署名を再取得する段階と、
    前に複数回アクセスされたと前記再利用署名が示しているラインを優先させる段階と
    を備える方法。
  13. メモリに格納されている署名テーブルから前記アクセス署名を取得する段階をさらに備える、請求項12に記載の方法。
  14. 前記プロセッサが前記メモリページのラインにアクセスすると、前記アクセス署名を更新する段階をさらに備える、請求項13に記載の方法。
  15. 前記アクセス署名を退避させるとき、前記署名テーブルに前記アクセス署名を格納する段階をさらに備える、請求項14に記載の方法。
JP2013516745A 2010-06-23 2011-06-22 メモリアクセスを正確に予測するための、領域に基づく技術 Expired - Fee Related JP5697279B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/821,935 2010-06-23
US12/821,935 US9418011B2 (en) 2010-06-23 2010-06-23 Region based technique for accurately predicting memory accesses
PCT/US2011/041511 WO2011163407A2 (en) 2010-06-23 2011-06-22 Region based technique for accurately predicting memory accesses

Publications (2)

Publication Number Publication Date
JP2013529815A JP2013529815A (ja) 2013-07-22
JP5697279B2 true JP5697279B2 (ja) 2015-04-08

Family

ID=45353674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013516745A Expired - Fee Related JP5697279B2 (ja) 2010-06-23 2011-06-22 メモリアクセスを正確に予測するための、領域に基づく技術

Country Status (7)

Country Link
US (1) US9418011B2 (ja)
EP (1) EP2585916B1 (ja)
JP (1) JP5697279B2 (ja)
KR (1) KR101485651B1 (ja)
CN (2) CN106294212B (ja)
TW (2) TWI603264B (ja)
WO (1) WO2011163407A2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9418011B2 (en) 2010-06-23 2016-08-16 Intel Corporation Region based technique for accurately predicting memory accesses
US8683136B2 (en) * 2010-12-22 2014-03-25 Intel Corporation Apparatus and method for improving data prefetching efficiency using history based prefetching
US9092341B2 (en) 2012-07-10 2015-07-28 International Business Machines Corporation Methods of cache preloading on a partition or a context switch
US9424031B2 (en) * 2013-03-13 2016-08-23 Intel Corporation Techniques for enabling bit-parallel wide string matching with a SIMD register
JP6088951B2 (ja) * 2013-09-20 2017-03-01 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム
US9513805B2 (en) 2014-04-15 2016-12-06 International Business Machines Corporation Page table including data fetch width indicator
US9582282B2 (en) * 2014-07-17 2017-02-28 Arm Limited Prefetching using a prefetch lookup table identifying previously accessed cache lines
US9817764B2 (en) * 2014-12-14 2017-11-14 Via Alliance Semiconductor Co., Ltd Multiple data prefetchers that defer to one another based on prefetch effectiveness by memory access type
US20160255169A1 (en) * 2015-02-27 2016-09-01 Futurewei Technologies, Inc. Method and system for smart object eviction for proxy cache
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US10482010B2 (en) * 2017-06-29 2019-11-19 Intel Corporation Persistent host memory buffer
KR20200085522A (ko) 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법
CN110442382B (zh) * 2019-07-31 2021-06-15 西安芯海微电子科技有限公司 预取缓存控制方法、装置、芯片以及计算机可读存储介质
KR20210108749A (ko) * 2020-02-26 2021-09-03 삼성전자주식회사 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04259048A (ja) 1991-02-14 1992-09-14 Fujitsu Ltd 統計情報による先読みデータ制御方式
US5931945A (en) * 1994-04-29 1999-08-03 Sun Microsystems, Inc. Graphic system for masking multiple non-contiguous bytes having decode logic to selectively activate each of the control lines based on the mask register bits
US6055621A (en) * 1996-02-12 2000-04-25 International Business Machines Corporation Touch history table
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
US5960454A (en) * 1996-12-19 1999-09-28 International Business Machines Corporation Avoiding cache collisions between frequently accessed, pinned routines or data structures
US6317810B1 (en) * 1997-06-25 2001-11-13 Sun Microsystems, Inc. Microprocessor having a prefetch cache
US6047363A (en) * 1997-10-14 2000-04-04 Advanced Micro Devices, Inc. Prefetching data using profile of cache misses from earlier code executions
US5941981A (en) 1997-11-03 1999-08-24 Advanced Micro Devices, Inc. System for using a data history table to select among multiple data prefetch algorithms
US6490654B2 (en) * 1998-07-31 2002-12-03 Hewlett-Packard Company Method and apparatus for replacing cache lines in a cache memory
US6223309B1 (en) * 1998-10-02 2001-04-24 International Business Machines Corporation Method and apparatus for ECC logic test
JP3512678B2 (ja) * 1999-05-27 2004-03-31 富士通株式会社 キャッシュメモリ制御装置および計算機システム
US6804769B1 (en) 2000-02-18 2004-10-12 Hewlett-Packard Development Company, L.P. Unified buffer for tracking disparate long-latency operations in a microprocessor
US6535966B1 (en) 2000-05-17 2003-03-18 Sun Microsystems, Inc. System and method for using a page tracking buffer to reduce main memory latency in a computer system
US6678795B1 (en) * 2000-08-15 2004-01-13 International Business Machines Corporation Method and apparatus for memory prefetching based on intra-page usage history
EP1182559B1 (en) * 2000-08-21 2009-01-21 Texas Instruments Incorporated Improved microprocessor
US6523093B1 (en) 2000-09-29 2003-02-18 Intel Corporation Prefetch buffer allocation and filtering system
US6640285B1 (en) * 2000-10-26 2003-10-28 Emc Corporation Method and apparatus for improving the efficiency of cache memories using stored activity measures
US6832296B2 (en) * 2002-04-09 2004-12-14 Ip-First, Llc Microprocessor with repeat prefetch instruction
US7020762B2 (en) * 2002-12-24 2006-03-28 Intel Corporation Method and apparatus for determining a dynamic random access memory page management implementation
US7194582B1 (en) * 2003-05-30 2007-03-20 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US7467131B1 (en) * 2003-09-30 2008-12-16 Google Inc. Method and system for query data caching and optimization in a search engine system
US7356651B2 (en) * 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
US7975108B1 (en) * 2004-03-25 2011-07-05 Brian Holscher Request tracking data prefetcher apparatus
US7386679B2 (en) 2004-04-15 2008-06-10 International Business Machines Corporation System, method and storage medium for memory management
US7950012B2 (en) * 2005-03-16 2011-05-24 Oracle America, Inc. Facilitating communication and synchronization between main and scout threads
US7496730B2 (en) * 2005-04-15 2009-02-24 Microsoft Corporation System and method for reducing the number of translation buffer invalidates an operating system needs to issue
JP4160589B2 (ja) 2005-10-31 2008-10-01 富士通株式会社 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法
US7526614B2 (en) * 2005-11-30 2009-04-28 Red Hat, Inc. Method for tuning a cache
US7386673B2 (en) 2005-11-30 2008-06-10 Red Hat, Inc. Method for tracking of non-resident pages
WO2007068122A1 (en) * 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
GB0603552D0 (en) * 2006-02-22 2006-04-05 Advanced Risc Mach Ltd Cache management within a data processing apparatus
US7478197B2 (en) * 2006-07-18 2009-01-13 International Business Machines Corporation Adaptive mechanisms for supplying volatile data copies in multiprocessor systems
JP2008102745A (ja) 2006-10-19 2008-05-01 Toshiba Corp 命令キャッシュメモリのプリフェッチ機構
US7797503B2 (en) * 2007-06-26 2010-09-14 International Business Machines Corporation Configurable memory system and method for providing atomic counting operations in a memory device
US8423715B2 (en) * 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US9569363B2 (en) * 2009-03-30 2017-02-14 Via Technologies, Inc. Selective prefetching of physically sequential cache line to cache line that includes loaded page table entry
US8161246B2 (en) * 2009-03-30 2012-04-17 Via Technologies, Inc. Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
US8677049B2 (en) * 2009-04-13 2014-03-18 Advanced Micro Devices, Inc. Region prefetcher and methods thereof
US8332587B2 (en) * 2009-05-28 2012-12-11 International Business Machines Corporation Cache line use history based done bit modification to I-cache replacement scheme
US8291169B2 (en) * 2009-05-28 2012-10-16 International Business Machines Corporation Cache line use history based done bit modification to D-cache replacement scheme
CN101719105B (zh) * 2009-12-31 2012-01-04 中国科学院计算技术研究所 一种多核系统中对内存访问的优化方法和系统
US9418011B2 (en) 2010-06-23 2016-08-16 Intel Corporation Region based technique for accurately predicting memory accesses

Also Published As

Publication number Publication date
EP2585916A2 (en) 2013-05-01
TWI603264B (zh) 2017-10-21
EP2585916A4 (en) 2014-03-19
WO2011163407A3 (en) 2012-04-12
CN106294212B (zh) 2020-02-21
JP2013529815A (ja) 2013-07-22
CN103038748A (zh) 2013-04-10
WO2011163407A2 (en) 2011-12-29
TW201224923A (en) 2012-06-16
US9418011B2 (en) 2016-08-16
EP2585916B1 (en) 2019-09-11
CN103038748B (zh) 2016-10-05
US20110320762A1 (en) 2011-12-29
KR20130040952A (ko) 2013-04-24
TWI590156B (zh) 2017-07-01
TW201528136A (zh) 2015-07-16
KR101485651B1 (ko) 2015-01-22
CN106294212A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
JP5697279B2 (ja) メモリアクセスを正確に予測するための、領域に基づく技術
KR101379596B1 (ko) Tlb 프리페칭
US10474584B2 (en) Storing cache metadata separately from integrated circuit containing cache controller
US7739477B2 (en) Multiple page size address translation incorporating page size prediction
US7516275B2 (en) Pseudo-LRU virtual counter for a locking cache
US6782453B2 (en) Storing data in memory
KR101139565B1 (ko) 인-메모리, 인-페이지 디렉토리 캐시 일관성 기법
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
TW201312461A (zh) 微處理器及縮短尋訪時間之方法
CN112416817B (zh) 预取方法、信息处理装置、设备以及存储介质
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
US8019968B2 (en) 3-dimensional L2/L3 cache array to hide translation (TLB) delays
CN108874691B (zh) 数据预取方法和内存控制器
US8019969B2 (en) Self prefetching L3/L4 cache mechanism
US7984263B2 (en) Structure for a memory-centric page table walker
US20240220415A1 (en) Tiered memory caching
CN111198827B (zh) 页表预取方法及装置
TW202331713A (zh) 用於儲存和存取在記憶體單元中的資料運算元之方法
JP2008515075A (ja) フェッチ・バーストを用いて情報をキャッシュ・モジュールに与える装置及び方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140812

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141119

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20141212

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: 20150113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150209

R150 Certificate of patent or registration of utility model

Ref document number: 5697279

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees