HMP vs AMP:异构多处理的两种范式详解

HMP vs AMP:异构多处理的两种范式详解

HMP和AMP是两种完全不同的异构多处理架构,分别服务于通用计算能效优化实时确定性与安全性隔离

核心区别概览

维度 HMP(异构多处理) AMP(非对称多处理)
设计目标 最大化能效 功能安全与实时性
典型场景 手机应用处理器 汽车、工控、网络设备
操作系统 单一OS(Linux/Android) 多个OS或裸机程序
核心关系 协同工作,任务共享 功能隔离,独立运行
调度方式 统一调度器全局调度 静态分配或简单协同
通信机制 共享内存,缓存一致性 消息传递,共享内存需显式同步
一致性 硬件保证缓存一致性 通常无硬件一致性
中断处理 统一中断控制器 每个核心独立中断

一、HMP(异构多处理)

本质:能效导向的任务调度优化

HMP是big.LITTLE架构的调度实现方式 ,让操作系统能够同时看见并使用所有不同类型的内核

关键特征

  1. 统一操作系统

    • 单一Linux/Android内核管理所有核心
    • 调度器(如EAS)了解每个核心的性能/功耗特征
  2. 智能任务迁移

    c 复制代码
    // 简化调度逻辑
    if (task_util(p) < threshold) {
        // 轻负载 → 小核
        p->cpu = LITTLE_core;
    } else if (task_needs_responsiveness(p)) {
        // 响应型任务 → 大核
        p->cpu = big_core;
    } else {
        // 可并行任务 → 多个小核
        spread_tasks_across_LITTLES(p);
    }
  3. 硬件支持

    • 所有核心共享缓存一致性(如CCI互联)
    • 统一内存空间
    • 共享中断控制器(GIC)

实际示例:手机SoC

复制代码
骁龙8 Gen 2的HMP调度:
├── 点击屏幕 → Cortex-X3(超大核,快速响应)
├── 播放音乐 → Cortex-A510(小核,低功耗)
├── 后台同步 → 多个Cortex-A510协同
└── 游戏加载 → 所有大核+小核全开

二、AMP(非对称多处理)

本质:功能安全导向的物理隔离

AMP让不同核心运行不同的操作系统或裸机程序,各自执行特定功能,通过消息传递协同

关键特征

  1. 多操作系统/裸机程序

    • Core 0: 运行Linux,处理复杂应用
    • Core 1: 运行FreeRTOS,实时控制
    • Core 2: 运行裸机程序,安全监控
  2. 物理/逻辑隔离

    • 内存分区:每个核心有专属内存区域
    • 外设分区:特定外设分配给特定核心
    • 中断隔离:中断控制器支持虚拟化
  3. 确定性实时响应

    • 实时任务在独立核心运行,不被通用OS干扰
    • 最坏情况执行时间可预测

典型架构:汽车域控制器

复制代码
汽车SoC的AMP配置:
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│  Core 0         │    │  Core 1         │    │  Core 2         │
│  Linux          │    │  AUTOSAR        │    │  Safety MCU     │
│  - 信息娱乐      │    │  - 底盘控制     │     │  - 监控备份     │
│  - 导航         │    │  - 制动         │     │  - 看门狗       │
└────────┬────────┘    └────────┬────────┘    └────────┬────────┘
         │  IPC over Shared Mem  │              │ 硬件信号
         └───────────────────────┘              │
                                          ┌─────▼─────┐
                                          │ 硬件安全   │
                                          │ 模块      │
                                          └───────────┘

三、技术实现对比

1. 内存架构

c 复制代码
// HMP:统一共享内存
struct task_struct *task;  // 所有核心看到相同的内存视图
task->on_cpu = BIG_CORE;   // 任务可在核心间自由迁移
task->on_cpu = LITTLE_CORE;

// AMP:分区内存
// Core 0内存空间
#define CORE0_DDR_START  0x80000000
#define CORE0_DDR_SIZE   0x20000000

// Core 1内存空间  
#define CORE1_DDR_START  0xA0000000
#define CORE1_DDR_SIZE   0x10000000

// 通过MPU/MMU硬件隔离

2. 中断处理

c 复制代码
// HMP:统一处理
irq_handler_t handle_irq;  // GIC将中断路由到最合适的核心
// 调度器决定哪个核心处理

// AMP:定向分配
// 在设备树中静态分配:
timer@1000 {
    interrupts = <0 10 4>;  // SPI 10, 定向到Core 1
    cpu-affinity = <1>;     // 只由Core 1处理
};

3. 启动流程

