标准单元库功能丰富度基准对比及其对设计PPA的影响
标准单元库功能丰富度基准对比及其对设计PPA的影响
会议: SNUG 2022
作者: Khem Pokhrel,Intel 公司资深首席工程师,技术专家
页数: 20
源文件: SNUG_2022_low-power_Ulstein_Untitled_paper_2.pdf
第 1 页
SNUG 2022 1 标准单元库内容基准对比与功能丰富度提升设计 PPA Khem Pokhrel,资深首席工程师,技术专家 丰富的标准单元功能 --> 强大的原子级 IP Intel 公司
第 2 页
SNUG 2022 2 - 供应商无关的库功能基准对比 - 库组成 — PPA 影响圈与 IP 组件使用 - 实验设计 — 方法论 - 结果 - 结论 大纲
第 3 页
SNUG 2022 3 自动化的功能丰富度测量 供应商无关的库功能基准对比
第 4 页
SNUG 2022 4 - 自动化功能丰富度测量 - 使用 TCL 代码分析库的功能数量和分类仪表盘 - 供应商无关 — 即不依赖单元/引脚命名、阈值电压 Vt、沟道长度、驱动强度等 - 4 个主要分类 — 组合逻辑(Combo)、时序逻辑(Seq)、缓冲器(Buf)、反相器(Inv) - 定制化标识用于进一步分类 - AND、OR、NAND、NOR、AOI、MUX 等 - 交叉分析及组合逻辑与时序逻辑功能在多个库中的唯一列表分离
库功能丰富度的度量——库功能分析流程
TCL 脚本 → 分析库 → 比较功能丰富度 → 创建 HASH 供后续使用
供应商 LIBRARY-1 → 供应商无关标准功能映射 → TCL 各库唯一功能列表 → 库功能仪表盘 → TCL Hash 供应商 LIBRARY-2 → ... → 交叉与重叠报告 供应商 LIBRARY-3 ... →
第 5 页
SNUG 2022 5 - 库功能仪表盘 — 供应商无关库分析脚本的输出。
功能丰富度仪表盘
| 功能标识 | LIB-1 | LIB-2 | LIB-3 | LIB-4 | LIB-5 | LIB-6 | LIB-7 | LIB-8 | LIB-9 |
| AND 功能 ID 数量 | 3 | 3 | 3 | 2 | 4 | 4 | 3 | 4 | 3 |
| AOI 功能 ID 数量 | 37 | 31 | 39 | 21 | 56 | 23 | 26 | 54 | 32 |
| BUF 功能 ID 数量 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| IMUX 功能 ID 数量 | 3 | 2 | 3 | 1 | 3 | 2 | 2 | 3 | 2 |
| INV 功能 ID 数量 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| MISC 功能 ID 数量(表中未明确定义的) | 99 | 104 | 75 | 115 | 125 | 82 | 62 | 152 | 129 |
| MUX 功能 ID 数量 | 3 | 2 | 3 | 2 | 6 | 3 | 2 | 6 | 2 |
| NAND 功能 ID 数量 | 3 | 3 | 3 | 3 | 3 | 4 | 3 | 3 | 3 |
| NOR 功能 ID 数量 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
| OR 功能 ID 数量 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
| TIE_HIGH 功能 ID 数量 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| TIE_LOW 功能 ID 数量 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| XNOR 功能 ID 数量 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
| XOR 功能 ID 数量 | 3 | 3 | 3 | 2 | 3 | 3 | 2 | 3 | 3 |
| 总功能 ID 数量 | 164 | 160 | 142 | 158 | 213 | 133 | 112 | 238 | 186 |
| 具有功能 ID 的总单元数 | 8511 | 28381 | 4470 | 19932 | 7521 | 7511 | 5175 | 16868 | 8789 |
| 总组合逻辑功能 ID 数量 | 81 | 77 | 79 | 57 | 133 | 68 | 62 | 137 | 82 |
| 总时序逻辑功能 ID 数量 | 83 | 83 | 63 | 101 | 80 | 65 | 50 | 101 | 104 |
| 总单元数(无 ID) | 10156 | 36644 | 5086 | 29172 | 8277 | 8481 | 5662 | 18853 | 10401 |
| 总 Vt + 沟道长度组合数 | 6 | 4 | 6 | 3 | 3 | 4 | 4 | 6 | 4 |
仅高单元数量不代表功能丰富度。LIB-8 是最丰富的库。
第 6 页
SNUG 2022 6 - 功能 ID TCL 列表比较 - 可评估各库中独特功能对使用情况和 PPA 功耗性能面积 的影响 - 具有更丰富组合逻辑功能集的 LIB-1 在动态电容(Cdyn)和面积方面比 LIB-2 有显著优势
供应商无关的使用/PPA 影响评估——功能列表比较:重叠与唯一功能
| LIB-1 | LIB-2 | |
| 总功能 | 131 | 39 |
| 组合逻辑 | 59 | 1 组合逻辑 |
| 时序逻辑 | 72 | 38 时序逻辑 |
| 通用功能 | 107(74 组合逻辑 + 29 时序逻辑 + 1 Buf + 1 Inv + 1 Tie0 + 1 Tie1) | |
| LIB-1 唯一 | 1 组合逻辑 + 38 时序逻辑 | |
| LIB-2 唯一 | 59 组合逻辑 + 72 时序逻辑 |
已使用 1 个时序逻辑功能,已使用 1 个组合逻辑功能,已使用 1 个时序逻辑功能。 5 个模块中 17% 的组合逻辑面积使用了 30 个组合逻辑功能。
第 7 页
SNUG 2022 7 设计模块和 IP 需要什么——库组成:PPA 影响假设
第 8 页
SNUG 2022 8 - 本工作假设以下选择已经确定,仅剩下供应商库功能丰富度作为改善产品 KPI PPA 的唯一选项: - 工艺节点 - 单元架构 — CPP、M0/M1/M2 间距等 - HS vs HD 库 - 阈值电压 Vt / 沟道长度 - 每晶体管鳍片数 - PVT 工艺电压温度 - 最内圈是本工作的重点 - 最外圈很重要但整体使用量较小 - 给定库中数千种反相器具有不同的电气、时序、版图、面积特性,但仅计为 1 个单一功能 - 同样,所有 2 输入 NAND 单元计为 1 个功能
单元根功能 — 更高的 PPA 影响内圈——库组成:PPA 影响程度
外圈仅在有丰富功能的内核时才可能实现。
第 9 页
SNUG 2022 9 - 组合逻辑单元数量和面积在各类 IP 设计中均占主导地位(CPU、AI、GFX、MAC、SECURITY、MEM、MEDIA、CRYPTO、5G、VISION、IMAGE、FABRIC、INFRA 等) - 计算/AI/GFX 引擎和 CPU 严重偏向组合逻辑,占芯片中大部分数字门 - Fabric IP 在时序逻辑面积上略高于组合逻辑,但在大多数 SoC 中占数字门的比例 < 10% - 本工作中的实验设计(DoE)聚焦于组合逻辑 - 组合逻辑在综合/布局布线中有更高的优化空间 - 时序逻辑非常重要,但许多实现选择已经固定或由上游 TFM 决定(RTL 风格、C-Tech、多位寄存器、扫描、时钟门控等)
IP 设计调查——它们需要什么?组合逻辑:高使用量与优化空间
35 个 IP 设计样本,覆盖多个 SoC 市场。
第 10 页
SNUG 2022 10 正向、负向和理想证明——实验设计:方法论
第 11 页
SNUG 2022 11
实验设计(DOE)
| 测试类型 | 配置 |
| 默认测试 | Vendor-1 LIB vs Vendor-2 LIB |
| 负向测试(-ve) | Vendor-1 限制使用唯一功能 vs Vendor-2 |
| 正向测试(+ve) | Vendor-1 vs Vendor-2 增加 Vendor-1 的唯一功能 |
| 理想测试 | 获胜供应商 LIB + 额外交付和特征化的功能 |
- 对实验设计库对执行了从 RTL 到 Route_OPT 以及 PrimeTime PX(PTPX)时序/功耗签核流程 - 测量 PPA 功耗性能面积 指标以进行整体比较,并评估库中唯一功能的具体影响 - 正向、负向和 ISO 供应商电路-版图设计+特征化证明
PPA 评估 — DOE 方法论
流程:RTL → ISO 约束 → ISO 时钟 CT → ISO PVT 工艺电压温度 → ISO 布图规划 → ISO 工具(Fusion Compiler) → ISO 流程/配方 → 不同实验使用不同标准单元库对 → Fusion 版本 ISO → PDK ISO → FSDB/PTPX 波形 → RTL 到 ROUTE_OPT Fusion Compiler + PTPX 流程
第 12 页
SNUG 2022 12 正向与负向证明——结果
第 13 页
SNUG 2022 13
跨样本设计的默认测试
| IP 设计 | 单元数量改善 % | 单元面积改善 % | 总功耗改善 % | LIB-2 唯一组合逻辑面积占总组合逻辑 % | LIB-2 唯一组合逻辑面积占总单元面积 % | LIB-2 唯一组合逻辑使用实例数 |
| 1. 大 ARM CPU | 11.66% | 16.85% | 6.3% | 15.08% | 8.61% | 132,292 |
| 2. 小 ARM CPU | 19.86% | 8.67% | 4.5% | 11.56% | 6.71% | 39,874 |
| 3. 视觉处理器 | 8.58% | 5.93% | 20% | 13.19% | 8.48% | 23,537 |
| 4. 内存加密 | 15.09% | 3.95% | 14% | 17.72% | 7.67% | 66,937 |
| 5. 媒体编码器 | 8.87% | 10.48% | 5.2% | 6.66% | 3.31% | 111,963 |
ISO 工艺下两个供应商的 PPA 对比——功耗最多降低 20%
- LIB-1 参考 — Vendor-1 - Rich LIB-2 — Vendor-2 - ISO:工艺、Vt/沟道长度、单元架构、CPP、PVT 工艺电压温度、工具/流程配方、RTL、布图规划
LIB-2 Node3:110 功能 = 33 组合逻辑 + 77 时序逻辑 LIB-1 Node3:66 功能 = 7 组合逻辑 + 59 时序逻辑
- 性能差异 < 1% - IP/SoC KPI 关注点在 ISO 性能下的功耗 - 组合逻辑门晶体管数量最多减少 15% - LIB-2 唯一组合逻辑功能的影响是 LIB-1 少数唯一功能使用量的 8 倍
第 14 页
SNUG 2022 14 - Old LIB — Vendor-1 的原始库 - New LIB — Old Lib + 新增 22 个组合逻辑功能 — Vendor-1 - ISO:工艺、Vt/沟道长度、单元架构、CPP、PVT 工艺电压温度、工具/流程配方、RTL、布图规划、库供应商、版图 + 特征化流程
新增 22 个组合逻辑功能带来的 PPA 改善——动态电容(Cdyn)增益 5.2%! 理想测试 — 高速 CPU 2.8GHz
设计统计数据:
| 指标 | OLD LIB | NEW LIB | 改善 |
| 总标准单元数量 | 3,435,551 | 3,094,511 | 减少 341,040(9.93%) |
| 标准单元数量改善 / 减少 | 11.02% | ||
| 总标准单元面积改善 | 4.45% | ||
| 总组合逻辑面积改善 | 5.18% | ||
| 总组合逻辑数量节省 | 10.97%(210,451) | ||
| 连线数量改善 / 减少 | 9.27%(309,928) | ||
| 总标准单元面积 | 3,196,617 um² | 9% | |
| Vt 类型面积 % 分配 | 62% / 38% | ISO | |
| 布尔级数深度减少 | 6.06%(3.1 → 3.3) |
晶体管节省:
| 指标 | 改善 |
| 总晶体管 FIN 数量节省 | 5.15%(79.1) |
| 总晶体管数量节省 | 4.85%(2,309,246) |
| 总晶体管 Z 节省 | 20.55%(50,947 → 40,475) |
功耗节省:
| 指标 | OLD LIB | NEW LIB | 改善 |
| 总功耗节省 | 5.21%(51.2 pF Cdyn) | ||
| 总开关功耗节省 | 5.67%(33.4 mW) | ||
| 总内部功耗节省 | 5.14%(26.4 mW) | ||
| 总泄漏功耗节省 | 4.85% | ||
| 总组合逻辑功耗节省 | 5.25%(42.7 mW) | ||
| Cdyn 降低 | 5.21%(51.2pF) | ||
| 节省的功耗(mW) | 3 mW | ||
| NVP | 4.78%(10) |
时序/性能:
| 指标 | OLD LIB | NEW LIB | 改善 |
| WNS(ns) | -0.296 | -0.286 | 3.38% |
| TNS(ns) | -1473.7 | -1060.8 | 28.02% |
| 时序墙移位性能增益 | 7 ps | 2.0% | |
| ISO 功耗性能增益预测 | 5% | ||
| 平均每网引脚数改善 | 2.66%(3.5 → 3.6) | ||
| 布尔压缩改善 | 28.56%(89,691) |
单元使用测量:
| 指标 | OLD LIB | NEW LIB |
| 设计中总单元实例 | 3,435,551 | 3,094,511 |
| 使用的总单元参考 | 1,384 | 1,507 |
| 使用的总唯一功能 | 104 | 125 |
| 使用的总唯一组合逻辑功能 | 73 | 92 |
| 库中可用唯一组合逻辑功能 | 80 | 102 |
| 库中可用全部唯一功能 | 182 | 205 |
| 使用的新功能总数 | 0 | 21 |
| 设计中的新功能实例数 | 0 | 144,339 |
| 新功能实例占全体单元实例 % | 0 | 4.66% |
| 新功能实例占组合逻辑实例 % | 0 | 7.52% |
布尔图:互补吸收 布尔合并改善
第 15 页
SNUG 2022 15
不同 IP 类型的功能使用可能差异很大——跨三个 SoC 的唯一功能使用排名
| 总体排名 | 功能 ID | SoC-1 排名 | SoC-2 排名 | SoC-3 排名 |
| 1 | a4.0b2.2b2.2b2.2b2.2 | 1 | 1 | 5 |
| 2 | Ia3.0b2.2b2.2b2.2 | 2 | 8 | 4 |
| 3 | Ia4.3 | 3 | 3 | 6 |
| 4 | Ia3.0b2.1 | 4 | 7 | 2 |
| 5 | a4.1 | 5 | 4 | 1 |
| 6 | Ia4.0b2.0 | 6 | 2 | 7 |
| 7 | Ia3.1b2.2b2.2 | 7 | 9 | 3 |
| 8 | esp.((a)'*(b)')+(c*((a)'+(b)')) | 未使用 | 5 | — |
| 9 | a2.0b2.2b2.1 | 17 | 6 | — |
| 10 | Ia2.1b2.1c2.2 | 8 | 11 | — |
| 11 | a3.2b2.1 | 9 | 未使用 | — |
| 12 | a6.0 | 未使用 | 10 | — |
| 13 | a2.0b2.0c2.0 | 10 | 12 | — |
| 14 | Ia2.0b2.0c2.0d2.0 | 12 | 15 | — |
| 15 | a3.0b2.0b2.0 | 11 | 13 | — |
| 16 | a2.0b3.0 | 13 | 18 | — |
| 17 | Ia2.1b3.3 | 14 | 16 | — |
| 18 | a2.1b2.1c2.1d2.2 | 15 | 20 | — |
| 19 | a2.0b3.2b2.2 | 16 | 未使用 | — |
| 20 | Ia2.0b3.3b2.2 | 18 | 14 | — |
| 21 | a3.0b2.0b2.0b2.0 | 19 | 25 | — |
| 22 | Ia2.0b2.1b2.0 | 20 | 未使用 | — |
| 23 | Imaj23_Ixor3 | 22 | 19 | — |
| 24 | a2.0b3.0b2.0 | 23 | 17 | — |
| 25 | mux411110 | 21 | 未使用 | — |
| 26 | a3.0b2.2b2.2b2.1 | 24 | 未使用 | — |
| 27 | a2.0b3.0b3.0 | 27 | 24 | — |
| 28 | Ia4.0b2.2b2.2b2.2b2.1 | 25 | 未使用 | — |
| 29 | Ia2.0_Ixor2_a2.2 | 未使用 | 21 | — |
| 30 | Ia4.0b2.2b2.2b2.2b2.2 | 未使用 | 23 | — |
- SoC-1 样本:6 百万单元 / 5 个 IP 模块 - SoC-2 样本:7 百万单元 / 5 个 IP 模块 - 取决于 RTL IP 类型,功能使用排名有所不同 - 只有排名 #1 和排名 #3 在 SoC-1 与 SoC-2 之间匹配 - 多样化的功能集使库更丰富,能够满足产品中各类 RTL IP 的需求
SoC-3(进行中): - 在最近的 SoC-3 使用中(3 个模块,450 万单元),使用排名的波动比 SoC-1 和 SoC-2 更加显著
第 16 页
SNUG 2022 16
相同 Graphics IP 功能——跨三个供应商库的 ISO GFX RTL IP
| 指标 | Vendor1 Node N-2 | Vendor2 Node N-1 | Vendor3 Node N |
| 库中可用总功能 | 208 | 238 | 146 |
| 使用的总功能 ID 数 | 133 | 139 | 110 |
| 库中可用总组合逻辑功能 ID 数 | 103 | 133 | 75 |
| 使用的总组合逻辑功能 ID 数 | 97 | 103 | 73 |
| 使用的总时序逻辑功能 ID 数 | 33 | 32 | 33 |
相同 RTL 版本
| 指标 | Vendor1 | Vendor2 | Vendor3 |
| 归一化标准单元晶体管数量 | 1 | 0.89 | 1.11 |
| 归一化标准单元组合逻辑数量 | 1 | 0.87 | 1.08 |
如果提供丰富的功能,IP 就会使用它们。
- 该 RTL IP 设计在有丰富功能可用时始终会使用它们 - IP 对功能的需求与工艺节点无关 - 显著的单元数量和晶体管节省 - 时序逻辑功能使用在不同工艺节点和供应商库之间相似 - Node N vendor3 是最新工艺节点 - Node N-2 vendor1 是两代之前的工艺节点
第 17 页
SNUG 2022 17 丰富的组合逻辑功能 → 更好的设计 PPA 结论
第 18 页
SNUG 2022 18 - 提出了一种供应商无关的自动化库组件功能丰富度测量方法 - 讨论了一种使用 Fusion Compiler 和 PrimeTime PX(PTPX)的 PPA 影响评估方法和实验设计(DOE) - 现代设计 IP 需要多样化的组合逻辑功能以实现最优 PPA 功耗性能面积 - 组合逻辑功能被设计大量使用,在综合和布局布线 PnR中提供了显著的优化空间 - 在现有库中增加几十个组合逻辑单元可以显著改善设计 PPA: - 在 ISO 性能(频率)下最多降低 20% 功耗 - 在 ISO 功耗下最多提升 5% 性能 - 通过功能本地化到复杂门实现 5-11% 晶体管数量减少 - 9-19% 单元实例数量减少;4-17% 单元面积减少 - 在高速 CPU 设计上实现 5.2% 动态电容(Cdyn)降低 - 43-75% 的功耗节省来自组合逻辑门功耗
丰富的功能集 @ ISO 频率/布图规划面积目标将产生更低功耗 总结
第 19 页
SNUG 2022 19 参考文献
[1] Namhoon Kim et. al, "Deep Neural Network Based Fast Library Generator for Statistical Timing Characterizations", IEEE International Symposium on Quality Electronic Design (ISQE) or International Symposium on Physical Design (ISPD), Oct 2020
[2] Andrea Bonzo, Dolphin Integration, "Choosing the best Standard Cell Library without falling into the traps of traditional benchmarking methods", Design Reuse, Sept 2019
[3] LC Lu, TSMC, "Physical Design Challenges and Innovations to Meet Power, Speed, and Area Scaling Trend", ISPD 2017
[4] Synopsys Liberty User Guide, 2017
[5] Dr. Adam Teman, Bar-Ilan University, "Standard Cell Libraries", Nov 2016
第 20 页
*(空白页)*
图片索引
本文共 79 张图片,存放于 SNUG_2022_low-power_Ulstein_Untitled_paper_2_images/ 目录。
第 1 页:page_001.png 第 2 页:page_002.png 第 3 页:page_003.png 第 4 页:page_004.png 第 5 页:page_005.png 第 6 页:page_006.png 第 7 页:page_007.png 第 8 页:page_008.png 第 9 页:page_009.png 第 10 页:page_010.png 第 11 页:page_011.png 第 12 页:page_012.png 第 13 页:page_013.png 第 14 页:page_014.png 第 15 页:page_015.png 第 16 页:page_016.png 第 17 页:page_017.png 第 18 页:page_018.png 第 19 页:page_019.png 第 20 页:page_020.png
*(其余 59 张图片为 PPT 幻灯片中的图表、流程图和装饰元素,存放于 _images/ 子目录中)*