什么是可扩展相干接口?
可扩展相干接口 (IEEE P1596) 正在建立一种用于非常高实现多处理器的接口标准。它可以为最多 64K 个节点的系统提供可扩展的缓存一致性内存模型。此可扩展相干接口 (SCI) 的每个节点的峰值带宽将达到 1 千兆字节/秒。
SCI 标准的主要目的是为创建具有大量处理器的可扩展并行机器提供基于内存地址的缓存一致性通信方案。SCI 一致性协议支持分布式目录的可扩展链接列表设计。
缓存机制确保所有处理器在共享列表中同时链接修改列表,以实现最大并发。协议中没有锁也没有支持阻塞点,使其能够随多个处理器线性扩展。
所有 SCI 连接都以数据包的形式组织。基本协议是一种写回并使无效的类型,它提供前向进度、传递、完整性、基本错误检测和恢复。SCI 组织基于所谓的共享列表,其中每个相干缓存块都链接在一起。
列表的头部元素指向存储关联内存行的内存块。每个内存块中的内存标记都扩展了共享列表头部节点的标识符 (forw_id 字段) 和一个 2 位内存状态 (mstate 字段)。
块的缓存标记扩展了两个标识符:一个用于共享列表的前一个节点 (back-id 字段),另一个用于共享列表的后续节点 (forw_id 字段)。
在共享列表中定义了四个操作,如下所示:
创建 - 当关联的共享列表为空时,这是插入操作的简化版本。
插入 - 当发生缓存未命中时,节点会向内存发送一个预取请求,内存会响应旧头部节点的指针,并将其头部节点指针刷新为请求者的地址。在收到来自内存的响应后,新的头部节点通过发送新的头部请求通知旧的头部节点。旧的头部节点更新其向后指针并返回其数据字段。
删除 - 当节点想要从共享列表中删除其缓存行时,它会发送两条消息。首先,它发送一个包含其向后指针 (Pb) 的更新向后请求给它的后继节点。后继节点将通过请求中收到的值更新其向后指针。
第二条消息,更新转发请求,发送给前驱节点。此消息包含请求者的转发指针,并由前驱节点用于更新其转发指针。
减少到单个节点 - 当缓存行被写入时,共享列表中的所有其他元素都必须失效。只有头部节点有权更新缓存行并从共享列表中删除其他元素。这是缩减过程,它是顺序执行的。