共享内存模型UMA NUMA COMA

共享内存模型

多处理器环境的内存共享模型主要有3种:

  • Uniform Memory Access (UMA)
  • Non-uniform Memory Access (NUMA)
  • Cache-only Memory Access (COMA)
UMA

UMA(一致性内存访问)的特点是多个处理器通过一条总线访问系统所有可用的内存,每个处理器访问内存的时间是一样的,所以称为一致性内存访问。
在这里插入图片描述
UMA存在的问题是多个处理器通过一条总线访问内存,使共享总线上负载增加。多个处理器会争用memory controller造成冲突。另外总线带宽有限,会有访问延迟。

SMP(Symmetric Multi-Processor)对称多处理器又被称为UMA。
在这里插入图片描述
SMP的特点就是多个处理器共享一个集中式的内存。对称的意思是处理器之间没有主从之分。SMP架构主要用于PC和移动装置领域,可以显著提高并行计算能力,但SMP不适合超大规模的服务器端场景,例如:云端计算。

NUMA

NUMA(非一致性内存访问)的特点是每个处理器都有一个本地内存。而且处理器可以访问其他处理器的本地内存(远端内存)。
在这里插入图片描述
也可以一小组CPU一起访问它们自己的本地内存。存在多组CPU和它们的内存组时,每组CPU和内存组就构成一个NUMA节点(node)。
在这里插入图片描述
NUMA的不足是处理器访问远端内存时会产生延迟。CPU访问本地内存时速度很快,当本地内存不够用时,可以使用远端内存。但是访问远端内存时延开销比较高。
在这里插入图片描述

COMA

COMA是ccNUMA(Cache Coherent NUMA, 缓存一致性NUMA)的一种演变。COMA可以看成是专用的NUMA,将NUMA中的分布式内存用高速缓存来取代。全局地址空间由高速缓存组成。访问远端的高速缓存借助分布式高速缓存目录进行。
在这里插入图片描述

Linux的NUMA node

一个node中包含多个CPU。节点和CPU的关系如下图:

在这里插入图片描述

Linux内核描述node的数据结构为pg_data_t。

参考资料

What is NUMA (non-uniform memory access)?

内存条物理结构分析

什麼是SMP,UMA,NUMA

系统和内存架构(System & Memory Architecture)

OpenStack Nova 高效能虚拟机器之NUMA 架构亲和

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值