2. 应用处理器(AP)子系统:Cortex-A76/A55大小核集群

应用处理器(AP)子系统是高通8155芯片的计算核心,负责运行操作系统(Android/Linux)、用户界面、应用程序以及复杂的信号处理任务。本章聚焦于其核心架构:基于ARM DynamIQ技术的Cortex-A76与Cortex-A55组成的大小核异构集群,以及与之紧密耦合的缓存层次、内存控制器接口和功耗管理机制。

2.1 模块边界与系统分层

AP子系统位于整个芯片的计算域中心,通过高速总线(如ACE/CHI)与其它子系统(如GPU、DSP、ISP、NPU)连接。其内部结构遵循清晰的层次化设计。

  • 物理边界:一个DynamIQ共享单元(DSU-110)集群,内部集成4个Cortex-A76性能核与4个Cortex-A55能效核。
  • 缓存分层:
    • L1缓存:每个核心私有,包含L1指令缓存(L1-I)和L1数据缓存(L1-D)。A76的L1-D为64KB,A55的L1-D为32KB。
    • L2缓存:每个核心私有。A76的L2为512KB,A55的L2为128KB。
    • L3缓存:由DSU集群内所有核心共享,容量通常为2MB ~ 4MB。
  • 系统内存接口:通过内存控制器(Memory Controller, MC)连接片外LPDDR5/LPDDR4x DRAM。典型配置为双通道64-bit LPDDR5,提供高带宽与低延迟。

2.2 数据流/控制流与信任链路

AP子系统内的数据流动遵循“取指-译码-执行-写回”的经典流水线,但大小核集群引入了任务调度与电源管理的复杂性。

  • 控制流:操作系统调度器(如Linux CFS或EAS)根据任务优先级、CPU负载和功耗预算,决定将任务下发到A76性能核或A55能效核。DSU中的CCI/CHI一致性总线确保集群内数据一致性。
  • 数据流:核心从L1/L2/L3缓存逐级请求数据,未命中则通过内存控制器访问DRAM。关键的信任链路是:从Boot ROM -> PBL -> SBL -> UEFI -> HLOS,每一步都包含签名验证,确保未经授权的代码无法在A76或A55核心上执行。

2.3 方案权衡:大小核与频率策略

采用A76 + A55的DSU集群方案,本质上是性能与功耗的工程权衡。下表对比了两种核心的关键特性:

特性 Cortex-A76 (性能核) Cortex-A55 (能效核)
微架构 3宽度解码,乱序执行,高性能 按序执行,低功耗设计
典型频率范围 1.8 GHz ~ 2.96 GHz 1.2 GHz ~ 1.8 GHz
L1缓存 64KB I + 64KB D 32KB I + 32KB D
L2缓存 512KB 128KB
典型单核功耗 1.5W ~ 3W 0.2W ~ 0.5W
适用场景 游戏渲染、复杂计算、应用启动 后台服务、待机、轻量任务

权衡:A76核提供峰值性能,但功耗高;A55核能效比优异,适合轻量级常驻任务。DSU-110允许集群内所有核心使用相同的指令集(ARMv8.2-A),但可独立调节电压与频率,实现精细化的DVFS(动态电压频率调整)。

2.4 落地步骤:异构调度配置

在实际的嵌入式系统BSP开发中,需要配置内核调度器以利用大小核。关键步骤如下:

  1. 识别CPU拓扑:在设备树(DTS)或ACPI表中添加CPU容量信息。
  2. 配置DSU-110控制器:确保L3缓存和一致性总线驱动加载正确。
  3. 使能WALT或EAS调度器:选择基于窗口辅助负载追踪(WALT)或能耗感知调度(EAS)的策略。
  4. 设置频率调节器:使用 schedutil 或 cpufreq 调节策略。
  5. 验证大小核负载分布:通过 /sys/devices/system/cpu*/cpufreq/ 或 perf 工具检查。

2.5 验收标准与异常处理

  • 验收标准:
    • 所有8个核心(4*A76 + 4*A55)在操作系统启动后均被正确枚举并处于在线状态。
    • 执行标准stress压力测试时,A76集群能稳定运行在标称的最高频率(如2.96 GHz),温度不超过85°C。
    • 在待机场景下,A55集群能承担所有后台任务,且A76集群处于深度睡眠(WFI)状态。
  • 异常处理:
    • 核心崩溃(Panic):系统通过内部错误检测机制挂起故障核心,并尝试将其从调度域中剔除。
    • 缓存一致性错误:DSU硬件自动执行行无效化操作,严重时触发系统复位。
    • 温度过载:由温度传感器触发,PMIC自动执行降频或关机保护。

2.6 AP子系统核心架构图

高通8155 AP子系统:DSU-110大小核集群架构 Cortex-A76 性能集群 (Core 0-3) Cortex-A55 能效集群 (Core 4-7) Cortex-A76 #0 L1: 64KB D / 64KB I Cortex-A76 #1 L1: 64KB D / 64KB I Cortex-A76 #2 L1: 64KB D / 64KB I Cortex-A76 #3 L1: 64KB D / 64KB I Cortex-A55 #4 L1: 32KB D / 32KB I Cortex-A55 #5 L1: 32KB D / 32KB I Cortex-A55 #6 L1: 32KB D / 32KB I Cortex-A55 #7 L1: 32KB D / 32KB I L2:512KB L2:512KB L2:512KB L2:512KB L2:128KB L2:128KB L2:128KB L2:128KB 共享 L3 缓存 (2~4 MB, 通过 CHI 一致性总线互联) 内存控制器 (MC) 内存控制器 (MC) CHI总线
工程实践提示: 在调试AP子系统性能时,应重点监控 /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq 和 /sys/kernel/debug/tracing/trace 中的调度器事件。如果发现A76核心长期处于低负载状态,而A55核心负载过高,说明EAS调度器的能耗模型可能需要校准。