用于处理器的基于访问映射图案匹配的预取单元.pdf

上传人:大师****2 文档编号:6206114 上传时间:2019-05-20 格式:PDF 页数:22 大小:1.48MB
返回 下载 相关 举报
摘要
申请专利号:

CN201480040220.5

申请日:

2014.06.17

公开号:

CN105378684A

公开日:

2016.03.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/0862申请日:20140617|||公开

IPC分类号:

G06F12/0862(2016.01)I

主分类号:

G06F12/0862

申请人:

苹果公司

发明人:

S·G·梅尔; G·R·威廉姆斯; H·S·坎纳恩; P·考纳斯

地址:

美国加利福尼亚

优先权:

13/942,780 2013.07.16 US

专利代理机构:

中国国际贸易促进委员会专利商标事务所11038

代理人:

罗亚男

PDF下载: PDF下载
内容摘要

在一个实施例中,处理器可实现基于访问映射-图案匹配(AMPM)的预取器,其中针对一些高速缓存块,该图案可包括通配符。通配符可匹配针对对应高速缓存块的任何访问(例如,没有访问、按需访问、预取、成功预取等)。此外,具有不规则步幅的图案和/或不规则访问图案可被包括在匹配图案中并且可被检测以用于预取生成。在一个实施例中,AMPM预取器可实现用于大流预取的链接访问映射。如果检测到流,则AMPM预取器可针对该流来分配映射条目对并且可重新使用该映射条目对以用于该流内的后续访问映射区域。在一些实施例中,品质因子可与每个访问映射相关联并且可控制预取生成的速率。

权利要求书

1.一种预取单元,包括:
第一存储器,所述第一存储器被配置为存储多个地址和对应的多个
访问映射,其中所述多个访问映射中的每个访问映射记录对位
于与所述多个地址中的对应地址相关联的限定区域内的多个高
速缓存块的访问,其中所述第一存储器被配置为响应于对位于
与所述多个地址中的给定地址相关联的所述限定区域内的访问
地址处的数据高速缓存的访问来输出所述多个访问映射中的给
定访问映射;
第二存储器,所述第二存储器被配置为存储要与所述给定访问映射
进行比较的多个访问图案,其中所述多个访问图案中的至少第
一访问图案包括被限定为匹配所述给定访问映射中的对应高速
缓存块处的任何访问的至少一个通配符符号;和
控制电路,所述控制电路被配置为响应于所述给定访问映射匹配所
述第一访问图案来生成一个或多个预取请求,包括将所述对应
高速缓存块处的任何访问与所述通配符符号匹配。
2.根据权利要求1所述的预取单元,其中所述第一访问图案进一步包
括用于指示通过按需访问所访问的一个或多个高速缓存块的一个或
多个访问符号。
3.根据权利要求1或2所述的预取单元,其中所述第一访问图案进一
步包括用于指示被预取并随后被按需访问的一个或多个高速缓存块
的一个或多个成功预取符号。
4.根据权利要求1-3中任一项所述的预取单元,其中所述第一访问图案
进一步包括用于指示没有对一个或多个高速缓存块的访问的一个或
多个无效符号。
5.根据权利要求1-4中任一项所述的预取单元,其中所述多个访问图案
中的第二访问图案是不能通过步幅准确描述的不规则图案。
6.根据权利要求1-5中任一项所述的预取单元,其中所述控制电路被配
置为检测跨越多个访问区域的访问流,其中所述控制电路被配置为
在所述第一存储器中分配访问映射对以追踪所述流,并且其中所述
控制电路被配置为在所述流跨越访问区域边界时重新使用所述访问
映射对,而不是将新的访问映射分配到所述流。
7.根据权利要求6所述的预取单元,其中所述控制电路被配置为当在
所述流跨越所述访问区域边界的情况下重新使用所述访问映射对中
的一个访问映射时将先前数据从所述访问映射对中的所述一个访问
映射清除。
8.根据权利要求1-7中任一项所述的预取单元,其中所述控制电路被配
置为追踪用于指示针对给定访问映射的预取的准确性的品质因子,
并且其中所述控制电路被配置为响应于所述品质因子来控制所生成
的预取的数量。
9.根据权利要求8所述的预取单元,其中所述控制电路被配置为响应
于所述访问映射的长度超过阈值来覆写所述品质因子。
10.根据权利要求8或9所述的预取单元,其中所述品质因子为信用计
数,其中响应于生成预取来消耗第一数量的信用,并且其中响应于
成功预取来恢复所述第一数量的信用,并且其中响应于时间的流逝
来恢复第二数量的信用。
11.一种方法,包括:
输出存储在第一存储器中的多个访问映射中的给定访问映射,所述
第一存储器进一步存储与所述多个访问映射对应的多个地址,
其中所述多个访问映射中的每个访问映射记录对位于与所述多
个地址中的对应地址相关联的限定区域内的多个高速缓存块的
访问,其中所述输出响应于对位于与所述多个地址中的给定地
址相关联的所述限定区域内的访问地址处的数据高速缓存的访
问;
将所述给定访问映射与存储在第二存储器中的多个访问图案进行比
较,其中所述多个访问图案中的至少第一访问图案包括被限定
为匹配所述给定访问映射中的对应高速缓存块处的任何访问的
至少一个通配符符号;以及
响应于所述给定访问映射匹配所述第一访问图案来生成一个或多个
预取请求,包括将所述对应高速缓存块处的任何访问与所述通
配符符号匹配。
12.根据权利要求11所述的方法,其中所述第一访问图案进一步包括用
于指示通过按需访问所访问的一个或多个高速缓存块的一个或多个
访问符号。
13.根据权利要求11或12所述的方法,其中所述第一访问图案进一步
包括用于指示被预取并随后被按需访问的一个或多个高速缓存块的
一个或多个成功预取符号。
14.根据权利要求11-13中任一项所述的方法,其中所述第一访问图案进
一步包括用于指示没有对一个或多个高速缓存块的访问的一个或多
个无效符号。
15.根据权利要求11-14中任一项所述的方法,其中所述多个访问图案中
的第二访问图案是不能通过步幅准确描述的不规则图案。
16.根据权利要求11-15中任一项所述的方法,还包括:
检测跨越多个访问区域的访问流;
在所述第一存储器中分配访问映射对以追踪所述流;以及
在所述流跨越访问区域边界时重新使用所述访问映射对,而不是将
新的访问映射分配到所述流。
17.根据权利要求16所述的方法,还包括当在所述流跨越所述访问区域
边界的情况下重新使用所述访问映射对中的一个访问映射时将先前
数据从所述访问映射对中的所述一个访问映射清除。
18.根据权利要求11-17中任一项所述的方法,还包括:
追踪用于指示针对给定访问映射的预取的准确性的品质因子;以及
响应于所述品质因子来控制所生成的预取的数量。
19.根据权利要求18所述的方法,还包括响应于所述访问映射的长度超
过阈值来覆写所述品质因子。
20.根据权利要求18或19所述的方法,其中所述品质因子是信用计
数,并且所述方法还包括:
响应于生成预取来消耗第一数量的信用;
响应于成功预取来恢复所述第一数量的信用;以及
响应于时间的流逝来恢复第二数量的信用。

