什么是 CC-NUMA?
CC-NUMA代表缓存一致性非均匀内存访问机器。CC-NUMA机器包括通过高带宽低延迟互连网络链接的多个处理节点。每个处理节点包括一个高性能处理器、相关的缓存和全局共享内存的分配。
缓存一致性由基于目录的写无效缓存一致性协议保持。它可以保持所有缓存一致,每个处理节点都有一个与其分配的共享物理内存相对应的目录内存。
对于每个内存行,目录内存保存识别缓存该行的远程节点。因此,利用目录,适用于写入位置的节点发送点对点消息以使等效缓存线的私有副本无效。
基于目录的协议的另一个基本属性是它不基于任何确定的互连网络拓扑。因此,一些可扩展的网络(包括网格、超立方体或多级网络)可用于连接处理节点。
所有CC-NUMA机器的共同目标是构建可扩展的共享内存多处理器。它们之间的主要区别在于内存和缓存一致性机制在处理节点之间的分布方式。
还有一个设计问题是节点之间互连网络的选择。他们展示了从基于总线的网络向更通用的互连网络和史努比缓存一致性协议向目录方案的进展。
Wisconsinmulticube体系结构是基于单个总线的多处理器的最接近的概括。它完全依赖于snoopy缓存协议,但采用分层方式。AquariusMulti-Multiarchitecture将snoopy缓存协议与目录方案相结合,但互连网络严格依赖于共享多总线。Wisconsinmulticube和AquariusMulti-Multi都有单处理器节点。
斯坦福达世币架构的节点更为复杂。它们被实现为称为集群的基于单总线的多处理器。Dash架构还结合了snoopy缓存协议和目录方案。侦听方案确保集群内部缓存的一致性,而目录方案则保持集群间的一致性。
在Dash中,目录协议独立于互连网络的类型,因此,可以使用最初为多计算机开发的任何低延迟网络,例如网格。斯坦福FLASH架构是同一研究小组对Dash机器的进一步发展。
FLASH设计的主要目标是将高速缓存一致性共享内存与高性能消息传递有效集成。由于Dash的集群概念被单处理器节点取代,因此FLASH仅应用目录方案来保持缓存一致性。