当前位置: 首页 > 专利查询>英特尔公司专利>正文

区域感知增量预取器制造技术

技术编号:37977659 阅读:10 留言:0更新日期:2023-06-30 09:52
本公开涉及区域感知增量预取器。一种装置包括存储器电路系统的预取电路系统,该存储器电路系统包括第一数据结构,该预取电路系统耦合到存储器电路系统。预取电路系统用于在第一数据结构中存储与分配给程序的存储器区域的第一子区域相对应的第一子区域条目。第一子区域条目包括多个增量值。多个增量值中的第一增量值表示与存储器区域的第二子区域内的连续存储器访问相关联的两个缓存行之间的第一距离。预取电路系统进一步用于:检测第一子区域中第一缓存行的第一存储器访问;基于第一缓存行和多个增量值来标识预取候选;以及基于要被预取到缓存中的预取候选中的至少两个预取候选来发出至少一个预取请求。选来发出至少一个预取请求。选来发出至少一个预取请求。

【技术实现步骤摘要】
区域感知增量预取器


[0001]本公开总体上涉及处理系统领域,并且更具体地涉及区域感知增量(delta)预取器。

技术介绍

[0002]存储器预取是一种由许多现代计算机处理器实现的、用于增强核心性能的技术。预取可用于加快指令或数据的取得(fetch)操作并减少等待时间。通常,处理器监测执行应用的存储器访问模式,并尝试预测在应用的执行期间将被处理器访问的指令或数据。标识的指令或数据从较慢的存储器中的其原始存储位置被取得,并在这些标识的指令或数据被应用需要之前被移动到较快的本地存储器中。本地存储器通常是缓存,并且允许比主存储器访问或较低级别的存储访问显著更快地访问其内容,这是因为缓存更靠近于处理器。然而,等待时间仍然是高性能核心的瓶颈。
附图说明
[0003]图1是根据至少一个实施例的实现区域感知增量预取的计算系统的简化框图。
[0004]图2是图示根据至少一个实施例的、与区域感知增量预取相关联的子区域缓冲器的详细信息的框图。
[0005]图3是图示根据至少一个实施例的、可在区域感知增量预取中使用的元数据的示例的框图。
[0006]图4是图示根据至少一个实施例的、与区域感知增量预取相关联的模式表的详细信息的框图。
[0007]图5是图示根据至少一个实施例的、区域感知增量(region aware delta,RAD)预取器中操作的流程的框图。
[0008]图6是图示根据至少一个实施例的、关于两个波前的经解耦的预取生成和发出的框图。
[0009]图7是图示根据至少一个实施例的3级时间增量的框图。
[0010]图8A