说明书

用于处理器的基于访问映射-图案匹配的预取单元

技术领域

本发明涉及处理器中的预取机构。

背景技术

处理器继续被制造得具有更高的操作频率和每个时钟周期所执行的指
令(IPC)的更高的平均数量两者。另一方面,存储器延迟仅以非常低的速
率降低。因此,处理器经常停转以等待来自存储器的指令和/或数据。为了
改善性能,处理器通常包括一级或多级高速缓存。存储在高速缓存中的数
据可以比来自存储器的数据低的多的延迟来获取。因此,高速缓存命中可
具有低延迟并且可改善处理器的性能。高速缓存缺失从存储器获取并产生
较高的存储器延迟。

为了试图进一步降低有效存储器延迟,处理器可实现预取。一般来
讲,预取涉及预测处理器不久将需要访问哪些高速缓存块,以及在经由处
理器中的指令代码执行来生成此类访问之前发起针对该高速缓存块的存储
器读取。如果预取成功地读取稍后由处理器访问的高速缓存块,则存储器
延迟被降低,因为该访问是高速缓存命中而不是高速缓存缺失。另一方
面,不准确的预取可致使有用数据被从高速缓存移除并且该未准确预取的
数据不被访问,这可降低性能。另外,即使性能没有被不利地影响或被少
量改善,但是处理器执行预取所消耗的过量的电力可能是不合理的。具体
地,在可用能量有限(例如,来自电池)的便携式设备中,过量的电力消
耗可降低电池寿命。

发明内容

在一个实施例中,处理器可实现基于访问映射-图案匹配(AMPM)的预
取器,该预取器具有被设计为改善预取准确度和/或降低电力消耗的特征
部。在一个实施例中,与访问映射匹配的访问图案可包括用于该图案中的
一些高速缓存块的通配符。该通配符可匹配针对对应高速缓存块的任何访
问(例如,没有访问、按需访问、预取、成功预取等)。实现乱序执行的
实施例可以与初始代码序列不同的顺序或甚至以针对不同执行的不同顺序
来生成高速缓存访问,这取决于处理器中的其他指令的执行。这些变型实
际上在访问映射中产生“噪声”,通配符可过滤掉这些噪声。另外,当代
码序列以异常图案来访问高速缓存块但最终访问高速缓存块的规则图案
时,可使用通配符。此外,在一些实施例中,具有不规则步幅的图案和/或
不规则访问图案可被包括并且可被检测以用于预取生成。

在一个实施例中,AMPM预取器可实现用于大流预取的链接访问映
射。如果检测到流,则AMPM预取器可针对该流来分配映射条目对并且可
重新使用该映射条目对以用于该流内的后续访问映射区域。此类特征部可
阻止大流覆写AMPM预取器中的多个条目,并且与该流无关的其他可能有
用的访问映射可因此被保持。

在一些实施例中,品质因子可与每个访问映射相关联。品质因子可为
对所匹配的图案实际预测访问映射中的访问的效果的指示。当预取不如所
期望的准确时,品质因子可用于控制预取生成的速率。

附图说明

下面的详细描述将参照附图进行描述,现在对附图进行简要描述。

图1是处理器的一个实施例的框图。

图2是图1中所示的预取单元的一个实施例的框图。

图3是示出了待匹配的示例性图案的图示。

图4是示出了包括通配符和匹配图案的图案的图示。

图5是示出了图2中所示的预取单元的一个实施例的操作的流程图。

图6是示出了可被链接以用于链接流的访问映射条目对的一个实施例
的框图。

图7是示出了用于链接流的图2中所示的预取单元的一个实施例的操
作的流程图。

图8是示出了品质因子的一个实施例的框图。

图9是用于使用品质因子的图2中所示的预取单元的一个实施例的操
作的流程图。

图10是示出了系统的一个实施例的框图。

尽管本发明易受各种修改形式和替代形式的影响,但附图中以举例的
方式示出了其具体实施例并将在本文中进行详细描述。然而,应当理解,
附图以及对该附图进行的详细描述并非旨在将本发明限制于所公开的特定
形式,而正相反,其目的在于覆盖落在由所附权利要求所限定的本发明的
实质和范围内的所有修改形式、等同形式和替代形式。本文所使用的标题
仅用于组织的目的,并非意在用于限制说明书的范围。如在整个专利申请
中所使用的那样,以允许的意义(即,意味着具有可能性)而不是强制的
意义(即,意味着必须)来使用“可能”一词。类似地,词语“包括”
(“include”,“including”,和“includes”)是指包括但不限于。

各种单元、电路或其他部件可被描述为“被配置为”执行一项或多项
任务。在此类上下文中,“被配置为”是对通常意味着“具有”在操作期
间执行这一项或多项任务的“电路”的结构的宽泛表述。如此,单元/电路/
部件可被配置为即使在单元/电路/部件当前未接通时也执行该任务。通常,
用于形成与“被配置为”对应的结构的电路可包括硬件电路。类似地,为
了描述方便,可将各种单元/电路/部件描述为执行一项或多项任务。此类描
述应当被解释成包括短语“被配置为”。详述被配置为执行一项或多项任
务的单元/电流/组件旨在明确地不援引35U.S.C.§112,第六段对该单元/电
路/组件的解释。

