3. Zynq低功耗架构总览
Zynq 的低功耗能力并不是某一个模块单独决定的,而是由 PS(Processing System,处理系统)、PL(Programmable Logic,可编程逻辑)、片上互连以及存储器层次共同构成的“功耗版图”决定的。理解这张版图,是后续做时钟门控、电源域划分、DDR 低功耗模式配置和 PL 动态重配置的前提。本节从架构层面梳理各部分的低功耗设计特征,并给出一个可对照的功耗来源分解视图。
一、PS 子系统:功耗的“常驻基座”
PS 是 Zynq 中始终需要供电、且承担启动、配置、外设管理和操作系统运行的部分,因此它构成了整颗芯片的静态功耗基座。以常见的 Zynq-7000 系列为例,PS 内部包含 APU(应用处理单元,双核 Cortex-A9)、SCU(Snoop Control Unit)、L2 Cache、OCM(On-Chip Memory)、DDR 控制器、中央互连以及一组外设控制器(UART、SPI、I2C、USB、GigE、SD 等)。这些模块的低功耗特征各不相同:
- APU 与时钟域:每个 Cortex-A9 核有独立的时钟使能,空闲核可通过 WFI(Wait For Interrupt)进入低功耗状态,配合 CPU 时钟关闭可显著降低动态功耗;但 L2 Cache 与 SCU 通常需要保持供电以维持一致性。
- OCM 与 L2:OCM 容量小、访问延迟低,适合放置频繁访问的代码或数据,减少对 DDR 的访问次数,从而间接降低 DDR PHY 与控制器功耗。
- DDR 控制器:支持自刷新(Self-Refresh)、预充电掉电(Precharge Power-Down)等模式,是 PS 侧可主动干预的最大动态功耗来源之一。
- 外设控制器:未使用的外设应通过时钟关闭或复位保持关闭,避免“空转”消耗。
需要强调的是,PS 的电源域划分相对固定,用户可干预的空间主要集中在时钟使能、PLL 配置、DDR 工作模式和 CPU 频率/电压(若平台支持 DVFS)上。因此 PS 侧的低功耗策略更偏向“配置优化”而非“结构裁剪”。
二、PL 可编程逻辑:可裁剪的动态功耗主体
PL 由可配置逻辑块(CLB)、DSP48 切片、Block RAM、时钟管理单元(MMCM/PLL)以及 I/O 组成。与 PS 不同,PL 的功耗与“实际使用了多少资源、以多高频率翻转”强相关,因此它是 Zynq 中最具可裁剪性的功耗部分。其低功耗特征体现在:
- 资源使用率:未使用的 CLB、DSP、BRAM 在配置后不翻转,动态功耗接近零,但漏电仍存在;因此“少用资源”主要降低动态功耗。
- 时钟与翻转率:PL 动态功耗近似与频率和翻转率成正比。对不工作的逻辑关闭时钟(BUFGCE 门控)是最直接有效的手段。
- 电源域与部分重配置:部分 Zynq 器件支持将 PL 划分为多个可独立断电的区域(如通过 DFX/PR 配合电源门控),在不需要时关闭整块区域,可同时降低动态与静态功耗。
- I/O 标准与驱动强度:LVCMOS 与 LVDS 的功耗差异明显,驱动强度和转换速率(Slew Rate)设置也会影响 I/O 功耗。
因此,PL 侧的低功耗设计核心是“按需使用、按需翻转、按需供电”。
三、互连与存储器层次:功耗的“通道成本”
PS 与 PL 之间通过 AXI 互连连接,包括 GP(General Purpose)端口、HP(High Performance)端口和 ACP(Accelerator Coherency Port)。互连本身不产生大量计算功耗,但它是数据搬运的通道,其功耗与访问频率、位宽、突发长度和访问目标密切相关。存储器层次则从 OCM、L2、DDR 到外部存储逐级增加访问功耗。一个重要的低功耗原则是:让数据尽量停留在离计算单元更近、更小的存储层次中。例如,将频繁访问的系数表放入 BRAM 或 OCM,而不是每次从 DDR 读取,可以显著减少 DDR 控制器和 PHY 的活跃时间。
下图给出 Zynq 低功耗架构的功耗来源分解与可干预点,帮助建立“哪部分功耗由谁决定、可以从哪里下手”的整体视图。
四、从架构到策略:三个层次的协同
把上述三部分放在一起看,可以得到一个清晰的功耗分解关系:总功耗约等于 PS 基座功耗、PL 动态功耗、互连搬运功耗和存储器访问功耗之和。PS 基座相对固定,优化空间在时钟与 DDR 模式;PL 动态功耗弹性最大,优化空间在资源使用、时钟门控和电源门控;互连与存储层次则通过“数据放置”和“访问模式”间接影响功耗。
在实际工程中,一个常见的低功耗设计流程是:先确认 PS 侧哪些外设和时钟可以关闭,再评估 PL 中哪些逻辑可以门控或断电,最后检查数据流是否把大量访问压在了 DDR 上。例如,一个图像预处理任务若把行缓存放在 BRAM 中,只把最终结果写回 DDR,其 DDR 访问次数可能从每帧数百万次降到数万次,DDR 控制器的活跃时间随之大幅缩短。这类优化不需要改变算法,只需要调整数据放置和访问顺序。
需要提醒的是,Zynq 的低功耗设计不是把每个模块都调到最低,而是在性能、延迟和功耗之间找到平衡点。PS 的常驻特性决定了它不能随意断电,PL 的可裁剪性决定了它是最灵活的调节对象,而互连与存储层次则决定了“数据搬得多远、多频繁”。理解这三者的分工,后续的时钟门控、电源域划分和 DDR 低功耗模式配置才有明确的落脚点。