服务器 频道

X3核心芯片组解密

远程目录和 vL4 高速缓存

    在启动具有多个节点的系统时,BIOS 将48Mbits 的 eDRAM分成探听过滤器和远程目录(划分比率可能是 8:1、7:2、6:3 等等)。 这种分区已经根据系统的大小在 BIOS 中进行了硬编码;32路 系统的节点间通信量明显地比 8路系统的多,因此应该拥有一个更大的远程目录。 这种化分操作将来有可能由用户进行控制,但是,很可能仅对 HPC 或者彻底了解应用程序扩展特征的应用程序用户本身有吸引力。 远程目录会跟踪那些通过编址映射到主机内存、并由另一个节点检查的数据,它使用的格式与探听过滤器使用的格式相同。

    在节点请求一个地址在远程节点上的内存的高速缓存行时(本地处理器缓存和 vL4 都未命中),源节点将发送一个广播探听到系统中其它的所有节点上。 远程目录经过了巧妙的设计,仅仅支持单个节点向任何给定的探听广播响应。当一个节点接收另一个节点的请求且它的探听过滤器显示出它拥有该高速缓存行时,数据会发送到请求节点。 至多一个节点可以在它的探听过滤器中显示其拥有该缓存行。 特定请求的主节点(Home node)定义为请求的地址映射的内存所在的节点。 当非主节点(off-node)请求到达时,该主节点会会同时检查它的探听过滤器和远程目录。 如果远程目录显示,高速缓存行的所有权已经提供给另一个节点,则主节点不会返回数据。 如果该请求在探听过滤器中,或者不在远程目录中,则主节点会返回数据。 下面的图 3 显示了一个内存事务的例子。 
 


    在多节点系统中,虚拟 L4 高速缓存用于提高 X3 的可扩展性。 在启动时,BIOS 会留出一个单独的内存区,将其用作虚拟高速缓存。 尽管留出的内存量是硬编码的,它很可能可以由用户进行配置,供了解相关知识的用户使用(很可能又是 HPC 用户)。 可扩展性控制器使用 vL4 来存储以前请求的非本地高速缓存行(即高速缓存行在可扩展性控制器相对较遥远的地方)。 这提高了性能(因为 vL4 服务的数据请求的速度比节点间数据请求快)并且确保了内存一致性(因为每个高速缓存行在内存中都有唯一的位置)。 因此,在上面的图 3 中,NE quad 将从它的 vL4(或者高速缓存本身)而不是从内存中发送所请求的数据。

    如上所述,选择这一协议的目的是为了平衡目录协议(可扩展的延时)的好处和广播协议(低最初延时且成本低)的好处。 我们已经与 John Borkenhagen 博士稍微深入地讨论了这一点,John Borkenhagen 博士是 IBM 研究 RS64 IV 微处理器杰出的工程师,也是 X3 的首席架构师。 根据 Borkenhagen 博士的看法,模拟实验显示,混合协议在 4 quad 及 4 quad 以下配置上优于目录协议,在 8 quad 性能上和目录协议相当。 这似乎有点不寻常,但重要的是要记住,点对点协议需要提前知道目的地,这就需要额外查询关键的请求路径,而广播协议则没有这一操作。

0
相关文章