本说明书包括对“一个实施例”(“oneembodiment”或“an
embodiment”)的引用。尽管除非本文明确排除通常设想包括特征部的任意
组合的实施例,但是短语“在一个实施例中”(“inoneembodiment”或
“inanembodiment”)的出现不一定是指同一实施例。可以与本公开一致的
任何适当的方式来组合特定特征、结构或特性。

具体实施方式

处理器概述

现在转向图1,其示出了处理器10的一个实施例的框图。在图1的实
施例中,处理器10可包括具有指令高速缓存14的获取/解码/映射/发布
(FDMI)单元12。处理器10还可包括一个或多个执行单元16A-16N、一
个或多个加载/存储单元(LSU)18A-18N、预取单元20、加载队列(LQ)
22、存储队列(SQ)24、预取队列(PQ)26、多路复用器(mux)28、数据高速
缓存30和外部接口单元32。数据高速缓存30和FDMI单元12耦接到外部
接口单元32,其被耦接以与处理器10的外部部件(例如,与2级(L2)高
速缓存和/或与包括处理器10的系统的其他部件)进行通信。FDMI单元12
耦接到执行单元16A-16N和LSU18A-18N。LSU18A-18N耦接到加载队列
22和存储队列24,并且预取单元20耦接到数据高速缓存30和预取队列
26。LSU18A-18N、加载队列22、存储队列24和预取队列26耦接到mux
28,该mux28耦接到数据高速缓存30和预取单元20。

FDMI单元12可被配置为获取用于由处理器10执行的指令,将该指令
解码成用于执行的指令操作(op),将op映射到推测资源(例如,重命名
寄存器)以允许乱序和/或推测执行,并且将用于执行的op发布到执行单元
16A-16N和/或LSU18A-18N。更具体地,FDMI单元12可被配置为将先前
从存储器获取(通过外部接口单元32)指令高速缓存到指令高速缓存14
中,并且可被配置为推测地获取处理器10的指令的推测路径。FDMI单元
12可实现各种预测结构以预测获取路径。例如,可使用下一个获取预测器
基于先前执行的指令来预测获取地址。可使用各种类型的分支预测器来验
证下一个获取预测,或如果没有使用下一个获取预测器则可使用分支预测
器来预测下一个获取地址。FDMI单元12可被配置为将指令解码成指令操
作。在一些实施例中,给定的指令可被解码成一个或多个指令操作,这取
决于指令的复杂度。在一些实施例中,特别复杂的指令可被微编码。在此
类实施例中,用于该指令的微程序可以指令操作进行编码。在其它实施例
中,由处理器10实现的指令集架构中的每个指令可被解码成单个指令操
作,因此该指令操作可基本上与指令同义(尽管解码器可在形式上对其进
行修改)。术语“指令操作”在本文中可更简单地称为“op”。这些op可
从用于指令的架构寄存器映射到物理寄存器,然后被调度以用于发布。在
各种实施例中,基于用于每个op的操作数的可用性,调度可集中在调度器
中,或分散在保留站中。一个或多个寄存器文件(未在图1中示出)可实
现处理器10的物理寄存器。在一个实施例中,针对不同的操作数类型(例
如,整数、媒体、浮点等)可存在独立的物理寄存器。在其他实施例中,
物理寄存器可在操作数类型之间共享。

在各种实施例中,执行单元16A-16N可包括任何类型的执行单元。例
如,执行单元16A-16N可包括整数、浮点和/或媒体执行单元。整数执行单
元可被配置为执行整数op。一般来讲,整数op是对整数操作数执行限定操
作(例如,算术、逻辑、移位/旋转等)的op。整数可为数值,其中每个值
对应于一个数学整数。整数执行单元可包括分支处理硬件以处理分支op,
或者可存在独立分支执行单元。

浮点执行单元可被配置为执行浮点op。一般来讲,浮点op可以是已
被限定为作用于浮点操作数的op。浮点操作数是被表示为底数(被升级到
指数幂)并乘以尾数(或有效数)的操作数。指数、操作数的符号和尾数/
有效数可在操作数中明确地表示并且底数可以是隐含的(例如,在一个实
施例中,底数为2)。

媒体执行单元可被配置为执行媒体op。媒体op可以是已经被限定为处
理媒体数据(例如,诸如像素的图像数据、音频数据等)的op。媒体处理
可通过对大量的数据执行相同的处理来表征,其中每个数据是相对小的值
(例如,8位或16位,相比于整数的32位或64位)。因此,媒体op通常
包括单指令-多数据(SIMD)或对表示多媒体数据的操作数的向量运算。

因此,每个执行单元可包括被配置为执行该特定执行单元被限定为处理
的op所限定的操作的硬件。执行单元通常彼此独立,在这个意义上每个执
行单元可被配置为作用于被发布到该执行单元的op,而不依赖于其他执行单
元。以另一种方式来看,每个执行单元可为用于执行op的独立管道。

LSU18A-18N可被配置为执行加载/存储op。一般来讲,加载op可指
定数据从存储器位置转移到寄存器,而存储op可指定数据从寄存器转移到
存储器位置。LSU18A-18N可被配置为执行从加载/存储op的各种地址操
作数生成虚拟地址并且可被配置为将op传输到数据高速缓存30(通过mux
28)以及传输到加载队列22/存储队列24。

加载队列22可被配置为对已由LSU18A-18N执行的加载进行排列。
如果它们在数据高速缓存30中缺失(和/或在转换被启用的情况下的TLB
缺失转换填充),则可对加载进行排列以等待高速缓存填充。可同样为了
排序理由对加载进行排列。类似地,存储队列24可被配置为对已由LSU
18A-18N执行的存储进行排列。这些存储可为用于缓存/TLB填充的队列,
以等待来自数据源操作数的存储数据,和/或等待非推测的/撤回的状态以更
新数据高速缓存30和/或存储器。在其它实施例中,可使用组合的加载/存
储队列。

