内存架构解析:UMA与NUMA对比

从硬件角度来看内存,随机存储器(RAM)是与 CPU 直接交换数据的内部存储器。现在大部分计算机使用双倍速率同步同态随机存储器(DDR)的存储设备,DDR 包括 DDR3L、DDR4L、LPDDR3/4等。DDR的初始化一般在 BIOS 或 Bootloader 中完成,BIOS 或 Bootloader 把 DDR 的大小传递给 Linux 内核,因此从 Linux 内核的角度来看,DDR 其实就是一段物理内存空间。

内存架构之 UMA 和 NUMA

在现在广泛应用的计算机系统中,以内存为研究对象可以分成两种架构,一种是统一内存访问(Uniform Memory Access,UMA)架构,另一种是非统一内存访问(Non-Uniform Memory Access,NUMA)架构。

  • UMA 架构:内存有统一的结构并且可以统一寻址。目前大部分嵌入式系统、手机操作系统以及台式机操作系统等采用 UMA 架构。
  • NUMA 架构:系统中有多个内存节点和多个 CPU 簇,CPU 访问本地内存节点的速度最快,访问远端的内存节点的速度要慢一点。

总结对比

特性 UMA NUMA
访问一致性 均匀 非均匀(本地 vs 远程)
可扩展性 差(通常≤4 CPU) 优秀(可支持数百CPU)
性能瓶颈 共享内存总线/控制器 节点间互联带宽与延迟
编程复杂度 简单(透明) 复杂(需考虑数据位置)
典型系统 单CPU多核系统,老旧SMP服务器 现代多路服务器,高端工作站
内存控制器位置 集中(北桥) 分布式(集成在每个CPU内)
操作系统支持 通用支持 需要NUMA感知的调度与内存策略

重要认知

  1. 现代个人电脑通常是"混合"的: 在一台单CPU的多核电脑上,对系统内存的访问是UMA。但如果该CPU内部有多个CCD/集群(如AMD Ryzen),其L3缓存可能是NUMA-like结构。
  2. 虚拟化与云的影响: 在云环境中,一个虚拟机可能被调度到物理NUMA节点的某一部分上。管理员和用户需要了解NUMA配置以获得最佳性能。
  3. 性能优化的关键: 对于NUMA系统,"让数据靠近计算"是最高指导原则。这需要操作系统、运行时库和应用程序的共同努力。

简单来说,UMA是小而简单的统一视图,NUMA是大而高效的分布式方案。随着核心数量的不断增加,NUMA已成为多处理器系统事实上的标准架构。

相关推荐
静以修身zzz6 分钟前
OpenStack对象存储-Swift、OpenStack编排管理-heat、OpenStack网络管理-neutron
linux·运维·服务器·架构·openstack·swift
Gauss松鼠会33 分钟前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
超级架构师1 小时前
让 Fortran 模型自己调用 Agent:原生 Fortran 2008 实现深度剖析
人工智能·python·架构·机器人·开源·fortran
暴走约伯1 小时前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎
Decay__8 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
代码山河10 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
微订校园外卖平台11 小时前
校园外卖平台选模板还是定制:架构、数据流与验收清单
大数据·架构·外卖系统·本地生活·微订
ZhengEnCi12 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
Decay__13 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
华普微HOPERF16 小时前
Matter协议架构详解:数据模型与交互模型深度解析
microsoft·架构·交互