共享存储型多处理机有两种模型
-
均匀存储器存取(Uniform-Memory-Access,简称UMA)模型 (一致存储器访问结构)
-
非均匀存储器存取(Nonuniform-Memory-Access,简称NUMA)模型 (非一致存储器访问结构)
UMA模型
各CPU共享相同的物理内存(各CPU与一个集中的存储器和I/O总线相连),每个 CPU访问内存中的任何地址所需时间是相同的,物理存储器被所有处理机均匀共享。这就是为什么称它为均匀存储器存取的原因
均匀共享存储器有时候也称之为一致存储访问,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。
缺点:
UMA模型的最大特点就是共享。在该模型下,所有资源都是共享的,包括CPU、内存、I/O等。也正是由于这种特性,导致了UMA模型可伸缩性非常有限,因为内存是共享的,CPUs都会通过一条内存总线连接到内存上,这时,当多个CPU同时访问同一个内存块时就会产生冲突,因此当存储器和I/O接口达到饱和的时候,增加处理器并不能获得更高的性能。
UMA模型
NUMA模型的基本特征是具有多个CPU模块(称为节点),每个节点又由多个CPU core(如4个)组成,并具有本地内存、I/O接口等,所以可以支持CPU对本地内存的快速访问。
各个节点之间可以通过互联模块(如称为Crossbar Switch)进行连接和信息交互,这样可以支持对其他节点中的本地内存的访问,当然这时访问远的内存就要比访问本地内存慢些,这也是非一致存储访问NUMA的由来。
优点:
NUMA模型的最大优势是伸缩性。与UMA不同的是,NUMA具有多条内存总线,可以通过限制任何一条内存总线上的CPU数量以及依靠高速互连来连接各个节点,从而缓解UMA的瓶颈。NUMA理论上可以无限扩展的,但由于访问远地内存的延时远远超过访问本地内存,所以当CPU数量增加时,系统性能无法线性增加。
ref:
服务器体系(SMP, NUMA, MPP)与共享存储器架构(UMA和NUMA) - Smah - 博客园
内存管理 | 基础一 - 知乎
Linux内存管理之UMA模型和NUMA模型 - Mr-xxx - 博客园
LDD-LinuxDeviceDrivers/study/kernel/02-memory/01-description/01-memory at master · gatieme/LDD-LinuxDeviceDrivers · GitHub