预取队列26可存储由预取单元20所生成的预取请求以访问数据高速
缓存30。预取请求可通过预取单元20观察由LSU18A-18N执行的加载/存
储op而生成。因此,预取请求可为在指令代码被处理器10执行以实际地请
求数据之前生成的预测读取请求。相比之下,加载/存储op的高速缓存请求
可被称为需求获取,因为它们由代码的执行直接指定,而不是进行预测。

在一个实施例中,预取单元20可为具有各种增强功能的AMPM预取
器的具体实施。下面更详细地描述AMPM预取器。预取单元20可监控通
过mux28选择的需求获取/预取请求以访问数据高速缓存30,以及监控来
自数据高速缓存30的缓存命中/缺失状态以生成预取请求。

数据高速缓存30可具有任何容量和配置。例如,在各种实施例中,可
使用组关联、全相联和直接映射配置。数据高速缓存30可被配置为在高速
缓存块中高速缓存数据,其中高速缓存块是来自连续存储器位置的一组字
节,该来自连续存储器位置的一组字节作为一个单元在高速缓存中对空间
进行分配和解分配。高速缓存块可与高速缓存块边界对准(例如,32字节
的高速缓存块可与32字节边界对准,64字节的高速缓存块可与64字节边
界对准等)。因此,一个字节的地址可被划分成高速缓存偏移部分(该地
址的最低N个有效位,其中2N是该高速缓存块的尺寸)和高速缓存标记部
分(剩余的地址位)。在一个实施例中,数据高速缓存30可被虚拟索引并
且旁路转换缓冲器(TLB,未在图1中示出)可被平行访问以将虚拟地址
转换成存储器中的存储器位置的物理地址。

数据高速缓存30和指令高速缓存14中的缓存缺失以及转换访问、非
高速缓存访问等可被传达到外部接口单元32。外部接口单元32可被配置为
响应于在处理器10中生成的各种访问来将事物处理传输到外部部件。在其
上传输事物处理的外部接口可具有任何形式。例如,外部接口可为共享总
线、与分组事务的点到点互连件、全部或部分交叉件等。

Mux28可在其各种输入(LSU18A-18N、加载队列22、存储队列24
和预取队列26)之间进行选择以将高速缓存访问传输到数据高速缓存30。
至mux28的控制逻辑部件(未在图1中示出)可使用任何期望的仲裁机制
来在请求之间仲裁。

需注意,任何数量和类型的执行单元16A-16N可被包括在各种实施例
中,该实施例包括具有一个执行单元的实施例和具有多个执行单元的实施
例。任何数量的LSU18A-18N同样可被包括在各种实施例中,该实施例包
括一个LSU和多个LSU。包括加载单元(仅执行加载op)和/或存储单元
(仅执行存储op)的另外的实施例可包括或不包括LSU。

预取单元

现在转向图2,其示出了预取单元20的一个实施例的框图。在例示的
实施例中,预取单元20包括访问映射存储器40、偏移器42、访问图案存
储器44和控制电路46。访问映射40和偏移器42被耦接以接收数据高速缓
存30访问的虚拟地址(或其部分,如图2所示),并且访问映射存储器40
的输出耦接到偏移器42。控制电路46耦接到访问映射存储器40,耦接到
访问图案存储器46以将预取请求提供到预取队列26,并且接收来自数据高
速缓存30的高速缓存命中/缺失信息。偏移器42耦接到访问图案存储器
44。在例示的实施例中,访问映射存储器40包括标记存储器40A和映射存
储器40B。

预取单元20可为AMPM预取器的具体实施。访问映射存储器40可存
储用于覆盖虚拟地址空间中的各个访问区域的多个访问映射。访问映射可
表示对各个访问区域中的高速缓存块的访问。当另一个访问击中在访问映
射存储器40中的访问映射上时,访问映射可被输出并与存储在访问图案存
储器44中的各种访问图案进行比较。如果检测到给定的访问图案与访问映
射之间的匹配,则可生成由匹配图案指示的预取请求。可从在使用期间期
望由处理器10执行的各种代码序列上执行的痕量分析来确定访问图案。例
如,给定按需访问和/或成功预取的特定图案,可基于痕量分析来预测一个
或多个预取。访问图案可在处理器10的设计期间被识别并被硬编码到访问
图案存储器44中。另选地,访问图案中的一些或全部可在访问图案存储器
44中可编程并且在处理器10的初始化期间(例如,在复位时)或在其他方
便的时间可被写入访问图案存储器44中。

如上所述,访问图案40可存储用于覆盖虚拟地址空间中的各种访问区
域的多个访问映射。访问区域可为包括多个连续高速缓存块的虚拟地址空
间的区域。访问区域可与由访问区域的尺寸确定的边界对准。例如,如果
每个访问区域覆盖2千字节(KB),则访问区域对准2kB边界。访问区域
可为任何期望的尺寸。一般来讲,访问映射可为对已相对于访问区域内的
高速缓存块发生的各种高速缓存访问的记录。访问区域内的每个高速缓存
块可具有访问映射中的用于指示已发生的访问的类型的关联符号。在一个
实施例中,访问包括按需访问(符号A)、预取(符号P)、成功预取(符
号S)或无效(符号“.”)。每个符号可由访问映射中的高速缓存块所存
储的值的不同代码来表示。因此,基于以上符号,每个高速缓存块可存储
两个位。

按需访问的高速缓存块可为在没有被提前预取的情况下访问的高速缓
存块。因此,对高速缓存块的加载或存储可已被执行,并且可在数据高速
缓存30中缺失。预取的高速缓存块可为被预测为由预取单元20访问的高
速缓存块,该预取单元20生成预取请求,该预取请求通过预取队列26并
且被提供至数据高速缓存30。另选地,预取的高速缓存块可已将预取请求
生成并插入到预取队列26,但是可已经或没有呈现给数据高速缓存30。成
功预取的高速缓存块可为被预取的高速缓存块,并且随后在数据高速缓存
30中被按需访问(并且因此在数据高速缓存30中按需访问命中)。成功预
取的高速缓存块可因此为准确预取的高速缓存块,因为其被访问。访问映
射中的无效的高速缓存块可为没有被访问的高速缓存块。

