基于缓冲器充满度而向高速缓存进行预取的制作方法_2

文档序号:8449188阅读:来源:国知局
116上。控制器115随后使用存储在存储器阵列116上的数据来满足需求请求。如果控制器125确定存储阵列126并未存储与存储器地址关联的存储数据,其便指示高速缓存未命中并且将需求请求提供给处于存储器层次结构145的下一更低级别上的高速缓存。处于存储器层次结构145的其它级别上的控制器执行与控制器125类似的操作,以便确定其对应的存储阵列是否存储与存储器地址关联的数据。如果确定其对应的存储阵列存储所述数据,它们便将数据提供给处于层次结构中的下一更高级别上的高速缓存,所述高速缓存又将所述数据提供给下一更高级别的高速缓存,诸如此类,直到数据被提供给控制器115,以便存储在存储阵列116上。如果高速缓存并未存储与存储器地址关联的数据,那么其便指示高速缓存未命中,并且将需求请求提供给处于下一更高级别上的高速缓存。需求请求因而穿过存储器层次结构145,直到数据被确定位于高速缓存上,或者直到其到达LN高速缓存106。如果控制器135确定存储阵列136并未存储与存储器地址关联的数据,其便将存储器地址提供给存储器150。作为响应,存储器150将数据提供给控制器135,以便沿存储器层次结构145向上穿到LI高速缓存104。
[0025]在一些实施方案中,高速缓存104至106中的每个高速缓存响应于需求请求来存储从下一更高级别上的高速缓存提供的数据。一般来说,更低级别高速缓存比更高级别高速缓存具有更高的容量(例如,更多存储单元),并且因此可存储更多数据。在一些实施方案中,高速缓存104至106的控制器可实施不同策略,据此高速缓存可将数据提供给下一更高级别,而不将数据存储在其存储阵列上。例如,每个需求请求可包括指示需求请求类型(如优先级级别)的字段,并且高速缓存104至106的控制器可基于需求请求的优先级级另IJ,确定存储阵列中的哪个存储阵列将响应于需求请求来存储数据。
[0026]处理器核心110包括预取器112,所述预取器112分析由加载/存储单元111发出的需求请求,并且基于所述分析而发出用于数据的预取请求。预取请求类似于需求请求,但基于期望将在稍后点上由处理器核心110上执行的指令所请求的数据而生成为投机性操作。如本文进一步描述的,预取请求使得被预取请求锁定为目标的数据沿着存储器层次结构145向上移动。因此,如果按照期望方式来请求数据,那么所述数据在层次结构中更靠近处理器核心110,从而减少存取延时。
[0027]预取请求被提供给LI高速缓存104,并且可由存储器层次结构145按照与需求请求类似的样式加以满足。出于说明目的,每个预取请求包括指示被预取请求锁定为目标的数据的存储器位置的存储器地址。预取请求可按照与需求请求类似的样式穿过存储器层次结构145,据此被预取请求锁定为目标的数据沿着层次结构向上传输,直到其存储在LI高速缓存104上。如下文进一步描述的,对于一些预取请求来说,被预取请求锁定为目标的数据并不特地传输至LI高速缓存,而是仅仅传输至存储器层次结构145的更低级别,如L2高速缓存105。这允许处理器102在高速缓存资源缺乏时更为有效地管理需求请求的满足,正如本文进一步描述的。
[0028]如果高速缓存等待来自层次结构中下一更低级别高速缓存的、对需求请求或预取请求的响应,那么需求请求或预取请求相对于高速缓存来说便称为“未决的”。因此,举例来说,如果LI高速缓存104等待L2高速缓存105响应于需求请求来提供数据,那么需求请求便称为在LI高速缓存上是未决的。应了解,给定的需求请求或预取请求可在高速缓存104至106中的多个高速缓存上是未决的,这取决于响应需求请求的数据在存储器层次结构145中所处的位置。高速缓存104至106配置为非阻塞高速缓存,原因在于高速缓存104至106的每个高速缓存可执行其它操作,包括响应于其它需求请求或预取请求,而同时在高速缓存上仍然存在未决的需求请求或预取请求。
[0029]为实施高速缓存104至106的非阻塞属性,处理器102包括未命中地址缓冲器(MAB) 130。MAB 130包括多个时隙,如时隙165,据此每个时隙可存储表示高速缓存104至106中的一个高速缓存上未决的对应需求请求或预取请求的信息。处理器102给高速缓存104至106中的每个高速缓存在MAB 130上分配一组对应的时隙,以使得高速缓存可仅将用于未决需求请求或未决预取请求的信息存储在其分配时隙中的一个时隙上。在图1的所示实施例中,每个时隙标记有其所分配到的对应高速缓存。
[0030]出于说明目的,响应于确定存储器层次结构145的高速缓存上的高速缓存未命中,高速缓存的控制器在其分配的组中找到任何可用的时隙,以便存储针对导致高速缓存未命中的需求请求或预取请求的信息。如果时隙并未存储用于高速缓存上未决的另一需求请求或预取请求的信息,那么所述时隙便确定为可用的。高速缓存控制器将针对导致高速缓存未命中的需求请求的信息存储在可用时隙上。一旦MAB130上分配给高速缓存的最后一个可用时隙已填充有用于需求请求或预取请求的信息,高速缓存便向存储器层次结构145的下一更高级别上的高速缓存指示其无法接收额外的需求请求或预取请求。响应于与提供给高速缓存的未决需求或预取请求相回应的数据,高速缓存的控制器会使MAB 130上的对应时隙可用,并且向存储器层次结构145的下一更高级别指示其可接收额外的需求请求或预取请求。
[0031]在一些情况下,允许MAB 130上高速缓存的分配时隙由过大数目的未决预取请求使用,会降低处理器核心110上的处理效率。例如,在一些情况下,如果比起预取请求的满足,需求请求的满足在高速缓存104-106上被给予更高优先级,那么便会提高处理效率。因此,高速缓存104至106可管理MAB 130,以便增加时隙将可用于存储针对未决需求请求的信息的可能性。例如,在一些实施方案中,用于LI高速缓存104的控制器115监控MAB 130上分配给高速缓存104的可用时隙的充满度。如果时隙的充满度低于阈值,那么控制器115便实施相应策略,据此LI高速缓存104上所接收的预取请求会传输至L2高速缓存105。响应于传输预取请求,控制器115不会将表示预取请求的信息存储在MAB 130上的其分配时隙中的一个时隙上。因而保留更多数目的可用时隙以便用于所接收的需求请求,进而提高处理效率。
[0032]如本文所使用的,处于缓冲器上的一组时隙的充满度是指识别或以其它方式表示在所述组上存储的许多需求请求、在所述组上存储的许多预取请求或其组合的任何参数。可按照许多方式来确定所述组时隙的充满度。例如,可通过从一组时隙中的时隙总数中减去所述组的可用时隙数目来确定充满度。在一些实施方案中,充满度等于或基于所述组中存储表示预取请求的信息的时隙数目。在一些实施方案中,充满度等于或基于所述组中存储表示需求请求的信息的时隙数目与所述组中存储表示预取请求的信息的时隙数目之间的差异。在一些实施方案中,充满度等于或基于存储预取请求信息的时隙与存储需求请求信息的时隙的比率。
[0033]响应于接收所传输的预取请求,L2高速缓存105以与非传输预取请求类似的方式来处理所传输的预取请求,但并不将响应于所传输的预取请求的数据提供给LI高速缓存104。出于说明目的,响应于接收所传输的预取请求,L2高速缓存105确定存储阵列126是否存储与预取请求的存储器地址关联的数据。如果L2高速缓存105确定存储阵列126存储所述数据,那么其便不会将数据提供给LI高速缓存104,而是将它保持在存储阵列126上。如果存储阵列126并未存储与预取请求存储器地址关联的数据,那么控制器125便将表示预取请求的信息存储在MAB 130上。另外,控制器125将预取请求提供给层次结构中下一更低级别上的高速缓存。作为响应,L2高速缓存105最终从存储器层次结构145中的更低级别接收与预取请求存储器地址关联的数据。控制器125将接收的数据存储在存储阵列126上,但并不将其提供给LI高速缓存104。被预取请求锁定为目标的数据因而在存储器层次结构145中移动至更靠近处理器核心110的地方,从而在数据稍后为需求请求的主题的情况下减少延时。然而,预取数据并不特地提供给LI高速缓存104,进而在LI高速缓存104上提供更多空间用于满足需求请求。
[0034]在一些实施方案中,预取请求可继续沿着存储器层次结构145向下传输,直到其到达在MAB 130上具有大于阈值级别数目的可用时隙的高速缓存。例如,如果L2高速缓存105接收所传输的预取请求,那么控制器125便可确定其在MAB 130上是否具有大于阈值级别数目的可用时隙。如果不具有,其可将预取请求传输至L3高速缓存。存储器层次结构145中的不同高速缓存可基于不同阈值数目的可用时隙来传输预取请求。
[0035]在一些实施方案中,高速缓存104至106可基于预取请求的信任级别来传输预取请求。具体来说,每个预取请求可具有信任值,所述信任值指示在阈值量的时间内被预取请求锁定为目标的数据将由处理器核心110请求的
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1