多核处理器AMP/SMP/BMP介绍
更新: 2/25/2025 字数: 0 字 时长: 0 分钟
多核处理器的分类
从硬件的角度来看,多核设计分为两类。如果所有的核心或CPU具有相同的构架,那么定义为同构多核(homogeneous);如果架构不同,那么称为异构(heterogeneous)多核。
- 同构多核架构:系统中的处理器在架构上是相同的
- 异构多核架构:系统中的处理器在架构上是不同的
同构多核架构在硬件与软件设计上比较简单,通用性高。
多核处理器运行模式
从软件的角度看,多核处理器的运行模式有AMP、SMP和BMP三种运行模式。
AMP (Asymmetric Multiprocessing,非对称多处理)
AMP 指多个内核相对独立的运行不同的任务,每个内核相互隔离,可以运行不同的操作系统(OS)或裸机应用程序。
特点
- 处理器不对等:不同的 CPU 可能运行不同的操作系统、不同的任务或不同的执行模式。
- 通常没有统一的调度:每个 CPU 可能使用不同的任务调度器。
- 适用于特定任务分工:比如实时任务由一个核处理,普通任务由另一个核处理。
典型应用
- 嵌入式系统:
- 例如 ARM Cortex-A(运行 Linux)+ Cortex-M(运行 RTOS 或裸机程序)的组合。
- DSP+MPU 结构:
- 例如 TI 的 DSP + ARM 组合,ARM 处理应用层,DSP 处理信号计算。
- 大核+小核(big.LITTLE):
- ARM big.LITTLE 架构,big 核处理高性能任务,LITTLE 核处理低功耗任务。
SMP (Symmetric Multiprocessing,对称多处理)
SMP 指多个 CPU 完全对等,共享相同的内存和 I/O 设备,运行相同的操作系统,由同一个调度器统一管理任务。几乎所有现代多核 CPU(如 Intel、AMD 服务器和桌面 CPU)都采用 SMP 设计。
特点
- 所有处理器对等:所有 CPU 核心都有相同的访问权限和能力。
- 统一调度:操作系统调度器(如 Linux CFS、Windows 调度器)会自动在多个 CPU 之间分配任务。
- 共享内存:所有 CPU 访问同一片物理内存,使用共享缓存或者缓存一致性协议(如 MESI)来保持数据同步。
- 扩展性较强:可以通过增加 CPU 数量来提升性能(但受限于调度、总线争用等因素)。
典型应用
- 服务器和桌面 CPU:
- Intel、AMD 的现代 CPU 都采用 SMP 方式,多个核心共享同一个操作系统。
- 高性能计算(HPC):
- 例如超算集群中的单节点通常采用 SMP 方案,以提高计算密度。
- 云计算、虚拟化:
- SMP 架构下可以更高效地分配 CPU 资源,如 KVM、VMware 等虚拟机调度。
BMP (Bound Multiprocessing,绑定多处理)
BMP 是 SMP 的一个变种,其中某些任务被 绑定 到特定的 CPU 上,以减少调度开销,或保证某些核心处理特定任务(类似 AMP,但仍然使用 SMP 的统一调度器)。
特点
- 部分 CPU 专用:
- 可以手动绑定特定任务到特定 CPU(比如 Linux
taskset
命令)。
- 可以手动绑定特定任务到特定 CPU(比如 Linux
- 提高缓存局部性:
- 绑定任务后,任务数据更可能留在 CPU 缓存中,提高性能。
- 减少任务迁移:
- 任务不会频繁在 CPU 之间迁移,减少上下文切换的开销。
典型应用
- 实时系统:
- 某些关键任务可以绑定到某个 CPU,以确保响应时间。
- 高性能计算(HPC):
- 绑定计算任务到特定 CPU,减少调度器的开销,提高计算效率。
- 游戏和多媒体应用:
- 绑定渲染、物理计算等任务到固定核心,优化性能。