JP5615927B2 - データストリームのためのストアアウェアプリフェッチ - Google Patents
データストリームのためのストアアウェアプリフェッチ Download PDFInfo
- Publication number
- JP5615927B2 JP5615927B2 JP2012528890A JP2012528890A JP5615927B2 JP 5615927 B2 JP5615927 B2 JP 5615927B2 JP 2012528890 A JP2012528890 A JP 2012528890A JP 2012528890 A JP2012528890 A JP 2012528890A JP 5615927 B2 JP5615927 B2 JP 5615927B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- data stream
- cache
- access
- prefetch
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
Description
Claims (15)
- 下位レベルメモリにおける複数の連続するデータブロックに対応するデータストリームへのアクセスを検出し、
前記アクセスを検出することと、前記データストリームへのキャッシュミスの数が既定の閾値に達していると決定することとに応答して、
前記キャッシュミスの数が前記既定の閾値に達した後に書き込み許可をリクエストする前記データストリームへのアクセスが無い場合、下位レベルメモリから前記データストリームの一部を書き込み許可無しでプリフェッチし、
前記キャッシュミスの数が前記既定の閾値に達した後に書き込み許可をリクエストする前記データストリームへのアクセスがある場合、下位レベルメモリから前記データストリームの一部を書き込み許可付きでプリフェッチするように構成されたプリフェッチユニットを備える、コンピューティングシステム。 - 前記アクセスを検出することと、前記データストリームへのキャッシュミスの数が既定の閾値に達していると決定することとに応答して、前記プリフェッチユニットが、
前記アクセスが書き込み許可をリクエストし、前記アクセスが前記キャッシュミスの数を前記既定の閾値に達しさせると決定することに応答して、下位レベルメモリから前記データストリームの一部を書き込み許可付きでプリフェッチするようにさらに構成される、請求項1に記載のコンピューティングシステム。 - 前記プリフェッチユニットは、前記アクセスのアドレスと、初期のプリフェッチキャッシュラインのアドレスとの間の整数デルタ値を決定するようにさらに構成されている、請求項1に記載のコンピューティングシステム。
- 前記プリフェッチユニットは、前記データストリームに対応する特性データを記憶するようにさらに構成されている、請求項1に記載のコンピューティングシステム。
- 特定のデータストリームに対応する前記特性データは、データストリーム識別子(ID)、各要求リクエストの読み出し/書き込みアクセスタイプ、各要求リクエストのアドレス、要求リクエストのキャッシュヒット/ミス状況、および要求リクエストに対応する初期のプリフェッチアドレスのうちの少なくとも1つを含む、請求項4に記載のコンピューティングシステム。
- 前記特性データは表に記憶されており、
回路が、前記キャッシュミスの数が前記既定の閾値に達した後に、書き込み許可をリクエストする前記データストリームへの第1のアクセスを検出することに応答してスティッキ記憶ビットを設定するようにさらに構成されており、
前記スティッキ記憶ビットは一旦設定されると、前記データストリームデータが前記表内に有効な入力を有する間、その設定を維持する、請求項4に記載のコンピューティングシステム。 - 前記特性データは表に記憶されており、
前記プリフェッチユニットは、新規のデータストリームのキャッシュミスアドレスが前記表に現在記憶されているデータストリームのアドレスに隣接しないことを検出することに応答して、前記新規のデータストリームを前記表に割り当てるようにさらに構成されている、請求項4に記載のコンピューティングシステム。 - 下位レベルメモリにおける複数の連続するデータブロックに対応するデータストリームへのアクセスを検出することと、
前記アクセスを検出することと、前記データストリームへのキャッシュミスの数が既定の閾値に達していると決定することとに応答して、
前記キャッシュミスの数が前記既定の閾値に達した後に書き込み許可をリクエストする前記データストリームへのアクセスが無い場合、下位レベルメモリから前記データストリームの一部を書き込み許可無しでプリフェッチすることと、
前記キャッシュミスの数が前記既定の閾値に達した後に書き込み許可をリクエストする前記データストリームへのアクセスがある場合、下位レベルメモリから前記データストリームの一部を書き込み許可付きでプリフェッチすることと、を含む、方法。 - 前記アクセスを検出することと、前記データストリームへのキャッシュミスの数が既定の閾値に達していると決定することとに応答して、前記方法は、
前記アクセスが書き込み許可をリクエストし、前記アクセスが前記キャッシュミスの数を前記既定の閾値に達しさせると決定することに応答して、前記下位レベルメモリからの前記データストリームの一部を書き込み許可付きでプリフェッチすることをさらに含む、請求項8に記載の方法。 - 現在の要求リクエストのアドレスと、初期の隣接しないプリフェッチキャッシュラインのアドレスとの間の整数デルタ値を決定することをさらに含む、請求項8に記載の方法。
- 前記データストリームに対応する特性データを記憶することをさらに含む、請求項8に記載の方法。
- キャッシュに連結するように構成された第1のインターフェースと、
下位レベルメモリに連結するように構成された第2のインターフェースと、
制御回路とを備えるプリフェッチユニットであって、
前記制御回路は、
前記下位レベルメモリにおける複数の連続するデータブロックに対応するデータストリームへのアクセスを検出することと、前記データストリームへのキャッシュミスの数が既定の閾値に達していると決定することとに応答して、
前記キャッシュミスの数が前記既定の閾値に達した後に書き込み許可をリクエストする前記データストリームへのアクセスが無い場合、下位レベルメモリから前記データストリームの一部を書き込み許可無しでプリフェッチし、
前記キャッシュミスの数が前記既定の閾値に達した後に書き込み許可をリクエストする前記データストリームへのアクセスがある場合、前記下位レベルメモリから前記データストリームの一部を書き込み許可付きでプリフェッチするように構成されている、プリフェッチユニット。 - 前記アクセスを検出することと、前記データストリームへのキャッシュミスの数が既定の閾値に達していると決定することとに応答して、前記制御回路は、
前記アクセスが書き込み許可をリクエストし、前記アクセスが前記キャッシュミスの数を前記既定の閾値に達しさせると決定することに応答して、前記下位レベルメモリから前記データストリームの一部を書き込み許可付きでプリフェッチするようにさらに構成されている、請求項12に記載のプリフェッチユニット。 - 特定のデータストリームに対応する特性データを記憶するように各々が構成された複数の入力を含む表をさらに備え、特定のデータストリームに対応する前記特性データは、データストリーム識別子(ID)、各要求リクエストの読み出し/書き込みアクセスタイプ、各要求リクエストのアドレス、要求リクエストのキャッシュヒット/ミス状況、および要求リクエストに対応する初期のプリフェッチアドレスのうちの少なくとも1つを含む、請求項12に記載のプリフェッチユニット。
- 前記下位レベルメモリからの前記データストリームの一部は、1つ以上の連続するキャッシュラインに対応する、請求項12に記載のプリフェッチユニット。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/558,465 US8667225B2 (en) | 2009-09-11 | 2009-09-11 | Store aware prefetching for a datastream |
US12/558,465 | 2009-09-11 | ||
PCT/US2010/048241 WO2011031837A1 (en) | 2009-09-11 | 2010-09-09 | Store aware prefetching for a datastream |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013504815A JP2013504815A (ja) | 2013-02-07 |
JP5615927B2 true JP5615927B2 (ja) | 2014-10-29 |
Family
ID=43242176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012528890A Active JP5615927B2 (ja) | 2009-09-11 | 2010-09-09 | データストリームのためのストアアウェアプリフェッチ |
Country Status (7)
Country | Link |
---|---|
US (1) | US8667225B2 (ja) |
EP (1) | EP2476060B1 (ja) |
JP (1) | JP5615927B2 (ja) |
KR (1) | KR101614867B1 (ja) |
CN (1) | CN102640124B (ja) |
IN (1) | IN2012DN02977A (ja) |
WO (1) | WO2011031837A1 (ja) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US8832415B2 (en) * | 2010-01-08 | 2014-09-09 | International Business Machines Corporation | Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests |
US8751748B2 (en) * | 2010-01-15 | 2014-06-10 | International Business Machines Corporation | Reader set encoding for directory of shared cache memory in multiprocessor system |
US8533399B2 (en) * | 2010-01-15 | 2013-09-10 | International Business Machines Corporation | Cache directory look-up re-use as conflict check mechanism for speculative memory requests |
US8509254B2 (en) * | 2010-06-28 | 2013-08-13 | Intel Corporation | Direct memory access engine physical memory descriptors for multi-media demultiplexing operations |
US8583894B2 (en) * | 2010-09-09 | 2013-11-12 | Advanced Micro Devices | Hybrid prefetch method and apparatus |
US8880847B2 (en) * | 2010-09-28 | 2014-11-04 | Texas Instruments Incorporated | Multistream prefetch buffer |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US9098418B2 (en) * | 2012-03-20 | 2015-08-04 | Apple Inc. | Coordinated prefetching based on training in hierarchically cached processors |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
US9311251B2 (en) | 2012-08-27 | 2016-04-12 | Apple Inc. | System cache with sticky allocation |
GB2513042B (en) * | 2013-01-15 | 2015-09-30 | Imagination Tech Ltd | Improved control of pre-fetch traffic |
US9384136B2 (en) * | 2013-04-12 | 2016-07-05 | International Business Machines Corporation | Modification of prefetch depth based on high latency event |
WO2014202825A1 (en) * | 2013-06-20 | 2014-12-24 | Nokia Corporation | Microprocessor apparatus |
JP6119523B2 (ja) * | 2013-09-20 | 2017-04-26 | 富士通株式会社 | 演算処理装置、演算処理装置の制御方法及びプログラム |
WO2015089488A1 (en) | 2013-12-12 | 2015-06-18 | Memory Technologies Llc | Channel optimized storage modules |
JP5936152B2 (ja) * | 2014-05-17 | 2016-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | メモリアクセストレース方法 |
US9529727B2 (en) | 2014-05-27 | 2016-12-27 | Qualcomm Incorporated | Reconfigurable fetch pipeline |
KR101757098B1 (ko) | 2014-12-14 | 2017-07-26 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 메모리 액세스에 의한 효용성 기반 공격성 레벨 프리패칭 |
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 |
US9971694B1 (en) | 2015-06-24 | 2018-05-15 | Apple Inc. | Prefetch circuit for a processor with pointer optimization |
US10324832B2 (en) * | 2016-05-25 | 2019-06-18 | Samsung Electronics Co., Ltd. | Address based multi-stream storage device access |
US10042749B2 (en) | 2015-11-10 | 2018-08-07 | International Business Machines Corporation | Prefetch insensitive transactional memory |
JP6734760B2 (ja) | 2015-11-10 | 2020-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | プリフェッチ・インセンシティブのトランザクション・メモリ |
US10152419B2 (en) | 2015-11-10 | 2018-12-11 | International Business Machines Corporation | Deferred response to a prefetch request |
US10474576B2 (en) | 2015-11-10 | 2019-11-12 | International Business Machines Corporation | Prefetch protocol for transactional memory |
US9904624B1 (en) | 2016-04-07 | 2018-02-27 | Apple Inc. | Prefetch throttling in a multi-core system |
US10180905B1 (en) | 2016-04-07 | 2019-01-15 | Apple Inc. | Unified prefetch circuit for multi-level caches |
US10169240B2 (en) * | 2016-04-08 | 2019-01-01 | Qualcomm Incorporated | Reducing memory access bandwidth based on prediction of memory request size |
US10649904B2 (en) | 2016-12-12 | 2020-05-12 | Samsung Electronics Co., Ltd. | System and method for store streaming detection and handling |
US10331567B1 (en) | 2017-02-17 | 2019-06-25 | Apple Inc. | Prefetch circuit with global quality factor to reduce aggressiveness in low power modes |
KR102429429B1 (ko) | 2017-03-24 | 2022-08-04 | 삼성전자주식회사 | 전자 장치 및 그 동작방법 |
CN109669880A (zh) * | 2017-10-13 | 2019-04-23 | 展讯通信(上海)有限公司 | 一种数据预取方法及装置、微处理器 |
CN109408412B (zh) * | 2018-10-24 | 2021-04-30 | 龙芯中科技术股份有限公司 | 内存预取控制方法、装置及设备 |
US10963249B2 (en) | 2018-11-02 | 2021-03-30 | International Business Machines Corporation | Processor prefetcher mode governor for switching between prefetch modes |
CN110427332B (zh) * | 2019-08-05 | 2021-08-20 | 上海兆芯集成电路有限公司 | 数据预取装置、数据预取方法及微处理器 |
CN114065947B (zh) * | 2021-11-15 | 2022-07-22 | 深圳大学 | 一种数据访问推测方法、装置、存储介质及电子设备 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778436A (en) | 1995-03-06 | 1998-07-07 | Duke University | Predictive caching system and method based on memory access which previously followed a cache miss |
US5848254A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Multiprocessing system using an access to a second memory space to initiate software controlled data prefetch into a first address space |
US6401193B1 (en) | 1998-10-26 | 2002-06-04 | Infineon Technologies North America Corp. | Dynamic data prefetching based on program counter and addressing mode |
US6282614B1 (en) | 1999-04-15 | 2001-08-28 | National Semiconductor Corporation | Apparatus and method for reducing the power consumption of a microprocessor with multiple levels of caches |
US6457101B1 (en) | 1999-12-20 | 2002-09-24 | Unisys Corporation | System and method for providing the speculative return of cached data within a hierarchical memory system |
US6865652B1 (en) | 2000-06-02 | 2005-03-08 | Advanced Micro Devices, Inc. | FIFO with undo-push capability |
US6571318B1 (en) | 2001-03-02 | 2003-05-27 | Advanced Micro Devices, Inc. | Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism |
JP4030314B2 (ja) * | 2002-01-29 | 2008-01-09 | 富士通株式会社 | 演算処理装置 |
US7107408B2 (en) | 2002-03-22 | 2006-09-12 | Newisys, Inc. | Methods and apparatus for speculative probing with early completion and early request |
US7103725B2 (en) | 2002-03-22 | 2006-09-05 | Newisys, Inc. | Methods and apparatus for speculative probing with early completion and delayed request |
US7003633B2 (en) | 2002-11-04 | 2006-02-21 | Newisys, Inc. | Methods and apparatus for managing probe requests |
US7099999B2 (en) * | 2003-09-30 | 2006-08-29 | International Business Machines Corporation | Apparatus and method for pre-fetching data to cached memory using persistent historical page table data |
US7487296B1 (en) | 2004-02-19 | 2009-02-03 | Sun Microsystems, Inc. | Multi-stride prefetcher with a recurring prefetch table |
JP4532931B2 (ja) * | 2004-02-25 | 2010-08-25 | 株式会社日立製作所 | プロセッサ、および、プリフェッチ制御方法 |
US7836259B1 (en) | 2004-04-02 | 2010-11-16 | Advanced Micro Devices, Inc. | Prefetch unit for use with a cache memory subsystem of a cache memory hierarchy |
US7434004B1 (en) | 2004-06-17 | 2008-10-07 | Sun Microsystems, Inc. | Prefetch prediction |
US7350029B2 (en) * | 2005-02-10 | 2008-03-25 | International Business Machines Corporation | Data stream prefetching in a microprocessor |
US7380066B2 (en) | 2005-02-10 | 2008-05-27 | International Business Machines Corporation | Store stream prefetching in a microprocessor |
US7594078B2 (en) * | 2006-02-09 | 2009-09-22 | International Business Machines Corporation | D-cache miss prediction and scheduling |
US7917731B2 (en) * | 2006-08-02 | 2011-03-29 | Qualcomm Incorporated | Method and apparatus for prefetching non-sequential instruction addresses |
US20090106498A1 (en) | 2007-10-23 | 2009-04-23 | Kevin Michael Lepak | Coherent dram prefetcher |
US7958317B2 (en) * | 2008-08-04 | 2011-06-07 | International Business Machines Corporation | Cache directed sequential prefetch |
-
2009
- 2009-09-11 US US12/558,465 patent/US8667225B2/en active Active
-
2010
- 2010-09-09 WO PCT/US2010/048241 patent/WO2011031837A1/en active Application Filing
- 2010-09-09 CN CN201080051152.4A patent/CN102640124B/zh active Active
- 2010-09-09 KR KR1020127009323A patent/KR101614867B1/ko active IP Right Grant
- 2010-09-09 JP JP2012528890A patent/JP5615927B2/ja active Active
- 2010-09-09 EP EP10755043.6A patent/EP2476060B1/en active Active
- 2010-09-09 IN IN2977DEN2012 patent/IN2012DN02977A/en unknown
Also Published As
Publication number | Publication date |
---|---|
JP2013504815A (ja) | 2013-02-07 |
US20110066811A1 (en) | 2011-03-17 |
EP2476060B1 (en) | 2015-06-17 |
CN102640124A (zh) | 2012-08-15 |
EP2476060A1 (en) | 2012-07-18 |
US8667225B2 (en) | 2014-03-04 |
IN2012DN02977A (ja) | 2015-07-31 |
WO2011031837A1 (en) | 2011-03-17 |
CN102640124B (zh) | 2015-11-25 |
KR101614867B1 (ko) | 2016-04-22 |
KR20120070584A (ko) | 2012-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5615927B2 (ja) | データストリームのためのストアアウェアプリフェッチ | |
US9524164B2 (en) | Specialized memory disambiguation mechanisms for different memory read access types | |
US9448936B2 (en) | Concurrent store and load operations | |
US9940132B2 (en) | Load-monitor mwait | |
US9213551B2 (en) | Return address prediction in multithreaded processors | |
US9026705B2 (en) | Interrupt processing unit for preventing interrupt loss | |
US7743232B2 (en) | Multiple-core processor with hierarchical microcode store | |
US8166251B2 (en) | Data prefetcher that adjusts prefetch stream length based on confidence | |
US8412911B2 (en) | System and method to invalidate obsolete address translations | |
US8140769B2 (en) | Data prefetcher | |
US20180349280A1 (en) | Snoop filtering for multi-processor-core systems | |
US10338928B2 (en) | Utilizing a stack head register with a call return stack for each instruction fetch | |
US20100318998A1 (en) | System and Method for Out-of-Order Resource Allocation and Deallocation in a Threaded Machine | |
US11263012B2 (en) | Method for migrating CPU state from an inoperable core to a spare core | |
US20130024647A1 (en) | Cache backed vector registers | |
US10108548B2 (en) | Processors and methods for cache sparing stores | |
WO2009054959A1 (en) | Coherent dram prefetcher | |
US8046538B1 (en) | Method and mechanism for cache compaction and bandwidth reduction | |
US8504805B2 (en) | Processor operating mode for mitigating dependency conditions between instructions having different operand sizes | |
US11169812B2 (en) | Throttling while managing upstream resources | |
JP2023550231A (ja) | 局所性を欠くデータを対象とするメモリ要求のプリフェッチ無効化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130708 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140327 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140430 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140731 |
|
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: 20140820 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140910 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5615927 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |