2. Kria低功耗架构总览
Kria 系列(以 K26 SOM 为代表)的低功耗能力并不是某一个模块单独“省电”的结果,而是 PS(Processing System)、PL(Programmable Logic)、AI 引擎(深度学习处理单元 DPU)、内存子系统与电源域划分共同作用的结果。理解这一架构的关键,是先建立“谁在耗电、谁在控制耗电、谁决定何时耗电”的整体视角,再去看各功能块之间的交互关系。
一、五个功能块在功耗中的角色
Kria K26 的核心是 Zynq UltraScale+ MPSoC 器件,其功耗结构可以按功能块拆解为五类角色:
- PS(处理系统):包含 APU(四核 Cortex-A53)、RPU(双核 Cortex-R5F)、CSU、PMU 等。APU 负责运行 Linux 与上层应用,是动态功耗的主要来源之一;PMU(平台管理单元)则是整个芯片电源状态与时钟门控的“调度中心”,负责执行电源域切换、唤醒源管理与复位控制。
- PL(可编程逻辑):由 LUT、FF、BRAM、DSP、时钟资源构成。PL 的功耗高度依赖设计规模、时钟频率与翻转率。Kria 的 PL 常用于视频流水线、传感器接口与自定义加速,是“按需开启”的典型对象。
- AI 引擎(DPU):在 PL 上实现的深度学习加速器,功耗随推理负载、批处理大小、量化精度(INT8/INT16)变化明显。DPU 通常与 PS 通过 AXI 互联,其功耗与内存带宽强耦合。
- 内存子系统:包括 DDR 控制器、LPDDR4 颗粒、片上 OCM 与缓存。DDR 的功耗由访问频率、行激活次数、刷新率决定,是“带宽换功耗”的典型环节。
- 电源域:Kria 将芯片划分为多个可独立供电/断电的域,如 PL 域、PS 全功率域、PS 低功耗域(LPD)、电池域等。电源域是低功耗控制的“物理边界”,决定了哪些模块可以被真正关断。
二、电源域划分与交互关系
Kria 的电源域不是简单的“开/关”,而是分层级的:全功率域(FPD)包含 APU、DDR 控制器、大部分外设;低功耗域(LPD)包含 RPU、部分外设与 OCM;PL 域可独立上下电;电池域(Battery Domain)维持 RTC 与部分唤醒逻辑。PMU 固件根据系统状态在这些域之间迁移。
各功能块之间的交互可以概括为三条主线:
- 控制流:PS 中的 PMU 通过电源管理接口控制 PL 与 AI 引擎的时钟/电源门控,决定何时进入 idle、何时唤醒。
- 数据流:传感器 → PL 接口 → DDR → DPU → DDR → PS 应用,数据每经过一次搬运都会带来内存与互联功耗。
- 带宽-功耗耦合:DPU 与 APU 共享 DDR 带宽,带宽需求上升会推高 DDR 频率与功耗,形成“算力—带宽—功耗”三角关系。
下面这张图把上述功能块、电源域与三条交互主线放在同一张架构图中,便于建立整体印象。
三、从架构到功耗优化的三个抓手
理解上述架构后,低功耗优化就有了明确的着力点:
第一,减少跨域数据搬运。数据每经过一次 DDR 往返,都会带来 DDR 控制器与 PHY 的功耗。例如在视频分析场景中,若让 PL 直接把预处理后的数据写入 OCM 或 PL 内部 BRAM,再由 DPU 读取,就能减少一次 DDR 写回。示例性地,假设某 1080p 视频流每帧 2 MB,30 fps 下每秒搬运 60 MB,若 DDR 访问功耗约为 0.5 W/(GB/s),减少一次往返可节省约 0.03 W 量级——数值仅为教学估算,实际需以具体设计为准。
第二,按需开启 PL 与 DPU。PL 域可独立上下电,DPU 也可通过时钟门控进入 idle。在无推理任务时,将 DPU 时钟关闭、PL 域保持低功耗状态,可显著降低静态与动态功耗。PMU 固件中可通过寄存器配置实现这一过程,典型做法是:APU 在完成一帧推理后,通过 AXI-Lite 写 DPU 控制寄存器进入 idle,再由 PMU 关闭对应时钟。
第三,匹配 DDR 频率与负载。DDR 控制器支持动态频率调节(DFS)。当系统处于低负载时,将 DDR 频率从 1066 MHz 降至 533 MHz,可降低 DDR 动态功耗;但需注意 DPU 推理对带宽的实时需求,避免因降频导致推理延迟超标。实际调优时,可先测量不同频率下的带宽与延迟,再选择满足时延约束的最低频率点。
四、一个可参考的功耗观察清单
在实际项目中,可以按以下清单逐项确认各功能块的功耗状态,形成对系统功耗的完整认识:
| 观察对象 | 关键指标 | 典型观察方式 |
|---|---|---|
| APU | CPU 利用率、频率、idle 状态 | cpufreq、/proc/stat |
| PL | 时钟频率、翻转率、上下电状态 | Vivado 功耗估算、PMU 寄存器 |
| DPU | 推理帧率、批大小、量化精度 | DPU 驱动统计、AXI 带宽计数 |
| DDR | 带宽占用、频率、行激活次数 | DDR 控制器性能计数器 |
| 电源域 | 当前域状态、切换次数、驻留时间 | PMU 日志、电源管理调试接口 |
这张清单的价值在于:它把“架构认知”转化为“可观测对象”。只有先看清每个功能块当前处于什么状态、消耗了多少资源,后续的功耗优化才有依据,而不是凭感觉调参。Kria 的低功耗架构本质上提供了一套“可分区、可门控、可观测”的基础设施,剩下的工作就是根据具体应用负载,把每个域的状态调到与需求匹配的位置。