基本概念
- 为什么要有多处理器架构?
由于摩尔定律的失效,单个CPU内的晶体管的数量接近于饱和状态,因此单个CPU的性能已经接近饱和状态,这时,要想提高计算机的性能,就必须朝着多核架构发展。多核架构中,常见的有两种架构,SMP架构和AMP架构。
- SMP(Symmetric Multiprocessing)架构:即多处理器架构,是目前最常见的多处理器计算机架构
- AMP(Asymmetric Multiprocessing)架构:即非对称多处理器架构,则是与SMP架构相对的概念
SMP架构和AMP架构的主要区别是什么呢?主要有以下几点
- SMP架构的多个处理器都是同构的,使用相同架构的CPU;而AMP架构的多个处理器可能是异构的。
- SMP架构的多个处理器共享统一内存地址空间;而AMP架构的每个处理器则拥有自己的独立地址空间。
- SMP架构的多个处理器通常共享一个操作系统实例;而AMP架构的每个处理器可以有或者没有运行操作系统,每个处理器可以独立运行不同的操作系统。
- SMP架构的多个处理器之间可以通过共享内存来协调通信;而AMP则需要提供一种处理器间的通信机制。
在SMP架构中,又可以分为NUMA架构和UMA架构
- NUMA(non-Uniform Memory Access)非均匀内存访问架构是指多处理器系统中,内存的访问时间是依赖处理器和内存之间相对位置的。在这种设计里面存在和处理器相近的内存,通常称作本地内存;还有和处理器相对远的内存,通常称之为远端内存。
- UMA(Uniform Memory Access)均匀内存访问架构则是与NUMA架构相反,所以处理器对共享内存的访问距离和时间是相同的。
NUMA架构图结构如下所示:
(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂
更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加qun免费
领取,关注我持续更新哦! !
- 每个CPU核独享L1、L2级缓存,L3级缓存为共享缓存
- 一个SOCKET称之为一个NUMA结点,不同NUMA节点之间通过总线连接
- 接近NUMA结点的内存成为本地内存,其他NUMA节点的内存称之为远端内存
- NUMA节点对本地内存的访问更快
NUMA架构图
NUMA结点的内存分配方式
- Local分配:分配本地内存
- InterLeaved分配:交错分配内存
- Blocked分配:如图所示
NUMA结点的内存分配方式
原文链接:NUMA架构详解 - 知乎