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