8B是根据至少一个实施例的区域感知增量预取的示例过程的流程图。
[0011]图9是根据至少一个实施例的、与区域感知增量预取相关联的示例过程的流程图。
[0012]图10是根据本公开的实施例的可具有多于一个的核心、可具有集成存储器控制器、并且可具有集成图形器件的处理器的框图。
[0013]图11A是图示根据至少一个实施例的示例性有序管线以及示例性寄存器重命名、乱序发出/执行管线两者的框图。
[0014]图11B是图示根据至少一个实施例的要被包括在处理器中的有序体系结构核心的示例性实施例和示例性寄存器重命名、乱序发出/执行体系结构核心两者的框图。
[0015]图12是根据至少一个实施例的示例计算机体系结构的框图。
[0016]图13是根据至少一个实施例的用于片上系统的示例计算机体系结构的框图。
具体实施方式
[0017]本公开提供用于支持针对存储器访问的区域感知增量预取器的系统、方法、装置、体系结构和机器可读介质的各种可能的实施例或示例。具体地,本文公开的实施例提供了学习每一个大的线性地址区域的多个频繁出现的增量的轻量时空预取器。增量可以在大的线性地址区域的一个或多个子区域中被习得,并随后被应用于更大的区域。更大存储器区域中的每个子区域在程序执行期间继续跟踪增量,但可使用已被习得的最频繁出现的增量来进行预取。
[0018]为了更好地理解本公开中各实施例的技术,公开了与有效预取以减少计算系统中等待时间的挑战有关的以下情境信息。
[0019]满足现代处理器的存储器需求是优化处理器核心性能的一个重要因素。存储器等待时间仍然是高性能核心的关键瓶颈。更大的乱序执行窗口(例如,现代高性能核心)可以在一定程度上隐藏等待时间,但随之增加的乱序执行宽度(例如,每一个时钟周期引退更多指令的更宽的核心)减少了这种等待时间隐藏。更大的管芯上缓存将更多数据保持在更快的存储器中。然而,虽然在现代核心中,较外侧级别的缓存大小(例如,第二级(level 2,L2)、第三级(level 3,L3)等)通常增长,但由于访问等待时间要求,最内侧的且通常最快的缓存(例如,第一级(level 1,L1))可能仍受到限制。此外,进行缓存对冷(即,第一时间看到)访问无助于事。
[0020]积极的预取仍然是缓解等待时间瓶颈的重要方法。一般来说,预取涉及:预测在程序执行期间将由中央处理单元(central processing unit,CPU)在不久的将来使用的存储器地址,并且然后从这些存储器地址取得数据或指令,以存储在更靠近于CPU的存储器(诸如缓存)中。当预取针对最内侧的L1缓存时,需要准确的访问预测。然而,指令的乱序执行以及随之而来的不规则访问模式使准确预测访问变得更加困难。一些方法使用程序上下文(例如,有关程序执行的信息,诸如负载/分支指令指针(instruction pointer,IP)及其历史、负载地址的时间历史等)来预测程序的存储器访问。虽然增加的程序上下文(例如,负载/分支指令指针(IP)及其历史、负载地址的时间历史等)视角可以帮助提高准确度,但使用此类信息可能消耗过多的存储量,这往往使其使用不切实际。
[0021]基于多个预取器指标(包括准确度、覆盖范围和存储成本),许多现有的预取器解决方案是不够的。一般来说,预取器可以被描述为空间的或时间的。空间预取器可尝试通过依赖类似的访问模式来预测未来的存储器访问。空间预取器可确定表示与先前访问的某种关系并且可用于预测即将到来的访问的跨步或增量。增量是与当前存储器访问的缓存行相关联的存储器地址同与下一个存储器访问的缓存行相关联的存储器地址之间的差。用于计算增量值的、与缓存行相关联的存储器地址可能是缓存行的开头(例如,缓存行边界)、缓存行的结束、缓存行的中间或与缓存行相关的任何其他一致性偏移。
[0022]在一个已知的空间预取器中,单个最佳缓存行增量可被计算,并且得到的增量值可用于预取。只预测一个缓存行增量降低了访问的覆盖范围。此外,在没有程序上下文的情况下,也缺乏准确度,因此不被用于预取到最内侧的L2数据缓存中来进行最大等待时间隐藏。
[0023]时间预取器记忆地址流,并确定地址流中存储器地址的顺序。例如,针对每一个负载的全局流或地址流可被记忆。由于需要大量的存储空间来记忆地址流中的实际存储器地
址,因此时间预取器通常面临高昂的存储成本(例如,数百KB到1

10MB或更多MB)。此外,流记忆假设相同的地址序列重复出现,但是情况通常并非如此。该假设可能会损害预取准确度和覆盖范围。此外,与增量预测不同,地址记忆预取无法预取冷(第一时间看到)访问。
[0024]即使是上述时间流记忆和空间存储器预取的组合也可能是成本高昂的并且缺乏覆盖范围和准确度。执行流记忆的时间部分可能仍然消耗过多的存储装置。此外,一旦时间预取已完成即可被执行的空间预取可能如前所述缺乏准确度和覆盖范围。
[0025]如本文所述,区域感知增量(region aware delta,RAD)预取器可以解决上述许多问题(以及更多)。RAD预取器是结合的空间和时间(时空)预取器,其利用区域感知增量学习来实现预测的更高的准确度,并通过发出多个增量来以高覆盖范围为目标。此外,RAD预取器是轻量级的,并且其功能以低硬件成本实现。在一个或多个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种装置,包括:存储器电路系统,包括第一数据结构;预取电路系统,耦合至所述存储器电路系统,所述预取电路系统用于:在所述第一数据结构中存储与分配给程序的存储器区域的第一子区域相对应的第一子区域条目,所述第一子区域条目包括多个增量值,所述多个增量值中的第一增量值表示与所述存储器区域的第二子区域内的连续存储器访问相关联的两个缓存行之间的第一距离;检测所述第一子区域中第一缓存行的第一存储器访问;基于所述第一缓存行和所述多个增量值来标识预取候选;以及基于要被预取到缓存中的所述预取候选中的至少两个预取候选来发出至少一个预取请求。2.如权利要求1所述的装置,其中所述第一子区域条目用于响应于所述预取电路系统检测到对所述第一子区域的新存储器访问请求以及确定所述第一数据结构缺少所述第一子区域条目而被存储在所述第一数据结构中。3.如权利要求1所述的装置,其中,所述预取电路系统进一步用于:确定第二增量值,所述第二增量值表示所述第一子区域中的所述第一缓存行与所述第一子区域中的第二缓存行之间的第二距离,所述第二缓存行用于在所述第一缓存行被访问之前并且在没有对所述第一子区域的中间存储器访问的情况下被所述程序访问。4.如权利要求3所述的装置,其中,所述预取电路系统进一步用于:响应于确定所述第二增量值是所述第一子区域条目中的所述多个增量值中的一个增量值,使映射到所述第一子区域条目中的所述第二增量值的第二频率值递增。5.如权利要求3所述的装置,其中,所述预取电路系统进一步用于:响应于确定所述第二增量值未被包括在所述第一子区域条目中的所述多个增量值中,将所述第二增量值和映射到所述第二增量值的第二频率值存储在所述第一子区域条目中。6.如权利要求5所述的装置,其中,所述预取电路系统用于:响应于确定所述第二频率值至少为3,将所述第一子区域条目从所述第一数据结构驱逐。7.如权利要求3所述的装置,其中,所述预取电路系统进一步用于:确定第三增量值,所述第三增量值表示所述第一缓存行与所述第一子区域中的第三缓存行之间的第三距离,所述第三缓存行用于在所述第二缓存行被访问之前并且在没有对所述第一子区域的中间存储器访问的情况下被所述程序访问;以及响应于确定所述第三增量值是所述第一子区域条目中所述多个增量值中的一个增量值,使映射到所述第一子区域条目中的所述第三增量值的第三频率值递增。8.如权利要求7所述的装置,其中,所述预取电路系统进一步用于:确定第四增量值,所述第四增量值表示所述第一缓存行与所述第一子区域中的第四缓存行之间的第四距离,所述第四缓存行用于在所述第三缓存行被访问之前并且在没有对所述第一子区域的中间存储器访问的情况下被所述程序访问;以及响应于确定所述第四增量值是所述第一子区域条目中所述多个增量值中的一个增量值,使映射到所述第一子区域条目中的所述第四增量值的第四频率值递增。
9.如权利要求1

