非统一内存访问架构(英語:non-uniform memory access,简称NUMA)是一种为多处理器的电脑设计的内存架构,内存访问时间取决于内存相对于处理器的位置。在NUMA下,处理器访问它自己的本地内存的速度比非本地内存(内存位于另一个处理器,或者是处理器之间共享的内存)快一些。
非统一内存访问架构的特点是:被共享的内存物理上是分布式的,所有这些内存的集合就是全局地址空间。所以处理器访问这些内存的时间是不一样的,显然访问本地内存的速度要比访问全局共享内存或远程访问外地内存要快些。另外,NUMA中内存可能是分层的:本地内存,群内共享内存,全局共享内存。
NUMA架构在逻辑上遵循对称多处理(SMP)架构。它是在二十世纪九十年代被开发出来的,开发商包括Burruphs(后来的优利系统),Convex Computer(后来的惠普),意大利霍尼韦尔信息系统(HISI)(后来的Group Bull),Silicon Graphics公司(后来的硅谷图形),Sequent电脑系统(后来的IBM),EMC,Digital(后来的Compaq,现惠普)。这些公司研发的技术后来在类Unix操作系统中大放异彩,并在一定程度上运用到了Windows NT中。
首个基于NUMA的Unix系统商业化实现是对称多处理XPS-100系列服务器,它是由VAST公司的Dan Gielen为HISI设计。这个架构的巨大成功使HISI成为了欧洲的顶级Unix厂商。
AMD在Opteron、EPYC處理器中實現了基於HyperTransport、Infinity Fabric的NUMA。Intel在Xeon處理器中實現基於QPI的NUMA。
Linux內核2.5包含了基本的NUMA支援。
Windows Server 2008 R2、Windows 7支援NUMA。
一致性高速缓存非均匀存储访问模型
一致性高速缓存非均匀存储访问模型(CC-NUMA):它最大的特点是,每一个节点是一个对称多处理机(SMP),实际上是一个分布式共享存储处理机(DSM)多处理机系统。在商业中,大多数访存都在本地内存中进行,而网络上传输的数据大多是用于高速缓存的无效性。
参阅