根据wiki:非统一内存访问(NUMA)是一种用于多处理的计算机内存设计,其中内存访问时间取决于相对于处理器的内存位置。
但尚不清楚它是关于包括缓存在内的任何内存还是仅与主内存有关。
例如 Xeon Phi 处理器有下一个架构:
所有内核对主内存 (GDDR) 的内存访问都是相同的。同时,不同的内核对二级缓存的内存访问是不同的,因为首先检查本机二级缓存,然后通过环检查其他内核的二级缓存。是 NUMA 还是 UMA 架构?
根据wiki:非统一内存访问(NUMA)是一种用于多处理的计算机内存设计,其中内存访问时间取决于相对于处理器的内存位置。
但尚不清楚它是关于包括缓存在内的任何内存还是仅与主内存有关。
例如 Xeon Phi 处理器有下一个架构:
所有内核对主内存 (GDDR) 的内存访问都是相同的。同时,不同的内核对二级缓存的内存访问是不同的,因为首先检查本机二级缓存,然后通过环检查其他内核的二级缓存。是 NUMA 还是 UMA 架构?
从技术上讲,NUMA 可能仅用于描述对主内存的非均匀访问延迟或带宽。(如果 NUMA 因子 [延迟远/延迟接近或带宽远/带宽接近] 很小 [例如,与 DRAM 行未命中、缓冲等引起的动态可变性相当],那么系统可能仍被视为 UMA。)
(从技术上讲,Xeon Phi 的 NUMA 系数很小但非零,因为环形互连上的每一跳都需要时间[一个核心可能距离一个内存控制器只有一跳,而距离最远的一个则只有几跳]。)
术语 NUCA(非统一缓存访问)已被用来描述单个缓存,对于不同的缓存块具有不同的访问延迟。与核心或核心集群更紧密相关的共享缓存级别也属于 NUCA,但单独的缓存层次结构(我相信)不能证明该术语的合理性(即使窥探可能会在“远程”中找到所需的缓存块缓存)。
我不知道有任何术语用于描述具有与窥探相关的可变缓存延迟(即,具有单独的缓存层次结构)和小/零 NUMA 因子的系统。
(由于缓存可以透明地复制和迁移缓存块,NUMA的概念就不太合适了。[是的,一个操作系统可以透明地迁移和复制页面到NUMA系统中的应用软件,所以这个区别不是绝对的。])
或许有点有趣的是,Azul Systems 声称其 Vega 系统的套接字跨接口 UMA :
Azul 构建是“UMA”,因为我们的程序没有很好理解的访问模式。相反,模式大多是随机的(在缓存过滤之后),因此具有统一的中等速度而不是 1/16 的内存快和 15/16 的慢是有意义的。