跳转到内容

多核处理器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 缓存中,提高性能。
  • 减少任务迁移
    • 任务不会频繁在 CPU 之间迁移,减少上下文切换的开销。

典型应用

  • 实时系统
    • 某些关键任务可以绑定到某个 CPU,以确保响应时间。
  • 高性能计算(HPC)
    • 绑定计算任务到特定 CPU,减少调度器的开销,提高计算效率。
  • 游戏和多媒体应用
    • 绑定渲染、物理计算等任务到固定核心,优化性能。

参考与致谢