共享内存模型UMA NUMA COMA
原文地址:https://blog.csdn.net/weixin_44395686/article/details/107172212
共享内存模型
多处理器环境的内存共享模型主要有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)?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!