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

满足部分读取和非监听访问之间的访存顺序要求制造技术

技术编号:4122948 阅读:230 留言:0更新日期:2012-04-11 18:40
本文描述了用于考虑到部分和非一致存储器访问而在基于高速缓存一致链路的互连中保持访存顺序的方法和装置。在一个实施例中,利用读取失效和/或监听失效消息来实现部分存储器访问,例如部分读取。当对等节点从请求方节点接收到引用了数据的监听失效消息时,所述对等节点使与所述数据相关联的高速缓存行失效,并且不直接将所述数据转发到所述请求方节点。在一个实施例中,当所述对等节点保存着处于已修改一致性状态下的所引用的高速缓存行时,响应于接收到所述监听失效消息,所述对等节点将所述数据写回与所述数据相关联的归属节点。

【技术实现步骤摘要】

本专利技术涉及高速点对点互连链路,并且具体地,涉及用于实现一致互连架构的一致性协议。
技术介绍
当电子系统包括多个高速缓冲存储器时,系统中保存的数据的有效性或一致性被维持,以确保数据操作的完整性。经常通过根据高速缓存一致性协议处理数据来实现一致性。随着高速缓存和/或处理器数目的增加,维持一致性的复杂性也增加,而这可能导致系统的多个组件之间发生更多冲关。例如,当多个组件(例如高速缓冲存储器、处理器)请求相同数据块时,以维持该数据的有效性的方式解决多个组件之间的冲突。之前的高速缓存一致性协议典型地具有负责解决冲突的单个组件。然而,随着系统复杂性的增加,依靠单个组件解决冲突可能会降低整个系统的性能。一般地,存在两种基本方案来提供高速缓存一致性监听(snooping)(现在通常称为对称多处理(SMP))和目录(directory)(通常称为分布式共享存储器(DSM))。这两种方案之间的根本不同围绕在元信息的放置和访问方面;即,关于在哪里保存高速缓存行(cache line)的拷贝的信息。对基于目录的方案来说,除了存储着未缓存数据的 固定位置之外,还存在一个固定单元,即目录,来指示缓存拷贝驻留在哪里。为了以新的方式访问高速缓存行,节点必须与包含目录的节点进行通信,包含目录的该节点通常和包含未缓存数据存储库的节点是同一节点,由此允许应答方节点在主存储拷贝有效时提供数据。在目录系统中,这样的节点被称为归属节点(home node)。目录可以用两种方式进行分布。第一,主存储数据(未缓存存储库)通常分布在节点之间,并且目录以相同的方式进行分布。第二,元信息自身可以被分布,在归属节点处仅保留关于行是否被缓存的信息,并且如果被缓存的话,则还保留关于单个拷贝驻留在哪里的信息。例如,SCI使用该方案,其中包含被缓存的拷贝的每个节点维持到具有被缓存的拷贝的其它节点的链路,由此共同维持完整的目录。对于监听高速缓存,元信息与缓存拷贝自身一同被分布,从而由单元来保存高速缓存行的每个有效拷贝,所述单元识别访问该高速缓存行的请求,并相应地作出应答。典型地,存在着其中保存未缓存状态的数据的存储库,即数据的原始位置。通常,对该原始位置负责的代理或单元被称为归属节点。当请求访问高速缓存行时,请求方节点通常将被请求的高速缓存行的地址与所需许可一同广播,而保存着被请求的高速缓存行的拷贝的节点相应地作出应答。然而,在当前一些一致性和消息传送协议中,在特定环境下对高速缓存行的部分读取和非监听存储器访问(即一致架构中的非一致访问)可能导致将无效数据转发给请求者。通常,这些环境是由于违反了协议内的访存顺序(memory ordering)规则而引起。因此,接收到无效数据的代理可能执行非法操作,这可能导致系统内的不稳定性。附图说明本专利技术通过实例的方式说明,并且并不受附图的限制。图l说明了协议架构的实施例。图2说明了包括多个处理器的系统的实施例,所述多个处理器耦合到利用点对点互连的芯片组。图3说明了用于双向互连架构的框图的实施例,所述架构利用分层的输入/lr出(i/o)栈。图4a说明了用于多个节点之间可能导致访问无效数据的消息传送协议的协议图的实施例。图4b说明了用来响应于部分和非监听存储器访问来提供有效数据的协议图的实施例。图5a说明了用于多个节点之间可能导致访问无效数据的消息传送协议的协议图的另一实施例。图5b说明了用来响应于部分和非监听存储器访问来提供有效数据的协议图的另一实施例。具体实施例方式在下面的描述中,阐述了许多特定细节,例如特定互连架构、特定消息、特定伪码、特定互连架构层等的实例,以提供对本专利技术的透彻理解。然而,将对本领域技术人员显而易见的是,并不是必须采用这些特定细节来实践本专利技术。在其它实例中,未详细描述熟知的组件或方法,例如特定的互连层架构细节、特定的非相关消息和协议、处理器和高速缓存的特定操作细节等,以免不必要地混淆本专利技术。本文描述的方法和装置用于在互连架构中提供部分访问和非监听存储器访问之间适当的访存顺序。特别地,对访存顺序要求的遵守主要参照说明性的、基于高速缓存一致链路的互连架构来进行讨论。然而,用于提供适当的访存顺序要求的方法和装置并不限于此,它们可以用任何互连架构来实现。说明性的互连架构的实施例图l说明了高度简化的协议架构的实施例。在一个实施例中,该协议架构在正常事务以及请求冲突期间要维持架构中高速缓存内的数据之间的数据一致性。此外,在一个实施例中,该协议架构还为每个请求提供转发进度(forward progress),使得每个请求得到满足并引退(retire)。协议架构可以包括任意数目的节点或代理。在一个实施例中,节点包括与内部高速缓冲存储器、外部高速缓冲存储器和/或外部存储器相关联的处理器。然而,节点或代理可以是指互连架构中的任何设备或其集合,例如处理器、存储器控制中心、和I/O中心、通用控制中心、I/O设备、I/O设备的集合、或者能够访问存储器的任何其它设备/组件。在另一实施例中,节点是与其它电子系统互连的电子系统(例如计算机系统、移动设备)。其它类型的节点配置也可以被使用。如所说明的,架构100包括缓存节点/代理105-106和归属代理110-112。在一个实施例中,归属代理110-112用于保护作为一致存储空间的最后存储库的存储位置。换言之,代理110是对一致存储空间的数据的多个原始物理存储位置负责的归属代理。归属代理110-112可以执行以下任务的任意组合,所述任务包括跟踪来自缓存代理105-106的缓存状态转换、管理缓存代理105-106中的冲突、与存储器接口、提供数据和/或所有权,以及任何其它已知的归属代理相关的任务。在一个实施例中,缓存代理105-106包括与高速缓冲存储器相关联的代理,例如包括高速缓冲存储器和缓存I/O代理实体的处理器。缓存代理105-106可以执行以下任务以及任何其它任务的任意组合,例如执行对一致存储空间的读取和写入请求、保存来自一致存储空间的数据的缓存拷贝,以及将缓存拷贝提供给其它对等缓存代理。缓存代理或节点也可以被称为相对于另一缓存代理的对等代理/节点。尽管未在图1中特别说明,但是所述协议架构还可以包括非缓存代理,例如代表I/O设备来参与或见证(witness)事务的输入/输出(I/O)中心。在一个实施例中,缓存代理105-106和归属代理110-112通过在网络结构101上交换消息来维持数据一致性并提供转发信息。在一个实施例中,结构101有助于通过点对点互连网络将消息从一个代理/节点传送到另一个代理/节点。通常说图1描绘了基础网络的高速缓存一致性协议的概要视图。在一个实施例中,互连架构100可以并入下面共同未决申请中所描述的新颖特征的任意组合。例如,标题为"Forward State for Use in CacheCoherency in a Multi-Node System"的美国申请6,922,756描述了转发高速缓存一致性状态(F-状态)的利用。此外,在下面的申请中讨论了各种情形下的 一致性协议的实例,所述申请包括:所递交的标题为"A Two-Hop CacheCoherency Protocol"的申请No. XX/XXX,XXX(代理人巻号为P15925)、本文档来自技高网...

【技术保护点】
一种装置,包括: 协议层逻辑,用于生成与数据元素的读取相关联的第一消息,其中,所述第一消息向对等代理指示与所述数据元素相关联的高速缓存行要被无效,并且所述对等代理不将所述高速缓存行转发到请求方代理;以及 物理层逻辑,其耦合到所述 协议层逻辑,用于将监听消息发送到所述对等代理。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:RH比尔斯CT舒RJ沙弗拉内克J瓦什
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1