2.1GHz ARM Cortex-A55 实现流程:面向功耗受限的存储 SoC
2.1GHz ARM Cortex-A55 实现流程:面向功耗受限的存储 SoC
作者: Francis Chockalingam, Glenis Ortiz (Broadcom); Sreedeep Sundaran, Cristian Golovanov (Synopsys) 会议: SNUG 2019 页数: 15 页
摘要
闪存设备需要高性能嵌入式 CPU,同时对功耗有严格的限制。ARM Cortex-A55 CPU 提供了非常好的每毫瓦性能比,但其最大频率受限于流水线架构。7nm FinFET 技术显著减少了漏电功耗,但动态功耗仍然是一个巨大的挑战,特别是对于高频 CPU。本文探讨了在 TSMC 7FFP 工艺上实现一个 8 核 ARM Cortex-A55 系列 CPU 集群的过程,要求 CA55 核心运行在 2.1GHz,而 L3 缓存运行在 1.6GHz。IC CompilerI 的 Design Fusion 特性以及各种综合和 PnR 设置对于推动频率并满足 CPU 性能的动态功耗目标起到了关键作用。该设计实现流程还使用了大量有用偏斜(useful-skew)进行时序收敛,这在层次化 CTS 和多级时钟门控的 CPU 集群中带来了额外的挑战。ICC2 Design Fusion 结合基于并发时钟数据(CCD)的布局和 CTS 对于满足 CPU 核心时序 QoR 起到了关键作用。时序签核使用 3-σ 局部变异进行 setup 检查和 4.5-σ 进行 hold 时序收敛,这是一个挑战。CCD 流程带来的更紧的偏斜使得可以在不恶化 setup QoR 的情况下无缝完成 hold 收敛。设计实现方法涉及使用来自仿真的真实向量进行动态 IR-drop 分析,以收紧最小-最大 VDD 窗口来实现动态功耗优化。这不仅减少了 post-route 阶段的电源网格相关迭代,还有助于分散具有高活动因子的单元。总体而言,ICC2 实现过程中使用的各种技术在 SSG PVT corner 下实现了时钟频率 11.5% 的提升,同时在 FF VDD-max corner 下将动态功耗降低了 21%。
1. 引言
固态闪存在这个移动时代已经变得非常普遍。但这些控制器需要大量的处理来执行各种闪存转换层任务、磨损均衡、块选择——随着存储容量的增加而增加。这些存储设备具有非常严格的功耗约束,因为它们要么运行在电池驱动的设备中,要么运行在具有散热挑战的大规模数据中心中。这要求固态存储控制器使用嵌入式 CPU,这些 CPU 必须极其节能,同时提供尽可能高的性能。ARM Cortex-A55 CPU 集群满足了这种在较低功耗包络下实现高性能的需求。在相同频率下,A55 CPU 比 A53 CPU 效率高 10%。但在实现过程中,需要在相同功耗下获得更高的性能。
每个新的工艺技术节点都能在更低的功耗和面积下提供更高的晶体管性能。因此,使用 7nm FinFET 工艺技术节点将带来性能改进。进一步的性能改进预期来自设计实现流程,这涉及更好的逻辑优化、布局和布线。本文研究了实现流程中使用的各种选项,并根据其优点评估了这些选项。
2. CPU 详情与挑战
所考虑的设计是一个 ARM Cortex-A55 8 核 CPU 集群。Cortex-A55 CPU 核心是一款中端低功耗处理器,实现了 ARM v8-A 架构,具有三级缓存。它包含一级缓存存储器(L1)和私有二级缓存存储器(L2)。该核心在灵活核心微架构(Flexible Core Microarchitecture,也称为 DynamIQ 共享单元 DSU)中实现。除各种 CPU 核心外,DSU 模块还包含三级存储器(L3)子系统。
CA55 CPU 核心的目标是在 TSMC 7nm FinFET 工艺上以 2.1GHz 时钟周期实现,使用 15 层金属堆叠。设计详情见下表:
表 1:设计详情
| 参数 | 值 |
| CPU 集群 | 8 个 CPU 核心和 L3 缓存 |
| 门数 | 13.4M 门(4T 门数统计) |
| 频率 | 2.1GHz @ 0.72V setup corner |
| 工艺 | TSMC 7FFP,7.5 track 标准单元 |
| 金属堆叠 | 15 层堆叠,CPU 硬宏使用 13 层 |
| 宏单元数量 | 478 |
| 触发器数量 | 620K(每 CPU 核心 76K) |
| CA55 核心配置 | L1: 32KB, L2: 128KB |
| 集群配置 | L3: 4MB |
| ELA | 500 |
时序收敛使用来自标准单元库的 LVF(Liberty Variation Format)变异,setup 使用 3-σ 局部变异,hold 使用 4.5-σ 局部变异——这是一个挑战。Setup corner 使用 0.72V、SSG 工艺角、125/-40°C 温度,hold corner 使用 0.98V、FFG 工艺角、125/-40°C 温度。
该设计在多个层面带来了挑战:
1. 每个 CPU 核心约 1.4M 门,有 8 个实例,每个运行在 2.1GHz。每个 CPU 约有 60 个宏单元用于 CPU 缓存存储器。 2. CPU 核心以逻辑为主,有大量路径,导致拥塞和时序收敛挑战。 3. 寄存器到寄存器路径是时序的限制因素。每个核心约有 76K 触发器,大量路径的逻辑深度 > 30,对时序收敛构成了更大的挑战。 4. 当时序收敛时,是以大量使用超低 Vt 单元为代价的,导致功耗增加。 5. 由于 CPU 核心在顶层被例化了 8 次,解决 CPU 核心的漏电和动态功耗对于在给定应用中实现可行的 CPU 集群实现至关重要。
CPU 核心最初作为单独的硬宏实现。然后在顶层集群中与 CPU 集群模块一起例化。本文主要涉及 CPU 核心实现。
3. 实现流程
CPU 核心实现分为以下阶段:
- RTL 集成:此阶段涉及最优存储器选择、层次化时钟门控规划、共享 MBIST 架构规划和功耗估计。 - 前端实现:包括综合、布局规划(floorplanning)、DFT/MBIST 和形式验证。 - 物理实现:涉及电源网格规划、布局、时钟树综合和布线。 - 时序检查:STA 检查在设计的不同阶段执行。 - 布局检查:初始 PNS 后进行静态 IR drop 分析。最终 route-opt 后进行 DRC、LVS、签核静态/动态 IR drop 和信号 EM 检查。
本文主要关注前端和物理实现步骤。
4. 前端实现
4.1 综合
使用 Synopsys Design Compiler (DC-T 和 DC-G) 进行综合。综合流程包括:
- 使用 DC-T(DC Topographical)进行第一轮综合,提供物理信息以指导优化。 - MBIST 插入:存储器内建自测试电路插入。 - DFT Compiler 扫描链拼接(scan stitching)。 - 使用 DC-G(DC Graphical)进行第二轮综合,具有更精确的物理信息。
物理感知综合考虑了初步的布局信息,减少了布线拥塞和时序悲观性。时钟门控规划在此阶段完成——层次化的多级时钟门控结构被设计用于最大化动态功耗节省。
4.2 布局规划
初始 CPU 布局规划考虑了以下因素:
- 478 个宏单元(主要是存储器)的放置 - 标准单元区域的分配 - 电源网格的初步规划 - 时钟资源的预布局
布局规划迭代精化:初始布局后,通过分析时序和拥塞来调整宏单元位置。经过多轮精化后,宏单元布局得到优化,为标准单元布局和时钟树综合提供了更好的起点。
5. 物理实现
5.1 电源网络综合(Power Network Synthesis, PNS)
电源网络综合在物理实现中至关重要,特别是在高频设计中。主要工作包括:
- 存储器上方的电源网格:在存储器宏单元上方布设电源网格。 - 标准单元电源网格:为标准单元区域创建均匀的电源分布。 - 分段 PG 模式:使用分段式电源/地网格模式来优化 IR drop 和布线资源。 - M11/M10 PG 网格:在顶层金属层(M11 和 M10)创建电源网格以提供低电阻电源分布。
5.2 布局
布局阶段使用 ICC2 的 CCD(Concurrent Clock and Data)技术:
- 使用 place_opt 命令进行初始布局优化。
- CCD 同时优化数据路径和时钟偏斜,实现更好的时序 QoR。
- 使用 timing_power 模式在布局期间考虑功耗优化。
- 拥塞分析:在布局后进行拥塞评估,并在后续迭代中通过调整单元密度和位置来解决拥塞热点。
- 布局后的逻辑层次:展示标准单元在核心区域内的分布。
5.3 时钟树综合(CTS)
时钟树综合是本设计中最具挑战性的部分之一:
- 层次化 CTS:由于 CPU 集群包含多个层次的时钟域(核心级、集群级),采用层次化 CTS 方法。 - 有用偏斜(Useful Skew):大量使用有用偏斜来平衡关键路径的时序。通过有意引入时钟偏斜,改善 setup 和 hold 时序。 - CCD 驱动的 CTS:CCD 技术在 CTS 阶段继续优化时钟偏斜和数据路径延迟的平衡。 - 多级时钟门控:8 核集群的多级时钟门控结构要求 CTS 精确控制门控使能信号的时序。
时钟 QoR 结果显示,CCD 流程带来了更紧的偏斜分布,这使得 hold 收敛可以在不恶化 setup QoR 的情况下无缝完成。
5.4 布线
布线阶段使用 ICC2 的 route_opt 命令:
- 使用 13 层金属进行 CPU 硬宏的布线。 - 布线优化针对信号完整性(SI)和制造设计(DFM)进行了调整。 - Post-route 优化包括对 hold 时序的增量修复。
5.5 功耗估计与 IR-Drop 分析
动态 IR-drop 分析是本设计方法的一个关键组成部分:
- 使用来自仿真的真实向量(而非无向量估计)来驱动动态 IR-drop 分析。 - 通过收紧最小-最大 VDD 窗口来实现动态功耗优化。 - 这减少了 post-route 阶段电源网格相关的迭代次数。 - 还有助于分散具有高活动因子的单元,降低局部 IR-drop 热点。 - 静态 IR drop 使用最差情况翻转(wc toggle)进行分析。
6. 结果
6.1 时序结果
表 2:CA55 CPU 核心时序和漏电结果
| 指标 | 初始 | 优化后 | 改善 |
| SSG corner 时钟频率 | 基准 | +11.5% | 11.5% 提升 |
| Setup WNS | — | — | 达标 |
| Hold WNS | — | — | 达标 |
表 4:时钟 QoR 和 Hold 时序
CCD 流程带来的更紧时钟偏斜使得 hold 收敛可以在不恶化 setup QoR 的情况下完成。
6.2 功耗结果
表 3:CA55 功耗和 Vt 混合
| 指标 | 初始 | 优化后 |
| FF VDD-max corner 动态功耗 | 基准 | -21% |
| 总功耗 | — | 满足预算 |
| Vt 混合比例 | — | 优化后 |
功耗优化主要通过以下方式实现: - 动态 IR-drop 分析收紧 VDD 窗口,减少了不必要的功耗裕量。 - 更好的 Vt 混合策略——在满足时序的前提下,将非关键路径上的超低 Vt 单元替换为高 Vt 单元。 - 高活动因子单元的智能分散减少局部热点。
6.3 IR Drop 分析
静态和动态 IR drop 均满足签核要求。动态 IR drop 分析使用真实仿真向量,比传统无向量方法更准确地反映了实际功耗行为。
7. 结论
本文展示了在 TSMC 7FFP 工艺上将 ARM Cortex-A55 核心推至 2.1GHz 的实现方法。关键成功因素包括:
1. ICC2 Design Fusion 结合 CCD 驱动的布局和 CTS——实现了更紧的时钟偏斜和更好的时序 QoR。 2. 大量使用有用偏斜(useful skew)——在层次化 CTS 中平衡关键路径。 3. 基于真实仿真向量的动态 IR-drop 分析——收紧 VDD 窗口,减少功耗优化迭代。 4. 多 Vt 混合优化——在满足时序的同时降低漏电功耗。
最终结果:SSG PVT corner 下时钟频率提升 11.5%,FF VDD-max corner 下动态功耗降低 21%。该方法为高频嵌入式 CPU 的物理实现提供了可复用的参考流程。
8. 待解决问题
原文列出了设计流程中的若干待解决问题(open issues),涉及 ICC2 工具流程的进一步优化方向。
9. 参考文献
(原文包含参考文献列表。)
10. 致谢
(原文包含致谢列表。)
核心概念
| 概念 | 说明 |
| ARM Cortex-A55 | ARM v8-A 中端效率核心,DynamIQ 架构 |
| Design Fusion | ICC2 中综合与 PnR 紧密集成的流程 |
| CCD 并发时钟数据优化 | 同时优化时钟和数据路径的技术 |
| 7nm FinFET | TSMC 7nm FinFET 工艺节点 |
| IR Drop 电压降 | 电源网络电阻导致的电压下降,高频设计的关键挑战 |
| 有用偏斜 Useful Skew | 有意引入时钟偏斜以平衡关键路径时序 |
| 时钟树综合 CTS | 时钟分布网络的物理实现 |
EDA 工具
| 工具 | 角色 |
| IC CompilerI | 物理实现平台(Design Fusion + CCD) |
| Design Compiler | RTL 综合(DC-T + DC-G) |
| PrimeTime | 时序签核 |
| StarRC | 寄生参数提取 |
相关链接
- ARM Cortex-A55 · 7nm FinFET · CCD 并发时钟数据优化 - IC CompilerI · Design Fusion · IR Drop 电压降 - Broadcom · Synopsys
图片索引
本文共 14 张图片,存放于原文 目录。
第 1 页: p1_1_261e3ae6.jpeg 第 7 页: p7_1_1cd835bc.jpeg, p7_2_a45d339e.jpeg 第 8 页: p8_1_64650c3e.jpeg, p8_2_e08b6c50.jpeg, p8_3_51175792.jpeg (等 4 张) 第 9 页: p9_1_48fe015a.jpeg 第 10 页: p10_1_4b628a93.jpeg, p10_2_2e828e27.jpeg 第 13 页: p13_1_c0479dd2.jpeg, p13_2_a7281e3c.jpeg 第 14 页: p14_1_8de3ab83.jpeg, p14_2_20a5d490.jpeg