bash 复制代码
# HMP启动(顺序启动)
BootROM → ATF → U-Boot → Linux Kernel
                    ↓
            所有核心启动,由调度器管理

# AMP启动(并行/独立启动)
Core 0: BootROM → ATF → U-Boot → Linux
Core 1: BootROM → ATF → RTOS (独立镜像)
Core 2: BootROM → Safety Monitor (裸机)

4. 通信机制

c 复制代码
// HMP:共享内存直接访问
// 核心间天然共享数据,需软件同步
spinlock_t lock;
data = shared_mem->value;  // 直接读取

// AMP:消息传递
// 通过硬件邮箱或共享内存+软件协议
struct ipc_msg {
    uint32_t type;
    uint8_t data[64];
};
mailbox_send(CORE1_MBX, &msg);  // 发送到Core1的邮箱

四、实际应用场景

HMP应用:消费电子

  1. 智能手机:动态调节性能/功耗
  2. 笔记本电脑:Windows on ARM的能效优化
  3. 平板电脑:平衡续航与性能

AMP应用:关键任务系统

  1. 汽车电子(符合ISO 26262):

    复制代码
    - 核心A:Linux(信息娱乐,ASIL-A)
    - 核心B:AUTOSAR(刹车控制,ASIL-D)
    - 核心C:Safety Island(监控,ASIL-D)
  2. 工业控制

    复制代码
    - 核心0:Windows/Linux(HMI,非实时)
    - 核心1:VxWorks(运动控制,硬实时)
    - FPGA:硬件加速逻辑
  3. 网络设备

    复制代码
    - 控制面:Linux(路由协议,管理)
    - 数据面:裸机/DPDK(数据包转发)
    - 安全核心:加密加速
  4. 机器人

    复制代码
    - 核心0:ROS 2(路径规划)
    - 核心1:实时系统(电机控制)
    - GPU:视觉处理

五、混合架构:HMP与AMP的融合

现代复杂系统常采用混合架构

示例:智能座舱SoC

复制代码
NXP i.MX 8 QuadMax:
├── Cortex-A72集群 (HMP模式)
│   ├── 2×A72 @ 1.6GHz
│   └── 运行Linux,处理多媒体
│
├── Cortex-M4F核心 (AMP模式)
│   └── 运行FreeRTOS,音频DSP
│
├── Cortex-M7核心 (AMP模式)  
│   └── 运行AUTOSAR,实时控制
│
└── GPU + NPU
    ├── 图形渲染
    └── AI加速

启动流程

  1. 安全核心首先启动,建立信任根
  2. A72集群启动Linux
  3. M4/M7从A72加载固件,独立运行
  4. 通过RPMSG(远程处理器消息)通信

六、选择指南

何时选择HMP?

  • 应用场景:消费电子,追求极致能效
  • 需求特点:动态负载变化大,任务类型多样
  • 系统要求:单一OS,简化软件开发
  • 示例:手机、平板、笔记本电脑

何时选择AMP?

  • 应用场景:功能安全/实时性关键系统
  • 需求特点:确定性响应,功能隔离,安全认证
  • 系统要求:混合OS环境,不同安全等级
  • 示例:汽车、医疗、工控、航空航天

何时选择混合架构?

  • 需要同时满足:富功能应用 + 实时控制 + 功能安全
  • 系统复杂度高,单一架构无法满足
  • 资源充足,可承担多个OS的开发维护成本
  • 示例:智能汽车、高级机器人、高端网络设备

总结:核心理念差异

方面 HMP AMP
哲学 效率最大化 安全隔离
设计原则 核心间协作完成任务 核心间隔离执行功能
优化目标 性能/功耗比 确定性/可靠性
适用领域 通用计算 专用领域
发展趋势 更细粒度的能效调度 更强的物理隔离与安全认证

简单记忆

  • HMP :让所有核心一起聪明地工作,像一支配合默契的篮球队
  • AMP :让每个核心专注自己的职责,像手术室里的专业团队

随着异构计算的发展,HMP和AMP正在融合:现代SoC可能同时包含HMP集群(用于应用处理)和AMP核心(用于实时/安全功能),形成多层次的计算架构。

相关推荐
小溪彼岸1 个月前
初识Amp Code
aigc·amp
CyberSecurity_zhang1 年前
多核架构的基本概念
mcu·汽车·amp·smp·同构多核·异构多核
renkai7212 年前
彻底解决vue接入高德地图不显示公司名字问题
vue.js·map·高德地图·amp
SEO_juper2 年前
关于 Google AMP 和 SEO
搜索引擎·google·seo·amp·google amp
奇舞精选2 年前
什么是amp页面
amp