因此,数据高速缓存访问的虚拟地址(VA)(不包括该地址的N个最
低有效位,位N-1:0,其中2N为高速缓存块的尺寸)可被输入到预取单元
20。提供给预取单元20的虚拟地址的最低有效P-N位可为访问映射内的到
被访问的高速缓存块的偏置。因此,访问映射可覆盖2P+1个字节。在虚拟
地址的其余部分,位M:P+1可为标记,该标记可与标记存储器40A中的标
记进行比较。

标记存储器40A可包括多个条目,每个条目存储用于映射存储器40B
中的对应访问映射的标记。在一个实施例中,访问映射存储器40可为全相
关联的,因此标记存储器40A可为内容可寻址存储器(CAM)。如果在输
入到访问映射存储器40的VA标记输入与CAM40A中的条目之间检测到
匹配(并且设置了无效位),则在该条目上检测到命中。映射存储器40B
中的对应条目(例如,随机访问存储器或RAM)可由访问映射存储器40
输出到偏移器42。映射RAM40B中的每个条目可包括访问映射(用于访
问区域中的每个高速缓存块的符号,在图2中标记为AM)并且可任选地
包括与访问映射相关联的状态(在图2中标记为St)。下面将更加详细地
描述用于各种实施例的示例性状态。

访问图案存储器44中的访问图案可集中在访问点上,访问点可为访问
图案的大致中心。即,访问点可为访问图案的正中间的靠右或靠左的一个
位置,因为访问图案可为偶数个符号长度并且正中间处于两个符号之间。
如果访问图案是奇数个符号,则访问点可为该图案的中心。通过将访问点
放置在中心,图案可允许检测向前访问图案和向后访问图案两者。向前图
案可在访问映射内以越来越大的偏置进行(将访问映射偏置为数字),而
向后图案可以越来越小的偏置进行。此外,可允许对访问点两侧上的符号
的匹配以捕获异常的访问图案。

因此,基于输入VA的访问映射偏置,偏移器42移访问映射以将访问
映射的当前访问点对准到图案存储器44中的访问点。偏移的访问图案可被
提供给访问图案存储器44,该访问图案存储器44可将偏移的访问图案与图
案进行比较。访问图案存储器44可因此为具有比较电路的只读存储器
(ROM)、CAM,或在一些访问图案被硬编码而其他访问图案被编程的情
况下该访问图案存储器为ROM和CAM的组合。如果图案被匹配,则匹配
图案可由访问图案存储器44输出到控制电路46。控制电路46可被配置为
基于匹配图案来生成一个或多个预取请求并且可将该预取请求传输到预取
队列26。在例示的实施例中,访问图案存储器44可包括存储L+1个访问
图案的L+1个条目,在图2中该L+1个访问图案被标记为P0到PL。

给定的访问映射可与图案存储器44中的多于一个图案匹配。较长的图
案(具有最多按需访问和/或成功预取的高速缓存块的图案)可更有可能生
成准确的预取。在一个实施例中,图案存储器44中的图案可被分类,使得
较长的图案最接近存储器的一端(例如,其中图案P0被存储所在的“顶
部”、或其中图案PL被存储所在的“底部”)。图案存储器44可包括优
先权解码器,如果存在多于一个匹配,则优先权解码器选择最接近顶部或
最接近底部的匹配。这样,所匹配的最长的图案可自然地从图案存储器44
被选择并且提供给控制电路46。

除生成预取请求之外,控制电路46可被配置为更新访问映射存储器
40中的命中访问映射。在一些情况下,该更新可受高速缓存命中/缺失结果
影响,因此可由控制电路46接收来自数据高速缓存30的高速缓存命中/缺
失。在访问映射存储器40上缺失的情况下,预取单元20可将访问映射条
目分配到虚拟地址并且可开始追踪所分配的条目中的访问映射。

图3示出了根据预取单元的一个实施例的可在访问图案存储器44中表
示的访问图案的各种实例。访问点(AP)被示出为具有AP的头部以及将
在访问点处的符号与其他符号隔开的两个竖直线。访问图案可使用与在访
问映射中使用的相同的一组符号,包括“.”符号、P符号、A符号和S符
号(尽管在图3的实例中没有使用S符号)。

所示的第一图案为简单的单元步幅图案,其可被基于步幅的预取器检
测到。在这种情况下,该图案是向前的,因此A符号位于左边并且P符号
位于右边。为了匹配该图案,三个A符号将需要被匹配到访问映射。如果
检测到对图案的匹配,控制电路46可被配置为生成两个预取请求,一个在
访问点加一个高速缓存行处以及一个在访问点加两个高速缓存行处。如果
访问映射已包括一个P,则可生成另一个预取请求。如果两个P均已在访
问映射中,则没有另外的预取请求可被生成。

所示的第二个图案是非单元步幅,但仍为在向前方向上的规则步幅。
在该实例中,步幅是两个。如果检测到对该图案的匹配(通过匹配三个A
以及中间的“.”符号),控制电路46可被配置为生成两个预取请求,一个
在访问点加两个高速缓存行处以及一个在访问点加四个高速缓存行处。类
似于第一图案,如果给定的P已在访问映射中,则另一个预取请求可被生
成,并且如果两个P已在访问映射中,则没有预取请求可被生成。

所示出的第三个图案是在向后方向上的单元步长图案,同样如果该图
案通过三个A被匹配,则两个预取将被生成,从而两个预取请求将被生成
(一个在访问点减一个高速缓存行处,另一个在访问点减两个高速缓存行
处)。类似于第一图案,如果给定的P已在访问映射中,则另一个预取请求
可被生成,并且如果两个P已在访问映射中,则没有预取请求可被生成。

图3中的第一三个图案示出了基于步幅的预取器可能能够被检测到的
图案。然而,使用图案对所生成的预取的数量的控制可更加精确。在一个
实施例中,如果在图案中存在N个匹配的A和/或S,则在该图案中可存在
N-1个P。因此,随着图案长度变长,图案中的生成准确预取的置信度可增
加。

