CN103080907A - 用于模糊步幅预取的方法和装置 - Google Patents

用于模糊步幅预取的方法和装置 Download PDF

Info

Publication number
CN103080907A
CN103080907A CN201180041651XA CN201180041651A CN103080907A CN 103080907 A CN103080907 A CN 103080907A CN 201180041651X A CN201180041651X A CN 201180041651XA CN 201180041651 A CN201180041651 A CN 201180041651A CN 103080907 A CN103080907 A CN 103080907A
Authority
CN
China
Prior art keywords
stride
prefetch
data access
machine
prediction
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
CN201180041651XA
Other languages
English (en)
Other versions
CN103080907B (zh
Inventor
S·胡
Y·吴
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 CN103080907A publication Critical patent/CN103080907A/zh
Application granted granted Critical
Publication of CN103080907B publication Critical patent/CN103080907B/zh
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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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
    • 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/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Abstract

在一个实施例中,本发明包括预取引擎,该预取引擎检测存储器中的数据访问步幅何时落入范围之内、计算预测的下一步幅、使用所述预测的下一步幅选择性地预取高速缓存行,并且动态地控制预取。还描述并要求保护了其他的实施例。

Description

用于模糊步幅预取的方法和装置
背景技术
在现代的处理器中,从存储器预取允许将将来可能需要的数据和指令加载到高速缓存中。用这种方法可能能够避免与随后传输(如果没有预取,如果发生高速缓存缺失)相关的额外开销。但是,预取不需要的高速缓存行将会浪费存储器带宽和污染高速缓存。
附图说明
图1是根据本发明的一个实施例的用于模糊步幅预取的示例性装置的框图。
图2是根据本发明的实施例的示例性模糊步幅预取引擎的框图。
图3是根据本发明的实施例的用于检测和响应模糊步幅的流程图。
图4是根据本发明的实施例的用于预测步幅的流程图。
图5是根据本发明的实施例的系统的框图。
具体实施方式
在以下的描述中,出于解释的目的,陈述了多个具体细节来提供对本发明的透彻理解。但是,对本领域的技术人员来说显而易见的是没有这些具体细节也能实施本发明的实施例。在其他的实例中,为了避免模糊本发明,以框图的形式示出了结构和设备。
贯穿该说明书的对“一个实施例”或“实施例”的引用是指结合实施例描述的特定特征、结构或特性包含于本发明的至少一个实施例中。因此,贯穿该说明书在各个位置处出现的短语“在一个实施例中”或“在实施例中”不必全指同一实施例。此外,可以以任意适当的方式在一个或多个实施例中结合特定特征、结构或特性。
现在参考图1,示出了根据本发明的一个实施例的用于模糊步幅预取的示例性装置的框图。如图1所示,装置100可以包括处理器102和存储器104,存储器例如为动态随机存取存储器(DRAM)。处理器102可以包括内核106-110、高速缓存112和模糊步幅预取引擎116。内核106-110能够彼此独立地执行指令,并且可以包括任意类型的架构。虽然图示出处理器102包括三个内核,但是处理器102可以具有任意数量的内核,并且可以包括其他未示出的部件或控制器。在一个实施例中,处理器102是片上系统(SOC)。
高速缓存112可以包括任意数量的独立高速缓存,并且可以包含任意数量的条目。虽然高速缓存112意图作为低延迟级别的一种高速缓存,但是可以用任意层次级别的任意存储器技术来实现高速缓存112。在一个实施例中,高速缓存112存储多个高速缓存行(例如行114),来从存储器104的区域(例如区域118)进行取出或预取。但是,可以通过在各个其他级别的高速缓存或存储器之间进行预取来实现本发明。
模糊步幅预取引擎116可以实现例如参考图3和图4所述的用于模糊步幅预取的方法,并且可以具有参考图2所述的架构。模糊步幅预取引擎116可以与处理器102分离并且可以用硬件、软件或硬件和软件的结合来实现。
如在本文中所使用的,步幅124指的是存储器地址之间的距离。在一些实施例中,步幅124指的是由处理器102请求的连续存储器读取的地址之间的当前步幅或距离。在其他的实施例中,步幅124指的是对于接下来将请求的存储器地址并且可能有利于预取的预测步幅或猜测,这在下文中将更详细地描述。
现在参考图2,示出了根据本发明的实施例的示例性模糊步幅预取引擎的框图。如图2所示,模糊步幅预取引擎116可以包括预取服务202、范围204、计数206、阈值208和预测步幅210。预测服务202可以包括检测服务212、预测服务214、预取服务216和控制服务218,这些服务可以分别地检测何时存储器中的数据访问步幅落入范围之内、计算预测的下一步幅、使用预测的下一步幅选择性地预取一个或多个高速缓存行,以及由外部模块提供自适应控制。
检测服务212可以检测何时存储器中的数据访问步幅(例如存储器104中的步幅124)落入范围204之内。如在本文中使用的,模糊步幅指的是主要落入窄范围204(例如,范围204可以是128字节至192字节,即距离先前数据访问两个或三个高速缓存行)之内的非常量地址步幅124的流(例如,通过处理器102的存储器读取流)。虽然一些应用可能具有从模糊步幅预取获益的数据访问模式,但是其他的应用可能没有,并且本发明可以结合其他的预取技术来实施。在一个实施例中,检测服务212使用基于信用的系统来跟踪一系列的地址步幅124是否落入范围204之内。在一个实施例中,当数据访问步幅124落入范围204之内时,检测服务212增加计数206,而当数据访问步幅124落到范围204之外时,检测服务212减少计数206。
预测服务214可以计算预测步幅210。在一个实施例中,预测服务214对最近先前访问的模糊步幅进行平均(例如,预测步幅=先前5个步幅的总和/5)。在另一实施例中,预测服务214在计算预测步幅210时可以对当前的模糊步幅进行更重的加权(例如,预测步幅=(预测步幅+当前步幅)/2)。对于本领域的技术人员来说可以想到用于计算预测步幅210的其他方法,并且这些方法被认为落入本发明的范围之内。
预取服务216使用预测步幅210可以选择性地预取一个或多个高速缓存行。在一个实施例中,如果计数206满足或超过阈值208,则预取服务216将仅预取由预测步幅210所识别的高速缓存行(例如,通过将预测步幅210加到前一访问的存储器地址),由此表明模糊步幅预取是有益的更大可能性。在一个实施例中,如果由预测步幅210指示的存储器地址足够靠近处理器区域120的边界,则预取服务214还可以在第二高速缓存行中预取邻近的处理器区域122。
控制服务218可以提供外部模块(例如其他软件或硬件或硬件和软件的结合)的自适应控制。在一个实施例中,控制服务218在激活保存在存储器中的值时初始化范围204、计数206和阈值208。在一个实施例中,范围、阈值、是否预取高速缓存行,以及是否预取第二高速缓存行可以由监控模糊步幅预取效率的外部最优化模块(未示出)进行控制。在另一实施例中,例如为了适当地促进或抑制模糊步幅预取来提高性能,控制服务218可以允许自我感知其数据访问模式的软件应用来初始化、更新和/或修改变量(例如范围204和阈值208)。
现在参考图3,示出了根据本发明的实施例的用于检测和响应模糊步幅的流程图。如图3所示,方法开始于检测服务212接收(在302)数据访问地址。在一个实施例中,在每次存储器读取时调用检测服务212。在另一实施例中,在每次高速缓存缺失时调用检测服务212。接下来,检测服务212通过从先前数据访问取得的差值来确定(在304)数据访问的步幅124。
检测服务212接着将比较步幅124与范围204来确定(在306)步幅124是否被认为是模糊步幅。如果是,则增加计数206(在308)。如果否,则减少计数206(在310)。
预取服务216接着将比较计数206和阈值210来确定(在312)是否触发预取。如果计数206已满足阈值210,则预取服务216将基于预测步幅210预取(在314)一个或多个高速缓存行。
现在参考图4,示出了根据本发明的实施例的用于预测步幅的流程图。如图4所示,方法开始于预测服务214从检测服务212接收(在402)当前模糊步幅值。接下来,预测服务214将计算(在404)更新后的预测步幅210。当已触发预取时,预取服务216将使用预测步幅210来确定(在406)预取哪一个或哪几个高速缓存行。
可以用很多不同类型系统来实现实施例。现在参考图5,示出了根据本发明的实施例的系统的框图。如图5所示,多处理器系统500是点对点互连系统,并且包括经由点对点互连550耦合的第一处理器570和第二处理器580。如图5所示,处理器570和580中的每个可以是多内核处理器,包括第一和第二处理器内核(即,处理器内核574a和574b以及处理器内核584a和584b)。根据本发明的实施例,每一个处理器可以包括模糊步幅预取硬件、软件和固件。
仍参考图5,第一处理器570还包括存储控制器中心(MCH)572以及点对点(P-P)接口576和578。类似地,第二处理器580包括MCH582以及P-P接口586和588。如图5所示,MCH的572和582将处理器耦合到各自的存储器,即存储器532和存储器534,其为局部地附加到各个处理器的主存储器的一部分(例如,动态随机存取存储器(DRAM)),根据本发明的实施例每一个存储器都可以包括扩展页表。第一处理器570和第二处理器580可以经由P-P互连552和554分别耦合到芯片组590。如图5所示,芯片组590包括P-P接口594和598。
此外,芯片组590包括将高性能图形引擎538耦合到芯片组590的接口592。反过来,芯片组590可以经由接口596而耦合到第一总线516。如图5所示,各种I/O设备514及总线桥518可以耦合到第一总线516,总线桥518将第一总线516耦合到第二总线520。在一个实施例中,可以耦合到第二总线520的各种设备例如包括:键盘/鼠标522、通信设备526和数据存储单元528(例如,可以包括代码530的磁盘驱动器或其他大容量存储设备)。此外,可将音频I/O524耦合到第二总线520。
实施例可以用代码来实现,并且可以存储在其上存储有指令的存储介质上,所述指令可以用来对系统进行编程以执行这些指令。存储介质可以包括但不限于:任意类型的盘,包括软盘、光学盘、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘;半导体设备,例如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦可编程只读存储器(EPROM)、闪速存储器、固态盘(SSD)、电可擦可编程只读存储器(EEPROM)、磁卡或光卡,或任何其他类型的适于存储电子指令的介质。
虽然已经针对有限数量的实施例对本发明进行了描述,但本领域技术人员将从中意识到许多修改和变型。所附权利要求意图覆盖落入本发明真正的精神和范围内的所有此类修改和变型。

Claims (20)

1.一种存储介质,包括当访问机器执行时致使所述访问机器进行以下操作的内容:
检测存储器中的数据访问步幅何时落入范围之内;
计算预测的下一步幅;以及
使用所述预测的下一步幅选择性地预取高速缓存行。
2.根据权利要求1所述的存储介质,还包括当访问机器执行时致使所述访问机器进行以下操作的内容:维持基于信用的系统来跟踪落入所述范围之内的数据访问步幅。
3.根据权利要求2所述的存储介质,其中,所述基于信用的系统包括当数据访问落入到所述范围之内时增加计数,而当数据访问步幅落到所述范围之外时减少计数。
4.根据权利要求3所述的存储介质,其中,用于选择性地预取高速缓存行的内容包括用于当所述计数到达阈值时预取高速缓存行的内容。
5.根据权利要求4所述的存储介质,还包括当访问机器执行时致使所述访问机器预取第二邻近高速缓存行的内容。
6.根据权利要求4所述的存储介质,其中,用于计算预测的下一步幅的内容包括用于对最近先前访问的步幅进行平均的内容。
7.根据权利要求4所述的存储介质,还包括当访问机器执行时致使所述访问机器改变从群组中选出的一个或多个变量的内容,所述群组包括:所述范围、所述阈值、是否预取高速缓存行,以及是否预取第二高速缓存行。
8.根据权利要求7所述的存储介质,还包括当访问机器执行时致使所述访问机器提供自适应外部控制的内容。
9.一种系统,包括:
处理器,其包括执行指令的第一内核和存储多个条目的高速缓存;
动态随机存取存储器(DRAM),其耦合到所述处理器;以及
模糊步幅预取处理机,其用于检测存储器中的数据访问步幅何时落入范围之内、计算预测的下一步幅,以及使用所述预测的下一步幅选择性地预取高速缓存行。
10.根据权利要求9所述的系统,还包括用于维持基于信用的系统来跟踪落入所述范围之内的数据访问步幅的模糊步幅预取处理机。
11.根据权利要求10所述的系统,其中,所述基于信用的系统包括当数据访问落入到所述范围之内时增加计数,而当数据访问步幅落到所述范围之外时减少计数。
12.根据权利要求11所述的系统,其中,用于选择性地预取高速缓存行的模糊步幅预取处理机包括:用于当所述计数到达阈值时预取高速缓存行的模糊步幅预取处理机。
13.根据权利要求12所述的系统,还包括用于预取第二邻近高速缓存行的模糊步幅预取处理机。
14.根据权利要求12所述的系统,其中,用于计算预测的下一步幅的模糊步幅预取处理机包括:用于对最近先前访问的步幅进行平均的模糊步幅预取处理机。
15.一种方法,包括:
检测存储器中的数据访问步幅何时落入范围之内;
计算预测的下一步幅;以及
使用所述预测的下一步幅选择性地预取高速缓存行。
16.根据权利要求15所述的方法,还包括:维持基于信用的系统来跟踪落入所述范围之内的数据访问步幅。
17.根据权利要求16所述的方法,其中,所述基于信用的系统包括当数据访问落入到所述范围之内时增加计数,而当数据访问步幅落到所述范围之外时减少计数。
18.根据权利要求17所述的方法,其中,选择性地预取高速缓存行包括:当所述计数到达阈值时,预取高速缓存行。
19.根据权利要求18所述的方法,还包括:预取第二邻近高速缓存行。
20.根据权利要求18所述的方法,还包括:改变从群组中选出的一个或多个变量,所述群组包括:所述范围、所述阈值、是否预取高速缓存行,以及是否预取第二高速缓存行。
CN201180041651.XA 2010-08-30 2011-08-03 用于模糊步幅预取的方法和装置 Expired - Fee Related CN103080907B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/871,164 2010-08-30
US12/871,164 US8433852B2 (en) 2010-08-30 2010-08-30 Method and apparatus for fuzzy stride prefetch
PCT/US2011/046434 WO2012030466A2 (en) 2010-08-30 2011-08-03 Method and apparatus for fuzzy stride prefetch

Publications (2)

Publication Number Publication Date
CN103080907A true CN103080907A (zh) 2013-05-01
CN103080907B CN103080907B (zh) 2016-04-27

Family

ID=45698682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180041651.XA Expired - Fee Related CN103080907B (zh) 2010-08-30 2011-08-03 用于模糊步幅预取的方法和装置

Country Status (8)

Country Link
US (1) US8433852B2 (zh)
EP (1) EP2612248B1 (zh)
JP (1) JP5661932B2 (zh)
KR (1) KR101497371B1 (zh)
CN (1) CN103080907B (zh)
AU (1) AU2011296479B2 (zh)
TW (1) TWI563446B (zh)
WO (1) WO2012030466A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427332A (zh) * 2019-08-05 2019-11-08 上海兆芯集成电路有限公司 数据预取装置、数据预取方法及微处理器

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433852B2 (en) 2010-08-30 2013-04-30 Intel Corporation Method and apparatus for fuzzy stride prefetch
US8732406B1 (en) * 2011-03-15 2014-05-20 Netapp, Inc. Mechanism for determining read-ahead length in a storage system
US9519549B2 (en) * 2012-01-11 2016-12-13 International Business Machines Corporation Data storage backup with lessened cache pollution
CN104133780B (zh) * 2013-05-02 2017-04-05 华为技术有限公司 一种跨页预取方法、装置及系统
US9280476B2 (en) * 2014-06-04 2016-03-08 Oracle International Corporation Hardware stream prefetcher with dynamically adjustable stride
US9529722B1 (en) 2014-07-31 2016-12-27 Sk Hynix Memory Solutions Inc. Prefetch with localities and performance monitoring
US10866896B2 (en) * 2015-09-30 2020-12-15 Arm Limited Apparatus and method for prefetching access request addresses in an adjacent region of memory
FR3045183B1 (fr) 2015-12-15 2018-01-19 Commissariat Energie Atomique Procede de prediction d'une donnee a precharger dans une memoire cache
US10013357B2 (en) 2016-05-09 2018-07-03 Cavium, Inc. Managing memory access requests with prefetch for streams
US10896130B2 (en) * 2016-10-19 2021-01-19 International Business Machines Corporation Response times in asynchronous I/O-based software using thread pairing and co-execution
US11093248B2 (en) * 2018-09-10 2021-08-17 International Business Machines Corporation Prefetch queue allocation protection bubble in a processor
KR20200065762A (ko) 2018-11-30 2020-06-09 에스케이하이닉스 주식회사 메모리 시스템
KR20200065761A (ko) 2018-11-30 2020-06-09 에스케이하이닉스 주식회사 메모리 시스템
US11544063B2 (en) 2018-11-21 2023-01-03 SK Hynix Inc. Memory system and data processing system including the same
CN109831315B (zh) * 2018-12-14 2022-02-25 中国联合网络通信集团有限公司 一种网络流量的扩容预告方法及装置
US11275691B2 (en) * 2019-04-11 2022-03-15 EMC IP Holding Company LLC Intelligent control of cache
US11442864B2 (en) 2020-06-29 2022-09-13 Marvell Asia Pte, Ltd. Managing prefetch requests based on stream information for previously recognized streams

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401192B1 (en) * 1998-10-05 2002-06-04 International Business Machines Corporation Apparatus for software initiated prefetch and method therefor
US20030131218A1 (en) * 2002-01-07 2003-07-10 International Business Machines Corporation Method and apparatus for mapping software prefetch instructions to hardware prefetch logic
US6976147B1 (en) * 2003-01-21 2005-12-13 Advanced Micro Devices, Inc. Stride-based prefetch mechanism using a prediction confidence value
US20090198910A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Data processing system, processor and method that support a touch of a partial cache line of data
US20100268893A1 (en) * 2009-04-20 2010-10-21 Luttrell Mark A Data Prefetcher that Adjusts Prefetch Stream Length Based on Confidence

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3175675B2 (ja) 1997-12-04 2001-06-11 日本電気株式会社 プリフェッチ制御装置
US6134643A (en) 1997-11-26 2000-10-17 Intel Corporation Method and apparatus for cache line prediction and prefetching using a prefetch controller and buffer and access history
JP3149856B2 (ja) * 1998-08-31 2001-03-26 日本電気株式会社 磁気ディスク制御装置
US6584549B2 (en) * 2000-12-29 2003-06-24 Intel Corporation System and method for prefetching data into a cache based on miss distance
DE10223726A1 (de) * 2002-05-28 2003-12-24 Infineon Technologies Ag Integrierter Speicher in Prefetch-Architektur und Verfahren zum Betrieb eines integrierten Speichers
CN1726459A (zh) * 2002-12-12 2006-01-25 皇家飞利浦电子股份有限公司 基于用于数据预取的步距预测的计数器
JP4064869B2 (ja) * 2003-05-28 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション コード変換装置、コード変換方法及びプログラム
JP4452064B2 (ja) * 2003-11-18 2010-04-21 株式会社日立製作所 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US20050198439A1 (en) * 2004-03-04 2005-09-08 Fredy Lange Cache memory prefetcher
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US7831800B2 (en) * 2007-05-17 2010-11-09 Globalfoundries Inc. Technique for prefetching data based on a stride pattern
US8285941B2 (en) * 2008-02-25 2012-10-09 International Business Machines Corporation Enhancing timeliness of cache prefetching
KR20100005539A (ko) 2008-07-07 2010-01-15 삼성전자주식회사 캐시 메모리 시스템 및 캐시의 프리페칭 방법
US8433852B2 (en) 2010-08-30 2013-04-30 Intel Corporation Method and apparatus for fuzzy stride prefetch

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401192B1 (en) * 1998-10-05 2002-06-04 International Business Machines Corporation Apparatus for software initiated prefetch and method therefor
US20030131218A1 (en) * 2002-01-07 2003-07-10 International Business Machines Corporation Method and apparatus for mapping software prefetch instructions to hardware prefetch logic
US6976147B1 (en) * 2003-01-21 2005-12-13 Advanced Micro Devices, Inc. Stride-based prefetch mechanism using a prediction confidence value
US20090198910A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Data processing system, processor and method that support a touch of a partial cache line of data
US20100268893A1 (en) * 2009-04-20 2010-10-21 Luttrell Mark A Data Prefetcher that Adjusts Prefetch Stream Length Based on Confidence

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427332A (zh) * 2019-08-05 2019-11-08 上海兆芯集成电路有限公司 数据预取装置、数据预取方法及微处理器

Also Published As

Publication number Publication date
EP2612248B1 (en) 2018-05-30
US8433852B2 (en) 2013-04-30
TWI563446B (en) 2016-12-21
KR101497371B1 (ko) 2015-03-02
WO2012030466A2 (en) 2012-03-08
CN103080907B (zh) 2016-04-27
JP2013539117A (ja) 2013-10-17
US20120054449A1 (en) 2012-03-01
EP2612248A2 (en) 2013-07-10
JP5661932B2 (ja) 2015-01-28
WO2012030466A3 (en) 2012-06-07
TW201214279A (en) 2012-04-01
AU2011296479A1 (en) 2013-03-14
EP2612248A4 (en) 2014-02-19
KR20130057466A (ko) 2013-05-31
AU2011296479B2 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
CN103080907A (zh) 用于模糊步幅预取的方法和装置
US10705987B2 (en) Autonomous prefetch engine
CN107870873B (zh) 基于按字节编址闪存的存储器模块和操作其的方法
EP2642398B1 (en) Coordinated prefetching in hierarchically cached processors
US9280474B2 (en) Adaptive data prefetching
KR101629879B1 (ko) 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
JP6009589B2 (ja) マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
US20160371187A1 (en) Memory speculation for multiple memories
US9390010B2 (en) Cache management
US8060701B2 (en) Apparatus and methods for low-complexity instruction prefetch system
CN110765034B (zh) 一种数据预取方法及终端设备
US11188256B2 (en) Enhanced read-ahead capability for storage devices
CN1313935C (zh) 用于减少存储器设备等待时间的装置、方法和系统
US10175893B2 (en) Predictive scheduler for memory rank switching
US20090006670A1 (en) Cache for a host controller
CN113407119A (zh) 数据预取方法、数据预取装置、处理器
US9396122B2 (en) Cache allocation scheme optimized for browsing applications
KR20100005539A (ko) 캐시 메모리 시스템 및 캐시의 프리페칭 방법
US20200409852A1 (en) Enhanced read-ahead capability for storage devices
US11016899B2 (en) Selectively honoring speculative memory prefetch requests based on bandwidth state of a memory access path component(s) in a processor-based system
US10776043B2 (en) Storage circuitry request tracking
CN108399146B (zh) Flash控制器、取指令方法及计算机可读存储介质
CN111045960B (zh) 一种多像素格式存储的Cache电路
US11093393B2 (en) System and method for early DRAM page-activation
RU2475822C1 (ru) Подсистема памяти ядра микропроцессора

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160427

Termination date: 20210803