8中任一项所述的装置,其中第一时间窗口在所述第一子区域条目被存储在所述第一数据结构中时开始,并且其中所述第一时间窗口在所述第一子区域条目从所述第一数据结构被驱逐时结束。10.如权利要求9所述的装置,其中,所述预取候选用于响应于确定所述第一缓存行在所述第一时间窗口期间尚未被所述程序访问而被标识。11.如权利要求9所述的装置,其中,所述预取电路系统进一步用于:将区域条目存储在所述存储器电路系统的第二数据结构中以跟踪针对所述存储器区域的、预定数量的最频繁出现的增量值;以及将所述预定数量的最频繁出现的增量值加载到所述第一子区域条目中作为所述多个增量值。12.如权利要求11所述的装置,其中,所述预取电路系统进一步用于:在所述第一时间窗口之前,从所述第一数据结构驱逐与所述存储器区域的所述第二子区域相对应的第二子区域条目;以及用来自所述第二子区域条目的多个选择的增量值来更新所述区域条目中的所述预定数量的最频繁出现的增量值。13.如权利要求12所述的装置,其中,所述预取电路系统进一步用于:选择所述第二子区域条目中的所述多个选择的增量值,以至少部分基于所述多个选择的增量值的相应频率值来更新所述区域条目中的所述预定数量的最频繁出现的增量值;其中更新所述区域条目中的所述预定数量的最频繁出现的增量值包括将用与所述多个选择的增量相对应的多个频率值来更新所述区域条目中的相对应的频率值。14.如权利要求1

8中的任一项所述的装置,其特征在于,所述预取电路...

【专利技术属性】
技术研发人员:S
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1