此外,通配符可被包括在图案中。例如,所示出的第四个图案可包三
个通配符,在图3中示为“*”(例如,在参考标号48处)。通配符图案
可匹配访问映射中的任何符号。在一个实施例中,通配符图案可增加访问
图案的灵活性。例如,在乱序处理器中,按需访问可基于操作数可用性、
执行资源可用性和其他动态因素以各种顺序发生。访问的变化的顺序在访
问点附件产生噪声,发明人将其称为“嘈杂的波前”。在没有通配符的情
况下,准确地将此类访问映射匹配到访问图案可更加复杂。可不得不包括
多个访问图案以捕获所有可能的顺序,例如限制可被包括在给定大小的存
储器中的不相关访问图案的数量。

访问图案中的通配符符号可有用的另一种情况是捕获其中异常顺序的
访问被代码执行的访问映射(即使被大致按顺序执行),即使最终的访问图案
是规则的(例如,访问映射范围内的所有高速缓存块可被触动或可预测的组
可被触动)。在这种情况下,针对异常的乱序的访问可使用通配符。

在一个实施例中,包括通配符的访问图案可包括更少的P,因为图案
匹配准确度的置信度可没有这么高。例如,在确定包括多少P时仅对访问
图案中实际的A进行计数。另选地,可以打折的权重(例如,1/2、1/3
等)对通配符进行计数。

如所提及的,通配符符号可匹配访问映射中的相同点处的任何符号。
因此,多个访问映射可匹配包括通配符符号的图案。图4是具有一个通配
符符号的访问图案的实例,四个访问映射将匹配该访问图案。

可使用的另一种类型的图案是不规则图案。图3中示出的最后两个图
案是不规则图案的实例。一般来讲,不规则图案可为可预测的任何访问图
案,但是不能用步幅来准确描述。即,由正被执行的指令代码访问的实际
高速缓存块可被不规则地间隔开,但仍然是可预测的。具有不规则图案的
访问映射在图案存储器44中可检测到,并且可被准确预测以用于预取。如
上所述,通配符图案也可有助于检测不规则图案。

接着转向图5,其示出了用于示出预取单元20(并且更具体地,响应
于由预取单元20接收的虚拟地址(平行于用于访问数据高速缓存30的地
址)的控制电路46)的一个实施例的操作的流程图。为了便于理解,尽管
框以特定的顺序示出,但也可使用其他顺序。框可平行于预取单元20/控制
电路46中的组合逻辑部件来执行。框、框的组合和/或作为整体的流程图可
在多个时钟周期内流水化。预取单元20/控制电路46可被配置为实现图5
所示的操作。

虚拟地址(或地址的访问映射标记部分)可被呈现给访问映射存储器
40。如果虚拟地址在访问映射存储器40中缺失(决策框50,“no”分
支),则控制电路46可被配置为包含虚拟地址的访问区域分配访问映射存
储器40中的条目(框52)。可使用任何种类的分配机制。例如,控制电路
46可保持访问映射条目上方最近最少使用的(LRU)数据,并且如果不存
在无效条目待分配,则可替换LRU条目。可使用各种伪LRU机制,或者
可使用随机替换。控制电路46可利用访问区域的虚拟地址(例如,VA的
位M:P+1)来初始化所分配的条目的标记部分(在标记CAM40A中)并且
可设定无效位(框54)。另外,控制电路可利用除由访问映射偏置(VA
的位P:N)指示的访问点处的A之外的明确的访问映射(例如,全部无
效)来初始化条目(在映射RAM40B中)的访问映射部分(框56)。如果包
括,还可初始化与访问映射相关联的状态域。

如果虚拟地址是访问映射存储器40中的命中(决策框50,“yes”分
支),则访问映射存储器40可将对应的访问映射输出到偏移器42。偏移器
42可偏移访问映射以对准访问点(对访问区域中的被访问高速缓存块的偏
置--框58)。由偏移器42输出的偏移图案可与访问图案存储器44中的访
问图案进行比较。如果图案匹配(决策框60,“yes”分支),则控制电路
42可被配置为基于所匹配图案中的P以及还基于访问映射中所记录的任何
先前生成的预取来生成一个或多个预取请求(框62)。即,先前生成或发
布的预取可不再被生成。

控制电路46还可更新访问映射存储器40的命中条目中的访问映射,
这与访问映射是否匹配访问图案存储器44中的图案无关(框64)。在本实
施例中,控制电路42可更新访问映射以指示当前的访问以及任何已生成的
预取请求。如果访问映射在访问点处具有无效的符号(“.”)并且该访问
是按需访问,则“A”符号可被插在访问点处。如果访问映射在访问点处具
有预取符号(“P”)并且访问是在数据高速缓存30中命中的按需访问,则
“S”符号可被插入在访问点处。如果访问映射在访问点处具有无效符号
(“.”)并且访问是预取请求,则“P”符号可被插入在访问点处。所生成的
预取可在访问映射中的它们各自的点处被指示。在另一个实施例中,仅当
前的访问可被记录在访问映射中,并且当随后被呈现给数据高速缓存30时
可记录预取请求。

在一些实施例中,预取单元20可支持链接的条目以管理大的访问流。
访问流可以是通过大内存覆盖区域(例如,两个或更多个访问映射区域)
来访问数据的一系列相关的访问(例如,从相同的执行线程诸如代码中的
循环生成)。很多情况下,访问流可逐步通过覆盖区域来访问数据,但不
可频繁返回到先前访问过的数据。如果流散布于多个访问区域内,则流可
占据访问映射存储器40中的多个条目,从而可能取出其他有用的访问映
射。可使用链接的条目更加有效地处理访问映射存储器40中的流,从而在
还可能保持许多其他访问映射的同时准确地预取流。在一个实施例中,根
据流阈值可检测流,该流阈值可与访问映射长度进行比较。流阈值可被固
定或为可编程的。访问映射长度可涉及访问映射中的按需访问的高速缓存
块中的至少多个按需访问的高速缓存块(即,“A”符号),并且在一些情
况下还可包括成功的预取(即,“S”符号)。类似地,访问图案存储器
44中的访问图案的图案长度可涉及访问映射中的按需访问的高速缓存块的
至少多个按需访问的高速缓存块(即,“A”符号),并且在一些情况下还
可包括成功的预取(即,“S”符号)。

