CN109983445A - 具有不等量值跨距的预提取机制 - Google Patents
具有不等量值跨距的预提取机制 Download PDFInfo
- Publication number
- CN109983445A CN109983445A CN201780072422.1A CN201780072422A CN109983445A CN 109983445 A CN109983445 A CN 109983445A CN 201780072422 A CN201780072422 A CN 201780072422A CN 109983445 A CN109983445 A CN 109983445A
- Authority
- CN
- China
- Prior art keywords
- preextraction
- stride values
- relationship
- data
- continuous
- 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.)
- Pending
Links
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- 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/6024—History based prefetching
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
系统及方法是关于涉及不等量值跨距值的预提取机制。可检测连续跨距值之间的不等量值函数关系,其中所述跨距值是基于连续载入指令的目标地址之间的距离。可确定用于预提取数据的至少一下一跨距值,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。数据预提取可从基于所述下一跨距值及先前目标地址计算出的至少一个预提取地址进行。所述不等量值函数关系可包含对应于对分搜索算法的对数关系。
Description
相关申请的交叉引用
本专利申请主张2016年12月21日申请、让渡给本受让人,且明确地以全文引用的方式并入本文中的标题为“具有不等量值跨距的预提取机制(PREFETCH MECHANISMS WITHNON-EQUAL MAGNITUDE STRIDE)”的美国临时申请第62/437,659号的权益。
技术领域
所公开的方面是关于处理系统。更具体地说,示范性方面是关于例如用于处理系统的高速缓冲存储器的预提取机制,所述预提取机制具有不等量值的预提取跨距,例如对数函数。
背景技术
处理系统可包含用于在出现信息请求或需求之前,推测地提取例如数据或指令的信息的机制。此类机制被称为预提取机制,且其目的为使预期在近期使用的信息在出现信息需求时随时可用。预提取机制在所属领域中已知用于各种存储器结构,包含数据高速缓冲存储器(或D高速缓冲存储器)、指令高速缓冲存储器(I高速缓冲存储器)、存储器管理单元(MMU)或用于存储虚拟到物理地址转译的转译后备缓冲器(TLB)等。
考虑数据高速缓冲存储器的实例,在预期数据近期将被例如载入指令的指令存取的情况下,相关预提取机制可将数据块从例如主存储器的备份存储位置预填充到数据高速缓冲存储器中。因此,在执行载入指令时,载入指令所需的数据块将在数据高速缓冲存储器中可用,且可避免与数据高速缓冲存储器中的未中相关联的时延。
举例来说,预提取机制可实施若干策略来确定从存储器预提取哪些数据块,及何时将这些数据块预提取到数据高速缓冲存储器中。在一个实例中,预提取机制或预提取引擎(例如,由被配置成存取数据高速缓冲存储器的处理器实施)可观察载入指令进行的数据快取存取序列,以确定所观察载入指令中的两个或大于两个是否存在共同的规则数据模式。如果观察到连续载入指令具有用于数据存取的目标地址,其中目标地址相差共同或常数值,则将常数值设定为跨距值。一些预提取机制可实施建立跨距值的预定置信级或确认的功能性。如果以此方式检测到例如具有充分置信度的跨距值,则预提取机制可开始从使用跨距值及载入指令序列的先前或目标基地址计算出的目标地址预提取数据。
为了说明上文技术,如果预提取机制观察到例如到存储器地址0、100、200及300的载入指令序列,则预提取机制可检测到连续载入指令序列的目标地址之间存在共同跨距值100。在假定处理器将执行将遵循先前载入指令序列所产生的模式的后续载入指令的情况下,预提取机制接着可使用跨距值、观察最后观察到的目标地址300,并在处理器执行具有目标地址300+100=400的载入指令之前将数据块从地址400预提取到数据高速缓冲存储器中。相关地,一些预提取机制可从如下目标地址预提取数据块,所述目标地址与最后观察到的目标地址间隔观察到的跨距值的倍数,以解释所观察序列的最后载入指令与从存储器预提取数据块花费的时间之间的时间延迟。举例来说,开始从例如500或600而非400的目标地址预提取数据块可解释如下可能性:可能已执行存取目标地址400的中间载入指令,且已在从目标地址400预提取数据块之前发出需求请求。
不论预提取的跨距值的倍数如何,预提取机制的已知实施方案限于通过观察规则重复的数据模式来确定跨距值,例如上文说明性实例中描述的常量跨距值100。换句话说,常规跨距值检测是基于“相等量值比较”,其是指对具有如下性质的三个或大于三个载入指令的序列进行确定:第n载入与第n+1载入之间的跨距值具有与第n+1载入与第n+2载入之间的跨距值相同的量值。如果检测到此序列,则将针对此相等量值跨距值的后续倍数起始数据预提取。应注意,相等量值跨距值的概念可扩展到正值及负值两者(即,就存储器地址的序列来说,跨行可为“正向”或“反向”的)。
然而,存在可由可能并不限于相等量值跨距值的程序及算法展现的跨行行为。确切地说,一些程序可能具有例如其目标存储器地址当中可仍展现某一其它定义明确的关系(虽然未相隔相等量值跨距)的连续载入指令。举例来说,连续载入指令的目标地址之间的空间中可存在可益于用于确定预提取哪些数据块的函数关系。限于相等量值跨距值的常规预提取机制不能够从具有函数关系而非相等量值跨距值的目标地址获得预提取数据块的益处。
发明内容
本发明的示范性方面是关于用于基于不等量值跨距值进行预提取的系统及方法。可检测连续跨距值之间的不等量值函数关系,其中所述跨距值是基于连续载入指令的目标地址之间的距离。可确定用于预提取数据的至少一下一跨距值,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。数据预提取可是从基于所述下一跨距值及先前目标地址计算出的至少一个预提取地址进行。所述不等量值函数关系可包含对应于对分搜索算法的对数关系。
举例来说,一种示范性方面是关于一种预提取数据的方法,所述方法包括:检测连续跨距值之间的不等量值函数关系,所述跨距值基于连续载入指令的目标地址之间的距离;及确定用于预提取数据的至少一下一跨距值,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。
另一示范性方面是关于一种设备,其包括:跨距检测块,其被配置成检测连续跨距值之间的不等量值函数关系,所述跨距值基于由处理器执行的连续载入指令的目标地址之间的距离;及预提取引擎,其被配置成确定用于预提取数据的至少一下一跨距值,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。
又一示范性方面是关于一种设备,其包括:用于检测连续跨距值之间的不等量值函数关系的装置,所述跨距值基于连续载入指令的目标地址之间的距离;及用于确定用于预提取数据的至少一下一跨距值的装置,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。
又一示范性方面是关于一种包括代码的非暂时性计算机可读媒体,所述代码在由处理器执行时致使所述处理器执行用于预提取数据的操作,所述非暂时性计算机可读媒体包括:用于检测连续跨距值之间的不等量值函数关系的代码,所述跨距值基于连续载入指令的目标地址之间的距离;及用于确定用于预提取数据的至少一下一跨距值的代码,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。
附图说明
呈现附图以辅助描述本发明的方面,且仅仅是为了说明所述方面而非限制所述方面而提供附图。
图1描绘根据本公开的各方面的处理器系统的示范性框图。
图2说明根据本公开的各方面的实例对分搜索方法。
图3描绘根据本公开的各方面的示范性预提取方法。
图4描绘可有利地采用本公开的方面的示范性计算装置。
具体实施方式
在以下关于本发明的特定方面的描述及相关图式中公开本发明的方面。可在不脱离本发明的范围的情况下设计替代方面。另外,将不会详细描述或将省略本发明的众所周知的元件以免混淆本发明的相关细节。
词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示范性”的任何方面不必解释为比其它方面优选或有利。同样,术语“本发明的各方面”并不要求本发明的所有方面都包含所论述特征、优势或操作模式。
本文中所使用的术语仅是出于描述特定方面的目的,且并不意图限制本发明的各方面。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”及“所述”意图还包含复数形式。应进一步理解,术语“包括”及/或“包含”在本文中使用时指定所陈述特征、整数、步骤、操作、元件及/或组件的存在,但不排除一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。
此外,就待由(例如)计算装置的元件执行的动作序列来说描述许多方面。将认识到,本文中所描述的各种动作可由特定电路(例如,专用集成电路(ASIC))、正由一或多个处理器执行的程序指令或两者的组合执行。另外,本文中所描述的这些动作序列可被视为完全在任何形式的计算机可读存储媒体内体现,在所述计算机可读存储媒体中存储有对应的计算机指令集,所述计算机指令在执行时将致使相关联的处理器执行本文中所描述的功能性。因此,本发明的各种方面可以数个不同形式来体现,预期所有形式属于所主张主题的范围内。另外,对于本文中所描述的方面中的每一各,任何此类方面的对应形式可在本文中描述为(例如)“被配置成”执行所描述动作的“逻辑”。
在本公开的示范性方面中,描述用于检测可能并非相等量值跨距,但满足可用于预提取信息的其它可检测且有用函数关系的跨距值的预提取机制。在本公开中,数据高速缓冲存储器将被描述为可应用示范性预提取机制的存储媒体的一个实例。然而,应理解,本文中描述的技术可同样适用于任何其它类型的存储媒体,例如指令高速缓冲存储器或TLB。此外,示范性技术可适用于如所属领域中已知的任何层级的高速缓冲存储器(例如,1级或L1、2级或L2、3级或L3等)。
在一个实例中,在以下章节中公开基于连续跨距值之间的函数关系的预提取机制,所述函数关系例如对数关系(或等效地,指数关系)。尽管未详尽描述,但示范性技术可扩展到连续跨距值之间可引起不等量值跨距值的其它函数关系。此类其它函数关系可涉及几何关系或分数关系(或等效地,倍数关系)。应理解,本文中所描述的不等量值跨距值区别于使用相等量值跨距值,但可从相等量值跨距值的倍数预提取的上文所提及常规技术。
现在参考图1,说明其中可安置本公开的各方面的实例处理系统100。处理系统100可包括处理器102,一般来说,所述处理器可为中央处理单元(CPU)或任何处理器核心。处理器102可配置成执行程序、软件等,所述程序、软件等可包含根据将在以下章节中论述的实例的载入指令。处理器102可耦合到一或多个高速缓冲存储器,代表性地示出其中的高速缓冲存储器108。在一个实例中,高速缓冲存储器108可为数据高速缓冲存储器(在一些状况下,高速缓冲存储器108可为指令高速缓冲存储器,或指令高速缓冲存储器与数据高速缓冲存储器的组合)。高速缓冲存储器108以及可存在(但未明确示出)的一或多个备份高速缓冲存储器可与例如存储器110的主存储器通信。存储器110可包括物理存储器,其包含可被引入到高速缓冲存储器108中以用于由处理器102快速存取的数据块。尽管高速缓冲存储器108及存储器110可在一或多个其它处理器或处理元件当中共用,但为简单起见尚未说明这些元件。
在一个实例中,为了减少与高速缓冲存储器108中的未中相关联的损失或时延,处理器102可包含预提取引擎104,其被配置成确定哪些数据块很可能被处理器102在未来存取高速缓冲存储器108时靶向,并推测地将那些数据块从存储器110预提取到高速缓冲存储器108中。就此来说,预提取引擎104可采用跨距检测块106,除了(或代替)传统的相等量值跨距值检测之外,其可被配置成根据本公开的示范性方面检测不等量值跨距值。在一个实例中,跨距检测块106可配置成检测在连续跨距值之间具有对数关系(或不同地检视时,指数关系)的跨距值。下文参考图2描述用于对存储器110中包含的阵列112进行对分搜索操作的连续跨距值之间的对数关系的实例。
在图2中,较详细地示出阵列112。阵列112可为例如256个数据块的阵列,其可存储在指示为X+1到X+256的存储器位置处(其中X为基地址或开始地址,从其开始,每个1字节大小的256个数据块可存储在存储器110中)。假定阵列112中的数据块按值排序,例如按升序排序,以阵列112中的地址X+1处具有最小值的数据块开始且地址X+256处的数据块具有最大值。
在由处理器102实施的实例程序中,穿过阵列112的对分搜索可涉及在阵列112内定位目标值。对分搜索可涉及在已知数据集当中找到最匹配目标或搜索值的位置的已知搜索算法。可通过以下逐步过程实施穿过阵列112以确定256个字节当中的目标值的对分搜索。
以步骤S1开始,处理器102可发出检索在阵列112的“中间”处(即,在此实例中为位于地址X+128处)的数据块的载入指令。在实践中,此可涉及向高速缓冲存储器108作出载入请求,且假定载入请求结果为未中,从而从存储器110检索值(冗长的过程)。随后,一旦处理器102接收到地址X+128处的数据块,处理器102的执行单元(未示出)比较地址X+128处的数据块的值与目标值。如果目标值匹配地址X+128处的数据块,则搜索过程完成。否则,搜索进行到步骤S2。
在步骤S2中,两种选项是可能的。如果目标值小于地址X+128处的数据块的值,则针对“下一中间”处的数据块(即,阵列112的下半部的中间(即,地址X+64处的数据块))实施上文概述的载入及比较过程。如果目标值大于地址X+128处的数据块的值,则针对另一“下一中间”处的数据块(即,阵列112的上半部的中间(即,地址X+192处的数据块))实施上文概述的载入及比较过程。基于步骤S2处的比较结果,搜索完成(在地址X+64或X+192处的数据块中的一个处找到匹配时)或搜索进行到步骤S3。
步骤S3涉及通过移动到阵列112的四个四分部中的一个中的“下一中间”中的一个而重复上文过程。基于步骤S2处的比较方向确定四分部,即在目标值分别小于地址X+64/X+192处的数据块的值时,以地址X+32/X+160处的任一数据块执行搜索及比较;或在目标值分别大于地址X+64/X+192处的数据块的值时,以地址X+96/X+224处的数据块中的任一个执行搜索及比较。
在上文步骤S1到S3中的每一个中,在高速缓冲存储器108中可能发生未中之后,数据块最终从上文所描述的目标地址有效地从存储器110载入到处理器102。如可从至少步骤S1到S3观察到,对分搜索算法在每一步骤处体现为紧接先前步骤的跨距值的“一半”的跨距值。换句话说,看出每一跨距值的量值与先前跨距值具有对数函数(具体来说,以二进制为基数,表示为“log2”)(或换句话说,当从一个跨距值到后续跨距值检视时,连续跨距值具有对数关系,或在从一个跨距值到其之前跨距值的反向视角检视时,连续跨距值具有指数关系)。在示范性方面中,跨距检测块106被配置成通过观察由处理器102在步骤S1到S3中作出的连续载入请求,将跨距值检测为所陈述对数函数。
举例来说,在步骤S2中,识别出实例第一跨距具有量值64(正值或负值,为对地址X+128的第一存取与对地址X+64或地址X+192的第二存取之间的差值)。在步骤S3中,识别出下一或第二跨距具有量值32(同样为正值或负值,为对地址对X+64/X+32、X+64/X+96、X+192/X+160或X+192/X+224中的一个的第二与第三存取之间的差值)。跨距检测块106可类似地在后续步骤中继续检测一或多个后续跨距,即量值为16、8、4、2、1的跨距值(或直到由于已找到匹配,对分搜索过程完成为止)。
在示范性方面中,一旦已观察到阈值数目个跨距值(其可低至用以检测其间的对数关系的两个后续跨距值,即64及32),跨距检测块106可影响预提取引擎104,以基于检测到的不等量值跨距值(即对数性地下降的跨距值)从地址预提取预期用于后续载入指令(即,用于后续步骤)的数据块。在一些方面中,达到此阈值数目个跨距值可被视为训练阶段的部分,在所述训练阶段中,跨距检测块106学习连续跨距值之间的函数关系,并确定此函数关系为关于上文所描述实例的对数关系。如果在训练阶段中确认习得的函数关系实际上对应于预期不等量值跨距值,则可离开训练阶段且预提取引擎104可进行到在后续预提取操作中使用预期不等量值跨距值。
尽管预提取引擎104及跨距检测块106示出为处理器102中的块,但此仅仅是为说明起见。示范性功能性可由布建在处理系统100内的别处(例如,功能性地耦合到高速缓冲存储器108)的跨距量值比较器实施,以检测并识别展现不等量值跨距的函数关系(例如用于对分搜索的对数性地下降的跨距量值模式)的载入指令序列,并影响(例如,控制)数据预提取机制以生成对具有检测到的不等量值跨距的预期后续迭代的数据预提取。以此方式,指向来自预提取地址的数据块的后续载入指令的时延将大大降低,这是由于很可能在高速缓冲存储器108中找到这些数据块且无需作为高速缓冲存储器108中的未中而从存储器110进行提取。
如先前所解释,不等量值跨距的其它函数关系也是可能的,例如连续跨距值之间的增大的对数(或指数)关系、几何关系、下降的分数关系或增大的倍数关系等。
因此,将了解,示范性方面包含用于执行本文中公开的过程、函数及/或算法的各种方法。举例来说,图3说明例如实施于处理系统100中的预提取方法300。
举例来说,如块302中所示出,方法300包括检测连续跨距值之间的不等量值函数关系,跨距值基于连续载入指令的目标地址之间的距离(例如,由跨距检测块106在图2中说明的对阵列112的对分搜索步骤S1到S3中检测连续载入指令之间的下降的对数关系)。
在块304中,方法300包括确定用于预提取数据的至少一下一跨距值,其中下一跨距值是基于不等量值函数关系及先前跨距值(例如,由预提取引擎104分别根据步骤S2及S3中的第一及第二跨距确定跨距值64及32;及在后续步骤中,基于32的先前跨距值确定下一跨距值16)。
在其它方面中,方法300可涉及从基于下一跨距值及先前目标地址计算出的至少一个预提取地址预提取数据(例如,由预提取引擎104将用于图2的后续步骤的数据从存储器110预提取到高速缓冲存储器108中)。
如先前所论述,不等量值函数关系可包括对数函数,其中对数函数对应于用于在存储于存储器中的有序数据值阵列(例如,存储器110的阵列112)中定位目标值的对分搜索算法的连续载入指令之间的连续跨距值。在一些方面中,方法可包含将数据从主存储器(例如,存储器110)预提取到高速缓冲存储器(例如,高速缓冲存储器108)中,其中由与高速缓冲存储器通信的处理器(例如,处理器102)执行连续载入指令。在一些其它状况下,不等量值函数关系还可包含例如指数关系、几何关系、倍数关系或分数关系的不同不等量值函数。
现在将相对于图4论述可利用本公开的示范性方面的实例设备。图4示出计算装置400的框图。计算装置400可对应于图1中示出的处理系统100的实施方案且被配置成执行图3的方法300。在图4的描述中,计算装置400示出为包含包括预提取引擎104及跨距检测块106(其可如参考图1所论述般配置)的处理器102、高速缓冲存储器108及存储器110。应理解,计算装置400也可支持所属领域中已知的其它存储器配置。
图4还示出耦合到处理器102及显示器428的显示器控制器426。在一些状况下,计算装置400可用于无线通信,且图4还以虚线示出任选块,例如耦合到处理器102的译码器/解码器(编解码器)434(例如,音频及/或语音编解码器),且扬声器436及麦克风438可耦合到编解码器434;及耦合到无线控制器440(其耦合到处理器102)的无线天线442。在特定方面中,在这些任选块中的一个或多个存在的情况下,处理器102、显示器控制器426、存储器110及无线控制器440包含在系统级封装或芯片上系统装置422中。
因此,特定的方面,输入装置430及电力供应器444耦合到芯片上系统装置422。此外,在特定方面中,如图4中所说明,在一或多个任选块存在的情况下,显示器428、输入装置430、扬声器436、麦克风438、无线天线442及电力供应器444在芯片上系统装置422外部。然而,显示器428、输入装置430、扬声器436、麦克风438、无线天线442及电力供应器444中的每一个可耦合到芯片上系统装置422的组件,例如接口或控制器。
应注意,尽管图4大体上描绘计算装置,但处理器102及存储器110也可集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元、服务器、计算机、膝上型计算机、平板计算机、通信装置、移动电话或其它类似装置中。
所属领域的技术人员应了解,可使用多种不同技术及技艺中的任一种来表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号及码片。
此外,所属领域的技术人员将了解,结合本文中所公开的方面描述的各种说明性逻辑块、模块、电路及算法步骤可被实施为电子硬件、计算机软件或两者的组合。为清楚地说明硬件与软件的此可互换性,上文已大体就各种说明性组件、块、模块、电路及步骤的功能性加以描述。此类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。本领域技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施决策不应被解释为会引起脱离本发明的范围。
结合本文中所公开的方面描述的方法、序列及/或算法可直接以硬件、以由处理器执行的软件模块或以硬件与软件模块的组合来体现。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM,或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代例中,存储媒体可与处理器成一体式。
因此,本发明的方面可包含体现用于基于不等量值跨距值进行预提取的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且任何用于执行本文中所描述的功能性的装置包含于本发明的方面中。
虽然前述公开内容示出本发明的说明性方面,但应注意,可在不脱离如由所附权利要求书界定的本发明的范围的情况下在本文中作出各种改变及修改。无需以任何特定次序来执行根据本文中所描述的本发明的各方面的方法权利要求的功能、步骤及/或动作。此外,尽管可能以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。
Claims (23)
1.一种预提取数据的方法,所述方法包括:
检测连续跨距值之间的不等量值函数关系,所述跨距值基于连续载入指令的目标地址之间的距离;及
确定用于预提取数据的至少一下一跨距值,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。
2.根据权利要求1所述的方法,其进一步包括:
从基于所述下一跨距值及先前目标地址计算出的至少一个预提取地址预提取数据。
3.根据权利要求1所述的方法,其中所述不等量值函数关系包括对数函数。
4.根据权利要求3所述的方法,其中所述对数函数对应于用于在存储于存储器中的有序数据值阵列中定位目标值的对分搜索算法的连续载入指令之间的连续跨距值。
5.根据权利要求4所述的方法,其包括将所述数据从主存储器预提取到高速缓冲存储器中,其中由与所述高速缓冲存储器通信的处理器执行所述连续载入指令。
6.根据权利要求1所述的方法,其中所述不等量值函数关系包括指数关系、倍数关系、分数关系或几何关系中的一种。
7.一种设备,其包括:
跨距检测块,其被配置成检测连续跨距值之间的不等量值函数关系,所述跨距值基于由处理器执行的连续载入指令的目标地址之间的距离;及
预提取引擎,其被配置成确定用于预提取数据的至少一下一跨距值,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。
8.根据权利要求7所述的设备,其中所述预提取引擎被进一步配置成从基于所述下一跨距值及先前目标地址计算出的至少一个预提取地址预提取数据。
9.根据权利要求7所述的设备,其中所述不等量值函数关系包括对数函数。
10.根据权利要求9所述的设备,其进一步包括与所述处理器通信的存储器,其中所述对数函数对应于用于在存储于所述存储器中的有序数据值阵列中定位目标值的对分搜索算法的连续载入指令之间的连续跨距值。
11.根据权利要求10所述的设备,其进一步包括高速缓冲存储器,其中所述预提取引擎被配置成将所述数据从主存储器预提取到所述高速缓冲存储器中。
12.根据权利要求7所述的设备,其中所述不等量值函数关系包括指数关系、倍数关系、分数关系或几何关系中的一种。
13.根据权利要求7所述的设备,其集成到选自由以下各项组成的群组的装置中:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、固定位置数据单元、服务器、计算机、膝上型计算机、平板计算机、通信装置及移动电话。
14.一种设备,其包括:
用于检测连续跨距值之间的不等量值函数关系的装置,所述跨距值基于连续载入指令的目标地址之间的距离;及
用于确定用于预提取数据的至少一下一跨距值的装置,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。
15.根据权利要求14所述的设备,其进一步包括:
用于从基于所述下一跨距值及先前目标地址计算出的至少一个预提取地址预提取数据的装置。
16.根据权利要求14所述的设备,其中所述不等量值函数关系包括对数函数。
17.根据权利要求16所述的设备,其中所述对数函数对应于用于在存储于存储器中的有序数据值阵列中定位目标值的对分搜索算法的连续载入指令之间的连续跨距值。
18.根据权利要求17所述的设备,其中所述不等量值函数关系包括指数关系、倍数关系、分数关系或几何关系中的一种。
19.一种包括代码的非暂时性计算机可读媒体,所述代码在由处理器执行时致使所述处理器执行用于预提取数据的操作,所述非暂时性计算机可读媒体包括:
用于检测连续跨距值之间的不等量值函数关系的代码,所述跨距值基于连续载入指令的目标地址之间的距离;及
用于确定用于预提取数据的至少一下一跨距值的代码,其中所述下一跨距值是基于所述不等量值函数关系及先前跨距值。
20.根据权利要求19所述的非暂时性计算机可读媒体,其进一步包括:
用于从基于所述下一跨距值及先前目标地址计算出的至少一个预提取地址预提取数据的代码。
21.根据权利要求19所述的非暂时性计算机可读媒体,其中所述不等量值函数关系包括对数函数。
22.根据权利要求21所述的非暂时性计算机可读媒体,其中所述对数函数对应于用于在存储于存储器中的有序数据值阵列中定位目标值的对分搜索算法的连续载入指令之间的连续跨距值。
23.根据权利要求19所述的非暂时性计算机可读媒体,其中所述不等量值函数关系包括指数关系、倍数关系、分数关系或几何关系中的一种。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662437659P | 2016-12-21 | 2016-12-21 | |
US62/437,659 | 2016-12-21 | ||
US15/594,631 | 2017-05-14 | ||
US15/594,631 US20180173631A1 (en) | 2016-12-21 | 2017-05-14 | Prefetch mechanisms with non-equal magnitude stride |
PCT/US2017/066879 WO2018118719A1 (en) | 2016-12-21 | 2017-12-15 | Prefetch mechanisms with non-equal magnitude stride |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109983445A true CN109983445A (zh) | 2019-07-05 |
Family
ID=62561617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780072422.1A Pending CN109983445A (zh) | 2016-12-21 | 2017-12-15 | 具有不等量值跨距的预提取机制 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180173631A1 (zh) |
CN (1) | CN109983445A (zh) |
WO (1) | WO2018118719A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022237585A1 (zh) * | 2021-05-08 | 2022-11-17 | 支付宝(杭州)信息技术有限公司 | 处理方法及装置、处理器、电子设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10846084B2 (en) * | 2018-01-03 | 2020-11-24 | Intel Corporation | Supporting timely and context triggered prefetching in microprocessors |
US11789741B2 (en) * | 2018-03-08 | 2023-10-17 | Sap Se | Determining an optimum quantity of interleaved instruction streams of defined coroutines |
US10769070B2 (en) * | 2018-09-25 | 2020-09-08 | Arm Limited | Multiple stride prefetching |
CN113961477A (zh) * | 2020-07-20 | 2022-01-21 | 科尔奇普投资公司 | 二进制搜寻的方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1998166A (zh) * | 2004-07-22 | 2007-07-11 | 爱立信股份有限公司 | 对波分复用光通信链路中再生式中继器或非再生式中继器的数量及位置的优化 |
CN101825707A (zh) * | 2010-03-31 | 2010-09-08 | 北京航空航天大学 | 基于Keystone变换和相参积累的单脉冲测角方法 |
CN101960422A (zh) * | 2008-03-04 | 2011-01-26 | 高通股份有限公司 | 用于计算硬件预提取地址及算术运算值的双功能加法器 |
CN102121990A (zh) * | 2010-01-08 | 2011-07-13 | 清华大学 | 基于空时分析的逆合成孔径雷达的目标转速估计方法 |
CN102681947A (zh) * | 2003-05-27 | 2012-09-19 | 英特尔公司 | 用于跨距剖析软件应用的方法和设备 |
CN103443777A (zh) * | 2011-03-03 | 2013-12-11 | 高通股份有限公司 | 具有预填充能力的存储器管理单元 |
US20140006718A1 (en) * | 2012-06-27 | 2014-01-02 | Via Technologies, Inc. | Data prefetcher with complex stride predictor |
CN104185872A (zh) * | 2012-03-15 | 2014-12-03 | 国际商业机器公司 | 用以计算与指定存储器的边界的距离的指令 |
CN105264525A (zh) * | 2013-06-04 | 2016-01-20 | 马维尔国际贸易有限公司 | 内部搜索引擎架构 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070106849A1 (en) * | 2005-11-04 | 2007-05-10 | Sun Microsystems, Inc. | Method and system for adaptive intelligent prefetch |
US8856452B2 (en) * | 2011-05-31 | 2014-10-07 | Illinois Institute Of Technology | Timing-aware data prefetching for microprocessors |
US20140281232A1 (en) * | 2013-03-14 | 2014-09-18 | Hagersten Optimization AB | System and Method for Capturing Behaviour Information from a Program and Inserting Software Prefetch Instructions |
US9846627B2 (en) * | 2015-02-13 | 2017-12-19 | North Carolina State University | Systems and methods for modeling memory access behavior and memory traffic timing behavior |
-
2017
- 2017-05-14 US US15/594,631 patent/US20180173631A1/en not_active Abandoned
- 2017-12-15 WO PCT/US2017/066879 patent/WO2018118719A1/en active Application Filing
- 2017-12-15 CN CN201780072422.1A patent/CN109983445A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681947A (zh) * | 2003-05-27 | 2012-09-19 | 英特尔公司 | 用于跨距剖析软件应用的方法和设备 |
CN1998166A (zh) * | 2004-07-22 | 2007-07-11 | 爱立信股份有限公司 | 对波分复用光通信链路中再生式中继器或非再生式中继器的数量及位置的优化 |
CN101960422A (zh) * | 2008-03-04 | 2011-01-26 | 高通股份有限公司 | 用于计算硬件预提取地址及算术运算值的双功能加法器 |
CN102121990A (zh) * | 2010-01-08 | 2011-07-13 | 清华大学 | 基于空时分析的逆合成孔径雷达的目标转速估计方法 |
CN101825707A (zh) * | 2010-03-31 | 2010-09-08 | 北京航空航天大学 | 基于Keystone变换和相参积累的单脉冲测角方法 |
CN103443777A (zh) * | 2011-03-03 | 2013-12-11 | 高通股份有限公司 | 具有预填充能力的存储器管理单元 |
CN104185872A (zh) * | 2012-03-15 | 2014-12-03 | 国际商业机器公司 | 用以计算与指定存储器的边界的距离的指令 |
US20140006718A1 (en) * | 2012-06-27 | 2014-01-02 | Via Technologies, Inc. | Data prefetcher with complex stride predictor |
CN105264525A (zh) * | 2013-06-04 | 2016-01-20 | 马维尔国际贸易有限公司 | 内部搜索引擎架构 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022237585A1 (zh) * | 2021-05-08 | 2022-11-17 | 支付宝(杭州)信息技术有限公司 | 处理方法及装置、处理器、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018118719A1 (en) | 2018-06-28 |
US20180173631A1 (en) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109983445A (zh) | 具有不等量值跨距的预提取机制 | |
CN103123604B (zh) | 跟踪数据处理系统的内存使用的方法 | |
CN109614625B (zh) | 标题正文相关度的确定方法、装置、设备及存储介质 | |
US9026739B2 (en) | Multimode prefetcher | |
CN112000370B (zh) | 循环指令的处理方法、装置、设备和存储介质 | |
CN109783490B (zh) | 数据融合方法、装置、计算机设备及存储介质 | |
US20170091117A1 (en) | Method and apparatus for cache line deduplication via data matching | |
CN112970006A (zh) | 多任务递归神经网络 | |
KR20150112800A (ko) | 컴퓨팅 시스템 및 그것의 동작 방법 | |
US9384131B2 (en) | Systems and methods for accessing cache memory | |
CN114817651B (zh) | 数据存储方法、数据查询方法、装置和设备 | |
US20180165094A1 (en) | Branch predictor search qualification using stream length prediction | |
CN107193498B (zh) | 一种对数据进行去重复处理的方法及装置 | |
CN113127382A (zh) | 用于追加写的数据读取方法、装置、设备和介质 | |
US20140379995A1 (en) | Semiconductor device for controlling prefetch operation | |
CN107077424B (zh) | 用于检测在第一阶指令高速缓冲存储器中的恶意代码的集成电路和方法 | |
CN104854556A (zh) | 建立用于子例程返回的分支目标指令高速缓冲存储器(btic)条目以减少执行管线泡,以及相关系统、方法和计算机可读媒体 | |
WO2019060068A1 (en) | WAFER CONSTRUCTION FOR PRE-EXECUTING DEPENDENT DATA LOADS | |
CN106649143B (zh) | 一种访问缓存的方法、装置及电子设备 | |
CN111738290A (zh) | 图像检测方法、模型构建和训练方法、装置、设备和介质 | |
CN112328630B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN113204665B (zh) | 图像检索方法、装置、电子设备及计算机可读存储介质 | |
US11194575B2 (en) | Instruction address based data prediction and prefetching | |
CN111133424B (zh) | 开放寻址的探测屏障 | |
US11947461B2 (en) | Prefetch unit filter for microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190705 |
|
WD01 | Invention patent application deemed withdrawn after publication |