当前位置: 首页 > 专利查询>苹果公司专利>正文

用于高速缓存块一致性的系统、方法和设备技术方案

技术编号:8215580 阅读:216 留言:0更新日期:2013-01-17 13:08
本申请涉及用于高速缓存块一致性的系统、方法和设备。提供了用于在存储器共享设备12A和12B之间的有效高速缓存一致性的系统、方法和设备。特别地,可以至少部分地基于块跟踪条目(BTE)表来抑制探测流量。每个BTE可指示存储器块的一个或多个高速缓存行的组是否可能潜在地被其它的存储器共享设备12A和12B使用。作为示例,存储器共享设备12可使用各自具有若干高速缓存状态条目的BTE表56。当高速缓存状态条目指示一个或多个高速缓存行组中都无法被另一个存储器共享设备12使用时,可抑制对该组的任意高速缓存行的探测请求而不损害高速缓存一致性。

【技术实现步骤摘要】

本公开内容总体涉及高速缓存一致性,更具体而言涉及通过跟踪一个或多个高速缓存行(cache line)的细是否可能在使用而有效地保持设备之间高速缓存一致性的技术。
技术介绍
此部分旨在向读者介绍可能与将在下面进行描述和/或要求保护的本技术的各个方面相关的技术的各个方面。该论述被认为是有助于为读者提供背景信息,以便更好地了解本公开内容的各个方面。因此应当理解的是将据此阅读这些陈述而并非承认其为现有技术。具有多个处理器或其它存储器共享设备的电子设备频繁地使用高速缓存一致性 技术,以保持共享存储器的完整性。普通的高速缓存一致性技术可能涉及包括总线探测(bus snooping),其中在访问期望的存储器之前,处理器可能向另一个处理器传送探测请求。当处理器在相对适中的存储器带宽上操作时,这种高速缓存一致性技术可能产生可接受的结果。然而,当一个或多个处理器是采用了特别高的存储器带宽的存储器共享设备(例如,图形处理单元,或GPU)时,则可能产生过多的探测流量(traffic)。出于这个原因,使得诸如GPU的高带宽设备典型地与电子设备中的其它存储器共享设备不一致。遗憾的是,不一致的设备可能需要专门编写的软件来管理其不一致的存储器。这样,用于通用计算任务的高性能、高带宽处理器的使用可能受限。例如,GPU上的通用处理可能需要编写有明确存储器缓冲管理的专用程序,对于软件开发者来说这可能是繁重而乏味的工作。
技术实现思路
下面给出本文所公开的特定实施例的概述。应该理解的是给出这些方面仅仅是向读者提供这些特定实施例的简单概述,并且这些方面并非意图限制此公开内容的范围。当然,本公开内容可以包含下面没有详细阐述的多个方面。本公开的实施例涉及有效地保持存储器共享设备之间的高速缓存一致性的技术,所述存储器共享设备例如中央处理单元(CPU)和图形处理单元(GPU)。例如,本实施例可能不仅涉及只根据传统的高速缓存一致性协议(例如,MESI, MOSI, M0ESI,等等)发出高速缓存行探测请求,其可能导致巨大的探测流量。相反,当期望的高速缓存行不可能由另外存储器共享设备使用时,通过抑制探测流量可更有效地保持高速缓存一致性。为了确定抑制哪个探测流量,本实施例可跟踪存储器块中的一个或多个高速缓存行的组是否可能被其它处理器使用。特别是,存储器共享设备可使用“块跟踪条目(BTE) ”表,每个BTE指示存储器块中的一个或多个高速缓存行的组是否可能替在地被另一个存储器共享设备使用。具体而言,每个BTE可包括多个“高速缓存状态条目”,其分别指明一个或多个高速缓存行是否可能潜在地被一个或更多个其它的存储器共享设备(例如“需要行探测(line-snoop-required) ” 或者“不需要行探测(no-line-snoop-required) ”)使用。块跟踪条目(BTE)表可以防止大部分不必要的探测流量,以使高速缓存一致性更有效。例如,如果有效BTE将高速缓存行指示为不需要行探测,存储器共享设备可从共享存储器访问高速缓存行而不广播任何探测请求。否则,存储器共享设备可广播高速缓存行探测请求,以确保高速缓存一致性。作为示例,存储器共享设备可使用每个都具有若干高速缓存状态条目的BTE表。当高速缓存状态条目指示一个或多个高速缓存行的组中没有一个可能被另外的存储器共享设备使用时,可以抑制对该组的任意高速缓存行的探测请来而不损害高速缓存一致性。上面指出的特征的各种改进可能与本公开的各个方面相关地存在。进一步的特征也可结合到这些不同方面中。这些改进和附加特征可单触地或以任意组合存在。例如,以下与例示的一个或多个实施例相关地描述的各种特征可单独地或以任意组合结合到本公开上述任意方面中。再者,上面给出的简单概要仅仅希望使读者熟悉本公开实施例的某些方面和背景,而不是限制所要求保护的主题。附图说明通过阅读下面的详细描述并参考附图可以更好地理解此公开的各个方面,其中 图I是根据实施例的电子设备框图,该电子设备在两个存储器共享设备之间保持高速缓存一致性,这两个存储器共享设备中的至少一个可能是相对高带宽的存储器共享设备,例如GPU ;图2是根据实施例、采用笔记本计算机形式的图I中的电子设备的透视图;图3是根据实施例的使用块跟踪条目表的能够有效保持高速缓存一致性的两个处理器的示意性框图,该块跟踪条目表跟踪存储器块中的一个或多个高速缓存行的组是否可能被其它处理器使用;图4是根据实施例的示意性流程图,表示当图3所示的处理器之一请求存储器时可以发生的通信;图5是根据实施例的块跟踪条目(BTE)表的示意性框图,块跟踪条目表跟踪存储器块中的一个或多个高速缓存行的组是否可能被另一个存储器共享设备使用;图6是根据实施例的表示一种方式的示意性框图,在该方式中块跟踪条目(BTE)可以跟踪存储器块中的一个或多个高速缓存行的组是否可能被另一个存储器共享设备使用;图7是根据实施例的用于传送探测请求和块跟踪条目(BTE)请求的总线示意图;图8和图9是表示根据实施例可以在图7的存储器总线上发生的通信的示意性框图;图10是描述使用块跟踪条目(BTE)表来有效地保持高速缓存一致性的方法的实施例的流程图,该块跟踪条目(BTE)表跟踪存储器块中的一个或多个高速缓存行的细是否可以被另一个存储器共享设备使用;图11-13是描述以图10的流程图的方式在两个或更多个存储器共享设备之间有效地保持高速缓存一致性的方法的实施例的流程图;图14是描述抢先(preemptively)填充(populating)块跟踪条目(BTE)表以有效地保持高速缓存一致性的方法的实施例流程图15-17是描述用于更新块跟踪条目(BTE)表中的条目的方法的实施例的流程图;图18-21是描述响应高速缓存行或块跟踪条目(BTE)探测请求的方法的实施例的流程图;图22是根据实施例的两个存储器共享设备的示意性框图,其中之一可以是没有决跟踪条目(BTE)表的传统存储器共享设备,能够有效池保持高速缓存一致性;图23是表示根据实施例、为了保持图22的系统的高速缓存一致性而可能发生的通信的流程图;图24是表示根据实施例、使用竞争计数器(contention counter)以相据竞争跟踪一个或多个高速缓存行的较粗或较细粒度组的示意性框图;图25是描述用于确定是否跟踪一个或多个高速缓存行的较细或较粗粒度组的方 法的实施例的流程图;图26是根据实施例例示各种因素的探测流量统计图,所述各种因素可用于改变电子设备的高速缓存一致性的行为;图27是描述可用于降低存储器共享设备之间的竞争的方法的实施便的流程图;图28是表示根据实施例、探测不同存储器共享设备间的竞争指示符的通信的示意性框图;以及图29是描述根据竞争授权特定设备单独使用存储器的方法的实施例的流程图。具体实施例方式下面将描述本公开的一个或多个具体实施例。这些所述的实施例仅仅是当前公开技术的示例。此外,为了提供对这些实施例的简明扼要的描述,在说明书中可能不描述实际实现方式的所有特征。应该认识到的是在任意这种实际实现方式的开发中,如在任何工程或设计项目中,必须做出许多特定于实现方式的决定以实现开发者的具体目标,例如遵循系统相关和商业相关的限制,这可能随实现方式的不同而不同。此外,应该认识到这种开发工作可能是复杂的且本文档来自技高网...

【技术保护点】
一种处理器,包括:一个或多个处理器内核,被配置为对来自被另一个存储器共享设备共享的存储器的高速缓存行进行操作;一个或多个高速缓存,被配置为存储多个高速缓存行;以及包含高速缓存块跟踪条目表的高速缓存探测电路,其中每个高速缓存块跟踪条目包含各自的多个高速缓存状态条目,其中每个高速缓存状态条目分别跟踪一个或多个高速缓存行的状态,并且其中所述高速缓存探测电路被配置为:当所述一个或多个处理器内核之一请求一个高速缓存行时,至少部分地基于所述高速缓存块跟踪条目表确定是否向所述另一个存储器共享设备发出探测请求。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:I·C·亨德瑞J·格尼恩
申请(专利权)人:苹果公司
类型:发明
国别省市:

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

1