一旦预取单元20识别流,则预取单元可向该流分配链接条目。链接条
目可包括至少一对条目,并且如果需要保持足够的流历史,则可包括多于
一对条目。然而,在本文中使用一对条目作为实例。链接条目对可用于追
踪访问映射,并且在流跨访问区域行进时可被重新使用,而不是分配新的
映射条目以追踪流。这样,由流进行的对访问映射条目的消耗可以是有限
的,并且从访问映射存储器40置换不相关的访问映射可类似地是有限的。

图6是一对链接条目70(条目Q和条目Q+1)的一个实施例的框图。
因此,条目可为访问映射存储器40中的相邻条目。其他实施例不需要采用
相邻条目。在一个实施例中,可使用遍及存储器40的相邻条目对来追踪
流。在另一个实施例中,存储器40中的条目的子集可成对,并且可用于追
踪流。在任一种情况下,如果没有流被追踪,则条目对可单独用于追踪非
流访问映射。仍在其他实施例中,链接条目70可与存储器40中的条目隔
开来实现,并且可仅用于流访问映射追踪。

如图6所示,条目Q可包括无效位以及条目的标记部分中的VA标
记。在一个实施例中,如果条目正用于流,则VA标记的最低有效位(图2
中的位P+1)针对与输入VA的标记比较可被忽略。条目Q还可包括访问
映射的低部分(位P+1是零的一部分)。高部分可被存储在条目Q+1中。
条目Q中的状态可包括流位(Str),该流位可被设定以指示检测到流,并
且可包括方向位(D)。方向可指示流是向前的(数值上增加地址)还是向
后的(数值上减少地址)。如果流是向前的,则访问映射预计将溢出高访
问映射的上端并且绕回至低访问映射。如果图案是向后的,则访问映射预
计将溢出低访问映射的下端并且绕回至高访问映射的上端。

第二条目(Q+1)的标记字段可用于存储虚拟地址空间中的在当前页之后
的下一页的虚拟地址。如果流是向前的,则下一页可以是地址空间中的较
高的一页(例如,VA+1页),如果流是向后的,则下一页可以是地址空间
中的较低的一页(例如,VA-1页)。不同的实施例之间的页的大小可变
化。例如,可使用4kB、多个4kB、1兆字节(MB)、2MB、4MB等的页
大小,或者可使用更大或更小的页尺寸。

图7是示出预取单元20(并且更具体地,响应于针对由预取单元20所
接收的虚拟地址来命中访问映射存储器40中的条目的控制电路46)的一个
实施例的操作的流程图(平行于该数据高速缓存30的地址访问)。还可执
行其他操作,如图5所示及以上所述。虽然为了便于理解,该框以特定顺
序示出,但也可使用其他顺序。可平行于预取单元20/控制电路46的组合
逻辑部件来执行框。框、框的组合和/或作为整体的流程图可在多个时钟周
期内流水化。预取单元20/控制电路46可被配置为实现图7所示的操作。

控制电路46可确定访问映射的长度是否大于流阈值(决策框72),
从而识别流。如果是这样(决策框72,“yes”分支),则控制电路46可
被配置为将成对的条目分配给当前条目,并且可链接该成对的条目以用于
该流(框74)。控制电路46可初始化成对条目中的访问映射,并且可基于
所检测到的流来设定当前条目的状态中的流字段和方向字段。

控制电路46还可被配置为确定何时抛弃成对条目中的旧数据。旧数据
可与针对该流已完成的访问映射区域相关。因为流中的访问可不一定以单
调的方式贯穿访问映射来行进,所以过早抛弃旧数据可导致可对预测预取
仍然有用的信息的丢失。另一方面,抛弃旧数据使其不影响新预取的准确
性也可以是重要的因素。可实现用于抛弃旧数据的各种方案。抛弃旧数据
在本文中被称为“摧毁”数据。

一个方案可以是响应于记录条目中的第一新的访问(即,在从成对条
目的另一端绕回之后)来清除该成对条目中的一个条目中的访问映射。该
方案可被称为“在返回过程中摧毁”,因为在绕回发生时旧数据被抛弃。
另一种方案可以是当针对访问检测到缓存缺失并且其命中访问映射中的
“S”状态时,利用新数据来重写该数据,但仅摧毁旧数据(还没有被重写
的那些数据)。另一种方案可为全相干方案,其中针对访问映射存储器40
可检查来自高速缓存的任何收回,以确保块的高速缓存状态的改变被反映
在访问映射中(例如,收回可被设定成无效符号)。

如果控制电路46根据所实现的摧毁方案(决策框76,“yes”分支)
检测到摧毁条件,则控制电路46可被配置为清除包含旧数据的访问映射
(低或高)(框78)。清除访问映射可涉及针对每个高速缓存块将符号设
定成无效。

如果给定的访问从成对条目的一端溢出,如状态中的方向字段所指示
的(决策框80,“yes”分支),则控制电路46可绕回到成对条目的另一
端(框82)。如上所述,在一些实施例中,绕回还可为摧毁条件并且可使
得发生绕回的访问映射被清除。

如先前所提及的,访问的较长序列(并且更具体地,较长序列中的重
复规则图案)与短序列和/或较不规则图案相比较可更加准确以用于预测预
取。因此,访问图案存储器44中的一些访问图案是长的,以生成具有高准
确度的预取。然而,因为需要记录多个访问来建立较长的访问映射,所以
较长的访问映射花费较长时间来生成(以匹配较长的访问图案)。因此,
较短的访问图案可被包括在访问图案存储器44中。较短的访问图案可在访
问序列(例如,通过较短的访问映射)中较早地匹配以在序列中较早地生
成预取请求。通常,在准确地预测预取方面较短的图案可相当好地执行。
然而,在一些情况下,短的访问图案可不是有效的。

在一些实施例中,每个访问映射条目中的状态字段可存储品质因子。
图8中示出了此类条目90,其示出了虚拟地址标记、访问映射和品质因子
(QF)。还实现用于流的链接条目的实施例同样可包括状态字段中的Str
和D位,这在图8中未示出。品质因子可为测量或估计用于对应访问映射
的预取的有效性的值。品质因子可用于在有效性不高时进一步限制或阻止
预取(在图案自身已限制在其上)。另外,在一些实施例中,品质因子可
用于“测试”虽然有效但被缓慢消耗的预取。即,使用品质因子来限制预
取可导致待递送的预取数据接近由需求获取数据将消耗的时间。存储器系
统中的存储器访问的调度在一些情况下可更加有效,因为预取业务量是较
少爆发性的,并且因此存储器系统中的拥塞可以是较低的。

