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

使用关键度信息来路由高速缓存一致性通信制造技术

技术编号:3905248 阅读:217 留言:0更新日期:2012-04-11 18:40
在一个实施例中,本发明专利技术包括一种方法,用于在互连路由器中从缓存代理接收高速缓存一致性消息,根据预定的映射将所述消息映射到关键度级别,以及向所述消息的每个流控制单元添加该关键度级别,其中可以至少部分地基于该关键度级别从互连路由器发送所述消息。还描述及声明了其它实施例。

【技术实现步骤摘要】
使用关键度信息来路由高速缓存一致性通信
技术介绍
在具有多个处理器和多个高速缓存的多处理器系统中,每个高速缓存 可以存储有在存储器中所存储的一条数据的一个副本。当不止一个高速缓 存包含了同一条数据的副本时,会出现问题。已经开发了各种技术来确保 多个高速缓存间的数据一致性。例如,当一个高速缓存中的数据被修改时, 该数据的其它副本会被标记为无效,以使得它们不再被使用。为了帮助保持高速缓存一致性,许多系统包括有目录,来帮助确定在 这样的多个高速缓存的各高速缓存行中的数据的存在和状态。高速缓存行 的状态可以表明该行是否具有在主存储器外唯一的一个有效副本,是否 具有由多个高速缓存所共享的多个有效副本,或者,是否不具有在主存储 器外的副本(即,己经在所有高速缓存中使其无效)。高速缓存一致性的效率可以提高通用处理器的整体性能。对于众核处理器(many-core processor)和大规模高速缓存 一 致的非均匀存储器架构 (cc-NUMA)系统来说尤其如此。不同的系统可以具有许多不同的高速缓存 一致性消息类型,由于因目录迂回所导致的跳失衡根(hop imbalance root), 这些消息类型中的每一个会具有不同的定时关键度属性。然而,现有的系 统并不能针对这些不同的消息类型来进行不同地处理。附图说明图1是根据本专利技术的一个实施例的系统的一部分的方框图。 图2是根据本专利技术的一个实施例的互连路由器的方框图。 图3是根据本专利技术的一个实施例的方法的流程图。 图4是根据本专利技术的一个实施例的系统的方框图。具体实施方式在各个实施例中,互连路由器或其它系统部件可以被配置为是知晓关键度的。也就是说,以可能会减慢非关键消息为代价,使关键的一致性消 息的路由器延迟变得更短。可以在运行时基于高速缓存一致性消息类型由 硬件来提取关键度。随后,利用该关键度来驱动对在其上传送消息的互连 (例如,点对点(PTP)的虚拟通道或其它互连方案)进行管理。实施例既可适 用于片上网络,也可适用于传统的独立路由器。实施例可以在微架构硬件 中实现,并且可以对软件完全透明。使用这样的实施例,可以显著增强高 速缓存一致性处理。现在参考图1,其示出了系统的一部分的方框图,该系统包含实现了 给定高速缓存一致性协议的目录。该高速缓存一致性协议可以是按照修改、独占、共享、无效(MESI)或修改、独占、共享、无效、转发(MESIF)协议 或另一个这样的协议,但本专利技术的范围并不限制于此。在图l示出的实施 例中,仅仅示出了多个核心中的两个核心20a和20b(通称为核心20),其中 的每个核心耦合到对应的私有高速缓存30a和30b (通称为私有高速缓存 30)。在一些实施例中,私有高速缓存30可以是最低级别的高速缓存,例如,与其相应核心紧密关联的零级高速缓存。高速缓存30又可以耦合到共享存储器40。在各个实施例中,共享存 储器40可以是包含式共享高速缓冲存储器或系统主存储器。以此方式,共 享存储器40包括了在高速缓存30中存在的所有数据,以及可能的额外数 据。换句话说,在高速缓存30中存在的数据可以包含在存储器40的数据 中,但反之并不成立。另外,共享存储器40可以包括目录。这样的目录可 以是单独的数组(array)或存储器40的其它部分,其包括多个条目(以及相 关的控制逻辑),以表明在较低级别高速缓存中相应高速缓存行的位置、以 及这样的高速缓存行的状态。因此,存储器40的目录可以用于实现给定的 高速缓存一致性协议。在一种实现中,系统10可以是片上网络(NoC)。这样的NoC可以是单 芯片集成电路,其连接各种处理代理(agent)(例如核心、专用处理器、加速 器等)、以及本地存储器和其它这样的结构。可以用给定的互连结构,例如 图1中示出的互连50,来耦合所有这些各种的代理。在不同的实现中,可 以用PTP链路的方式对特定的代理进行互连,所述PTP链路通过互连的中 间路由器将各设备耦合到一起。因此,尽管在图1中为了容易说明而并未示出,但是可以理解,互连50可以代表互连链路以及互连路由器。为了保持系统10中的各个存储器的高速缓存一致性,可以在不同的代 理间发送各种高速缓存一致性消息,来请求在给定存储器中存在的数据、 以及获得对这样的数据的状态的了解。不同高速缓存一致性消息的延迟会 对应用产生非常不同的性能影响。图1示出了在MESI协议中的情形,其 中高速缓存30a对在高速缓存30b中的为脏状态的块发出读请求(消息1)。 根据给定的一致性协议,该读请求可能导致传输额外的消息,包括第二消 息(消息2),其直接向高速缓存30a发送在共享存储器40中存在的所请求 的数据。然而,注意这个数据是推测性的,这是由于并不知道是否(例如, 在高速缓存30b中)存在该数据的已修改副本。因此,仍然响应于来自高速 缓存30a的读请求,所述目录向高速缓存30b发送探测消息(g卩,消息3)。 响应于这个消息,高速缓存30b可以使得向高速缓存30a直接发送(消息4) 该数据(其可能为脏状态)。最后,发送写回(WB)消息(g卩,消息5),来把来 自高速缓存30b的该脏数据提供回共享存储器40。消息3和4是用于完成该读请求的连续步骤,而且它们构成了关键路 径。换句话说,消息3和4具有更高的优先级并应该具有更短的延迟,这 是因为消息1的存储器请求的等待时间取决于这些消息。因此,这两个消 息可以被映射到最高的关键度级别。相反,在这个例子中消息2是无用的 (假定所请求的数据在高速缓存30b中为修改状态),但是根据传统的协议, 其通常会在消息4的有效数据之前到达存储器30a。这种不希望的情形是 由目录迂回所导致的跳失衡根的结果。消息5最不关键,因此可以被映射 到最低的关键度级别。消息1也在关键路径上,但是它比消息3和4占用 更少的系统资源。消息2通常不在关键路径上,尽管它的数据在高速缓存 30b不具有脏副本时是有用的。消息1和2可以被划分到中等关键度级别。 因此,在图1中使用实线和各种虚线来标识不同的关键度级别。存在着许多MESI协议的变体,但是对于它们中的每一个,都可以有 多个关键度级别,每一个级别对应于一组给定的消息类型。在一些实现中, 可以确定出大约2到8个关键度级别,然而本专利技术的范围并不限制于此。 另外,这些关键度级别中的每一个可以与一个或多个一致性协议消息类型 相匹配。现在参考表1,以下示出了示例的协议消息及其所对应的关键度级别。最关键中等关键非关键RsplRspFwdWbMtoIRspSRspFwdSWbMtoERspCnfltRspFwd懸WbMtoSSnpCodeRdCurRspIWbSnpDataRdCodeRspSWbSnpInvOwnRdDataS叩InvItoERdlnvOwnAckCnfltInvItoE表1示出了各种高速缓存一致性消息,它们中的每一个被映射到三个关键度级别中的一个。表l中示出的各种消息的名称(RspI、 RspFwd等)是 助记符,在不同的实现中可以具有不同的标记。通常这些名称包括消息类 型縮写(例如,响应(Rsp)、探听(Snp)、确认(Ack)、读(Rd)、写回(WB)、转 发(Fwd)等)和高速缓存状态縮写(例如,MESI状态中的一个)。通常,表l中示出的最高关本文档来自技高网...

【技术保护点】
一种装置,包括: 多个虚拟通道,每个虚拟通道包括: 输入复用器,用于接收高速缓存一致性消息,所述高速缓存一致性消息中的每一个均具有与其相关联的关键度标识符; 耦合到所述输入复用器的多个队列,用于存储所述高速缓存一致性消息, 其中,所述队列中的每一个均与至少一个关键度标识符相关联;以及 耦合到所述多个队列的输出复用器,用于至少部分地基于相应的关键度标识符来选择所述队列中的一个的输出;以及 耦合到所述多个虚拟通道的交换机,用于向互连结构输出所述高速缓存 一致性消息。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:Z方L程SR万高尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1