如上所述,较长的访问图案在预测预取中可趋于更加准确,并且这样
如果访问映射长度超过阈值,则可不使用品质因子。在一些实施例中,阈
值可以是固定的或在预取单元中可编程。

在一个实施例中,品质因子可为基于令牌的机制或基于信用的机制。
令牌/信用可表示待处理的预取的可允许的量。因此,在生成预取请求时可
消耗令牌/信用(并且仅在令牌/信用足够可用时可生成预取请求)。成功的
预取可使令牌/信用返回到品质因子值,并且时间的流逝也可使令牌/信用返
回到该值。因此,如果预取没有被需求获取消耗,则预取请求被生成的速
率可被降低。

图9为示出了预取单元20(以及更具体地,响应于在使用品质因子时
用于访问映射的访问图案存储器44中的图案匹配的控制电路46)的一个实
施例的操作的流程图。也可执行其他操作,例如,如图5所示以及如上所
述。虽然为了便于理解,框以特定顺序示出,但可使用其他顺序。可平行
于预取单元20/控制电路46的组合逻辑部件来执行框。框、框的组合和/或
作为整体的流程图可在多个时钟周期内流水化。预取单元20/控制电路46
可被配置为实现图9所示的操作。

如果访问映射长度大于品质因子阈值(决策框92,“no”分支),则
品质因子不用于访问映射。一个或多个预取请求可按访问映射中的指示生成
(框94)。如果访问映射长度小于品质因子阈值,但是所指示的预取请求
已被生成或者没有足够的信用/令牌可用于生成预取请求(决策框92,
“yes”分支以及决策框96,“no”分支或决策框98,“no”分支),则没
有预取请求可被生成。控制电路46可被配置为基于老化/时间的流逝来更新
品质因子(框100)。如果存在待生成的一个或多个预取请求并且存在充足
的令牌/信用(决策框92、96和98,“yes”分支),则控制电路46可被配
置为更新品质因子以消耗用于一个或多个预取请求的信用/令牌(框102)并
且可被配置为生成所指示的以及所允许的一个或多个预取请求(框94)。

另外,如果预取被需求获取消耗(在访问映射中将“P”符号改成
“S”符号-决策框104,“yes”分支),则控制电路可被配置为更新品质
因子以恢复预取请求所消耗的信用/令牌的数量(框106)。

在各种实施例中,每个预取请求所消耗的信用/令牌的数量以及成功的
预取所恢复的信用/令牌的数量以及随着时间流逝所恢复的信用/令牌的数量
可不同。在一个实例中,品质因子可被初始化为100个信用/令牌并且100
可为品质因子中的最大值。一个预取可消耗25个信用/令牌并且成功的预取
可恢复25个信用/令牌。信用/令牌可针对时间流逝每个时钟周期一个信用/
令牌的速率被恢复。

系统

随后转向图10,其示出了系统150的一个实施例的框图。在例示的实
施例中,系统150包括耦接到一个或多个外围设备154和外部存储器158
的片上系统(SOC)152的至少一个实例。提供了电源156,该电源向SOC
152供应供电电压并且向存储器158和/或外围设备154供应一个或多个供
电电压。在一些实施例中,SOC152的多于一个实例可被包括(也可包括
多于一个存储器158)。SOC152可包括图1所示的处理器10的一个或多
个实例。

根据系统150的类型,外围设备154可包括任意期望的电路。例如,
在一个实施例中,系统150可以是移动设备(例如,个人数字助理
(PDA)、智能电话等),并且外围设备154可包括用于各种类型无线通
信的设备,诸如wifi、蓝牙、蜂窝、全球定位系统等。外围设备154还可
包括附加存储装置,包括RAM存储装置、固态存储装置或磁盘存储装置。
外围设备154可包括用户界面设备,诸如包括触摸显示屏或多触摸显示
屏、键盘或其他输入设备、麦克风、扬声器等的显示屏。在其他实施例
中,系统150可以是任何类型的计算系统(如台式个人计算机、膝上型电
脑、工作站、网络机顶盒等)。

外部储存器158可包括任何类型的存储器。例如,外部存储器158可
为SRAM、动态RAM(DRAM)诸如同步DRAM(SDRAM)、双数据速率
(DDR、DDR2、DDR3等)SDRAM、RAMBUSDRAM、DDRDRAM的
低功率版本(例如,LPDDR、mDDR等)等。外部存储器158可包括一个
或多个存储器模块,存储器设备被安装到该一个或多个存储器模块,诸如
单列直插式内存模块(SIMM)、双列直插式内存模块(DIMM)等。另选地,
外部存储器158可包括以片对片具体实施或封装对封装具体实施被安装在
SOC10上的一个或多个存储器设备。

一旦充分理解了以上公开,则很多变型和修改对于本领域的技术人员
而言将变得显而易见。本发明旨在将以下权利要求书解释为涵盖所有此类
变型和修改。

用于处理器的基于访问映射图案匹配的预取单元.pdf_第1页
第1页 / 共22页
用于处理器的基于访问映射图案匹配的预取单元.pdf_第2页
第2页 / 共22页
用于处理器的基于访问映射图案匹配的预取单元.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《用于处理器的基于访问映射图案匹配的预取单元.pdf》由会员分享,可在线阅读,更多相关《用于处理器的基于访问映射图案匹配的预取单元.pdf(22页珍藏版)》请在专利查询网上搜索。

在一个实施例中,处理器可实现基于访问映射-图案匹配(AMPM)的预取器,其中针对一些高速缓存块,该图案可包括通配符。通配符可匹配针对对应高速缓存块的任何访问(例如,没有访问、按需访问、预取、成功预取等)。此外,具有不规则步幅的图案和/或不规则访问图案可被包括在匹配图案中并且可被检测以用于预取生成。在一个实施例中,AMPM预取器可实现用于大流预取的链接访问映射。如果检测到流,则AMPM预取器可针对该。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1